@vtx/map 1.1.46 → 1.1.48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/lib/VtxMap/AMap/AMap.js +630 -1000
  2. package/lib/VtxMap/AMap/AMap.js.map +1 -1
  3. package/lib/VtxMap/BMap/Map.js +747 -1195
  4. package/lib/VtxMap/BMap/Map.js.map +1 -1
  5. package/lib/VtxMap/GMap/Map.js +1046 -1564
  6. package/lib/VtxMap/GMap/Map.js.map +1 -1
  7. package/lib/VtxMap/Map.js +8 -42
  8. package/lib/VtxMap/Map.js.map +1 -1
  9. package/lib/VtxMap/MapToolFunction.js +26 -63
  10. package/lib/VtxMap/MapToolFunction.js.map +1 -1
  11. package/lib/VtxMap/OMap/Map.js +867 -1361
  12. package/lib/VtxMap/OMap/Map.js.map +1 -1
  13. package/lib/VtxMap/OlMap/Map.js +717 -1225
  14. package/lib/VtxMap/OlMap/Map.js.map +1 -1
  15. package/lib/VtxMap/TMap/TMap.js +651 -1058
  16. package/lib/VtxMap/TMap/TMap.js.map +1 -1
  17. package/lib/VtxMap/index.js +1 -8
  18. package/lib/VtxMap/index.js.map +1 -1
  19. package/lib/VtxMap/mapPlayer.js +67 -123
  20. package/lib/VtxMap/mapPlayer.js.map +1 -1
  21. package/lib/VtxMap/optimizingPointMap.js +21 -77
  22. package/lib/VtxMap/optimizingPointMap.js.map +1 -1
  23. package/lib/VtxMap/style/css.js +0 -6
  24. package/lib/VtxMap/style/css.js.map +1 -1
  25. package/lib/VtxMap/style/index.js +0 -6
  26. package/lib/VtxMap/style/index.js.map +1 -1
  27. package/lib/VtxMap/zoomMap.js +12 -41
  28. package/lib/VtxMap/zoomMap.js.map +1 -1
  29. package/lib/VtxModal/VtxModal.js +19 -63
  30. package/lib/VtxModal/VtxModal.js.map +1 -1
  31. package/lib/VtxModal/draggableModal.js +12 -48
  32. package/lib/VtxModal/draggableModal.js.map +1 -1
  33. package/lib/VtxModal/index.js +1 -6
  34. package/lib/VtxModal/index.js.map +1 -1
  35. package/lib/VtxModal/style/css.js +0 -6
  36. package/lib/VtxModal/style/css.js.map +1 -1
  37. package/lib/VtxModal/style/index.js +0 -6
  38. package/lib/VtxModal/style/index.js.map +1 -1
  39. package/lib/VtxSearchCheckMap/VtxSearchCheckMap.css +5 -5
  40. package/lib/VtxSearchCheckMap/VtxSearchCheckMap.js +106 -239
  41. package/lib/VtxSearchCheckMap/VtxSearchCheckMap.js.map +1 -1
  42. package/lib/VtxSearchCheckMap/VtxSearchCheckMap.less +2 -2
  43. package/lib/VtxSearchCheckMap/index.js +0 -2
  44. package/lib/VtxSearchCheckMap/index.js.map +1 -1
  45. package/lib/VtxSearchCheckMap/mapping.js +1 -2
  46. package/lib/VtxSearchCheckMap/mapping.js.map +1 -1
  47. package/lib/VtxSearchCheckMap/style/css.js +0 -19
  48. package/lib/VtxSearchCheckMap/style/css.js.map +1 -1
  49. package/lib/VtxSearchCheckMap/style/index.js +0 -19
  50. package/lib/VtxSearchCheckMap/style/index.js.map +1 -1
  51. package/lib/VtxSearchMap/VtxSearchMap.css +25 -20
  52. package/lib/VtxSearchMap/VtxSearchMap.js +114 -240
  53. package/lib/VtxSearchMap/VtxSearchMap.js.map +1 -1
  54. package/lib/VtxSearchMap/VtxSearchMap.less +33 -20
  55. package/lib/VtxSearchMap/index.js +0 -2
  56. package/lib/VtxSearchMap/index.js.map +1 -1
  57. package/lib/VtxSearchMap/mapping.js +1 -2
  58. package/lib/VtxSearchMap/mapping.js.map +1 -1
  59. package/lib/VtxSearchMap/style/css.js +0 -19
  60. package/lib/VtxSearchMap/style/css.js.map +1 -1
  61. package/lib/VtxSearchMap/style/index.js +0 -19
  62. package/lib/VtxSearchMap/style/index.js.map +1 -1
  63. package/lib/default.js +4 -13
  64. package/lib/default.js.map +1 -1
  65. package/lib/index.js +0 -3
  66. package/lib/index.js.map +1 -1
  67. package/lib/utils/util.js +5 -17
  68. package/lib/utils/util.js.map +1 -1
  69. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Map.js","names":["Set","Immutable","ArcgisMap","props","grwkid","wkid","isNaN","parseInt","wkidStr","zIndexGraphics","htmlPointsId","pointCollectionId","Label","labelLayer","x","y","GM","graphicManage","getPolygonArea","loadTimer","animTimer","animCount","moveToTimer","drawToolbar","drawParam","editToolbar","editToolbarC","editId","canMoveLabel","mouseNowPosition","px","py","isCount","heatmap","clusterMarkers","clusterPs","clusterPt","morepoints","areaRestriction","movePoints","rangingTool","isRanging","line","points","distance","mapRangingTool","rangingTools","state","gis","mapId","mapCreated","pointIds","lineIds","polygonIds","circleIds","editGraphic","boundaryInfo","drawIds","point","polyline","polygon","circle","rectangle","loadMapJs","loadMapComplete","Promise","resolve","reject","window","GMap","$","getScript","configUrl","arcgisServerURL","Heatmap","mapServerURL","PointCollection","all","then","require","Map","attr","rel","type","href","appendTo","t","createMap","initData","mapPoints","mapLines","mapPolygons","mapCircles","mapVisiblePoints","mapCluster","mapZoomLevel","isOpenTrafficInfo","mapPointCollection","boundaryName","heatMapData","customizedBoundary","Array","addPoint","addLine","addPolygon","addCircle","showControl","heatMapOverlay","cluster","addPointCollection","setAreaRestriction","setState","event","changeLabel","i","cmids","map","item","id","position","getGraphic","geometry","tl","toScreen","height","width","html","css","top","offset","left","add","indexOf","append","remove","czIndex","length","getNode","rangingToolFun","e","status","lnlt","mapPoint","getDistance","longitude","latitude","paths","push","distext","Math","round","random","markerContent","config","markerContentX","markerContentY","color","lineWidth","lineType","updateLine","enableDoubleClickZoom","rangkey","Date","getTime","end","index","removeGraphic","lnglats","on","rp","getGraphicParam","attributes","other","rcontent","sl","pellucidity","updatePoint","clickMap","dragMapStart","dragMapEnd","delta","changeDiv","moveStart","moveEnd","dealClusterPoint","updatePointCollection","eval","replace","draw","dealAreaRestriction","zoomStart","display","isHideHeatMap","hide","zoomEnd","show","getScale","coefficient","pow","floor","toString","gs","toldis","isCent","scaleW","children","graphics","graphic","gid","setVisiblePoints","fitView","ids","clickGraphic","ls","ps","mouseOverGraphic","mouseOutGraphic","setCenter","mapCenter","minZoom","maxZoom","mapServer","options","zoom","center","VtxMap","fullExtent","xmin","ymin","xmax","ymax","autoResize","logo","isKeyboardNavigation","showAttribution","backgroundColor","extent","esri","Extent","spatialReference","onModalResize","resize","reposition","addMapLayers","removeAllLayers","services","servs","im","url","basemap","layers","gisServer","tileInfo","TileInfo","format","SpatialReference","origin","lods","tileExtent","inTileExtent","initialExtent","layerInfo","WMTSLayerInfo","identifier","layer","tileMatrixSet","tilematrixset","style","resourceInfo","version","layerInfos","copyright","serviceMode","wmtsLayer","WMTSLayer","UrlTemplate","substring","console","warn","defaultWmtsMapLayers","dtileInfo","dtileExtent","dinTileExtent","dlayerInfo","dresourceInfo","doptions","substr","j","addLayer","psids","isRepetition","cg","labelContent","labelPixelX","labelPixelY","BAnimationType","deg","Point","marker","label","markerSymbol","symbol","PictureMarkerSymbol","setOffset","Graphic","setAngle","canShowLabel","labelClass","split","join","zIndex","pointAnimation","dealLabelGraphics","setGraphic","setGraphicParam","geometryType","gc","setUrl","setWidth","setHeight","isAnimation","moveTo","animationDelay","autoRotation","urlleft","setGeometry","_extent","update","_parts","refresh","moveAnimation","lsids","isHidden","linePath","Polyline","SimpleLineSymbol","STYLE_SOLID","STYLE_DASH","Color","a","lineSymbol","removePath","addPath","dealData","setColor","setStyle","pgsids","rings","lineColor","lineOpacity","polygonPath","Polygon","lineStyle","polygonSymbol","SimpleFillSymbol","setOutline","polygonColor","removeRing","addRing","outline","ccsids","parseFloat","Circle","radius","circleSymbol","circleColor","setSymbol","data","d","p","lng","lat","size","shape","VotexpointCollection","GMapLib","value","ds","ind","reDraw","clear","max","visible","opacity","HeatmapOverlay","initialize","option","gradient","setOptions","setDataSet","param","obj","clientY","clientX","getMapExtent","clickLngLat","pixel","screenPoint","gt","c","getCenter","centerAt","z","getZoom","setZoom","arg","ary","concat","g","dealExtendBounds","ext","setExtent","geographicExtent","getLevel","gp","gg","pts","mapLayer","area","PI","nowBounds","_getAvailExtent","southWest","northEast","nowCenter","getZoomLevel","mapSize","calculatePointsDistance","disableDoubleClickZoom","splice","clearAllPointCollection","pgs","cs","location","w","h","sliderShow","toolbars","Edit","eid","gcparam","editGraphicChange","calculateDistance","circleCenter","circleEditPXY","cgc","deactivate","activate","MOVE","EDIT_VERTICES","Draw","drawTime","showTooltips","closeDraw","parameter","lnglatAry","rs","pop","sqrt","drawEnd","cursor","len","fillSymbol","setMarkerSymbol","dColor","setFillSymbol","setRespectDrawingVertexOrder","POINT","POLYLINE","setLineSymbol","POLYGON","CIRCLE","RECTANGLE","finishDrawing","clusterToolFunction","graphicText","isCluster","newCluster","warning","contains","createCluster","markers","isreal","addClusterPoint","m","text","TextSymbol","bound","ne","sw","pixelNe","pixelSw","newNe","toMap","newSw","Object","prototype","apply","markerList","_et","xmin1","xmax1","ymin1","ymax1","xmin2","xmax2","ymin2","ymax2","e1","e2","b","fp","ep","totalDistance","path","lngX","latX","lbl","clearInterval","setInterval","yoffset","now","start","notation","xoffset","waitTime","deleteTime","sort","nowMovePoints","slice","deleteIndex","rx","ry","ddeg","_graphicsLayer","tx","ty","lglt","setLatitude","setLongitude","lnglat","delay","urlright","timer","count","s","equalsPoint","rotateDeg","isHave","sp","spLngLat","isArray","tan","atan","disy","bias","is","fromJS","oldData","newData","onlyOldData","subtract","toJS","onlyNewData","onlyOldIDs","onlyNewIDs","updateDataIDs","intersect","updatedData","filter","replacedData","deletedDataIDs","oldID","addedData","ads","otherupds","upds","otherads","_map","init","nextProps","setZoomLevel","setCluster","isRangingTool","isRemove","mapRemove","mapDraw","isDraw","isCloseDraw","editGraphicId","isDoEdit","isEndEdit","isclearAllPointCollection","isSetAreaRestriction","isClearAreaRestriction","isClearAll","deepEqual","dataMatch","clearPointCollection","oldMapPoints","newMapPoints","dealAdd","dealUpdate","oldMapPolygons","newMapPolygons","updatePolygon","oldMapCircles","newMapCircles","updateCircle","oldMapLines","newMapLines","doEdit","endEdit","vtxRangingTool","clearAreaRestriction","clearAll","clearTimeout","setTimeout","React","Component"],"sources":["VtxMap/GMap/Map.js"],"sourcesContent":["import React from 'react';\r\nimport {\r\n graphicManage,defaultWmtsMapLayers,getPixelDistance,getDistance,getPolygonArea\r\n} from '../MapToolFunction';\r\nimport Immutable from 'immutable';\r\n//公共地址配置\r\nimport configUrl from '../../default';\r\nconst {Set} = Immutable;\r\nclass ArcgisMap extends React.Component{ \r\n constructor(props){ \r\n super(props);\r\n this.grwkid = 4326;//wkid 坐标系对应,全局使用.\r\n this.wkid = (isNaN(parseInt(props.wkid))?props.wkid:parseInt(props.wkid)) || 4326;//wkid 坐标系对应,全局使用.\r\n this.wkidStr = isNaN(parseInt(props.wkid))?'wkt':'wkid';\r\n this.zIndexGraphics = [];//需要放在最后的图元,zoom和pan时刷新dom到最后\r\n this.htmlPointsId = 'vtx_gmap_html_points';//html点位容器id class管理\r\n this.pointCollectionId = 'vtx_gmap_html_pointCollection';//海量点canvas点位容器id class管理\r\n this.Label = {};//所有label 集合\r\n this.labelLayer = {x: 0,y: 0};//label图层 位置管理\r\n this.GM = new graphicManage();//初始化 图元管理方法\r\n this.getPolygonArea = getPolygonArea;\r\n this.loadTimer = null;//初始化地图 load时延缓数据处理\r\n this.animTimer = {};//点位跳动动画 定时集合\r\n this.animCount = {};//点位跳动动画 定时计数\r\n this.moveToTimer = null;//moveTo时间对象\r\n this.drawToolbar = null;//绘制对象\r\n this.drawParam = {};//缓存 绘制的数据\r\n this.editToolbar = null;//编辑对象\r\n this.editToolbarC = null;//编辑对象\r\n this.editId = '';//当前编辑的图元id\r\n this.canMoveLabel = false;//编辑点时,label跟着移动开关\r\n //当前鼠标的经纬度,便捷含label点时刷新 \r\n //x,y鼠标坐标 px,py鼠标与点中心偏移坐标 isCount是否计算偏移\r\n this.mouseNowPosition = {x:0,y:0,px:0,py:0,isCount:false};\r\n this.heatmap = null;//热力图对象\r\n this.clusterMarkers = [];//聚合点位id数组\r\n this.clusterPs = [];//聚合集合点\r\n this.clusterPt = [];//地图中聚合点集合\r\n this.morepoints = [];//海量点集合\r\n this.areaRestriction = null;//区域限制数据\r\n this.movePoints = [];\r\n //是否绘制测距\r\n this.rangingTool = {\r\n isRanging: false,//是否开启状态\r\n line: {},//线\r\n points: [],//点\r\n distance: 0,//测距长度\r\n mapRangingTool: null//测距回调\r\n };\r\n this.rangingTools = {};//测距点线缓存\r\n this.state = {\r\n gis: null,//地图对象\r\n mapId: props.mapId,\r\n mapCreated: false,\r\n pointIds:[], //地图上点的ids\r\n lineIds:[], //地图上线的ids\r\n polygonIds:[], //地图上面的ids\r\n circleIds:[], //地图上圆的ids\r\n // editId: '',//当前编辑的图元id\r\n editGraphic: '',//当前编辑完后图元所有数据\r\n boundaryInfo: [],//当前画出的边界线的id和区域名\r\n drawIds: {//绘制工具id集合\r\n point: [],\r\n polyline: [],\r\n polygon: [],\r\n circle: [],\r\n rectangle: []\r\n }\r\n }\r\n this.loadMapJs();\r\n }\r\n //加载地图信息\r\n loadMapJs(){\r\n this.loadMapComplete = new Promise((resolve,reject)=>{\r\n if(window.GMap){\r\n resolve(window.GMap);\r\n }\r\n else{\r\n //加载 js\r\n // $.getScript('http://222.92.212.126:25048/gis/html/js/arcgis_js_api/library/3.9/3.9/init.js',()=>{\r\n $.getScript(`${configUrl.arcgisServerURL}/html/js/arcgis_js_api/library/3.9/3.9/init.js`,()=>{\r\n let Heatmap = new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/gisheatmap.js`,()=>{\r\n resolve();\r\n });\r\n });\r\n let PointCollection = new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/GPointCollection.js`,()=>{\r\n resolve();\r\n });\r\n });\r\n Promise.all([Heatmap,PointCollection]).then(()=>{\r\n //require是关键字 这边用window区别\r\n window.require([ \r\n \"esri/map\", \"esri/layers/ArcGISTiledMapServiceLayer\", \"dojo/on\",\r\n 'esri/geometry/Point','esri/symbols/SimpleMarkerSymbol',\"esri/Color\",\r\n \"esri/graphic\",\"esri/domUtils\",\"esri/toolbars/edit\",\"esri/symbols/PictureMarkerSymbol\",\r\n \"esri/symbols/TextSymbol\",\"esri/symbols/SimpleLineSymbol\",\"esri/toolbars/draw\",\r\n \"esri/layers/WMTSLayer\",\"esri/geometry/Extent\",\"esri/layers/WMTSLayerInfo\",\r\n \"esri/geometry/Polyline\",\"esri/symbols/SimpleFillSymbol\",\"esri/geometry/Circle\",\r\n \"esri/layers/TileInfo\", \"esri/SpatialReference\",\"esri/dijit/BasemapToggle\",\r\n ], function(Map) {\r\n window.GMap = Map;\r\n resolve(window.GMap);\r\n });\r\n })\r\n });\r\n //加载 css\r\n $(\"<link>\").attr({ rel: \"stylesheet\",type: \"text/css\",href: `${configUrl.arcgisServerURL}/html/js/arcgis_js_api/library/3.9/3.9/js/dojo/dijit/themes/tundra/tundra.css`}).appendTo(\"head\");\r\n $(\"<link>\").attr({ rel: \"stylesheet\",type: \"text/css\",href: `${configUrl.arcgisServerURL}/html/js/arcgis_js_api/library/3.9/3.9/js/esri/css/esri.css`}).appendTo(\"head\");\r\n }\r\n });\r\n }\r\n //初始化地图数据\r\n init(){\r\n let t = this;\r\n //创建地图\r\n t.createMap();\r\n // 处理数据(整合)\r\n let initData = ()=>{\r\n const {\r\n mapPoints,mapLines,mapPolygons,mapCircles,\r\n mapVisiblePoints,mapCluster,mapZoomLevel,\r\n isOpenTrafficInfo,mapPointCollection,areaRestriction\r\n } = t.props;\r\n let {boundaryName,heatMapData,customizedBoundary} = t.props;\r\n let {boundaryInfo,pointIds,lineIds,polygonIds,circleIds} = t.state;\r\n //添加点\r\n if(mapPoints instanceof Array){\r\n t.addPoint(mapPoints);\r\n }\r\n //添加线\r\n if(mapLines instanceof Array){\r\n t.addLine(mapLines);\r\n }\r\n //添加面\r\n if(mapPolygons instanceof Array){\r\n t.addPolygon(mapPolygons);\r\n }\r\n //添加圆\r\n if(mapCircles instanceof Array){\r\n t.addCircle(mapCircles);\r\n }\r\n //是否设置比例尺\r\n if(t.props.showControl){\r\n t.showControl();\r\n }\r\n // 画热力图\r\n if(heatMapData){\r\n t.heatMapOverlay(heatMapData);\r\n }\r\n //设置点聚合\r\n if(mapCluster instanceof Array){\r\n t.cluster(mapCluster);\r\n }\r\n //添加海量点\r\n if(mapPointCollection instanceof Array){\r\n t.addPointCollection(mapPointCollection);\r\n }\r\n //设置区域限制\r\n if(areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]){\r\n t.setAreaRestriction(areaRestriction);\r\n }\r\n t.setState({\r\n mapCreated:true\r\n })\r\n }\r\n //事件监听\r\n let event = ()=>{\r\n //html点位 根据地图移动和zoom计算位置\r\n let changeLabel = ()=>{\r\n for(let i in t.Label){\r\n let cmids = t.clusterMarkers.map((item)=>item.id);\r\n if(t.Label[i]){\r\n let position = t.GM.getGraphic(i).geometry;\r\n let tl = t.state.gis.toScreen(position);\r\n // let tl = t.state.gis.toScreen(t.Label[i].position);\r\n //渲染優化\r\n if(!(tl.y < -50 || tl.x < -50 || tl.y > t.state.gis.height || tl.x > t.state.gis.width)){\r\n t.Label[i].html.css({\r\n position: 'absolute',\r\n top: tl.y + t.Label[i].offset.y - t.labelLayer.y,\r\n left: tl.x + t.Label[i].offset.x - t.labelLayer.x\r\n });\r\n if(!t.Label[i].add && cmids.indexOf(i) == -1){\r\n $(`#${t.htmlPointsId}`).append(t.Label[i].html);\r\n t.Label[i].add = true;\r\n }\r\n }else{\r\n if(t.Label[i].add && cmids.indexOf(i) == -1){\r\n t.Label[i].html.remove();\r\n t.Label[i].add = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n //见需要在顶部显示的图元重新排位置\r\n let czIndex = ()=>{\r\n for(let i = 0 ; i < t.zIndexGraphics.length; i++){\r\n $(`#${t.props.mapId}_graphics_layer`).append(t.GM.getGraphic(t.zIndexGraphics[i]).getNode());\r\n }\r\n }\r\n /*测距功能*/\r\n let rangingToolFun = (e,status)=>{\r\n if(t.rangingTool.isRanging){\r\n //测距开始\r\n //点击位置\r\n let lnlt = [e.mapPoint.x,e.mapPoint.y];\r\n //2个点以上 计算长度\r\n if(t.rangingTool.points.length > 0){\r\n t.rangingTool.distance += getDistance(lnlt,\r\n [t.rangingTool.points[t.rangingTool.points.length-1].longitude,\r\n t.rangingTool.points[t.rangingTool.points.length-1].latitude],\r\n t.state.gis,\r\n t.grwkid\r\n );\r\n }else{\r\n t.rangingTool.line.paths = [];\r\n }\r\n t.rangingTool.line.paths.push([...lnlt]);\r\n //处理距离展示\r\n let distext = t.rangingTool.distance > 0\r\n ?(t.rangingTool.distance > 1000\r\n ?`总长:${Math.round(t.rangingTool.distance/10)/100}公里`:`总长:${t.rangingTool.distance}米`)\r\n :'起点';\r\n //加点\r\n let point = {\r\n id: t.rangingTool.points.length + 'vtx_g_rang_p'+Math.random(),\r\n longitude: lnlt[0],\r\n latitude: lnlt[1],\r\n markerContent: `\r\n <div style='z-index:1;'>\r\n <div class='vtx-g-rangingPoint'></div>\r\n <div class='vtx-g-rangingDistance'>${distext}</div>\r\n </div>\r\n `,\r\n config: {\r\n width:130,\r\n height:30,\r\n markerContentX: -5.5,\r\n markerContentY: -12.5,\r\n }\r\n };\r\n //用addpoint方法加点\r\n t.addPoint([point]);\r\n //缓存点信息\r\n t.rangingTool.points.push(point);\r\n if(t.rangingTool.line.paths.length == 2){\r\n //加线\r\n t.rangingTool.line = {\r\n id: 'vtx_g_rang_line'+Math.random(),\r\n paths: [...t.rangingTool.line.paths],\r\n config:{\r\n color: '#ff0000',\r\n lineWidth: 2,\r\n lineType: 'solid'\r\n }\r\n }\r\n t.addLine([t.rangingTool.line]);\r\n }else if(t.rangingTool.line.paths.length > 2){\r\n t.updateLine([{\r\n ...t.rangingTool.line,\r\n paths: [...t.rangingTool.line.paths]\r\n }]);\r\n }\r\n //双击 测距结束\r\n if(status == 'dbl'){\r\n //开启双击缩放功能\r\n t.state.gis.enableDoubleClickZoom();\r\n let rangkey = new Date().getTime()+Math.random();\r\n //加结束点\r\n let end = {\r\n id: 'vtx_g_rang_end'+Math.random(),\r\n longitude: lnlt[0],\r\n latitude: lnlt[1],\r\n markerContent: `\r\n <div>\r\n <div class='vtx-g-rang-exit'>x</div>\r\n </div>\r\n `,\r\n config: {\r\n width:13,\r\n height:13,\r\n markerContentX: -20,\r\n markerContentY: -20,\r\n },\r\n index: rangkey\r\n };\r\n //用addpoint方法加点\r\n t.addPoint([end]);\r\n //删除提示框 \r\n t.removeGraphic('vtx-g-rang-showRangTool','point');\r\n t.removeGraphic('vtx-g-rang-showRangTool-line','line');\r\n //缓存当前这一条测距数据\r\n t.rangingTools[rangkey] = {...t.rangingTool};\r\n //回调测距参数\r\n if(t.rangingTool.mapRangingTool){\r\n t.rangingTool.mapRangingTool({\r\n distance: t.rangingTool.distance,\r\n lnglats: t.rangingTool.line.paths\r\n })\r\n }\r\n t.rangingTool.isRanging = false;\r\n t.rangingTool = {\r\n ...t.rangingTool,\r\n isRanging: false,//是否开启状态\r\n line: {},//线缓存\r\n points: [],//点\r\n distance: 0//测距长度\r\n }\r\n }\r\n }\r\n }\r\n //地图鼠标移入事件\r\n t.state.gis.on('mouse-over',(e)=>{\r\n //鼠标移出地图时,删除测距显示点\r\n if(t.rangingTool.isRanging){\r\n let rp = {\r\n id: 'vtx-g-rang-showRangTool',\r\n longitude: e.mapPoint.x,\r\n latitude: e.mapPoint.y,\r\n markerContent: `\r\n <div class='vtx-g-rang-showRangTool'>单击确定起点</div>\r\n `,\r\n config: {\r\n markerContentX: 20,\r\n markerContentY: 20\r\n }\r\n }\r\n t.addPoint([rp]);\r\n }\r\n });\r\n //地图鼠标移出事件\r\n t.state.gis.on('mouse-out',(e)=>{\r\n //鼠标移出地图时,删除测距显示点\r\n if(t.rangingTool.isRanging){\r\n t.removeGraphic('vtx-g-rang-showRangTool','point');\r\n }\r\n });\r\n //地图鼠标移动事件\r\n t.state.gis.on('mouse-move',(e)=>{\r\n //鼠标移动地图时,删除测距显示点\r\n if(t.rangingTool.isRanging){\r\n //获取测距提示点位\r\n let rp = {...t.GM.getGraphicParam('vtx-g-rang-showRangTool').attributes};\r\n //删除多余数据,避免other层级太多\r\n delete rp.other;\r\n let rcontent = rp.markerContent;\r\n if(t.rangingTool.points.length > 0){\r\n let distance = getDistance(\r\n [e.mapPoint.x,e.mapPoint.y],\r\n [t.rangingTool.points[t.rangingTool.points.length-1].longitude,\r\n t.rangingTool.points[t.rangingTool.points.length-1].latitude],\r\n t.state.gis,\r\n t.grwkid\r\n );\r\n // 实时计算距离\r\n distance += t.rangingTool.distance;\r\n let distext = distance > 1000\r\n ?`总长:${Math.round(distance/10)/100}公里`:`总长:${distance}米`;\r\n rcontent = `\r\n <div class='vtx-g-rang-showRangTool'>\r\n <div>${distext}</div>\r\n <div>单击确定地点,双击结束</div>\r\n </div>\r\n `;\r\n //测距移动的线\r\n let sl = {\r\n id: 'vtx-g-rang-showRangTool-line',\r\n paths: [\r\n [ t.rangingTool.points[t.rangingTool.points.length-1].longitude,\r\n t.rangingTool.points[t.rangingTool.points.length-1].latitude\r\n ],\r\n [e.mapPoint.x,e.mapPoint.y]\r\n ],\r\n config: {\r\n color: '#ff0000',\r\n lineWidth: 2,\r\n lineType: 'solid',\r\n pellucidity: 0.5\r\n }\r\n };\r\n if(!t.GM.getGraphic('vtx-g-rang-showRangTool-line')){\r\n t.addLine([sl]);\r\n }else{\r\n t.updateLine([sl]);\r\n }\r\n }\r\n rp = {\r\n ...rp,\r\n longitude: e.mapPoint.x,\r\n latitude: e.mapPoint.y,\r\n markerContent: rcontent\r\n }\r\n t.updatePoint([rp]);\r\n }\r\n //编辑移动\r\n if(t.editId && t.canMoveLabel){\r\n t.mouseNowPosition = {\r\n ...t.mouseNowPosition,\r\n x: e.mapPoint.x,\r\n y: e.mapPoint.y\r\n };\r\n }\r\n });\r\n //地图双击事件\r\n t.state.gis.on('dbl-click',(e)=>{\r\n /*测距功能*/\r\n rangingToolFun(e,'dbl');\r\n })\r\n //地图点击事件\r\n t.state.gis.on('click',(e)=>{\r\n let t = this;\r\n /*测距功能*/\r\n rangingToolFun(e);\r\n //地图点击事件\r\n t.clickMap(e);\r\n });\r\n //鼠标拖拽开始事件\r\n t.state.gis.on('mouse-drag-start',(e)=>{\r\n t.dragMapStart(e);\r\n });\r\n //鼠标拖拽结束事件\r\n t.state.gis.on('mouse-drag-end',(e)=>{\r\n t.dragMapEnd(e);\r\n });\r\n //1.地图移动事件\r\n t.state.gis.on('pan',(e)=>{\r\n //切换html图层位置\r\n $(`#${t.htmlPointsId}`).css({\r\n top: t.labelLayer.y + e.delta.y,\r\n left: t.labelLayer.x + e.delta.x\r\n });\r\n $(`#${t.pointCollectionId}`).css({\r\n top: e.delta.y,\r\n left: e.delta.x\r\n });\r\n \r\n if(t.heatmap){\r\n t.heatmap.changeDiv(e.delta.y,e.delta.x);\r\n }\r\n });\r\n //地图拖动开始\r\n t.state.gis.on('pan-start',(e)=>{\r\n t.moveStart(e);\r\n });\r\n //地图拖动结束\r\n t.state.gis.on('pan-end',(e)=>{\r\n t.moveEnd(e);\r\n //聚合点位id存在,则执行聚合运算\r\n if(t.clusterMarkers.length > 0){\r\n t.dealClusterPoint();\r\n }\r\n $(`#${t.pointCollectionId}`).css({\r\n top: 0,\r\n left: 0\r\n });\r\n //重画海量点\r\n if(t.morepoints.length > 0){\r\n t.updatePointCollection(t.props.mapPointCollection);\r\n }\r\n //记录html图层位置\r\n t.labelLayer = {\r\n x: eval($(`#${t.htmlPointsId}`).css('left').replace('px','')),\r\n y: eval($(`#${t.htmlPointsId}`).css('top').replace('px',''))\r\n }\r\n //html点位 根据地图移动和zoom计算位置\r\n changeLabel();\r\n //热力图重绘\r\n if(t.heatmap){\r\n t.heatmap.draw();\r\n }\r\n //见需要在顶部显示的图元重新排位置\r\n for(let i = 0 ; i < t.zIndexGraphics.length; i++){\r\n t.czIndex(t.zIndexGraphics[i]);\r\n }\r\n //处理区域限制逻辑\r\n if(t.areaRestriction){\r\n t.dealAreaRestriction(e);\r\n }\r\n });\r\n // 地图zoom开始\r\n t.state.gis.on('zoom-start',(e)=>{\r\n t.zoomStart(e);\r\n //隐藏label根节点\r\n $(`#${t.htmlPointsId}`).css({display:'none'});\r\n //海量点dom\r\n $(`#${t.pointCollectionId}`).css({display: 'none'});\r\n if(t.heatmap && !t.isHideHeatMap){\r\n t.heatmap.hide();\r\n }\r\n });\r\n // 地图zoom结束\r\n t.state.gis.on('zoom-end',(e)=>{\r\n t.zoomEnd(e);\r\n //聚合点位id存在,则执行聚合运算\r\n if(t.clusterMarkers.length > 0){\r\n t.dealClusterPoint();\r\n }\r\n //显示label根节点\r\n $(`#${t.htmlPointsId}`).css({display:'inline-block'});\r\n //海量点dom\r\n $(`#${t.pointCollectionId}`).css({display: 'inline-block'});\r\n //刷新label点位位置\r\n changeLabel();\r\n if(t.heatmap && !t.isHideHeatMap){\r\n t.heatmap.show();\r\n t.heatmap.draw();\r\n }\r\n //重画海量点\r\n if(t.morepoints.length > 0){\r\n t.updatePointCollection(t.props.mapPointCollection);\r\n }\r\n //见需要在顶部显示的图元重新排位置\r\n for(let i = 0 ; i < t.zIndexGraphics.length; i++){\r\n t.czIndex(t.zIndexGraphics[i]);\r\n }\r\n //重新计算比例尺\r\n if($(`#${t.props.mapId}_zoom_slider_show`)[0]){\r\n let getScale = t.state.gis.getScale()*0.025399998/96;\r\n //分母系数\r\n let coefficient = Math.pow(10,Math.floor(getScale).toString().length-1);\r\n //判断系数 , 总长度值\r\n let gs = getScale/coefficient,toldis = 1,isCent = false;\r\n //计算比例尺数值和长度\r\n if(gs < 1){\r\n isCent = true;\r\n gs *= 10;\r\n }\r\n if(gs >= 5){\r\n toldis = 5*coefficient*100\r\n }else if(gs >= 2){\r\n toldis = 2*coefficient*100;\r\n }else{\r\n toldis = 1*coefficient*100;\r\n }\r\n let scaleW = toldis/getScale;\r\n if(isCent){\r\n scaleW /= 10;\r\n toldis /= 10;\r\n }\r\n //宽度矫正处理\r\n if(scaleW<50){\r\n toldis *= 1.5;\r\n scaleW = toldis/getScale;\r\n }\r\n //处理比例尺值显示\r\n toldis = toldis >= 1000? `${Math.round(toldis/1000)}公里`: `${toldis}米`;\r\n $(`#${t.props.mapId}_zoom_slider_show`).css({width: scaleW-2});\r\n $($(`#${t.props.mapId}_zoom_slider_show`).children()[0]).html(toldis);\r\n }\r\n });\r\n //2.图元事件\r\n //图元点击事件\r\n t.state.gis.graphics.on('click',(e)=>{\r\n if(!e.graphic.attributes){\r\n return;\r\n }\r\n let gid = e.graphic.attributes.id;\r\n //聚合点位不执行 图元事件\r\n if(gid == 'vtx-clusterPoint'){\r\n t.setVisiblePoints({fitView: e.graphic.attributes.ids});\r\n return false;\r\n }\r\n t.clickGraphic(gid,e);\r\n if(typeof(e.graphic.attributes) == 'object'){\r\n //点击图元的id\r\n //判断是否点击的测距关闭点位\r\n if(gid && gid.indexOf('vtx_g_rang_end') > -1){\r\n let index = t.GM.getGraphicParam(gid).attributes.index;\r\n let ls = t.rangingTools[index].line,\r\n ps = t.rangingTools[index].points;\r\n //删除测距线\r\n t.removeGraphic(ls.id,'line');\r\n //删除关闭点\r\n t.removeGraphic(gid,'point');\r\n //删除中间点\r\n for(let i = 0 ; i < ps.length ; i++){\r\n t.removeGraphic(ps[i].id,'point');\r\n }\r\n //清除测距数据缓存\r\n delete t.rangingTools[index];\r\n }\r\n }\r\n })\r\n //图元鼠标移入事件\r\n t.state.gis.graphics.on('mouse-over',(e)=>{\r\n if(!e.graphic.attributes){\r\n return;\r\n }\r\n let gid = e.graphic.attributes.id;\r\n //聚合点位不执行 图元事件\r\n if(gid == 'vtx-clusterPoint'){\r\n return false;\r\n }\r\n t.mouseOverGraphic(gid,e);\r\n });\r\n //图元鼠标移除事件\r\n t.state.gis.graphics.on('mouse-out',(e)=>{\r\n if(!e.graphic.attributes){\r\n return;\r\n }\r\n let gid = e.graphic.attributes.id;\r\n //聚合点位不执行 图元事件\r\n if(gid == 'vtx-clusterPoint'){\r\n return false;\r\n }\r\n t.mouseOutGraphic(gid,e);\r\n });\r\n }\r\n //graphics对象存在 直接处理数据,不存在 通过load事件等待\r\n if(t.state.gis.graphics){\r\n $(`#${t.props.mapId}_gc`).css({'z-index': 1});\r\n //添加自定义图元 图层\r\n $(`#${t.props.mapId}_layers`).append(\r\n `<div id=${t.htmlPointsId} class='vtx_gmap_html_points' ></div>`\r\n );\r\n //海量点图元容器\r\n $(`#${t.props.mapId}_layers`).append(\r\n `<div id=${t.pointCollectionId} class='vtx_gmap_html_pointCollection' ></div>`\r\n );\r\n //隐藏比例尺控制 (便于后期控制显示)\r\n $(`#${t.props.mapId}_zoom_slider`).css({display: 'none'});\r\n //事件监听\r\n event();\r\n t.setCenter(t.props.mapCenter);\r\n //处理数据\r\n initData();\r\n }\r\n t.state.gis.on('load',()=>{\r\n $(`#${t.props.mapId}_gc`).css({'z-index': 1});\r\n //添加自定义图元 图层\r\n $(`#${t.props.mapId}_layers`).append(\r\n `<div id=${t.htmlPointsId} class='vtx_gmap_html_points' ></div>`\r\n );\r\n //海量点图元容器\r\n $(`#${t.props.mapId}_layers`).append(\r\n `<div id=${t.pointCollectionId} class='vtx_gmap_html_pointCollection' ></div>`\r\n );\r\n //隐藏比例尺控制 (便于后期控制显示)\r\n $(`#${t.props.mapId}_zoom_slider`).css({display: 'none'});\r\n //事件监听\r\n event();\r\n t.setCenter(t.props.mapCenter);\r\n //处理数据\r\n initData();\r\n });\r\n }\r\n //创建地图 1.gis服务 需要load 2.wmts wms等服务无需load\r\n createMap () {\r\n let t = this;\r\n const {mapCenter,mapId,mapZoomLevel,minZoom,maxZoom,mapServer} = t.props;\r\n let options ={\r\n zoom: mapZoomLevel || 10,\r\n center: mapCenter || [120.404,30.915]\r\n };\r\n if(minZoom){\r\n options.minZoom = parseInt(minZoom);\r\n }\r\n if(maxZoom){\r\n options.maxZoom = parseInt(maxZoom);\r\n }\r\n if(!window.VtxMap){\r\n window.VtxMap = {};\r\n }\r\n let fullExtent = (mapServer || {}).fullExtent || {\r\n xmin : -180.0,ymin : -90.0,xmax : 180.0,ymax : 90.0\r\n };\r\n let map = window.VtxMap[mapId] = t.state.gis = new GMap(t.props.mapId.toString(),{\r\n autoResize: true,\r\n logo : false,\r\n isKeyboardNavigation : false,\r\n showAttribution:true,\r\n backgroundColor: '#f1f1f1',\r\n extent: new esri.geometry.Extent({\r\n ...fullExtent,\r\n spatialReference:{[t.wkidStr]:t.wkid}\r\n }),\r\n ...options\r\n });\r\n window.onModalResize = ()=>{\r\n map.resize(true);\r\n map.reposition();\r\n }\r\n t.addMapLayers(mapServer);\r\n t.htmlPointsId = `${mapId}_${t.htmlPointsId}`;\r\n t.pointCollectionId = `${mapId}_${t.pointCollectionId}`;\r\n }\r\n //处理图层\r\n addMapLayers(mapServer = {}){\r\n let t = this;\r\n //清除所有图层服务\r\n t.state.gis.removeAllLayers();\r\n let services = [...(mapServer.services || [])],\r\n servs = [];\r\n for(let im = 0; im < services.length ; im++){\r\n let url = services[im].url;\r\n //从新加载图层\r\n switch(services[im].type){\r\n case 'gis':\r\n for(let i = 0 ; i < url.length ; i++){\r\n let basemap = new esri.layers[services[im].gisServer || 'ArcGISTiledMapServiceLayer'](url[i]);\r\n servs.push(basemap);\r\n }\r\n break;\r\n case 'wmts':\r\n for(let i = 0 ; i < url.length ; i++){\r\n let tileInfo = new esri.layers.TileInfo({\r\n \"dpi\": 96,\r\n \"format\": services[im].format || \"format/png\",\r\n \"compressionQuality\": 0,\r\n \"spatialReference\": new esri.SpatialReference({\r\n [t.wkidStr]: t.wkid || 4326\r\n }),\r\n \"rows\": 256,\r\n \"cols\": 256,\r\n \"origin\": mapServer.origin || {x : -180,y : 90},\r\n \"lods\": mapServer.lods || []\r\n });\r\n let tileExtent = new esri.geometry.Extent(mapServer.fullExtent.xmin, mapServer.fullExtent.ymin, mapServer.fullExtent.xmax, mapServer.fullExtent.ymax, new esri.SpatialReference({\r\n [t.wkidStr]: t.wkid\r\n }));\r\n let inTileExtent = new esri.geometry.Extent(mapServer.initialExtent.xmin, mapServer.initialExtent.ymin, mapServer.initialExtent.xmax, mapServer.initialExtent.ymax, new esri.SpatialReference({\r\n [t.wkidStr]: t.wkid\r\n }));\r\n let layerInfo = new esri.layers.WMTSLayerInfo({\r\n tileInfo: tileInfo,\r\n fullExtent: tileExtent,\r\n initialExtent: inTileExtent,\r\n identifier: (services[im].layer || {})[i] || \"SRTM_Color_Index\",\r\n tileMatrixSet: services[im].tilematrixset || \"31.25m\",\r\n format: services[im].format || \"png\",\r\n style: \"default\"\r\n });\r\n let resourceInfo = {\r\n version: \"1.0.0\",\r\n layerInfos: [layerInfo],\r\n copyright: ''\r\n };\r\n let options = {\r\n serviceMode: \"KVP\",\r\n resourceInfo: resourceInfo,\r\n layerInfo: layerInfo,\r\n };\r\n let wmtsLayer = new esri.layers.WMTSLayer(url[i], options);\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace(wmtsLayer.UrlTemplate.substring(\r\n wmtsLayer.UrlTemplate.indexOf('&FORMAT'),\r\n wmtsLayer.UrlTemplate.indexOf('&TILEMATRIXSET')\r\n ),`&FORMAT=${services[im].format || 'format/png'}`);\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('SERVICE','service');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&VERSION','&version');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&REQUEST','&request');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&LAYER','&layer');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&STYLE','&format');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&FORMAT','&style');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILEMATRIXSET','&tileMatrixSet');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILEMATRIX','&tileMatrix');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILEROW','&tileRow');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILECOL','&tileCol');\r\n servs.push(wmtsLayer);\r\n }\r\n break;\r\n }\r\n }\r\n if(services.length <= 0){\r\n console.warn('!warning 图层服务必选,或图层类型暂不支持,默认天地图浙江地理wmts图层服务!');\r\n for(let im = 0; im < defaultWmtsMapLayers.services.length ; im++){\r\n let url = defaultWmtsMapLayers.services[im].url;\r\n let dtileInfo = new esri.layers.TileInfo({\r\n \"dpi\": 96,\r\n // \"format\": \"tiles\",\r\n \"compressionQuality\": 0,\r\n \"spatialReference\": new esri.SpatialReference({\r\n [t.wkidStr]: t.wkid || 4326\r\n }),\r\n \"rows\": 256,\r\n \"cols\": 256,\r\n \"origin\": defaultWmtsMapLayers.origin || {x : -180,y : 90},\r\n \"lods\": defaultWmtsMapLayers.lods || []\r\n });\r\n let dtileExtent = new esri.geometry.Extent(defaultWmtsMapLayers.fullExtent.xmin, defaultWmtsMapLayers.fullExtent.ymin, defaultWmtsMapLayers.fullExtent.xmax, defaultWmtsMapLayers.fullExtent.ymax, new esri.SpatialReference({\r\n [t.wkidStr]: t.wkid\r\n }));\r\n let dinTileExtent = new esri.geometry.Extent(defaultWmtsMapLayers.initialExtent.xmin, defaultWmtsMapLayers.initialExtent.ymin, defaultWmtsMapLayers.initialExtent.xmax, defaultWmtsMapLayers.initialExtent.ymax, new esri.SpatialReference({\r\n [t.wkidStr]: t.wkid\r\n }));\r\n for(let i = 0 ; i < url.length ; i++){\r\n let dlayerInfo = new esri.layers.WMTSLayerInfo({\r\n tileInfo: dtileInfo,\r\n fullExtent: dtileExtent,\r\n initialExtent: dinTileExtent,\r\n identifier: defaultWmtsMapLayers.services[im].layer[i] || \"SRTM_Color_Index\",\r\n tileMatrixSet: defaultWmtsMapLayers.services[im].tilematrixset || \"31.25m\",\r\n format: defaultWmtsMapLayers.services[im].format || \"png\",\r\n style: \"default\"\r\n });\r\n let dresourceInfo = {\r\n version: \"1.0.0\",\r\n layerInfos: [dlayerInfo],\r\n copyright: ''\r\n };\r\n let doptions = {\r\n serviceMode: \"KVP\",\r\n resourceInfo: dresourceInfo,\r\n layerInfo: dlayerInfo,\r\n };\r\n let wmtsLayer = new esri.layers.WMTSLayer(url[i], doptions);\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace(\r\n wmtsLayer.UrlTemplate.substr(wmtsLayer.UrlTemplate.indexOf('&FORMAT='),\r\n wmtsLayer.UrlTemplate.substr(\r\n wmtsLayer.UrlTemplate.indexOf('&FORMAT=')+1).indexOf('&')+1),\r\n `&FORMAT=${defaultWmtsMapLayers.services[im].format || 'format/png'}`\r\n );\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('SERVICE','service');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&VERSION','&version');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&REQUEST','&request');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&LAYER','&layer');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&STYLE','&format');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&FORMAT','&style');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILEMATRIXSET','&tileMatrixSet');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILEMATRIX','&tileMatrix');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILEROW','&tileRow');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILECOL','&tileCol');\r\n servs.push(wmtsLayer);\r\n }\r\n }\r\n }\r\n for(let j = 0 ; j < servs.length ; j++){\r\n t.state.gis.addLayer(servs[j]);\r\n }\r\n }\r\n //新增点位\r\n addPoint(mapPoints,type){\r\n let t = this;\r\n let psids = [...t.state.pointIds];\r\n //添加绘制点\r\n if(type && type !== 'defined'){\r\n psids = [...t.state.drawIds[type]];\r\n }\r\n mapPoints.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`加点id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`点 经纬度 数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n width : 30,\r\n height : 30,\r\n labelContent: '',\r\n labelPixelX: 0,\r\n labelPixelY: 34,\r\n BAnimationType: 3,\r\n //高德以左上定位,百度以中心为定位\r\n //默认点的偏移值就不同\r\n markerContentX: -15,\r\n markerContentY: -30,\r\n deg: 0\r\n }\r\n if(item.markerContent){\r\n cg = {...cg,markerContentX: 0,markerContentY: 0,width:100,height:30};\r\n }\r\n //初始化默认数据\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //创建arcgis的经纬度对象\r\n let position = new esri.geometry.Point({\r\n longitude: item.longitude,\r\n latitude: item.latitude,\r\n spatialReference:{ wkid: t.grwkid }\r\n });\r\n let marker = null,label = null;\r\n if(item.markerContent){\r\n //html点位\r\n //添加透明点(便于事件处理)\r\n let markerSymbol = new esri.symbol.PictureMarkerSymbol(\r\n `${configUrl.mapServerURL}/images/touming.png`, cg.width, cg.height\r\n );\r\n //设置偏移点的位置到左上角(原来在中心)\r\n markerSymbol.setOffset(cg.markerContentX + cg.width/2, -(cg.markerContentY + cg.height/2));\r\n marker = new esri.Graphic(position, markerSymbol,{id:item.id});\r\n //设置markercontent的数据,用于label加点到地图\r\n label = {\r\n html: $(item.markerContent),\r\n offset: {\r\n x: cg.markerContentX,\r\n y: cg.markerContentY\r\n },\r\n position\r\n }\r\n }else{\r\n //图片点位\r\n let markerSymbol = new esri.symbol.PictureMarkerSymbol(\r\n (item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`), cg.width, cg.height\r\n );\r\n markerSymbol.setAngle(cg.deg);\r\n //设置偏移点的位置到左上角(原来在中心)\r\n markerSymbol.setOffset(\r\n cg.markerContentX + cg.width/2, -(cg.markerContentY + cg.height/2)\r\n );\r\n //点位图元\r\n marker = new esri.Graphic(position, markerSymbol,{id:item.id});\r\n //添加label\r\n if(item.canShowLabel && cg.labelContent){\r\n //label默认样式\r\n let labelClass = 'label-content';\r\n //接受label自定义样式\r\n if(item.labelClass){\r\n labelClass = item.labelClass.split(',').join(' ');\r\n }\r\n //设置label的数据,用于label加点到地图\r\n label = {\r\n html: $(\r\n `<div style='margin-left: 0;z-index: ${cg.zIndex || 0};'>\r\n <div class='${labelClass}'>${cg.labelContent}</div>\r\n </div>`\r\n ),\r\n //offset 需要处理 图片点位的位置(将点位偏移和宽度加入计算)\r\n offset: {\r\n x: cg.labelPixelX + (cg.markerContentX + cg.width/2),\r\n y: cg.labelPixelY + (cg.markerContentY)\r\n },\r\n position \r\n }\r\n }\r\n }\r\n //点跳动动画\r\n if(!item.markerContent && cg.BAnimationType == 0){\r\n t.pointAnimation(item.id,marker);\r\n }else{\r\n t.pointAnimation(item.id,null);\r\n }\r\n //添加图元到地图\r\n t.state.gis.graphics.add(marker);\r\n //统一处理添加点位 含label和html的添加\r\n //处理label的加点\r\n t.dealLabelGraphics(item.id,label);\r\n //缓存所有点的id\r\n psids.push(item.id);\r\n //缓存当前点的图元对象和基本数据\r\n t.GM.setGraphic(item.id,marker)\r\n .setGraphicParam(item.id,{\r\n attributes: {...item,other: item},\r\n geometryType: 'point',\r\n geometry: {\r\n type: 'point',\r\n x: item.longitude,\r\n y: item.latitude\r\n }\r\n });\r\n });\r\n if(type !== 'defined'){\r\n //添加绘制点\r\n if(type){\r\n t.state.drawIds = {\r\n ...t.state.drawIds,\r\n [type]: psids\r\n };\r\n // t.setState({\r\n // drawIds:{\r\n // ...t.state.drawIds,\r\n // [type]: psids\r\n // }\r\n // });\r\n }else{\r\n t.state.pointIds = psids;\r\n //所有点缓存在state中\r\n // t.setState({\r\n // pointIds: psids\r\n // });\r\n }\r\n }\r\n }\r\n //更新点位\r\n updatePoint(mapPoints){\r\n let t = this;\r\n // let dpoints = [],apoints = [];\r\n mapPoints.map((item,index)=>{\r\n //判断图元是否存在.\r\n if (this.GM.isRepetition(item.id)) {\r\n //点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`点 经纬度 数据错误`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = t.GM.getGraphic(item.id);\r\n let cg = {\r\n width : 30,\r\n height : 30,\r\n labelContent: '',\r\n labelPixelX: 0,\r\n labelPixelY: 34,\r\n BAnimationType: 3,\r\n //高德以左上定位,百度以中心为定位\r\n //默认点的偏移值就不同\r\n markerContentX: -15,\r\n markerContentY: -30,\r\n deg: 0\r\n }\r\n if(item.markerContent){\r\n cg = {...cg,markerContentX: 0,markerContentY: 0,width:100,height:30};\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //创建arcgis的经纬度对象\r\n let position = new esri.geometry.Point({\r\n longitude: item.longitude,\r\n latitude: item.latitude,\r\n spatialReference:{ wkid: t.grwkid }\r\n });\r\n //label对象\r\n let label = null;\r\n if(item.markerContent){\r\n //symbol 样式信息修改\r\n if(gc.symbol){\r\n gc.symbol.setUrl(`${configUrl.mapServerURL}/images/touming.png`);\r\n }\r\n //设置markercontent的数据,用于label加点到地图\r\n label = {\r\n html: $(item.markerContent),\r\n offset: {\r\n x: cg.markerContentX,\r\n y: cg.markerContentY\r\n },\r\n position\r\n }\r\n\r\n }else{\r\n //symbol 样式信息修改\r\n if(gc.symbol){\r\n gc.symbol.setUrl(item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`);\r\n }\r\n gc.symbol.setAngle(cg.deg);\r\n //添加label\r\n if(item.canShowLabel && cg.labelContent){\r\n //label默认样式\r\n let labelClass = 'label-content';\r\n //接受label自定义样式\r\n if(item.labelClass){\r\n labelClass = item.labelClass.split(',').join(' ');\r\n }\r\n //设置label的数据,用于label加点到地图\r\n label = {\r\n html: $(\r\n `<div style='margin-left: 0;'>\r\n <div class='${labelClass}'>${cg.labelContent}</div>\r\n </div>`\r\n ),\r\n //offset 需要处理 图片点位的位置(将点位偏移和宽度加入计算)\r\n offset: {\r\n x: cg.labelPixelX + (cg.markerContentX + cg.width/2),\r\n y: cg.labelPixelY + (cg.markerContentY)\r\n },\r\n position \r\n }\r\n }\r\n }\r\n //symbol 样式信息修改\r\n if(gc.symbol){\r\n gc.symbol.setOffset(cg.markerContentX + cg.width/2, -(cg.markerContentY + cg.height/2));\r\n gc.symbol.setWidth(cg.width);\r\n gc.symbol.setHeight(cg.height);\r\n }\r\n //点位动画效果\r\n if(!item.markerContent && cg.BAnimationType == 0){\r\n t.pointAnimation(item.id,gc);\r\n }else{\r\n t.pointAnimation(item.id,null);\r\n }\r\n \r\n //动画效果会延迟执行经纬度的切换\r\n if(cg.isAnimation){\r\n t.moveTo(item.id,[item.longitude,item.latitude],cg.animationDelay,cg.autoRotation,item.url,item.urlleft);\r\n }else{\r\n //gometry 位置信息修改\r\n if(gc.geometry){\r\n // gc.geometry.setLatitude(item.latitude);\r\n // gc.geometry.setLongitude(item.longitude);\r\n gc.setGeometry(position);\r\n //设置完点位后 需要刷新下点位的显示范围\r\n gc._extent.update(item.longitude,item.latitude,item.longitude,item.latitude,new esri.SpatialReference({ wkid: t.grwkid }));\r\n if(gc._extent._parts && gc._extent._parts[0]){\r\n gc._extent._parts[0].extent.update(item.longitude,item.latitude,item.longitude,item.latitude,new esri.SpatialReference({ wkid: t.grwkid }));\r\n }\r\n // gc._extent.update(new esri.geometry.Extent(item.longitude,item.latitude,item.longitude,item.latitude,{ wkid: t.grwkid }));\r\n // gc._extent._parts[0].extent = gc._extent.centerAt(position);\r\n }\r\n }\r\n //删除原有的label 下面从新加载\r\n if(t.Label[item.id]){\r\n t.Label[item.id].html.remove();\r\n }\r\n //刷新点位\r\n t.dealLabelGraphics(item.id,label);\r\n //刷新缓存数据\r\n t.GM.setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {...item,other: item},\r\n geometryType: 'point',\r\n geometry: {\r\n type: 'point',\r\n x: item.longitude,\r\n y: item.latitude\r\n }\r\n }\r\n );\r\n }else{\r\n console.warn(`更新的点位id不存在!`);\r\n return false;\r\n }\r\n });\r\n t.state.gis.graphics.refresh(); \r\n t.moveAnimation();\r\n }\r\n //添加线\r\n addLine(mapLines,type){\r\n let t = this;\r\n let lsids = [...t.state.lineIds];\r\n if(type && type !== 'defined'){\r\n lsids = [...t.state.drawIds[type]];\r\n }\r\n //遍历添加线(图元)\r\n mapLines.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`多折线id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多折线点位数据不符合,直接跳过\r\n if(!(item.paths && item.paths.length >= 2)){\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n //初始化默认参数\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',\r\n isHidden: false\r\n }\r\n //合并参数\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //处理线的点数组\r\n let linePath = new esri.geometry.Polyline({\r\n paths: [[...item.paths]],\r\n spatialReference: { wkid: t.grwkid}\r\n });\r\n //线类型\r\n let style = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(cg.lineType){\r\n case 'solid':\r\n style = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n style = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n //处理颜色和透明度 使用rgba处理透明度\r\n let color = new esri.Color(cg.color);\r\n color.a = cg.pellucidity;\r\n //线类型对象\r\n let lineSymbol = new esri.symbol.SimpleLineSymbol(style,color,cg.lineWidth);\r\n //创建线对象\r\n let line = new esri.Graphic(linePath,lineSymbol,{id:item.id});\r\n //判断线显示和隐藏\r\n if(cg.isHidden){\r\n line.hide();\r\n }else{\r\n line.show();\r\n }\r\n lsids.push(item.id);\r\n //添加线图元\r\n t.state.gis.graphics.add(line);\r\n //处理线缓存\r\n t.GM.setGraphic(item.id,line)\r\n .setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n paths: item.paths,\r\n other: item\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: item.paths\r\n }\r\n });\r\n });\r\n if(type !== 'defined'){\r\n //添加绘制点\r\n if(type){\r\n t.state.drawIds = {\r\n ...t.state.drawIds,\r\n [type]: lsids\r\n }\r\n // t.setState({\r\n // drawIds:{\r\n // ...t.state.drawIds,\r\n // [type]: lsids\r\n // }\r\n // });\r\n }else{\r\n t.state.lineIds = lsids;\r\n // t.setState({\r\n // lineIds: lsids\r\n // });\r\n }\r\n }\r\n }\r\n //更新线\r\n updateLine(mapLines){\r\n let t = this;\r\n //遍历添加线(图元)\r\n mapLines.map((item,index)=>{\r\n //判断图元是否存在.\r\n if (t.GM.isRepetition(item.id)) {\r\n //多折线点位数据不符合,直接跳过\r\n if(!(item.paths && item.paths.length >= 2)){\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n }else{\r\n console.warn(`更新的多折线id不存在!`);\r\n return false;\r\n }\r\n let gc = t.GM.getGraphic(item.id);\r\n //初始化默认参数\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',//'solid' 'dashed'\r\n isHidden: false\r\n }\r\n //合并参数\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //删除原来的点位\r\n gc.geometry.removePath(0);\r\n //添加新的点位\r\n gc.geometry.addPath([...item.paths]);\r\n let {_extent} = t.dealData(item.paths); \r\n //设置完点位后 需要刷新下点位的显示范围/\r\n gc._extent.update(_extent.longitude,_extent.latitude,_extent.longitude,_extent.latitude,new esri.SpatialReference({ wkid: t.grwkid }));\r\n // gc._extent.update(new esri.geometry.Extent(_extent.xmin,_extent.ymin,_extent.xmax,_extent.ymax,{ wkid: t.grwkid }));\r\n // gc._extent._parts[0].extent = {...gc._extent._parts[0].extent,..._extent};\r\n //处理颜色和透明度 使用rgba处理透明度\r\n let color = new esri.Color(cg.color);\r\n color.a = cg.pellucidity;\r\n gc.symbol.setColor(color);\r\n //设置线类型\r\n let style = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(cg.lineType){\r\n case 'solid':\r\n style = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n style = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n gc.symbol.setStyle(style);\r\n //设置线宽\r\n gc.symbol.setWidth(cg.lineWidth);\r\n //判断线显示和隐藏\r\n if(cg.isHidden){\r\n gc.hide();\r\n }else{\r\n gc.show();\r\n }\r\n t.GM.setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n paths: item.paths,\r\n other: item\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: item.paths\r\n }\r\n });\r\n });\r\n //刷新图元\r\n t.state.gis.graphics.refresh();\r\n }\r\n //添加面\r\n addPolygon(mapPolygons,type){\r\n let t = this;\r\n let pgsids = [...t.state.polygonIds];\r\n if(type){\r\n pgsids = [...t.state.drawIds[type]];\r\n }\r\n //遍历添加面(图元)\r\n mapPolygons.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`多边形id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多边形点位数据不符合,直接跳过\r\n if(!(item.rings && item.rings.length >= 3)){\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n //初始化参数\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要再加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let rings = [...item.rings];\r\n if(item.rings[0][0] != item.rings[item.rings.length -1][0] || item.rings[0][1] != item.rings[item.rings.length -1][1]){\r\n rings = [...rings,item.rings[0]]\r\n }\r\n //处理面的点数据\r\n let polygonPath = esri.geometry.Polygon({\r\n //添加最后一个点,使面闭合\r\n rings: [rings],\r\n spatialReference: { wkid: t.grwkid}\r\n });\r\n //线类型\r\n let lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(cg.lineType){\r\n case 'solid':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n //处理边框线颜色和透明度 使用rgba处理透明度\r\n let lineColor = new esri.Color(cg.lineColor);\r\n lineColor.a = cg.lineOpacity;\r\n //生成线类型对象\r\n let lineSymbol = new esri.symbol.SimpleLineSymbol(lineStyle,lineColor,cg.lineWidth);\r\n //创建面对象\r\n let polygonSymbol = new esri.symbol.SimpleFillSymbol();\r\n //添加边框线数据\r\n polygonSymbol.setOutline(lineSymbol);\r\n //处理填充颜色和透明度 使用rgba处理透明度\r\n let polygonColor = new esri.Color(cg.color);\r\n polygonColor.a = cg.pellucidity;\r\n polygonSymbol.setColor(polygonColor);\r\n //创建面对象\r\n let polygon = new esri.Graphic(polygonPath,polygonSymbol,{id:item.id});\r\n //添加面图元\r\n t.state.gis.graphics.add(polygon);\r\n //缓存面id\r\n pgsids.push(item.id);\r\n //缓存面图元对象和对于传入数据\r\n t.GM.setGraphic(item.id,polygon)\r\n .setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n rings: item.rings,\r\n other: item\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: item.rings\r\n },\r\n });\r\n });\r\n //添加绘制点\r\n if(type){\r\n t.state.drawIds = {\r\n ...t.state.drawIds,\r\n [type]: pgsids\r\n }\r\n // t.setState({\r\n // drawIds:{\r\n // ...t.state.drawIds,\r\n // [type]: pgsids\r\n // }\r\n // });\r\n }else{\r\n t.state.polygonIds = pgsids;\r\n // t.setState({\r\n // polygonIds: pgsids\r\n // });\r\n }\r\n }\r\n //更新面\r\n updatePolygon(mapPolygons){\r\n let t = this;\r\n mapPolygons.map((item,index)=>{\r\n //判断图元是否存在.\r\n if (t.GM.isRepetition(item.id)) {\r\n //多边形点位数据不符合,直接跳过\r\n if(!(item.rings && item.rings.length >= 3)){\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n }else{\r\n console.warn(`更新的多边形id不存在!`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = t.GM.getGraphic(item.id);\r\n //初始化参数\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要再加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //删除原来的点位\r\n gc.geometry.removeRing(0);\r\n let rings = [...item.rings];\r\n if(item.rings[0][0] != item.rings[item.rings.length -1][0] || item.rings[0][1] != item.rings[item.rings.length -1][1]){\r\n rings = [...rings,item.rings[0]]\r\n }\r\n //添加新的点位\r\n gc.geometry.addRing(rings);\r\n let {_extent} = t.dealData(item.rings);\r\n //设置完点位后 需要刷新下点位的显示范围\r\n gc._extent.update(_extent.xmin,_extent.ymin,_extent.xmax,_extent.ymax,new esri.SpatialReference({ wkid: t.grwkid }));\r\n // gc._extent.update(new esri.geometry.Extent(_extent.xmin,_extent.ymin,_extent.xmax,_extent.ymax,{ wkid: t.grwkid }));\r\n // gc._extent._parts[0].extent = {...gc._extent._parts[0].extent,..._extent};\r\n\r\n //线类型\r\n let lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(cg.lineType){\r\n case 'solid':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n gc.symbol.outline.setStyle(lineStyle);\r\n //处理边框线颜色和透明度 使用rgba处理透明度\r\n let lineColor = new esri.Color(cg.lineColor);\r\n lineColor.a = cg.lineOpacity;\r\n gc.symbol.outline.setColor(lineColor);\r\n //设置线宽\r\n gc.symbol.outline.setWidth(cg.lineWidth);\r\n //处理填充颜色和透明度 使用rgba处理透明度\r\n let polygonColor = new esri.Color(cg.color);\r\n polygonColor.a = cg.pellucidity;\r\n gc.symbol.setColor(polygonColor);\r\n t.GM.setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n rings: item.rings,\r\n other: item\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: item.rings\r\n },\r\n });\r\n });\r\n //刷新图元\r\n t.state.gis.graphics.refresh();\r\n }\r\n //添加圆 circle\r\n addCircle(mapCircles,type){\r\n let t = this;\r\n let ccsids = [...t.state.circleIds];\r\n if(type){\r\n ccsids = [...t.state.drawIds[type]];\r\n }\r\n mapCircles.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`圆id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //圆 点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`圆 经纬度 数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要在加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let center = new esri.geometry.Point(parseFloat(item.longitude),parseFloat(item.latitude));\r\n //创建圆 位置对象\r\n let position = new esri.geometry.Circle({center:center,radius: parseFloat(item.radius)});\r\n //线类型\r\n let lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(cg.lineType){\r\n case 'solid':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n //处理边框线颜色和透明度 使用rgba处理透明度\r\n let lineColor = new esri.Color(cg.lineColor);\r\n lineColor.a = cg.lineOpacity;\r\n //生成线类型对象\r\n let lineSymbol = new esri.symbol.SimpleLineSymbol(lineStyle,lineColor,parseFloat(cg.lineWidth));\r\n //创建面对象\r\n let circleSymbol = new esri.symbol.SimpleFillSymbol();\r\n //添加边框线数据\r\n circleSymbol.setOutline(lineSymbol);\r\n //处理填充颜色和透明度 使用rgba处理透明度\r\n let circleColor = new esri.Color(cg.color);\r\n circleColor.a = cg.pellucidity;\r\n circleSymbol.setColor(circleColor);\r\n //创建圆对象\r\n let circle = new esri.Graphic(position,circleSymbol,{id:item.id});\r\n //添加图元对象\r\n t.state.gis.graphics.add(circle);\r\n //缓存数据\r\n ccsids.push(item.id);\r\n t.GM.setGraphic(item.id,circle)\r\n .setGraphicParam(item.id,{\r\n attributes: {...item,other: item},\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: parseFloat(item.longitude),\r\n y: parseFloat(item.latitude),\r\n radius: parseFloat(item.radius)\r\n }\r\n });\r\n });\r\n //添加绘制点\r\n if(type){\r\n t.state.drawIds = {\r\n ...t.state.drawIds,\r\n [type]: ccsids\r\n }\r\n // t.setState({\r\n // drawIds:{\r\n // ...t.state.drawIds,\r\n // [type]: ccsids\r\n // }\r\n // });\r\n }else{\r\n t.state.circleIds = ccsids;\r\n // t.setState({\r\n // circleIds: ccsids\r\n // });\r\n }\r\n }\r\n //更新圆\r\n updateCircle(mapCircles){\r\n let t = this;\r\n mapCircles.map((item,index)=>{\r\n //判断图元是否存在.\r\n if (t.GM.isRepetition(item.id)) {\r\n //圆 点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`圆 经纬度 数据错误`);\r\n return false;\r\n }\r\n }else{\r\n console.warn(`更新的圆id不存在!`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = t.GM.getGraphic(item.id);\r\n //获取原有的面属性,转换key值\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要在加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let center = new esri.geometry.Point(parseFloat(item.longitude),parseFloat(item.latitude));\r\n //创建圆 位置对象\r\n let position = new esri.geometry.Circle({center:center,radius: parseFloat(item.radius)});\r\n //线类型\r\n let lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(cg.lineType){\r\n case 'solid':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n //处理边框线颜色和透明度 使用rgba处理透明度\r\n let lineColor = new esri.Color(cg.lineColor);\r\n lineColor.a = cg.lineOpacity;\r\n //生成线类型对象\r\n let lineSymbol = new esri.symbol.SimpleLineSymbol(lineStyle,lineColor,parseFloat(cg.lineWidth));\r\n //创建面对象\r\n let circleSymbol = new esri.symbol.SimpleFillSymbol();\r\n //添加边框线数据\r\n circleSymbol.setOutline(lineSymbol);\r\n //处理填充颜色和透明度 使用rgba处理透明度\r\n let circleColor = new esri.Color(cg.color);\r\n circleColor.a = cg.pellucidity;\r\n circleSymbol.setColor(circleColor);\r\n //更新位置\r\n gc.setGeometry(position);\r\n //更新样式\r\n gc.setSymbol(circleSymbol);\r\n t.GM.setGraphicParam(item.id,{\r\n attributes: {...item,other: item},\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: parseFloat(item.longitude),\r\n y: parseFloat(item.latitude),\r\n radius: parseFloat(item.radius)\r\n }\r\n });\r\n });\r\n //刷新图元\r\n t.state.gis.graphics.refresh();\r\n }\r\n //添加海量点\r\n addPointCollection(data = []){\r\n let t = this;\r\n data.map((item,index)=>{\r\n let d = item || {};\r\n let points = (d.points || []).map((d,i)=>{\r\n let p = new esri.geometry.Point(d.lng,d.lat);\r\n p = t.state.gis.toScreen(p);\r\n return [p.x,p.y];\r\n });\r\n let options = {\r\n size: d.size,\r\n shape: d.shape,\r\n color: d.color,\r\n width: t.state.gis.width,\r\n height: t.state.gis.height,\r\n mapId: t.props.mapId\r\n };\r\n let VotexpointCollection = new GMapLib.PointCollection(points,options);\r\n t.morepoints.push({\r\n id: d.id,\r\n value: VotexpointCollection\r\n });\r\n VotexpointCollection.draw();\r\n })\r\n }\r\n //更新海量点\r\n updatePointCollection(data = []){\r\n let t = this;\r\n data.map((ds,ind)=>{\r\n t.morepoints.map((item,index)=>{\r\n if(item.id == ds.id){\r\n let points = (ds.points || []).map((d,i)=>{\r\n let p = new esri.geometry.Point(d.lng,d.lat);\r\n p = t.state.gis.toScreen(p);\r\n return [p.x,p.y];\r\n });\r\n let options = {\r\n size: ds.size,\r\n shape: ds.shape,\r\n color: ds.color,\r\n width: t.state.gis.width,\r\n height: t.state.gis.height\r\n };\r\n item.value.reDraw(points,options);\r\n }\r\n })\r\n })\r\n }\r\n //删除海量点\r\n clearPointCollection(ids = []){\r\n let t = this;\r\n ids.map((id,ind)=>{\r\n t.morepoints.map(function (item,index) {\r\n if(id == item.id){\r\n item.value.clear();\r\n }\r\n });\r\n });\r\n }\r\n //删除全部海量点\r\n clearAllPointCollection(){\r\n let t = this;\r\n t.morepoints.map(function (item,index) {\r\n item.value.clear();\r\n });\r\n }\r\n //热力图\r\n heatMapOverlay(d = {}){\r\n let t = this;\r\n let cg = {\r\n radius: 20,\r\n max: 100,\r\n visible: true,\r\n opacity: 0.7\r\n };\r\n if(d.config){\r\n cg = {...cg,...d.config};\r\n }\r\n if(!t.heatmap){\r\n t.heatmap = new GMapLib.HeatmapOverlay({\r\n visible: cg.visible\r\n });\r\n t.heatmap.initialize(t.state.gis,t.props.mapId);\r\n }\r\n let option = {\r\n radius: cg.radius,\r\n //百度是1-100,高德是0-1\r\n opacity: eval(cg.opacity) * 100,\r\n visible: cg.visible\r\n }\r\n if(cg.gradient){\r\n option.gradient = cg.gradient;\r\n }\r\n t.heatmap.setOptions(option);\r\n t.heatmap.setDataSet({\r\n max: cg.max,\r\n data: d.data || []\r\n });\r\n if(cg.visible){\r\n t.isHideHeatMap = false;\r\n t.heatmap.show();\r\n }else{\r\n t.isHideHeatMap = true;\r\n t.heatmap.hide();\r\n }\r\n }\r\n /*事件处理*/\r\n //图元事件\r\n clickGraphic(id,e){\r\n let t = this;\r\n //编辑中的图元关闭其他事件返回\r\n if(t.editId == id)return false;\r\n if(typeof(t.props.clickGraphic) ===\"function\"){\r\n let param = t.getGraphic(id);\r\n let obj = {\r\n param,\r\n type: param.geometry.type,//图元类型\r\n attributes: {...param.attributes.other,...{config:param.attributes.config}},//添加时图元信息\r\n top: e.clientY,//当前点所在的位置(屏幕)\r\n left: e.clientX,\r\n e: e\r\n }\r\n t.props.clickGraphic(obj);\r\n }\r\n }\r\n //图元鼠标悬浮事件\r\n mouseOverGraphic(id,e){\r\n let t = this;\r\n //编辑中的图元关闭其他事件返回\r\n if(t.state.editId == id)return false;\r\n if(typeof(t.props.mouseOverGraphic) === 'function'){\r\n let obj = {\r\n e,id,\r\n param: t.getGraphic(id),\r\n top: e.clientY,//当前点所在的位置(屏幕)\r\n left: e.clientX,\r\n }\r\n t.props.mouseOverGraphic(obj);\r\n }\r\n }\r\n //图元鼠标移开事件\r\n mouseOutGraphic(id,e){\r\n let t = this;\r\n //编辑中的图元关闭其他事件返回\r\n if(t.state.editId == id)return false;\r\n if(typeof(t.props.mouseOutGraphic) ===\"function\"){\r\n let obj = {\r\n e,id,\r\n param: t.getGraphic(id),\r\n top: e.clientY,//当前点所在的位置(屏幕)\r\n left: e.clientX,\r\n }\r\n t.props.mouseOutGraphic(obj);\r\n }\r\n }\r\n /*地图事件*/\r\n //地图点击事件\r\n clickMap(e){\r\n let t = this;\r\n if(typeof(t.props.clickMap) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n obj.clickLngLat = {\r\n lng: (e.mapPoint || {}).x,\r\n lat: (e.mapPoint || {}).y\r\n };\r\n obj.pixel = {\r\n x: (e.screenPoint || {}).x,\r\n y: (e.screenPoint || {}).y\r\n };\r\n t.props.clickMap(obj);\r\n }\r\n }\r\n //地图拖动之前事件\r\n dragMapStart(e){\r\n let t = this;\r\n if(typeof(t.props.dragMapStart) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.dragMapStart(obj);\r\n }\r\n }\r\n //地图拖动结束后事件\r\n dragMapEnd(e){\r\n let t = this;\r\n if(typeof(t.props.dragMapEnd) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.dragMapEnd(obj);\r\n }\r\n }\r\n //地图移动之前事件\r\n moveStart(e){\r\n let t = this;\r\n if(typeof(t.props.moveStart) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.moveStart(obj);\r\n }\r\n }\r\n //地图移动结束后事件\r\n moveEnd(e){\r\n let t = this;\r\n if(typeof(t.props.moveEnd) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.moveEnd(obj);\r\n }\r\n }\r\n //地图更改缩放级别开始时触发触发此事件\r\n zoomStart(e){\r\n let t = this;\r\n if(typeof(t.props.zoomStart) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.zoomStart(obj);\r\n }\r\n }\r\n //地图更改缩放级别结束时触发触发此事件\r\n zoomEnd(e){\r\n let t = this;\r\n if(typeof(t.props.zoomEnd) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.zoomEnd(obj);\r\n }\r\n }\r\n /*set方法*/\r\n //设置地图中心位置 lng/经度 lat/纬度\r\n setCenter (gt) {\r\n let t =this;\r\n if(gt){\r\n //经纬度 必须存在 否则不操作\r\n if (!gt[0] || !gt[1]) {\r\n return false;\r\n }\r\n //如果设置的经纬度 与当前中心点一样 不操作\r\n let c = t.getCenter();\r\n if(c.lng == gt[0] && c.lat == gt[1]){\r\n return false;\r\n }\r\n t.state.gis.centerAt(new esri.geometry.Point(gt[0],gt[1],new esri.SpatialReference({[t.wkidStr]: t.wkid})));\r\n }\r\n }\r\n //设置地图比例尺\r\n setZoomLevel (zoom) {\r\n let t =this;\r\n let z = t.state.gis.getZoom();\r\n if(z == zoom){\r\n return false;\r\n }\r\n t.state.gis.setZoom(parseInt(zoom));\r\n }\r\n //将制定图元展示在视野内 (强制改变地图中心位置)\r\n /*\r\n 参数arg格式如下1,2\r\n 1.string 格式如:'1,a,2,3,4'\r\n 2.数组 ['1','2']\r\n */\r\n setVisiblePoints (mapVisiblePoints) {\r\n let t = this;\r\n let arg = null;\r\n let type = mapVisiblePoints.type;\r\n let ary = [];//图元id集合\r\n let obj = [];//经纬度集合\r\n switch(mapVisiblePoints.fitView){\r\n case 'point':\r\n arg = this.state.pointIds;\r\n break;\r\n case 'line':\r\n arg = this.state.lineIds;\r\n break;\r\n case 'polygon':\r\n arg = this.state.polygonIds;\r\n break;\r\n case 'circle':\r\n arg = this.state.circleIds;\r\n break;\r\n case 'all':\r\n arg = this.state.pointIds.concat(this.state.lineIds).concat(this.state.polygonIds).concat(this.state.circleIds);\r\n break;\r\n default:\r\n arg = mapVisiblePoints.fitView;\r\n break;\r\n }\r\n\r\n\r\n if(typeof(arg) === 'string'){\r\n ary = arg.split(',');\r\n }else if(arg instanceof Array){\r\n ary = arg;\r\n }\r\n if(ary[0] instanceof Array){\r\n obj = [...obj,...ary];\r\n }else{\r\n for(let i = 0 ; i < ary.length ; i++){\r\n let g = t.GM.getGraphicParam(ary[i]);\r\n switch(g.geometry.type){\r\n case 'point':\r\n case 'circle':\r\n obj.push([g.geometry.x,g.geometry.y]);\r\n break;\r\n case 'polyline':\r\n obj = [...obj,...g.geometry.paths];\r\n break;\r\n case 'polygon':\r\n obj = [...obj,...g.geometry.rings];\r\n break;\r\n }\r\n }\r\n }\r\n let {_extent} = t.dealData(obj);\r\n if(_extent.xmin && _extent.xmax && _extent.ymin && _extent.ymax){\r\n //避免偏移引起的点位漏看\r\n _extent = t.dealExtendBounds(_extent,100);\r\n let ext = new esri.geometry.Extent({..._extent,spatialReference:{ [t.wkidStr]: t.wkid }});\r\n if(!type || type == 'all' || type == 'zoom'){\r\n t.state.gis.setExtent(ext);\r\n }else if(type == 'center'){\r\n t.state.gis.centerAt(ext.getCenter());\r\n }\r\n }\r\n }\r\n /*get方法*/\r\n //获取当前地图的中心位置\r\n getCurrentCenter(){\r\n let t = this;\r\n let extent = t.state.gis.geographicExtent;\r\n return [(extent.xmax + extent.xmin)/2,(extent.ymax + extent.ymin)/2];\r\n }\r\n //获取当前比例尺\r\n getZoomLevel (){\r\n let t =this;\r\n return t.state.gis.getLevel();\r\n }\r\n //获取当前中心点\r\n getCenter(){\r\n let t = this;\r\n let {xmin, ymin, xmax, ymax} = t.state.gis.extent;\r\n return {lng:(xmin+xmax)/2,lat: (ymin+ymax)/2};\r\n }\r\n //获取图元数据\r\n getGraphic (id) {\r\n let t = this;\r\n if(!id){\r\n return false;\r\n }\r\n let gp = t.GM.getGraphicParam(id);\r\n let gg = t.GM.getGraphic(id);\r\n if(!gg){\r\n return false;\r\n }\r\n let p = {},pts = [],lng = 0,lat = 0;\r\n switch(gp.geometryType){\r\n case 'point':\r\n lng = gg.geometry.x;\r\n lat = gg.geometry.y;\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n x: lng,\r\n y: lat\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n other: {\r\n ...gp.attributes.other,\r\n longitude: lng,\r\n latitude: lat,\r\n }\r\n }\r\n }\r\n break;\r\n case 'polyline':\r\n pts = gg.geometry.paths[0];\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n paths: pts\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n paths: pts,\r\n other: {\r\n ...gp.attributes.other,\r\n paths: pts\r\n }\r\n }\r\n }\r\n break;\r\n case 'polygon':\r\n pts = gg.geometry.rings[0];\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n rings: pts\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n rings: pts,\r\n other: {\r\n ...gp.attributes.other,\r\n rings: pts\r\n }\r\n },\r\n area: getPolygonArea(pts)\r\n }\r\n break;\r\n case 'circle':\r\n lng = gg.geometry.center.x;\r\n lat = gg.geometry.center.y;\r\n let radius = 0;\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n x: lng,\r\n y: lat,\r\n radius\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n radius,\r\n other: {\r\n ...gp.attributes.other,\r\n longitude: lng,\r\n latitude: lat,\r\n radius\r\n }\r\n },\r\n area: Math.PI*radius*radius\r\n }\r\n break;\r\n }\r\n return p;\r\n }\r\n //获取地图当前的位置状态信息\r\n getMapExtent() {\r\n let t = this;\r\n let nowBounds = t.state.gis._getAvailExtent();\r\n let obj = {};\r\n obj.southWest = {\r\n lng : nowBounds.xmin,\r\n lat : nowBounds.ymin\r\n };\r\n obj.northEast = {\r\n lng : nowBounds.xmax,\r\n lat : nowBounds.ymax\r\n };\r\n obj.nowCenter = t.getCenter();\r\n obj.zoom = t.getZoomLevel();\r\n obj.mapSize = {width: t.state.gis.width,height: t.state.gis.height};\r\n obj.radius = t.calculatePointsDistance([obj.nowCenter.lng,obj.nowCenter.lat],\r\n [obj.northEast.lng,obj.northEast.lat]);\r\n return obj;\r\n }\r\n /*工具方法*/\r\n vtxRangingTool(mapRangingTool){\r\n let t = this;\r\n //关闭测距时双击地图缩放功能\r\n t.state.gis.disableDoubleClickZoom();\r\n //开启测距状态\r\n if(!t.rangingTool.isRanging){\r\n t.rangingTool.isRanging = true;\r\n }\r\n //初始测距回调\r\n if(!t.rangingTool.mapRangingTool){\r\n t.rangingTool.mapRangingTool = mapRangingTool;\r\n }\r\n }\r\n /*功能方法*/\r\n //单个删除图元\r\n removeGraphic(id,type){\r\n let t = this;\r\n let graphic = t.GM.getGraphic(id);\r\n //刪除label\r\n if(t.Label[id]){\r\n t.Label[id].html.remove();\r\n delete t.Label[id];\r\n }\r\n if(!!graphic){\r\n //清除聚合点 避免异常\r\n // t._cluster.removeMarker(this.GM.getGraphic(id));\r\n //清除地图中图元\r\n t.state.gis.graphics.remove(graphic);\r\n //清除对应id的图元数据缓存\r\n t.GM.removeGraphic(id);\r\n }else{\r\n return false;\r\n }\r\n for(let i = 0 ; i < t.movePoints.length ; i++){\r\n if(t.movePoints[i].id == id){\r\n t.movePoints.splice(i,1);\r\n continue;\r\n }\r\n }\r\n let ids = [];\r\n switch(type){\r\n case 'point':\r\n ids = t.state.pointIds;\r\n break;\r\n case 'line':\r\n ids = t.state.lineIds;\r\n break;\r\n case 'polygon':\r\n ids = t.state.polygonIds;\r\n break;\r\n case 'circle':\r\n ids = t.state.circleIds;\r\n break;\r\n case 'draw':\r\n if(t.state.drawIds.point.indexOf(id) > -1){\r\n t.state.drawIds.point.splice(t.state.drawIds.point.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.polyline.indexOf(id) > -1){\r\n t.state.drawIds.polyline.splice(t.state.drawIds.polyline.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.polygon.indexOf(id) > -1){\r\n t.state.drawIds.polygon.splice(t.state.drawIds.polygon.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.circle.indexOf(id) > -1){\r\n t.state.drawIds.circle.splice(t.state.drawIds.circle.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.rectangle.indexOf(id) > -1){\r\n t.state.drawIds.rectangle.splice(t.state.drawIds.rectangle.indexOf(id),1);\r\n }\r\n break;\r\n default:\r\n if(t.state.pointIds.indexOf(id) > -1){\r\n t.state.pointIds.splice(t.state.pointIds.indexOf(id),1);\r\n }\r\n if(t.state.lineIds.indexOf(id) > -1){\r\n t.state.lineIds.splice(t.state.lineIds.indexOf(id),1);\r\n }\r\n if(t.state.polygonIds.indexOf(id) > -1){\r\n t.state.polygonIds.splice(t.state.polygonIds.indexOf(id),1);\r\n }\r\n if(t.state.circleIds.indexOf(id) > -1){\r\n t.state.circleIds.splice(t.state.circleIds.indexOf(id),1);\r\n }\r\n break;\r\n }\r\n if(id == t.state.editId){\r\n t.state.editId = '';\r\n }\r\n if(ids.indexOf(id) != -1){\r\n ids.splice(ids.indexOf(id),1);\r\n }\r\n }\r\n //清空地图\r\n clearAll(){\r\n let t = this;\r\n //清空热力图\r\n if(t.heatmap){\r\n t.heatmap.clear();\r\n }\r\n t.heatmap = null;\r\n t.movePoints = [];\r\n t.clearAllPointCollection();\r\n //循环所有id删除\r\n let {pointIds,lineIds,polygonIds,circleIds,drawIds} = t.state;\r\n //拷贝数组,避免原数组操作,影响循环\r\n let ps = [...pointIds],\r\n ls = [...lineIds],\r\n pgs = [...polygonIds],\r\n cs = [...circleIds];\r\n // 删除点\r\n for(let i= 0 ; i < ps.length ; i++){\r\n t.removeGraphic(ps[i],'point');\r\n }\r\n // 删除线\r\n for(let i= 0 ; i < ls.length ; i++){\r\n t.removeGraphic(ls[i],'line');\r\n }\r\n // 删除面\r\n for(let i= 0 ; i < pgs.length ; i++){\r\n t.removeGraphic(pgs[i],'polygon');\r\n }\r\n // 删除圆\r\n for(let i= 0 ; i < cs.length ; i++){\r\n t.removeGraphic(cs[i],'circle');\r\n }\r\n //删除绘制的点\r\n let {point,polyline,polygon,circle,rectangle} = drawIds;\r\n for(let i= 0 ; i < point.length ; i++){\r\n t.removeGraphic(point[i]);\r\n }\r\n for(let i= 0 ; i < polyline.length ; i++){\r\n t.removeGraphic(polyline[i]);\r\n }\r\n for(let i= 0 ; i < polygon.length ; i++){\r\n t.removeGraphic(polygon[i]);\r\n }\r\n for(let i= 0 ; i < circle.length ; i++){\r\n t.removeGraphic(circle[i]);\r\n }\r\n for(let i= 0 ; i < rectangle.length ; i++){\r\n t.removeGraphic(rectangle[i]);\r\n }\r\n }\r\n //展示比例尺\r\n showControl(){\r\n let t = this,type = '',\r\n location={top: 20, left: 20},ls = {top: 20,left: 60},\r\n w = t.state.gis.width,h = t.state.gis.height;\r\n switch(t.props.showControl.location){\r\n case 'tl':\r\n location={top: 20, left: 20};\r\n ls = {top: 20,left: 70};\r\n if(!t.props.showControl.type){\r\n ls = {top: 20,left: 20};\r\n }\r\n break;\r\n case 'bl':\r\n location={top: h - 83, left: 20};\r\n ls = {top: h - 50,left: 70};\r\n if(!t.props.showControl.type){\r\n ls = {top: h - 50,left: 20};\r\n }\r\n break;\r\n case 'tr':\r\n location={top: 20, left: w - 52};\r\n ls = {top: 20,left: w - 152};\r\n if(!t.props.showControl.type){\r\n ls = {top: 20,left: w - 93};\r\n }\r\n break;\r\n case 'br':\r\n location={top: h - 83 , left: w - 52};\r\n ls = {top: h - 50,left: w - 152};\r\n if(!t.props.showControl.type){\r\n ls = {top: h - 50,left: w - 93};\r\n }\r\n break;\r\n }\r\n if(!$(`#${t.props.mapId}_zoom_slider_show`)[0]){\r\n let getScale = t.state.gis.getScale()*0.025399998/96;\r\n //分母系数\r\n let coefficient = Math.pow(10,Math.floor(getScale).toString().length-1);\r\n //判断系数 , 总长度值\r\n let gs = getScale/coefficient,toldis = 1,isCent = false;\r\n if(gs < 1){\r\n isCent = true;\r\n gs *= 10;\r\n }\r\n //计算比例尺数值和长度\r\n if(gs >= 5){\r\n toldis = 5*coefficient*100\r\n }else if(gs >= 2){\r\n toldis = 2*coefficient*100;\r\n }else{\r\n toldis = 1*coefficient*100;\r\n }\r\n let scaleW = toldis/getScale;\r\n if(isCent){\r\n scaleW /= 10;\r\n toldis /= 10;\r\n }\r\n //宽度矫正处理\r\n if(scaleW<50){\r\n toldis *= 1.5;\r\n scaleW = toldis/getScale;\r\n }\r\n //处理比例尺值显示\r\n toldis = toldis >= 1000? `${Math.round(toldis/1000)}公里`: `${toldis}米`;\r\n let sliderShow = `\r\n <div id='${t.props.mapId}_zoom_slider_show' \r\n style='position:absolute;z-index:100;width:${scaleW-2}px;'\r\n >\r\n <div class='zoom_slider_show_scale'>${toldis}</div>\r\n <div class='zoom_slider_show_bottom'></div>\r\n </div>\r\n `\r\n $(`#${t.props.mapId}_root`).append(sliderShow);\r\n }\r\n switch(t.props.showControl.type){\r\n case 'all':\r\n case 'small':\r\n case 'pan':\r\n case 'zoom':\r\n $(`#${t.props.mapId}_zoom_slider`).css({\r\n ...location,\r\n display: 'block'\r\n });\r\n default:\r\n $(`#${t.props.mapId}_zoom_slider_show`).css({\r\n ...ls\r\n });\r\n break;\r\n }\r\n }\r\n //编辑图元\r\n doEdit(id){\r\n let t = this;\r\n if(!t.editToolbar){\r\n t.editToolbar = new esri.toolbars.Edit(t.state.gis);\r\n t.editToolbarC = new esri.toolbars.Edit(t.state.gis);\r\n let changeLabel = (point,eid,gcparam)=>{\r\n let label = '',cg = gcparam.attributes.config;\r\n //判断是不是html点\r\n if(!!gcparam.attributes.markerContent){\r\n label = {\r\n html: t.Label[eid].html,\r\n offset: {\r\n x: cg.markerContentX || 100,\r\n y: cg.markerContentY || 30\r\n },\r\n position: point\r\n }\r\n }else{\r\n //判断是否有label\r\n if(gcparam.attributes.canShowLabel && cg.labelContent){\r\n label = {\r\n html: t.Label[eid].html,\r\n //offset 需要处理 图片点位的位置(将点位偏移和宽度加入计算)\r\n offset: {\r\n x: (cg.labelPixelX || 0) + ((cg.markerContentX || -15) + (cg.width || 30)/2),\r\n y: (cg.labelPixelY || 34)+ (cg.markerContentY || -15)\r\n },\r\n position: point\r\n }\r\n }\r\n }\r\n if(label){\r\n t.dealLabelGraphics(eid,label);\r\n }\r\n }\r\n /*点位编辑事件*/\r\n //编辑关闭事件\r\n t.editToolbar.on('deactivate',(e)=>{\r\n let eid = e.graphic.attributes.id;\r\n let gcparam = t.GM.getGraphicParam(eid);\r\n //关闭label移动限制开关\r\n t.canMoveLabel = false;\r\n t.mouseNowPosition.isCount = false;\r\n if('editGraphicChange' in t.props && typeof(t.props.editGraphicChange) == 'function'){\r\n let obj = {};\r\n if(eid == 'vtx-circleMove'){\r\n let param = t.getGraphic(t.editId);\r\n obj = {\r\n area: Math.PI*Math.pow(t.GM.getGraphic(t.editId).geometry.radius,2),\r\n e: t.GM.getGraphic(t.editId),\r\n param,\r\n id: t.editId,\r\n geometry: t.GM.getGraphic(t.editId).geometry,\r\n };\r\n }else{\r\n let param = t.getGraphic(eid);\r\n obj = {\r\n e:e.graphic,param,\r\n id: eid,\r\n geometry: e.graphic.geometry,\r\n }\r\n switch(obj.geometry.type){\r\n case 'polyline':\r\n obj.geometry = {\r\n ...obj.geometry,\r\n paths: obj.geometry.paths[0]\r\n }\r\n obj.distance = t.calculateDistance(obj.geometry.paths);\r\n break;\r\n case 'polygon':\r\n obj.geometry = {\r\n ...obj.geometry,\r\n rings: obj.geometry.rings[0]\r\n }\r\n obj.area = getPolygonArea(obj.geometry.rings);\r\n break;\r\n }\r\n }\r\n t.props.editGraphicChange(obj);\r\n }\r\n if(eid == 'vtx-circleMove'){\r\n t.removeGraphic('vtx-circleMove','point');\r\n t.removeGraphic('vtx-circleRadius','point');\r\n if(t.zIndexGraphics.indexOf('vtx-circleMove') > -1){\r\n t.zIndexGraphics.splice(t.zIndexGraphics.indexOf('vtx-circleMove'),1);\r\n }\r\n if(t.zIndexGraphics.indexOf('vtx-circleRadius') > -1){\r\n t.zIndexGraphics.splice(t.zIndexGraphics.indexOf('vtx-circleRadius'),1);\r\n }\r\n }\r\n if(t.zIndexGraphics.indexOf(eid) > -1){\r\n t.zIndexGraphics.splice(t.zIndexGraphics.indexOf(eid),1);\r\n }\r\n t.editId = '';\r\n })\r\n //移动开始事件 开启开关\r\n t.editToolbar.on('graphic-move-start',(e)=>{\r\n //label可以跟着点位移动,避免label直接跟着鼠标移动\r\n t.canMoveLabel = true;\r\n });\r\n //移动中事件\r\n t.editToolbar.on('graphic-move',(e)=>{\r\n //计算鼠标点 与中心点的偏移值\r\n if(!t.mouseNowPosition.isCount){\r\n t.mouseNowPosition.isCount = true;\r\n t.mouseNowPosition.px = t.mouseNowPosition.x - e.graphic.geometry.x;\r\n t.mouseNowPosition.py = t.mouseNowPosition.y - e.graphic.geometry.y;\r\n }\r\n let eid = e.graphic.attributes.id,\r\n position = new esri.geometry.Point({\r\n longitude: t.mouseNowPosition.x - t.mouseNowPosition.px,\r\n latitude: t.mouseNowPosition.y - t.mouseNowPosition.py,\r\n spatialReference:{ wkid: t.grwkid }\r\n });\r\n //圆中心点的移动\r\n if(eid == 'vtx-circleMove'){\r\n t.GM.getGraphic('vtx-circleMove').setGeometry(position);\r\n let circleCenter = new esri.geometry.Circle({\r\n center: position,\r\n radius: t.GM.getGraphic(t.editId).geometry.radius\r\n });\r\n t.GM.getGraphic(t.editId).setGeometry(circleCenter);\r\n t.GM.getGraphic('vtx-circleRadius').setGeometry(\r\n new esri.geometry.Point({\r\n longitude: t.mouseNowPosition.x - t.mouseNowPosition.px - t.circleEditPXY.px,\r\n latitude: t.mouseNowPosition.y - t.mouseNowPosition.py - t.circleEditPXY.py,\r\n spatialReference:{ wkid: t.grwkid }\r\n })\r\n );\r\n t.state.gis.graphics.refresh();\r\n return false;\r\n }\r\n let gcparam = t.GM.getGraphicParam(eid);\r\n changeLabel(position,eid,gcparam);\r\n });\r\n //移动结束后事件\r\n t.editToolbar.on('graphic-move-stop',(e)=>{\r\n let eid = e.graphic.attributes.id;\r\n let gcparam = t.GM.getGraphicParam(eid);\r\n //关闭label移动限制开关\r\n t.canMoveLabel = false;\r\n t.mouseNowPosition.isCount = false;\r\n //判断是不是点\r\n if(gcparam.geometryType == 'point'){\r\n changeLabel(e.graphic.geometry,eid,gcparam);\r\n }\r\n //圆中心点的移动\r\n if(eid == 'vtx-circleMove'){\r\n t.GM.getGraphic('vtx-circleMove').setGeometry(e.graphic.geometry);\r\n let circleCenter = new esri.geometry.Circle({\r\n center: e.graphic.geometry,\r\n radius: t.GM.getGraphic(t.editId).geometry.radius\r\n });\r\n t.GM.getGraphic(t.editId).setGeometry(circleCenter);\r\n t.GM.getGraphic('vtx-circleRadius').setGeometry(\r\n new esri.geometry.Point({\r\n longitude: e.graphic.geometry.x - t.circleEditPXY.px,\r\n latitude: e.graphic.geometry.y - t.circleEditPXY.py,\r\n spatialReference:{ wkid: t.grwkid }\r\n })\r\n );\r\n t.state.gis.graphics.refresh();\r\n if('editGraphicChange' in t.props && typeof(t.props.editGraphicChange) == 'function'){\r\n let param = t.getGraphic(t.editId);\r\n t.props.editGraphicChange({\r\n area: Math.PI*Math.pow(t.GM.getGraphic(t.editId).geometry.radius,2),\r\n e: t.GM.getGraphic(t.editId),\r\n param,\r\n id: t.editId,\r\n geometry: t.GM.getGraphic(t.editId).geometry,\r\n });\r\n }\r\n return false;\r\n }\r\n if('editGraphicChange' in t.props && typeof(t.props.editGraphicChange) == 'function'){\r\n let param = t.getGraphic(eid);\r\n t.props.editGraphicChange({\r\n e:e.graphic,param,\r\n id: eid,\r\n geometry: e.graphic.geometry,\r\n });\r\n }\r\n });\r\n //多折线 多边形 圆事件处理\r\n t.editToolbar.on('vertex-move-stop',(e)=>{\r\n let eid = e.graphic.attributes.id;\r\n let gcparam = t.GM.getGraphicParam(eid);\r\n if('editGraphicChange' in t.props && typeof(t.props.editGraphicChange) == 'function'){\r\n let param = t.getGraphic(eid);\r\n let obj = {\r\n e:e.graphic,param,\r\n id: eid,\r\n geometry: e.graphic.geometry,\r\n }\r\n switch(obj.geometry.type){\r\n case 'polyline':\r\n obj.geometry = {\r\n ...obj.geometry,\r\n paths: obj.geometry.paths[0]\r\n }\r\n obj.distance = t.calculateDistance(obj.geometry.paths);\r\n break;\r\n case 'polygon':\r\n obj.geometry = {\r\n ...obj.geometry,\r\n rings: obj.geometry.rings[0]\r\n }\r\n obj.area = getPolygonArea(obj.geometry.rings);\r\n break;\r\n }\r\n t.props.editGraphicChange(obj);\r\n }\r\n });\r\n //移动开始事件 开启开关 [圆半径]\r\n t.editToolbarC.on('graphic-move-start',(e)=>{\r\n //label可以跟着点位移动,避免label直接跟着鼠标移动\r\n t.canMoveLabel = true;\r\n });\r\n //移动中事件 [圆半径]\r\n t.editToolbarC.on('graphic-move',(e)=>{\r\n //计算鼠标点 与中心点的偏移值\r\n if(!t.mouseNowPosition.isCount){\r\n t.mouseNowPosition.isCount = true;\r\n t.mouseNowPosition.px = t.mouseNowPosition.x - e.graphic.geometry.x;\r\n t.mouseNowPosition.py = t.mouseNowPosition.y - e.graphic.geometry.y;\r\n }\r\n let cgc = t.GM.getGraphic(t.editId),\r\n eid = e.graphic.attributes.id,\r\n position = new esri.geometry.Point({\r\n longitude: t.mouseNowPosition.x - t.mouseNowPosition.px,\r\n latitude: t.mouseNowPosition.y - t.mouseNowPosition.py,\r\n spatialReference:{ wkid: t.grwkid }\r\n }),\r\n radius = t.calculatePointsDistance(\r\n [cgc.geometry.center.x,cgc.geometry.center.y],\r\n [t.mouseNowPosition.x - t.mouseNowPosition.px,t.mouseNowPosition.y - t.mouseNowPosition.py]\r\n );\r\n t.circleEditPXY = {\r\n px: cgc.geometry.center.x - (t.mouseNowPosition.x - t.mouseNowPosition.px),\r\n py: cgc.geometry.center.y - (t.mouseNowPosition.y - t.mouseNowPosition.py)\r\n }\r\n cgc.setGeometry(new esri.geometry.Circle({\r\n center: new esri.geometry.Point(cgc.geometry.center.x,cgc.geometry.center.y),\r\n radius: radius\r\n }));\r\n t.GM.getGraphic('vtx-circleRadius').setGeometry(position);\r\n t.state.gis.graphics.refresh();\r\n });\r\n //移动结束后事件 [圆半径]\r\n t.editToolbarC.on('graphic-move-stop',(e)=>{\r\n t.canMoveLabel = false;\r\n t.mouseNowPosition.isCount = false;\r\n let cgc = t.GM.getGraphic(t.editId),\r\n eid = e.graphic.attributes.id,\r\n position = new esri.geometry.Point({\r\n longitude: t.mouseNowPosition.x - t.mouseNowPosition.px,\r\n latitude: t.mouseNowPosition.y - t.mouseNowPosition.py,\r\n spatialReference:{ wkid: t.grwkid }\r\n }),\r\n radius = t.calculatePointsDistance(\r\n [cgc.geometry.center.x,cgc.geometry.center.y],\r\n [t.mouseNowPosition.x - t.mouseNowPosition.px,t.mouseNowPosition.y - t.mouseNowPosition.py]\r\n );\r\n t.circleEditPXY = {\r\n px: cgc.geometry.center.x - (t.mouseNowPosition.x - t.mouseNowPosition.px),\r\n py: cgc.geometry.center.y - (t.mouseNowPosition.y - t.mouseNowPosition.py)\r\n }\r\n cgc.setGeometry(new esri.geometry.Circle({\r\n center: new esri.geometry.Point(cgc.geometry.center.x,cgc.geometry.center.y),\r\n radius: radius\r\n }));\r\n t.GM.getGraphic('vtx-circleRadius').setGeometry(position);\r\n t.state.gis.graphics.refresh();\r\n if('editGraphicChange' in t.props && typeof(t.props.editGraphicChange) == 'function'){\r\n let param = t.getGraphic(t.editId);\r\n t.props.editGraphicChange({\r\n area: Math.PI*Math.pow(t.GM.getGraphic(t.editId).geometry.radius,2),\r\n e: t.GM.getGraphic(t.editId),\r\n param,\r\n id: t.editId,\r\n geometry: t.GM.getGraphic(t.editId).geometry,\r\n });\r\n }\r\n })\r\n }\r\n //取消上一次的编辑\r\n if(t.editId){\r\n t.editToolbar.deactivate();\r\n t.editToolbarC.deactivate();\r\n }\r\n //获取图元对象\r\n let gc = t.GM.getGraphic(id);\r\n let gp = t.GM.getGraphicParam(id);\r\n if(!gc)return;\r\n switch(gp.geometryType){\r\n case 'point':\r\n //将编辑的图元放在最上面\r\n t.czIndex(id);\r\n if(t.zIndexGraphics.indexOf(id) == -1){\r\n t.zIndexGraphics.push(id);\r\n }\r\n t.editToolbar.activate(esri.toolbars.Edit.MOVE , gc);\r\n break;\r\n case 'polyline':\r\n case 'polygon':\r\n t.editToolbar.activate(esri.toolbars.Edit.EDIT_VERTICES , gc);\r\n break;\r\n case 'circle':\r\n // 移动圆的中心点 和 移动圆的半径点\r\n t.addPoint([{\r\n id: 'vtx-circleMove',\r\n longitude: gc.geometry.center.x,\r\n latitude: gc.geometry.center.y,\r\n url: 'http://api0.map.bdimg.com/images/node.gif',\r\n config: {\r\n width: 11,\r\n height: 11,\r\n markerContentY: -5.5,\r\n markerContentX: -5.5\r\n }\r\n },{\r\n id: 'vtx-circleRadius',\r\n longitude: gc.geometry.rings[0][0][0],\r\n latitude: gc.geometry.rings[0][0][1],\r\n url: 'http://api0.map.bdimg.com/images/node.gif',\r\n config: {\r\n width: 11,\r\n height: 11,\r\n markerContentY: -5.5,\r\n markerContentX: -5.5\r\n }\r\n }]);\r\n t.circleEditPXY = {\r\n px: gc.geometry.center.x - gc.geometry.rings[0][0][0],\r\n py: gc.geometry.center.y - gc.geometry.rings[0][0][1]\r\n }\r\n t.czIndex('vtx-circleMove');\r\n t.czIndex('vtx-circleRadius');\r\n if(t.zIndexGraphics.indexOf('vtx-circleMove') == -1){\r\n t.zIndexGraphics.push('vtx-circleMove');\r\n }\r\n if(t.zIndexGraphics.indexOf('vtx-circleRadius') == -1){\r\n t.zIndexGraphics.push('vtx-circleRadius');\r\n }\r\n t.editToolbar.activate(esri.toolbars.Edit.MOVE , t.GM.getGraphic('vtx-circleMove'));\r\n t.editToolbarC.activate(esri.toolbars.Edit.MOVE , t.GM.getGraphic('vtx-circleRadius'));\r\n break;\r\n }\r\n //开启点编辑功能\r\n t.editId = id;\r\n }\r\n //关闭编辑\r\n endEdit(){\r\n let t = this;\r\n t.editToolbar.deactivate();\r\n //单独为了圆的\r\n t.editToolbarC.deactivate();\r\n }\r\n //绘制图元\r\n draw(obj){\r\n let t = this;\r\n if(!t.drawToolbar){\r\n t.drawToolbar = new esri.toolbars.Draw(t.state.gis,{\r\n drawTime: 90,\r\n showTooltips: false\r\n });\r\n t.drawToolbar.on('draw-complete',(e)=>{\r\n //关闭绘制事件\r\n t.closeDraw();\r\n //返回参数\r\n let param = {};\r\n // 绘制内部管理的图元\r\n if(t.drawParam.geometryType == 'point'){\r\n t.addPoint([{\r\n id: t.drawParam.data.id,\r\n longitude: e.geometry.x,\r\n latitude: e.geometry.y,\r\n url: t.drawParam.parameter.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }],'point');\r\n //处理点返回参数\r\n param = {\r\n id: t.drawParam.data.id,\r\n attributes: {\r\n id: t.drawParam.data.id,\r\n url: t.drawParam.parameter.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n config: {\r\n width: t.drawParam.parameter.width || 30,\r\n height: t.drawParam.parameter.height || 30\r\n }\r\n },\r\n geometry: e.geometry,\r\n geometryType: 'point',\r\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\r\n }\r\n }\r\n //线\r\n if(t.drawParam.geometryType == 'polyline'){\r\n t.addLine([{\r\n id: t.drawParam.data.id,\r\n paths: e.geometry.paths[0],\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }],'polyline');\r\n //处理线返回参数\r\n let {lnglatAry,_extent} = t.dealData(e.geometry.paths[0]);\r\n param = {\r\n lnglatAry,\r\n id: t.drawParam.data.id,\r\n geometry: {\r\n ...e.geometry,\r\n paths: e.geometry.paths[0],\r\n _extent\r\n },\r\n attributes: {\r\n id: t.drawParam.data.id,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n },\r\n distance: t.calculateDistance(e.geometry.paths[0]),\r\n geometryType: 'polyline',\r\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\r\n }\r\n }\r\n if(t.drawParam.geometryType == 'polygon' || t.drawParam.geometryType == 'rectangle'){\r\n let rs = [...e.geometry.rings[0]];\r\n rs.pop();\r\n t.addPolygon([{\r\n id: t.drawParam.data.id,\r\n rings: rs,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }],t.drawParam.geometryType);\r\n //处理面返回参数\r\n let {lnglatAry,_extent} = t.dealData(e.geometry.rings[0]);\r\n param={\r\n lnglatAry,\r\n id: t.drawParam.data.id,\r\n geometry: {\r\n ...e.geometry,\r\n rings: e.geometry.rings[0],\r\n type: t.drawParam.geometryType,\r\n _extent\r\n },\r\n attributes: {\r\n id: t.drawParam.data.id,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n },\r\n area: getPolygonArea(e.geometry.rings[0]),\r\n geometryType: t.drawParam.geometryType,\r\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\r\n }\r\n }\r\n if(t.drawParam.geometryType == 'circle'){\r\n if(e.geometry._extent){\r\n let radius = getDistance(\r\n [e.geometry._extent.xmin,e.geometry._extent.ymin],\r\n [e.geometry._extent.xmax,e.geometry._extent.ymax],\r\n t.state.gis,\r\n t.grwkid\r\n )/2;\r\n radius = Math.sqrt(Math.pow(radius,2)*2)/2;\r\n t.addCircle([{\r\n id: t.drawParam.data.id,\r\n longitude: (e.geometry._extent.xmin+e.geometry._extent.xmax)/2,\r\n latitude: (e.geometry._extent.ymin+e.geometry._extent.ymax)/2,\r\n radius: radius,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }],t.drawParam.geometryType);\r\n param = {\r\n area: Math.PI*Math.pow(radius,2),\r\n attributes: {\r\n id: t.drawParam.data.id,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n },\r\n geometry: {\r\n type: t.drawParam.geometryType,\r\n x: (e.geometry._extent.xmin+e.geometry._extent.xmax)/2,\r\n y: (e.geometry._extent.ymin+e.geometry._extent.ymax)/2, \r\n radius\r\n },\r\n geometryType: t.drawParam.geometryType,\r\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\r\n }\r\n }\r\n }\r\n // t.GM.setGraphicParam(t.drawParam.data.id,param);\r\n //绘制返回\r\n if('drawEnd' in t.props && typeof(t.props.drawEnd) == 'function'){\r\n t.props.drawEnd(param);\r\n }\r\n })\r\n }\r\n //避免连点\r\n t.closeDraw();\r\n $(`#${t.props.mapId}_container`).css({\r\n cursor: 'crosshair'\r\n });\r\n let drawParam = {};\r\n //初始化参数\r\n drawParam.geometryType = obj.geometryType || 'point';\r\n drawParam.parameter = obj.parameter?{...obj.parameter}:{};\r\n drawParam.data = obj.data?{...obj.data}:{};\r\n drawParam.data.id = (obj.data || {}).id || `draw${new Date().getTime()}`;\r\n //缓存 绘制的数据\r\n t.drawParam = drawParam;\r\n //判断id是否存在\r\n let len = t.state.drawIds[drawParam.geometryType].indexOf(drawParam.data.id);\r\n if(len > -1){\r\n //如果id存在 删除存在的图元,清除drawId中的id数据\r\n t.removeGraphic(drawParam.data.id);\r\n t.state.drawIds[drawParam.geometryType].splice(len,1);\r\n }\r\n let lineSymbol = null,fillSymbol = null;\r\n if(drawParam.geometryType !== 'point'){\r\n //线类型\r\n let lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(drawParam.parameter.lineType){\r\n case 'solid':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n //处理边框线颜色和透明度 使用rgba处理透明度\r\n let lineColor = null;\r\n //线和面圆的线透明参数不同\r\n if(drawParam.geometryType == 'polyline'){\r\n lineColor = new esri.Color(drawParam.parameter.color);\r\n lineColor.a = drawParam.parameter.pellucidity;\r\n }else{\r\n lineColor = new esri.Color(drawParam.parameter.lineColor);\r\n lineColor.a = drawParam.parameter.lineOpacity;\r\n }\r\n //生成线类型对象\r\n lineSymbol = new esri.symbol.SimpleLineSymbol(lineStyle,lineColor,drawParam.parameter.lineWidth);\r\n }else{\r\n //点的样式\r\n let markerSymbol = new esri.symbol.PictureMarkerSymbol(\r\n drawParam.parameter.url || `${configUrl.mapServerURL}/images/defaultMarker.png`, \r\n (drawParam.parameter.width || 30), (drawParam.parameter.height || 30)\r\n );\r\n //设置点偏移\r\n markerSymbol.setOffset(\r\n (drawParam.parameter.markerContentX || -15) + (drawParam.parameter.width || 30)/2,\r\n -((drawParam.parameter.markerContentY || -15) + (drawParam.parameter.height || 30)/2)\r\n );\r\n t.drawToolbar.setMarkerSymbol(markerSymbol);\r\n }\r\n //处理面 矩形 圆的样式\r\n if(drawParam.geometryType == 'polygon' || drawParam.geometryType == 'circle' || drawParam.geometryType == 'rectangle'){\r\n //创建面对象\r\n fillSymbol = new esri.symbol.SimpleFillSymbol();\r\n //添加边框线数据\r\n fillSymbol.setOutline(lineSymbol);\r\n //处理填充颜色和透明度 使用rgba处理透明度\r\n let dColor = new esri.Color(drawParam.parameter.color);\r\n dColor.a = drawParam.parameter.pellucidity;\r\n fillSymbol.setColor(dColor);\r\n //添加线的样式\r\n t.drawToolbar.setFillSymbol(fillSymbol);\r\n t.drawToolbar.setRespectDrawingVertexOrder(true);\r\n }\r\n //重新设置绘制类型和数据\r\n let geometryType = esri.toolbars.Draw.POINT;\r\n switch(drawParam.geometryType){\r\n case 'point':\r\n geometryType = esri.toolbars.Draw.POINT;\r\n\r\n break;\r\n case 'polyline':\r\n geometryType = esri.toolbars.Draw.POLYLINE;\r\n //添加线的样式\r\n t.drawToolbar.setLineSymbol(lineSymbol);\r\n break;\r\n case 'polygon':\r\n geometryType = esri.toolbars.Draw.POLYGON;\r\n break;\r\n case 'circle':\r\n geometryType = esri.toolbars.Draw.CIRCLE;\r\n break;\r\n case 'rectangle':\r\n geometryType = esri.toolbars.Draw.RECTANGLE;\r\n break;\r\n }\r\n t.drawToolbar.activate(geometryType);\r\n }\r\n //关闭绘制\r\n closeDraw(){\r\n let t = this;\r\n if(t.drawToolbar){\r\n $(`#${t.props.mapId}_container`).css({\r\n cursor: 'default'\r\n });\r\n //先关闭上次绘制的事件\r\n t.drawToolbar.finishDrawing();\r\n //销毁上次绘制的类型设定\r\n t.drawToolbar.deactivate();\r\n }\r\n }\r\n //点聚合\r\n cluster(ids){\r\n let t = this;\r\n //获取聚合点id 空则是全部点位\r\n t.clusterMarkers = t.clusterToolFunction(ids);\r\n //处理聚合点逻辑\r\n t.dealClusterPoint();\r\n }\r\n //处理聚合点逻辑\r\n dealClusterPoint(){\r\n let t = this;\r\n //当前窗口信息\r\n let ext = t.dealExtendBounds(t.state.gis.extent);\r\n t.clusterPs = [];\r\n //清除原来聚合点\r\n for(let i = 0 ; i < t.clusterPt.length; i++){\r\n t.state.gis.graphics.remove(t.clusterPt[i].graphic);\r\n t.state.gis.graphics.remove(t.clusterPt[i].graphicText);\r\n }\r\n for(let i = 0; i < t.clusterMarkers.length ; i++){\r\n t.clusterMarkers[i].isCluster = false;\r\n }\r\n //处理后的聚合点位数据\r\n for(let i = 0 ; i < t.clusterMarkers.length ; i++){\r\n let gc = t.clusterMarkers[i].marker,\r\n distance = 4000000,newCluster = null;\r\n //过滤不是点的图元id\r\n if(gc.geometry.type !== 'point'){\r\n console.warning(`设置聚合的图元不符号类型!`);\r\n }else{\r\n //过滤窗口视线外的点位\r\n if(ext.contains(gc.geometry)){\r\n //聚合点集合空时 创建一个集合\r\n if(t.clusterPs.length === 0){\r\n t.createCluster(t.clusterMarkers[i]);\r\n }else{\r\n for(let j = 0 ; j < t.clusterPs.length; j++){\r\n //判断点是否在聚合点范围内\r\n let d = t.calculatePointsDistance(\r\n [gc.geometry.x,gc.geometry.y],\r\n [t.clusterPs[j].center.x,t.clusterPs[j].center.y]\r\n )\r\n //获取最优聚合点\r\n if(d < distance){\r\n distance = d;\r\n newCluster = t.clusterPs[j];\r\n }\r\n }\r\n //存在聚合 就添加进聚合 没有聚合就新建一个自己的聚合\r\n if(newCluster && newCluster.extent.contains(gc.geometry)){\r\n t.clusterMarkers[i].isCluster = true;\r\n newCluster.markers.push(t.clusterMarkers[i]);\r\n newCluster.isreal = true;\r\n }else{\r\n t.createCluster(t.clusterMarkers[i]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n //添加cluster聚合点\r\n for(let i = 0 ; i < t.clusterPs.length; i++){\r\n if(t.clusterPs[i].isreal){\r\n //添加聚合集合点\r\n t.addClusterPoint(t.clusterPs[i]);\r\n }else{\r\n let m = t.clusterPs[i].markers[0];\r\n if(!m.marker.getNode()){\r\n //存在html的label处理\r\n if(m.html){\r\n t.dealLabelGraphics(m.id,m.html);\r\n }\r\n //添加回原有的点\r\n t.state.gis.graphics.add(m.marker);\r\n }\r\n }\r\n }\r\n }\r\n //处理聚合点的添加\r\n addClusterPoint(cluster){\r\n let t = this;\r\n let len = cluster.markers.length,ids=[];\r\n let url = 'http://api.map.baidu.com/library/TextIconOverlay/1.2/src/images/m4.png',\r\n w = 90;\r\n if(len < 50){\r\n url = 'http://api.map.baidu.com/library/TextIconOverlay/1.2/src/images/m3.png';\r\n w = 78;\r\n }\r\n if(len < 30){\r\n url = 'http://api.map.baidu.com/library/TextIconOverlay/1.2/src/images/m2.png';\r\n w = 66;\r\n }\r\n if(len < 20){\r\n url = 'http://api.map.baidu.com/library/TextIconOverlay/1.2/src/images/m1.png';\r\n w = 56;\r\n }\r\n if(len < 10){\r\n url = 'http://api.map.baidu.com/library/TextIconOverlay/1.2/src/images/m0.png';\r\n w = 53;\r\n }\r\n //处理聚合中点位\r\n for(let i = 0 ; i < len ; i++){\r\n ids.push(cluster.markers[i].id);\r\n if(cluster.markers[i].marker.getNode()){\r\n t.state.gis.graphics.remove(cluster.markers[i].marker);\r\n if(cluster.markers[i].html){\r\n cluster.markers[i].html.html.remove();\r\n }\r\n }\r\n }\r\n //添加聚合点\r\n let markerSymbol = new esri.symbol.PictureMarkerSymbol(\r\n url, w, w\r\n );\r\n //设置文字点位(记录聚合点数量)\r\n let text = new esri.symbol.TextSymbol(len).setColor(new esri.Color('#fff'));\r\n //文字居中\r\n text.setOffset(0.5,-5);\r\n //创建点位对象\r\n let graphic = new esri.Graphic(cluster.center,markerSymbol,{id: 'vtx-clusterPoint',ids,cluster}),\r\n graphicText = new esri.Graphic(cluster.center,text,{id: 'vtx-clusterPoint',ids,cluster});\r\n //添加聚合点位到地图\r\n t.state.gis.graphics.add(graphic);\r\n t.state.gis.graphics.add(graphicText);\r\n t.clusterPt.push({graphic,graphicText});\r\n }\r\n //新增cluster\r\n createCluster(m){\r\n let t = this;\r\n let gc = m.marker;\r\n //不是集合里面的点\r\n if(!m.isCluster){\r\n m.isCluster = true;\r\n t.clusterPs.push({\r\n extent: t.dealExtendBounds(gc._extent),\r\n center: gc.geometry,\r\n markers: [m],\r\n isreal: false\r\n });\r\n }\r\n }\r\n //处理聚合的间距\r\n dealExtendBounds(extent,area){\r\n let t = this,bound = area || 60;\r\n let ne = new esri.geometry.Point(extent.xmax,extent.ymax),\r\n sw = new esri.geometry.Point(extent.xmin,extent.ymin),\r\n pixelNe = t.state.gis.toScreen(ne),\r\n pixelSw = t.state.gis.toScreen(sw);\r\n pixelNe.x += bound;\r\n pixelNe.y -= bound;\r\n pixelSw.x -= bound;\r\n pixelSw.y += bound;\r\n let newNe = t.state.gis.toMap(pixelNe),\r\n newSw = t.state.gis.toMap(pixelSw);\r\n return new esri.geometry.Extent(newSw.x,newSw.y,newNe.x,newNe.y, new esri.SpatialReference({ wkid: t.grwkid }));\r\n }\r\n //聚合功能公共方法(获取图元集合)\r\n clusterToolFunction(arg){\r\n let t = this;\r\n let ary = [];\r\n if(!arg){\r\n let {pointIds} = t.state;\r\n ary = pointIds;\r\n }else{\r\n if(Object.prototype.toString.apply(arg) === '[object Array]'){\r\n ary = arg;\r\n }else if(typeof arg === 'string'){\r\n ary = arg.split(',');\r\n }\r\n }\r\n let markerList = [];\r\n for(let i = 0; i < ary.length ; i++){\r\n let obj = {\r\n id: ary[i],\r\n marker: t.GM.getGraphic(ary[i]),\r\n isCluster: false\r\n }\r\n if(t.Label[ary[i]]){\r\n obj.html = t.Label[ary[i]];\r\n }\r\n markerList.push(obj);\r\n }\r\n return markerList;\r\n }\r\n //设置区域限制\r\n setAreaRestriction(areaRestriction){\r\n let t = this;\r\n let {_extent:_et} = t.dealData(areaRestriction);\r\n t.areaRestriction = new esri.geometry.Extent({\r\n ..._et,spatialReference: {wkid: t.grwkid}\r\n });\r\n }\r\n //关闭区域限制\r\n clearAreaRestriction(){\r\n let t = this;\r\n t.areaRestriction = null;\r\n }\r\n //区域限制逻辑\r\n dealAreaRestriction(e){\r\n let t = this;\r\n //如果在区域内,不处理\r\n if(t.areaRestriction.contains(e.extent.getCenter())){\r\n return;\r\n }\r\n // if(t.containsExtent(t.areaRestriction,e.extent)){\r\n // return; \r\n // }\r\n let {xmin:xmin1,xmax: xmax1,ymin: ymin1,ymax: ymax1} = t.areaRestriction;\r\n let {xmin:xmin2,xmax: xmax2,ymin: ymin2,ymax: ymax2} = e.extent;\r\n let x = e.extent.getCenter().x,y = e.extent.getCenter().y;\r\n if(x < xmin1)x = xmin1+0.1;\r\n if(x > xmax1)x = xmax1-0.1;\r\n if(y < ymin1)y = ymin1+0.1;\r\n if(y > ymax1)y = ymax1-0.1;\r\n let center = new esri.geometry.Point(x,y);\r\n t.state.gis.centerAt(center);\r\n }\r\n /*公共方法*/\r\n //判断extent1是否在extent2内部\r\n containsExtent(e1,e2){\r\n let {xmin:xmin1,xmax: xmax1,ymin: ymin1,ymax: ymax1} = e1;\r\n let {xmin:xmin2,xmax: xmax2,ymin: ymin2,ymax: ymax2} = e2;\r\n return (xmin2 > xmin1 && xmax2 < xmax1 && ymin2 > ymin1 && ymax2 < ymax1);\r\n }\r\n //将图元z-index设置成最高\r\n czIndex(id){\r\n let t = this;\r\n $(`#${t.props.mapId}_graphics_layer`).append(t.GM.getGraphic(id).getNode());\r\n }\r\n equalsPoint(a,b){\r\n return (a.x == b.x && a.y == b.y);\r\n }\r\n //计算2点间距离 单位m 精确到2位小数\r\n calculatePointsDistance(fp,ep){\r\n return getDistance(fp,ep,this.state.gis,this.state.grwkid);\r\n }\r\n //计算多个点的距离(常用于线计算)\r\n calculateDistance(ps){\r\n let t = this,totalDistance = 0;\r\n if (ps.length < 0) {return 0;}\r\n for(let i= 0 ; i< ps.length ; i++){\r\n if(i < ps.length-1){\r\n totalDistance += t.calculatePointsDistance(ps[i],ps[i+1]);\r\n }\r\n }\r\n return totalDistance;\r\n }\r\n //处理线和面的 经纬度数据\r\n dealData(paths){\r\n //区别点和圆的经纬度数据处理\r\n let lnglatAry = [],_extent = {xmax: 0,xmin: 0,ymax: 0,ymin: 0},path=[];\r\n path = paths.map((item,index)=>{\r\n let lng = item[0],lat = item[1];\r\n if(lng > _extent.xmax){\r\n _extent.xmax = lng;\r\n }\r\n if(lng < _extent.xmin || _extent.xmin == 0){\r\n _extent.xmin = lng;\r\n }\r\n if(lat > _extent.ymax){\r\n _extent.ymax = lat;\r\n }\r\n if(lat < _extent.ymin || _extent.ymin == 0){\r\n _extent.ymin = lat;\r\n }\r\n lnglatAry.push({\r\n lngX: lng,\r\n latX: lat\r\n });\r\n return [lng,lat];\r\n })\r\n return {lnglatAry,_extent,path};\r\n }\r\n //处理点位图元的添加 和 更新\r\n dealLabelGraphics(id,label){\r\n let t = this;\r\n if(label){\r\n let position = (t.GM.getGraphic(id) || {}).geometry || label.position;\r\n //经纬度转top和left\r\n let tl = t.state.gis.toScreen(position),lbl = {...label};\r\n //渲染優化\r\n if(!(tl.y < -50 || tl.x < -50 || tl.y > t.state.gis.height || tl.x > t.state.gis.width)){\r\n //设置label的位置(通过定位来实现)\r\n label.html.css({\r\n position: 'absolute',\r\n top: tl.y + (label.offset.y || 0) - t.labelLayer.y,\r\n left: tl.x + (label.offset.x || 0) - t.labelLayer.x\r\n });\r\n //添加点位到(地图)\r\n $(`#${t.htmlPointsId}`).append(label.html);\r\n lbl.add = true;\r\n }else{\r\n lbl.add = false;\r\n }\r\n //记录下label的dom对象,用于后期修改和删除(基本是删除)\r\n t.Label[id] = lbl;\r\n }\r\n }\r\n //点的跳动动画\r\n pointAnimation(id,marker){\r\n let t = this;\r\n //null时关闭跳动\r\n if(!!marker){\r\n if(t.animTimer[id]){\r\n clearInterval(t.animTimer[id]);\r\n }\r\n t.animTimer[id] = setInterval(()=>{\r\n //点被隐藏时,没有执行,定时不关\r\n if(marker.symbol){\r\n let shape = {...marker.symbol};\r\n //初始数据 点位有变动,重新刷新数据\r\n if(!t.animCount[id] || shape.yoffset != t.animCount[id].now){\r\n t.animCount[id] = {\r\n start: shape.yoffset,\r\n now: shape.yoffset,\r\n notation: -1\r\n };\r\n }\r\n if(t.animCount[id].now - t.animCount[id].start == 20){\r\n t.animCount[id].notation = -1;\r\n }\r\n if(t.animCount[id].now - t.animCount[id].start == 0){\r\n t.animCount[id].notation = 1;\r\n }\r\n shape.yoffset = t.animCount[id].now = (t.animCount[id].now + (t.animCount[id].notation)*2);\r\n marker.symbol.setOffset(shape.xoffset,shape.yoffset);\r\n t.state.gis.graphics.refresh();\r\n }\r\n },35);\r\n }else{\r\n clearInterval(t.animTimer[id]);\r\n }\r\n }\r\n moveAnimation(){\r\n let t = this;\r\n if(t.moveToTimer){\r\n clearInterval(t.moveToTimer);\r\n }\r\n t.moveToTimer = setInterval(()=>{\r\n for(let i = 0;i < t.movePoints.length; i++){\r\n t.movePoints[i].waitTime += 10;\r\n t.movePoints[i].deleteTime -= 10;\r\n }\r\n t.movePoints.sort((x,y)=>{\r\n return y.waitTime -x.waitTime;\r\n });\r\n let nowMovePoints = t.movePoints.slice(0,10),deleteIndex=[];\r\n for(let i = 0;i < nowMovePoints.length; i++){\r\n let {id,rx,ry,waitTime,deleteTime,ddeg} = nowMovePoints[i];\r\n let gc = t.GM.getGraphic(id);\r\n if(!gc || !gc._graphicsLayer){\r\n clearInterval(t.moveToTimer);\r\n }else{\r\n let gg = gc.geometry;\r\n let tx = gg.x + rx,ty = gg.y + ry;\r\n let lglt = new esri.geometry.Point(tx,ty);\r\n gc.geometry.setLatitude(ty);\r\n gc.geometry.setLongitude(tx);\r\n //设置完点位后 需要刷新下点位的显示范围\r\n gc._extent.update(tx,ty,tx,ty,new esri.SpatialReference({ wkid: t.grwkid }));\r\n if(gc._extent._parts && gc._extent._parts[0]){\r\n gc._extent._parts[0].extent.update(tx,ty,tx,ty,new esri.SpatialReference({ wkid: t.grwkid }));\r\n }\r\n // gc._extent._parts[0].extent = gc._extent.centerAt(lglt);\r\n gc._graphicsLayer.refresh();\r\n if(t.Label[id] && t.Label[id].add){\r\n let tl = t.state.gis.toScreen(lglt);\r\n //设置label的位置(通过定位来实现)\r\n t.Label[id].html.css({\r\n position: 'absolute',\r\n top: tl.y + (t.Label[id].offset.y || 0) - t.labelLayer.y,\r\n left: tl.x + (t.Label[id].offset.x || 0) - t.labelLayer.x\r\n });\r\n }\r\n t.GM.setGraphicParam(id,{...t.GM.getGraphicParam(id),deg: ddeg});\r\n t.movePoints[i].waitTime = 0;\r\n if(deleteTime <= 0){\r\n deleteIndex.push(i);\r\n }\r\n }\r\n }\r\n deleteIndex.sort((a,b)=>{return b-a});\r\n for(let i = 0 ; i < deleteIndex.length ; i++){\r\n t.movePoints.splice(deleteIndex[i],1);\r\n }\r\n if(nowMovePoints.length == 0){\r\n clearInterval(t.moveToTimer);\r\n }\r\n },10);\r\n }\r\n //点位移动动画效果\r\n moveTo(id,lnglat,delay,autoRotation,urlright,urlleft){\r\n delay = delay || 3;\r\n let t = this,timer = 10;\r\n delay = eval(delay)*1000;\r\n let count = delay/timer,\r\n gc = this.GM.getGraphic(id);\r\n let s = gc.geometry,e = new esri.geometry.Point(lnglat[0],lnglat[1]);\r\n if(t.equalsPoint(s,e)){\r\n return false;\r\n }else{\r\n let ddeg = 0,url= null;\r\n //计算角度,旋转\r\n if(autoRotation){\r\n //自己实现旋转\r\n ddeg = t.rotateDeg(gc.geometry,lnglat);\r\n if(urlleft && (ddeg < -90 && ddeg > -270)){\r\n ddeg += 180;\r\n url = urlleft;\r\n }else{\r\n url = urlright;\r\n }\r\n gc.symbol.setUrl(url);\r\n gc.symbol.setAngle(ddeg);\r\n gc._graphicsLayer.refresh();\r\n }\r\n //拆分延迟移动定位\r\n let rx = (e.x - s.x)/count, ry = (e.y - s.y)/count;\r\n let isHave = false;\r\n for(let i = 0 ; i < t.movePoints.length ;i++){\r\n if(t.movePoints[i].id == id){\r\n t.movePoints.splice(i,1,{\r\n id,rx,ry,\r\n waitTime: 0,\r\n deleteTime: delay\r\n });\r\n isHave = true;\r\n }\r\n }\r\n if(!isHave){\r\n t.movePoints.push({\r\n id,rx,ry,\r\n waitTime: 0,\r\n deleteTime: delay\r\n });\r\n }\r\n }\r\n }\r\n //点位角度旋转(以指向东(右)为0°)\r\n rotateDeg(sp,ep){\r\n let t = this;\r\n let spLngLat = sp;\r\n if(Array.isArray(sp)){\r\n spLngLat = new esri.geometry.Point(sp[0],sp[1]);\r\n }\r\n let s = t.state.gis.toScreen(spLngLat),\r\n //获取当前点位的经纬度\r\n e = t.state.gis.toScreen(new esri.geometry.Point(ep[0],ep[1])),\r\n deg = 0;\r\n if(e.x != s.x){\r\n var tan = (e.y - s.y)/(e.x - s.x),\r\n atan = Math.atan(tan);\r\n deg = atan*360/(2*Math.PI);\r\n //degree correction;\r\n if(e.x < s.x){\r\n deg = -deg + 90 + 90;\r\n\r\n } else {\r\n deg = -deg;\r\n }\r\n deg = -deg;\r\n }else {\r\n var disy = e.y- s.y ;\r\n var bias = 0;\r\n if(disy > 0)\r\n bias=-1;\r\n else\r\n bias = 1;\r\n if(disy == 0)\r\n bias = 0; \r\n deg = -bias * 90;\r\n }\r\n return deg;\r\n }\r\n //对比对象数据是否相等\r\n deepEqual(a,b){\r\n return Immutable.is(Immutable.fromJS(a),Immutable.fromJS(b));\r\n }\r\n //数据解析(分析,新增,更新,删除对应的数据)\r\n dataMatch(oldData,newData,type){\r\n let onlyOldData = Set(oldData).subtract(Set(newData)).toJS();\r\n let onlyNewData = Set(newData).subtract(Set(oldData)).toJS();\r\n let onlyOldIDs = onlyOldData.map(item=>item[type]);\r\n let onlyNewIDs = onlyNewData.map(item=>item[type]);\r\n let updateDataIDs = Set(onlyOldIDs).intersect(Set(onlyNewIDs)).toJS();\r\n let updatedData = onlyNewData.filter(item=> updateDataIDs.indexOf(item[type])>-1);\r\n let replacedData = onlyOldData.filter(item=> updateDataIDs.indexOf(item[type])>-1);\r\n let deletedDataIDs = onlyOldIDs.filter(oldID=>updateDataIDs.indexOf(oldID)==-1);\r\n let addedData = onlyNewData.filter(item=>updateDataIDs.indexOf(item[type])==-1)\r\n \r\n return {deletedDataIDs,addedData,updatedData,replacedData};\r\n }\r\n //处理需要增加图元的数据(避免意外问题)\r\n dealAdd(ary,ids){\r\n let ads = [], otherupds = [];\r\n for(let i = 0 ; i < ary.length ; i++){\r\n if(ids.indexOf(ary[i].id) > -1){\r\n otherupds.push(ary[i]);\r\n }else{\r\n ads.push(ary[i]);\r\n }\r\n }\r\n return {ads,otherupds};\r\n }\r\n //处理需要更新图元的数据(避免意外问题)\r\n dealUpdate(ary,ids){\r\n let upds = [], otherads = [];\r\n for(let i = 0 ; i < ary.length ; i++){\r\n if(ids.indexOf(ary[i].id) > -1){\r\n upds.push(ary[i]);\r\n }else{\r\n otherads.push(ary[i]);\r\n }\r\n }\r\n return {upds,otherads};\r\n }\r\n //渲染\r\n render(){\r\n let t = this;\r\n let _map = this.props;\r\n return (\r\n <div id={_map.mapId} style={{width:'100%',height:'100%',backgroundColor: '#f1f1f1'}}></div>\r\n )\r\n }\r\n\r\n //初始化\r\n componentDidMount(){\r\n let t = this;\r\n t.loadMapComplete.then(()=>{\r\n t.init();\r\n }) \r\n }\r\n //已加载组件,收到新的参数时调用\r\n componentWillReceiveProps(nextProps) {\r\n let t = this;\r\n t.grwkid = nextProps.grwkid || 4326;\r\n //新参数处理方法\r\n let initData = ()=>{\r\n let t = this;\r\n //点/线旧数据\r\n let {pointIds,lineIds,polygonIds,circleIds,drawIds} = t.state;\r\n let {point,polyline,polygon,circle,rectangle} = drawIds;\r\n //点/线新数据\r\n let {\r\n mapPoints = [],mapLines = [],mapPolygons = [],mapCircles = [],customizedBoundary =[],\r\n isOpenTrafficInfo,boundaryName,heatMapData,\r\n mapVisiblePoints,setVisiblePoints,\r\n setCenter,mapCenter,\r\n setZoomLevel,mapZoomLevel,\r\n setCluster,mapCluster,\r\n isRangingTool,mapRangingTool,\r\n isRemove,mapRemove,\r\n mapDraw,isDraw,isCloseDraw,\r\n editGraphicId,isDoEdit,isEndEdit,\r\n mapPointCollection,isclearAllPointCollection,\r\n isSetAreaRestriction,areaRestriction,isClearAreaRestriction,\r\n isClearAll\r\n } = nextProps;\r\n // 等待地图加载\r\n if(!t.state.mapCreated)return;\r\n /*添加海量点*/\r\n if(mapPointCollection instanceof Array && t.props.mapPointCollection instanceof Array && !t.deepEqual(mapPointCollection,t.props.mapPointCollection)){\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(t.props.mapPointCollection,mapPointCollection,'id');\r\n t.clearPointCollection(deletedDataIDs);\r\n t.addPointCollection(addedData);\r\n t.updatePointCollection(updatedData);\r\n }\r\n if((typeof(isclearAllPointCollection) == 'boolean' && isclearAllPointCollection) || (isclearAllPointCollection && isclearAllPointCollection !== t.props.isclearAllPointCollection)){\r\n t.clearAllPointCollection();\r\n }\r\n /*点数据处理\r\n pointData[2]相同的点,执行刷新\r\n pointData[1]的数据在idsForGraphicId中不存在的,执行新增\r\n pointData[0]数据中多余的id,执行删除\r\n */\r\n if(mapPoints instanceof Array && t.props.mapPoints instanceof Array && !t.deepEqual(mapPoints,t.props.mapPoints)){\r\n let oldMapPoints = t.props.mapPoints;\r\n let newMapPoints = mapPoints;\r\n //过滤编辑的图元\r\n if(!!t.editId){\r\n oldMapPoints = t.props.mapPoints.filter((item)=>{return item.id !== editGraphicId});\r\n newMapPoints = mapPoints.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapPoints,newMapPoints,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...pointIds,...point]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...pointIds,...point]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'point');\r\n }\r\n //增加\r\n t.addPoint([...ads,...otherads]);\r\n //更新\r\n t.updatePoint([...upds,...otherupds]);\r\n }\r\n /*\r\n 面数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapPolygons instanceof Array && t.props.mapPolygons instanceof Array && !t.deepEqual(mapPolygons,t.props.mapPolygons)){\r\n let oldMapPolygons = t.props.mapPolygons;\r\n let newMapPolygons = mapPolygons;\r\n if(!!t.editId){\r\n oldMapPolygons = t.props.mapPolygons.filter((item)=>{return item.id !== editGraphicId});\r\n newMapPolygons = mapPolygons.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapPolygons,newMapPolygons,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...rectangle,...polygon,...polygonIds]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...rectangle,...polygon,...polygonIds]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'polygon');\r\n }\r\n //增加\r\n t.addPolygon([...ads,...otherads]);\r\n //更新\r\n t.updatePolygon([...upds,...otherupds]);\r\n }\r\n /*\r\n 圆数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapCircles instanceof Array && t.props.mapCircles instanceof Array && !t.deepEqual(mapCircles,t.props.mapCircles)){\r\n let oldMapCircles = t.props.mapCircles;\r\n let newMapCircles = mapCircles;\r\n if(!!t.editId){\r\n oldMapCircles = t.props.mapCircles.filter((item)=>{return item.id !== editGraphicId});\r\n newMapCircles = mapCircles.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapCircles,newMapCircles,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...circleIds,...circle]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...circleIds,...circle]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'circle');\r\n }\r\n //增加\r\n t.addCircle([...ads,...otherads]);\r\n //更新\r\n t.updateCircle([...upds,...otherupds]);\r\n }\r\n /*\r\n 线数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapLines instanceof Array && t.props.mapLines instanceof Array && !t.deepEqual(mapLines,t.props.mapLines)){\r\n let oldMapLines = t.props.mapLines;\r\n let newMapLines = mapLines;\r\n if(!!t.editId){\r\n oldMapLines = t.props.mapLines.filter((item)=>{return item.id !== editGraphicId});\r\n newMapLines = mapLines.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapLines,newMapLines,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...lineIds,...polyline]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...lineIds,...polyline]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'line');\r\n }\r\n //增加\r\n t.addLine([...ads,...otherads]);\r\n //更新\r\n t.updateLine([...upds,...otherupds]); \r\n }\r\n //画其他特例线专用\r\n if(customizedBoundary instanceof Array && t.props.customizedBoundary instanceof Array && !t.deepEqual(customizedBoundary,t.props.customizedBoundary)){\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(t.props.customizedBoundary,customizedBoundary,'id');\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'line');\r\n }\r\n t.addLine(addedData);\r\n t.updateLine(updatedData); \r\n }\r\n //绘制边界线\r\n // if(boundaryName instanceof Array && !t.deepEqual(boundaryName,t.props.boundaryName)){\r\n // let newBDName = Set(boundaryName);\r\n // let oldBDName = Set(t.props.boundaryName);\r\n // let removedBoundaryName = oldBDName.subtract(newBDName).toJS();\r\n // let addedBoundaryName = newBDName.subtract(oldBDName).toJS();\r\n // t.removeBaiduBoundary(removedBoundaryName);\r\n // t.addBaiduBoundary(addedBoundaryName);\r\n // }\r\n // 获取热力图\r\n if(heatMapData && !t.deepEqual(heatMapData,t.props.heatMapData)){\r\n t.heatMapOverlay(heatMapData);\r\n }\r\n //图元编辑调用\r\n if((typeof(isDoEdit) == 'boolean' && isDoEdit) || (isDoEdit && isDoEdit !== t.props.isDoEdit)){\r\n t.doEdit(editGraphicId);\r\n }\r\n //关闭图元编辑\r\n if((typeof(isEndEdit) == 'boolean' && isEndEdit) || (isEndEdit && isEndEdit !== t.props.isEndEdit)){\r\n t.endEdit();\r\n }\r\n //开启图元绘制\r\n if((typeof(isDraw) == 'boolean' && isDraw) || (isDraw && isDraw !== t.props.isDraw)){\r\n t.draw(mapDraw);\r\n }\r\n //关闭图元绘制\r\n if((typeof(isCloseDraw) == 'boolean' && isCloseDraw) || (isCloseDraw && isCloseDraw !== t.props.isCloseDraw)){\r\n t.closeDraw();\r\n }\r\n //设置中心点\r\n if((typeof(setCenter) == 'boolean' && setCenter) || (setCenter && setCenter !== t.props.setCenter)){\r\n t.setCenter(mapCenter);\r\n }\r\n //设置点聚合\r\n if((typeof(setCluster) == 'boolean' && setCluster) || (setCluster && setCluster !== t.props.setCluster)){\r\n t.cluster(mapCluster);\r\n }\r\n //设置比例尺\r\n if((typeof(setZoomLevel) == 'boolean' && setZoomLevel) || (setZoomLevel && setZoomLevel !== t.props.setZoomLevel)){\r\n t.setZoomLevel(mapZoomLevel);\r\n }\r\n //设置最优视野\r\n if((typeof(setVisiblePoints) == 'boolean' && setVisiblePoints) || (setVisiblePoints && setVisiblePoints !== t.props.setVisiblePoints)){\r\n t.setVisiblePoints(mapVisiblePoints);\r\n }\r\n //测距工具调用\r\n if((typeof(isRangingTool) == 'boolean' && isRangingTool) || (isRangingTool && isRangingTool !== t.props.isRangingTool)){\r\n t.vtxRangingTool(mapRangingTool);\r\n }\r\n // //开关路况\r\n // if(isOpenTrafficInfo){\r\n // t.openTrafficInfo();\r\n // }else{\r\n // t.hideTrafficInfo();\r\n // }\r\n //设置区域限制\r\n if((typeof(isSetAreaRestriction) == 'boolean' && isSetAreaRestriction) \r\n || (isSetAreaRestriction && isSetAreaRestriction !== t.props.isSetAreaRestriction) \r\n && areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]){\r\n t.setAreaRestriction(areaRestriction);\r\n }\r\n //关闭区域限制\r\n if((typeof(isClearAreaRestriction) == 'boolean' && isClearAreaRestriction) || (isClearAreaRestriction && isClearAreaRestriction !== t.props.isClearAreaRestriction)){\r\n t.clearAreaRestriction();\r\n }\r\n //清空地图\r\n if((typeof(isClearAll) == 'boolean' && isClearAll) || (isClearAll && isClearAll !== t.props.isClearAll)){\r\n t.clearAll();\r\n }\r\n //删除指定图元\r\n if((typeof(isRemove) == 'boolean' && isRemove) || (isRemove && isRemove !== t.props.isRemove)){\r\n mapRemove.map((item,index)=>{\r\n t.removeGraphic(item.id,item.type);\r\n });\r\n }\r\n }\r\n //graphics对象存在 直接处理数据,不存在 延迟处理数据\r\n if(!t.state.gis || !t.state.gis.graphics){\r\n if(t.loadTimer){\r\n clearTimeout(t.loadTimer);\r\n }\r\n t.loadTimer = setTimeout(()=>{\r\n initData();\r\n },300);\r\n }else{\r\n initData();\r\n }\r\n }\r\n componentWillUnmount() {\r\n //关闭moveTo定时\r\n let t = this;\r\n if(t.moveToTimer){\r\n clearInterval(t.moveToTimer);\r\n }\r\n //关闭animation定时\r\n for(let j in t.animTimer){\r\n if(t.animTimer[j]){\r\n clearInterval(t.animTimer[j]);\r\n }\r\n }\r\n window.VtxMap[t.state.mapId]= null;\r\n }\r\n}\r\nexport default ArcgisMap;"],"mappings":"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"}
1
+ {"version":3,"file":"Map.js","names":["_react","_interopRequireDefault","require","_MapToolFunction","_immutable","_default2","obj","__esModule","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","_typeof","constructor","prototype","ownKeys","r","t","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","_toPropertyKey","configurable","writable","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","minLen","_arrayLikeToArray","toString","slice","name","from","test","iter","len","arr2","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_createClass","protoProps","staticProps","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","Number","_inherits","subClass","superClass","create","_setPrototypeOf","p","setPrototypeOf","bind","__proto__","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf","result","NewTarget","Reflect","construct","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","sham","Proxy","Boolean","valueOf","getPrototypeOf","Set","Immutable","ArcgisMap","_React$Component","_super","_this","grwkid","wkid","isNaN","parseInt","wkidStr","zIndexGraphics","htmlPointsId","pointCollectionId","Label","labelLayer","x","y","GM","graphicManage","getPolygonArea","loadTimer","animTimer","animCount","moveToTimer","drawToolbar","drawParam","editToolbar","editToolbarC","editId","canMoveLabel","mouseNowPosition","px","py","isCount","heatmap","clusterMarkers","clusterPs","clusterPt","morepoints","areaRestriction","movePoints","rangingTool","isRanging","line","points","distance","mapRangingTool","rangingTools","state","gis","mapId","mapCreated","pointIds","lineIds","polygonIds","circleIds","editGraphic","boundaryInfo","drawIds","point","polyline","polygon","circle","rectangle","loadMapJs","loadMapComplete","Promise","resolve","reject","window","GMap","$","getScript","concat","configUrl","arcgisServerURL","Heatmap","mapServerURL","PointCollection","all","then","Map","attr","rel","type","href","appendTo","init","_this2","createMap","initData","_t$props","mapPoints","mapLines","mapPolygons","mapCircles","mapVisiblePoints","mapCluster","mapZoomLevel","isOpenTrafficInfo","mapPointCollection","_t$props2","boundaryName","heatMapData","customizedBoundary","_t$state","addPoint","addLine","addPolygon","addCircle","showControl","heatMapOverlay","cluster","addPointCollection","setAreaRestriction","setState","event","changeLabel","cmids","map","item","id","position","getGraphic","geometry","tl","toScreen","height","width","html","css","top","offset","left","add","indexOf","append","remove","czIndex","getNode","rangingToolFun","status","lnlt","mapPoint","getDistance","longitude","latitude","paths","distext","Math","round","random","markerContent","config","markerContentX","markerContentY","color","lineWidth","lineType","updateLine","enableDoubleClickZoom","rangkey","Date","getTime","end","index","removeGraphic","lnglats","on","rp","getGraphicParam","attributes","other","rcontent","sl","pellucidity","updatePoint","clickMap","dragMapStart","dragMapEnd","delta","changeDiv","moveStart","moveEnd","dealClusterPoint","updatePointCollection","eval","replace","draw","dealAreaRestriction","zoomStart","display","isHideHeatMap","hide","zoomEnd","show","getScale","coefficient","pow","floor","gs","toldis","isCent","scaleW","children","graphics","graphic","gid","setVisiblePoints","fitView","ids","clickGraphic","ls","ps","mouseOverGraphic","mouseOutGraphic","setCenter","mapCenter","_t$props3","minZoom","maxZoom","mapServer","options","zoom","center","VtxMap","fullExtent","xmin","ymin","xmax","ymax","autoResize","logo","isKeyboardNavigation","showAttribution","backgroundColor","extent","esri","Extent","spatialReference","onModalResize","resize","reposition","addMapLayers","removeAllLayers","services","servs","im","url","basemap","layers","gisServer","tileInfo","TileInfo","format","SpatialReference","origin","lods","tileExtent","inTileExtent","initialExtent","layerInfo","WMTSLayerInfo","identifier","layer","tileMatrixSet","tilematrixset","style","resourceInfo","version","layerInfos","copyright","serviceMode","wmtsLayer","WMTSLayer","UrlTemplate","substring","console","warn","defaultWmtsMapLayers","dtileInfo","dtileExtent","dinTileExtent","dlayerInfo","dresourceInfo","doptions","substr","j","addLayer","_this3","psids","isRepetition","cg","labelContent","labelPixelX","labelPixelY","BAnimationType","deg","Point","marker","label","markerSymbol","symbol","PictureMarkerSymbol","setOffset","Graphic","setAngle","canShowLabel","labelClass","split","join","zIndex","pointAnimation","dealLabelGraphics","setGraphic","setGraphicParam","geometryType","_this4","gc","setUrl","setWidth","setHeight","isAnimation","moveTo","animationDelay","autoRotation","urlleft","setGeometry","_extent","update","_parts","refresh","moveAnimation","lsids","isHidden","linePath","Polyline","SimpleLineSymbol","STYLE_SOLID","STYLE_DASH","Color","a","lineSymbol","removePath","addPath","_t$dealData","dealData","setColor","setStyle","pgsids","rings","lineColor","lineOpacity","polygonPath","Polygon","lineStyle","polygonSymbol","SimpleFillSymbol","setOutline","polygonColor","updatePolygon","removeRing","addRing","_t$dealData2","outline","ccsids","parseFloat","Circle","radius","circleSymbol","circleColor","updateCircle","setSymbol","data","d","lng","lat","size","shape","VotexpointCollection","GMapLib","ds","ind","reDraw","clearPointCollection","clear","clearAllPointCollection","max","visible","opacity","HeatmapOverlay","initialize","option","gradient","setOptions","setDataSet","param","clientY","clientX","getMapExtent","clickLngLat","pixel","screenPoint","gt","c","getCenter","centerAt","setZoomLevel","z","getZoom","setZoom","ary","g","_t$dealData3","dealExtendBounds","ext","setExtent","getCurrentCenter","geographicExtent","getZoomLevel","getLevel","_t$state$gis$extent","gp","gg","pts","mapLayer","area","PI","nowBounds","_getAvailExtent","southWest","northEast","nowCenter","mapSize","calculatePointsDistance","vtxRangingTool","disableDoubleClickZoom","splice","clearAll","_t$state2","pgs","cs","location","w","h","sliderShow","doEdit","toolbars","Edit","eid","gcparam","editGraphicChange","calculateDistance","circleCenter","circleEditPXY","cgc","deactivate","activate","MOVE","EDIT_VERTICES","endEdit","Draw","drawTime","showTooltips","closeDraw","parameter","_t$dealData4","lnglatAry","rs","pop","_t$dealData5","sqrt","drawEnd","cursor","fillSymbol","setMarkerSymbol","dColor","setFillSymbol","setRespectDrawingVertexOrder","POINT","POLYLINE","setLineSymbol","POLYGON","CIRCLE","RECTANGLE","finishDrawing","clusterToolFunction","graphicText","isCluster","newCluster","warning","contains","createCluster","markers","isreal","addClusterPoint","m","text","TextSymbol","bound","ne","sw","pixelNe","pixelSw","newNe","toMap","newSw","markerList","_t$dealData6","_et","clearAreaRestriction","_t$areaRestriction","xmin1","xmax1","ymin1","ymax1","_e$extent","xmin2","xmax2","ymin2","ymax2","containsExtent","e1","e2","equalsPoint","b","fp","ep","totalDistance","path","lngX","latX","lbl","clearInterval","setInterval","yoffset","now","start","notation","xoffset","waitTime","deleteTime","sort","nowMovePoints","deleteIndex","_nowMovePoints$_i","rx","ry","ddeg","_graphicsLayer","tx","ty","lglt","setLatitude","setLongitude","lnglat","delay","urlright","timer","count","rotateDeg","isHave","sp","spLngLat","tan","atan","disy","bias","deepEqual","is","fromJS","dataMatch","oldData","newData","onlyOldData","subtract","toJS","onlyNewData","onlyOldIDs","onlyNewIDs","updateDataIDs","intersect","updatedData","replacedData","deletedDataIDs","oldID","addedData","dealAdd","ads","otherupds","dealUpdate","upds","otherads","render","_map","createElement","componentDidMount","componentWillReceiveProps","nextProps","_this5","_t$state3","_nextProps$mapPoints","_nextProps$mapLines","_nextProps$mapPolygon","_nextProps$mapCircles","_nextProps$customized","setCluster","isRangingTool","isRemove","mapRemove","mapDraw","isDraw","isCloseDraw","editGraphicId","isDoEdit","isEndEdit","isclearAllPointCollection","isSetAreaRestriction","isClearAreaRestriction","isClearAll","_t$dataMatch","oldMapPoints","newMapPoints","_t$dataMatch2","_t$dealAdd","_t$dealUpdate","_iterator","_step","oldMapPolygons","newMapPolygons","_t$dataMatch3","_t$dealAdd2","_t$dealUpdate2","_iterator2","_step2","oldMapCircles","newMapCircles","_t$dataMatch4","_t$dealAdd3","_t$dealUpdate3","_iterator3","_step3","oldMapLines","newMapLines","_t$dataMatch5","_t$dealAdd4","_t$dealUpdate4","_iterator4","_step4","_t$dataMatch6","_iterator5","_step5","clearTimeout","setTimeout","componentWillUnmount","React","Component","_default","exports","module"],"sources":["VtxMap/GMap/Map.js"],"sourcesContent":["import React from 'react';\r\nimport {\r\n graphicManage,defaultWmtsMapLayers,getPixelDistance,getDistance,getPolygonArea\r\n} from '../MapToolFunction';\r\nimport Immutable from 'immutable';\r\n//公共地址配置\r\nimport configUrl from '../../default';\r\nconst {Set} = Immutable;\r\nclass ArcgisMap extends React.Component{ \r\n constructor(props){ \r\n super(props);\r\n this.grwkid = 4326;//wkid 坐标系对应,全局使用.\r\n this.wkid = (isNaN(parseInt(props.wkid))?props.wkid:parseInt(props.wkid)) || 4326;//wkid 坐标系对应,全局使用.\r\n this.wkidStr = isNaN(parseInt(props.wkid))?'wkt':'wkid';\r\n this.zIndexGraphics = [];//需要放在最后的图元,zoom和pan时刷新dom到最后\r\n this.htmlPointsId = 'vtx_gmap_html_points';//html点位容器id class管理\r\n this.pointCollectionId = 'vtx_gmap_html_pointCollection';//海量点canvas点位容器id class管理\r\n this.Label = {};//所有label 集合\r\n this.labelLayer = {x: 0,y: 0};//label图层 位置管理\r\n this.GM = new graphicManage();//初始化 图元管理方法\r\n this.getPolygonArea = getPolygonArea;\r\n this.loadTimer = null;//初始化地图 load时延缓数据处理\r\n this.animTimer = {};//点位跳动动画 定时集合\r\n this.animCount = {};//点位跳动动画 定时计数\r\n this.moveToTimer = null;//moveTo时间对象\r\n this.drawToolbar = null;//绘制对象\r\n this.drawParam = {};//缓存 绘制的数据\r\n this.editToolbar = null;//编辑对象\r\n this.editToolbarC = null;//编辑对象\r\n this.editId = '';//当前编辑的图元id\r\n this.canMoveLabel = false;//编辑点时,label跟着移动开关\r\n //当前鼠标的经纬度,便捷含label点时刷新 \r\n //x,y鼠标坐标 px,py鼠标与点中心偏移坐标 isCount是否计算偏移\r\n this.mouseNowPosition = {x:0,y:0,px:0,py:0,isCount:false};\r\n this.heatmap = null;//热力图对象\r\n this.clusterMarkers = [];//聚合点位id数组\r\n this.clusterPs = [];//聚合集合点\r\n this.clusterPt = [];//地图中聚合点集合\r\n this.morepoints = [];//海量点集合\r\n this.areaRestriction = null;//区域限制数据\r\n this.movePoints = [];\r\n //是否绘制测距\r\n this.rangingTool = {\r\n isRanging: false,//是否开启状态\r\n line: {},//线\r\n points: [],//点\r\n distance: 0,//测距长度\r\n mapRangingTool: null//测距回调\r\n };\r\n this.rangingTools = {};//测距点线缓存\r\n this.state = {\r\n gis: null,//地图对象\r\n mapId: props.mapId,\r\n mapCreated: false,\r\n pointIds:[], //地图上点的ids\r\n lineIds:[], //地图上线的ids\r\n polygonIds:[], //地图上面的ids\r\n circleIds:[], //地图上圆的ids\r\n // editId: '',//当前编辑的图元id\r\n editGraphic: '',//当前编辑完后图元所有数据\r\n boundaryInfo: [],//当前画出的边界线的id和区域名\r\n drawIds: {//绘制工具id集合\r\n point: [],\r\n polyline: [],\r\n polygon: [],\r\n circle: [],\r\n rectangle: []\r\n }\r\n }\r\n this.loadMapJs();\r\n }\r\n //加载地图信息\r\n loadMapJs(){\r\n this.loadMapComplete = new Promise((resolve,reject)=>{\r\n if(window.GMap){\r\n resolve(window.GMap);\r\n }\r\n else{\r\n //加载 js\r\n // $.getScript('http://222.92.212.126:25048/gis/html/js/arcgis_js_api/library/3.9/3.9/init.js',()=>{\r\n $.getScript(`${configUrl.arcgisServerURL}/html/js/arcgis_js_api/library/3.9/3.9/init.js`,()=>{\r\n let Heatmap = new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/gisheatmap.js`,()=>{\r\n resolve();\r\n });\r\n });\r\n let PointCollection = new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/GPointCollection.js`,()=>{\r\n resolve();\r\n });\r\n });\r\n Promise.all([Heatmap,PointCollection]).then(()=>{\r\n //require是关键字 这边用window区别\r\n window.require([ \r\n \"esri/map\", \"esri/layers/ArcGISTiledMapServiceLayer\", \"dojo/on\",\r\n 'esri/geometry/Point','esri/symbols/SimpleMarkerSymbol',\"esri/Color\",\r\n \"esri/graphic\",\"esri/domUtils\",\"esri/toolbars/edit\",\"esri/symbols/PictureMarkerSymbol\",\r\n \"esri/symbols/TextSymbol\",\"esri/symbols/SimpleLineSymbol\",\"esri/toolbars/draw\",\r\n \"esri/layers/WMTSLayer\",\"esri/geometry/Extent\",\"esri/layers/WMTSLayerInfo\",\r\n \"esri/geometry/Polyline\",\"esri/symbols/SimpleFillSymbol\",\"esri/geometry/Circle\",\r\n \"esri/layers/TileInfo\", \"esri/SpatialReference\",\"esri/dijit/BasemapToggle\",\r\n ], function(Map) {\r\n window.GMap = Map;\r\n resolve(window.GMap);\r\n });\r\n })\r\n });\r\n //加载 css\r\n $(\"<link>\").attr({ rel: \"stylesheet\",type: \"text/css\",href: `${configUrl.arcgisServerURL}/html/js/arcgis_js_api/library/3.9/3.9/js/dojo/dijit/themes/tundra/tundra.css`}).appendTo(\"head\");\r\n $(\"<link>\").attr({ rel: \"stylesheet\",type: \"text/css\",href: `${configUrl.arcgisServerURL}/html/js/arcgis_js_api/library/3.9/3.9/js/esri/css/esri.css`}).appendTo(\"head\");\r\n }\r\n });\r\n }\r\n //初始化地图数据\r\n init(){\r\n let t = this;\r\n //创建地图\r\n t.createMap();\r\n // 处理数据(整合)\r\n let initData = ()=>{\r\n const {\r\n mapPoints,mapLines,mapPolygons,mapCircles,\r\n mapVisiblePoints,mapCluster,mapZoomLevel,\r\n isOpenTrafficInfo,mapPointCollection,areaRestriction\r\n } = t.props;\r\n let {boundaryName,heatMapData,customizedBoundary} = t.props;\r\n let {boundaryInfo,pointIds,lineIds,polygonIds,circleIds} = t.state;\r\n //添加点\r\n if(mapPoints instanceof Array){\r\n t.addPoint(mapPoints);\r\n }\r\n //添加线\r\n if(mapLines instanceof Array){\r\n t.addLine(mapLines);\r\n }\r\n //添加面\r\n if(mapPolygons instanceof Array){\r\n t.addPolygon(mapPolygons);\r\n }\r\n //添加圆\r\n if(mapCircles instanceof Array){\r\n t.addCircle(mapCircles);\r\n }\r\n //是否设置比例尺\r\n if(t.props.showControl){\r\n t.showControl();\r\n }\r\n // 画热力图\r\n if(heatMapData){\r\n t.heatMapOverlay(heatMapData);\r\n }\r\n //设置点聚合\r\n if(mapCluster instanceof Array){\r\n t.cluster(mapCluster);\r\n }\r\n //添加海量点\r\n if(mapPointCollection instanceof Array){\r\n t.addPointCollection(mapPointCollection);\r\n }\r\n //设置区域限制\r\n if(areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]){\r\n t.setAreaRestriction(areaRestriction);\r\n }\r\n t.setState({\r\n mapCreated:true\r\n })\r\n }\r\n //事件监听\r\n let event = ()=>{\r\n //html点位 根据地图移动和zoom计算位置\r\n let changeLabel = ()=>{\r\n for(let i in t.Label){\r\n let cmids = t.clusterMarkers.map((item)=>item.id);\r\n if(t.Label[i]){\r\n let position = t.GM.getGraphic(i).geometry;\r\n let tl = t.state.gis.toScreen(position);\r\n // let tl = t.state.gis.toScreen(t.Label[i].position);\r\n //渲染優化\r\n if(!(tl.y < -50 || tl.x < -50 || tl.y > t.state.gis.height || tl.x > t.state.gis.width)){\r\n t.Label[i].html.css({\r\n position: 'absolute',\r\n top: tl.y + t.Label[i].offset.y - t.labelLayer.y,\r\n left: tl.x + t.Label[i].offset.x - t.labelLayer.x\r\n });\r\n if(!t.Label[i].add && cmids.indexOf(i) == -1){\r\n $(`#${t.htmlPointsId}`).append(t.Label[i].html);\r\n t.Label[i].add = true;\r\n }\r\n }else{\r\n if(t.Label[i].add && cmids.indexOf(i) == -1){\r\n t.Label[i].html.remove();\r\n t.Label[i].add = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n //见需要在顶部显示的图元重新排位置\r\n let czIndex = ()=>{\r\n for(let i = 0 ; i < t.zIndexGraphics.length; i++){\r\n $(`#${t.props.mapId}_graphics_layer`).append(t.GM.getGraphic(t.zIndexGraphics[i]).getNode());\r\n }\r\n }\r\n /*测距功能*/\r\n let rangingToolFun = (e,status)=>{\r\n if(t.rangingTool.isRanging){\r\n //测距开始\r\n //点击位置\r\n let lnlt = [e.mapPoint.x,e.mapPoint.y];\r\n //2个点以上 计算长度\r\n if(t.rangingTool.points.length > 0){\r\n t.rangingTool.distance += getDistance(lnlt,\r\n [t.rangingTool.points[t.rangingTool.points.length-1].longitude,\r\n t.rangingTool.points[t.rangingTool.points.length-1].latitude],\r\n t.state.gis,\r\n t.grwkid\r\n );\r\n }else{\r\n t.rangingTool.line.paths = [];\r\n }\r\n t.rangingTool.line.paths.push([...lnlt]);\r\n //处理距离展示\r\n let distext = t.rangingTool.distance > 0\r\n ?(t.rangingTool.distance > 1000\r\n ?`总长:${Math.round(t.rangingTool.distance/10)/100}公里`:`总长:${t.rangingTool.distance}米`)\r\n :'起点';\r\n //加点\r\n let point = {\r\n id: t.rangingTool.points.length + 'vtx_g_rang_p'+Math.random(),\r\n longitude: lnlt[0],\r\n latitude: lnlt[1],\r\n markerContent: `\r\n <div style='z-index:1;'>\r\n <div class='vtx-g-rangingPoint'></div>\r\n <div class='vtx-g-rangingDistance'>${distext}</div>\r\n </div>\r\n `,\r\n config: {\r\n width:130,\r\n height:30,\r\n markerContentX: -5.5,\r\n markerContentY: -12.5,\r\n }\r\n };\r\n //用addpoint方法加点\r\n t.addPoint([point]);\r\n //缓存点信息\r\n t.rangingTool.points.push(point);\r\n if(t.rangingTool.line.paths.length == 2){\r\n //加线\r\n t.rangingTool.line = {\r\n id: 'vtx_g_rang_line'+Math.random(),\r\n paths: [...t.rangingTool.line.paths],\r\n config:{\r\n color: '#ff0000',\r\n lineWidth: 2,\r\n lineType: 'solid'\r\n }\r\n }\r\n t.addLine([t.rangingTool.line]);\r\n }else if(t.rangingTool.line.paths.length > 2){\r\n t.updateLine([{\r\n ...t.rangingTool.line,\r\n paths: [...t.rangingTool.line.paths]\r\n }]);\r\n }\r\n //双击 测距结束\r\n if(status == 'dbl'){\r\n //开启双击缩放功能\r\n t.state.gis.enableDoubleClickZoom();\r\n let rangkey = new Date().getTime()+Math.random();\r\n //加结束点\r\n let end = {\r\n id: 'vtx_g_rang_end'+Math.random(),\r\n longitude: lnlt[0],\r\n latitude: lnlt[1],\r\n markerContent: `\r\n <div>\r\n <div class='vtx-g-rang-exit'>x</div>\r\n </div>\r\n `,\r\n config: {\r\n width:13,\r\n height:13,\r\n markerContentX: -20,\r\n markerContentY: -20,\r\n },\r\n index: rangkey\r\n };\r\n //用addpoint方法加点\r\n t.addPoint([end]);\r\n //删除提示框 \r\n t.removeGraphic('vtx-g-rang-showRangTool','point');\r\n t.removeGraphic('vtx-g-rang-showRangTool-line','line');\r\n //缓存当前这一条测距数据\r\n t.rangingTools[rangkey] = {...t.rangingTool};\r\n //回调测距参数\r\n if(t.rangingTool.mapRangingTool){\r\n t.rangingTool.mapRangingTool({\r\n distance: t.rangingTool.distance,\r\n lnglats: t.rangingTool.line.paths\r\n })\r\n }\r\n t.rangingTool.isRanging = false;\r\n t.rangingTool = {\r\n ...t.rangingTool,\r\n isRanging: false,//是否开启状态\r\n line: {},//线缓存\r\n points: [],//点\r\n distance: 0//测距长度\r\n }\r\n }\r\n }\r\n }\r\n //地图鼠标移入事件\r\n t.state.gis.on('mouse-over',(e)=>{\r\n //鼠标移出地图时,删除测距显示点\r\n if(t.rangingTool.isRanging){\r\n let rp = {\r\n id: 'vtx-g-rang-showRangTool',\r\n longitude: e.mapPoint.x,\r\n latitude: e.mapPoint.y,\r\n markerContent: `\r\n <div class='vtx-g-rang-showRangTool'>单击确定起点</div>\r\n `,\r\n config: {\r\n markerContentX: 20,\r\n markerContentY: 20\r\n }\r\n }\r\n t.addPoint([rp]);\r\n }\r\n });\r\n //地图鼠标移出事件\r\n t.state.gis.on('mouse-out',(e)=>{\r\n //鼠标移出地图时,删除测距显示点\r\n if(t.rangingTool.isRanging){\r\n t.removeGraphic('vtx-g-rang-showRangTool','point');\r\n }\r\n });\r\n //地图鼠标移动事件\r\n t.state.gis.on('mouse-move',(e)=>{\r\n //鼠标移动地图时,删除测距显示点\r\n if(t.rangingTool.isRanging){\r\n //获取测距提示点位\r\n let rp = {...t.GM.getGraphicParam('vtx-g-rang-showRangTool').attributes};\r\n //删除多余数据,避免other层级太多\r\n delete rp.other;\r\n let rcontent = rp.markerContent;\r\n if(t.rangingTool.points.length > 0){\r\n let distance = getDistance(\r\n [e.mapPoint.x,e.mapPoint.y],\r\n [t.rangingTool.points[t.rangingTool.points.length-1].longitude,\r\n t.rangingTool.points[t.rangingTool.points.length-1].latitude],\r\n t.state.gis,\r\n t.grwkid\r\n );\r\n // 实时计算距离\r\n distance += t.rangingTool.distance;\r\n let distext = distance > 1000\r\n ?`总长:${Math.round(distance/10)/100}公里`:`总长:${distance}米`;\r\n rcontent = `\r\n <div class='vtx-g-rang-showRangTool'>\r\n <div>${distext}</div>\r\n <div>单击确定地点,双击结束</div>\r\n </div>\r\n `;\r\n //测距移动的线\r\n let sl = {\r\n id: 'vtx-g-rang-showRangTool-line',\r\n paths: [\r\n [ t.rangingTool.points[t.rangingTool.points.length-1].longitude,\r\n t.rangingTool.points[t.rangingTool.points.length-1].latitude\r\n ],\r\n [e.mapPoint.x,e.mapPoint.y]\r\n ],\r\n config: {\r\n color: '#ff0000',\r\n lineWidth: 2,\r\n lineType: 'solid',\r\n pellucidity: 0.5\r\n }\r\n };\r\n if(!t.GM.getGraphic('vtx-g-rang-showRangTool-line')){\r\n t.addLine([sl]);\r\n }else{\r\n t.updateLine([sl]);\r\n }\r\n }\r\n rp = {\r\n ...rp,\r\n longitude: e.mapPoint.x,\r\n latitude: e.mapPoint.y,\r\n markerContent: rcontent\r\n }\r\n t.updatePoint([rp]);\r\n }\r\n //编辑移动\r\n if(t.editId && t.canMoveLabel){\r\n t.mouseNowPosition = {\r\n ...t.mouseNowPosition,\r\n x: e.mapPoint.x,\r\n y: e.mapPoint.y\r\n };\r\n }\r\n });\r\n //地图双击事件\r\n t.state.gis.on('dbl-click',(e)=>{\r\n /*测距功能*/\r\n rangingToolFun(e,'dbl');\r\n })\r\n //地图点击事件\r\n t.state.gis.on('click',(e)=>{\r\n let t = this;\r\n /*测距功能*/\r\n rangingToolFun(e);\r\n //地图点击事件\r\n t.clickMap(e);\r\n });\r\n //鼠标拖拽开始事件\r\n t.state.gis.on('mouse-drag-start',(e)=>{\r\n t.dragMapStart(e);\r\n });\r\n //鼠标拖拽结束事件\r\n t.state.gis.on('mouse-drag-end',(e)=>{\r\n t.dragMapEnd(e);\r\n });\r\n //1.地图移动事件\r\n t.state.gis.on('pan',(e)=>{\r\n //切换html图层位置\r\n $(`#${t.htmlPointsId}`).css({\r\n top: t.labelLayer.y + e.delta.y,\r\n left: t.labelLayer.x + e.delta.x\r\n });\r\n $(`#${t.pointCollectionId}`).css({\r\n top: e.delta.y,\r\n left: e.delta.x\r\n });\r\n \r\n if(t.heatmap){\r\n t.heatmap.changeDiv(e.delta.y,e.delta.x);\r\n }\r\n });\r\n //地图拖动开始\r\n t.state.gis.on('pan-start',(e)=>{\r\n t.moveStart(e);\r\n });\r\n //地图拖动结束\r\n t.state.gis.on('pan-end',(e)=>{\r\n t.moveEnd(e);\r\n //聚合点位id存在,则执行聚合运算\r\n if(t.clusterMarkers.length > 0){\r\n t.dealClusterPoint();\r\n }\r\n $(`#${t.pointCollectionId}`).css({\r\n top: 0,\r\n left: 0\r\n });\r\n //重画海量点\r\n if(t.morepoints.length > 0){\r\n t.updatePointCollection(t.props.mapPointCollection);\r\n }\r\n //记录html图层位置\r\n t.labelLayer = {\r\n x: eval($(`#${t.htmlPointsId}`).css('left').replace('px','')),\r\n y: eval($(`#${t.htmlPointsId}`).css('top').replace('px',''))\r\n }\r\n //html点位 根据地图移动和zoom计算位置\r\n changeLabel();\r\n //热力图重绘\r\n if(t.heatmap){\r\n t.heatmap.draw();\r\n }\r\n //见需要在顶部显示的图元重新排位置\r\n for(let i = 0 ; i < t.zIndexGraphics.length; i++){\r\n t.czIndex(t.zIndexGraphics[i]);\r\n }\r\n //处理区域限制逻辑\r\n if(t.areaRestriction){\r\n t.dealAreaRestriction(e);\r\n }\r\n });\r\n // 地图zoom开始\r\n t.state.gis.on('zoom-start',(e)=>{\r\n t.zoomStart(e);\r\n //隐藏label根节点\r\n $(`#${t.htmlPointsId}`).css({display:'none'});\r\n //海量点dom\r\n $(`#${t.pointCollectionId}`).css({display: 'none'});\r\n if(t.heatmap && !t.isHideHeatMap){\r\n t.heatmap.hide();\r\n }\r\n });\r\n // 地图zoom结束\r\n t.state.gis.on('zoom-end',(e)=>{\r\n t.zoomEnd(e);\r\n //聚合点位id存在,则执行聚合运算\r\n if(t.clusterMarkers.length > 0){\r\n t.dealClusterPoint();\r\n }\r\n //显示label根节点\r\n $(`#${t.htmlPointsId}`).css({display:'inline-block'});\r\n //海量点dom\r\n $(`#${t.pointCollectionId}`).css({display: 'inline-block'});\r\n //刷新label点位位置\r\n changeLabel();\r\n if(t.heatmap && !t.isHideHeatMap){\r\n t.heatmap.show();\r\n t.heatmap.draw();\r\n }\r\n //重画海量点\r\n if(t.morepoints.length > 0){\r\n t.updatePointCollection(t.props.mapPointCollection);\r\n }\r\n //见需要在顶部显示的图元重新排位置\r\n for(let i = 0 ; i < t.zIndexGraphics.length; i++){\r\n t.czIndex(t.zIndexGraphics[i]);\r\n }\r\n //重新计算比例尺\r\n if($(`#${t.props.mapId}_zoom_slider_show`)[0]){\r\n let getScale = t.state.gis.getScale()*0.025399998/96;\r\n //分母系数\r\n let coefficient = Math.pow(10,Math.floor(getScale).toString().length-1);\r\n //判断系数 , 总长度值\r\n let gs = getScale/coefficient,toldis = 1,isCent = false;\r\n //计算比例尺数值和长度\r\n if(gs < 1){\r\n isCent = true;\r\n gs *= 10;\r\n }\r\n if(gs >= 5){\r\n toldis = 5*coefficient*100\r\n }else if(gs >= 2){\r\n toldis = 2*coefficient*100;\r\n }else{\r\n toldis = 1*coefficient*100;\r\n }\r\n let scaleW = toldis/getScale;\r\n if(isCent){\r\n scaleW /= 10;\r\n toldis /= 10;\r\n }\r\n //宽度矫正处理\r\n if(scaleW<50){\r\n toldis *= 1.5;\r\n scaleW = toldis/getScale;\r\n }\r\n //处理比例尺值显示\r\n toldis = toldis >= 1000? `${Math.round(toldis/1000)}公里`: `${toldis}米`;\r\n $(`#${t.props.mapId}_zoom_slider_show`).css({width: scaleW-2});\r\n $($(`#${t.props.mapId}_zoom_slider_show`).children()[0]).html(toldis);\r\n }\r\n });\r\n //2.图元事件\r\n //图元点击事件\r\n t.state.gis.graphics.on('click',(e)=>{\r\n if(!e.graphic.attributes){\r\n return;\r\n }\r\n let gid = e.graphic.attributes.id;\r\n //聚合点位不执行 图元事件\r\n if(gid == 'vtx-clusterPoint'){\r\n t.setVisiblePoints({fitView: e.graphic.attributes.ids});\r\n return false;\r\n }\r\n t.clickGraphic(gid,e);\r\n if(typeof(e.graphic.attributes) == 'object'){\r\n //点击图元的id\r\n //判断是否点击的测距关闭点位\r\n if(gid && gid.indexOf('vtx_g_rang_end') > -1){\r\n let index = t.GM.getGraphicParam(gid).attributes.index;\r\n let ls = t.rangingTools[index].line,\r\n ps = t.rangingTools[index].points;\r\n //删除测距线\r\n t.removeGraphic(ls.id,'line');\r\n //删除关闭点\r\n t.removeGraphic(gid,'point');\r\n //删除中间点\r\n for(let i = 0 ; i < ps.length ; i++){\r\n t.removeGraphic(ps[i].id,'point');\r\n }\r\n //清除测距数据缓存\r\n delete t.rangingTools[index];\r\n }\r\n }\r\n })\r\n //图元鼠标移入事件\r\n t.state.gis.graphics.on('mouse-over',(e)=>{\r\n if(!e.graphic.attributes){\r\n return;\r\n }\r\n let gid = e.graphic.attributes.id;\r\n //聚合点位不执行 图元事件\r\n if(gid == 'vtx-clusterPoint'){\r\n return false;\r\n }\r\n t.mouseOverGraphic(gid,e);\r\n });\r\n //图元鼠标移除事件\r\n t.state.gis.graphics.on('mouse-out',(e)=>{\r\n if(!e.graphic.attributes){\r\n return;\r\n }\r\n let gid = e.graphic.attributes.id;\r\n //聚合点位不执行 图元事件\r\n if(gid == 'vtx-clusterPoint'){\r\n return false;\r\n }\r\n t.mouseOutGraphic(gid,e);\r\n });\r\n }\r\n //graphics对象存在 直接处理数据,不存在 通过load事件等待\r\n if(t.state.gis.graphics){\r\n $(`#${t.props.mapId}_gc`).css({'z-index': 1});\r\n //添加自定义图元 图层\r\n $(`#${t.props.mapId}_layers`).append(\r\n `<div id=${t.htmlPointsId} class='vtx_gmap_html_points' ></div>`\r\n );\r\n //海量点图元容器\r\n $(`#${t.props.mapId}_layers`).append(\r\n `<div id=${t.pointCollectionId} class='vtx_gmap_html_pointCollection' ></div>`\r\n );\r\n //隐藏比例尺控制 (便于后期控制显示)\r\n $(`#${t.props.mapId}_zoom_slider`).css({display: 'none'});\r\n //事件监听\r\n event();\r\n t.setCenter(t.props.mapCenter);\r\n //处理数据\r\n initData();\r\n }\r\n t.state.gis.on('load',()=>{\r\n $(`#${t.props.mapId}_gc`).css({'z-index': 1});\r\n //添加自定义图元 图层\r\n $(`#${t.props.mapId}_layers`).append(\r\n `<div id=${t.htmlPointsId} class='vtx_gmap_html_points' ></div>`\r\n );\r\n //海量点图元容器\r\n $(`#${t.props.mapId}_layers`).append(\r\n `<div id=${t.pointCollectionId} class='vtx_gmap_html_pointCollection' ></div>`\r\n );\r\n //隐藏比例尺控制 (便于后期控制显示)\r\n $(`#${t.props.mapId}_zoom_slider`).css({display: 'none'});\r\n //事件监听\r\n event();\r\n t.setCenter(t.props.mapCenter);\r\n //处理数据\r\n initData();\r\n });\r\n }\r\n //创建地图 1.gis服务 需要load 2.wmts wms等服务无需load\r\n createMap () {\r\n let t = this;\r\n const {mapCenter,mapId,mapZoomLevel,minZoom,maxZoom,mapServer} = t.props;\r\n let options ={\r\n zoom: mapZoomLevel || 10,\r\n center: mapCenter || [120.404,30.915]\r\n };\r\n if(minZoom){\r\n options.minZoom = parseInt(minZoom);\r\n }\r\n if(maxZoom){\r\n options.maxZoom = parseInt(maxZoom);\r\n }\r\n if(!window.VtxMap){\r\n window.VtxMap = {};\r\n }\r\n let fullExtent = (mapServer || {}).fullExtent || {\r\n xmin : -180.0,ymin : -90.0,xmax : 180.0,ymax : 90.0\r\n };\r\n let map = window.VtxMap[mapId] = t.state.gis = new GMap(t.props.mapId.toString(),{\r\n autoResize: true,\r\n logo : false,\r\n isKeyboardNavigation : false,\r\n showAttribution:true,\r\n backgroundColor: '#f1f1f1',\r\n extent: new esri.geometry.Extent({\r\n ...fullExtent,\r\n spatialReference:{[t.wkidStr]:t.wkid}\r\n }),\r\n ...options\r\n });\r\n window.onModalResize = ()=>{\r\n map.resize(true);\r\n map.reposition();\r\n }\r\n t.addMapLayers(mapServer);\r\n t.htmlPointsId = `${mapId}_${t.htmlPointsId}`;\r\n t.pointCollectionId = `${mapId}_${t.pointCollectionId}`;\r\n }\r\n //处理图层\r\n addMapLayers(mapServer = {}){\r\n let t = this;\r\n //清除所有图层服务\r\n t.state.gis.removeAllLayers();\r\n let services = [...(mapServer.services || [])],\r\n servs = [];\r\n for(let im = 0; im < services.length ; im++){\r\n let url = services[im].url;\r\n //从新加载图层\r\n switch(services[im].type){\r\n case 'gis':\r\n for(let i = 0 ; i < url.length ; i++){\r\n let basemap = new esri.layers[services[im].gisServer || 'ArcGISTiledMapServiceLayer'](url[i]);\r\n servs.push(basemap);\r\n }\r\n break;\r\n case 'wmts':\r\n for(let i = 0 ; i < url.length ; i++){\r\n let tileInfo = new esri.layers.TileInfo({\r\n \"dpi\": 96,\r\n \"format\": services[im].format || \"format/png\",\r\n \"compressionQuality\": 0,\r\n \"spatialReference\": new esri.SpatialReference({\r\n [t.wkidStr]: t.wkid || 4326\r\n }),\r\n \"rows\": 256,\r\n \"cols\": 256,\r\n \"origin\": mapServer.origin || {x : -180,y : 90},\r\n \"lods\": mapServer.lods || []\r\n });\r\n let tileExtent = new esri.geometry.Extent(mapServer.fullExtent.xmin, mapServer.fullExtent.ymin, mapServer.fullExtent.xmax, mapServer.fullExtent.ymax, new esri.SpatialReference({\r\n [t.wkidStr]: t.wkid\r\n }));\r\n let inTileExtent = new esri.geometry.Extent(mapServer.initialExtent.xmin, mapServer.initialExtent.ymin, mapServer.initialExtent.xmax, mapServer.initialExtent.ymax, new esri.SpatialReference({\r\n [t.wkidStr]: t.wkid\r\n }));\r\n let layerInfo = new esri.layers.WMTSLayerInfo({\r\n tileInfo: tileInfo,\r\n fullExtent: tileExtent,\r\n initialExtent: inTileExtent,\r\n identifier: (services[im].layer || {})[i] || \"SRTM_Color_Index\",\r\n tileMatrixSet: services[im].tilematrixset || \"31.25m\",\r\n format: services[im].format || \"png\",\r\n style: \"default\"\r\n });\r\n let resourceInfo = {\r\n version: \"1.0.0\",\r\n layerInfos: [layerInfo],\r\n copyright: ''\r\n };\r\n let options = {\r\n serviceMode: \"KVP\",\r\n resourceInfo: resourceInfo,\r\n layerInfo: layerInfo,\r\n };\r\n let wmtsLayer = new esri.layers.WMTSLayer(url[i], options);\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace(wmtsLayer.UrlTemplate.substring(\r\n wmtsLayer.UrlTemplate.indexOf('&FORMAT'),\r\n wmtsLayer.UrlTemplate.indexOf('&TILEMATRIXSET')\r\n ),`&FORMAT=${services[im].format || 'format/png'}`);\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('SERVICE','service');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&VERSION','&version');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&REQUEST','&request');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&LAYER','&layer');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&STYLE','&format');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&FORMAT','&style');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILEMATRIXSET','&tileMatrixSet');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILEMATRIX','&tileMatrix');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILEROW','&tileRow');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILECOL','&tileCol');\r\n servs.push(wmtsLayer);\r\n }\r\n break;\r\n }\r\n }\r\n if(services.length <= 0){\r\n console.warn('!warning 图层服务必选,或图层类型暂不支持,默认天地图浙江地理wmts图层服务!');\r\n for(let im = 0; im < defaultWmtsMapLayers.services.length ; im++){\r\n let url = defaultWmtsMapLayers.services[im].url;\r\n let dtileInfo = new esri.layers.TileInfo({\r\n \"dpi\": 96,\r\n // \"format\": \"tiles\",\r\n \"compressionQuality\": 0,\r\n \"spatialReference\": new esri.SpatialReference({\r\n [t.wkidStr]: t.wkid || 4326\r\n }),\r\n \"rows\": 256,\r\n \"cols\": 256,\r\n \"origin\": defaultWmtsMapLayers.origin || {x : -180,y : 90},\r\n \"lods\": defaultWmtsMapLayers.lods || []\r\n });\r\n let dtileExtent = new esri.geometry.Extent(defaultWmtsMapLayers.fullExtent.xmin, defaultWmtsMapLayers.fullExtent.ymin, defaultWmtsMapLayers.fullExtent.xmax, defaultWmtsMapLayers.fullExtent.ymax, new esri.SpatialReference({\r\n [t.wkidStr]: t.wkid\r\n }));\r\n let dinTileExtent = new esri.geometry.Extent(defaultWmtsMapLayers.initialExtent.xmin, defaultWmtsMapLayers.initialExtent.ymin, defaultWmtsMapLayers.initialExtent.xmax, defaultWmtsMapLayers.initialExtent.ymax, new esri.SpatialReference({\r\n [t.wkidStr]: t.wkid\r\n }));\r\n for(let i = 0 ; i < url.length ; i++){\r\n let dlayerInfo = new esri.layers.WMTSLayerInfo({\r\n tileInfo: dtileInfo,\r\n fullExtent: dtileExtent,\r\n initialExtent: dinTileExtent,\r\n identifier: defaultWmtsMapLayers.services[im].layer[i] || \"SRTM_Color_Index\",\r\n tileMatrixSet: defaultWmtsMapLayers.services[im].tilematrixset || \"31.25m\",\r\n format: defaultWmtsMapLayers.services[im].format || \"png\",\r\n style: \"default\"\r\n });\r\n let dresourceInfo = {\r\n version: \"1.0.0\",\r\n layerInfos: [dlayerInfo],\r\n copyright: ''\r\n };\r\n let doptions = {\r\n serviceMode: \"KVP\",\r\n resourceInfo: dresourceInfo,\r\n layerInfo: dlayerInfo,\r\n };\r\n let wmtsLayer = new esri.layers.WMTSLayer(url[i], doptions);\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace(\r\n wmtsLayer.UrlTemplate.substr(wmtsLayer.UrlTemplate.indexOf('&FORMAT='),\r\n wmtsLayer.UrlTemplate.substr(\r\n wmtsLayer.UrlTemplate.indexOf('&FORMAT=')+1).indexOf('&')+1),\r\n `&FORMAT=${defaultWmtsMapLayers.services[im].format || 'format/png'}`\r\n );\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('SERVICE','service');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&VERSION','&version');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&REQUEST','&request');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&LAYER','&layer');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&STYLE','&format');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&FORMAT','&style');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILEMATRIXSET','&tileMatrixSet');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILEMATRIX','&tileMatrix');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILEROW','&tileRow');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILECOL','&tileCol');\r\n servs.push(wmtsLayer);\r\n }\r\n }\r\n }\r\n for(let j = 0 ; j < servs.length ; j++){\r\n t.state.gis.addLayer(servs[j]);\r\n }\r\n }\r\n //新增点位\r\n addPoint(mapPoints,type){\r\n let t = this;\r\n let psids = [...t.state.pointIds];\r\n //添加绘制点\r\n if(type && type !== 'defined'){\r\n psids = [...t.state.drawIds[type]];\r\n }\r\n mapPoints.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`加点id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`点 经纬度 数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n width : 30,\r\n height : 30,\r\n labelContent: '',\r\n labelPixelX: 0,\r\n labelPixelY: 34,\r\n BAnimationType: 3,\r\n //高德以左上定位,百度以中心为定位\r\n //默认点的偏移值就不同\r\n markerContentX: -15,\r\n markerContentY: -30,\r\n deg: 0\r\n }\r\n if(item.markerContent){\r\n cg = {...cg,markerContentX: 0,markerContentY: 0,width:100,height:30};\r\n }\r\n //初始化默认数据\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //创建arcgis的经纬度对象\r\n let position = new esri.geometry.Point({\r\n longitude: item.longitude,\r\n latitude: item.latitude,\r\n spatialReference:{ wkid: t.grwkid }\r\n });\r\n let marker = null,label = null;\r\n if(item.markerContent){\r\n //html点位\r\n //添加透明点(便于事件处理)\r\n let markerSymbol = new esri.symbol.PictureMarkerSymbol(\r\n `${configUrl.mapServerURL}/images/touming.png`, cg.width, cg.height\r\n );\r\n //设置偏移点的位置到左上角(原来在中心)\r\n markerSymbol.setOffset(cg.markerContentX + cg.width/2, -(cg.markerContentY + cg.height/2));\r\n marker = new esri.Graphic(position, markerSymbol,{id:item.id});\r\n //设置markercontent的数据,用于label加点到地图\r\n label = {\r\n html: $(item.markerContent),\r\n offset: {\r\n x: cg.markerContentX,\r\n y: cg.markerContentY\r\n },\r\n position\r\n }\r\n }else{\r\n //图片点位\r\n let markerSymbol = new esri.symbol.PictureMarkerSymbol(\r\n (item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`), cg.width, cg.height\r\n );\r\n markerSymbol.setAngle(cg.deg);\r\n //设置偏移点的位置到左上角(原来在中心)\r\n markerSymbol.setOffset(\r\n cg.markerContentX + cg.width/2, -(cg.markerContentY + cg.height/2)\r\n );\r\n //点位图元\r\n marker = new esri.Graphic(position, markerSymbol,{id:item.id});\r\n //添加label\r\n if(item.canShowLabel && cg.labelContent){\r\n //label默认样式\r\n let labelClass = 'label-content';\r\n //接受label自定义样式\r\n if(item.labelClass){\r\n labelClass = item.labelClass.split(',').join(' ');\r\n }\r\n //设置label的数据,用于label加点到地图\r\n label = {\r\n html: $(\r\n `<div style='margin-left: 0;z-index: ${cg.zIndex || 0};'>\r\n <div class='${labelClass}'>${cg.labelContent}</div>\r\n </div>`\r\n ),\r\n //offset 需要处理 图片点位的位置(将点位偏移和宽度加入计算)\r\n offset: {\r\n x: cg.labelPixelX + (cg.markerContentX + cg.width/2),\r\n y: cg.labelPixelY + (cg.markerContentY)\r\n },\r\n position \r\n }\r\n }\r\n }\r\n //点跳动动画\r\n if(!item.markerContent && cg.BAnimationType == 0){\r\n t.pointAnimation(item.id,marker);\r\n }else{\r\n t.pointAnimation(item.id,null);\r\n }\r\n //添加图元到地图\r\n t.state.gis.graphics.add(marker);\r\n //统一处理添加点位 含label和html的添加\r\n //处理label的加点\r\n t.dealLabelGraphics(item.id,label);\r\n //缓存所有点的id\r\n psids.push(item.id);\r\n //缓存当前点的图元对象和基本数据\r\n t.GM.setGraphic(item.id,marker)\r\n .setGraphicParam(item.id,{\r\n attributes: {...item,other: item},\r\n geometryType: 'point',\r\n geometry: {\r\n type: 'point',\r\n x: item.longitude,\r\n y: item.latitude\r\n }\r\n });\r\n });\r\n if(type !== 'defined'){\r\n //添加绘制点\r\n if(type){\r\n t.state.drawIds = {\r\n ...t.state.drawIds,\r\n [type]: psids\r\n };\r\n // t.setState({\r\n // drawIds:{\r\n // ...t.state.drawIds,\r\n // [type]: psids\r\n // }\r\n // });\r\n }else{\r\n t.state.pointIds = psids;\r\n //所有点缓存在state中\r\n // t.setState({\r\n // pointIds: psids\r\n // });\r\n }\r\n }\r\n }\r\n //更新点位\r\n updatePoint(mapPoints){\r\n let t = this;\r\n // let dpoints = [],apoints = [];\r\n mapPoints.map((item,index)=>{\r\n //判断图元是否存在.\r\n if (this.GM.isRepetition(item.id)) {\r\n //点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`点 经纬度 数据错误`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = t.GM.getGraphic(item.id);\r\n let cg = {\r\n width : 30,\r\n height : 30,\r\n labelContent: '',\r\n labelPixelX: 0,\r\n labelPixelY: 34,\r\n BAnimationType: 3,\r\n //高德以左上定位,百度以中心为定位\r\n //默认点的偏移值就不同\r\n markerContentX: -15,\r\n markerContentY: -30,\r\n deg: 0\r\n }\r\n if(item.markerContent){\r\n cg = {...cg,markerContentX: 0,markerContentY: 0,width:100,height:30};\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //创建arcgis的经纬度对象\r\n let position = new esri.geometry.Point({\r\n longitude: item.longitude,\r\n latitude: item.latitude,\r\n spatialReference:{ wkid: t.grwkid }\r\n });\r\n //label对象\r\n let label = null;\r\n if(item.markerContent){\r\n //symbol 样式信息修改\r\n if(gc.symbol){\r\n gc.symbol.setUrl(`${configUrl.mapServerURL}/images/touming.png`);\r\n }\r\n //设置markercontent的数据,用于label加点到地图\r\n label = {\r\n html: $(item.markerContent),\r\n offset: {\r\n x: cg.markerContentX,\r\n y: cg.markerContentY\r\n },\r\n position\r\n }\r\n\r\n }else{\r\n //symbol 样式信息修改\r\n if(gc.symbol){\r\n gc.symbol.setUrl(item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`);\r\n }\r\n gc.symbol.setAngle(cg.deg);\r\n //添加label\r\n if(item.canShowLabel && cg.labelContent){\r\n //label默认样式\r\n let labelClass = 'label-content';\r\n //接受label自定义样式\r\n if(item.labelClass){\r\n labelClass = item.labelClass.split(',').join(' ');\r\n }\r\n //设置label的数据,用于label加点到地图\r\n label = {\r\n html: $(\r\n `<div style='margin-left: 0;'>\r\n <div class='${labelClass}'>${cg.labelContent}</div>\r\n </div>`\r\n ),\r\n //offset 需要处理 图片点位的位置(将点位偏移和宽度加入计算)\r\n offset: {\r\n x: cg.labelPixelX + (cg.markerContentX + cg.width/2),\r\n y: cg.labelPixelY + (cg.markerContentY)\r\n },\r\n position \r\n }\r\n }\r\n }\r\n //symbol 样式信息修改\r\n if(gc.symbol){\r\n gc.symbol.setOffset(cg.markerContentX + cg.width/2, -(cg.markerContentY + cg.height/2));\r\n gc.symbol.setWidth(cg.width);\r\n gc.symbol.setHeight(cg.height);\r\n }\r\n //点位动画效果\r\n if(!item.markerContent && cg.BAnimationType == 0){\r\n t.pointAnimation(item.id,gc);\r\n }else{\r\n t.pointAnimation(item.id,null);\r\n }\r\n \r\n //动画效果会延迟执行经纬度的切换\r\n if(cg.isAnimation){\r\n t.moveTo(item.id,[item.longitude,item.latitude],cg.animationDelay,cg.autoRotation,item.url,item.urlleft);\r\n }else{\r\n //gometry 位置信息修改\r\n if(gc.geometry){\r\n // gc.geometry.setLatitude(item.latitude);\r\n // gc.geometry.setLongitude(item.longitude);\r\n gc.setGeometry(position);\r\n //设置完点位后 需要刷新下点位的显示范围\r\n gc._extent.update(item.longitude,item.latitude,item.longitude,item.latitude,new esri.SpatialReference({ wkid: t.grwkid }));\r\n if(gc._extent._parts && gc._extent._parts[0]){\r\n gc._extent._parts[0].extent.update(item.longitude,item.latitude,item.longitude,item.latitude,new esri.SpatialReference({ wkid: t.grwkid }));\r\n }\r\n // gc._extent.update(new esri.geometry.Extent(item.longitude,item.latitude,item.longitude,item.latitude,{ wkid: t.grwkid }));\r\n // gc._extent._parts[0].extent = gc._extent.centerAt(position);\r\n }\r\n }\r\n //删除原有的label 下面从新加载\r\n if(t.Label[item.id]){\r\n t.Label[item.id].html.remove();\r\n }\r\n //刷新点位\r\n t.dealLabelGraphics(item.id,label);\r\n //刷新缓存数据\r\n t.GM.setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {...item,other: item},\r\n geometryType: 'point',\r\n geometry: {\r\n type: 'point',\r\n x: item.longitude,\r\n y: item.latitude\r\n }\r\n }\r\n );\r\n }else{\r\n console.warn(`更新的点位id不存在!`);\r\n return false;\r\n }\r\n });\r\n t.state.gis.graphics.refresh(); \r\n t.moveAnimation();\r\n }\r\n //添加线\r\n addLine(mapLines,type){\r\n let t = this;\r\n let lsids = [...t.state.lineIds];\r\n if(type && type !== 'defined'){\r\n lsids = [...t.state.drawIds[type]];\r\n }\r\n //遍历添加线(图元)\r\n mapLines.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`多折线id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多折线点位数据不符合,直接跳过\r\n if(!(item.paths && item.paths.length >= 2)){\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n //初始化默认参数\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',\r\n isHidden: false\r\n }\r\n //合并参数\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //处理线的点数组\r\n let linePath = new esri.geometry.Polyline({\r\n paths: [[...item.paths]],\r\n spatialReference: { wkid: t.grwkid}\r\n });\r\n //线类型\r\n let style = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(cg.lineType){\r\n case 'solid':\r\n style = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n style = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n //处理颜色和透明度 使用rgba处理透明度\r\n let color = new esri.Color(cg.color);\r\n color.a = cg.pellucidity;\r\n //线类型对象\r\n let lineSymbol = new esri.symbol.SimpleLineSymbol(style,color,cg.lineWidth);\r\n //创建线对象\r\n let line = new esri.Graphic(linePath,lineSymbol,{id:item.id});\r\n //判断线显示和隐藏\r\n if(cg.isHidden){\r\n line.hide();\r\n }else{\r\n line.show();\r\n }\r\n lsids.push(item.id);\r\n //添加线图元\r\n t.state.gis.graphics.add(line);\r\n //处理线缓存\r\n t.GM.setGraphic(item.id,line)\r\n .setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n paths: item.paths,\r\n other: item\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: item.paths\r\n }\r\n });\r\n });\r\n if(type !== 'defined'){\r\n //添加绘制点\r\n if(type){\r\n t.state.drawIds = {\r\n ...t.state.drawIds,\r\n [type]: lsids\r\n }\r\n // t.setState({\r\n // drawIds:{\r\n // ...t.state.drawIds,\r\n // [type]: lsids\r\n // }\r\n // });\r\n }else{\r\n t.state.lineIds = lsids;\r\n // t.setState({\r\n // lineIds: lsids\r\n // });\r\n }\r\n }\r\n }\r\n //更新线\r\n updateLine(mapLines){\r\n let t = this;\r\n //遍历添加线(图元)\r\n mapLines.map((item,index)=>{\r\n //判断图元是否存在.\r\n if (t.GM.isRepetition(item.id)) {\r\n //多折线点位数据不符合,直接跳过\r\n if(!(item.paths && item.paths.length >= 2)){\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n }else{\r\n console.warn(`更新的多折线id不存在!`);\r\n return false;\r\n }\r\n let gc = t.GM.getGraphic(item.id);\r\n //初始化默认参数\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',//'solid' 'dashed'\r\n isHidden: false\r\n }\r\n //合并参数\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //删除原来的点位\r\n gc.geometry.removePath(0);\r\n //添加新的点位\r\n gc.geometry.addPath([...item.paths]);\r\n let {_extent} = t.dealData(item.paths); \r\n //设置完点位后 需要刷新下点位的显示范围/\r\n gc._extent.update(_extent.longitude,_extent.latitude,_extent.longitude,_extent.latitude,new esri.SpatialReference({ wkid: t.grwkid }));\r\n // gc._extent.update(new esri.geometry.Extent(_extent.xmin,_extent.ymin,_extent.xmax,_extent.ymax,{ wkid: t.grwkid }));\r\n // gc._extent._parts[0].extent = {...gc._extent._parts[0].extent,..._extent};\r\n //处理颜色和透明度 使用rgba处理透明度\r\n let color = new esri.Color(cg.color);\r\n color.a = cg.pellucidity;\r\n gc.symbol.setColor(color);\r\n //设置线类型\r\n let style = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(cg.lineType){\r\n case 'solid':\r\n style = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n style = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n gc.symbol.setStyle(style);\r\n //设置线宽\r\n gc.symbol.setWidth(cg.lineWidth);\r\n //判断线显示和隐藏\r\n if(cg.isHidden){\r\n gc.hide();\r\n }else{\r\n gc.show();\r\n }\r\n t.GM.setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n paths: item.paths,\r\n other: item\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: item.paths\r\n }\r\n });\r\n });\r\n //刷新图元\r\n t.state.gis.graphics.refresh();\r\n }\r\n //添加面\r\n addPolygon(mapPolygons,type){\r\n let t = this;\r\n let pgsids = [...t.state.polygonIds];\r\n if(type){\r\n pgsids = [...t.state.drawIds[type]];\r\n }\r\n //遍历添加面(图元)\r\n mapPolygons.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`多边形id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多边形点位数据不符合,直接跳过\r\n if(!(item.rings && item.rings.length >= 3)){\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n //初始化参数\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要再加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let rings = [...item.rings];\r\n if(item.rings[0][0] != item.rings[item.rings.length -1][0] || item.rings[0][1] != item.rings[item.rings.length -1][1]){\r\n rings = [...rings,item.rings[0]]\r\n }\r\n //处理面的点数据\r\n let polygonPath = esri.geometry.Polygon({\r\n //添加最后一个点,使面闭合\r\n rings: [rings],\r\n spatialReference: { wkid: t.grwkid}\r\n });\r\n //线类型\r\n let lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(cg.lineType){\r\n case 'solid':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n //处理边框线颜色和透明度 使用rgba处理透明度\r\n let lineColor = new esri.Color(cg.lineColor);\r\n lineColor.a = cg.lineOpacity;\r\n //生成线类型对象\r\n let lineSymbol = new esri.symbol.SimpleLineSymbol(lineStyle,lineColor,cg.lineWidth);\r\n //创建面对象\r\n let polygonSymbol = new esri.symbol.SimpleFillSymbol();\r\n //添加边框线数据\r\n polygonSymbol.setOutline(lineSymbol);\r\n //处理填充颜色和透明度 使用rgba处理透明度\r\n let polygonColor = new esri.Color(cg.color);\r\n polygonColor.a = cg.pellucidity;\r\n polygonSymbol.setColor(polygonColor);\r\n //创建面对象\r\n let polygon = new esri.Graphic(polygonPath,polygonSymbol,{id:item.id});\r\n //添加面图元\r\n t.state.gis.graphics.add(polygon);\r\n //缓存面id\r\n pgsids.push(item.id);\r\n //缓存面图元对象和对于传入数据\r\n t.GM.setGraphic(item.id,polygon)\r\n .setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n rings: item.rings,\r\n other: item\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: item.rings\r\n },\r\n });\r\n });\r\n //添加绘制点\r\n if(type){\r\n t.state.drawIds = {\r\n ...t.state.drawIds,\r\n [type]: pgsids\r\n }\r\n // t.setState({\r\n // drawIds:{\r\n // ...t.state.drawIds,\r\n // [type]: pgsids\r\n // }\r\n // });\r\n }else{\r\n t.state.polygonIds = pgsids;\r\n // t.setState({\r\n // polygonIds: pgsids\r\n // });\r\n }\r\n }\r\n //更新面\r\n updatePolygon(mapPolygons){\r\n let t = this;\r\n mapPolygons.map((item,index)=>{\r\n //判断图元是否存在.\r\n if (t.GM.isRepetition(item.id)) {\r\n //多边形点位数据不符合,直接跳过\r\n if(!(item.rings && item.rings.length >= 3)){\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n }else{\r\n console.warn(`更新的多边形id不存在!`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = t.GM.getGraphic(item.id);\r\n //初始化参数\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要再加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //删除原来的点位\r\n gc.geometry.removeRing(0);\r\n let rings = [...item.rings];\r\n if(item.rings[0][0] != item.rings[item.rings.length -1][0] || item.rings[0][1] != item.rings[item.rings.length -1][1]){\r\n rings = [...rings,item.rings[0]]\r\n }\r\n //添加新的点位\r\n gc.geometry.addRing(rings);\r\n let {_extent} = t.dealData(item.rings);\r\n //设置完点位后 需要刷新下点位的显示范围\r\n gc._extent.update(_extent.xmin,_extent.ymin,_extent.xmax,_extent.ymax,new esri.SpatialReference({ wkid: t.grwkid }));\r\n // gc._extent.update(new esri.geometry.Extent(_extent.xmin,_extent.ymin,_extent.xmax,_extent.ymax,{ wkid: t.grwkid }));\r\n // gc._extent._parts[0].extent = {...gc._extent._parts[0].extent,..._extent};\r\n\r\n //线类型\r\n let lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(cg.lineType){\r\n case 'solid':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n gc.symbol.outline.setStyle(lineStyle);\r\n //处理边框线颜色和透明度 使用rgba处理透明度\r\n let lineColor = new esri.Color(cg.lineColor);\r\n lineColor.a = cg.lineOpacity;\r\n gc.symbol.outline.setColor(lineColor);\r\n //设置线宽\r\n gc.symbol.outline.setWidth(cg.lineWidth);\r\n //处理填充颜色和透明度 使用rgba处理透明度\r\n let polygonColor = new esri.Color(cg.color);\r\n polygonColor.a = cg.pellucidity;\r\n gc.symbol.setColor(polygonColor);\r\n t.GM.setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n rings: item.rings,\r\n other: item\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: item.rings\r\n },\r\n });\r\n });\r\n //刷新图元\r\n t.state.gis.graphics.refresh();\r\n }\r\n //添加圆 circle\r\n addCircle(mapCircles,type){\r\n let t = this;\r\n let ccsids = [...t.state.circleIds];\r\n if(type){\r\n ccsids = [...t.state.drawIds[type]];\r\n }\r\n mapCircles.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`圆id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //圆 点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`圆 经纬度 数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要在加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let center = new esri.geometry.Point(parseFloat(item.longitude),parseFloat(item.latitude));\r\n //创建圆 位置对象\r\n let position = new esri.geometry.Circle({center:center,radius: parseFloat(item.radius)});\r\n //线类型\r\n let lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(cg.lineType){\r\n case 'solid':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n //处理边框线颜色和透明度 使用rgba处理透明度\r\n let lineColor = new esri.Color(cg.lineColor);\r\n lineColor.a = cg.lineOpacity;\r\n //生成线类型对象\r\n let lineSymbol = new esri.symbol.SimpleLineSymbol(lineStyle,lineColor,parseFloat(cg.lineWidth));\r\n //创建面对象\r\n let circleSymbol = new esri.symbol.SimpleFillSymbol();\r\n //添加边框线数据\r\n circleSymbol.setOutline(lineSymbol);\r\n //处理填充颜色和透明度 使用rgba处理透明度\r\n let circleColor = new esri.Color(cg.color);\r\n circleColor.a = cg.pellucidity;\r\n circleSymbol.setColor(circleColor);\r\n //创建圆对象\r\n let circle = new esri.Graphic(position,circleSymbol,{id:item.id});\r\n //添加图元对象\r\n t.state.gis.graphics.add(circle);\r\n //缓存数据\r\n ccsids.push(item.id);\r\n t.GM.setGraphic(item.id,circle)\r\n .setGraphicParam(item.id,{\r\n attributes: {...item,other: item},\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: parseFloat(item.longitude),\r\n y: parseFloat(item.latitude),\r\n radius: parseFloat(item.radius)\r\n }\r\n });\r\n });\r\n //添加绘制点\r\n if(type){\r\n t.state.drawIds = {\r\n ...t.state.drawIds,\r\n [type]: ccsids\r\n }\r\n // t.setState({\r\n // drawIds:{\r\n // ...t.state.drawIds,\r\n // [type]: ccsids\r\n // }\r\n // });\r\n }else{\r\n t.state.circleIds = ccsids;\r\n // t.setState({\r\n // circleIds: ccsids\r\n // });\r\n }\r\n }\r\n //更新圆\r\n updateCircle(mapCircles){\r\n let t = this;\r\n mapCircles.map((item,index)=>{\r\n //判断图元是否存在.\r\n if (t.GM.isRepetition(item.id)) {\r\n //圆 点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`圆 经纬度 数据错误`);\r\n return false;\r\n }\r\n }else{\r\n console.warn(`更新的圆id不存在!`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = t.GM.getGraphic(item.id);\r\n //获取原有的面属性,转换key值\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要在加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let center = new esri.geometry.Point(parseFloat(item.longitude),parseFloat(item.latitude));\r\n //创建圆 位置对象\r\n let position = new esri.geometry.Circle({center:center,radius: parseFloat(item.radius)});\r\n //线类型\r\n let lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(cg.lineType){\r\n case 'solid':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n //处理边框线颜色和透明度 使用rgba处理透明度\r\n let lineColor = new esri.Color(cg.lineColor);\r\n lineColor.a = cg.lineOpacity;\r\n //生成线类型对象\r\n let lineSymbol = new esri.symbol.SimpleLineSymbol(lineStyle,lineColor,parseFloat(cg.lineWidth));\r\n //创建面对象\r\n let circleSymbol = new esri.symbol.SimpleFillSymbol();\r\n //添加边框线数据\r\n circleSymbol.setOutline(lineSymbol);\r\n //处理填充颜色和透明度 使用rgba处理透明度\r\n let circleColor = new esri.Color(cg.color);\r\n circleColor.a = cg.pellucidity;\r\n circleSymbol.setColor(circleColor);\r\n //更新位置\r\n gc.setGeometry(position);\r\n //更新样式\r\n gc.setSymbol(circleSymbol);\r\n t.GM.setGraphicParam(item.id,{\r\n attributes: {...item,other: item},\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: parseFloat(item.longitude),\r\n y: parseFloat(item.latitude),\r\n radius: parseFloat(item.radius)\r\n }\r\n });\r\n });\r\n //刷新图元\r\n t.state.gis.graphics.refresh();\r\n }\r\n //添加海量点\r\n addPointCollection(data = []){\r\n let t = this;\r\n data.map((item,index)=>{\r\n let d = item || {};\r\n let points = (d.points || []).map((d,i)=>{\r\n let p = new esri.geometry.Point(d.lng,d.lat);\r\n p = t.state.gis.toScreen(p);\r\n return [p.x,p.y];\r\n });\r\n let options = {\r\n size: d.size,\r\n shape: d.shape,\r\n color: d.color,\r\n width: t.state.gis.width,\r\n height: t.state.gis.height,\r\n mapId: t.props.mapId\r\n };\r\n let VotexpointCollection = new GMapLib.PointCollection(points,options);\r\n t.morepoints.push({\r\n id: d.id,\r\n value: VotexpointCollection\r\n });\r\n VotexpointCollection.draw();\r\n })\r\n }\r\n //更新海量点\r\n updatePointCollection(data = []){\r\n let t = this;\r\n data.map((ds,ind)=>{\r\n t.morepoints.map((item,index)=>{\r\n if(item.id == ds.id){\r\n let points = (ds.points || []).map((d,i)=>{\r\n let p = new esri.geometry.Point(d.lng,d.lat);\r\n p = t.state.gis.toScreen(p);\r\n return [p.x,p.y];\r\n });\r\n let options = {\r\n size: ds.size,\r\n shape: ds.shape,\r\n color: ds.color,\r\n width: t.state.gis.width,\r\n height: t.state.gis.height\r\n };\r\n item.value.reDraw(points,options);\r\n }\r\n })\r\n })\r\n }\r\n //删除海量点\r\n clearPointCollection(ids = []){\r\n let t = this;\r\n ids.map((id,ind)=>{\r\n t.morepoints.map(function (item,index) {\r\n if(id == item.id){\r\n item.value.clear();\r\n }\r\n });\r\n });\r\n }\r\n //删除全部海量点\r\n clearAllPointCollection(){\r\n let t = this;\r\n t.morepoints.map(function (item,index) {\r\n item.value.clear();\r\n });\r\n }\r\n //热力图\r\n heatMapOverlay(d = {}){\r\n let t = this;\r\n let cg = {\r\n radius: 20,\r\n max: 100,\r\n visible: true,\r\n opacity: 0.7\r\n };\r\n if(d.config){\r\n cg = {...cg,...d.config};\r\n }\r\n if(!t.heatmap){\r\n t.heatmap = new GMapLib.HeatmapOverlay({\r\n visible: cg.visible\r\n });\r\n t.heatmap.initialize(t.state.gis,t.props.mapId);\r\n }\r\n let option = {\r\n radius: cg.radius,\r\n //百度是1-100,高德是0-1\r\n opacity: eval(cg.opacity) * 100,\r\n visible: cg.visible\r\n }\r\n if(cg.gradient){\r\n option.gradient = cg.gradient;\r\n }\r\n t.heatmap.setOptions(option);\r\n t.heatmap.setDataSet({\r\n max: cg.max,\r\n data: d.data || []\r\n });\r\n if(cg.visible){\r\n t.isHideHeatMap = false;\r\n t.heatmap.show();\r\n }else{\r\n t.isHideHeatMap = true;\r\n t.heatmap.hide();\r\n }\r\n }\r\n /*事件处理*/\r\n //图元事件\r\n clickGraphic(id,e){\r\n let t = this;\r\n //编辑中的图元关闭其他事件返回\r\n if(t.editId == id)return false;\r\n if(typeof(t.props.clickGraphic) ===\"function\"){\r\n let param = t.getGraphic(id);\r\n let obj = {\r\n param,\r\n type: param.geometry.type,//图元类型\r\n attributes: {...param.attributes.other,...{config:param.attributes.config}},//添加时图元信息\r\n top: e.clientY,//当前点所在的位置(屏幕)\r\n left: e.clientX,\r\n e: e\r\n }\r\n t.props.clickGraphic(obj);\r\n }\r\n }\r\n //图元鼠标悬浮事件\r\n mouseOverGraphic(id,e){\r\n let t = this;\r\n //编辑中的图元关闭其他事件返回\r\n if(t.state.editId == id)return false;\r\n if(typeof(t.props.mouseOverGraphic) === 'function'){\r\n let obj = {\r\n e,id,\r\n param: t.getGraphic(id),\r\n top: e.clientY,//当前点所在的位置(屏幕)\r\n left: e.clientX,\r\n }\r\n t.props.mouseOverGraphic(obj);\r\n }\r\n }\r\n //图元鼠标移开事件\r\n mouseOutGraphic(id,e){\r\n let t = this;\r\n //编辑中的图元关闭其他事件返回\r\n if(t.state.editId == id)return false;\r\n if(typeof(t.props.mouseOutGraphic) ===\"function\"){\r\n let obj = {\r\n e,id,\r\n param: t.getGraphic(id),\r\n top: e.clientY,//当前点所在的位置(屏幕)\r\n left: e.clientX,\r\n }\r\n t.props.mouseOutGraphic(obj);\r\n }\r\n }\r\n /*地图事件*/\r\n //地图点击事件\r\n clickMap(e){\r\n let t = this;\r\n if(typeof(t.props.clickMap) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n obj.clickLngLat = {\r\n lng: (e.mapPoint || {}).x,\r\n lat: (e.mapPoint || {}).y\r\n };\r\n obj.pixel = {\r\n x: (e.screenPoint || {}).x,\r\n y: (e.screenPoint || {}).y\r\n };\r\n t.props.clickMap(obj);\r\n }\r\n }\r\n //地图拖动之前事件\r\n dragMapStart(e){\r\n let t = this;\r\n if(typeof(t.props.dragMapStart) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.dragMapStart(obj);\r\n }\r\n }\r\n //地图拖动结束后事件\r\n dragMapEnd(e){\r\n let t = this;\r\n if(typeof(t.props.dragMapEnd) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.dragMapEnd(obj);\r\n }\r\n }\r\n //地图移动之前事件\r\n moveStart(e){\r\n let t = this;\r\n if(typeof(t.props.moveStart) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.moveStart(obj);\r\n }\r\n }\r\n //地图移动结束后事件\r\n moveEnd(e){\r\n let t = this;\r\n if(typeof(t.props.moveEnd) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.moveEnd(obj);\r\n }\r\n }\r\n //地图更改缩放级别开始时触发触发此事件\r\n zoomStart(e){\r\n let t = this;\r\n if(typeof(t.props.zoomStart) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.zoomStart(obj);\r\n }\r\n }\r\n //地图更改缩放级别结束时触发触发此事件\r\n zoomEnd(e){\r\n let t = this;\r\n if(typeof(t.props.zoomEnd) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.zoomEnd(obj);\r\n }\r\n }\r\n /*set方法*/\r\n //设置地图中心位置 lng/经度 lat/纬度\r\n setCenter (gt) {\r\n let t =this;\r\n if(gt){\r\n //经纬度 必须存在 否则不操作\r\n if (!gt[0] || !gt[1]) {\r\n return false;\r\n }\r\n //如果设置的经纬度 与当前中心点一样 不操作\r\n let c = t.getCenter();\r\n if(c.lng == gt[0] && c.lat == gt[1]){\r\n return false;\r\n }\r\n t.state.gis.centerAt(new esri.geometry.Point(gt[0],gt[1],new esri.SpatialReference({[t.wkidStr]: t.wkid})));\r\n }\r\n }\r\n //设置地图比例尺\r\n setZoomLevel (zoom) {\r\n let t =this;\r\n let z = t.state.gis.getZoom();\r\n if(z == zoom){\r\n return false;\r\n }\r\n t.state.gis.setZoom(parseInt(zoom));\r\n }\r\n //将制定图元展示在视野内 (强制改变地图中心位置)\r\n /*\r\n 参数arg格式如下1,2\r\n 1.string 格式如:'1,a,2,3,4'\r\n 2.数组 ['1','2']\r\n */\r\n setVisiblePoints (mapVisiblePoints) {\r\n let t = this;\r\n let arg = null;\r\n let type = mapVisiblePoints.type;\r\n let ary = [];//图元id集合\r\n let obj = [];//经纬度集合\r\n switch(mapVisiblePoints.fitView){\r\n case 'point':\r\n arg = this.state.pointIds;\r\n break;\r\n case 'line':\r\n arg = this.state.lineIds;\r\n break;\r\n case 'polygon':\r\n arg = this.state.polygonIds;\r\n break;\r\n case 'circle':\r\n arg = this.state.circleIds;\r\n break;\r\n case 'all':\r\n arg = this.state.pointIds.concat(this.state.lineIds).concat(this.state.polygonIds).concat(this.state.circleIds);\r\n break;\r\n default:\r\n arg = mapVisiblePoints.fitView;\r\n break;\r\n }\r\n\r\n\r\n if(typeof(arg) === 'string'){\r\n ary = arg.split(',');\r\n }else if(arg instanceof Array){\r\n ary = arg;\r\n }\r\n if(ary[0] instanceof Array){\r\n obj = [...obj,...ary];\r\n }else{\r\n for(let i = 0 ; i < ary.length ; i++){\r\n let g = t.GM.getGraphicParam(ary[i]);\r\n switch(g.geometry.type){\r\n case 'point':\r\n case 'circle':\r\n obj.push([g.geometry.x,g.geometry.y]);\r\n break;\r\n case 'polyline':\r\n obj = [...obj,...g.geometry.paths];\r\n break;\r\n case 'polygon':\r\n obj = [...obj,...g.geometry.rings];\r\n break;\r\n }\r\n }\r\n }\r\n let {_extent} = t.dealData(obj);\r\n if(_extent.xmin && _extent.xmax && _extent.ymin && _extent.ymax){\r\n //避免偏移引起的点位漏看\r\n _extent = t.dealExtendBounds(_extent,100);\r\n let ext = new esri.geometry.Extent({..._extent,spatialReference:{ [t.wkidStr]: t.wkid }});\r\n if(!type || type == 'all' || type == 'zoom'){\r\n t.state.gis.setExtent(ext);\r\n }else if(type == 'center'){\r\n t.state.gis.centerAt(ext.getCenter());\r\n }\r\n }\r\n }\r\n /*get方法*/\r\n //获取当前地图的中心位置\r\n getCurrentCenter(){\r\n let t = this;\r\n let extent = t.state.gis.geographicExtent;\r\n return [(extent.xmax + extent.xmin)/2,(extent.ymax + extent.ymin)/2];\r\n }\r\n //获取当前比例尺\r\n getZoomLevel (){\r\n let t =this;\r\n return t.state.gis.getLevel();\r\n }\r\n //获取当前中心点\r\n getCenter(){\r\n let t = this;\r\n let {xmin, ymin, xmax, ymax} = t.state.gis.extent;\r\n return {lng:(xmin+xmax)/2,lat: (ymin+ymax)/2};\r\n }\r\n //获取图元数据\r\n getGraphic (id) {\r\n let t = this;\r\n if(!id){\r\n return false;\r\n }\r\n let gp = t.GM.getGraphicParam(id);\r\n let gg = t.GM.getGraphic(id);\r\n if(!gg){\r\n return false;\r\n }\r\n let p = {},pts = [],lng = 0,lat = 0;\r\n switch(gp.geometryType){\r\n case 'point':\r\n lng = gg.geometry.x;\r\n lat = gg.geometry.y;\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n x: lng,\r\n y: lat\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n other: {\r\n ...gp.attributes.other,\r\n longitude: lng,\r\n latitude: lat,\r\n }\r\n }\r\n }\r\n break;\r\n case 'polyline':\r\n pts = gg.geometry.paths[0];\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n paths: pts\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n paths: pts,\r\n other: {\r\n ...gp.attributes.other,\r\n paths: pts\r\n }\r\n }\r\n }\r\n break;\r\n case 'polygon':\r\n pts = gg.geometry.rings[0];\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n rings: pts\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n rings: pts,\r\n other: {\r\n ...gp.attributes.other,\r\n rings: pts\r\n }\r\n },\r\n area: getPolygonArea(pts)\r\n }\r\n break;\r\n case 'circle':\r\n lng = gg.geometry.center.x;\r\n lat = gg.geometry.center.y;\r\n let radius = 0;\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n x: lng,\r\n y: lat,\r\n radius\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n radius,\r\n other: {\r\n ...gp.attributes.other,\r\n longitude: lng,\r\n latitude: lat,\r\n radius\r\n }\r\n },\r\n area: Math.PI*radius*radius\r\n }\r\n break;\r\n }\r\n return p;\r\n }\r\n //获取地图当前的位置状态信息\r\n getMapExtent() {\r\n let t = this;\r\n let nowBounds = t.state.gis._getAvailExtent();\r\n let obj = {};\r\n obj.southWest = {\r\n lng : nowBounds.xmin,\r\n lat : nowBounds.ymin\r\n };\r\n obj.northEast = {\r\n lng : nowBounds.xmax,\r\n lat : nowBounds.ymax\r\n };\r\n obj.nowCenter = t.getCenter();\r\n obj.zoom = t.getZoomLevel();\r\n obj.mapSize = {width: t.state.gis.width,height: t.state.gis.height};\r\n obj.radius = t.calculatePointsDistance([obj.nowCenter.lng,obj.nowCenter.lat],\r\n [obj.northEast.lng,obj.northEast.lat]);\r\n return obj;\r\n }\r\n /*工具方法*/\r\n vtxRangingTool(mapRangingTool){\r\n let t = this;\r\n //关闭测距时双击地图缩放功能\r\n t.state.gis.disableDoubleClickZoom();\r\n //开启测距状态\r\n if(!t.rangingTool.isRanging){\r\n t.rangingTool.isRanging = true;\r\n }\r\n //初始测距回调\r\n if(!t.rangingTool.mapRangingTool){\r\n t.rangingTool.mapRangingTool = mapRangingTool;\r\n }\r\n }\r\n /*功能方法*/\r\n //单个删除图元\r\n removeGraphic(id,type){\r\n let t = this;\r\n let graphic = t.GM.getGraphic(id);\r\n //刪除label\r\n if(t.Label[id]){\r\n t.Label[id].html.remove();\r\n delete t.Label[id];\r\n }\r\n if(!!graphic){\r\n //清除聚合点 避免异常\r\n // t._cluster.removeMarker(this.GM.getGraphic(id));\r\n //清除地图中图元\r\n t.state.gis.graphics.remove(graphic);\r\n //清除对应id的图元数据缓存\r\n t.GM.removeGraphic(id);\r\n }else{\r\n return false;\r\n }\r\n for(let i = 0 ; i < t.movePoints.length ; i++){\r\n if(t.movePoints[i].id == id){\r\n t.movePoints.splice(i,1);\r\n continue;\r\n }\r\n }\r\n let ids = [];\r\n switch(type){\r\n case 'point':\r\n ids = t.state.pointIds;\r\n break;\r\n case 'line':\r\n ids = t.state.lineIds;\r\n break;\r\n case 'polygon':\r\n ids = t.state.polygonIds;\r\n break;\r\n case 'circle':\r\n ids = t.state.circleIds;\r\n break;\r\n case 'draw':\r\n if(t.state.drawIds.point.indexOf(id) > -1){\r\n t.state.drawIds.point.splice(t.state.drawIds.point.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.polyline.indexOf(id) > -1){\r\n t.state.drawIds.polyline.splice(t.state.drawIds.polyline.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.polygon.indexOf(id) > -1){\r\n t.state.drawIds.polygon.splice(t.state.drawIds.polygon.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.circle.indexOf(id) > -1){\r\n t.state.drawIds.circle.splice(t.state.drawIds.circle.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.rectangle.indexOf(id) > -1){\r\n t.state.drawIds.rectangle.splice(t.state.drawIds.rectangle.indexOf(id),1);\r\n }\r\n break;\r\n default:\r\n if(t.state.pointIds.indexOf(id) > -1){\r\n t.state.pointIds.splice(t.state.pointIds.indexOf(id),1);\r\n }\r\n if(t.state.lineIds.indexOf(id) > -1){\r\n t.state.lineIds.splice(t.state.lineIds.indexOf(id),1);\r\n }\r\n if(t.state.polygonIds.indexOf(id) > -1){\r\n t.state.polygonIds.splice(t.state.polygonIds.indexOf(id),1);\r\n }\r\n if(t.state.circleIds.indexOf(id) > -1){\r\n t.state.circleIds.splice(t.state.circleIds.indexOf(id),1);\r\n }\r\n break;\r\n }\r\n if(id == t.state.editId){\r\n t.state.editId = '';\r\n }\r\n if(ids.indexOf(id) != -1){\r\n ids.splice(ids.indexOf(id),1);\r\n }\r\n }\r\n //清空地图\r\n clearAll(){\r\n let t = this;\r\n //清空热力图\r\n if(t.heatmap){\r\n t.heatmap.clear();\r\n }\r\n t.heatmap = null;\r\n t.movePoints = [];\r\n t.clearAllPointCollection();\r\n //循环所有id删除\r\n let {pointIds,lineIds,polygonIds,circleIds,drawIds} = t.state;\r\n //拷贝数组,避免原数组操作,影响循环\r\n let ps = [...pointIds],\r\n ls = [...lineIds],\r\n pgs = [...polygonIds],\r\n cs = [...circleIds];\r\n // 删除点\r\n for(let i= 0 ; i < ps.length ; i++){\r\n t.removeGraphic(ps[i],'point');\r\n }\r\n // 删除线\r\n for(let i= 0 ; i < ls.length ; i++){\r\n t.removeGraphic(ls[i],'line');\r\n }\r\n // 删除面\r\n for(let i= 0 ; i < pgs.length ; i++){\r\n t.removeGraphic(pgs[i],'polygon');\r\n }\r\n // 删除圆\r\n for(let i= 0 ; i < cs.length ; i++){\r\n t.removeGraphic(cs[i],'circle');\r\n }\r\n //删除绘制的点\r\n let {point,polyline,polygon,circle,rectangle} = drawIds;\r\n for(let i= 0 ; i < point.length ; i++){\r\n t.removeGraphic(point[i]);\r\n }\r\n for(let i= 0 ; i < polyline.length ; i++){\r\n t.removeGraphic(polyline[i]);\r\n }\r\n for(let i= 0 ; i < polygon.length ; i++){\r\n t.removeGraphic(polygon[i]);\r\n }\r\n for(let i= 0 ; i < circle.length ; i++){\r\n t.removeGraphic(circle[i]);\r\n }\r\n for(let i= 0 ; i < rectangle.length ; i++){\r\n t.removeGraphic(rectangle[i]);\r\n }\r\n }\r\n //展示比例尺\r\n showControl(){\r\n let t = this,type = '',\r\n location={top: 20, left: 20},ls = {top: 20,left: 60},\r\n w = t.state.gis.width,h = t.state.gis.height;\r\n switch(t.props.showControl.location){\r\n case 'tl':\r\n location={top: 20, left: 20};\r\n ls = {top: 20,left: 70};\r\n if(!t.props.showControl.type){\r\n ls = {top: 20,left: 20};\r\n }\r\n break;\r\n case 'bl':\r\n location={top: h - 83, left: 20};\r\n ls = {top: h - 50,left: 70};\r\n if(!t.props.showControl.type){\r\n ls = {top: h - 50,left: 20};\r\n }\r\n break;\r\n case 'tr':\r\n location={top: 20, left: w - 52};\r\n ls = {top: 20,left: w - 152};\r\n if(!t.props.showControl.type){\r\n ls = {top: 20,left: w - 93};\r\n }\r\n break;\r\n case 'br':\r\n location={top: h - 83 , left: w - 52};\r\n ls = {top: h - 50,left: w - 152};\r\n if(!t.props.showControl.type){\r\n ls = {top: h - 50,left: w - 93};\r\n }\r\n break;\r\n }\r\n if(!$(`#${t.props.mapId}_zoom_slider_show`)[0]){\r\n let getScale = t.state.gis.getScale()*0.025399998/96;\r\n //分母系数\r\n let coefficient = Math.pow(10,Math.floor(getScale).toString().length-1);\r\n //判断系数 , 总长度值\r\n let gs = getScale/coefficient,toldis = 1,isCent = false;\r\n if(gs < 1){\r\n isCent = true;\r\n gs *= 10;\r\n }\r\n //计算比例尺数值和长度\r\n if(gs >= 5){\r\n toldis = 5*coefficient*100\r\n }else if(gs >= 2){\r\n toldis = 2*coefficient*100;\r\n }else{\r\n toldis = 1*coefficient*100;\r\n }\r\n let scaleW = toldis/getScale;\r\n if(isCent){\r\n scaleW /= 10;\r\n toldis /= 10;\r\n }\r\n //宽度矫正处理\r\n if(scaleW<50){\r\n toldis *= 1.5;\r\n scaleW = toldis/getScale;\r\n }\r\n //处理比例尺值显示\r\n toldis = toldis >= 1000? `${Math.round(toldis/1000)}公里`: `${toldis}米`;\r\n let sliderShow = `\r\n <div id='${t.props.mapId}_zoom_slider_show' \r\n style='position:absolute;z-index:100;width:${scaleW-2}px;'\r\n >\r\n <div class='zoom_slider_show_scale'>${toldis}</div>\r\n <div class='zoom_slider_show_bottom'></div>\r\n </div>\r\n `\r\n $(`#${t.props.mapId}_root`).append(sliderShow);\r\n }\r\n switch(t.props.showControl.type){\r\n case 'all':\r\n case 'small':\r\n case 'pan':\r\n case 'zoom':\r\n $(`#${t.props.mapId}_zoom_slider`).css({\r\n ...location,\r\n display: 'block'\r\n });\r\n default:\r\n $(`#${t.props.mapId}_zoom_slider_show`).css({\r\n ...ls\r\n });\r\n break;\r\n }\r\n }\r\n //编辑图元\r\n doEdit(id){\r\n let t = this;\r\n if(!t.editToolbar){\r\n t.editToolbar = new esri.toolbars.Edit(t.state.gis);\r\n t.editToolbarC = new esri.toolbars.Edit(t.state.gis);\r\n let changeLabel = (point,eid,gcparam)=>{\r\n let label = '',cg = gcparam.attributes.config;\r\n //判断是不是html点\r\n if(!!gcparam.attributes.markerContent){\r\n label = {\r\n html: t.Label[eid].html,\r\n offset: {\r\n x: cg.markerContentX || 100,\r\n y: cg.markerContentY || 30\r\n },\r\n position: point\r\n }\r\n }else{\r\n //判断是否有label\r\n if(gcparam.attributes.canShowLabel && cg.labelContent){\r\n label = {\r\n html: t.Label[eid].html,\r\n //offset 需要处理 图片点位的位置(将点位偏移和宽度加入计算)\r\n offset: {\r\n x: (cg.labelPixelX || 0) + ((cg.markerContentX || -15) + (cg.width || 30)/2),\r\n y: (cg.labelPixelY || 34)+ (cg.markerContentY || -15)\r\n },\r\n position: point\r\n }\r\n }\r\n }\r\n if(label){\r\n t.dealLabelGraphics(eid,label);\r\n }\r\n }\r\n /*点位编辑事件*/\r\n //编辑关闭事件\r\n t.editToolbar.on('deactivate',(e)=>{\r\n let eid = e.graphic.attributes.id;\r\n let gcparam = t.GM.getGraphicParam(eid);\r\n //关闭label移动限制开关\r\n t.canMoveLabel = false;\r\n t.mouseNowPosition.isCount = false;\r\n if('editGraphicChange' in t.props && typeof(t.props.editGraphicChange) == 'function'){\r\n let obj = {};\r\n if(eid == 'vtx-circleMove'){\r\n let param = t.getGraphic(t.editId);\r\n obj = {\r\n area: Math.PI*Math.pow(t.GM.getGraphic(t.editId).geometry.radius,2),\r\n e: t.GM.getGraphic(t.editId),\r\n param,\r\n id: t.editId,\r\n geometry: t.GM.getGraphic(t.editId).geometry,\r\n };\r\n }else{\r\n let param = t.getGraphic(eid);\r\n obj = {\r\n e:e.graphic,param,\r\n id: eid,\r\n geometry: e.graphic.geometry,\r\n }\r\n switch(obj.geometry.type){\r\n case 'polyline':\r\n obj.geometry = {\r\n ...obj.geometry,\r\n paths: obj.geometry.paths[0]\r\n }\r\n obj.distance = t.calculateDistance(obj.geometry.paths);\r\n break;\r\n case 'polygon':\r\n obj.geometry = {\r\n ...obj.geometry,\r\n rings: obj.geometry.rings[0]\r\n }\r\n obj.area = getPolygonArea(obj.geometry.rings);\r\n break;\r\n }\r\n }\r\n t.props.editGraphicChange(obj);\r\n }\r\n if(eid == 'vtx-circleMove'){\r\n t.removeGraphic('vtx-circleMove','point');\r\n t.removeGraphic('vtx-circleRadius','point');\r\n if(t.zIndexGraphics.indexOf('vtx-circleMove') > -1){\r\n t.zIndexGraphics.splice(t.zIndexGraphics.indexOf('vtx-circleMove'),1);\r\n }\r\n if(t.zIndexGraphics.indexOf('vtx-circleRadius') > -1){\r\n t.zIndexGraphics.splice(t.zIndexGraphics.indexOf('vtx-circleRadius'),1);\r\n }\r\n }\r\n if(t.zIndexGraphics.indexOf(eid) > -1){\r\n t.zIndexGraphics.splice(t.zIndexGraphics.indexOf(eid),1);\r\n }\r\n t.editId = '';\r\n })\r\n //移动开始事件 开启开关\r\n t.editToolbar.on('graphic-move-start',(e)=>{\r\n //label可以跟着点位移动,避免label直接跟着鼠标移动\r\n t.canMoveLabel = true;\r\n });\r\n //移动中事件\r\n t.editToolbar.on('graphic-move',(e)=>{\r\n //计算鼠标点 与中心点的偏移值\r\n if(!t.mouseNowPosition.isCount){\r\n t.mouseNowPosition.isCount = true;\r\n t.mouseNowPosition.px = t.mouseNowPosition.x - e.graphic.geometry.x;\r\n t.mouseNowPosition.py = t.mouseNowPosition.y - e.graphic.geometry.y;\r\n }\r\n let eid = e.graphic.attributes.id,\r\n position = new esri.geometry.Point({\r\n longitude: t.mouseNowPosition.x - t.mouseNowPosition.px,\r\n latitude: t.mouseNowPosition.y - t.mouseNowPosition.py,\r\n spatialReference:{ wkid: t.grwkid }\r\n });\r\n //圆中心点的移动\r\n if(eid == 'vtx-circleMove'){\r\n t.GM.getGraphic('vtx-circleMove').setGeometry(position);\r\n let circleCenter = new esri.geometry.Circle({\r\n center: position,\r\n radius: t.GM.getGraphic(t.editId).geometry.radius\r\n });\r\n t.GM.getGraphic(t.editId).setGeometry(circleCenter);\r\n t.GM.getGraphic('vtx-circleRadius').setGeometry(\r\n new esri.geometry.Point({\r\n longitude: t.mouseNowPosition.x - t.mouseNowPosition.px - t.circleEditPXY.px,\r\n latitude: t.mouseNowPosition.y - t.mouseNowPosition.py - t.circleEditPXY.py,\r\n spatialReference:{ wkid: t.grwkid }\r\n })\r\n );\r\n t.state.gis.graphics.refresh();\r\n return false;\r\n }\r\n let gcparam = t.GM.getGraphicParam(eid);\r\n changeLabel(position,eid,gcparam);\r\n });\r\n //移动结束后事件\r\n t.editToolbar.on('graphic-move-stop',(e)=>{\r\n let eid = e.graphic.attributes.id;\r\n let gcparam = t.GM.getGraphicParam(eid);\r\n //关闭label移动限制开关\r\n t.canMoveLabel = false;\r\n t.mouseNowPosition.isCount = false;\r\n //判断是不是点\r\n if(gcparam.geometryType == 'point'){\r\n changeLabel(e.graphic.geometry,eid,gcparam);\r\n }\r\n //圆中心点的移动\r\n if(eid == 'vtx-circleMove'){\r\n t.GM.getGraphic('vtx-circleMove').setGeometry(e.graphic.geometry);\r\n let circleCenter = new esri.geometry.Circle({\r\n center: e.graphic.geometry,\r\n radius: t.GM.getGraphic(t.editId).geometry.radius\r\n });\r\n t.GM.getGraphic(t.editId).setGeometry(circleCenter);\r\n t.GM.getGraphic('vtx-circleRadius').setGeometry(\r\n new esri.geometry.Point({\r\n longitude: e.graphic.geometry.x - t.circleEditPXY.px,\r\n latitude: e.graphic.geometry.y - t.circleEditPXY.py,\r\n spatialReference:{ wkid: t.grwkid }\r\n })\r\n );\r\n t.state.gis.graphics.refresh();\r\n if('editGraphicChange' in t.props && typeof(t.props.editGraphicChange) == 'function'){\r\n let param = t.getGraphic(t.editId);\r\n t.props.editGraphicChange({\r\n area: Math.PI*Math.pow(t.GM.getGraphic(t.editId).geometry.radius,2),\r\n e: t.GM.getGraphic(t.editId),\r\n param,\r\n id: t.editId,\r\n geometry: t.GM.getGraphic(t.editId).geometry,\r\n });\r\n }\r\n return false;\r\n }\r\n if('editGraphicChange' in t.props && typeof(t.props.editGraphicChange) == 'function'){\r\n let param = t.getGraphic(eid);\r\n t.props.editGraphicChange({\r\n e:e.graphic,param,\r\n id: eid,\r\n geometry: e.graphic.geometry,\r\n });\r\n }\r\n });\r\n //多折线 多边形 圆事件处理\r\n t.editToolbar.on('vertex-move-stop',(e)=>{\r\n let eid = e.graphic.attributes.id;\r\n let gcparam = t.GM.getGraphicParam(eid);\r\n if('editGraphicChange' in t.props && typeof(t.props.editGraphicChange) == 'function'){\r\n let param = t.getGraphic(eid);\r\n let obj = {\r\n e:e.graphic,param,\r\n id: eid,\r\n geometry: e.graphic.geometry,\r\n }\r\n switch(obj.geometry.type){\r\n case 'polyline':\r\n obj.geometry = {\r\n ...obj.geometry,\r\n paths: obj.geometry.paths[0]\r\n }\r\n obj.distance = t.calculateDistance(obj.geometry.paths);\r\n break;\r\n case 'polygon':\r\n obj.geometry = {\r\n ...obj.geometry,\r\n rings: obj.geometry.rings[0]\r\n }\r\n obj.area = getPolygonArea(obj.geometry.rings);\r\n break;\r\n }\r\n t.props.editGraphicChange(obj);\r\n }\r\n });\r\n //移动开始事件 开启开关 [圆半径]\r\n t.editToolbarC.on('graphic-move-start',(e)=>{\r\n //label可以跟着点位移动,避免label直接跟着鼠标移动\r\n t.canMoveLabel = true;\r\n });\r\n //移动中事件 [圆半径]\r\n t.editToolbarC.on('graphic-move',(e)=>{\r\n //计算鼠标点 与中心点的偏移值\r\n if(!t.mouseNowPosition.isCount){\r\n t.mouseNowPosition.isCount = true;\r\n t.mouseNowPosition.px = t.mouseNowPosition.x - e.graphic.geometry.x;\r\n t.mouseNowPosition.py = t.mouseNowPosition.y - e.graphic.geometry.y;\r\n }\r\n let cgc = t.GM.getGraphic(t.editId),\r\n eid = e.graphic.attributes.id,\r\n position = new esri.geometry.Point({\r\n longitude: t.mouseNowPosition.x - t.mouseNowPosition.px,\r\n latitude: t.mouseNowPosition.y - t.mouseNowPosition.py,\r\n spatialReference:{ wkid: t.grwkid }\r\n }),\r\n radius = t.calculatePointsDistance(\r\n [cgc.geometry.center.x,cgc.geometry.center.y],\r\n [t.mouseNowPosition.x - t.mouseNowPosition.px,t.mouseNowPosition.y - t.mouseNowPosition.py]\r\n );\r\n t.circleEditPXY = {\r\n px: cgc.geometry.center.x - (t.mouseNowPosition.x - t.mouseNowPosition.px),\r\n py: cgc.geometry.center.y - (t.mouseNowPosition.y - t.mouseNowPosition.py)\r\n }\r\n cgc.setGeometry(new esri.geometry.Circle({\r\n center: new esri.geometry.Point(cgc.geometry.center.x,cgc.geometry.center.y),\r\n radius: radius\r\n }));\r\n t.GM.getGraphic('vtx-circleRadius').setGeometry(position);\r\n t.state.gis.graphics.refresh();\r\n });\r\n //移动结束后事件 [圆半径]\r\n t.editToolbarC.on('graphic-move-stop',(e)=>{\r\n t.canMoveLabel = false;\r\n t.mouseNowPosition.isCount = false;\r\n let cgc = t.GM.getGraphic(t.editId),\r\n eid = e.graphic.attributes.id,\r\n position = new esri.geometry.Point({\r\n longitude: t.mouseNowPosition.x - t.mouseNowPosition.px,\r\n latitude: t.mouseNowPosition.y - t.mouseNowPosition.py,\r\n spatialReference:{ wkid: t.grwkid }\r\n }),\r\n radius = t.calculatePointsDistance(\r\n [cgc.geometry.center.x,cgc.geometry.center.y],\r\n [t.mouseNowPosition.x - t.mouseNowPosition.px,t.mouseNowPosition.y - t.mouseNowPosition.py]\r\n );\r\n t.circleEditPXY = {\r\n px: cgc.geometry.center.x - (t.mouseNowPosition.x - t.mouseNowPosition.px),\r\n py: cgc.geometry.center.y - (t.mouseNowPosition.y - t.mouseNowPosition.py)\r\n }\r\n cgc.setGeometry(new esri.geometry.Circle({\r\n center: new esri.geometry.Point(cgc.geometry.center.x,cgc.geometry.center.y),\r\n radius: radius\r\n }));\r\n t.GM.getGraphic('vtx-circleRadius').setGeometry(position);\r\n t.state.gis.graphics.refresh();\r\n if('editGraphicChange' in t.props && typeof(t.props.editGraphicChange) == 'function'){\r\n let param = t.getGraphic(t.editId);\r\n t.props.editGraphicChange({\r\n area: Math.PI*Math.pow(t.GM.getGraphic(t.editId).geometry.radius,2),\r\n e: t.GM.getGraphic(t.editId),\r\n param,\r\n id: t.editId,\r\n geometry: t.GM.getGraphic(t.editId).geometry,\r\n });\r\n }\r\n })\r\n }\r\n //取消上一次的编辑\r\n if(t.editId){\r\n t.editToolbar.deactivate();\r\n t.editToolbarC.deactivate();\r\n }\r\n //获取图元对象\r\n let gc = t.GM.getGraphic(id);\r\n let gp = t.GM.getGraphicParam(id);\r\n if(!gc)return;\r\n switch(gp.geometryType){\r\n case 'point':\r\n //将编辑的图元放在最上面\r\n t.czIndex(id);\r\n if(t.zIndexGraphics.indexOf(id) == -1){\r\n t.zIndexGraphics.push(id);\r\n }\r\n t.editToolbar.activate(esri.toolbars.Edit.MOVE , gc);\r\n break;\r\n case 'polyline':\r\n case 'polygon':\r\n t.editToolbar.activate(esri.toolbars.Edit.EDIT_VERTICES , gc);\r\n break;\r\n case 'circle':\r\n // 移动圆的中心点 和 移动圆的半径点\r\n t.addPoint([{\r\n id: 'vtx-circleMove',\r\n longitude: gc.geometry.center.x,\r\n latitude: gc.geometry.center.y,\r\n url: 'http://api0.map.bdimg.com/images/node.gif',\r\n config: {\r\n width: 11,\r\n height: 11,\r\n markerContentY: -5.5,\r\n markerContentX: -5.5\r\n }\r\n },{\r\n id: 'vtx-circleRadius',\r\n longitude: gc.geometry.rings[0][0][0],\r\n latitude: gc.geometry.rings[0][0][1],\r\n url: 'http://api0.map.bdimg.com/images/node.gif',\r\n config: {\r\n width: 11,\r\n height: 11,\r\n markerContentY: -5.5,\r\n markerContentX: -5.5\r\n }\r\n }]);\r\n t.circleEditPXY = {\r\n px: gc.geometry.center.x - gc.geometry.rings[0][0][0],\r\n py: gc.geometry.center.y - gc.geometry.rings[0][0][1]\r\n }\r\n t.czIndex('vtx-circleMove');\r\n t.czIndex('vtx-circleRadius');\r\n if(t.zIndexGraphics.indexOf('vtx-circleMove') == -1){\r\n t.zIndexGraphics.push('vtx-circleMove');\r\n }\r\n if(t.zIndexGraphics.indexOf('vtx-circleRadius') == -1){\r\n t.zIndexGraphics.push('vtx-circleRadius');\r\n }\r\n t.editToolbar.activate(esri.toolbars.Edit.MOVE , t.GM.getGraphic('vtx-circleMove'));\r\n t.editToolbarC.activate(esri.toolbars.Edit.MOVE , t.GM.getGraphic('vtx-circleRadius'));\r\n break;\r\n }\r\n //开启点编辑功能\r\n t.editId = id;\r\n }\r\n //关闭编辑\r\n endEdit(){\r\n let t = this;\r\n t.editToolbar.deactivate();\r\n //单独为了圆的\r\n t.editToolbarC.deactivate();\r\n }\r\n //绘制图元\r\n draw(obj){\r\n let t = this;\r\n if(!t.drawToolbar){\r\n t.drawToolbar = new esri.toolbars.Draw(t.state.gis,{\r\n drawTime: 90,\r\n showTooltips: false\r\n });\r\n t.drawToolbar.on('draw-complete',(e)=>{\r\n //关闭绘制事件\r\n t.closeDraw();\r\n //返回参数\r\n let param = {};\r\n // 绘制内部管理的图元\r\n if(t.drawParam.geometryType == 'point'){\r\n t.addPoint([{\r\n id: t.drawParam.data.id,\r\n longitude: e.geometry.x,\r\n latitude: e.geometry.y,\r\n url: t.drawParam.parameter.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }],'point');\r\n //处理点返回参数\r\n param = {\r\n id: t.drawParam.data.id,\r\n attributes: {\r\n id: t.drawParam.data.id,\r\n url: t.drawParam.parameter.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n config: {\r\n width: t.drawParam.parameter.width || 30,\r\n height: t.drawParam.parameter.height || 30\r\n }\r\n },\r\n geometry: e.geometry,\r\n geometryType: 'point',\r\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\r\n }\r\n }\r\n //线\r\n if(t.drawParam.geometryType == 'polyline'){\r\n t.addLine([{\r\n id: t.drawParam.data.id,\r\n paths: e.geometry.paths[0],\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }],'polyline');\r\n //处理线返回参数\r\n let {lnglatAry,_extent} = t.dealData(e.geometry.paths[0]);\r\n param = {\r\n lnglatAry,\r\n id: t.drawParam.data.id,\r\n geometry: {\r\n ...e.geometry,\r\n paths: e.geometry.paths[0],\r\n _extent\r\n },\r\n attributes: {\r\n id: t.drawParam.data.id,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n },\r\n distance: t.calculateDistance(e.geometry.paths[0]),\r\n geometryType: 'polyline',\r\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\r\n }\r\n }\r\n if(t.drawParam.geometryType == 'polygon' || t.drawParam.geometryType == 'rectangle'){\r\n let rs = [...e.geometry.rings[0]];\r\n rs.pop();\r\n t.addPolygon([{\r\n id: t.drawParam.data.id,\r\n rings: rs,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }],t.drawParam.geometryType);\r\n //处理面返回参数\r\n let {lnglatAry,_extent} = t.dealData(e.geometry.rings[0]);\r\n param={\r\n lnglatAry,\r\n id: t.drawParam.data.id,\r\n geometry: {\r\n ...e.geometry,\r\n rings: e.geometry.rings[0],\r\n type: t.drawParam.geometryType,\r\n _extent\r\n },\r\n attributes: {\r\n id: t.drawParam.data.id,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n },\r\n area: getPolygonArea(e.geometry.rings[0]),\r\n geometryType: t.drawParam.geometryType,\r\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\r\n }\r\n }\r\n if(t.drawParam.geometryType == 'circle'){\r\n if(e.geometry._extent){\r\n let radius = getDistance(\r\n [e.geometry._extent.xmin,e.geometry._extent.ymin],\r\n [e.geometry._extent.xmax,e.geometry._extent.ymax],\r\n t.state.gis,\r\n t.grwkid\r\n )/2;\r\n radius = Math.sqrt(Math.pow(radius,2)*2)/2;\r\n t.addCircle([{\r\n id: t.drawParam.data.id,\r\n longitude: (e.geometry._extent.xmin+e.geometry._extent.xmax)/2,\r\n latitude: (e.geometry._extent.ymin+e.geometry._extent.ymax)/2,\r\n radius: radius,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }],t.drawParam.geometryType);\r\n param = {\r\n area: Math.PI*Math.pow(radius,2),\r\n attributes: {\r\n id: t.drawParam.data.id,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n },\r\n geometry: {\r\n type: t.drawParam.geometryType,\r\n x: (e.geometry._extent.xmin+e.geometry._extent.xmax)/2,\r\n y: (e.geometry._extent.ymin+e.geometry._extent.ymax)/2, \r\n radius\r\n },\r\n geometryType: t.drawParam.geometryType,\r\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\r\n }\r\n }\r\n }\r\n // t.GM.setGraphicParam(t.drawParam.data.id,param);\r\n //绘制返回\r\n if('drawEnd' in t.props && typeof(t.props.drawEnd) == 'function'){\r\n t.props.drawEnd(param);\r\n }\r\n })\r\n }\r\n //避免连点\r\n t.closeDraw();\r\n $(`#${t.props.mapId}_container`).css({\r\n cursor: 'crosshair'\r\n });\r\n let drawParam = {};\r\n //初始化参数\r\n drawParam.geometryType = obj.geometryType || 'point';\r\n drawParam.parameter = obj.parameter?{...obj.parameter}:{};\r\n drawParam.data = obj.data?{...obj.data}:{};\r\n drawParam.data.id = (obj.data || {}).id || `draw${new Date().getTime()}`;\r\n //缓存 绘制的数据\r\n t.drawParam = drawParam;\r\n //判断id是否存在\r\n let len = t.state.drawIds[drawParam.geometryType].indexOf(drawParam.data.id);\r\n if(len > -1){\r\n //如果id存在 删除存在的图元,清除drawId中的id数据\r\n t.removeGraphic(drawParam.data.id);\r\n t.state.drawIds[drawParam.geometryType].splice(len,1);\r\n }\r\n let lineSymbol = null,fillSymbol = null;\r\n if(drawParam.geometryType !== 'point'){\r\n //线类型\r\n let lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(drawParam.parameter.lineType){\r\n case 'solid':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n //处理边框线颜色和透明度 使用rgba处理透明度\r\n let lineColor = null;\r\n //线和面圆的线透明参数不同\r\n if(drawParam.geometryType == 'polyline'){\r\n lineColor = new esri.Color(drawParam.parameter.color);\r\n lineColor.a = drawParam.parameter.pellucidity;\r\n }else{\r\n lineColor = new esri.Color(drawParam.parameter.lineColor);\r\n lineColor.a = drawParam.parameter.lineOpacity;\r\n }\r\n //生成线类型对象\r\n lineSymbol = new esri.symbol.SimpleLineSymbol(lineStyle,lineColor,drawParam.parameter.lineWidth);\r\n }else{\r\n //点的样式\r\n let markerSymbol = new esri.symbol.PictureMarkerSymbol(\r\n drawParam.parameter.url || `${configUrl.mapServerURL}/images/defaultMarker.png`, \r\n (drawParam.parameter.width || 30), (drawParam.parameter.height || 30)\r\n );\r\n //设置点偏移\r\n markerSymbol.setOffset(\r\n (drawParam.parameter.markerContentX || -15) + (drawParam.parameter.width || 30)/2,\r\n -((drawParam.parameter.markerContentY || -15) + (drawParam.parameter.height || 30)/2)\r\n );\r\n t.drawToolbar.setMarkerSymbol(markerSymbol);\r\n }\r\n //处理面 矩形 圆的样式\r\n if(drawParam.geometryType == 'polygon' || drawParam.geometryType == 'circle' || drawParam.geometryType == 'rectangle'){\r\n //创建面对象\r\n fillSymbol = new esri.symbol.SimpleFillSymbol();\r\n //添加边框线数据\r\n fillSymbol.setOutline(lineSymbol);\r\n //处理填充颜色和透明度 使用rgba处理透明度\r\n let dColor = new esri.Color(drawParam.parameter.color);\r\n dColor.a = drawParam.parameter.pellucidity;\r\n fillSymbol.setColor(dColor);\r\n //添加线的样式\r\n t.drawToolbar.setFillSymbol(fillSymbol);\r\n t.drawToolbar.setRespectDrawingVertexOrder(true);\r\n }\r\n //重新设置绘制类型和数据\r\n let geometryType = esri.toolbars.Draw.POINT;\r\n switch(drawParam.geometryType){\r\n case 'point':\r\n geometryType = esri.toolbars.Draw.POINT;\r\n\r\n break;\r\n case 'polyline':\r\n geometryType = esri.toolbars.Draw.POLYLINE;\r\n //添加线的样式\r\n t.drawToolbar.setLineSymbol(lineSymbol);\r\n break;\r\n case 'polygon':\r\n geometryType = esri.toolbars.Draw.POLYGON;\r\n break;\r\n case 'circle':\r\n geometryType = esri.toolbars.Draw.CIRCLE;\r\n break;\r\n case 'rectangle':\r\n geometryType = esri.toolbars.Draw.RECTANGLE;\r\n break;\r\n }\r\n t.drawToolbar.activate(geometryType);\r\n }\r\n //关闭绘制\r\n closeDraw(){\r\n let t = this;\r\n if(t.drawToolbar){\r\n $(`#${t.props.mapId}_container`).css({\r\n cursor: 'default'\r\n });\r\n //先关闭上次绘制的事件\r\n t.drawToolbar.finishDrawing();\r\n //销毁上次绘制的类型设定\r\n t.drawToolbar.deactivate();\r\n }\r\n }\r\n //点聚合\r\n cluster(ids){\r\n let t = this;\r\n //获取聚合点id 空则是全部点位\r\n t.clusterMarkers = t.clusterToolFunction(ids);\r\n //处理聚合点逻辑\r\n t.dealClusterPoint();\r\n }\r\n //处理聚合点逻辑\r\n dealClusterPoint(){\r\n let t = this;\r\n //当前窗口信息\r\n let ext = t.dealExtendBounds(t.state.gis.extent);\r\n t.clusterPs = [];\r\n //清除原来聚合点\r\n for(let i = 0 ; i < t.clusterPt.length; i++){\r\n t.state.gis.graphics.remove(t.clusterPt[i].graphic);\r\n t.state.gis.graphics.remove(t.clusterPt[i].graphicText);\r\n }\r\n for(let i = 0; i < t.clusterMarkers.length ; i++){\r\n t.clusterMarkers[i].isCluster = false;\r\n }\r\n //处理后的聚合点位数据\r\n for(let i = 0 ; i < t.clusterMarkers.length ; i++){\r\n let gc = t.clusterMarkers[i].marker,\r\n distance = 4000000,newCluster = null;\r\n //过滤不是点的图元id\r\n if(gc.geometry.type !== 'point'){\r\n console.warning(`设置聚合的图元不符号类型!`);\r\n }else{\r\n //过滤窗口视线外的点位\r\n if(ext.contains(gc.geometry)){\r\n //聚合点集合空时 创建一个集合\r\n if(t.clusterPs.length === 0){\r\n t.createCluster(t.clusterMarkers[i]);\r\n }else{\r\n for(let j = 0 ; j < t.clusterPs.length; j++){\r\n //判断点是否在聚合点范围内\r\n let d = t.calculatePointsDistance(\r\n [gc.geometry.x,gc.geometry.y],\r\n [t.clusterPs[j].center.x,t.clusterPs[j].center.y]\r\n )\r\n //获取最优聚合点\r\n if(d < distance){\r\n distance = d;\r\n newCluster = t.clusterPs[j];\r\n }\r\n }\r\n //存在聚合 就添加进聚合 没有聚合就新建一个自己的聚合\r\n if(newCluster && newCluster.extent.contains(gc.geometry)){\r\n t.clusterMarkers[i].isCluster = true;\r\n newCluster.markers.push(t.clusterMarkers[i]);\r\n newCluster.isreal = true;\r\n }else{\r\n t.createCluster(t.clusterMarkers[i]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n //添加cluster聚合点\r\n for(let i = 0 ; i < t.clusterPs.length; i++){\r\n if(t.clusterPs[i].isreal){\r\n //添加聚合集合点\r\n t.addClusterPoint(t.clusterPs[i]);\r\n }else{\r\n let m = t.clusterPs[i].markers[0];\r\n if(!m.marker.getNode()){\r\n //存在html的label处理\r\n if(m.html){\r\n t.dealLabelGraphics(m.id,m.html);\r\n }\r\n //添加回原有的点\r\n t.state.gis.graphics.add(m.marker);\r\n }\r\n }\r\n }\r\n }\r\n //处理聚合点的添加\r\n addClusterPoint(cluster){\r\n let t = this;\r\n let len = cluster.markers.length,ids=[];\r\n let url = 'http://api.map.baidu.com/library/TextIconOverlay/1.2/src/images/m4.png',\r\n w = 90;\r\n if(len < 50){\r\n url = 'http://api.map.baidu.com/library/TextIconOverlay/1.2/src/images/m3.png';\r\n w = 78;\r\n }\r\n if(len < 30){\r\n url = 'http://api.map.baidu.com/library/TextIconOverlay/1.2/src/images/m2.png';\r\n w = 66;\r\n }\r\n if(len < 20){\r\n url = 'http://api.map.baidu.com/library/TextIconOverlay/1.2/src/images/m1.png';\r\n w = 56;\r\n }\r\n if(len < 10){\r\n url = 'http://api.map.baidu.com/library/TextIconOverlay/1.2/src/images/m0.png';\r\n w = 53;\r\n }\r\n //处理聚合中点位\r\n for(let i = 0 ; i < len ; i++){\r\n ids.push(cluster.markers[i].id);\r\n if(cluster.markers[i].marker.getNode()){\r\n t.state.gis.graphics.remove(cluster.markers[i].marker);\r\n if(cluster.markers[i].html){\r\n cluster.markers[i].html.html.remove();\r\n }\r\n }\r\n }\r\n //添加聚合点\r\n let markerSymbol = new esri.symbol.PictureMarkerSymbol(\r\n url, w, w\r\n );\r\n //设置文字点位(记录聚合点数量)\r\n let text = new esri.symbol.TextSymbol(len).setColor(new esri.Color('#fff'));\r\n //文字居中\r\n text.setOffset(0.5,-5);\r\n //创建点位对象\r\n let graphic = new esri.Graphic(cluster.center,markerSymbol,{id: 'vtx-clusterPoint',ids,cluster}),\r\n graphicText = new esri.Graphic(cluster.center,text,{id: 'vtx-clusterPoint',ids,cluster});\r\n //添加聚合点位到地图\r\n t.state.gis.graphics.add(graphic);\r\n t.state.gis.graphics.add(graphicText);\r\n t.clusterPt.push({graphic,graphicText});\r\n }\r\n //新增cluster\r\n createCluster(m){\r\n let t = this;\r\n let gc = m.marker;\r\n //不是集合里面的点\r\n if(!m.isCluster){\r\n m.isCluster = true;\r\n t.clusterPs.push({\r\n extent: t.dealExtendBounds(gc._extent),\r\n center: gc.geometry,\r\n markers: [m],\r\n isreal: false\r\n });\r\n }\r\n }\r\n //处理聚合的间距\r\n dealExtendBounds(extent,area){\r\n let t = this,bound = area || 60;\r\n let ne = new esri.geometry.Point(extent.xmax,extent.ymax),\r\n sw = new esri.geometry.Point(extent.xmin,extent.ymin),\r\n pixelNe = t.state.gis.toScreen(ne),\r\n pixelSw = t.state.gis.toScreen(sw);\r\n pixelNe.x += bound;\r\n pixelNe.y -= bound;\r\n pixelSw.x -= bound;\r\n pixelSw.y += bound;\r\n let newNe = t.state.gis.toMap(pixelNe),\r\n newSw = t.state.gis.toMap(pixelSw);\r\n return new esri.geometry.Extent(newSw.x,newSw.y,newNe.x,newNe.y, new esri.SpatialReference({ wkid: t.grwkid }));\r\n }\r\n //聚合功能公共方法(获取图元集合)\r\n clusterToolFunction(arg){\r\n let t = this;\r\n let ary = [];\r\n if(!arg){\r\n let {pointIds} = t.state;\r\n ary = pointIds;\r\n }else{\r\n if(Object.prototype.toString.apply(arg) === '[object Array]'){\r\n ary = arg;\r\n }else if(typeof arg === 'string'){\r\n ary = arg.split(',');\r\n }\r\n }\r\n let markerList = [];\r\n for(let i = 0; i < ary.length ; i++){\r\n let obj = {\r\n id: ary[i],\r\n marker: t.GM.getGraphic(ary[i]),\r\n isCluster: false\r\n }\r\n if(t.Label[ary[i]]){\r\n obj.html = t.Label[ary[i]];\r\n }\r\n markerList.push(obj);\r\n }\r\n return markerList;\r\n }\r\n //设置区域限制\r\n setAreaRestriction(areaRestriction){\r\n let t = this;\r\n let {_extent:_et} = t.dealData(areaRestriction);\r\n t.areaRestriction = new esri.geometry.Extent({\r\n ..._et,spatialReference: {wkid: t.grwkid}\r\n });\r\n }\r\n //关闭区域限制\r\n clearAreaRestriction(){\r\n let t = this;\r\n t.areaRestriction = null;\r\n }\r\n //区域限制逻辑\r\n dealAreaRestriction(e){\r\n let t = this;\r\n //如果在区域内,不处理\r\n if(t.areaRestriction.contains(e.extent.getCenter())){\r\n return;\r\n }\r\n // if(t.containsExtent(t.areaRestriction,e.extent)){\r\n // return; \r\n // }\r\n let {xmin:xmin1,xmax: xmax1,ymin: ymin1,ymax: ymax1} = t.areaRestriction;\r\n let {xmin:xmin2,xmax: xmax2,ymin: ymin2,ymax: ymax2} = e.extent;\r\n let x = e.extent.getCenter().x,y = e.extent.getCenter().y;\r\n if(x < xmin1)x = xmin1+0.1;\r\n if(x > xmax1)x = xmax1-0.1;\r\n if(y < ymin1)y = ymin1+0.1;\r\n if(y > ymax1)y = ymax1-0.1;\r\n let center = new esri.geometry.Point(x,y);\r\n t.state.gis.centerAt(center);\r\n }\r\n /*公共方法*/\r\n //判断extent1是否在extent2内部\r\n containsExtent(e1,e2){\r\n let {xmin:xmin1,xmax: xmax1,ymin: ymin1,ymax: ymax1} = e1;\r\n let {xmin:xmin2,xmax: xmax2,ymin: ymin2,ymax: ymax2} = e2;\r\n return (xmin2 > xmin1 && xmax2 < xmax1 && ymin2 > ymin1 && ymax2 < ymax1);\r\n }\r\n //将图元z-index设置成最高\r\n czIndex(id){\r\n let t = this;\r\n $(`#${t.props.mapId}_graphics_layer`).append(t.GM.getGraphic(id).getNode());\r\n }\r\n equalsPoint(a,b){\r\n return (a.x == b.x && a.y == b.y);\r\n }\r\n //计算2点间距离 单位m 精确到2位小数\r\n calculatePointsDistance(fp,ep){\r\n return getDistance(fp,ep,this.state.gis,this.state.grwkid);\r\n }\r\n //计算多个点的距离(常用于线计算)\r\n calculateDistance(ps){\r\n let t = this,totalDistance = 0;\r\n if (ps.length < 0) {return 0;}\r\n for(let i= 0 ; i< ps.length ; i++){\r\n if(i < ps.length-1){\r\n totalDistance += t.calculatePointsDistance(ps[i],ps[i+1]);\r\n }\r\n }\r\n return totalDistance;\r\n }\r\n //处理线和面的 经纬度数据\r\n dealData(paths){\r\n //区别点和圆的经纬度数据处理\r\n let lnglatAry = [],_extent = {xmax: 0,xmin: 0,ymax: 0,ymin: 0},path=[];\r\n path = paths.map((item,index)=>{\r\n let lng = item[0],lat = item[1];\r\n if(lng > _extent.xmax){\r\n _extent.xmax = lng;\r\n }\r\n if(lng < _extent.xmin || _extent.xmin == 0){\r\n _extent.xmin = lng;\r\n }\r\n if(lat > _extent.ymax){\r\n _extent.ymax = lat;\r\n }\r\n if(lat < _extent.ymin || _extent.ymin == 0){\r\n _extent.ymin = lat;\r\n }\r\n lnglatAry.push({\r\n lngX: lng,\r\n latX: lat\r\n });\r\n return [lng,lat];\r\n })\r\n return {lnglatAry,_extent,path};\r\n }\r\n //处理点位图元的添加 和 更新\r\n dealLabelGraphics(id,label){\r\n let t = this;\r\n if(label){\r\n let position = (t.GM.getGraphic(id) || {}).geometry || label.position;\r\n //经纬度转top和left\r\n let tl = t.state.gis.toScreen(position),lbl = {...label};\r\n //渲染優化\r\n if(!(tl.y < -50 || tl.x < -50 || tl.y > t.state.gis.height || tl.x > t.state.gis.width)){\r\n //设置label的位置(通过定位来实现)\r\n label.html.css({\r\n position: 'absolute',\r\n top: tl.y + (label.offset.y || 0) - t.labelLayer.y,\r\n left: tl.x + (label.offset.x || 0) - t.labelLayer.x\r\n });\r\n //添加点位到(地图)\r\n $(`#${t.htmlPointsId}`).append(label.html);\r\n lbl.add = true;\r\n }else{\r\n lbl.add = false;\r\n }\r\n //记录下label的dom对象,用于后期修改和删除(基本是删除)\r\n t.Label[id] = lbl;\r\n }\r\n }\r\n //点的跳动动画\r\n pointAnimation(id,marker){\r\n let t = this;\r\n //null时关闭跳动\r\n if(!!marker){\r\n if(t.animTimer[id]){\r\n clearInterval(t.animTimer[id]);\r\n }\r\n t.animTimer[id] = setInterval(()=>{\r\n //点被隐藏时,没有执行,定时不关\r\n if(marker.symbol){\r\n let shape = {...marker.symbol};\r\n //初始数据 点位有变动,重新刷新数据\r\n if(!t.animCount[id] || shape.yoffset != t.animCount[id].now){\r\n t.animCount[id] = {\r\n start: shape.yoffset,\r\n now: shape.yoffset,\r\n notation: -1\r\n };\r\n }\r\n if(t.animCount[id].now - t.animCount[id].start == 20){\r\n t.animCount[id].notation = -1;\r\n }\r\n if(t.animCount[id].now - t.animCount[id].start == 0){\r\n t.animCount[id].notation = 1;\r\n }\r\n shape.yoffset = t.animCount[id].now = (t.animCount[id].now + (t.animCount[id].notation)*2);\r\n marker.symbol.setOffset(shape.xoffset,shape.yoffset);\r\n t.state.gis.graphics.refresh();\r\n }\r\n },35);\r\n }else{\r\n clearInterval(t.animTimer[id]);\r\n }\r\n }\r\n moveAnimation(){\r\n let t = this;\r\n if(t.moveToTimer){\r\n clearInterval(t.moveToTimer);\r\n }\r\n t.moveToTimer = setInterval(()=>{\r\n for(let i = 0;i < t.movePoints.length; i++){\r\n t.movePoints[i].waitTime += 10;\r\n t.movePoints[i].deleteTime -= 10;\r\n }\r\n t.movePoints.sort((x,y)=>{\r\n return y.waitTime -x.waitTime;\r\n });\r\n let nowMovePoints = t.movePoints.slice(0,10),deleteIndex=[];\r\n for(let i = 0;i < nowMovePoints.length; i++){\r\n let {id,rx,ry,waitTime,deleteTime,ddeg} = nowMovePoints[i];\r\n let gc = t.GM.getGraphic(id);\r\n if(!gc || !gc._graphicsLayer){\r\n clearInterval(t.moveToTimer);\r\n }else{\r\n let gg = gc.geometry;\r\n let tx = gg.x + rx,ty = gg.y + ry;\r\n let lglt = new esri.geometry.Point(tx,ty);\r\n gc.geometry.setLatitude(ty);\r\n gc.geometry.setLongitude(tx);\r\n //设置完点位后 需要刷新下点位的显示范围\r\n gc._extent.update(tx,ty,tx,ty,new esri.SpatialReference({ wkid: t.grwkid }));\r\n if(gc._extent._parts && gc._extent._parts[0]){\r\n gc._extent._parts[0].extent.update(tx,ty,tx,ty,new esri.SpatialReference({ wkid: t.grwkid }));\r\n }\r\n // gc._extent._parts[0].extent = gc._extent.centerAt(lglt);\r\n gc._graphicsLayer.refresh();\r\n if(t.Label[id] && t.Label[id].add){\r\n let tl = t.state.gis.toScreen(lglt);\r\n //设置label的位置(通过定位来实现)\r\n t.Label[id].html.css({\r\n position: 'absolute',\r\n top: tl.y + (t.Label[id].offset.y || 0) - t.labelLayer.y,\r\n left: tl.x + (t.Label[id].offset.x || 0) - t.labelLayer.x\r\n });\r\n }\r\n t.GM.setGraphicParam(id,{...t.GM.getGraphicParam(id),deg: ddeg});\r\n t.movePoints[i].waitTime = 0;\r\n if(deleteTime <= 0){\r\n deleteIndex.push(i);\r\n }\r\n }\r\n }\r\n deleteIndex.sort((a,b)=>{return b-a});\r\n for(let i = 0 ; i < deleteIndex.length ; i++){\r\n t.movePoints.splice(deleteIndex[i],1);\r\n }\r\n if(nowMovePoints.length == 0){\r\n clearInterval(t.moveToTimer);\r\n }\r\n },10);\r\n }\r\n //点位移动动画效果\r\n moveTo(id,lnglat,delay,autoRotation,urlright,urlleft){\r\n delay = delay || 3;\r\n let t = this,timer = 10;\r\n delay = eval(delay)*1000;\r\n let count = delay/timer,\r\n gc = this.GM.getGraphic(id);\r\n let s = gc.geometry,e = new esri.geometry.Point(lnglat[0],lnglat[1]);\r\n if(t.equalsPoint(s,e)){\r\n return false;\r\n }else{\r\n let ddeg = 0,url= null;\r\n //计算角度,旋转\r\n if(autoRotation){\r\n //自己实现旋转\r\n ddeg = t.rotateDeg(gc.geometry,lnglat);\r\n if(urlleft && (ddeg < -90 && ddeg > -270)){\r\n ddeg += 180;\r\n url = urlleft;\r\n }else{\r\n url = urlright;\r\n }\r\n gc.symbol.setUrl(url);\r\n gc.symbol.setAngle(ddeg);\r\n gc._graphicsLayer.refresh();\r\n }\r\n //拆分延迟移动定位\r\n let rx = (e.x - s.x)/count, ry = (e.y - s.y)/count;\r\n let isHave = false;\r\n for(let i = 0 ; i < t.movePoints.length ;i++){\r\n if(t.movePoints[i].id == id){\r\n t.movePoints.splice(i,1,{\r\n id,rx,ry,\r\n waitTime: 0,\r\n deleteTime: delay\r\n });\r\n isHave = true;\r\n }\r\n }\r\n if(!isHave){\r\n t.movePoints.push({\r\n id,rx,ry,\r\n waitTime: 0,\r\n deleteTime: delay\r\n });\r\n }\r\n }\r\n }\r\n //点位角度旋转(以指向东(右)为0°)\r\n rotateDeg(sp,ep){\r\n let t = this;\r\n let spLngLat = sp;\r\n if(Array.isArray(sp)){\r\n spLngLat = new esri.geometry.Point(sp[0],sp[1]);\r\n }\r\n let s = t.state.gis.toScreen(spLngLat),\r\n //获取当前点位的经纬度\r\n e = t.state.gis.toScreen(new esri.geometry.Point(ep[0],ep[1])),\r\n deg = 0;\r\n if(e.x != s.x){\r\n var tan = (e.y - s.y)/(e.x - s.x),\r\n atan = Math.atan(tan);\r\n deg = atan*360/(2*Math.PI);\r\n //degree correction;\r\n if(e.x < s.x){\r\n deg = -deg + 90 + 90;\r\n\r\n } else {\r\n deg = -deg;\r\n }\r\n deg = -deg;\r\n }else {\r\n var disy = e.y- s.y ;\r\n var bias = 0;\r\n if(disy > 0)\r\n bias=-1;\r\n else\r\n bias = 1;\r\n if(disy == 0)\r\n bias = 0; \r\n deg = -bias * 90;\r\n }\r\n return deg;\r\n }\r\n //对比对象数据是否相等\r\n deepEqual(a,b){\r\n return Immutable.is(Immutable.fromJS(a),Immutable.fromJS(b));\r\n }\r\n //数据解析(分析,新增,更新,删除对应的数据)\r\n dataMatch(oldData,newData,type){\r\n let onlyOldData = Set(oldData).subtract(Set(newData)).toJS();\r\n let onlyNewData = Set(newData).subtract(Set(oldData)).toJS();\r\n let onlyOldIDs = onlyOldData.map(item=>item[type]);\r\n let onlyNewIDs = onlyNewData.map(item=>item[type]);\r\n let updateDataIDs = Set(onlyOldIDs).intersect(Set(onlyNewIDs)).toJS();\r\n let updatedData = onlyNewData.filter(item=> updateDataIDs.indexOf(item[type])>-1);\r\n let replacedData = onlyOldData.filter(item=> updateDataIDs.indexOf(item[type])>-1);\r\n let deletedDataIDs = onlyOldIDs.filter(oldID=>updateDataIDs.indexOf(oldID)==-1);\r\n let addedData = onlyNewData.filter(item=>updateDataIDs.indexOf(item[type])==-1)\r\n \r\n return {deletedDataIDs,addedData,updatedData,replacedData};\r\n }\r\n //处理需要增加图元的数据(避免意外问题)\r\n dealAdd(ary,ids){\r\n let ads = [], otherupds = [];\r\n for(let i = 0 ; i < ary.length ; i++){\r\n if(ids.indexOf(ary[i].id) > -1){\r\n otherupds.push(ary[i]);\r\n }else{\r\n ads.push(ary[i]);\r\n }\r\n }\r\n return {ads,otherupds};\r\n }\r\n //处理需要更新图元的数据(避免意外问题)\r\n dealUpdate(ary,ids){\r\n let upds = [], otherads = [];\r\n for(let i = 0 ; i < ary.length ; i++){\r\n if(ids.indexOf(ary[i].id) > -1){\r\n upds.push(ary[i]);\r\n }else{\r\n otherads.push(ary[i]);\r\n }\r\n }\r\n return {upds,otherads};\r\n }\r\n //渲染\r\n render(){\r\n let t = this;\r\n let _map = this.props;\r\n return (\r\n <div id={_map.mapId} style={{width:'100%',height:'100%',backgroundColor: '#f1f1f1'}}></div>\r\n )\r\n }\r\n\r\n //初始化\r\n componentDidMount(){\r\n let t = this;\r\n t.loadMapComplete.then(()=>{\r\n t.init();\r\n }) \r\n }\r\n //已加载组件,收到新的参数时调用\r\n componentWillReceiveProps(nextProps) {\r\n let t = this;\r\n t.grwkid = nextProps.grwkid || 4326;\r\n //新参数处理方法\r\n let initData = ()=>{\r\n let t = this;\r\n //点/线旧数据\r\n let {pointIds,lineIds,polygonIds,circleIds,drawIds} = t.state;\r\n let {point,polyline,polygon,circle,rectangle} = drawIds;\r\n //点/线新数据\r\n let {\r\n mapPoints = [],mapLines = [],mapPolygons = [],mapCircles = [],customizedBoundary =[],\r\n isOpenTrafficInfo,boundaryName,heatMapData,\r\n mapVisiblePoints,setVisiblePoints,\r\n setCenter,mapCenter,\r\n setZoomLevel,mapZoomLevel,\r\n setCluster,mapCluster,\r\n isRangingTool,mapRangingTool,\r\n isRemove,mapRemove,\r\n mapDraw,isDraw,isCloseDraw,\r\n editGraphicId,isDoEdit,isEndEdit,\r\n mapPointCollection,isclearAllPointCollection,\r\n isSetAreaRestriction,areaRestriction,isClearAreaRestriction,\r\n isClearAll\r\n } = nextProps;\r\n // 等待地图加载\r\n if(!t.state.mapCreated)return;\r\n /*添加海量点*/\r\n if(mapPointCollection instanceof Array && t.props.mapPointCollection instanceof Array && !t.deepEqual(mapPointCollection,t.props.mapPointCollection)){\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(t.props.mapPointCollection,mapPointCollection,'id');\r\n t.clearPointCollection(deletedDataIDs);\r\n t.addPointCollection(addedData);\r\n t.updatePointCollection(updatedData);\r\n }\r\n if((typeof(isclearAllPointCollection) == 'boolean' && isclearAllPointCollection) || (isclearAllPointCollection && isclearAllPointCollection !== t.props.isclearAllPointCollection)){\r\n t.clearAllPointCollection();\r\n }\r\n /*点数据处理\r\n pointData[2]相同的点,执行刷新\r\n pointData[1]的数据在idsForGraphicId中不存在的,执行新增\r\n pointData[0]数据中多余的id,执行删除\r\n */\r\n if(mapPoints instanceof Array && t.props.mapPoints instanceof Array && !t.deepEqual(mapPoints,t.props.mapPoints)){\r\n let oldMapPoints = t.props.mapPoints;\r\n let newMapPoints = mapPoints;\r\n //过滤编辑的图元\r\n if(!!t.editId){\r\n oldMapPoints = t.props.mapPoints.filter((item)=>{return item.id !== editGraphicId});\r\n newMapPoints = mapPoints.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapPoints,newMapPoints,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...pointIds,...point]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...pointIds,...point]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'point');\r\n }\r\n //增加\r\n t.addPoint([...ads,...otherads]);\r\n //更新\r\n t.updatePoint([...upds,...otherupds]);\r\n }\r\n /*\r\n 面数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapPolygons instanceof Array && t.props.mapPolygons instanceof Array && !t.deepEqual(mapPolygons,t.props.mapPolygons)){\r\n let oldMapPolygons = t.props.mapPolygons;\r\n let newMapPolygons = mapPolygons;\r\n if(!!t.editId){\r\n oldMapPolygons = t.props.mapPolygons.filter((item)=>{return item.id !== editGraphicId});\r\n newMapPolygons = mapPolygons.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapPolygons,newMapPolygons,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...rectangle,...polygon,...polygonIds]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...rectangle,...polygon,...polygonIds]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'polygon');\r\n }\r\n //增加\r\n t.addPolygon([...ads,...otherads]);\r\n //更新\r\n t.updatePolygon([...upds,...otherupds]);\r\n }\r\n /*\r\n 圆数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapCircles instanceof Array && t.props.mapCircles instanceof Array && !t.deepEqual(mapCircles,t.props.mapCircles)){\r\n let oldMapCircles = t.props.mapCircles;\r\n let newMapCircles = mapCircles;\r\n if(!!t.editId){\r\n oldMapCircles = t.props.mapCircles.filter((item)=>{return item.id !== editGraphicId});\r\n newMapCircles = mapCircles.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapCircles,newMapCircles,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...circleIds,...circle]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...circleIds,...circle]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'circle');\r\n }\r\n //增加\r\n t.addCircle([...ads,...otherads]);\r\n //更新\r\n t.updateCircle([...upds,...otherupds]);\r\n }\r\n /*\r\n 线数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapLines instanceof Array && t.props.mapLines instanceof Array && !t.deepEqual(mapLines,t.props.mapLines)){\r\n let oldMapLines = t.props.mapLines;\r\n let newMapLines = mapLines;\r\n if(!!t.editId){\r\n oldMapLines = t.props.mapLines.filter((item)=>{return item.id !== editGraphicId});\r\n newMapLines = mapLines.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapLines,newMapLines,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...lineIds,...polyline]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...lineIds,...polyline]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'line');\r\n }\r\n //增加\r\n t.addLine([...ads,...otherads]);\r\n //更新\r\n t.updateLine([...upds,...otherupds]); \r\n }\r\n //画其他特例线专用\r\n if(customizedBoundary instanceof Array && t.props.customizedBoundary instanceof Array && !t.deepEqual(customizedBoundary,t.props.customizedBoundary)){\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(t.props.customizedBoundary,customizedBoundary,'id');\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'line');\r\n }\r\n t.addLine(addedData);\r\n t.updateLine(updatedData); \r\n }\r\n //绘制边界线\r\n // if(boundaryName instanceof Array && !t.deepEqual(boundaryName,t.props.boundaryName)){\r\n // let newBDName = Set(boundaryName);\r\n // let oldBDName = Set(t.props.boundaryName);\r\n // let removedBoundaryName = oldBDName.subtract(newBDName).toJS();\r\n // let addedBoundaryName = newBDName.subtract(oldBDName).toJS();\r\n // t.removeBaiduBoundary(removedBoundaryName);\r\n // t.addBaiduBoundary(addedBoundaryName);\r\n // }\r\n // 获取热力图\r\n if(heatMapData && !t.deepEqual(heatMapData,t.props.heatMapData)){\r\n t.heatMapOverlay(heatMapData);\r\n }\r\n //图元编辑调用\r\n if((typeof(isDoEdit) == 'boolean' && isDoEdit) || (isDoEdit && isDoEdit !== t.props.isDoEdit)){\r\n t.doEdit(editGraphicId);\r\n }\r\n //关闭图元编辑\r\n if((typeof(isEndEdit) == 'boolean' && isEndEdit) || (isEndEdit && isEndEdit !== t.props.isEndEdit)){\r\n t.endEdit();\r\n }\r\n //开启图元绘制\r\n if((typeof(isDraw) == 'boolean' && isDraw) || (isDraw && isDraw !== t.props.isDraw)){\r\n t.draw(mapDraw);\r\n }\r\n //关闭图元绘制\r\n if((typeof(isCloseDraw) == 'boolean' && isCloseDraw) || (isCloseDraw && isCloseDraw !== t.props.isCloseDraw)){\r\n t.closeDraw();\r\n }\r\n //设置中心点\r\n if((typeof(setCenter) == 'boolean' && setCenter) || (setCenter && setCenter !== t.props.setCenter)){\r\n t.setCenter(mapCenter);\r\n }\r\n //设置点聚合\r\n if((typeof(setCluster) == 'boolean' && setCluster) || (setCluster && setCluster !== t.props.setCluster)){\r\n t.cluster(mapCluster);\r\n }\r\n //设置比例尺\r\n if((typeof(setZoomLevel) == 'boolean' && setZoomLevel) || (setZoomLevel && setZoomLevel !== t.props.setZoomLevel)){\r\n t.setZoomLevel(mapZoomLevel);\r\n }\r\n //设置最优视野\r\n if((typeof(setVisiblePoints) == 'boolean' && setVisiblePoints) || (setVisiblePoints && setVisiblePoints !== t.props.setVisiblePoints)){\r\n t.setVisiblePoints(mapVisiblePoints);\r\n }\r\n //测距工具调用\r\n if((typeof(isRangingTool) == 'boolean' && isRangingTool) || (isRangingTool && isRangingTool !== t.props.isRangingTool)){\r\n t.vtxRangingTool(mapRangingTool);\r\n }\r\n // //开关路况\r\n // if(isOpenTrafficInfo){\r\n // t.openTrafficInfo();\r\n // }else{\r\n // t.hideTrafficInfo();\r\n // }\r\n //设置区域限制\r\n if((typeof(isSetAreaRestriction) == 'boolean' && isSetAreaRestriction) \r\n || (isSetAreaRestriction && isSetAreaRestriction !== t.props.isSetAreaRestriction) \r\n && areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]){\r\n t.setAreaRestriction(areaRestriction);\r\n }\r\n //关闭区域限制\r\n if((typeof(isClearAreaRestriction) == 'boolean' && isClearAreaRestriction) || (isClearAreaRestriction && isClearAreaRestriction !== t.props.isClearAreaRestriction)){\r\n t.clearAreaRestriction();\r\n }\r\n //清空地图\r\n if((typeof(isClearAll) == 'boolean' && isClearAll) || (isClearAll && isClearAll !== t.props.isClearAll)){\r\n t.clearAll();\r\n }\r\n //删除指定图元\r\n if((typeof(isRemove) == 'boolean' && isRemove) || (isRemove && isRemove !== t.props.isRemove)){\r\n mapRemove.map((item,index)=>{\r\n t.removeGraphic(item.id,item.type);\r\n });\r\n }\r\n }\r\n //graphics对象存在 直接处理数据,不存在 延迟处理数据\r\n if(!t.state.gis || !t.state.gis.graphics){\r\n if(t.loadTimer){\r\n clearTimeout(t.loadTimer);\r\n }\r\n t.loadTimer = setTimeout(()=>{\r\n initData();\r\n },300);\r\n }else{\r\n initData();\r\n }\r\n }\r\n componentWillUnmount() {\r\n //关闭moveTo定时\r\n let t = this;\r\n if(t.moveToTimer){\r\n clearInterval(t.moveToTimer);\r\n }\r\n //关闭animation定时\r\n for(let j in t.animTimer){\r\n if(t.animTimer[j]){\r\n clearInterval(t.animTimer[j]);\r\n }\r\n }\r\n window.VtxMap[t.state.mapId]= null;\r\n }\r\n}\r\nexport default ArcgisMap;"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AAGA,IAAAE,UAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEA,IAAAG,SAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAAsC,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAAA,SAAAE,2BAAAC,CAAA,EAAAC,cAAA,QAAAC,EAAA,UAAAC,MAAA,oBAAAH,CAAA,CAAAG,MAAA,CAAAC,QAAA,KAAAJ,CAAA,qBAAAE,EAAA,QAAAG,KAAA,CAAAC,OAAA,CAAAN,CAAA,MAAAE,EAAA,GAAAK,2BAAA,CAAAP,CAAA,MAAAC,cAAA,IAAAD,CAAA,WAAAA,CAAA,CAAAQ,MAAA,qBAAAN,EAAA,EAAAF,CAAA,GAAAE,EAAA,MAAAO,CAAA,UAAAC,CAAA,YAAAA,EAAA,eAAAC,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAA,EAAA,QAAAH,CAAA,IAAAT,CAAA,CAAAQ,MAAA,WAAAK,IAAA,mBAAAA,IAAA,SAAAC,KAAA,EAAAd,CAAA,CAAAS,CAAA,UAAAM,CAAA,WAAAA,EAAAC,EAAA,UAAAA,EAAA,KAAAC,CAAA,EAAAP,CAAA,gBAAAQ,SAAA,iJAAAC,gBAAA,SAAAC,MAAA,UAAAC,GAAA,WAAAV,CAAA,WAAAA,EAAA,IAAAT,EAAA,GAAAA,EAAA,CAAAoB,IAAA,CAAAtB,CAAA,MAAAY,CAAA,WAAAA,EAAA,QAAAW,IAAA,GAAArB,EAAA,CAAAsB,IAAA,IAAAL,gBAAA,GAAAI,IAAA,CAAAV,IAAA,SAAAU,IAAA,KAAAR,CAAA,WAAAA,EAAAU,GAAA,IAAAL,MAAA,SAAAC,GAAA,GAAAI,GAAA,KAAAR,CAAA,WAAAA,EAAA,eAAAE,gBAAA,IAAAjB,EAAA,oBAAAA,EAAA,8BAAAkB,MAAA,QAAAC,GAAA;AAAA,SAAAK,QAAA1B,CAAA,sCAAA0B,OAAA,wBAAAvB,MAAA,uBAAAA,MAAA,CAAAC,QAAA,aAAAJ,CAAA,kBAAAA,CAAA,gBAAAA,CAAA,WAAAA,CAAA,yBAAAG,MAAA,IAAAH,CAAA,CAAA2B,WAAA,KAAAxB,MAAA,IAAAH,CAAA,KAAAG,MAAA,CAAAyB,SAAA,qBAAA5B,CAAA,KAAA0B,OAAA,CAAA1B,CAAA;AAAA,SAAA6B,QAAAd,CAAA,EAAAe,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAlB,CAAA,OAAAiB,MAAA,CAAAE,qBAAA,QAAAlC,CAAA,GAAAgC,MAAA,CAAAE,qBAAA,CAAAnB,CAAA,GAAAe,CAAA,KAAA9B,CAAA,GAAAA,CAAA,CAAAmC,MAAA,WAAAL,CAAA,WAAAE,MAAA,CAAAI,wBAAA,CAAArB,CAAA,EAAAe,CAAA,EAAAO,UAAA,OAAAN,CAAA,CAAAO,IAAA,CAAAC,KAAA,CAAAR,CAAA,EAAA/B,CAAA,YAAA+B,CAAA;AAAA,SAAAS,cAAAzB,CAAA,aAAAe,CAAA,MAAAA,CAAA,GAAAW,SAAA,CAAAjC,MAAA,EAAAsB,CAAA,UAAAC,CAAA,WAAAU,SAAA,CAAAX,CAAA,IAAAW,SAAA,CAAAX,CAAA,QAAAA,CAAA,OAAAD,OAAA,CAAAG,MAAA,CAAAD,CAAA,OAAAW,OAAA,WAAAZ,CAAA,IAAAa,eAAA,CAAA5B,CAAA,EAAAe,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAY,yBAAA,GAAAZ,MAAA,CAAAa,gBAAA,CAAA9B,CAAA,EAAAiB,MAAA,CAAAY,yBAAA,CAAAb,CAAA,KAAAF,OAAA,CAAAG,MAAA,CAAAD,CAAA,GAAAW,OAAA,WAAAZ,CAAA,IAAAE,MAAA,CAAAc,cAAA,CAAA/B,CAAA,EAAAe,CAAA,EAAAE,MAAA,CAAAI,wBAAA,CAAAL,CAAA,EAAAD,CAAA,iBAAAf,CAAA;AAAA,SAAA4B,gBAAA9C,GAAA,EAAAkD,GAAA,EAAAjC,KAAA,IAAAiC,GAAA,GAAAC,cAAA,CAAAD,GAAA,OAAAA,GAAA,IAAAlD,GAAA,IAAAmC,MAAA,CAAAc,cAAA,CAAAjD,GAAA,EAAAkD,GAAA,IAAAjC,KAAA,EAAAA,KAAA,EAAAuB,UAAA,QAAAY,YAAA,QAAAC,QAAA,oBAAArD,GAAA,CAAAkD,GAAA,IAAAjC,KAAA,WAAAjB,GAAA;AAAA,SAAAsD,mBAAAC,GAAA,WAAAC,kBAAA,CAAAD,GAAA,KAAAE,gBAAA,CAAAF,GAAA,KAAA7C,2BAAA,CAAA6C,GAAA,KAAAG,kBAAA;AAAA,SAAAA,mBAAA,cAAArC,SAAA;AAAA,SAAAX,4BAAAP,CAAA,EAAAwD,MAAA,SAAAxD,CAAA,qBAAAA,CAAA,sBAAAyD,iBAAA,CAAAzD,CAAA,EAAAwD,MAAA,OAAA5C,CAAA,GAAAoB,MAAA,CAAAJ,SAAA,CAAA8B,QAAA,CAAApC,IAAA,CAAAtB,CAAA,EAAA2D,KAAA,aAAA/C,CAAA,iBAAAZ,CAAA,CAAA2B,WAAA,EAAAf,CAAA,GAAAZ,CAAA,CAAA2B,WAAA,CAAAiC,IAAA,MAAAhD,CAAA,cAAAA,CAAA,mBAAAP,KAAA,CAAAwD,IAAA,CAAA7D,CAAA,OAAAY,CAAA,+DAAAkD,IAAA,CAAAlD,CAAA,UAAA6C,iBAAA,CAAAzD,CAAA,EAAAwD,MAAA;AAAA,SAAAF,iBAAAS,IAAA,eAAA5D,MAAA,oBAAA4D,IAAA,CAAA5D,MAAA,CAAAC,QAAA,aAAA2D,IAAA,+BAAA1D,KAAA,CAAAwD,IAAA,CAAAE,IAAA;AAAA,SAAAV,mBAAAD,GAAA,QAAA/C,KAAA,CAAAC,OAAA,CAAA8C,GAAA,UAAAK,iBAAA,CAAAL,GAAA;AAAA,SAAAK,kBAAAL,GAAA,EAAAY,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAZ,GAAA,CAAA5C,MAAA,EAAAwD,GAAA,GAAAZ,GAAA,CAAA5C,MAAA,WAAAC,CAAA,MAAAwD,IAAA,OAAA5D,KAAA,CAAA2D,GAAA,GAAAvD,CAAA,GAAAuD,GAAA,EAAAvD,CAAA,IAAAwD,IAAA,CAAAxD,CAAA,IAAA2C,GAAA,CAAA3C,CAAA,UAAAwD,IAAA;AAAA,SAAAC,gBAAAC,QAAA,EAAAC,WAAA,UAAAD,QAAA,YAAAC,WAAA,eAAAlD,SAAA;AAAA,SAAAmD,kBAAAC,MAAA,EAAAC,KAAA,aAAA9D,CAAA,MAAAA,CAAA,GAAA8D,KAAA,CAAA/D,MAAA,EAAAC,CAAA,UAAA+D,UAAA,GAAAD,KAAA,CAAA9D,CAAA,GAAA+D,UAAA,CAAAnC,UAAA,GAAAmC,UAAA,CAAAnC,UAAA,WAAAmC,UAAA,CAAAvB,YAAA,wBAAAuB,UAAA,EAAAA,UAAA,CAAAtB,QAAA,SAAAlB,MAAA,CAAAc,cAAA,CAAAwB,MAAA,EAAAtB,cAAA,CAAAwB,UAAA,CAAAzB,GAAA,GAAAyB,UAAA;AAAA,SAAAC,aAAAL,WAAA,EAAAM,UAAA,EAAAC,WAAA,QAAAD,UAAA,EAAAL,iBAAA,CAAAD,WAAA,CAAAxC,SAAA,EAAA8C,UAAA,OAAAC,WAAA,EAAAN,iBAAA,CAAAD,WAAA,EAAAO,WAAA,GAAA3C,MAAA,CAAAc,cAAA,CAAAsB,WAAA,iBAAAlB,QAAA,mBAAAkB,WAAA;AAAA,SAAApB,eAAA4B,GAAA,QAAA7B,GAAA,GAAA8B,YAAA,CAAAD,GAAA,oBAAAlD,OAAA,CAAAqB,GAAA,iBAAAA,GAAA,GAAA+B,MAAA,CAAA/B,GAAA;AAAA,SAAA8B,aAAAE,KAAA,EAAAC,IAAA,QAAAtD,OAAA,CAAAqD,KAAA,kBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAA5E,MAAA,CAAA+E,WAAA,OAAAD,IAAA,KAAAE,SAAA,QAAAC,GAAA,GAAAH,IAAA,CAAA3D,IAAA,CAAAyD,KAAA,EAAAC,IAAA,oBAAAtD,OAAA,CAAA0D,GAAA,uBAAAA,GAAA,YAAAlE,SAAA,4DAAA8D,IAAA,gBAAAF,MAAA,GAAAO,MAAA,EAAAN,KAAA;AAAA,SAAAO,UAAAC,QAAA,EAAAC,UAAA,eAAAA,UAAA,mBAAAA,UAAA,uBAAAtE,SAAA,0DAAAqE,QAAA,CAAA3D,SAAA,GAAAI,MAAA,CAAAyD,MAAA,CAAAD,UAAA,IAAAA,UAAA,CAAA5D,SAAA,IAAAD,WAAA,IAAAb,KAAA,EAAAyE,QAAA,EAAArC,QAAA,QAAAD,YAAA,aAAAjB,MAAA,CAAAc,cAAA,CAAAyC,QAAA,iBAAArC,QAAA,gBAAAsC,UAAA,EAAAE,eAAA,CAAAH,QAAA,EAAAC,UAAA;AAAA,SAAAE,gBAAA1F,CAAA,EAAA2F,CAAA,IAAAD,eAAA,GAAA1D,MAAA,CAAA4D,cAAA,GAAA5D,MAAA,CAAA4D,cAAA,CAAAC,IAAA,cAAAH,gBAAA1F,CAAA,EAAA2F,CAAA,IAAA3F,CAAA,CAAA8F,SAAA,GAAAH,CAAA,SAAA3F,CAAA,YAAA0F,eAAA,CAAA1F,CAAA,EAAA2F,CAAA;AAAA,SAAAI,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,GAAAC,eAAA,CAAAL,OAAA,GAAAM,MAAA,MAAAL,yBAAA,QAAAM,SAAA,GAAAF,eAAA,OAAA1E,WAAA,EAAA2E,MAAA,GAAAE,OAAA,CAAAC,SAAA,CAAAL,KAAA,EAAA3D,SAAA,EAAA8D,SAAA,YAAAD,MAAA,GAAAF,KAAA,CAAA7D,KAAA,OAAAE,SAAA,YAAAiE,0BAAA,OAAAJ,MAAA;AAAA,SAAAI,2BAAAC,IAAA,EAAArF,IAAA,QAAAA,IAAA,KAAAI,OAAA,CAAAJ,IAAA,yBAAAA,IAAA,2BAAAA,IAAA,aAAAA,IAAA,yBAAAJ,SAAA,uEAAA0F,sBAAA,CAAAD,IAAA;AAAA,SAAAC,uBAAAD,IAAA,QAAAA,IAAA,yBAAAE,cAAA,wEAAAF,IAAA;AAAA,SAAAT,0BAAA,eAAAM,OAAA,qBAAAA,OAAA,CAAAC,SAAA,oBAAAD,OAAA,CAAAC,SAAA,CAAAK,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAApF,SAAA,CAAAqF,OAAA,CAAA3F,IAAA,CAAAkF,OAAA,CAAAC,SAAA,CAAAO,OAAA,8CAAAjG,CAAA;AAAA,SAAAsF,gBAAArG,CAAA,IAAAqG,eAAA,GAAArE,MAAA,CAAA4D,cAAA,GAAA5D,MAAA,CAAAkF,cAAA,CAAArB,IAAA,cAAAQ,gBAAArG,CAAA,WAAAA,CAAA,CAAA8F,SAAA,IAAA9D,MAAA,CAAAkF,cAAA,CAAAlH,CAAA,aAAAqG,eAAA,CAAArG,CAAA,KADtC;AAEA,IAAOmH,GAAG,GAAIC,qBAAS,CAAhBD,GAAG;AAAc,IAClBE,SAAS,0BAAAC,gBAAA;EAAAhC,SAAA,CAAA+B,SAAA,EAAAC,gBAAA;EAAA,IAAAC,MAAA,GAAAxB,YAAA,CAAAsB,SAAA;EACX,SAAAA,UAAY9C,KAAK,EAAC;IAAA,IAAAiD,KAAA;IAAAtD,eAAA,OAAAmD,SAAA;IACdG,KAAA,GAAAD,MAAA,CAAAjG,IAAA,OAAMiD,KAAK;IACXiD,KAAA,CAAKC,MAAM,GAAG,IAAI,CAAC;IACnBD,KAAA,CAAKE,IAAI,GAAG,CAACC,KAAK,CAACC,QAAQ,CAACrD,KAAK,CAACmD,IAAI,CAAC,CAAC,GAACnD,KAAK,CAACmD,IAAI,GAACE,QAAQ,CAACrD,KAAK,CAACmD,IAAI,CAAC,KAAK,IAAI,CAAC;IAClFF,KAAA,CAAKK,OAAO,GAAGF,KAAK,CAACC,QAAQ,CAACrD,KAAK,CAACmD,IAAI,CAAC,CAAC,GAAC,KAAK,GAAC,MAAM;IACvDF,KAAA,CAAKM,cAAc,GAAG,EAAE,CAAC;IACzBN,KAAA,CAAKO,YAAY,GAAG,sBAAsB,CAAC;IAC3CP,KAAA,CAAKQ,iBAAiB,GAAG,+BAA+B,CAAC;IACzDR,KAAA,CAAKS,KAAK,GAAG,CAAC,CAAC,CAAC;IAChBT,KAAA,CAAKU,UAAU,GAAG;MAACC,CAAC,EAAE,CAAC;MAACC,CAAC,EAAE;IAAC,CAAC,CAAC;IAC9BZ,KAAA,CAAKa,EAAE,GAAG,IAAIC,8BAAa,CAAC,CAAC,CAAC;IAC9Bd,KAAA,CAAKe,cAAc,GAAGA,+BAAc;IACpCf,KAAA,CAAKgB,SAAS,GAAG,IAAI,CAAC;IACtBhB,KAAA,CAAKiB,SAAS,GAAG,CAAC,CAAC,CAAC;IACpBjB,KAAA,CAAKkB,SAAS,GAAG,CAAC,CAAC,CAAC;IACpBlB,KAAA,CAAKmB,WAAW,GAAG,IAAI,CAAC;IACxBnB,KAAA,CAAKoB,WAAW,GAAG,IAAI,CAAC;IACxBpB,KAAA,CAAKqB,SAAS,GAAG,CAAC,CAAC,CAAC;IACpBrB,KAAA,CAAKsB,WAAW,GAAG,IAAI,CAAC;IACxBtB,KAAA,CAAKuB,YAAY,GAAG,IAAI,CAAC;IACzBvB,KAAA,CAAKwB,MAAM,GAAG,EAAE,CAAC;IACjBxB,KAAA,CAAKyB,YAAY,GAAG,KAAK,CAAC;IAC1B;IACA;IACAzB,KAAA,CAAK0B,gBAAgB,GAAG;MAACf,CAAC,EAAC,CAAC;MAACC,CAAC,EAAC,CAAC;MAACe,EAAE,EAAC,CAAC;MAACC,EAAE,EAAC,CAAC;MAACC,OAAO,EAAC;IAAK,CAAC;IACzD7B,KAAA,CAAK8B,OAAO,GAAG,IAAI,CAAC;IACpB9B,KAAA,CAAK+B,cAAc,GAAG,EAAE,CAAC;IACzB/B,KAAA,CAAKgC,SAAS,GAAG,EAAE,CAAC;IACpBhC,KAAA,CAAKiC,SAAS,GAAG,EAAE,CAAC;IACpBjC,KAAA,CAAKkC,UAAU,GAAG,EAAE,CAAC;IACrBlC,KAAA,CAAKmC,eAAe,GAAG,IAAI,CAAC;IAC5BnC,KAAA,CAAKoC,UAAU,GAAG,EAAE;IACpB;IACApC,KAAA,CAAKqC,WAAW,GAAG;MACfC,SAAS,EAAE,KAAK;MAAC;MACjBC,IAAI,EAAE,CAAC,CAAC;MAAC;MACTC,MAAM,EAAE,EAAE;MAAC;MACXC,QAAQ,EAAE,CAAC;MAAC;MACZC,cAAc,EAAE,IAAI;IACxB,CAAC;IACD1C,KAAA,CAAK2C,YAAY,GAAG,CAAC,CAAC,CAAC;IACvB3C,KAAA,CAAK4C,KAAK,GAAG;MACTC,GAAG,EAAE,IAAI;MAAC;MACVC,KAAK,EAAE/F,KAAK,CAAC+F,KAAK;MAClBC,UAAU,EAAE,KAAK;MACjBC,QAAQ,EAAC,EAAE;MAAE;MACbC,OAAO,EAAC,EAAE;MAAE;MACZC,UAAU,EAAC,EAAE;MAAE;MACfC,SAAS,EAAC,EAAE;MAAE;MACd;MACAC,WAAW,EAAE,EAAE;MAAC;MAChBC,YAAY,EAAE,EAAE;MAAC;MACjBC,OAAO,EAAE;QAAC;QACNC,KAAK,EAAE,EAAE;QACTC,QAAQ,EAAE,EAAE;QACZC,OAAO,EAAE,EAAE;QACXC,MAAM,EAAE,EAAE;QACVC,SAAS,EAAE;MACf;IACJ,CAAC;IACD3D,KAAA,CAAK4D,SAAS,CAAC,CAAC;IAAC,OAAA5D,KAAA;EACrB;EACA;EAAA/C,YAAA,CAAA4C,SAAA;IAAAtE,GAAA;IAAAjC,KAAA,EACA,SAAAsK,UAAA,EAAW;MACP,IAAI,CAACC,eAAe,GAAG,IAAIC,OAAO,CAAC,UAACC,OAAO,EAACC,MAAM,EAAG;QACjD,IAAGC,MAAM,CAACC,IAAI,EAAC;UACXH,OAAO,CAACE,MAAM,CAACC,IAAI,CAAC;QACxB,CAAC,MACG;UACA;UACA;UACAC,CAAC,CAACC,SAAS,IAAAC,MAAA,CAAIC,oBAAS,CAACC,eAAe,qDAAiD,YAAI;YACzF,IAAIC,OAAO,GAAG,IAAIV,OAAO,CAAC,UAACC,OAAO,EAACC,MAAM,EAAG;cACxCG,CAAC,CAACC,SAAS,IAAAC,MAAA,CAAIC,oBAAS,CAACG,YAAY,qBAAiB,YAAI;gBACtDV,OAAO,CAAC,CAAC;cACb,CAAC,CAAC;YACN,CAAC,CAAC;YACF,IAAIW,eAAe,GAAG,IAAIZ,OAAO,CAAC,UAACC,OAAO,EAACC,MAAM,EAAG;cAChDG,CAAC,CAACC,SAAS,IAAAC,MAAA,CAAIC,oBAAS,CAACG,YAAY,2BAAuB,YAAI;gBAC5DV,OAAO,CAAC,CAAC;cACb,CAAC,CAAC;YACN,CAAC,CAAC;YACFD,OAAO,CAACa,GAAG,CAAC,CAACH,OAAO,EAACE,eAAe,CAAC,CAAC,CAACE,IAAI,CAAC,YAAI;cAC5C;cACAX,MAAM,CAAChM,OAAO,CAAC,CACX,UAAU,EAAE,wCAAwC,EAAE,SAAS,EAC/D,qBAAqB,EAAC,iCAAiC,EAAC,YAAY,EACpE,cAAc,EAAC,eAAe,EAAC,oBAAoB,EAAC,kCAAkC,EACtF,yBAAyB,EAAC,+BAA+B,EAAC,oBAAoB,EAC9E,uBAAuB,EAAC,sBAAsB,EAAC,2BAA2B,EAC1E,wBAAwB,EAAC,+BAA+B,EAAC,sBAAsB,EAC/E,sBAAsB,EAAE,uBAAuB,EAAC,0BAA0B,CAC7E,EAAE,UAAS4M,GAAG,EAAE;gBACbZ,MAAM,CAACC,IAAI,GAAGW,GAAG;gBACjBd,OAAO,CAACE,MAAM,CAACC,IAAI,CAAC;cACxB,CAAC,CAAC;YACN,CAAC,CAAC;UACN,CAAC,CAAC;UACF;UACAC,CAAC,CAAC,QAAQ,CAAC,CAACW,IAAI,CAAC;YAAEC,GAAG,EAAE,YAAY;YAACC,IAAI,EAAE,UAAU;YAACC,IAAI,KAAAZ,MAAA,CAAKC,oBAAS,CAACC,eAAe;UAA+E,CAAC,CAAC,CAACW,QAAQ,CAAC,MAAM,CAAC;UAC1Lf,CAAC,CAAC,QAAQ,CAAC,CAACW,IAAI,CAAC;YAAEC,GAAG,EAAE,YAAY;YAACC,IAAI,EAAE,UAAU;YAACC,IAAI,KAAAZ,MAAA,CAAKC,oBAAS,CAACC,eAAe;UAA6D,CAAC,CAAC,CAACW,QAAQ,CAAC,MAAM,CAAC;QAC5K;MACJ,CAAC,CAAC;IACN;IACA;EAAA;IAAA3J,GAAA;IAAAjC,KAAA,EACA,SAAA6L,KAAA,EAAM;MAAA,IAAAC,MAAA;MACF,IAAI7K,CAAC,GAAG,IAAI;MACZ;MACAA,CAAC,CAAC8K,SAAS,CAAC,CAAC;MACb;MACA,IAAIC,QAAQ,GAAG,SAAXA,QAAQA,CAAA,EAAO;QACf,IAAAC,QAAA,GAIIhL,CAAC,CAACwC,KAAK;UAHPyI,SAAS,GAAAD,QAAA,CAATC,SAAS;UAACC,QAAQ,GAAAF,QAAA,CAARE,QAAQ;UAACC,WAAW,GAAAH,QAAA,CAAXG,WAAW;UAACC,UAAU,GAAAJ,QAAA,CAAVI,UAAU;UACzCC,gBAAgB,GAAAL,QAAA,CAAhBK,gBAAgB;UAACC,UAAU,GAAAN,QAAA,CAAVM,UAAU;UAACC,YAAY,GAAAP,QAAA,CAAZO,YAAY;UACxCC,iBAAiB,GAAAR,QAAA,CAAjBQ,iBAAiB;UAACC,kBAAkB,GAAAT,QAAA,CAAlBS,kBAAkB;UAAC7D,eAAe,GAAAoD,QAAA,CAAfpD,eAAe;QAExD,IAAA8D,SAAA,GAAoD1L,CAAC,CAACwC,KAAK;UAAtDmJ,YAAY,GAAAD,SAAA,CAAZC,YAAY;UAACC,WAAW,GAAAF,SAAA,CAAXE,WAAW;UAACC,kBAAkB,GAAAH,SAAA,CAAlBG,kBAAkB;QAChD,IAAAC,QAAA,GAA2D9L,CAAC,CAACqI,KAAK;UAA7DS,YAAY,GAAAgD,QAAA,CAAZhD,YAAY;UAACL,QAAQ,GAAAqD,QAAA,CAARrD,QAAQ;UAACC,OAAO,GAAAoD,QAAA,CAAPpD,OAAO;UAACC,UAAU,GAAAmD,QAAA,CAAVnD,UAAU;UAACC,SAAS,GAAAkD,QAAA,CAATlD,SAAS;QACvD;QACA,IAAGqC,SAAS,YAAY3M,KAAK,EAAC;UAC1B0B,CAAC,CAAC+L,QAAQ,CAACd,SAAS,CAAC;QACzB;QACA;QACA,IAAGC,QAAQ,YAAY5M,KAAK,EAAC;UACzB0B,CAAC,CAACgM,OAAO,CAACd,QAAQ,CAAC;QACvB;QACA;QACA,IAAGC,WAAW,YAAY7M,KAAK,EAAC;UAC5B0B,CAAC,CAACiM,UAAU,CAACd,WAAW,CAAC;QAC7B;QACA;QACA,IAAGC,UAAU,YAAY9M,KAAK,EAAC;UAC3B0B,CAAC,CAACkM,SAAS,CAACd,UAAU,CAAC;QAC3B;QACA;QACA,IAAGpL,CAAC,CAACwC,KAAK,CAAC2J,WAAW,EAAC;UACnBnM,CAAC,CAACmM,WAAW,CAAC,CAAC;QACnB;QACA;QACA,IAAGP,WAAW,EAAC;UACX5L,CAAC,CAACoM,cAAc,CAACR,WAAW,CAAC;QACjC;QACA;QACA,IAAGN,UAAU,YAAYhN,KAAK,EAAC;UAC3B0B,CAAC,CAACqM,OAAO,CAACf,UAAU,CAAC;QACzB;QACA;QACA,IAAGG,kBAAkB,YAAYnN,KAAK,EAAC;UACnC0B,CAAC,CAACsM,kBAAkB,CAACb,kBAAkB,CAAC;QAC5C;QACA;QACA,IAAG7D,eAAe,IAAI,CAAC,CAACA,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAACA,eAAe,CAAC,CAAC,CAAC,EAAC;UAC/D5H,CAAC,CAACuM,kBAAkB,CAAC3E,eAAe,CAAC;QACzC;QACA5H,CAAC,CAACwM,QAAQ,CAAC;UACPhE,UAAU,EAAC;QACf,CAAC,CAAC;MACN,CAAC;MACD;MACA,IAAIiE,KAAK,GAAG,SAARA,KAAKA,CAAA,EAAO;QACZ;QACA,IAAIC,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAO;UAClB,KAAI,IAAIhO,CAAC,IAAIsB,CAAC,CAACkG,KAAK,EAAC;YACjB,IAAIyG,KAAK,GAAG3M,CAAC,CAACwH,cAAc,CAACoF,GAAG,CAAC,UAACC,IAAI;cAAA,OAAGA,IAAI,CAACC,EAAE;YAAA,EAAC;YACjD,IAAG9M,CAAC,CAACkG,KAAK,CAACxH,CAAC,CAAC,EAAC;cACV,IAAIqO,QAAQ,GAAG/M,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAACtO,CAAC,CAAC,CAACuO,QAAQ;cAC1C,IAAIC,EAAE,GAAGlN,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC6E,QAAQ,CAACJ,QAAQ,CAAC;cACvC;cACA;cACA,IAAG,EAAEG,EAAE,CAAC7G,CAAC,GAAG,CAAC,EAAE,IAAI6G,EAAE,CAAC9G,CAAC,GAAG,CAAC,EAAE,IAAI8G,EAAE,CAAC7G,CAAC,GAAGrG,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC8E,MAAM,IAAIF,EAAE,CAAC9G,CAAC,GAAGpG,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC+E,KAAK,CAAC,EAAC;gBACpFrN,CAAC,CAACkG,KAAK,CAACxH,CAAC,CAAC,CAAC4O,IAAI,CAACC,GAAG,CAAC;kBAChBR,QAAQ,EAAE,UAAU;kBACpBS,GAAG,EAAEN,EAAE,CAAC7G,CAAC,GAAGrG,CAAC,CAACkG,KAAK,CAACxH,CAAC,CAAC,CAAC+O,MAAM,CAACpH,CAAC,GAAGrG,CAAC,CAACmG,UAAU,CAACE,CAAC;kBAChDqH,IAAI,EAAER,EAAE,CAAC9G,CAAC,GAAGpG,CAAC,CAACkG,KAAK,CAACxH,CAAC,CAAC,CAAC+O,MAAM,CAACrH,CAAC,GAAGpG,CAAC,CAACmG,UAAU,CAACC;gBACpD,CAAC,CAAC;gBACF,IAAG,CAACpG,CAAC,CAACkG,KAAK,CAACxH,CAAC,CAAC,CAACiP,GAAG,IAAIhB,KAAK,CAACiB,OAAO,CAAClP,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC;kBACzCkL,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACgG,YAAY,CAAE,CAAC,CAAC6H,MAAM,CAAC7N,CAAC,CAACkG,KAAK,CAACxH,CAAC,CAAC,CAAC4O,IAAI,CAAC;kBAC/CtN,CAAC,CAACkG,KAAK,CAACxH,CAAC,CAAC,CAACiP,GAAG,GAAG,IAAI;gBACzB;cACJ,CAAC,MAAI;gBACD,IAAG3N,CAAC,CAACkG,KAAK,CAACxH,CAAC,CAAC,CAACiP,GAAG,IAAIhB,KAAK,CAACiB,OAAO,CAAClP,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC;kBACxCsB,CAAC,CAACkG,KAAK,CAACxH,CAAC,CAAC,CAAC4O,IAAI,CAACQ,MAAM,CAAC,CAAC;kBACxB9N,CAAC,CAACkG,KAAK,CAACxH,CAAC,CAAC,CAACiP,GAAG,GAAG,KAAK;gBAC1B;cACJ;YACJ;UACJ;QACJ,CAAC;QACD;QACA,IAAII,OAAO,GAAG,SAAVA,OAAOA,CAAA,EAAO;UACd,KAAI,IAAIrP,CAAC,GAAG,CAAC,EAAGA,CAAC,GAAGsB,CAAC,CAAC+F,cAAc,CAACtH,MAAM,EAAEC,CAAC,EAAE,EAAC;YAC7CkL,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACwC,KAAK,CAAC+F,KAAK,oBAAiB,CAAC,CAACsF,MAAM,CAAC7N,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAChN,CAAC,CAAC+F,cAAc,CAACrH,CAAC,CAAC,CAAC,CAACsP,OAAO,CAAC,CAAC,CAAC;UAChG;QACJ,CAAC;QACD;QACA,IAAIC,cAAc,GAAG,SAAjBA,cAAcA,CAAIjP,CAAC,EAACkP,MAAM,EAAG;UAC7B,IAAGlO,CAAC,CAAC8H,WAAW,CAACC,SAAS,EAAC;YACvB;YACA;YACA,IAAIoG,IAAI,GAAG,CAACnP,CAAC,CAACoP,QAAQ,CAAChI,CAAC,EAACpH,CAAC,CAACoP,QAAQ,CAAC/H,CAAC,CAAC;YACtC;YACA,IAAGrG,CAAC,CAAC8H,WAAW,CAACG,MAAM,CAACxJ,MAAM,GAAG,CAAC,EAAC;cAC/BuB,CAAC,CAAC8H,WAAW,CAACI,QAAQ,IAAI,IAAAmG,4BAAW,EAACF,IAAI,EACtC,CAACnO,CAAC,CAAC8H,WAAW,CAACG,MAAM,CAACjI,CAAC,CAAC8H,WAAW,CAACG,MAAM,CAACxJ,MAAM,GAAC,CAAC,CAAC,CAAC6P,SAAS,EAC9DtO,CAAC,CAAC8H,WAAW,CAACG,MAAM,CAACjI,CAAC,CAAC8H,WAAW,CAACG,MAAM,CAACxJ,MAAM,GAAC,CAAC,CAAC,CAAC8P,QAAQ,CAAC,EAC7DvO,CAAC,CAACqI,KAAK,CAACC,GAAG,EACXtI,CAAC,CAAC0F,MACN,CAAC;YACL,CAAC,MAAI;cACD1F,CAAC,CAAC8H,WAAW,CAACE,IAAI,CAACwG,KAAK,GAAG,EAAE;YACjC;YACAxO,CAAC,CAAC8H,WAAW,CAACE,IAAI,CAACwG,KAAK,CAACjO,IAAI,IAAAuJ,MAAA,CAAKqE,IAAI,CAAC,CAAC;YACxC;YACA,IAAIM,OAAO,GAAGzO,CAAC,CAAC8H,WAAW,CAACI,QAAQ,GAAG,CAAC,GAClClI,CAAC,CAAC8H,WAAW,CAACI,QAAQ,GAAG,IAAI,mBAAA4B,MAAA,CACpB4E,IAAI,CAACC,KAAK,CAAC3O,CAAC,CAAC8H,WAAW,CAACI,QAAQ,GAAC,EAAE,CAAC,GAAC,GAAG,oCAAA4B,MAAA,CAAW9J,CAAC,CAAC8H,WAAW,CAACI,QAAQ,WAAG,GACvF,IAAI;YACT;YACA,IAAIc,KAAK,GAAG;cACR8D,EAAE,EAAE9M,CAAC,CAAC8H,WAAW,CAACG,MAAM,CAACxJ,MAAM,GAAG,cAAc,GAACiQ,IAAI,CAACE,MAAM,CAAC,CAAC;cAC9DN,SAAS,EAAEH,IAAI,CAAC,CAAC,CAAC;cAClBI,QAAQ,EAAEJ,IAAI,CAAC,CAAC,CAAC;cACjBU,aAAa,wMAAA/E,MAAA,CAGgC2E,OAAO,yEAEnD;cACDK,MAAM,EAAE;gBACJzB,KAAK,EAAC,GAAG;gBACTD,MAAM,EAAC,EAAE;gBACT2B,cAAc,EAAE,CAAC,GAAG;gBACpBC,cAAc,EAAE,CAAC;cACrB;YACJ,CAAC;YACD;YACAhP,CAAC,CAAC+L,QAAQ,CAAC,CAAC/C,KAAK,CAAC,CAAC;YACnB;YACAhJ,CAAC,CAAC8H,WAAW,CAACG,MAAM,CAAC1H,IAAI,CAACyI,KAAK,CAAC;YAChC,IAAGhJ,CAAC,CAAC8H,WAAW,CAACE,IAAI,CAACwG,KAAK,CAAC/P,MAAM,IAAI,CAAC,EAAC;cACpC;cACAuB,CAAC,CAAC8H,WAAW,CAACE,IAAI,GAAG;gBACjB8E,EAAE,EAAE,iBAAiB,GAAC4B,IAAI,CAACE,MAAM,CAAC,CAAC;gBACnCJ,KAAK,EAAApN,kBAAA,CAAMpB,CAAC,CAAC8H,WAAW,CAACE,IAAI,CAACwG,KAAK,CAAC;gBACpCM,MAAM,EAAC;kBACHG,KAAK,EAAE,SAAS;kBAChBC,SAAS,EAAE,CAAC;kBACZC,QAAQ,EAAE;gBACd;cACJ,CAAC;cACDnP,CAAC,CAACgM,OAAO,CAAC,CAAChM,CAAC,CAAC8H,WAAW,CAACE,IAAI,CAAC,CAAC;YACnC,CAAC,MAAK,IAAGhI,CAAC,CAAC8H,WAAW,CAACE,IAAI,CAACwG,KAAK,CAAC/P,MAAM,GAAG,CAAC,EAAC;cACzCuB,CAAC,CAACoP,UAAU,CAAC,CAAA3O,aAAA,CAAAA,aAAA,KACNT,CAAC,CAAC8H,WAAW,CAACE,IAAI;gBACrBwG,KAAK,EAAApN,kBAAA,CAAMpB,CAAC,CAAC8H,WAAW,CAACE,IAAI,CAACwG,KAAK;cAAC,GACtC,CAAC;YACP;YACA;YACA,IAAGN,MAAM,IAAI,KAAK,EAAC;cACf;cACAlO,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC+G,qBAAqB,CAAC,CAAC;cACnC,IAAIC,OAAO,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,GAACd,IAAI,CAACE,MAAM,CAAC,CAAC;cAChD;cACA,IAAIa,GAAG,GAAG;gBACN3C,EAAE,EAAE,gBAAgB,GAAC4B,IAAI,CAACE,MAAM,CAAC,CAAC;gBAClCN,SAAS,EAAEH,IAAI,CAAC,CAAC,CAAC;gBAClBI,QAAQ,EAAEJ,IAAI,CAAC,CAAC,CAAC;gBACjBU,aAAa,2LAIZ;gBACDC,MAAM,EAAE;kBACJzB,KAAK,EAAC,EAAE;kBACRD,MAAM,EAAC,EAAE;kBACT2B,cAAc,EAAE,CAAC,EAAE;kBACnBC,cAAc,EAAE,CAAC;gBACrB,CAAC;gBACDU,KAAK,EAAEJ;cACX,CAAC;cACD;cACAtP,CAAC,CAAC+L,QAAQ,CAAC,CAAC0D,GAAG,CAAC,CAAC;cACjB;cACAzP,CAAC,CAAC2P,aAAa,CAAC,yBAAyB,EAAC,OAAO,CAAC;cAClD3P,CAAC,CAAC2P,aAAa,CAAC,8BAA8B,EAAC,MAAM,CAAC;cACtD;cACA3P,CAAC,CAACoI,YAAY,CAACkH,OAAO,CAAC,GAAA7O,aAAA,KAAOT,CAAC,CAAC8H,WAAW,CAAC;cAC5C;cACA,IAAG9H,CAAC,CAAC8H,WAAW,CAACK,cAAc,EAAC;gBAC5BnI,CAAC,CAAC8H,WAAW,CAACK,cAAc,CAAC;kBACzBD,QAAQ,EAAElI,CAAC,CAAC8H,WAAW,CAACI,QAAQ;kBAChC0H,OAAO,EAAE5P,CAAC,CAAC8H,WAAW,CAACE,IAAI,CAACwG;gBAChC,CAAC,CAAC;cACN;cACAxO,CAAC,CAAC8H,WAAW,CAACC,SAAS,GAAG,KAAK;cAC/B/H,CAAC,CAAC8H,WAAW,GAAArH,aAAA,CAAAA,aAAA,KACNT,CAAC,CAAC8H,WAAW;gBAChBC,SAAS,EAAE,KAAK;gBAAC;gBACjBC,IAAI,EAAE,CAAC,CAAC;gBAAC;gBACTC,MAAM,EAAE,EAAE;gBAAC;gBACXC,QAAQ,EAAE,CAAC;cAAA,EACd;YACL;UACJ;QACJ,CAAC;QACD;QACAlI,CAAC,CAACqI,KAAK,CAACC,GAAG,CAACuH,EAAE,CAAC,YAAY,EAAC,UAAC7Q,CAAC,EAAG;UAC7B;UACA,IAAGgB,CAAC,CAAC8H,WAAW,CAACC,SAAS,EAAC;YACvB,IAAI+H,EAAE,GAAG;cACLhD,EAAE,EAAE,yBAAyB;cAC7BwB,SAAS,EAAEtP,CAAC,CAACoP,QAAQ,CAAChI,CAAC;cACvBmI,QAAQ,EAAEvP,CAAC,CAACoP,QAAQ,CAAC/H,CAAC;cACtBwI,aAAa,2IAEZ;cACDC,MAAM,EAAE;gBACJC,cAAc,EAAE,EAAE;gBAClBC,cAAc,EAAE;cACpB;YACJ,CAAC;YACDhP,CAAC,CAAC+L,QAAQ,CAAC,CAAC+D,EAAE,CAAC,CAAC;UACpB;QACJ,CAAC,CAAC;QACF;QACA9P,CAAC,CAACqI,KAAK,CAACC,GAAG,CAACuH,EAAE,CAAC,WAAW,EAAC,UAAC7Q,CAAC,EAAG;UAC5B;UACA,IAAGgB,CAAC,CAAC8H,WAAW,CAACC,SAAS,EAAC;YACvB/H,CAAC,CAAC2P,aAAa,CAAC,yBAAyB,EAAC,OAAO,CAAC;UACtD;QACJ,CAAC,CAAC;QACF;QACA3P,CAAC,CAACqI,KAAK,CAACC,GAAG,CAACuH,EAAE,CAAC,YAAY,EAAC,UAAC7Q,CAAC,EAAG;UAC7B;UACA,IAAGgB,CAAC,CAAC8H,WAAW,CAACC,SAAS,EAAC;YACvB;YACA,IAAI+H,EAAE,GAAArP,aAAA,KAAOT,CAAC,CAACsG,EAAE,CAACyJ,eAAe,CAAC,yBAAyB,CAAC,CAACC,UAAU,CAAC;YACxE;YACA,OAAOF,EAAE,CAACG,KAAK;YACf,IAAIC,QAAQ,GAAGJ,EAAE,CAACjB,aAAa;YAC/B,IAAG7O,CAAC,CAAC8H,WAAW,CAACG,MAAM,CAACxJ,MAAM,GAAG,CAAC,EAAC;cAC/B,IAAIyJ,QAAQ,GAAG,IAAAmG,4BAAW,EACtB,CAACrP,CAAC,CAACoP,QAAQ,CAAChI,CAAC,EAACpH,CAAC,CAACoP,QAAQ,CAAC/H,CAAC,CAAC,EAC3B,CAACrG,CAAC,CAAC8H,WAAW,CAACG,MAAM,CAACjI,CAAC,CAAC8H,WAAW,CAACG,MAAM,CAACxJ,MAAM,GAAC,CAAC,CAAC,CAAC6P,SAAS,EAC9DtO,CAAC,CAAC8H,WAAW,CAACG,MAAM,CAACjI,CAAC,CAAC8H,WAAW,CAACG,MAAM,CAACxJ,MAAM,GAAC,CAAC,CAAC,CAAC8P,QAAQ,CAAC,EAC7DvO,CAAC,CAACqI,KAAK,CAACC,GAAG,EACXtI,CAAC,CAAC0F,MACN,CAAC;cACD;cACAwC,QAAQ,IAAIlI,CAAC,CAAC8H,WAAW,CAACI,QAAQ;cAClC,IAAIuG,OAAO,GAAGvG,QAAQ,GAAG,IAAI,mBAAA4B,MAAA,CAClB4E,IAAI,CAACC,KAAK,CAACzG,QAAQ,GAAC,EAAE,CAAC,GAAC,GAAG,oCAAA4B,MAAA,CAAW5B,QAAQ,WAAG;cAC5DgI,QAAQ,gHAAApG,MAAA,CAEO2E,OAAO,mLAGrB;cACD;cACA,IAAI0B,EAAE,GAAG;gBACLrD,EAAE,EAAE,8BAA8B;gBAClC0B,KAAK,EAAE,CACH,CAAIxO,CAAC,CAAC8H,WAAW,CAACG,MAAM,CAACjI,CAAC,CAAC8H,WAAW,CAACG,MAAM,CAACxJ,MAAM,GAAC,CAAC,CAAC,CAAC6P,SAAS,EAC7DtO,CAAC,CAAC8H,WAAW,CAACG,MAAM,CAACjI,CAAC,CAAC8H,WAAW,CAACG,MAAM,CAACxJ,MAAM,GAAC,CAAC,CAAC,CAAC8P,QAAQ,CAC/D,EACD,CAACvP,CAAC,CAACoP,QAAQ,CAAChI,CAAC,EAACpH,CAAC,CAACoP,QAAQ,CAAC/H,CAAC,CAAC,CAC9B;gBACDyI,MAAM,EAAE;kBACJG,KAAK,EAAE,SAAS;kBAChBC,SAAS,EAAE,CAAC;kBACZC,QAAQ,EAAE,OAAO;kBACjBiB,WAAW,EAAE;gBACjB;cACJ,CAAC;cACD,IAAG,CAACpQ,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAC,8BAA8B,CAAC,EAAC;gBAChDhN,CAAC,CAACgM,OAAO,CAAC,CAACmE,EAAE,CAAC,CAAC;cACnB,CAAC,MAAI;gBACDnQ,CAAC,CAACoP,UAAU,CAAC,CAACe,EAAE,CAAC,CAAC;cACtB;YACJ;YACAL,EAAE,GAAArP,aAAA,CAAAA,aAAA,KACKqP,EAAE;cACLxB,SAAS,EAAEtP,CAAC,CAACoP,QAAQ,CAAChI,CAAC;cACvBmI,QAAQ,EAAEvP,CAAC,CAACoP,QAAQ,CAAC/H,CAAC;cACtBwI,aAAa,EAAEqB;YAAQ,EAC1B;YACDlQ,CAAC,CAACqQ,WAAW,CAAC,CAACP,EAAE,CAAC,CAAC;UACvB;UACA;UACA,IAAG9P,CAAC,CAACiH,MAAM,IAAIjH,CAAC,CAACkH,YAAY,EAAC;YAC1BlH,CAAC,CAACmH,gBAAgB,GAAA1G,aAAA,CAAAA,aAAA,KACXT,CAAC,CAACmH,gBAAgB;cACrBf,CAAC,EAAEpH,CAAC,CAACoP,QAAQ,CAAChI,CAAC;cACfC,CAAC,EAAErH,CAAC,CAACoP,QAAQ,CAAC/H;YAAC,EAClB;UACL;QACJ,CAAC,CAAC;QACF;QACArG,CAAC,CAACqI,KAAK,CAACC,GAAG,CAACuH,EAAE,CAAC,WAAW,EAAC,UAAC7Q,CAAC,EAAG;UAC5B;UACAiP,cAAc,CAACjP,CAAC,EAAC,KAAK,CAAC;QAC3B,CAAC,CAAC;QACF;QACAgB,CAAC,CAACqI,KAAK,CAACC,GAAG,CAACuH,EAAE,CAAC,OAAO,EAAC,UAAC7Q,CAAC,EAAG;UACxB,IAAIgB,CAAC,GAAG6K,MAAI;UACZ;UACAoD,cAAc,CAACjP,CAAC,CAAC;UACjB;UACAgB,CAAC,CAACsQ,QAAQ,CAACtR,CAAC,CAAC;QACjB,CAAC,CAAC;QACF;QACAgB,CAAC,CAACqI,KAAK,CAACC,GAAG,CAACuH,EAAE,CAAC,kBAAkB,EAAC,UAAC7Q,CAAC,EAAG;UACnCgB,CAAC,CAACuQ,YAAY,CAACvR,CAAC,CAAC;QACrB,CAAC,CAAC;QACF;QACAgB,CAAC,CAACqI,KAAK,CAACC,GAAG,CAACuH,EAAE,CAAC,gBAAgB,EAAC,UAAC7Q,CAAC,EAAG;UACjCgB,CAAC,CAACwQ,UAAU,CAACxR,CAAC,CAAC;QACnB,CAAC,CAAC;QACF;QACAgB,CAAC,CAACqI,KAAK,CAACC,GAAG,CAACuH,EAAE,CAAC,KAAK,EAAC,UAAC7Q,CAAC,EAAG;UACtB;UACA4K,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACgG,YAAY,CAAE,CAAC,CAACuH,GAAG,CAAC;YACxBC,GAAG,EAAExN,CAAC,CAACmG,UAAU,CAACE,CAAC,GAAGrH,CAAC,CAACyR,KAAK,CAACpK,CAAC;YAC/BqH,IAAI,EAAE1N,CAAC,CAACmG,UAAU,CAACC,CAAC,GAAGpH,CAAC,CAACyR,KAAK,CAACrK;UACnC,CAAC,CAAC;UACFwD,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACiG,iBAAiB,CAAE,CAAC,CAACsH,GAAG,CAAC;YAC7BC,GAAG,EAAExO,CAAC,CAACyR,KAAK,CAACpK,CAAC;YACdqH,IAAI,EAAE1O,CAAC,CAACyR,KAAK,CAACrK;UAClB,CAAC,CAAC;UAEF,IAAGpG,CAAC,CAACuH,OAAO,EAAC;YACTvH,CAAC,CAACuH,OAAO,CAACmJ,SAAS,CAAC1R,CAAC,CAACyR,KAAK,CAACpK,CAAC,EAACrH,CAAC,CAACyR,KAAK,CAACrK,CAAC,CAAC;UAC5C;QACJ,CAAC,CAAC;QACF;QACApG,CAAC,CAACqI,KAAK,CAACC,GAAG,CAACuH,EAAE,CAAC,WAAW,EAAC,UAAC7Q,CAAC,EAAG;UAC5BgB,CAAC,CAAC2Q,SAAS,CAAC3R,CAAC,CAAC;QAClB,CAAC,CAAC;QACF;QACAgB,CAAC,CAACqI,KAAK,CAACC,GAAG,CAACuH,EAAE,CAAC,SAAS,EAAC,UAAC7Q,CAAC,EAAG;UAC1BgB,CAAC,CAAC4Q,OAAO,CAAC5R,CAAC,CAAC;UACZ;UACA,IAAGgB,CAAC,CAACwH,cAAc,CAAC/I,MAAM,GAAG,CAAC,EAAC;YAC3BuB,CAAC,CAAC6Q,gBAAgB,CAAC,CAAC;UACxB;UACAjH,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACiG,iBAAiB,CAAE,CAAC,CAACsH,GAAG,CAAC;YAC7BC,GAAG,EAAE,CAAC;YACNE,IAAI,EAAE;UACV,CAAC,CAAC;UACF;UACA,IAAG1N,CAAC,CAAC2H,UAAU,CAAClJ,MAAM,GAAG,CAAC,EAAC;YACvBuB,CAAC,CAAC8Q,qBAAqB,CAAC9Q,CAAC,CAACwC,KAAK,CAACiJ,kBAAkB,CAAC;UACvD;UACA;UACAzL,CAAC,CAACmG,UAAU,GAAG;YACXC,CAAC,EAAE2K,IAAI,CAACnH,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACgG,YAAY,CAAE,CAAC,CAACuH,GAAG,CAAC,MAAM,CAAC,CAACyD,OAAO,CAAC,IAAI,EAAC,EAAE,CAAC,CAAC;YAC7D3K,CAAC,EAAE0K,IAAI,CAACnH,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACgG,YAAY,CAAE,CAAC,CAACuH,GAAG,CAAC,KAAK,CAAC,CAACyD,OAAO,CAAC,IAAI,EAAC,EAAE,CAAC;UAC/D,CAAC;UACD;UACAtE,WAAW,CAAC,CAAC;UACb;UACA,IAAG1M,CAAC,CAACuH,OAAO,EAAC;YACTvH,CAAC,CAACuH,OAAO,CAAC0J,IAAI,CAAC,CAAC;UACpB;UACA;UACA,KAAI,IAAIvS,CAAC,GAAG,CAAC,EAAGA,CAAC,GAAGsB,CAAC,CAAC+F,cAAc,CAACtH,MAAM,EAAEC,CAAC,EAAE,EAAC;YAC7CsB,CAAC,CAAC+N,OAAO,CAAC/N,CAAC,CAAC+F,cAAc,CAACrH,CAAC,CAAC,CAAC;UAClC;UACA;UACA,IAAGsB,CAAC,CAAC4H,eAAe,EAAC;YACjB5H,CAAC,CAACkR,mBAAmB,CAAClS,CAAC,CAAC;UAC5B;QACJ,CAAC,CAAC;QACF;QACAgB,CAAC,CAACqI,KAAK,CAACC,GAAG,CAACuH,EAAE,CAAC,YAAY,EAAC,UAAC7Q,CAAC,EAAG;UAC7BgB,CAAC,CAACmR,SAAS,CAACnS,CAAC,CAAC;UACd;UACA4K,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACgG,YAAY,CAAE,CAAC,CAACuH,GAAG,CAAC;YAAC6D,OAAO,EAAC;UAAM,CAAC,CAAC;UAC7C;UACAxH,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACiG,iBAAiB,CAAE,CAAC,CAACsH,GAAG,CAAC;YAAC6D,OAAO,EAAE;UAAM,CAAC,CAAC;UACnD,IAAGpR,CAAC,CAACuH,OAAO,IAAI,CAACvH,CAAC,CAACqR,aAAa,EAAC;YAC7BrR,CAAC,CAACuH,OAAO,CAAC+J,IAAI,CAAC,CAAC;UACpB;QACJ,CAAC,CAAC;QACF;QACAtR,CAAC,CAACqI,KAAK,CAACC,GAAG,CAACuH,EAAE,CAAC,UAAU,EAAC,UAAC7Q,CAAC,EAAG;UAC3BgB,CAAC,CAACuR,OAAO,CAACvS,CAAC,CAAC;UACZ;UACA,IAAGgB,CAAC,CAACwH,cAAc,CAAC/I,MAAM,GAAG,CAAC,EAAC;YAC3BuB,CAAC,CAAC6Q,gBAAgB,CAAC,CAAC;UACxB;UACA;UACAjH,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACgG,YAAY,CAAE,CAAC,CAACuH,GAAG,CAAC;YAAC6D,OAAO,EAAC;UAAc,CAAC,CAAC;UACrD;UACAxH,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACiG,iBAAiB,CAAE,CAAC,CAACsH,GAAG,CAAC;YAAC6D,OAAO,EAAE;UAAc,CAAC,CAAC;UAC3D;UACA1E,WAAW,CAAC,CAAC;UACb,IAAG1M,CAAC,CAACuH,OAAO,IAAI,CAACvH,CAAC,CAACqR,aAAa,EAAC;YAC7BrR,CAAC,CAACuH,OAAO,CAACiK,IAAI,CAAC,CAAC;YAChBxR,CAAC,CAACuH,OAAO,CAAC0J,IAAI,CAAC,CAAC;UACpB;UACA;UACA,IAAGjR,CAAC,CAAC2H,UAAU,CAAClJ,MAAM,GAAG,CAAC,EAAC;YACvBuB,CAAC,CAAC8Q,qBAAqB,CAAC9Q,CAAC,CAACwC,KAAK,CAACiJ,kBAAkB,CAAC;UACvD;UACA;UACA,KAAI,IAAI/M,CAAC,GAAG,CAAC,EAAGA,CAAC,GAAGsB,CAAC,CAAC+F,cAAc,CAACtH,MAAM,EAAEC,CAAC,EAAE,EAAC;YAC7CsB,CAAC,CAAC+N,OAAO,CAAC/N,CAAC,CAAC+F,cAAc,CAACrH,CAAC,CAAC,CAAC;UAClC;UACA;UACA,IAAGkL,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACwC,KAAK,CAAC+F,KAAK,sBAAmB,CAAC,CAAC,CAAC,CAAC,EAAC;YAC1C,IAAIkJ,QAAQ,GAAGzR,CAAC,CAACqI,KAAK,CAACC,GAAG,CAACmJ,QAAQ,CAAC,CAAC,GAAC,WAAW,GAAC,EAAE;YACpD;YACA,IAAIC,WAAW,GAAGhD,IAAI,CAACiD,GAAG,CAAC,EAAE,EAACjD,IAAI,CAACkD,KAAK,CAACH,QAAQ,CAAC,CAAC9P,QAAQ,CAAC,CAAC,CAAClD,MAAM,GAAC,CAAC,CAAC;YACvE;YACA,IAAIoT,EAAE,GAAGJ,QAAQ,GAACC,WAAW;cAACI,MAAM,GAAG,CAAC;cAACC,MAAM,GAAG,KAAK;YACvD;YACA,IAAGF,EAAE,GAAG,CAAC,EAAC;cACNE,MAAM,GAAG,IAAI;cACbF,EAAE,IAAI,EAAE;YACZ;YACA,IAAGA,EAAE,IAAI,CAAC,EAAC;cACPC,MAAM,GAAG,CAAC,GAACJ,WAAW,GAAC,GAAG;YAC9B,CAAC,MAAK,IAAGG,EAAE,IAAI,CAAC,EAAC;cACbC,MAAM,GAAG,CAAC,GAACJ,WAAW,GAAC,GAAG;YAC9B,CAAC,MAAI;cACDI,MAAM,GAAG,CAAC,GAACJ,WAAW,GAAC,GAAG;YAC9B;YACA,IAAIM,MAAM,GAAGF,MAAM,GAACL,QAAQ;YAC5B,IAAGM,MAAM,EAAC;cACNC,MAAM,IAAI,EAAE;cACZF,MAAM,IAAI,EAAE;YAChB;YACA;YACA,IAAGE,MAAM,GAAC,EAAE,EAAC;cACTF,MAAM,IAAI,GAAG;cACbE,MAAM,GAAGF,MAAM,GAACL,QAAQ;YAC5B;YACA;YACAK,MAAM,GAAGA,MAAM,IAAI,IAAI,MAAAhI,MAAA,CAAK4E,IAAI,CAACC,KAAK,CAACmD,MAAM,GAAC,IAAI,CAAC,uBAAAhI,MAAA,CAASgI,MAAM,WAAG;YACrElI,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACwC,KAAK,CAAC+F,KAAK,sBAAmB,CAAC,CAACgF,GAAG,CAAC;cAACF,KAAK,EAAE2E,MAAM,GAAC;YAAC,CAAC,CAAC;YAC9DpI,CAAC,CAACA,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACwC,KAAK,CAAC+F,KAAK,sBAAmB,CAAC,CAAC0J,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC3E,IAAI,CAACwE,MAAM,CAAC;UACzE;QACJ,CAAC,CAAC;QACF;QACA;QACA9R,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC4J,QAAQ,CAACrC,EAAE,CAAC,OAAO,EAAC,UAAC7Q,CAAC,EAAG;UACjC,IAAG,CAACA,CAAC,CAACmT,OAAO,CAACnC,UAAU,EAAC;YACrB;UACJ;UACA,IAAIoC,GAAG,GAAGpT,CAAC,CAACmT,OAAO,CAACnC,UAAU,CAAClD,EAAE;UACjC;UACA,IAAGsF,GAAG,IAAI,kBAAkB,EAAC;YACzBpS,CAAC,CAACqS,gBAAgB,CAAC;cAACC,OAAO,EAAEtT,CAAC,CAACmT,OAAO,CAACnC,UAAU,CAACuC;YAAG,CAAC,CAAC;YACvD,OAAO,KAAK;UAChB;UACAvS,CAAC,CAACwS,YAAY,CAACJ,GAAG,EAACpT,CAAC,CAAC;UACrB,IAAGW,OAAA,CAAOX,CAAC,CAACmT,OAAO,CAACnC,UAAU,KAAK,QAAQ,EAAC;YACxC;YACA;YACA,IAAGoC,GAAG,IAAIA,GAAG,CAACxE,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAC;cACzC,IAAI8B,KAAK,GAAG1P,CAAC,CAACsG,EAAE,CAACyJ,eAAe,CAACqC,GAAG,CAAC,CAACpC,UAAU,CAACN,KAAK;cACtD,IAAI+C,EAAE,GAAGzS,CAAC,CAACoI,YAAY,CAACsH,KAAK,CAAC,CAAC1H,IAAI;gBAC/B0K,EAAE,GAAG1S,CAAC,CAACoI,YAAY,CAACsH,KAAK,CAAC,CAACzH,MAAM;cACrC;cACAjI,CAAC,CAAC2P,aAAa,CAAC8C,EAAE,CAAC3F,EAAE,EAAC,MAAM,CAAC;cAC7B;cACA9M,CAAC,CAAC2P,aAAa,CAACyC,GAAG,EAAC,OAAO,CAAC;cAC5B;cACA,KAAI,IAAI1T,CAAC,GAAG,CAAC,EAAGA,CAAC,GAAGgU,EAAE,CAACjU,MAAM,EAAGC,CAAC,EAAE,EAAC;gBAChCsB,CAAC,CAAC2P,aAAa,CAAC+C,EAAE,CAAChU,CAAC,CAAC,CAACoO,EAAE,EAAC,OAAO,CAAC;cACrC;cACA;cACA,OAAO9M,CAAC,CAACoI,YAAY,CAACsH,KAAK,CAAC;YAChC;UACJ;QACJ,CAAC,CAAC;QACF;QACA1P,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC4J,QAAQ,CAACrC,EAAE,CAAC,YAAY,EAAC,UAAC7Q,CAAC,EAAG;UACtC,IAAG,CAACA,CAAC,CAACmT,OAAO,CAACnC,UAAU,EAAC;YACrB;UACJ;UACA,IAAIoC,GAAG,GAAGpT,CAAC,CAACmT,OAAO,CAACnC,UAAU,CAAClD,EAAE;UACjC;UACA,IAAGsF,GAAG,IAAI,kBAAkB,EAAC;YACzB,OAAO,KAAK;UAChB;UACApS,CAAC,CAAC2S,gBAAgB,CAACP,GAAG,EAACpT,CAAC,CAAC;QAC7B,CAAC,CAAC;QACF;QACAgB,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC4J,QAAQ,CAACrC,EAAE,CAAC,WAAW,EAAC,UAAC7Q,CAAC,EAAG;UACrC,IAAG,CAACA,CAAC,CAACmT,OAAO,CAACnC,UAAU,EAAC;YACrB;UACJ;UACA,IAAIoC,GAAG,GAAGpT,CAAC,CAACmT,OAAO,CAACnC,UAAU,CAAClD,EAAE;UACjC;UACA,IAAGsF,GAAG,IAAI,kBAAkB,EAAC;YACzB,OAAO,KAAK;UAChB;UACApS,CAAC,CAAC4S,eAAe,CAACR,GAAG,EAACpT,CAAC,CAAC;QAC5B,CAAC,CAAC;MACN,CAAC;MACD;MACA,IAAGgB,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC4J,QAAQ,EAAC;QACpBtI,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACwC,KAAK,CAAC+F,KAAK,QAAK,CAAC,CAACgF,GAAG,CAAC;UAAC,SAAS,EAAE;QAAC,CAAC,CAAC;QAC7C;QACA3D,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACwC,KAAK,CAAC+F,KAAK,YAAS,CAAC,CAACsF,MAAM,YAAA/D,MAAA,CACrB9J,CAAC,CAACgG,YAAY,0CAC7B,CAAC;QACD;QACA4D,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACwC,KAAK,CAAC+F,KAAK,YAAS,CAAC,CAACsF,MAAM,YAAA/D,MAAA,CACrB9J,CAAC,CAACiG,iBAAiB,mDAClC,CAAC;QACD;QACA2D,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACwC,KAAK,CAAC+F,KAAK,iBAAc,CAAC,CAACgF,GAAG,CAAC;UAAC6D,OAAO,EAAE;QAAM,CAAC,CAAC;QACzD;QACA3E,KAAK,CAAC,CAAC;QACPzM,CAAC,CAAC6S,SAAS,CAAC7S,CAAC,CAACwC,KAAK,CAACsQ,SAAS,CAAC;QAC9B;QACA/H,QAAQ,CAAC,CAAC;MACd;MACA/K,CAAC,CAACqI,KAAK,CAACC,GAAG,CAACuH,EAAE,CAAC,MAAM,EAAC,YAAI;QACtBjG,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACwC,KAAK,CAAC+F,KAAK,QAAK,CAAC,CAACgF,GAAG,CAAC;UAAC,SAAS,EAAE;QAAC,CAAC,CAAC;QAC7C;QACA3D,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACwC,KAAK,CAAC+F,KAAK,YAAS,CAAC,CAACsF,MAAM,YAAA/D,MAAA,CACrB9J,CAAC,CAACgG,YAAY,0CAC7B,CAAC;QACD;QACA4D,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACwC,KAAK,CAAC+F,KAAK,YAAS,CAAC,CAACsF,MAAM,YAAA/D,MAAA,CACrB9J,CAAC,CAACiG,iBAAiB,mDAClC,CAAC;QACD;QACA2D,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACwC,KAAK,CAAC+F,KAAK,iBAAc,CAAC,CAACgF,GAAG,CAAC;UAAC6D,OAAO,EAAE;QAAM,CAAC,CAAC;QACzD;QACA3E,KAAK,CAAC,CAAC;QACPzM,CAAC,CAAC6S,SAAS,CAAC7S,CAAC,CAACwC,KAAK,CAACsQ,SAAS,CAAC;QAC9B;QACA/H,QAAQ,CAAC,CAAC;MACd,CAAC,CAAC;IACN;IACA;EAAA;IAAA/J,GAAA;IAAAjC,KAAA,EACA,SAAA+L,UAAA,EAAa;MACT,IAAI9K,CAAC,GAAG,IAAI;MACZ,IAAA+S,SAAA,GAAiE/S,CAAC,CAACwC,KAAK;QAAjEsQ,SAAS,GAAAC,SAAA,CAATD,SAAS;QAACvK,KAAK,GAAAwK,SAAA,CAALxK,KAAK;QAACgD,YAAY,GAAAwH,SAAA,CAAZxH,YAAY;QAACyH,OAAO,GAAAD,SAAA,CAAPC,OAAO;QAACC,OAAO,GAAAF,SAAA,CAAPE,OAAO;QAACC,SAAS,GAAAH,SAAA,CAATG,SAAS;MAC7D,IAAIC,OAAO,GAAE;QACTC,IAAI,EAAE7H,YAAY,IAAI,EAAE;QACxB8H,MAAM,EAAEP,SAAS,IAAI,CAAC,OAAO,EAAC,MAAM;MACxC,CAAC;MACD,IAAGE,OAAO,EAAC;QACPG,OAAO,CAACH,OAAO,GAAGnN,QAAQ,CAACmN,OAAO,CAAC;MACvC;MACA,IAAGC,OAAO,EAAC;QACPE,OAAO,CAACF,OAAO,GAAGpN,QAAQ,CAACoN,OAAO,CAAC;MACvC;MACA,IAAG,CAACvJ,MAAM,CAAC4J,MAAM,EAAC;QACd5J,MAAM,CAAC4J,MAAM,GAAG,CAAC,CAAC;MACtB;MACA,IAAIC,UAAU,GAAG,CAACL,SAAS,IAAI,CAAC,CAAC,EAAEK,UAAU,IAAI;QAC7CC,IAAI,EAAG,CAAC,KAAK;QAACC,IAAI,EAAG,CAAC,IAAI;QAACC,IAAI,EAAG,KAAK;QAACC,IAAI,EAAG;MACnD,CAAC;MACD,IAAI/G,GAAG,GAAGlD,MAAM,CAAC4J,MAAM,CAAC/K,KAAK,CAAC,GAAGvI,CAAC,CAACqI,KAAK,CAACC,GAAG,GAAG,IAAIqB,IAAI,CAAC3J,CAAC,CAACwC,KAAK,CAAC+F,KAAK,CAAC5G,QAAQ,CAAC,CAAC,EAAAlB,aAAA;QAC5EmT,UAAU,EAAE,IAAI;QAChBC,IAAI,EAAG,KAAK;QACZC,oBAAoB,EAAG,KAAK;QAC5BC,eAAe,EAAC,IAAI;QACpBC,eAAe,EAAE,SAAS;QAC1BC,MAAM,EAAE,IAAIC,IAAI,CAACjH,QAAQ,CAACkH,MAAM,CAAA1T,aAAA,CAAAA,aAAA,KACzB8S,UAAU;UACba,gBAAgB,EAAAxT,eAAA,KAAGZ,CAAC,CAAC8F,OAAO,EAAE9F,CAAC,CAAC2F,IAAI;QAAC,EACxC;MAAC,GACCwN,OAAO,CACb,CAAC;MACFzJ,MAAM,CAAC2K,aAAa,GAAG,YAAI;QACvBzH,GAAG,CAAC0H,MAAM,CAAC,IAAI,CAAC;QAChB1H,GAAG,CAAC2H,UAAU,CAAC,CAAC;MACpB,CAAC;MACDvU,CAAC,CAACwU,YAAY,CAACtB,SAAS,CAAC;MACzBlT,CAAC,CAACgG,YAAY,MAAA8D,MAAA,CAAMvB,KAAK,OAAAuB,MAAA,CAAI9J,CAAC,CAACgG,YAAY,CAAE;MAC7ChG,CAAC,CAACiG,iBAAiB,MAAA6D,MAAA,CAAMvB,KAAK,OAAAuB,MAAA,CAAI9J,CAAC,CAACiG,iBAAiB,CAAE;IAC3D;IACA;EAAA;IAAAjF,GAAA;IAAAjC,KAAA,EACA,SAAAyV,aAAA,EAA4B;MAAA,IAAftB,SAAS,GAAAxS,SAAA,CAAAjC,MAAA,QAAAiC,SAAA,QAAA0C,SAAA,GAAA1C,SAAA,MAAG,CAAC,CAAC;MACvB,IAAIV,CAAC,GAAG,IAAI;MACZ;MACAA,CAAC,CAACqI,KAAK,CAACC,GAAG,CAACmM,eAAe,CAAC,CAAC;MAC7B,IAAIC,QAAQ,GAAAtT,kBAAA,CAAQ8R,SAAS,CAACwB,QAAQ,IAAI,EAAE,CAAE;QAC1CC,KAAK,GAAG,EAAE;MACd,KAAI,IAAIC,EAAE,GAAG,CAAC,EAAEA,EAAE,GAAGF,QAAQ,CAACjW,MAAM,EAAGmW,EAAE,EAAE,EAAC;QACxC,IAAIC,GAAG,GAAGH,QAAQ,CAACE,EAAE,CAAC,CAACC,GAAG;QAC1B;QACA,QAAOH,QAAQ,CAACE,EAAE,CAAC,CAACnK,IAAI;UACpB,KAAK,KAAK;YACN,KAAI,IAAI/L,CAAC,GAAG,CAAC,EAAGA,CAAC,GAAGmW,GAAG,CAACpW,MAAM,EAAGC,CAAC,EAAE,EAAC;cACjC,IAAIoW,OAAO,GAAG,IAAIZ,IAAI,CAACa,MAAM,CAACL,QAAQ,CAACE,EAAE,CAAC,CAACI,SAAS,IAAI,4BAA4B,CAAC,CAACH,GAAG,CAACnW,CAAC,CAAC,CAAC;cAC7FiW,KAAK,CAACpU,IAAI,CAACuU,OAAO,CAAC;YACvB;YACJ;UACA,KAAK,MAAM;YACP,KAAI,IAAIpW,EAAC,GAAG,CAAC,EAAGA,EAAC,GAAGmW,GAAG,CAACpW,MAAM,EAAGC,EAAC,EAAE,EAAC;cACjC,IAAIuW,QAAQ,GAAG,IAAIf,IAAI,CAACa,MAAM,CAACG,QAAQ,CAAC;gBACpC,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAER,QAAQ,CAACE,EAAE,CAAC,CAACO,MAAM,IAAI,YAAY;gBAC7C,oBAAoB,EAAE,CAAC;gBACvB,kBAAkB,EAAE,IAAIjB,IAAI,CAACkB,gBAAgB,CAAAxU,eAAA,KAC1CZ,CAAC,CAAC8F,OAAO,EAAG9F,CAAC,CAAC2F,IAAI,IAAI,IAAI,CAC5B,CAAC;gBACF,MAAM,EAAE,GAAG;gBACX,MAAM,EAAE,GAAG;gBACX,QAAQ,EAAEuN,SAAS,CAACmC,MAAM,IAAI;kBAACjP,CAAC,EAAG,CAAC,GAAG;kBAACC,CAAC,EAAG;gBAAE,CAAC;gBAC/C,MAAM,EAAE6M,SAAS,CAACoC,IAAI,IAAI;cAC9B,CAAC,CAAC;cACF,IAAIC,UAAU,GAAG,IAAIrB,IAAI,CAACjH,QAAQ,CAACkH,MAAM,CAACjB,SAAS,CAACK,UAAU,CAACC,IAAI,EAAEN,SAAS,CAACK,UAAU,CAACE,IAAI,EAAEP,SAAS,CAACK,UAAU,CAACG,IAAI,EAAER,SAAS,CAACK,UAAU,CAACI,IAAI,EAAE,IAAIO,IAAI,CAACkB,gBAAgB,CAAAxU,eAAA,KAC1KZ,CAAC,CAAC8F,OAAO,EAAG9F,CAAC,CAAC2F,IAAI,CACtB,CAAC,CAAC;cACH,IAAI6P,YAAY,GAAG,IAAItB,IAAI,CAACjH,QAAQ,CAACkH,MAAM,CAACjB,SAAS,CAACuC,aAAa,CAACjC,IAAI,EAAEN,SAAS,CAACuC,aAAa,CAAChC,IAAI,EAAEP,SAAS,CAACuC,aAAa,CAAC/B,IAAI,EAAER,SAAS,CAACuC,aAAa,CAAC9B,IAAI,EAAE,IAAIO,IAAI,CAACkB,gBAAgB,CAAAxU,eAAA,KACxLZ,CAAC,CAAC8F,OAAO,EAAG9F,CAAC,CAAC2F,IAAI,CACtB,CAAC,CAAC;cACH,IAAI+P,SAAS,GAAG,IAAIxB,IAAI,CAACa,MAAM,CAACY,aAAa,CAAC;gBAC1CV,QAAQ,EAAEA,QAAQ;gBAClB1B,UAAU,EAAEgC,UAAU;gBACtBE,aAAa,EAAED,YAAY;gBAC3BI,UAAU,EAAE,CAAClB,QAAQ,CAACE,EAAE,CAAC,CAACiB,KAAK,IAAI,CAAC,CAAC,EAAEnX,EAAC,CAAC,IAAI,kBAAkB;gBAC/DoX,aAAa,EAAEpB,QAAQ,CAACE,EAAE,CAAC,CAACmB,aAAa,IAAI,QAAQ;gBACrDZ,MAAM,EAAET,QAAQ,CAACE,EAAE,CAAC,CAACO,MAAM,IAAI,KAAK;gBACpCa,KAAK,EAAE;cACX,CAAC,CAAC;cACF,IAAIC,YAAY,GAAG;gBACfC,OAAO,EAAE,OAAO;gBAChBC,UAAU,EAAE,CAACT,SAAS,CAAC;gBACvBU,SAAS,EAAE;cACf,CAAC;cACD,IAAIjD,OAAO,GAAG;gBACVkD,WAAW,EAAE,KAAK;gBAClBJ,YAAY,EAAEA,YAAY;gBAC1BP,SAAS,EAAEA;cACf,CAAC;cACD,IAAIY,SAAS,GAAG,IAAIpC,IAAI,CAACa,MAAM,CAACwB,SAAS,CAAC1B,GAAG,CAACnW,EAAC,CAAC,EAAEyU,OAAO,CAAC;cAC1DmD,SAAS,CAACE,WAAW,GAAGF,SAAS,CAACE,WAAW,CAACxF,OAAO,CAACsF,SAAS,CAACE,WAAW,CAACC,SAAS,CACjFH,SAAS,CAACE,WAAW,CAAC5I,OAAO,CAAC,SAAS,CAAC,EACxC0I,SAAS,CAACE,WAAW,CAAC5I,OAAO,CAAC,gBAAgB,CAClD,CAAC,aAAA9D,MAAA,CAAY4K,QAAQ,CAACE,EAAE,CAAC,CAACO,MAAM,IAAI,YAAY,CAAE,CAAC;cACnDmB,SAAS,CAACE,WAAW,GAAGF,SAAS,CAACE,WAAW,CAACxF,OAAO,CAAC,SAAS,EAAC,SAAS,CAAC;cAC1EsF,SAAS,CAACE,WAAW,GAAGF,SAAS,CAACE,WAAW,CAACxF,OAAO,CAAC,UAAU,EAAC,UAAU,CAAC;cAC5EsF,SAAS,CAACE,WAAW,GAAGF,SAAS,CAACE,WAAW,CAACxF,OAAO,CAAC,UAAU,EAAC,UAAU,CAAC;cAC5EsF,SAAS,CAACE,WAAW,GAAGF,SAAS,CAACE,WAAW,CAACxF,OAAO,CAAC,QAAQ,EAAC,QAAQ,CAAC;cACxEsF,SAAS,CAACE,WAAW,GAAGF,SAAS,CAACE,WAAW,CAACxF,OAAO,CAAC,QAAQ,EAAC,SAAS,CAAC;cACzEsF,SAAS,CAACE,WAAW,GAAGF,SAAS,CAACE,WAAW,CAACxF,OAAO,CAAC,SAAS,EAAC,QAAQ,CAAC;cACzEsF,SAAS,CAACE,WAAW,GAAGF,SAAS,CAACE,WAAW,CAACxF,OAAO,CAAC,gBAAgB,EAAC,gBAAgB,CAAC;cACxFsF,SAAS,CAACE,WAAW,GAAGF,SAAS,CAACE,WAAW,CAACxF,OAAO,CAAC,aAAa,EAAC,aAAa,CAAC;cAClFsF,SAAS,CAACE,WAAW,GAAGF,SAAS,CAACE,WAAW,CAACxF,OAAO,CAAC,UAAU,EAAC,UAAU,CAAC;cAC5EsF,SAAS,CAACE,WAAW,GAAGF,SAAS,CAACE,WAAW,CAACxF,OAAO,CAAC,UAAU,EAAC,UAAU,CAAC;cAC5E2D,KAAK,CAACpU,IAAI,CAAC+V,SAAS,CAAC;YACzB;YACJ;QACJ;MACJ;MACA,IAAG5B,QAAQ,CAACjW,MAAM,IAAI,CAAC,EAAC;QACpBiY,OAAO,CAACC,IAAI,CAAC,8CAA8C,CAAC;QAC5D,KAAI,IAAI/B,GAAE,GAAG,CAAC,EAAEA,GAAE,GAAGgC,qCAAoB,CAAClC,QAAQ,CAACjW,MAAM,EAAGmW,GAAE,EAAE,EAAC;UAC7D,IAAIC,IAAG,GAAG+B,qCAAoB,CAAClC,QAAQ,CAACE,GAAE,CAAC,CAACC,GAAG;UAC/C,IAAIgC,SAAS,GAAG,IAAI3C,IAAI,CAACa,MAAM,CAACG,QAAQ,CAAC;YACrC,KAAK,EAAE,EAAE;YACT;YACA,oBAAoB,EAAE,CAAC;YACvB,kBAAkB,EAAE,IAAIhB,IAAI,CAACkB,gBAAgB,CAAAxU,eAAA,KAC1CZ,CAAC,CAAC8F,OAAO,EAAG9F,CAAC,CAAC2F,IAAI,IAAI,IAAI,CAC5B,CAAC;YACF,MAAM,EAAE,GAAG;YACX,MAAM,EAAE,GAAG;YACX,QAAQ,EAAEiR,qCAAoB,CAACvB,MAAM,IAAI;cAACjP,CAAC,EAAG,CAAC,GAAG;cAACC,CAAC,EAAG;YAAE,CAAC;YAC1D,MAAM,EAAEuQ,qCAAoB,CAACtB,IAAI,IAAI;UACzC,CAAC,CAAC;UACF,IAAIwB,WAAW,GAAG,IAAI5C,IAAI,CAACjH,QAAQ,CAACkH,MAAM,CAACyC,qCAAoB,CAACrD,UAAU,CAACC,IAAI,EAAEoD,qCAAoB,CAACrD,UAAU,CAACE,IAAI,EAAEmD,qCAAoB,CAACrD,UAAU,CAACG,IAAI,EAAEkD,qCAAoB,CAACrD,UAAU,CAACI,IAAI,EAAE,IAAIO,IAAI,CAACkB,gBAAgB,CAAAxU,eAAA,KACvNZ,CAAC,CAAC8F,OAAO,EAAG9F,CAAC,CAAC2F,IAAI,CACtB,CAAC,CAAC;UACH,IAAIoR,aAAa,GAAG,IAAI7C,IAAI,CAACjH,QAAQ,CAACkH,MAAM,CAACyC,qCAAoB,CAACnB,aAAa,CAACjC,IAAI,EAAEoD,qCAAoB,CAACnB,aAAa,CAAChC,IAAI,EAAEmD,qCAAoB,CAACnB,aAAa,CAAC/B,IAAI,EAAEkD,qCAAoB,CAACnB,aAAa,CAAC9B,IAAI,EAAE,IAAIO,IAAI,CAACkB,gBAAgB,CAAAxU,eAAA,KACrOZ,CAAC,CAAC8F,OAAO,EAAG9F,CAAC,CAAC2F,IAAI,CACtB,CAAC,CAAC;UACH,KAAI,IAAIjH,GAAC,GAAG,CAAC,EAAGA,GAAC,GAAGmW,IAAG,CAACpW,MAAM,EAAGC,GAAC,EAAE,EAAC;YACjC,IAAIsY,UAAU,GAAG,IAAI9C,IAAI,CAACa,MAAM,CAACY,aAAa,CAAC;cAC3CV,QAAQ,EAAE4B,SAAS;cACnBtD,UAAU,EAAEuD,WAAW;cACvBrB,aAAa,EAAEsB,aAAa;cAC5BnB,UAAU,EAAEgB,qCAAoB,CAAClC,QAAQ,CAACE,GAAE,CAAC,CAACiB,KAAK,CAACnX,GAAC,CAAC,IAAI,kBAAkB;cAC5EoX,aAAa,EAAEc,qCAAoB,CAAClC,QAAQ,CAACE,GAAE,CAAC,CAACmB,aAAa,IAAI,QAAQ;cAC1EZ,MAAM,EAAEyB,qCAAoB,CAAClC,QAAQ,CAACE,GAAE,CAAC,CAACO,MAAM,IAAI,KAAK;cACzDa,KAAK,EAAE;YACX,CAAC,CAAC;YACF,IAAIiB,aAAa,GAAG;cAChBf,OAAO,EAAE,OAAO;cAChBC,UAAU,EAAE,CAACa,UAAU,CAAC;cACxBZ,SAAS,EAAE;YACf,CAAC;YACD,IAAIc,QAAQ,GAAG;cACXb,WAAW,EAAE,KAAK;cAClBJ,YAAY,EAAEgB,aAAa;cAC3BvB,SAAS,EAAEsB;YACf,CAAC;YACD,IAAIV,UAAS,GAAG,IAAIpC,IAAI,CAACa,MAAM,CAACwB,SAAS,CAAC1B,IAAG,CAACnW,GAAC,CAAC,EAAEwY,QAAQ,CAAC;YAC3DZ,UAAS,CAACE,WAAW,GAAGF,UAAS,CAACE,WAAW,CAACxF,OAAO,CACjDsF,UAAS,CAACE,WAAW,CAACW,MAAM,CAACb,UAAS,CAACE,WAAW,CAAC5I,OAAO,CAAC,UAAU,CAAC,EACtE0I,UAAS,CAACE,WAAW,CAACW,MAAM,CACxBb,UAAS,CAACE,WAAW,CAAC5I,OAAO,CAAC,UAAU,CAAC,GAAC,CAAC,CAAC,CAACA,OAAO,CAAC,GAAG,CAAC,GAAC,CAAC,CAAC,aAAA9D,MAAA,CACjD8M,qCAAoB,CAAClC,QAAQ,CAACE,GAAE,CAAC,CAACO,MAAM,IAAK,YAAY,CAC5E,CAAC;YACDmB,UAAS,CAACE,WAAW,GAAGF,UAAS,CAACE,WAAW,CAACxF,OAAO,CAAC,SAAS,EAAC,SAAS,CAAC;YAC1EsF,UAAS,CAACE,WAAW,GAAGF,UAAS,CAACE,WAAW,CAACxF,OAAO,CAAC,UAAU,EAAC,UAAU,CAAC;YAC5EsF,UAAS,CAACE,WAAW,GAAGF,UAAS,CAACE,WAAW,CAACxF,OAAO,CAAC,UAAU,EAAC,UAAU,CAAC;YAC5EsF,UAAS,CAACE,WAAW,GAAGF,UAAS,CAACE,WAAW,CAACxF,OAAO,CAAC,QAAQ,EAAC,QAAQ,CAAC;YACxEsF,UAAS,CAACE,WAAW,GAAGF,UAAS,CAACE,WAAW,CAACxF,OAAO,CAAC,QAAQ,EAAC,SAAS,CAAC;YACzEsF,UAAS,CAACE,WAAW,GAAGF,UAAS,CAACE,WAAW,CAACxF,OAAO,CAAC,SAAS,EAAC,QAAQ,CAAC;YACzEsF,UAAS,CAACE,WAAW,GAAGF,UAAS,CAACE,WAAW,CAACxF,OAAO,CAAC,gBAAgB,EAAC,gBAAgB,CAAC;YACxFsF,UAAS,CAACE,WAAW,GAAGF,UAAS,CAACE,WAAW,CAACxF,OAAO,CAAC,aAAa,EAAC,aAAa,CAAC;YAClFsF,UAAS,CAACE,WAAW,GAAGF,UAAS,CAACE,WAAW,CAACxF,OAAO,CAAC,UAAU,EAAC,UAAU,CAAC;YAC5EsF,UAAS,CAACE,WAAW,GAAGF,UAAS,CAACE,WAAW,CAACxF,OAAO,CAAC,UAAU,EAAC,UAAU,CAAC;YAC5E2D,KAAK,CAACpU,IAAI,CAAC+V,UAAS,CAAC;UACzB;QACJ;MACJ;MACA,KAAI,IAAIc,CAAC,GAAG,CAAC,EAAGA,CAAC,GAAGzC,KAAK,CAAClW,MAAM,EAAG2Y,CAAC,EAAE,EAAC;QACnCpX,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC+O,QAAQ,CAAC1C,KAAK,CAACyC,CAAC,CAAC,CAAC;MAClC;IACJ;IACA;EAAA;IAAApW,GAAA;IAAAjC,KAAA,EACA,SAAAgN,SAASd,SAAS,EAACR,IAAI,EAAC;MAAA,IAAA6M,MAAA;MACpB,IAAItX,CAAC,GAAG,IAAI;MACZ,IAAIuX,KAAK,GAAAnW,kBAAA,CAAOpB,CAAC,CAACqI,KAAK,CAACI,QAAQ,CAAC;MACjC;MACA,IAAGgC,IAAI,IAAIA,IAAI,KAAK,SAAS,EAAC;QAC1B8M,KAAK,GAAAnW,kBAAA,CAAOpB,CAAC,CAACqI,KAAK,CAACU,OAAO,CAAC0B,IAAI,CAAC,CAAC;MACtC;MACAQ,SAAS,CAAC2B,GAAG,CAAC,UAACC,IAAI,EAAC6C,KAAK,EAAG;QACxB;QACA,IAAI4H,MAAI,CAAChR,EAAE,CAACkR,YAAY,CAAC3K,IAAI,CAACC,EAAE,CAAC,EAAE;UAC/B4J,OAAO,CAACC,IAAI,oBAAA7M,MAAA,CAAU+C,IAAI,CAACC,EAAE,kBAAK,CAAC;UACnC,OAAO,KAAK;QAChB;QACA;QACA,IAAG,CAACD,IAAI,CAACyB,SAAS,IAAI,CAACzB,IAAI,CAAC0B,QAAQ,EAAC;UACjCmI,OAAO,CAACC,IAAI,qDAAa,CAAC;UAC1B,OAAO,KAAK;QAChB;QACA,IAAIc,EAAE,GAAG;UACLpK,KAAK,EAAG,EAAE;UACVD,MAAM,EAAG,EAAE;UACXsK,YAAY,EAAE,EAAE;UAChBC,WAAW,EAAE,CAAC;UACdC,WAAW,EAAE,EAAE;UACfC,cAAc,EAAE,CAAC;UACjB;UACA;UACA9I,cAAc,EAAE,CAAC,EAAE;UACnBC,cAAc,EAAE,CAAC,EAAE;UACnB8I,GAAG,EAAE;QACT,CAAC;QACD,IAAGjL,IAAI,CAACgC,aAAa,EAAC;UAClB4I,EAAE,GAAAhX,aAAA,CAAAA,aAAA,KAAOgX,EAAE;YAAC1I,cAAc,EAAE,CAAC;YAACC,cAAc,EAAE,CAAC;YAAC3B,KAAK,EAAC,GAAG;YAACD,MAAM,EAAC;UAAE,EAAC;QACxE;QACA;QACA,IAAGP,IAAI,CAACiC,MAAM,EAAC;UACX2I,EAAE,GAAAhX,aAAA,CAAAA,aAAA,KAAOgX,EAAE,GAAI5K,IAAI,CAACiC,MAAM,CAAC;QAC/B;QACA;QACA,IAAI/B,QAAQ,GAAG,IAAImH,IAAI,CAACjH,QAAQ,CAAC8K,KAAK,CAAC;UACnCzJ,SAAS,EAAEzB,IAAI,CAACyB,SAAS;UACzBC,QAAQ,EAAE1B,IAAI,CAAC0B,QAAQ;UACvB6F,gBAAgB,EAAC;YAAEzO,IAAI,EAAE3F,CAAC,CAAC0F;UAAO;QACtC,CAAC,CAAC;QACF,IAAIsS,MAAM,GAAG,IAAI;UAACC,KAAK,GAAG,IAAI;QAC9B,IAAGpL,IAAI,CAACgC,aAAa,EAAC;UAClB;UACA;UACA,IAAIqJ,YAAY,GAAG,IAAIhE,IAAI,CAACiE,MAAM,CAACC,mBAAmB,IAAAtO,MAAA,CAC/CC,oBAAS,CAACG,YAAY,0BAAuBuN,EAAE,CAACpK,KAAK,EAAEoK,EAAE,CAACrK,MACjE,CAAC;UACD;UACA8K,YAAY,CAACG,SAAS,CAACZ,EAAE,CAAC1I,cAAc,GAAG0I,EAAE,CAACpK,KAAK,GAAC,CAAC,EAAE,EAAEoK,EAAE,CAACzI,cAAc,GAAGyI,EAAE,CAACrK,MAAM,GAAC,CAAC,CAAC,CAAC;UAC1F4K,MAAM,GAAG,IAAI9D,IAAI,CAACoE,OAAO,CAACvL,QAAQ,EAAEmL,YAAY,EAAC;YAACpL,EAAE,EAACD,IAAI,CAACC;UAAE,CAAC,CAAC;UAC9D;UACAmL,KAAK,GAAG;YACJ3K,IAAI,EAAE1D,CAAC,CAACiD,IAAI,CAACgC,aAAa,CAAC;YAC3BpB,MAAM,EAAE;cACJrH,CAAC,EAAEqR,EAAE,CAAC1I,cAAc;cACpB1I,CAAC,EAAEoR,EAAE,CAACzI;YACV,CAAC;YACDjC,QAAQ,EAARA;UACJ,CAAC;QACL,CAAC,MAAI;UACD;UACA,IAAImL,aAAY,GAAG,IAAIhE,IAAI,CAACiE,MAAM,CAACC,mBAAmB,CACjDvL,IAAI,CAACgI,GAAG,OAAA/K,MAAA,CAAOC,oBAAS,CAACG,YAAY,8BAA2B,EAAGuN,EAAE,CAACpK,KAAK,EAAEoK,EAAE,CAACrK,MACrF,CAAC;UACD8K,aAAY,CAACK,QAAQ,CAACd,EAAE,CAACK,GAAG,CAAC;UAC7B;UACAI,aAAY,CAACG,SAAS,CAClBZ,EAAE,CAAC1I,cAAc,GAAG0I,EAAE,CAACpK,KAAK,GAAC,CAAC,EAAE,EAAEoK,EAAE,CAACzI,cAAc,GAAGyI,EAAE,CAACrK,MAAM,GAAC,CAAC,CACrE,CAAC;UACD;UACA4K,MAAM,GAAG,IAAI9D,IAAI,CAACoE,OAAO,CAACvL,QAAQ,EAAEmL,aAAY,EAAC;YAACpL,EAAE,EAACD,IAAI,CAACC;UAAE,CAAC,CAAC;UAC9D;UACA,IAAGD,IAAI,CAAC2L,YAAY,IAAIf,EAAE,CAACC,YAAY,EAAC;YACpC;YACA,IAAIe,UAAU,GAAG,eAAe;YAChC;YACA,IAAG5L,IAAI,CAAC4L,UAAU,EAAC;cACfA,UAAU,GAAG5L,IAAI,CAAC4L,UAAU,CAACC,KAAK,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;YACrD;YACA;YACAV,KAAK,GAAG;cACJ3K,IAAI,EAAE1D,CAAC,wCAAAE,MAAA,CACoC2N,EAAE,CAACmB,MAAM,IAAI,CAAC,uDAAA9O,MAAA,CACnC2O,UAAU,QAAA3O,MAAA,CAAK2N,EAAE,CAACC,YAAY,+CAEpD,CAAC;cACD;cACAjK,MAAM,EAAE;gBACJrH,CAAC,EAAEqR,EAAE,CAACE,WAAW,IAAIF,EAAE,CAAC1I,cAAc,GAAG0I,EAAE,CAACpK,KAAK,GAAC,CAAC,CAAC;gBACpDhH,CAAC,EAAEoR,EAAE,CAACG,WAAW,GAAIH,EAAE,CAACzI;cAC5B,CAAC;cACDjC,QAAQ,EAARA;YACJ,CAAC;UACL;QACJ;QACA;QACA,IAAG,CAACF,IAAI,CAACgC,aAAa,IAAI4I,EAAE,CAACI,cAAc,IAAI,CAAC,EAAC;UAC7C7X,CAAC,CAAC6Y,cAAc,CAAChM,IAAI,CAACC,EAAE,EAACkL,MAAM,CAAC;QACpC,CAAC,MAAI;UACDhY,CAAC,CAAC6Y,cAAc,CAAChM,IAAI,CAACC,EAAE,EAAC,IAAI,CAAC;QAClC;QACA;QACA9M,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC4J,QAAQ,CAACvE,GAAG,CAACqK,MAAM,CAAC;QAChC;QACA;QACAhY,CAAC,CAAC8Y,iBAAiB,CAACjM,IAAI,CAACC,EAAE,EAACmL,KAAK,CAAC;QAClC;QACAV,KAAK,CAAChX,IAAI,CAACsM,IAAI,CAACC,EAAE,CAAC;QACnB;QACA9M,CAAC,CAACsG,EAAE,CAACyS,UAAU,CAAClM,IAAI,CAACC,EAAE,EAACkL,MAAM,CAAC,CAC9BgB,eAAe,CAACnM,IAAI,CAACC,EAAE,EAAC;UACrBkD,UAAU,EAAAvP,aAAA,CAAAA,aAAA,KAAMoM,IAAI;YAACoD,KAAK,EAAEpD;UAAI,EAAC;UACjCoM,YAAY,EAAE,OAAO;UACrBhM,QAAQ,EAAE;YACNxC,IAAI,EAAE,OAAO;YACbrE,CAAC,EAAEyG,IAAI,CAACyB,SAAS;YACjBjI,CAAC,EAAEwG,IAAI,CAAC0B;UACZ;QACJ,CAAC,CAAC;MACN,CAAC,CAAC;MACF,IAAG9D,IAAI,KAAK,SAAS,EAAC;QAClB;QACA,IAAGA,IAAI,EAAC;UACJzK,CAAC,CAACqI,KAAK,CAACU,OAAO,GAAAtI,aAAA,CAAAA,aAAA,KACRT,CAAC,CAACqI,KAAK,CAACU,OAAO,OAAAnI,eAAA,KACb6J,IAAI,EAAG8M,KAAK,EACpB;UACD;UACA;UACA;UACA;UACA;UACA;QACJ,CAAC,MAAI;UACDvX,CAAC,CAACqI,KAAK,CAACI,QAAQ,GAAG8O,KAAK;UACxB;UACA;UACA;UACA;QACJ;MACJ;IACJ;IACA;EAAA;IAAAvW,GAAA;IAAAjC,KAAA,EACA,SAAAsR,YAAYpF,SAAS,EAAC;MAAA,IAAAiO,MAAA;MAClB,IAAIlZ,CAAC,GAAG,IAAI;MACZ;MACAiL,SAAS,CAAC2B,GAAG,CAAC,UAACC,IAAI,EAAC6C,KAAK,EAAG;QACxB;QACA,IAAIwJ,MAAI,CAAC5S,EAAE,CAACkR,YAAY,CAAC3K,IAAI,CAACC,EAAE,CAAC,EAAE;UAC/B;UACA,IAAG,CAACD,IAAI,CAACyB,SAAS,IAAI,CAACzB,IAAI,CAAC0B,QAAQ,EAAC;YACjCmI,OAAO,CAACC,IAAI,qDAAa,CAAC;YAC1B,OAAO,KAAK;UAChB;UACA;UACA,IAAIwC,EAAE,GAAGnZ,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAACH,IAAI,CAACC,EAAE,CAAC;UACjC,IAAI2K,EAAE,GAAG;YACLpK,KAAK,EAAG,EAAE;YACVD,MAAM,EAAG,EAAE;YACXsK,YAAY,EAAE,EAAE;YAChBC,WAAW,EAAE,CAAC;YACdC,WAAW,EAAE,EAAE;YACfC,cAAc,EAAE,CAAC;YACjB;YACA;YACA9I,cAAc,EAAE,CAAC,EAAE;YACnBC,cAAc,EAAE,CAAC,EAAE;YACnB8I,GAAG,EAAE;UACT,CAAC;UACD,IAAGjL,IAAI,CAACgC,aAAa,EAAC;YAClB4I,EAAE,GAAAhX,aAAA,CAAAA,aAAA,KAAOgX,EAAE;cAAC1I,cAAc,EAAE,CAAC;cAACC,cAAc,EAAE,CAAC;cAAC3B,KAAK,EAAC,GAAG;cAACD,MAAM,EAAC;YAAE,EAAC;UACxE;UACA,IAAGP,IAAI,CAACiC,MAAM,EAAC;YACX2I,EAAE,GAAAhX,aAAA,CAAAA,aAAA,KAAOgX,EAAE,GAAI5K,IAAI,CAACiC,MAAM,CAAC;UAC/B;UACA;UACA,IAAI/B,QAAQ,GAAG,IAAImH,IAAI,CAACjH,QAAQ,CAAC8K,KAAK,CAAC;YACnCzJ,SAAS,EAAEzB,IAAI,CAACyB,SAAS;YACzBC,QAAQ,EAAE1B,IAAI,CAAC0B,QAAQ;YACvB6F,gBAAgB,EAAC;cAAEzO,IAAI,EAAE3F,CAAC,CAAC0F;YAAO;UACtC,CAAC,CAAC;UACF;UACA,IAAIuS,KAAK,GAAG,IAAI;UAChB,IAAGpL,IAAI,CAACgC,aAAa,EAAC;YAClB;YACA,IAAGsK,EAAE,CAAChB,MAAM,EAAC;cACTgB,EAAE,CAAChB,MAAM,CAACiB,MAAM,IAAAtP,MAAA,CAAIC,oBAAS,CAACG,YAAY,wBAAqB,CAAC;YACpE;YACA;YACA+N,KAAK,GAAG;cACJ3K,IAAI,EAAE1D,CAAC,CAACiD,IAAI,CAACgC,aAAa,CAAC;cAC3BpB,MAAM,EAAE;gBACJrH,CAAC,EAAEqR,EAAE,CAAC1I,cAAc;gBACpB1I,CAAC,EAAEoR,EAAE,CAACzI;cACV,CAAC;cACDjC,QAAQ,EAARA;YACJ,CAAC;UAEL,CAAC,MAAI;YACD;YACA,IAAGoM,EAAE,CAAChB,MAAM,EAAC;cACTgB,EAAE,CAAChB,MAAM,CAACiB,MAAM,CAACvM,IAAI,CAACgI,GAAG,OAAA/K,MAAA,CAAOC,oBAAS,CAACG,YAAY,8BAA2B,CAAC;YACtF;YACAiP,EAAE,CAAChB,MAAM,CAACI,QAAQ,CAACd,EAAE,CAACK,GAAG,CAAC;YAC1B;YACA,IAAGjL,IAAI,CAAC2L,YAAY,IAAIf,EAAE,CAACC,YAAY,EAAC;cACpC;cACA,IAAIe,UAAU,GAAG,eAAe;cAChC;cACA,IAAG5L,IAAI,CAAC4L,UAAU,EAAC;gBACfA,UAAU,GAAG5L,IAAI,CAAC4L,UAAU,CAACC,KAAK,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;cACrD;cACA;cACAV,KAAK,GAAG;gBACJ3K,IAAI,EAAE1D,CAAC,mFAAAE,MAAA,CAEe2O,UAAU,QAAA3O,MAAA,CAAK2N,EAAE,CAACC,YAAY,mDAEpD,CAAC;gBACD;gBACAjK,MAAM,EAAE;kBACJrH,CAAC,EAAEqR,EAAE,CAACE,WAAW,IAAIF,EAAE,CAAC1I,cAAc,GAAG0I,EAAE,CAACpK,KAAK,GAAC,CAAC,CAAC;kBACpDhH,CAAC,EAAEoR,EAAE,CAACG,WAAW,GAAIH,EAAE,CAACzI;gBAC5B,CAAC;gBACDjC,QAAQ,EAARA;cACJ,CAAC;YACL;UACJ;UACA;UACA,IAAGoM,EAAE,CAAChB,MAAM,EAAC;YACTgB,EAAE,CAAChB,MAAM,CAACE,SAAS,CAACZ,EAAE,CAAC1I,cAAc,GAAG0I,EAAE,CAACpK,KAAK,GAAC,CAAC,EAAE,EAAEoK,EAAE,CAACzI,cAAc,GAAGyI,EAAE,CAACrK,MAAM,GAAC,CAAC,CAAC,CAAC;YACvF+L,EAAE,CAAChB,MAAM,CAACkB,QAAQ,CAAC5B,EAAE,CAACpK,KAAK,CAAC;YAC5B8L,EAAE,CAAChB,MAAM,CAACmB,SAAS,CAAC7B,EAAE,CAACrK,MAAM,CAAC;UAClC;UACA;UACA,IAAG,CAACP,IAAI,CAACgC,aAAa,IAAI4I,EAAE,CAACI,cAAc,IAAI,CAAC,EAAC;YAC7C7X,CAAC,CAAC6Y,cAAc,CAAChM,IAAI,CAACC,EAAE,EAACqM,EAAE,CAAC;UAChC,CAAC,MAAI;YACDnZ,CAAC,CAAC6Y,cAAc,CAAChM,IAAI,CAACC,EAAE,EAAC,IAAI,CAAC;UAClC;;UAEA;UACA,IAAG2K,EAAE,CAAC8B,WAAW,EAAC;YACdvZ,CAAC,CAACwZ,MAAM,CAAC3M,IAAI,CAACC,EAAE,EAAC,CAACD,IAAI,CAACyB,SAAS,EAACzB,IAAI,CAAC0B,QAAQ,CAAC,EAACkJ,EAAE,CAACgC,cAAc,EAAChC,EAAE,CAACiC,YAAY,EAAC7M,IAAI,CAACgI,GAAG,EAAChI,IAAI,CAAC8M,OAAO,CAAC;UAC5G,CAAC,MAAI;YACD;YACA,IAAGR,EAAE,CAAClM,QAAQ,EAAC;cACX;cACA;cACAkM,EAAE,CAACS,WAAW,CAAC7M,QAAQ,CAAC;cACxB;cACAoM,EAAE,CAACU,OAAO,CAACC,MAAM,CAACjN,IAAI,CAACyB,SAAS,EAACzB,IAAI,CAAC0B,QAAQ,EAAC1B,IAAI,CAACyB,SAAS,EAACzB,IAAI,CAAC0B,QAAQ,EAAC,IAAI2F,IAAI,CAACkB,gBAAgB,CAAC;gBAAEzP,IAAI,EAAE3F,CAAC,CAAC0F;cAAO,CAAC,CAAC,CAAC;cAC1H,IAAGyT,EAAE,CAACU,OAAO,CAACE,MAAM,IAAIZ,EAAE,CAACU,OAAO,CAACE,MAAM,CAAC,CAAC,CAAC,EAAC;gBACzCZ,EAAE,CAACU,OAAO,CAACE,MAAM,CAAC,CAAC,CAAC,CAAC9F,MAAM,CAAC6F,MAAM,CAACjN,IAAI,CAACyB,SAAS,EAACzB,IAAI,CAAC0B,QAAQ,EAAC1B,IAAI,CAACyB,SAAS,EAACzB,IAAI,CAAC0B,QAAQ,EAAC,IAAI2F,IAAI,CAACkB,gBAAgB,CAAC;kBAAEzP,IAAI,EAAE3F,CAAC,CAAC0F;gBAAO,CAAC,CAAC,CAAC;cAC/I;cACA;cACA;YACJ;UACJ;UACA;UACA,IAAG1F,CAAC,CAACkG,KAAK,CAAC2G,IAAI,CAACC,EAAE,CAAC,EAAC;YAChB9M,CAAC,CAACkG,KAAK,CAAC2G,IAAI,CAACC,EAAE,CAAC,CAACQ,IAAI,CAACQ,MAAM,CAAC,CAAC;UAClC;UACA;UACA9N,CAAC,CAAC8Y,iBAAiB,CAACjM,IAAI,CAACC,EAAE,EAACmL,KAAK,CAAC;UAClC;UACAjY,CAAC,CAACsG,EAAE,CAAC0S,eAAe,CAChBnM,IAAI,CAACC,EAAE,EACP;YACIkD,UAAU,EAAAvP,aAAA,CAAAA,aAAA,KAAMoM,IAAI;cAACoD,KAAK,EAAEpD;YAAI,EAAC;YACjCoM,YAAY,EAAE,OAAO;YACrBhM,QAAQ,EAAE;cACNxC,IAAI,EAAE,OAAO;cACbrE,CAAC,EAAEyG,IAAI,CAACyB,SAAS;cACjBjI,CAAC,EAAEwG,IAAI,CAAC0B;YACZ;UACJ,CACJ,CAAC;QACL,CAAC,MAAI;UACDmI,OAAO,CAACC,IAAI,sDAAc,CAAC;UAC3B,OAAO,KAAK;QAChB;MACJ,CAAC,CAAC;MACF3W,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC4J,QAAQ,CAAC8H,OAAO,CAAC,CAAC;MAC9Bha,CAAC,CAACia,aAAa,CAAC,CAAC;IACrB;IACA;EAAA;IAAAjZ,GAAA;IAAAjC,KAAA,EACA,SAAAiN,QAAQd,QAAQ,EAACT,IAAI,EAAC;MAClB,IAAIzK,CAAC,GAAG,IAAI;MACZ,IAAIka,KAAK,GAAA9Y,kBAAA,CAAOpB,CAAC,CAACqI,KAAK,CAACK,OAAO,CAAC;MAChC,IAAG+B,IAAI,IAAIA,IAAI,KAAK,SAAS,EAAC;QAC1ByP,KAAK,GAAA9Y,kBAAA,CAAOpB,CAAC,CAACqI,KAAK,CAACU,OAAO,CAAC0B,IAAI,CAAC,CAAC;MACtC;MACA;MACAS,QAAQ,CAAC0B,GAAG,CAAC,UAACC,IAAI,EAAC6C,KAAK,EAAG;QACvB;QACA,IAAI1P,CAAC,CAACsG,EAAE,CAACkR,YAAY,CAAC3K,IAAI,CAACC,EAAE,CAAC,EAAE;UAC5B4J,OAAO,CAACC,IAAI,0BAAA7M,MAAA,CAAW+C,IAAI,CAACC,EAAE,kBAAK,CAAC;UACpC,OAAO,KAAK;QAChB;QACA;QACA,IAAG,EAAED,IAAI,CAAC2B,KAAK,IAAI3B,IAAI,CAAC2B,KAAK,CAAC/P,MAAM,IAAI,CAAC,CAAC,EAAC;UACvCiY,OAAO,CAACC,IAAI,kDAAe,CAAC;UAC5B,OAAO,KAAK;QAChB;QACA;QACA,IAAIc,EAAE,GAAG;UACLxI,KAAK,EAAE,SAAS;UAChBmB,WAAW,EAAE,GAAG;UAChBlB,SAAS,EAAE,CAAC;UACZC,QAAQ,EAAE,OAAO;UACjBgL,QAAQ,EAAE;QACd,CAAC;QACD;QACA,IAAGtN,IAAI,CAACiC,MAAM,EAAC;UACX2I,EAAE,GAAAhX,aAAA,CAAAA,aAAA,KAAOgX,EAAE,GAAI5K,IAAI,CAACiC,MAAM,CAAC;QAC/B;QACA;QACA,IAAIsL,QAAQ,GAAG,IAAIlG,IAAI,CAACjH,QAAQ,CAACoN,QAAQ,CAAC;UACtC7L,KAAK,EAAE,CAAApN,kBAAA,CAAKyL,IAAI,CAAC2B,KAAK,EAAE;UACxB4F,gBAAgB,EAAE;YAAEzO,IAAI,EAAE3F,CAAC,CAAC0F;UAAM;QACtC,CAAC,CAAC;QACF;QACA,IAAIsQ,KAAK,GAAG9B,IAAI,CAACiE,MAAM,CAACmC,gBAAgB,CAACC,WAAW;QACpD,QAAO9C,EAAE,CAACtI,QAAQ;UACd,KAAK,OAAO;YACR6G,KAAK,GAAG9B,IAAI,CAACiE,MAAM,CAACmC,gBAAgB,CAACC,WAAW;YACpD;UACA,KAAK,QAAQ;YACTvE,KAAK,GAAG9B,IAAI,CAACiE,MAAM,CAACmC,gBAAgB,CAACE,UAAU;YACnD;QACJ;QACA;QACA,IAAIvL,KAAK,GAAG,IAAIiF,IAAI,CAACuG,KAAK,CAAChD,EAAE,CAACxI,KAAK,CAAC;QACpCA,KAAK,CAACyL,CAAC,GAAGjD,EAAE,CAACrH,WAAW;QACxB;QACA,IAAIuK,UAAU,GAAG,IAAIzG,IAAI,CAACiE,MAAM,CAACmC,gBAAgB,CAACtE,KAAK,EAAC/G,KAAK,EAACwI,EAAE,CAACvI,SAAS,CAAC;QAC3E;QACA,IAAIlH,IAAI,GAAG,IAAIkM,IAAI,CAACoE,OAAO,CAAC8B,QAAQ,EAACO,UAAU,EAAC;UAAC7N,EAAE,EAACD,IAAI,CAACC;QAAE,CAAC,CAAC;QAC7D;QACA,IAAG2K,EAAE,CAAC0C,QAAQ,EAAC;UACXnS,IAAI,CAACsJ,IAAI,CAAC,CAAC;QACf,CAAC,MAAI;UACDtJ,IAAI,CAACwJ,IAAI,CAAC,CAAC;QACf;QACA0I,KAAK,CAAC3Z,IAAI,CAACsM,IAAI,CAACC,EAAE,CAAC;QACnB;QACA9M,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC4J,QAAQ,CAACvE,GAAG,CAAC3F,IAAI,CAAC;QAC9B;QACAhI,CAAC,CAACsG,EAAE,CAACyS,UAAU,CAAClM,IAAI,CAACC,EAAE,EAAC9E,IAAI,CAAC,CAC5BgR,eAAe,CAACnM,IAAI,CAACC,EAAE,EAAC;UACrBkD,UAAU,EAAAvP,aAAA,CAAAA,aAAA,KACHoM,IAAI;YACP2B,KAAK,EAAE3B,IAAI,CAAC2B,KAAK;YACjByB,KAAK,EAAEpD;UAAI,EACd;UACDoM,YAAY,EAAE,UAAU;UACxBhM,QAAQ,EAAE;YACNxC,IAAI,EAAE,UAAU;YAChB+D,KAAK,EAAE3B,IAAI,CAAC2B;UAChB;QACJ,CAAC,CAAC;MACN,CAAC,CAAC;MACF,IAAG/D,IAAI,KAAK,SAAS,EAAC;QAClB;QACA,IAAGA,IAAI,EAAC;UACJzK,CAAC,CAACqI,KAAK,CAACU,OAAO,GAAAtI,aAAA,CAAAA,aAAA,KACRT,CAAC,CAACqI,KAAK,CAACU,OAAO,OAAAnI,eAAA,KACb6J,IAAI,EAAGyP,KAAK,EACpB;UACD;UACA;UACA;UACA;UACA;UACA;QACJ,CAAC,MAAI;UACDla,CAAC,CAACqI,KAAK,CAACK,OAAO,GAAGwR,KAAK;UACvB;UACA;UACA;QACJ;MACJ;IACJ;IACA;EAAA;IAAAlZ,GAAA;IAAAjC,KAAA,EACA,SAAAqQ,WAAWlE,QAAQ,EAAC;MAChB,IAAIlL,CAAC,GAAG,IAAI;MACZ;MACAkL,QAAQ,CAAC0B,GAAG,CAAC,UAACC,IAAI,EAAC6C,KAAK,EAAG;QACvB;QACA,IAAI1P,CAAC,CAACsG,EAAE,CAACkR,YAAY,CAAC3K,IAAI,CAACC,EAAE,CAAC,EAAE;UAC5B;UACA,IAAG,EAAED,IAAI,CAAC2B,KAAK,IAAI3B,IAAI,CAAC2B,KAAK,CAAC/P,MAAM,IAAI,CAAC,CAAC,EAAC;YACvCiY,OAAO,CAACC,IAAI,kDAAe,CAAC;YAC5B,OAAO,KAAK;UAChB;QACJ,CAAC,MAAI;UACDD,OAAO,CAACC,IAAI,4DAAe,CAAC;UAC5B,OAAO,KAAK;QAChB;QACA,IAAIwC,EAAE,GAAGnZ,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAACH,IAAI,CAACC,EAAE,CAAC;QACjC;QACA,IAAI2K,EAAE,GAAG;UACLxI,KAAK,EAAE,SAAS;UAChBmB,WAAW,EAAE,GAAG;UAChBlB,SAAS,EAAE,CAAC;UACZC,QAAQ,EAAE,OAAO;UAAC;UAClBgL,QAAQ,EAAE;QACd,CAAC;QACD;QACA,IAAGtN,IAAI,CAACiC,MAAM,EAAC;UACX2I,EAAE,GAAAhX,aAAA,CAAAA,aAAA,KAAOgX,EAAE,GAAI5K,IAAI,CAACiC,MAAM,CAAC;QAC/B;QACA;QACAqK,EAAE,CAAClM,QAAQ,CAAC2N,UAAU,CAAC,CAAC,CAAC;QACzB;QACAzB,EAAE,CAAClM,QAAQ,CAAC4N,OAAO,CAAAzZ,kBAAA,CAAKyL,IAAI,CAAC2B,KAAK,CAAC,CAAC;QACpC,IAAAsM,WAAA,GAAgB9a,CAAC,CAAC+a,QAAQ,CAAClO,IAAI,CAAC2B,KAAK,CAAC;UAAjCqL,OAAO,GAAAiB,WAAA,CAAPjB,OAAO;QACZ;QACAV,EAAE,CAACU,OAAO,CAACC,MAAM,CAACD,OAAO,CAACvL,SAAS,EAACuL,OAAO,CAACtL,QAAQ,EAACsL,OAAO,CAACvL,SAAS,EAACuL,OAAO,CAACtL,QAAQ,EAAC,IAAI2F,IAAI,CAACkB,gBAAgB,CAAC;UAAEzP,IAAI,EAAE3F,CAAC,CAAC0F;QAAO,CAAC,CAAC,CAAC;QACtI;QACA;QACA;QACA,IAAIuJ,KAAK,GAAG,IAAIiF,IAAI,CAACuG,KAAK,CAAChD,EAAE,CAACxI,KAAK,CAAC;QACpCA,KAAK,CAACyL,CAAC,GAAGjD,EAAE,CAACrH,WAAW;QACxB+I,EAAE,CAAChB,MAAM,CAAC6C,QAAQ,CAAC/L,KAAK,CAAC;QACzB;QACA,IAAI+G,KAAK,GAAG9B,IAAI,CAACiE,MAAM,CAACmC,gBAAgB,CAACC,WAAW;QACpD,QAAO9C,EAAE,CAACtI,QAAQ;UACd,KAAK,OAAO;YACR6G,KAAK,GAAG9B,IAAI,CAACiE,MAAM,CAACmC,gBAAgB,CAACC,WAAW;YACpD;UACA,KAAK,QAAQ;YACTvE,KAAK,GAAG9B,IAAI,CAACiE,MAAM,CAACmC,gBAAgB,CAACE,UAAU;YACnD;QACJ;QACArB,EAAE,CAAChB,MAAM,CAAC8C,QAAQ,CAACjF,KAAK,CAAC;QACzB;QACAmD,EAAE,CAAChB,MAAM,CAACkB,QAAQ,CAAC5B,EAAE,CAACvI,SAAS,CAAC;QAChC;QACA,IAAGuI,EAAE,CAAC0C,QAAQ,EAAC;UACXhB,EAAE,CAAC7H,IAAI,CAAC,CAAC;QACb,CAAC,MAAI;UACD6H,EAAE,CAAC3H,IAAI,CAAC,CAAC;QACb;QACAxR,CAAC,CAACsG,EAAE,CAAC0S,eAAe,CAACnM,IAAI,CAACC,EAAE,EAAC;UACzBkD,UAAU,EAAAvP,aAAA,CAAAA,aAAA,KACHoM,IAAI;YACP2B,KAAK,EAAE3B,IAAI,CAAC2B,KAAK;YACjByB,KAAK,EAAEpD;UAAI,EACd;UACDoM,YAAY,EAAE,UAAU;UACxBhM,QAAQ,EAAE;YACNxC,IAAI,EAAE,UAAU;YAChB+D,KAAK,EAAE3B,IAAI,CAAC2B;UAChB;QACJ,CAAC,CAAC;MACN,CAAC,CAAC;MACF;MACAxO,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC4J,QAAQ,CAAC8H,OAAO,CAAC,CAAC;IAClC;IACA;EAAA;IAAAhZ,GAAA;IAAAjC,KAAA,EACA,SAAAkN,WAAWd,WAAW,EAACV,IAAI,EAAC;MACxB,IAAIzK,CAAC,GAAG,IAAI;MACZ,IAAIkb,MAAM,GAAA9Z,kBAAA,CAAOpB,CAAC,CAACqI,KAAK,CAACM,UAAU,CAAC;MACpC,IAAG8B,IAAI,EAAC;QACJyQ,MAAM,GAAA9Z,kBAAA,CAAOpB,CAAC,CAACqI,KAAK,CAACU,OAAO,CAAC0B,IAAI,CAAC,CAAC;MACvC;MACA;MACAU,WAAW,CAACyB,GAAG,CAAC,UAACC,IAAI,EAAC6C,KAAK,EAAG;QAC1B;QACA,IAAI1P,CAAC,CAACsG,EAAE,CAACkR,YAAY,CAAC3K,IAAI,CAACC,EAAE,CAAC,EAAE;UAC5B4J,OAAO,CAACC,IAAI,0BAAA7M,MAAA,CAAW+C,IAAI,CAACC,EAAE,kBAAK,CAAC;UACpC,OAAO,KAAK;QAChB;QACA;QACA,IAAG,EAAED,IAAI,CAACsO,KAAK,IAAItO,IAAI,CAACsO,KAAK,CAAC1c,MAAM,IAAI,CAAC,CAAC,EAAC;UACvCiY,OAAO,CAACC,IAAI,kDAAe,CAAC;UAC5B,OAAO,KAAK;QAChB;QACA;QACA,IAAIc,EAAE,GAAG;UACLtI,QAAQ,EAAE,OAAO;UACjBD,SAAS,EAAE,CAAC;UACZkM,SAAS,EAAE,SAAS;UACpBC,WAAW,EAAE,CAAC;UACdpM,KAAK,EAAE,MAAM;UACbmB,WAAW,EAAE;UACb;QACJ,CAAC;QACD,IAAGvD,IAAI,CAACiC,MAAM,EAAC;UACX2I,EAAE,GAAAhX,aAAA,CAAAA,aAAA,KAAOgX,EAAE,GAAI5K,IAAI,CAACiC,MAAM,CAAC;QAC/B;QACA,IAAIqM,KAAK,GAAA/Z,kBAAA,CAAOyL,IAAI,CAACsO,KAAK,CAAC;QAC3B,IAAGtO,IAAI,CAACsO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAItO,IAAI,CAACsO,KAAK,CAACtO,IAAI,CAACsO,KAAK,CAAC1c,MAAM,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAIoO,IAAI,CAACsO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAItO,IAAI,CAACsO,KAAK,CAACtO,IAAI,CAACsO,KAAK,CAAC1c,MAAM,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;UAClH0c,KAAK,MAAArR,MAAA,CAAA1I,kBAAA,CAAO+Z,KAAK,IAACtO,IAAI,CAACsO,KAAK,CAAC,CAAC,CAAC,EAAC;QACpC;QACA;QACA,IAAIG,WAAW,GAAGpH,IAAI,CAACjH,QAAQ,CAACsO,OAAO,CAAC;UACpC;UACAJ,KAAK,EAAE,CAACA,KAAK,CAAC;UACd/G,gBAAgB,EAAE;YAAEzO,IAAI,EAAE3F,CAAC,CAAC0F;UAAM;QACtC,CAAC,CAAC;QACF;QACA,IAAI8V,SAAS,GAAGtH,IAAI,CAACiE,MAAM,CAACmC,gBAAgB,CAACC,WAAW;QACxD,QAAO9C,EAAE,CAACtI,QAAQ;UACd,KAAK,OAAO;YACRqM,SAAS,GAAGtH,IAAI,CAACiE,MAAM,CAACmC,gBAAgB,CAACC,WAAW;YACxD;UACA,KAAK,QAAQ;YACTiB,SAAS,GAAGtH,IAAI,CAACiE,MAAM,CAACmC,gBAAgB,CAACE,UAAU;YACvD;QACJ;QACA;QACA,IAAIY,SAAS,GAAG,IAAIlH,IAAI,CAACuG,KAAK,CAAChD,EAAE,CAAC2D,SAAS,CAAC;QAC5CA,SAAS,CAACV,CAAC,GAAGjD,EAAE,CAAC4D,WAAW;QAC5B;QACA,IAAIV,UAAU,GAAG,IAAIzG,IAAI,CAACiE,MAAM,CAACmC,gBAAgB,CAACkB,SAAS,EAACJ,SAAS,EAAC3D,EAAE,CAACvI,SAAS,CAAC;QACnF;QACA,IAAIuM,aAAa,GAAG,IAAIvH,IAAI,CAACiE,MAAM,CAACuD,gBAAgB,CAAC,CAAC;QACtD;QACAD,aAAa,CAACE,UAAU,CAAChB,UAAU,CAAC;QACpC;QACA,IAAIiB,YAAY,GAAG,IAAI1H,IAAI,CAACuG,KAAK,CAAChD,EAAE,CAACxI,KAAK,CAAC;QAC3C2M,YAAY,CAAClB,CAAC,GAAGjD,EAAE,CAACrH,WAAW;QAC/BqL,aAAa,CAACT,QAAQ,CAACY,YAAY,CAAC;QACpC;QACA,IAAI1S,OAAO,GAAG,IAAIgL,IAAI,CAACoE,OAAO,CAACgD,WAAW,EAACG,aAAa,EAAC;UAAC3O,EAAE,EAACD,IAAI,CAACC;QAAE,CAAC,CAAC;QACtE;QACA9M,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC4J,QAAQ,CAACvE,GAAG,CAACzE,OAAO,CAAC;QACjC;QACAgS,MAAM,CAAC3a,IAAI,CAACsM,IAAI,CAACC,EAAE,CAAC;QACpB;QACA9M,CAAC,CAACsG,EAAE,CAACyS,UAAU,CAAClM,IAAI,CAACC,EAAE,EAAC5D,OAAO,CAAC,CAC/B8P,eAAe,CAACnM,IAAI,CAACC,EAAE,EAAC;UACrBkD,UAAU,EAAAvP,aAAA,CAAAA,aAAA,KACHoM,IAAI;YACPsO,KAAK,EAAEtO,IAAI,CAACsO,KAAK;YACjBlL,KAAK,EAAEpD;UAAI,EACd;UACDoM,YAAY,EAAE,SAAS;UACvBhM,QAAQ,EAAE;YACNxC,IAAI,EAAE,SAAS;YACf0Q,KAAK,EAAEtO,IAAI,CAACsO;UAChB;QACJ,CAAC,CAAC;MACN,CAAC,CAAC;MACF;MACA,IAAG1Q,IAAI,EAAC;QACJzK,CAAC,CAACqI,KAAK,CAACU,OAAO,GAAAtI,aAAA,CAAAA,aAAA,KACRT,CAAC,CAACqI,KAAK,CAACU,OAAO,OAAAnI,eAAA,KACjB6J,IAAI,EAAGyQ,MAAM,EACjB;QACD;QACA;QACA;QACA;QACA;QACA;MACJ,CAAC,MAAI;QACDlb,CAAC,CAACqI,KAAK,CAACM,UAAU,GAAGuS,MAAM;QAC3B;QACA;QACA;MACJ;IACJ;IACA;EAAA;IAAAla,GAAA;IAAAjC,KAAA,EACA,SAAA8c,cAAc1Q,WAAW,EAAC;MACtB,IAAInL,CAAC,GAAG,IAAI;MACZmL,WAAW,CAACyB,GAAG,CAAC,UAACC,IAAI,EAAC6C,KAAK,EAAG;QAC1B;QACA,IAAI1P,CAAC,CAACsG,EAAE,CAACkR,YAAY,CAAC3K,IAAI,CAACC,EAAE,CAAC,EAAE;UAC5B;UACA,IAAG,EAAED,IAAI,CAACsO,KAAK,IAAItO,IAAI,CAACsO,KAAK,CAAC1c,MAAM,IAAI,CAAC,CAAC,EAAC;YACvCiY,OAAO,CAACC,IAAI,kDAAe,CAAC;YAC5B,OAAO,KAAK;UAChB;QACJ,CAAC,MAAI;UACDD,OAAO,CAACC,IAAI,4DAAe,CAAC;UAC5B,OAAO,KAAK;QAChB;QACA;QACA,IAAIwC,EAAE,GAAGnZ,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAACH,IAAI,CAACC,EAAE,CAAC;QACjC;QACA,IAAI2K,EAAE,GAAG;UACLtI,QAAQ,EAAE,OAAO;UACjBD,SAAS,EAAE,CAAC;UACZkM,SAAS,EAAE,SAAS;UACpBC,WAAW,EAAE,CAAC;UACdpM,KAAK,EAAE,MAAM;UACbmB,WAAW,EAAE;UACb;QACJ,CAAC;QACD,IAAGvD,IAAI,CAACiC,MAAM,EAAC;UACX2I,EAAE,GAAAhX,aAAA,CAAAA,aAAA,KAAOgX,EAAE,GAAI5K,IAAI,CAACiC,MAAM,CAAC;QAC/B;QACA;QACAqK,EAAE,CAAClM,QAAQ,CAAC6O,UAAU,CAAC,CAAC,CAAC;QACzB,IAAIX,KAAK,GAAA/Z,kBAAA,CAAOyL,IAAI,CAACsO,KAAK,CAAC;QAC3B,IAAGtO,IAAI,CAACsO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAItO,IAAI,CAACsO,KAAK,CAACtO,IAAI,CAACsO,KAAK,CAAC1c,MAAM,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAIoO,IAAI,CAACsO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAItO,IAAI,CAACsO,KAAK,CAACtO,IAAI,CAACsO,KAAK,CAAC1c,MAAM,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;UAClH0c,KAAK,MAAArR,MAAA,CAAA1I,kBAAA,CAAO+Z,KAAK,IAACtO,IAAI,CAACsO,KAAK,CAAC,CAAC,CAAC,EAAC;QACpC;QACA;QACAhC,EAAE,CAAClM,QAAQ,CAAC8O,OAAO,CAACZ,KAAK,CAAC;QAC1B,IAAAa,YAAA,GAAgBhc,CAAC,CAAC+a,QAAQ,CAAClO,IAAI,CAACsO,KAAK,CAAC;UAAjCtB,OAAO,GAAAmC,YAAA,CAAPnC,OAAO;QACZ;QACAV,EAAE,CAACU,OAAO,CAACC,MAAM,CAACD,OAAO,CAACrG,IAAI,EAACqG,OAAO,CAACpG,IAAI,EAACoG,OAAO,CAACnG,IAAI,EAACmG,OAAO,CAAClG,IAAI,EAAC,IAAIO,IAAI,CAACkB,gBAAgB,CAAC;UAAEzP,IAAI,EAAE3F,CAAC,CAAC0F;QAAO,CAAC,CAAC,CAAC;QACpH;QACA;;QAEA;QACA,IAAI8V,SAAS,GAAGtH,IAAI,CAACiE,MAAM,CAACmC,gBAAgB,CAACC,WAAW;QACxD,QAAO9C,EAAE,CAACtI,QAAQ;UACd,KAAK,OAAO;YACRqM,SAAS,GAAGtH,IAAI,CAACiE,MAAM,CAACmC,gBAAgB,CAACC,WAAW;YACxD;UACA,KAAK,QAAQ;YACTiB,SAAS,GAAGtH,IAAI,CAACiE,MAAM,CAACmC,gBAAgB,CAACE,UAAU;YACvD;QACJ;QACArB,EAAE,CAAChB,MAAM,CAAC8D,OAAO,CAAChB,QAAQ,CAACO,SAAS,CAAC;QACrC;QACA,IAAIJ,SAAS,GAAG,IAAIlH,IAAI,CAACuG,KAAK,CAAChD,EAAE,CAAC2D,SAAS,CAAC;QAC5CA,SAAS,CAACV,CAAC,GAAGjD,EAAE,CAAC4D,WAAW;QAC5BlC,EAAE,CAAChB,MAAM,CAAC8D,OAAO,CAACjB,QAAQ,CAACI,SAAS,CAAC;QACrC;QACAjC,EAAE,CAAChB,MAAM,CAAC8D,OAAO,CAAC5C,QAAQ,CAAC5B,EAAE,CAACvI,SAAS,CAAC;QACxC;QACA,IAAI0M,YAAY,GAAG,IAAI1H,IAAI,CAACuG,KAAK,CAAChD,EAAE,CAACxI,KAAK,CAAC;QAC3C2M,YAAY,CAAClB,CAAC,GAAGjD,EAAE,CAACrH,WAAW;QAC/B+I,EAAE,CAAChB,MAAM,CAAC6C,QAAQ,CAACY,YAAY,CAAC;QAChC5b,CAAC,CAACsG,EAAE,CAAC0S,eAAe,CAACnM,IAAI,CAACC,EAAE,EAAC;UACzBkD,UAAU,EAAAvP,aAAA,CAAAA,aAAA,KACHoM,IAAI;YACPsO,KAAK,EAAEtO,IAAI,CAACsO,KAAK;YACjBlL,KAAK,EAAEpD;UAAI,EACd;UACDoM,YAAY,EAAE,SAAS;UACvBhM,QAAQ,EAAE;YACNxC,IAAI,EAAE,SAAS;YACf0Q,KAAK,EAAEtO,IAAI,CAACsO;UAChB;QACJ,CAAC,CAAC;MACN,CAAC,CAAC;MACF;MACAnb,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC4J,QAAQ,CAAC8H,OAAO,CAAC,CAAC;IAClC;IACA;EAAA;IAAAhZ,GAAA;IAAAjC,KAAA,EACA,SAAAmN,UAAUd,UAAU,EAACX,IAAI,EAAC;MACtB,IAAIzK,CAAC,GAAG,IAAI;MACZ,IAAIkc,MAAM,GAAA9a,kBAAA,CAAOpB,CAAC,CAACqI,KAAK,CAACO,SAAS,CAAC;MACnC,IAAG6B,IAAI,EAAC;QACJyR,MAAM,GAAA9a,kBAAA,CAAOpB,CAAC,CAACqI,KAAK,CAACU,OAAO,CAAC0B,IAAI,CAAC,CAAC;MACvC;MACAW,UAAU,CAACwB,GAAG,CAAC,UAACC,IAAI,EAAC6C,KAAK,EAAG;QACzB;QACA,IAAI1P,CAAC,CAACsG,EAAE,CAACkR,YAAY,CAAC3K,IAAI,CAACC,EAAE,CAAC,EAAE;UAC5B4J,OAAO,CAACC,IAAI,cAAA7M,MAAA,CAAS+C,IAAI,CAACC,EAAE,kBAAK,CAAC;UAClC,OAAO,KAAK;QAChB;QACA;QACA,IAAG,CAACD,IAAI,CAACyB,SAAS,IAAI,CAACzB,IAAI,CAAC0B,QAAQ,EAAC;UACjCmI,OAAO,CAACC,IAAI,qDAAa,CAAC;UAC1B,OAAO,KAAK;QAChB;QACA,IAAIc,EAAE,GAAG;UACLtI,QAAQ,EAAE,OAAO;UACjBD,SAAS,EAAE,CAAC;UACZkM,SAAS,EAAE,SAAS;UACpBC,WAAW,EAAE,CAAC;UACdpM,KAAK,EAAE,MAAM;UACbmB,WAAW,EAAE;UACb;QACJ,CAAC;QACD,IAAGvD,IAAI,CAACiC,MAAM,EAAC;UACX2I,EAAE,GAAAhX,aAAA,CAAAA,aAAA,KAAOgX,EAAE,GAAI5K,IAAI,CAACiC,MAAM,CAAC;QAC/B;QACA,IAAIuE,MAAM,GAAG,IAAIa,IAAI,CAACjH,QAAQ,CAAC8K,KAAK,CAACoE,UAAU,CAACtP,IAAI,CAACyB,SAAS,CAAC,EAAC6N,UAAU,CAACtP,IAAI,CAAC0B,QAAQ,CAAC,CAAC;QAC1F;QACA,IAAIxB,QAAQ,GAAG,IAAImH,IAAI,CAACjH,QAAQ,CAACmP,MAAM,CAAC;UAAC/I,MAAM,EAACA,MAAM;UAACgJ,MAAM,EAAEF,UAAU,CAACtP,IAAI,CAACwP,MAAM;QAAC,CAAC,CAAC;QACxF;QACA,IAAIb,SAAS,GAAGtH,IAAI,CAACiE,MAAM,CAACmC,gBAAgB,CAACC,WAAW;QACxD,QAAO9C,EAAE,CAACtI,QAAQ;UACd,KAAK,OAAO;YACRqM,SAAS,GAAGtH,IAAI,CAACiE,MAAM,CAACmC,gBAAgB,CAACC,WAAW;YACxD;UACA,KAAK,QAAQ;YACTiB,SAAS,GAAGtH,IAAI,CAACiE,MAAM,CAACmC,gBAAgB,CAACE,UAAU;YACvD;QACJ;QACA;QACA,IAAIY,SAAS,GAAG,IAAIlH,IAAI,CAACuG,KAAK,CAAChD,EAAE,CAAC2D,SAAS,CAAC;QAC5CA,SAAS,CAACV,CAAC,GAAGjD,EAAE,CAAC4D,WAAW;QAC5B;QACA,IAAIV,UAAU,GAAG,IAAIzG,IAAI,CAACiE,MAAM,CAACmC,gBAAgB,CAACkB,SAAS,EAACJ,SAAS,EAACe,UAAU,CAAC1E,EAAE,CAACvI,SAAS,CAAC,CAAC;QAC/F;QACA,IAAIoN,YAAY,GAAG,IAAIpI,IAAI,CAACiE,MAAM,CAACuD,gBAAgB,CAAC,CAAC;QACrD;QACAY,YAAY,CAACX,UAAU,CAAChB,UAAU,CAAC;QACnC;QACA,IAAI4B,WAAW,GAAG,IAAIrI,IAAI,CAACuG,KAAK,CAAChD,EAAE,CAACxI,KAAK,CAAC;QAC1CsN,WAAW,CAAC7B,CAAC,GAAGjD,EAAE,CAACrH,WAAW;QAC9BkM,YAAY,CAACtB,QAAQ,CAACuB,WAAW,CAAC;QAClC;QACA,IAAIpT,MAAM,GAAG,IAAI+K,IAAI,CAACoE,OAAO,CAACvL,QAAQ,EAACuP,YAAY,EAAC;UAACxP,EAAE,EAACD,IAAI,CAACC;QAAE,CAAC,CAAC;QACjE;QACA9M,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC4J,QAAQ,CAACvE,GAAG,CAACxE,MAAM,CAAC;QAChC;QACA+S,MAAM,CAAC3b,IAAI,CAACsM,IAAI,CAACC,EAAE,CAAC;QACpB9M,CAAC,CAACsG,EAAE,CAACyS,UAAU,CAAClM,IAAI,CAACC,EAAE,EAAC3D,MAAM,CAAC,CAC9B6P,eAAe,CAACnM,IAAI,CAACC,EAAE,EAAC;UACrBkD,UAAU,EAAAvP,aAAA,CAAAA,aAAA,KAAMoM,IAAI;YAACoD,KAAK,EAAEpD;UAAI,EAAC;UACjCoM,YAAY,EAAE,QAAQ;UACtBhM,QAAQ,EAAE;YACNxC,IAAI,EAAE,QAAQ;YACdrE,CAAC,EAAE+V,UAAU,CAACtP,IAAI,CAACyB,SAAS,CAAC;YAC7BjI,CAAC,EAAE8V,UAAU,CAACtP,IAAI,CAAC0B,QAAQ,CAAC;YAC5B8N,MAAM,EAAEF,UAAU,CAACtP,IAAI,CAACwP,MAAM;UAClC;QACJ,CAAC,CAAC;MACN,CAAC,CAAC;MACF;MACA,IAAG5R,IAAI,EAAC;QACJzK,CAAC,CAACqI,KAAK,CAACU,OAAO,GAAAtI,aAAA,CAAAA,aAAA,KACRT,CAAC,CAACqI,KAAK,CAACU,OAAO,OAAAnI,eAAA,KACjB6J,IAAI,EAAGyR,MAAM,EACjB;QACD;QACA;QACA;QACA;QACA;QACA;MACJ,CAAC,MAAI;QACDlc,CAAC,CAACqI,KAAK,CAACO,SAAS,GAAGsT,MAAM;QAC1B;QACA;QACA;MACJ;IACJ;IACA;EAAA;IAAAlb,GAAA;IAAAjC,KAAA,EACA,SAAAyd,aAAapR,UAAU,EAAC;MACpB,IAAIpL,CAAC,GAAG,IAAI;MACZoL,UAAU,CAACwB,GAAG,CAAC,UAACC,IAAI,EAAC6C,KAAK,EAAG;QACzB;QACA,IAAI1P,CAAC,CAACsG,EAAE,CAACkR,YAAY,CAAC3K,IAAI,CAACC,EAAE,CAAC,EAAE;UAC5B;UACA,IAAG,CAACD,IAAI,CAACyB,SAAS,IAAI,CAACzB,IAAI,CAAC0B,QAAQ,EAAC;YACjCmI,OAAO,CAACC,IAAI,qDAAa,CAAC;YAC1B,OAAO,KAAK;UAChB;QACJ,CAAC,MAAI;UACDD,OAAO,CAACC,IAAI,gDAAa,CAAC;UAC1B,OAAO,KAAK;QAChB;QACA;QACA,IAAIwC,EAAE,GAAGnZ,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAACH,IAAI,CAACC,EAAE,CAAC;QACjC;QACA,IAAI2K,EAAE,GAAG;UACLtI,QAAQ,EAAE,OAAO;UACjBD,SAAS,EAAE,CAAC;UACZkM,SAAS,EAAE,SAAS;UACpBC,WAAW,EAAE,CAAC;UACdpM,KAAK,EAAE,MAAM;UACbmB,WAAW,EAAE;UACb;QACJ,CAAC;QACD,IAAGvD,IAAI,CAACiC,MAAM,EAAC;UACX2I,EAAE,GAAAhX,aAAA,CAAAA,aAAA,KAAOgX,EAAE,GAAI5K,IAAI,CAACiC,MAAM,CAAC;QAC/B;QACA,IAAIuE,MAAM,GAAG,IAAIa,IAAI,CAACjH,QAAQ,CAAC8K,KAAK,CAACoE,UAAU,CAACtP,IAAI,CAACyB,SAAS,CAAC,EAAC6N,UAAU,CAACtP,IAAI,CAAC0B,QAAQ,CAAC,CAAC;QAC1F;QACA,IAAIxB,QAAQ,GAAG,IAAImH,IAAI,CAACjH,QAAQ,CAACmP,MAAM,CAAC;UAAC/I,MAAM,EAACA,MAAM;UAACgJ,MAAM,EAAEF,UAAU,CAACtP,IAAI,CAACwP,MAAM;QAAC,CAAC,CAAC;QACxF;QACA,IAAIb,SAAS,GAAGtH,IAAI,CAACiE,MAAM,CAACmC,gBAAgB,CAACC,WAAW;QACxD,QAAO9C,EAAE,CAACtI,QAAQ;UACd,KAAK,OAAO;YACRqM,SAAS,GAAGtH,IAAI,CAACiE,MAAM,CAACmC,gBAAgB,CAACC,WAAW;YACxD;UACA,KAAK,QAAQ;YACTiB,SAAS,GAAGtH,IAAI,CAACiE,MAAM,CAACmC,gBAAgB,CAACE,UAAU;YACvD;QACJ;QACA;QACA,IAAIY,SAAS,GAAG,IAAIlH,IAAI,CAACuG,KAAK,CAAChD,EAAE,CAAC2D,SAAS,CAAC;QAC5CA,SAAS,CAACV,CAAC,GAAGjD,EAAE,CAAC4D,WAAW;QAC5B;QACA,IAAIV,UAAU,GAAG,IAAIzG,IAAI,CAACiE,MAAM,CAACmC,gBAAgB,CAACkB,SAAS,EAACJ,SAAS,EAACe,UAAU,CAAC1E,EAAE,CAACvI,SAAS,CAAC,CAAC;QAC/F;QACA,IAAIoN,YAAY,GAAG,IAAIpI,IAAI,CAACiE,MAAM,CAACuD,gBAAgB,CAAC,CAAC;QACrD;QACAY,YAAY,CAACX,UAAU,CAAChB,UAAU,CAAC;QACnC;QACA,IAAI4B,WAAW,GAAG,IAAIrI,IAAI,CAACuG,KAAK,CAAChD,EAAE,CAACxI,KAAK,CAAC;QAC1CsN,WAAW,CAAC7B,CAAC,GAAGjD,EAAE,CAACrH,WAAW;QAC9BkM,YAAY,CAACtB,QAAQ,CAACuB,WAAW,CAAC;QAClC;QACApD,EAAE,CAACS,WAAW,CAAC7M,QAAQ,CAAC;QACxB;QACAoM,EAAE,CAACsD,SAAS,CAACH,YAAY,CAAC;QAC1Btc,CAAC,CAACsG,EAAE,CAAC0S,eAAe,CAACnM,IAAI,CAACC,EAAE,EAAC;UACzBkD,UAAU,EAAAvP,aAAA,CAAAA,aAAA,KAAMoM,IAAI;YAACoD,KAAK,EAAEpD;UAAI,EAAC;UACjCoM,YAAY,EAAE,QAAQ;UACtBhM,QAAQ,EAAE;YACNxC,IAAI,EAAE,QAAQ;YACdrE,CAAC,EAAE+V,UAAU,CAACtP,IAAI,CAACyB,SAAS,CAAC;YAC7BjI,CAAC,EAAE8V,UAAU,CAACtP,IAAI,CAAC0B,QAAQ,CAAC;YAC5B8N,MAAM,EAAEF,UAAU,CAACtP,IAAI,CAACwP,MAAM;UAClC;QACJ,CAAC,CAAC;MACN,CAAC,CAAC;MACF;MACArc,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC4J,QAAQ,CAAC8H,OAAO,CAAC,CAAC;IAClC;IACA;EAAA;IAAAhZ,GAAA;IAAAjC,KAAA,EACA,SAAAuN,mBAAA,EAA6B;MAAA,IAAVoQ,IAAI,GAAAhc,SAAA,CAAAjC,MAAA,QAAAiC,SAAA,QAAA0C,SAAA,GAAA1C,SAAA,MAAG,EAAE;MACxB,IAAIV,CAAC,GAAG,IAAI;MACZ0c,IAAI,CAAC9P,GAAG,CAAC,UAACC,IAAI,EAAC6C,KAAK,EAAG;QACnB,IAAIiN,CAAC,GAAG9P,IAAI,IAAI,CAAC,CAAC;QAClB,IAAI5E,MAAM,GAAG,CAAC0U,CAAC,CAAC1U,MAAM,IAAI,EAAE,EAAE2E,GAAG,CAAC,UAAC+P,CAAC,EAACje,CAAC,EAAG;UACrC,IAAIkF,CAAC,GAAG,IAAIsQ,IAAI,CAACjH,QAAQ,CAAC8K,KAAK,CAAC4E,CAAC,CAACC,GAAG,EAACD,CAAC,CAACE,GAAG,CAAC;UACxCjZ,CAAC,GAAG5D,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC6E,QAAQ,CAACvJ,CAAC,CAAC;UAC/B,OAAO,CAACA,CAAC,CAACwC,CAAC,EAACxC,CAAC,CAACyC,CAAC,CAAC;QACpB,CAAC,CAAC;QACF,IAAI8M,OAAO,GAAG;UACV2J,IAAI,EAAEH,CAAC,CAACG,IAAI;UACZC,KAAK,EAAEJ,CAAC,CAACI,KAAK;UACd9N,KAAK,EAAE0N,CAAC,CAAC1N,KAAK;UACd5B,KAAK,EAAErN,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC+E,KAAK;UACxBD,MAAM,EAAEpN,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC8E,MAAM;UAC1B7E,KAAK,EAAEvI,CAAC,CAACwC,KAAK,CAAC+F;QACnB,CAAC;QACD,IAAIyU,oBAAoB,GAAG,IAAIC,OAAO,CAAC9S,eAAe,CAAClC,MAAM,EAACkL,OAAO,CAAC;QACtEnT,CAAC,CAAC2H,UAAU,CAACpH,IAAI,CAAC;UACduM,EAAE,EAAE6P,CAAC,CAAC7P,EAAE;UACR/N,KAAK,EAAEie;QACX,CAAC,CAAC;QACFA,oBAAoB,CAAC/L,IAAI,CAAC,CAAC;MAC/B,CAAC,CAAC;IACN;IACA;EAAA;IAAAjQ,GAAA;IAAAjC,KAAA,EACA,SAAA+R,sBAAA,EAAgC;MAAA,IAAV4L,IAAI,GAAAhc,SAAA,CAAAjC,MAAA,QAAAiC,SAAA,QAAA0C,SAAA,GAAA1C,SAAA,MAAG,EAAE;MAC3B,IAAIV,CAAC,GAAG,IAAI;MACZ0c,IAAI,CAAC9P,GAAG,CAAC,UAACsQ,EAAE,EAACC,GAAG,EAAG;QACfnd,CAAC,CAAC2H,UAAU,CAACiF,GAAG,CAAC,UAACC,IAAI,EAAC6C,KAAK,EAAG;UAC3B,IAAG7C,IAAI,CAACC,EAAE,IAAIoQ,EAAE,CAACpQ,EAAE,EAAC;YAChB,IAAI7E,MAAM,GAAG,CAACiV,EAAE,CAACjV,MAAM,IAAI,EAAE,EAAE2E,GAAG,CAAC,UAAC+P,CAAC,EAACje,CAAC,EAAG;cACtC,IAAIkF,CAAC,GAAG,IAAIsQ,IAAI,CAACjH,QAAQ,CAAC8K,KAAK,CAAC4E,CAAC,CAACC,GAAG,EAACD,CAAC,CAACE,GAAG,CAAC;cACxCjZ,CAAC,GAAG5D,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC6E,QAAQ,CAACvJ,CAAC,CAAC;cAC/B,OAAO,CAACA,CAAC,CAACwC,CAAC,EAACxC,CAAC,CAACyC,CAAC,CAAC;YACpB,CAAC,CAAC;YACF,IAAI8M,OAAO,GAAG;cACV2J,IAAI,EAAEI,EAAE,CAACJ,IAAI;cACbC,KAAK,EAAEG,EAAE,CAACH,KAAK;cACf9N,KAAK,EAAEiO,EAAE,CAACjO,KAAK;cACf5B,KAAK,EAAErN,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC+E,KAAK;cACxBD,MAAM,EAAEpN,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC8E;YACxB,CAAC;YACDP,IAAI,CAAC9N,KAAK,CAACqe,MAAM,CAACnV,MAAM,EAACkL,OAAO,CAAC;UACrC;QACJ,CAAC,CAAC;MACN,CAAC,CAAC;IACN;IACA;EAAA;IAAAnS,GAAA;IAAAjC,KAAA,EACA,SAAAse,qBAAA,EAA8B;MAAA,IAAT9K,GAAG,GAAA7R,SAAA,CAAAjC,MAAA,QAAAiC,SAAA,QAAA0C,SAAA,GAAA1C,SAAA,MAAG,EAAE;MACzB,IAAIV,CAAC,GAAG,IAAI;MACZuS,GAAG,CAAC3F,GAAG,CAAC,UAACE,EAAE,EAACqQ,GAAG,EAAG;QACdnd,CAAC,CAAC2H,UAAU,CAACiF,GAAG,CAAC,UAAUC,IAAI,EAAC6C,KAAK,EAAE;UACnC,IAAG5C,EAAE,IAAID,IAAI,CAACC,EAAE,EAAC;YACbD,IAAI,CAAC9N,KAAK,CAACue,KAAK,CAAC,CAAC;UACtB;QACJ,CAAC,CAAC;MACN,CAAC,CAAC;IACN;IACA;EAAA;IAAAtc,GAAA;IAAAjC,KAAA,EACA,SAAAwe,wBAAA,EAAyB;MACrB,IAAIvd,CAAC,GAAG,IAAI;MACZA,CAAC,CAAC2H,UAAU,CAACiF,GAAG,CAAC,UAAUC,IAAI,EAAC6C,KAAK,EAAE;QACnC7C,IAAI,CAAC9N,KAAK,CAACue,KAAK,CAAC,CAAC;MACtB,CAAC,CAAC;IACN;IACA;EAAA;IAAAtc,GAAA;IAAAjC,KAAA,EACA,SAAAqN,eAAA,EAAsB;MAAA,IAAPuQ,CAAC,GAAAjc,SAAA,CAAAjC,MAAA,QAAAiC,SAAA,QAAA0C,SAAA,GAAA1C,SAAA,MAAG,CAAC,CAAC;MACjB,IAAIV,CAAC,GAAG,IAAI;MACZ,IAAIyX,EAAE,GAAG;QACL4E,MAAM,EAAE,EAAE;QACVmB,GAAG,EAAE,GAAG;QACRC,OAAO,EAAE,IAAI;QACbC,OAAO,EAAE;MACb,CAAC;MACD,IAAGf,CAAC,CAAC7N,MAAM,EAAC;QACR2I,EAAE,GAAAhX,aAAA,CAAAA,aAAA,KAAOgX,EAAE,GAAIkF,CAAC,CAAC7N,MAAM,CAAC;MAC5B;MACA,IAAG,CAAC9O,CAAC,CAACuH,OAAO,EAAC;QACVvH,CAAC,CAACuH,OAAO,GAAG,IAAI0V,OAAO,CAACU,cAAc,CAAC;UACnCF,OAAO,EAAEhG,EAAE,CAACgG;QAChB,CAAC,CAAC;QACFzd,CAAC,CAACuH,OAAO,CAACqW,UAAU,CAAC5d,CAAC,CAACqI,KAAK,CAACC,GAAG,EAACtI,CAAC,CAACwC,KAAK,CAAC+F,KAAK,CAAC;MACnD;MACA,IAAIsV,MAAM,GAAG;QACTxB,MAAM,EAAE5E,EAAE,CAAC4E,MAAM;QACjB;QACAqB,OAAO,EAAE3M,IAAI,CAAC0G,EAAE,CAACiG,OAAO,CAAC,GAAG,GAAG;QAC/BD,OAAO,EAAEhG,EAAE,CAACgG;MAChB,CAAC;MACD,IAAGhG,EAAE,CAACqG,QAAQ,EAAC;QACXD,MAAM,CAACC,QAAQ,GAAGrG,EAAE,CAACqG,QAAQ;MACjC;MACA9d,CAAC,CAACuH,OAAO,CAACwW,UAAU,CAACF,MAAM,CAAC;MAC5B7d,CAAC,CAACuH,OAAO,CAACyW,UAAU,CAAC;QACjBR,GAAG,EAAE/F,EAAE,CAAC+F,GAAG;QACXd,IAAI,EAAEC,CAAC,CAACD,IAAI,IAAI;MACpB,CAAC,CAAC;MACF,IAAGjF,EAAE,CAACgG,OAAO,EAAC;QACVzd,CAAC,CAACqR,aAAa,GAAG,KAAK;QACvBrR,CAAC,CAACuH,OAAO,CAACiK,IAAI,CAAC,CAAC;MACpB,CAAC,MAAI;QACDxR,CAAC,CAACqR,aAAa,GAAG,IAAI;QACtBrR,CAAC,CAACuH,OAAO,CAAC+J,IAAI,CAAC,CAAC;MACpB;IACJ;IACA;IACA;EAAA;IAAAtQ,GAAA;IAAAjC,KAAA,EACA,SAAAyT,aAAa1F,EAAE,EAAC9N,CAAC,EAAC;MACd,IAAIgB,CAAC,GAAG,IAAI;MACZ;MACA,IAAGA,CAAC,CAACiH,MAAM,IAAI6F,EAAE,EAAC,OAAO,KAAK;MAC9B,IAAG,OAAO9M,CAAC,CAACwC,KAAK,CAACgQ,YAAa,KAAI,UAAU,EAAC;QAC1C,IAAIyL,KAAK,GAAGje,CAAC,CAACgN,UAAU,CAACF,EAAE,CAAC;QAC5B,IAAIhP,GAAG,GAAG;UACNmgB,KAAK,EAALA,KAAK;UACLxT,IAAI,EAAEwT,KAAK,CAAChR,QAAQ,CAACxC,IAAI;UAAC;UAC1BuF,UAAU,EAAAvP,aAAA,CAAAA,aAAA,KAAMwd,KAAK,CAACjO,UAAU,CAACC,KAAK,GAAI;YAACnB,MAAM,EAACmP,KAAK,CAACjO,UAAU,CAAClB;UAAM,CAAC,CAAC;UAAC;UAC5EtB,GAAG,EAAExO,CAAC,CAACkf,OAAO;UAAC;UACfxQ,IAAI,EAAE1O,CAAC,CAACmf,OAAO;UACfnf,CAAC,EAAEA;QACP,CAAC;QACDgB,CAAC,CAACwC,KAAK,CAACgQ,YAAY,CAAC1U,GAAG,CAAC;MAC7B;IACJ;IACA;EAAA;IAAAkD,GAAA;IAAAjC,KAAA,EACA,SAAA4T,iBAAiB7F,EAAE,EAAC9N,CAAC,EAAC;MAClB,IAAIgB,CAAC,GAAG,IAAI;MACZ;MACA,IAAGA,CAAC,CAACqI,KAAK,CAACpB,MAAM,IAAI6F,EAAE,EAAC,OAAO,KAAK;MACpC,IAAG,OAAO9M,CAAC,CAACwC,KAAK,CAACmQ,gBAAiB,KAAK,UAAU,EAAC;QAC/C,IAAI7U,GAAG,GAAG;UACNkB,CAAC,EAADA,CAAC;UAAC8N,EAAE,EAAFA,EAAE;UACJmR,KAAK,EAAEje,CAAC,CAACgN,UAAU,CAACF,EAAE,CAAC;UACvBU,GAAG,EAAExO,CAAC,CAACkf,OAAO;UAAC;UACfxQ,IAAI,EAAE1O,CAAC,CAACmf;QACZ,CAAC;QACDne,CAAC,CAACwC,KAAK,CAACmQ,gBAAgB,CAAC7U,GAAG,CAAC;MACjC;IACJ;IACA;EAAA;IAAAkD,GAAA;IAAAjC,KAAA,EACA,SAAA6T,gBAAgB9F,EAAE,EAAC9N,CAAC,EAAC;MACjB,IAAIgB,CAAC,GAAG,IAAI;MACZ;MACA,IAAGA,CAAC,CAACqI,KAAK,CAACpB,MAAM,IAAI6F,EAAE,EAAC,OAAO,KAAK;MACpC,IAAG,OAAO9M,CAAC,CAACwC,KAAK,CAACoQ,eAAgB,KAAI,UAAU,EAAC;QAC7C,IAAI9U,GAAG,GAAG;UACNkB,CAAC,EAADA,CAAC;UAAC8N,EAAE,EAAFA,EAAE;UACJmR,KAAK,EAAEje,CAAC,CAACgN,UAAU,CAACF,EAAE,CAAC;UACvBU,GAAG,EAAExO,CAAC,CAACkf,OAAO;UAAC;UACfxQ,IAAI,EAAE1O,CAAC,CAACmf;QACZ,CAAC;QACDne,CAAC,CAACwC,KAAK,CAACoQ,eAAe,CAAC9U,GAAG,CAAC;MAChC;IACJ;IACA;IACA;EAAA;IAAAkD,GAAA;IAAAjC,KAAA,EACA,SAAAuR,SAAStR,CAAC,EAAC;MACP,IAAIgB,CAAC,GAAG,IAAI;MACZ,IAAG,OAAOA,CAAC,CAACwC,KAAK,CAAC8N,QAAS,KAAK,UAAU,EAAC;QACvC,IAAIxS,GAAG,GAAGkC,CAAC,CAACoe,YAAY,CAAC,CAAC;QAC1BtgB,GAAG,CAACkB,CAAC,GAAGA,CAAC;QACTlB,GAAG,CAACugB,WAAW,GAAG;UACdzB,GAAG,EAAE,CAAC5d,CAAC,CAACoP,QAAQ,IAAI,CAAC,CAAC,EAAEhI,CAAC;UACzByW,GAAG,EAAE,CAAC7d,CAAC,CAACoP,QAAQ,IAAI,CAAC,CAAC,EAAE/H;QAC5B,CAAC;QACDvI,GAAG,CAACwgB,KAAK,GAAG;UACRlY,CAAC,EAAE,CAACpH,CAAC,CAACuf,WAAW,IAAI,CAAC,CAAC,EAAEnY,CAAC;UAC1BC,CAAC,EAAE,CAACrH,CAAC,CAACuf,WAAW,IAAI,CAAC,CAAC,EAAElY;QAC7B,CAAC;QACDrG,CAAC,CAACwC,KAAK,CAAC8N,QAAQ,CAACxS,GAAG,CAAC;MACzB;IACJ;IACA;EAAA;IAAAkD,GAAA;IAAAjC,KAAA,EACA,SAAAwR,aAAavR,CAAC,EAAC;MACX,IAAIgB,CAAC,GAAG,IAAI;MACZ,IAAG,OAAOA,CAAC,CAACwC,KAAK,CAAC+N,YAAa,KAAK,UAAU,EAAC;QAC3C,IAAIzS,GAAG,GAAGkC,CAAC,CAACoe,YAAY,CAAC,CAAC;QAC1BtgB,GAAG,CAACkB,CAAC,GAAGA,CAAC;QACTgB,CAAC,CAACwC,KAAK,CAAC+N,YAAY,CAACzS,GAAG,CAAC;MAC7B;IACJ;IACA;EAAA;IAAAkD,GAAA;IAAAjC,KAAA,EACA,SAAAyR,WAAWxR,CAAC,EAAC;MACT,IAAIgB,CAAC,GAAG,IAAI;MACZ,IAAG,OAAOA,CAAC,CAACwC,KAAK,CAACgO,UAAW,KAAK,UAAU,EAAC;QACzC,IAAI1S,GAAG,GAAGkC,CAAC,CAACoe,YAAY,CAAC,CAAC;QAC1BtgB,GAAG,CAACkB,CAAC,GAAGA,CAAC;QACTgB,CAAC,CAACwC,KAAK,CAACgO,UAAU,CAAC1S,GAAG,CAAC;MAC3B;IACJ;IACA;EAAA;IAAAkD,GAAA;IAAAjC,KAAA,EACA,SAAA4R,UAAU3R,CAAC,EAAC;MACR,IAAIgB,CAAC,GAAG,IAAI;MACZ,IAAG,OAAOA,CAAC,CAACwC,KAAK,CAACmO,SAAU,KAAK,UAAU,EAAC;QACxC,IAAI7S,GAAG,GAAGkC,CAAC,CAACoe,YAAY,CAAC,CAAC;QAC1BtgB,GAAG,CAACkB,CAAC,GAAGA,CAAC;QACTgB,CAAC,CAACwC,KAAK,CAACmO,SAAS,CAAC7S,GAAG,CAAC;MAC1B;IACJ;IACA;EAAA;IAAAkD,GAAA;IAAAjC,KAAA,EACA,SAAA6R,QAAQ5R,CAAC,EAAC;MACN,IAAIgB,CAAC,GAAG,IAAI;MACZ,IAAG,OAAOA,CAAC,CAACwC,KAAK,CAACoO,OAAQ,KAAK,UAAU,EAAC;QACtC,IAAI9S,GAAG,GAAGkC,CAAC,CAACoe,YAAY,CAAC,CAAC;QAC1BtgB,GAAG,CAACkB,CAAC,GAAGA,CAAC;QACTgB,CAAC,CAACwC,KAAK,CAACoO,OAAO,CAAC9S,GAAG,CAAC;MACxB;IACJ;IACA;EAAA;IAAAkD,GAAA;IAAAjC,KAAA,EACA,SAAAoS,UAAUnS,CAAC,EAAC;MACR,IAAIgB,CAAC,GAAG,IAAI;MACZ,IAAG,OAAOA,CAAC,CAACwC,KAAK,CAAC2O,SAAU,KAAK,UAAU,EAAC;QACxC,IAAIrT,GAAG,GAAGkC,CAAC,CAACoe,YAAY,CAAC,CAAC;QAC1BtgB,GAAG,CAACkB,CAAC,GAAGA,CAAC;QACTgB,CAAC,CAACwC,KAAK,CAAC2O,SAAS,CAACrT,GAAG,CAAC;MAC1B;IACJ;IACA;EAAA;IAAAkD,GAAA;IAAAjC,KAAA,EACA,SAAAwS,QAAQvS,CAAC,EAAC;MACN,IAAIgB,CAAC,GAAG,IAAI;MACZ,IAAG,OAAOA,CAAC,CAACwC,KAAK,CAAC+O,OAAQ,KAAK,UAAU,EAAC;QACtC,IAAIzT,GAAG,GAAGkC,CAAC,CAACoe,YAAY,CAAC,CAAC;QAC1BtgB,GAAG,CAACkB,CAAC,GAAGA,CAAC;QACTgB,CAAC,CAACwC,KAAK,CAAC+O,OAAO,CAACzT,GAAG,CAAC;MACxB;IACJ;IACA;IACA;EAAA;IAAAkD,GAAA;IAAAjC,KAAA,EACA,SAAA8T,UAAW2L,EAAE,EAAE;MACX,IAAIxe,CAAC,GAAE,IAAI;MACX,IAAGwe,EAAE,EAAC;QACF;QACA,IAAI,CAACA,EAAE,CAAC,CAAC,CAAC,IAAI,CAACA,EAAE,CAAC,CAAC,CAAC,EAAE;UAClB,OAAO,KAAK;QAChB;QACA;QACA,IAAIC,CAAC,GAAGze,CAAC,CAAC0e,SAAS,CAAC,CAAC;QACrB,IAAGD,CAAC,CAAC7B,GAAG,IAAI4B,EAAE,CAAC,CAAC,CAAC,IAAIC,CAAC,CAAC5B,GAAG,IAAI2B,EAAE,CAAC,CAAC,CAAC,EAAC;UAChC,OAAO,KAAK;QAChB;QACAxe,CAAC,CAACqI,KAAK,CAACC,GAAG,CAACqW,QAAQ,CAAC,IAAIzK,IAAI,CAACjH,QAAQ,CAAC8K,KAAK,CAACyG,EAAE,CAAC,CAAC,CAAC,EAACA,EAAE,CAAC,CAAC,CAAC,EAAC,IAAItK,IAAI,CAACkB,gBAAgB,CAAAxU,eAAA,KAAGZ,CAAC,CAAC8F,OAAO,EAAG9F,CAAC,CAAC2F,IAAI,CAAC,CAAC,CAAC,CAAC;MAC/G;IACJ;IACA;EAAA;IAAA3E,GAAA;IAAAjC,KAAA,EACA,SAAA6f,aAAcxL,IAAI,EAAE;MAChB,IAAIpT,CAAC,GAAE,IAAI;MACX,IAAI6e,CAAC,GAAG7e,CAAC,CAACqI,KAAK,CAACC,GAAG,CAACwW,OAAO,CAAC,CAAC;MAC7B,IAAGD,CAAC,IAAIzL,IAAI,EAAC;QACT,OAAO,KAAK;MAChB;MACApT,CAAC,CAACqI,KAAK,CAACC,GAAG,CAACyW,OAAO,CAAClZ,QAAQ,CAACuN,IAAI,CAAC,CAAC;IACvC;IACA;IACA;AACJ;AACA;AACA;AACA;EAJI;IAAApS,GAAA;IAAAjC,KAAA,EAKA,SAAAsT,iBAAkBhH,gBAAgB,EAAE;MAChC,IAAIrL,CAAC,GAAG,IAAI;MACZ,IAAI6C,GAAG,GAAG,IAAI;MACd,IAAI4H,IAAI,GAAGY,gBAAgB,CAACZ,IAAI;MAChC,IAAIuU,GAAG,GAAG,EAAE,CAAC;MACb,IAAIlhB,GAAG,GAAG,EAAE,CAAC;MACb,QAAOuN,gBAAgB,CAACiH,OAAO;QAC3B,KAAK,OAAO;UACRzP,GAAG,GAAG,IAAI,CAACwF,KAAK,CAACI,QAAQ;UAC7B;QACA,KAAK,MAAM;UACP5F,GAAG,GAAG,IAAI,CAACwF,KAAK,CAACK,OAAO;UAC5B;QACA,KAAK,SAAS;UACV7F,GAAG,GAAG,IAAI,CAACwF,KAAK,CAACM,UAAU;UAC/B;QACA,KAAK,QAAQ;UACT9F,GAAG,GAAG,IAAI,CAACwF,KAAK,CAACO,SAAS;UAC9B;QACA,KAAK,KAAK;UACN/F,GAAG,GAAG,IAAI,CAACwF,KAAK,CAACI,QAAQ,CAACqB,MAAM,CAAC,IAAI,CAACzB,KAAK,CAACK,OAAO,CAAC,CAACoB,MAAM,CAAC,IAAI,CAACzB,KAAK,CAACM,UAAU,CAAC,CAACmB,MAAM,CAAC,IAAI,CAACzB,KAAK,CAACO,SAAS,CAAC;UACnH;QACA;UACI/F,GAAG,GAAGwI,gBAAgB,CAACiH,OAAO;UAClC;MACJ;MAGA,IAAG,OAAOzP,GAAI,KAAK,QAAQ,EAAC;QACxBmc,GAAG,GAAGnc,GAAG,CAAC6V,KAAK,CAAC,GAAG,CAAC;MACxB,CAAC,MAAK,IAAG7V,GAAG,YAAYvE,KAAK,EAAC;QAC1B0gB,GAAG,GAAGnc,GAAG;MACb;MACA,IAAGmc,GAAG,CAAC,CAAC,CAAC,YAAY1gB,KAAK,EAAC;QACvBR,GAAG,MAAAgM,MAAA,CAAA1I,kBAAA,CAAOtD,GAAG,GAAAsD,kBAAA,CAAI4d,GAAG,EAAC;MACzB,CAAC,MAAI;QACD,KAAI,IAAItgB,CAAC,GAAG,CAAC,EAAGA,CAAC,GAAGsgB,GAAG,CAACvgB,MAAM,EAAGC,CAAC,EAAE,EAAC;UACjC,IAAIugB,CAAC,GAAGjf,CAAC,CAACsG,EAAE,CAACyJ,eAAe,CAACiP,GAAG,CAACtgB,CAAC,CAAC,CAAC;UACpC,QAAOugB,CAAC,CAAChS,QAAQ,CAACxC,IAAI;YAClB,KAAK,OAAO;YACZ,KAAK,QAAQ;cACT3M,GAAG,CAACyC,IAAI,CAAC,CAAC0e,CAAC,CAAChS,QAAQ,CAAC7G,CAAC,EAAC6Y,CAAC,CAAChS,QAAQ,CAAC5G,CAAC,CAAC,CAAC;cACzC;YACA,KAAK,UAAU;cACXvI,GAAG,MAAAgM,MAAA,CAAA1I,kBAAA,CAAOtD,GAAG,GAAAsD,kBAAA,CAAI6d,CAAC,CAAChS,QAAQ,CAACuB,KAAK,EAAC;cACtC;YACA,KAAK,SAAS;cACV1Q,GAAG,MAAAgM,MAAA,CAAA1I,kBAAA,CAAOtD,GAAG,GAAAsD,kBAAA,CAAI6d,CAAC,CAAChS,QAAQ,CAACkO,KAAK,EAAC;cACtC;UACJ;QACJ;MACJ;MACA,IAAA+D,YAAA,GAAgBlf,CAAC,CAAC+a,QAAQ,CAACjd,GAAG,CAAC;QAA1B+b,OAAO,GAAAqF,YAAA,CAAPrF,OAAO;MACZ,IAAGA,OAAO,CAACrG,IAAI,IAAIqG,OAAO,CAACnG,IAAI,IAAImG,OAAO,CAACpG,IAAI,IAAIoG,OAAO,CAAClG,IAAI,EAAC;QAC5D;QACAkG,OAAO,GAAG7Z,CAAC,CAACmf,gBAAgB,CAACtF,OAAO,EAAC,GAAG,CAAC;QACzC,IAAIuF,GAAG,GAAG,IAAIlL,IAAI,CAACjH,QAAQ,CAACkH,MAAM,CAAA1T,aAAA,CAAAA,aAAA,KAAKoZ,OAAO;UAACzF,gBAAgB,EAAAxT,eAAA,KAAIZ,CAAC,CAAC8F,OAAO,EAAG9F,CAAC,CAAC2F,IAAI;QAAE,EAAC,CAAC;QACzF,IAAG,CAAC8E,IAAI,IAAIA,IAAI,IAAI,KAAK,IAAIA,IAAI,IAAI,MAAM,EAAC;UACxCzK,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC+W,SAAS,CAACD,GAAG,CAAC;QAC9B,CAAC,MAAK,IAAG3U,IAAI,IAAI,QAAQ,EAAC;UACtBzK,CAAC,CAACqI,KAAK,CAACC,GAAG,CAACqW,QAAQ,CAACS,GAAG,CAACV,SAAS,CAAC,CAAC,CAAC;QACzC;MACJ;IACJ;IACA;IACA;EAAA;IAAA1d,GAAA;IAAAjC,KAAA,EACA,SAAAugB,iBAAA,EAAkB;MACd,IAAItf,CAAC,GAAG,IAAI;MACZ,IAAIiU,MAAM,GAAGjU,CAAC,CAACqI,KAAK,CAACC,GAAG,CAACiX,gBAAgB;MACzC,OAAO,CAAC,CAACtL,MAAM,CAACP,IAAI,GAAGO,MAAM,CAACT,IAAI,IAAE,CAAC,EAAC,CAACS,MAAM,CAACN,IAAI,GAAGM,MAAM,CAACR,IAAI,IAAE,CAAC,CAAC;IACxE;IACA;EAAA;IAAAzS,GAAA;IAAAjC,KAAA,EACA,SAAAygB,aAAA,EAAe;MACX,IAAIxf,CAAC,GAAE,IAAI;MACX,OAAOA,CAAC,CAACqI,KAAK,CAACC,GAAG,CAACmX,QAAQ,CAAC,CAAC;IACjC;IACA;EAAA;IAAAze,GAAA;IAAAjC,KAAA,EACA,SAAA2f,UAAA,EAAW;MACP,IAAI1e,CAAC,GAAG,IAAI;MACZ,IAAA0f,mBAAA,GAA+B1f,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC2L,MAAM;QAA5CT,IAAI,GAAAkM,mBAAA,CAAJlM,IAAI;QAAEC,IAAI,GAAAiM,mBAAA,CAAJjM,IAAI;QAAEC,IAAI,GAAAgM,mBAAA,CAAJhM,IAAI;QAAEC,IAAI,GAAA+L,mBAAA,CAAJ/L,IAAI;MAC3B,OAAO;QAACiJ,GAAG,EAAC,CAACpJ,IAAI,GAACE,IAAI,IAAE,CAAC;QAACmJ,GAAG,EAAE,CAACpJ,IAAI,GAACE,IAAI,IAAE;MAAC,CAAC;IACjD;IACA;EAAA;IAAA3S,GAAA;IAAAjC,KAAA,EACA,SAAAiO,WAAYF,EAAE,EAAE;MACZ,IAAI9M,CAAC,GAAG,IAAI;MACZ,IAAG,CAAC8M,EAAE,EAAC;QACH,OAAO,KAAK;MAChB;MACA,IAAI6S,EAAE,GAAG3f,CAAC,CAACsG,EAAE,CAACyJ,eAAe,CAACjD,EAAE,CAAC;MACjC,IAAI8S,EAAE,GAAG5f,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAACF,EAAE,CAAC;MAC5B,IAAG,CAAC8S,EAAE,EAAC;QACH,OAAO,KAAK;MAChB;MACA,IAAIhc,CAAC,GAAG,CAAC,CAAC;QAACic,GAAG,GAAG,EAAE;QAACjD,GAAG,GAAG,CAAC;QAACC,GAAG,GAAG,CAAC;MACnC,QAAO8C,EAAE,CAAC1G,YAAY;QAClB,KAAK,OAAO;UACR2D,GAAG,GAAGgD,EAAE,CAAC3S,QAAQ,CAAC7G,CAAC;UACnByW,GAAG,GAAG+C,EAAE,CAAC3S,QAAQ,CAAC5G,CAAC;UACnBzC,CAAC,GAAAnD,aAAA,CAAAA,aAAA,KACMkf,EAAE;YACLG,QAAQ,EAAEF,EAAE;YACZ3S,QAAQ,EAAAxM,aAAA,CAAAA,aAAA,KACDkf,EAAE,CAAC1S,QAAQ;cACd7G,CAAC,EAAEwW,GAAG;cACNvW,CAAC,EAAEwW;YAAG,EACT;YACD7M,UAAU,EAAAvP,aAAA,CAAAA,aAAA,KACHkf,EAAE,CAAC3P,UAAU;cAChB1B,SAAS,EAAEsO,GAAG;cACdrO,QAAQ,EAAEsO,GAAG;cACb5M,KAAK,EAAAxP,aAAA,CAAAA,aAAA,KACEkf,EAAE,CAAC3P,UAAU,CAACC,KAAK;gBACtB3B,SAAS,EAAEsO,GAAG;gBACdrO,QAAQ,EAAEsO;cAAG;YAChB;UACJ,EACJ;UACL;QACA,KAAK,UAAU;UACXgD,GAAG,GAAGD,EAAE,CAAC3S,QAAQ,CAACuB,KAAK,CAAC,CAAC,CAAC;UAC1B5K,CAAC,GAAAnD,aAAA,CAAAA,aAAA,KACMkf,EAAE;YACLG,QAAQ,EAAEF,EAAE;YACZ3S,QAAQ,EAAAxM,aAAA,CAAAA,aAAA,KACDkf,EAAE,CAAC1S,QAAQ;cACduB,KAAK,EAAEqR;YAAG,EACb;YACD7P,UAAU,EAAAvP,aAAA,CAAAA,aAAA,KACHkf,EAAE,CAAC3P,UAAU;cAChBxB,KAAK,EAAEqR,GAAG;cACV5P,KAAK,EAAAxP,aAAA,CAAAA,aAAA,KACEkf,EAAE,CAAC3P,UAAU,CAACC,KAAK;gBACtBzB,KAAK,EAAEqR;cAAG;YACb;UACJ,EACJ;UACL;QACA,KAAK,SAAS;UACVA,GAAG,GAAGD,EAAE,CAAC3S,QAAQ,CAACkO,KAAK,CAAC,CAAC,CAAC;UAC1BvX,CAAC,GAAAnD,aAAA,CAAAA,aAAA,KACMkf,EAAE;YACLG,QAAQ,EAAEF,EAAE;YACZ3S,QAAQ,EAAAxM,aAAA,CAAAA,aAAA,KACDkf,EAAE,CAAC1S,QAAQ;cACdkO,KAAK,EAAE0E;YAAG,EACb;YACD7P,UAAU,EAAAvP,aAAA,CAAAA,aAAA,KACHkf,EAAE,CAAC3P,UAAU;cAChBmL,KAAK,EAAE0E,GAAG;cACV5P,KAAK,EAAAxP,aAAA,CAAAA,aAAA,KACEkf,EAAE,CAAC3P,UAAU,CAACC,KAAK;gBACtBkL,KAAK,EAAE0E;cAAG;YACb,EACJ;YACDE,IAAI,EAAE,IAAAvZ,+BAAc,EAACqZ,GAAG;UAAC,EAC5B;UACL;QACA,KAAK,QAAQ;UACTjD,GAAG,GAAGgD,EAAE,CAAC3S,QAAQ,CAACoG,MAAM,CAACjN,CAAC;UAC1ByW,GAAG,GAAG+C,EAAE,CAAC3S,QAAQ,CAACoG,MAAM,CAAChN,CAAC;UAC1B,IAAIgW,MAAM,GAAG,CAAC;UACdzY,CAAC,GAAAnD,aAAA,CAAAA,aAAA,KACMkf,EAAE;YACLG,QAAQ,EAAEF,EAAE;YACZ3S,QAAQ,EAAAxM,aAAA,CAAAA,aAAA,KACDkf,EAAE,CAAC1S,QAAQ;cACd7G,CAAC,EAAEwW,GAAG;cACNvW,CAAC,EAAEwW,GAAG;cACNR,MAAM,EAANA;YAAM,EACT;YACDrM,UAAU,EAAAvP,aAAA,CAAAA,aAAA,KACHkf,EAAE,CAAC3P,UAAU;cAChB1B,SAAS,EAAEsO,GAAG;cACdrO,QAAQ,EAAEsO,GAAG;cACbR,MAAM,EAANA,MAAM;cACNpM,KAAK,EAAAxP,aAAA,CAAAA,aAAA,KACEkf,EAAE,CAAC3P,UAAU,CAACC,KAAK;gBACtB3B,SAAS,EAAEsO,GAAG;gBACdrO,QAAQ,EAAEsO,GAAG;gBACbR,MAAM,EAANA;cAAM;YACT,EACJ;YACD0D,IAAI,EAAErR,IAAI,CAACsR,EAAE,GAAC3D,MAAM,GAACA;UAAM,EAC9B;UACL;MACJ;MACA,OAAOzY,CAAC;IACZ;IACA;EAAA;IAAA5C,GAAA;IAAAjC,KAAA,EACA,SAAAqf,aAAA,EAAe;MACX,IAAIpe,CAAC,GAAG,IAAI;MACZ,IAAIigB,SAAS,GAAGjgB,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC4X,eAAe,CAAC,CAAC;MAC7C,IAAIpiB,GAAG,GAAG,CAAC,CAAC;MACZA,GAAG,CAACqiB,SAAS,GAAG;QACZvD,GAAG,EAAGqD,SAAS,CAACzM,IAAI;QACpBqJ,GAAG,EAAGoD,SAAS,CAACxM;MACpB,CAAC;MACD3V,GAAG,CAACsiB,SAAS,GAAG;QACZxD,GAAG,EAAGqD,SAAS,CAACvM,IAAI;QACpBmJ,GAAG,EAAGoD,SAAS,CAACtM;MACpB,CAAC;MACD7V,GAAG,CAACuiB,SAAS,GAAGrgB,CAAC,CAAC0e,SAAS,CAAC,CAAC;MAC7B5gB,GAAG,CAACsV,IAAI,GAAGpT,CAAC,CAACwf,YAAY,CAAC,CAAC;MAC3B1hB,GAAG,CAACwiB,OAAO,GAAG;QAACjT,KAAK,EAAErN,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC+E,KAAK;QAACD,MAAM,EAAEpN,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC8E;MAAM,CAAC;MACnEtP,GAAG,CAACue,MAAM,GAAGrc,CAAC,CAACugB,uBAAuB,CAAC,CAACziB,GAAG,CAACuiB,SAAS,CAACzD,GAAG,EAAC9e,GAAG,CAACuiB,SAAS,CAACxD,GAAG,CAAC,EACpC,CAAC/e,GAAG,CAACsiB,SAAS,CAACxD,GAAG,EAAC9e,GAAG,CAACsiB,SAAS,CAACvD,GAAG,CAAC,CAAC;MAC9E,OAAO/e,GAAG;IACd;IACA;EAAA;IAAAkD,GAAA;IAAAjC,KAAA,EACA,SAAAyhB,eAAerY,cAAc,EAAC;MAC1B,IAAInI,CAAC,GAAG,IAAI;MACZ;MACAA,CAAC,CAACqI,KAAK,CAACC,GAAG,CAACmY,sBAAsB,CAAC,CAAC;MACpC;MACA,IAAG,CAACzgB,CAAC,CAAC8H,WAAW,CAACC,SAAS,EAAC;QACxB/H,CAAC,CAAC8H,WAAW,CAACC,SAAS,GAAG,IAAI;MAClC;MACA;MACA,IAAG,CAAC/H,CAAC,CAAC8H,WAAW,CAACK,cAAc,EAAC;QAC7BnI,CAAC,CAAC8H,WAAW,CAACK,cAAc,GAAGA,cAAc;MACjD;IACJ;IACA;IACA;EAAA;IAAAnH,GAAA;IAAAjC,KAAA,EACA,SAAA4Q,cAAc7C,EAAE,EAACrC,IAAI,EAAC;MAClB,IAAIzK,CAAC,GAAG,IAAI;MACZ,IAAImS,OAAO,GAAGnS,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAACF,EAAE,CAAC;MACjC;MACA,IAAG9M,CAAC,CAACkG,KAAK,CAAC4G,EAAE,CAAC,EAAC;QACX9M,CAAC,CAACkG,KAAK,CAAC4G,EAAE,CAAC,CAACQ,IAAI,CAACQ,MAAM,CAAC,CAAC;QACzB,OAAO9N,CAAC,CAACkG,KAAK,CAAC4G,EAAE,CAAC;MACtB;MACA,IAAG,CAAC,CAACqF,OAAO,EAAC;QACT;QACA;QACA;QACAnS,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC4J,QAAQ,CAACpE,MAAM,CAACqE,OAAO,CAAC;QACpC;QACAnS,CAAC,CAACsG,EAAE,CAACqJ,aAAa,CAAC7C,EAAE,CAAC;MAC1B,CAAC,MAAI;QACD,OAAO,KAAK;MAChB;MACA,KAAI,IAAIpO,CAAC,GAAG,CAAC,EAAGA,CAAC,GAAGsB,CAAC,CAAC6H,UAAU,CAACpJ,MAAM,EAAGC,CAAC,EAAE,EAAC;QAC1C,IAAGsB,CAAC,CAAC6H,UAAU,CAACnJ,CAAC,CAAC,CAACoO,EAAE,IAAIA,EAAE,EAAC;UACxB9M,CAAC,CAAC6H,UAAU,CAAC6Y,MAAM,CAAChiB,CAAC,EAAC,CAAC,CAAC;UACxB;QACJ;MACJ;MACA,IAAI6T,GAAG,GAAG,EAAE;MACZ,QAAO9H,IAAI;QACP,KAAK,OAAO;UACR8H,GAAG,GAAGvS,CAAC,CAACqI,KAAK,CAACI,QAAQ;UAC1B;QACA,KAAK,MAAM;UACP8J,GAAG,GAAGvS,CAAC,CAACqI,KAAK,CAACK,OAAO;UACzB;QACA,KAAK,SAAS;UACV6J,GAAG,GAAGvS,CAAC,CAACqI,KAAK,CAACM,UAAU;UAC5B;QACA,KAAK,QAAQ;UACT4J,GAAG,GAAGvS,CAAC,CAACqI,KAAK,CAACO,SAAS;UAC3B;QACA,KAAK,MAAM;UACP,IAAG5I,CAAC,CAACqI,KAAK,CAACU,OAAO,CAACC,KAAK,CAAC4E,OAAO,CAACd,EAAE,CAAC,GAAG,CAAC,CAAC,EAAC;YACtC9M,CAAC,CAACqI,KAAK,CAACU,OAAO,CAACC,KAAK,CAAC0X,MAAM,CAAC1gB,CAAC,CAACqI,KAAK,CAACU,OAAO,CAACC,KAAK,CAAC4E,OAAO,CAACd,EAAE,CAAC,EAAC,CAAC,CAAC;UACrE;UACA,IAAG9M,CAAC,CAACqI,KAAK,CAACU,OAAO,CAACE,QAAQ,CAAC2E,OAAO,CAACd,EAAE,CAAC,GAAG,CAAC,CAAC,EAAC;YACzC9M,CAAC,CAACqI,KAAK,CAACU,OAAO,CAACE,QAAQ,CAACyX,MAAM,CAAC1gB,CAAC,CAACqI,KAAK,CAACU,OAAO,CAACE,QAAQ,CAAC2E,OAAO,CAACd,EAAE,CAAC,EAAC,CAAC,CAAC;UAC3E;UACA,IAAG9M,CAAC,CAACqI,KAAK,CAACU,OAAO,CAACG,OAAO,CAAC0E,OAAO,CAACd,EAAE,CAAC,GAAG,CAAC,CAAC,EAAC;YACxC9M,CAAC,CAACqI,KAAK,CAACU,OAAO,CAACG,OAAO,CAACwX,MAAM,CAAC1gB,CAAC,CAACqI,KAAK,CAACU,OAAO,CAACG,OAAO,CAAC0E,OAAO,CAACd,EAAE,CAAC,EAAC,CAAC,CAAC;UACzE;UACA,IAAG9M,CAAC,CAACqI,KAAK,CAACU,OAAO,CAACI,MAAM,CAACyE,OAAO,CAACd,EAAE,CAAC,GAAG,CAAC,CAAC,EAAC;YACvC9M,CAAC,CAACqI,KAAK,CAACU,OAAO,CAACI,MAAM,CAACuX,MAAM,CAAC1gB,CAAC,CAACqI,KAAK,CAACU,OAAO,CAACI,MAAM,CAACyE,OAAO,CAACd,EAAE,CAAC,EAAC,CAAC,CAAC;UACvE;UACA,IAAG9M,CAAC,CAACqI,KAAK,CAACU,OAAO,CAACK,SAAS,CAACwE,OAAO,CAACd,EAAE,CAAC,GAAG,CAAC,CAAC,EAAC;YAC1C9M,CAAC,CAACqI,KAAK,CAACU,OAAO,CAACK,SAAS,CAACsX,MAAM,CAAC1gB,CAAC,CAACqI,KAAK,CAACU,OAAO,CAACK,SAAS,CAACwE,OAAO,CAACd,EAAE,CAAC,EAAC,CAAC,CAAC;UAC7E;UACJ;QACA;UACI,IAAG9M,CAAC,CAACqI,KAAK,CAACI,QAAQ,CAACmF,OAAO,CAACd,EAAE,CAAC,GAAG,CAAC,CAAC,EAAC;YACjC9M,CAAC,CAACqI,KAAK,CAACI,QAAQ,CAACiY,MAAM,CAAC1gB,CAAC,CAACqI,KAAK,CAACI,QAAQ,CAACmF,OAAO,CAACd,EAAE,CAAC,EAAC,CAAC,CAAC;UAC3D;UACA,IAAG9M,CAAC,CAACqI,KAAK,CAACK,OAAO,CAACkF,OAAO,CAACd,EAAE,CAAC,GAAG,CAAC,CAAC,EAAC;YAChC9M,CAAC,CAACqI,KAAK,CAACK,OAAO,CAACgY,MAAM,CAAC1gB,CAAC,CAACqI,KAAK,CAACK,OAAO,CAACkF,OAAO,CAACd,EAAE,CAAC,EAAC,CAAC,CAAC;UACzD;UACA,IAAG9M,CAAC,CAACqI,KAAK,CAACM,UAAU,CAACiF,OAAO,CAACd,EAAE,CAAC,GAAG,CAAC,CAAC,EAAC;YACnC9M,CAAC,CAACqI,KAAK,CAACM,UAAU,CAAC+X,MAAM,CAAC1gB,CAAC,CAACqI,KAAK,CAACM,UAAU,CAACiF,OAAO,CAACd,EAAE,CAAC,EAAC,CAAC,CAAC;UAC/D;UACA,IAAG9M,CAAC,CAACqI,KAAK,CAACO,SAAS,CAACgF,OAAO,CAACd,EAAE,CAAC,GAAG,CAAC,CAAC,EAAC;YAClC9M,CAAC,CAACqI,KAAK,CAACO,SAAS,CAAC8X,MAAM,CAAC1gB,CAAC,CAACqI,KAAK,CAACO,SAAS,CAACgF,OAAO,CAACd,EAAE,CAAC,EAAC,CAAC,CAAC;UAC7D;UACJ;MACJ;MACA,IAAGA,EAAE,IAAI9M,CAAC,CAACqI,KAAK,CAACpB,MAAM,EAAC;QACpBjH,CAAC,CAACqI,KAAK,CAACpB,MAAM,GAAG,EAAE;MACvB;MACA,IAAGsL,GAAG,CAAC3E,OAAO,CAACd,EAAE,CAAC,IAAI,CAAC,CAAC,EAAC;QACrByF,GAAG,CAACmO,MAAM,CAACnO,GAAG,CAAC3E,OAAO,CAACd,EAAE,CAAC,EAAC,CAAC,CAAC;MACjC;IACJ;IACA;EAAA;IAAA9L,GAAA;IAAAjC,KAAA,EACA,SAAA4hB,SAAA,EAAU;MACN,IAAI3gB,CAAC,GAAG,IAAI;MACZ;MACA,IAAGA,CAAC,CAACuH,OAAO,EAAC;QACTvH,CAAC,CAACuH,OAAO,CAAC+V,KAAK,CAAC,CAAC;MACrB;MACAtd,CAAC,CAACuH,OAAO,GAAG,IAAI;MAChBvH,CAAC,CAAC6H,UAAU,GAAG,EAAE;MACjB7H,CAAC,CAACud,uBAAuB,CAAC,CAAC;MAC3B;MACA,IAAAqD,SAAA,GAAsD5gB,CAAC,CAACqI,KAAK;QAAxDI,QAAQ,GAAAmY,SAAA,CAARnY,QAAQ;QAACC,OAAO,GAAAkY,SAAA,CAAPlY,OAAO;QAACC,UAAU,GAAAiY,SAAA,CAAVjY,UAAU;QAACC,SAAS,GAAAgY,SAAA,CAAThY,SAAS;QAACG,OAAO,GAAA6X,SAAA,CAAP7X,OAAO;MAClD;MACA,IAAI2J,EAAE,GAAAtR,kBAAA,CAAOqH,QAAQ,CAAC;QAClBgK,EAAE,GAAArR,kBAAA,CAAOsH,OAAO,CAAC;QACjBmY,GAAG,GAAAzf,kBAAA,CAAOuH,UAAU,CAAC;QACrBmY,EAAE,GAAA1f,kBAAA,CAAOwH,SAAS,CAAC;MACvB;MACA,KAAI,IAAIlK,CAAC,GAAE,CAAC,EAAGA,CAAC,GAAGgU,EAAE,CAACjU,MAAM,EAAGC,CAAC,EAAE,EAAC;QAC/BsB,CAAC,CAAC2P,aAAa,CAAC+C,EAAE,CAAChU,CAAC,CAAC,EAAC,OAAO,CAAC;MAClC;MACA;MACA,KAAI,IAAIA,GAAC,GAAE,CAAC,EAAGA,GAAC,GAAG+T,EAAE,CAAChU,MAAM,EAAGC,GAAC,EAAE,EAAC;QAC/BsB,CAAC,CAAC2P,aAAa,CAAC8C,EAAE,CAAC/T,GAAC,CAAC,EAAC,MAAM,CAAC;MACjC;MACA;MACA,KAAI,IAAIA,GAAC,GAAE,CAAC,EAAGA,GAAC,GAAGmiB,GAAG,CAACpiB,MAAM,EAAGC,GAAC,EAAE,EAAC;QAChCsB,CAAC,CAAC2P,aAAa,CAACkR,GAAG,CAACniB,GAAC,CAAC,EAAC,SAAS,CAAC;MACrC;MACA;MACA,KAAI,IAAIA,GAAC,GAAE,CAAC,EAAGA,GAAC,GAAGoiB,EAAE,CAACriB,MAAM,EAAGC,GAAC,EAAE,EAAC;QAC/BsB,CAAC,CAAC2P,aAAa,CAACmR,EAAE,CAACpiB,GAAC,CAAC,EAAC,QAAQ,CAAC;MACnC;MACA;MACA,IAAKsK,KAAK,GAAsCD,OAAO,CAAlDC,KAAK;QAACC,QAAQ,GAA6BF,OAAO,CAA5CE,QAAQ;QAACC,OAAO,GAAqBH,OAAO,CAAnCG,OAAO;QAACC,MAAM,GAAcJ,OAAO,CAA3BI,MAAM;QAACC,SAAS,GAAIL,OAAO,CAApBK,SAAS;MAC5C,KAAI,IAAI1K,GAAC,GAAE,CAAC,EAAGA,GAAC,GAAGsK,KAAK,CAACvK,MAAM,EAAGC,GAAC,EAAE,EAAC;QAClCsB,CAAC,CAAC2P,aAAa,CAAC3G,KAAK,CAACtK,GAAC,CAAC,CAAC;MAC7B;MACA,KAAI,IAAIA,GAAC,GAAE,CAAC,EAAGA,GAAC,GAAGuK,QAAQ,CAACxK,MAAM,EAAGC,GAAC,EAAE,EAAC;QACrCsB,CAAC,CAAC2P,aAAa,CAAC1G,QAAQ,CAACvK,GAAC,CAAC,CAAC;MAChC;MACA,KAAI,IAAIA,GAAC,GAAE,CAAC,EAAGA,GAAC,GAAGwK,OAAO,CAACzK,MAAM,EAAGC,GAAC,EAAE,EAAC;QACpCsB,CAAC,CAAC2P,aAAa,CAACzG,OAAO,CAACxK,GAAC,CAAC,CAAC;MAC/B;MACA,KAAI,IAAIA,GAAC,GAAE,CAAC,EAAGA,GAAC,GAAGyK,MAAM,CAAC1K,MAAM,EAAGC,GAAC,EAAE,EAAC;QACnCsB,CAAC,CAAC2P,aAAa,CAACxG,MAAM,CAACzK,GAAC,CAAC,CAAC;MAC9B;MACA,KAAI,IAAIA,IAAC,GAAE,CAAC,EAAGA,IAAC,GAAG0K,SAAS,CAAC3K,MAAM,EAAGC,IAAC,EAAE,EAAC;QACtCsB,CAAC,CAAC2P,aAAa,CAACvG,SAAS,CAAC1K,IAAC,CAAC,CAAC;MACjC;IACJ;IACA;EAAA;IAAAsC,GAAA;IAAAjC,KAAA,EACA,SAAAoN,YAAA,EAAa;MACT,IAAInM,CAAC,GAAG,IAAI;QAACyK,IAAI,GAAG,EAAE;QAClBsW,QAAQ,GAAC;UAACvT,GAAG,EAAE,EAAE;UAAEE,IAAI,EAAE;QAAE,CAAC;QAAC+E,EAAE,GAAG;UAACjF,GAAG,EAAE,EAAE;UAACE,IAAI,EAAE;QAAE,CAAC;QACpDsT,CAAC,GAAGhhB,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC+E,KAAK;QAAC4T,CAAC,GAAGjhB,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC8E,MAAM;MAChD,QAAOpN,CAAC,CAACwC,KAAK,CAAC2J,WAAW,CAAC4U,QAAQ;QAC/B,KAAK,IAAI;UACLA,QAAQ,GAAC;YAACvT,GAAG,EAAE,EAAE;YAAEE,IAAI,EAAE;UAAE,CAAC;UAC5B+E,EAAE,GAAG;YAACjF,GAAG,EAAE,EAAE;YAACE,IAAI,EAAE;UAAE,CAAC;UACvB,IAAG,CAAC1N,CAAC,CAACwC,KAAK,CAAC2J,WAAW,CAAC1B,IAAI,EAAC;YACzBgI,EAAE,GAAG;cAACjF,GAAG,EAAE,EAAE;cAACE,IAAI,EAAE;YAAE,CAAC;UAC3B;UACJ;QACA,KAAK,IAAI;UACLqT,QAAQ,GAAC;YAACvT,GAAG,EAAEyT,CAAC,GAAG,EAAE;YAAEvT,IAAI,EAAE;UAAE,CAAC;UAChC+E,EAAE,GAAG;YAACjF,GAAG,EAAEyT,CAAC,GAAG,EAAE;YAACvT,IAAI,EAAE;UAAE,CAAC;UAC3B,IAAG,CAAC1N,CAAC,CAACwC,KAAK,CAAC2J,WAAW,CAAC1B,IAAI,EAAC;YACzBgI,EAAE,GAAG;cAACjF,GAAG,EAAEyT,CAAC,GAAG,EAAE;cAACvT,IAAI,EAAE;YAAE,CAAC;UAC/B;UACJ;QACA,KAAK,IAAI;UACLqT,QAAQ,GAAC;YAACvT,GAAG,EAAE,EAAE;YAAEE,IAAI,EAAEsT,CAAC,GAAG;UAAE,CAAC;UAChCvO,EAAE,GAAG;YAACjF,GAAG,EAAE,EAAE;YAACE,IAAI,EAAEsT,CAAC,GAAG;UAAG,CAAC;UAC5B,IAAG,CAAChhB,CAAC,CAACwC,KAAK,CAAC2J,WAAW,CAAC1B,IAAI,EAAC;YACzBgI,EAAE,GAAG;cAACjF,GAAG,EAAE,EAAE;cAACE,IAAI,EAAEsT,CAAC,GAAG;YAAE,CAAC;UAC/B;UACJ;QACA,KAAK,IAAI;UACLD,QAAQ,GAAC;YAACvT,GAAG,EAAEyT,CAAC,GAAG,EAAE;YAAGvT,IAAI,EAAEsT,CAAC,GAAG;UAAE,CAAC;UACrCvO,EAAE,GAAG;YAACjF,GAAG,EAAEyT,CAAC,GAAG,EAAE;YAACvT,IAAI,EAAGsT,CAAC,GAAG;UAAG,CAAC;UACjC,IAAG,CAAChhB,CAAC,CAACwC,KAAK,CAAC2J,WAAW,CAAC1B,IAAI,EAAC;YACzBgI,EAAE,GAAG;cAACjF,GAAG,EAAEyT,CAAC,GAAG,EAAE;cAACvT,IAAI,EAAEsT,CAAC,GAAG;YAAE,CAAC;UACnC;UACJ;MACJ;MACA,IAAG,CAACpX,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACwC,KAAK,CAAC+F,KAAK,sBAAmB,CAAC,CAAC,CAAC,CAAC,EAAC;QAC3C,IAAIkJ,QAAQ,GAAGzR,CAAC,CAACqI,KAAK,CAACC,GAAG,CAACmJ,QAAQ,CAAC,CAAC,GAAC,WAAW,GAAC,EAAE;QACpD;QACA,IAAIC,WAAW,GAAGhD,IAAI,CAACiD,GAAG,CAAC,EAAE,EAACjD,IAAI,CAACkD,KAAK,CAACH,QAAQ,CAAC,CAAC9P,QAAQ,CAAC,CAAC,CAAClD,MAAM,GAAC,CAAC,CAAC;QACvE;QACA,IAAIoT,EAAE,GAAGJ,QAAQ,GAACC,WAAW;UAACI,MAAM,GAAG,CAAC;UAACC,MAAM,GAAG,KAAK;QACvD,IAAGF,EAAE,GAAG,CAAC,EAAC;UACNE,MAAM,GAAG,IAAI;UACbF,EAAE,IAAI,EAAE;QACZ;QACA;QACA,IAAGA,EAAE,IAAI,CAAC,EAAC;UACPC,MAAM,GAAG,CAAC,GAACJ,WAAW,GAAC,GAAG;QAC9B,CAAC,MAAK,IAAGG,EAAE,IAAI,CAAC,EAAC;UACbC,MAAM,GAAG,CAAC,GAACJ,WAAW,GAAC,GAAG;QAC9B,CAAC,MAAI;UACDI,MAAM,GAAG,CAAC,GAACJ,WAAW,GAAC,GAAG;QAC9B;QACA,IAAIM,MAAM,GAAGF,MAAM,GAACL,QAAQ;QAC5B,IAAGM,MAAM,EAAC;UACNC,MAAM,IAAI,EAAE;UACZF,MAAM,IAAI,EAAE;QAChB;QACA;QACA,IAAGE,MAAM,GAAC,EAAE,EAAC;UACTF,MAAM,IAAI,GAAG;UACbE,MAAM,GAAGF,MAAM,GAACL,QAAQ;QAC5B;QACA;QACAK,MAAM,GAAGA,MAAM,IAAI,IAAI,MAAAhI,MAAA,CAAK4E,IAAI,CAACC,KAAK,CAACmD,MAAM,GAAC,IAAI,CAAC,uBAAAhI,MAAA,CAASgI,MAAM,WAAG;QACrE,IAAIoP,UAAU,iCAAApX,MAAA,CACC9J,CAAC,CAACwC,KAAK,CAAC+F,KAAK,0FAAAuB,MAAA,CACyBkI,MAAM,GAAC,CAAC,uFAAAlI,MAAA,CAEfgI,MAAM,iHAGpD;QACAlI,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACwC,KAAK,CAAC+F,KAAK,UAAO,CAAC,CAACsF,MAAM,CAACqT,UAAU,CAAC;MAClD;MACA,QAAOlhB,CAAC,CAACwC,KAAK,CAAC2J,WAAW,CAAC1B,IAAI;QAC3B,KAAK,KAAK;QACV,KAAK,OAAO;QACZ,KAAK,KAAK;QACV,KAAK,MAAM;UACPb,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACwC,KAAK,CAAC+F,KAAK,iBAAc,CAAC,CAACgF,GAAG,CAAA9M,aAAA,CAAAA,aAAA,KAC/BsgB,QAAQ;YACX3P,OAAO,EAAE;UAAO,EACnB,CAAC;QACN;UACIxH,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACwC,KAAK,CAAC+F,KAAK,sBAAmB,CAAC,CAACgF,GAAG,CAAA9M,aAAA,KACpCgS,EAAE,CACR,CAAC;UACN;MACJ;IACJ;IACA;EAAA;IAAAzR,GAAA;IAAAjC,KAAA,EACA,SAAAoiB,OAAOrU,EAAE,EAAC;MACN,IAAI9M,CAAC,GAAG,IAAI;MACZ,IAAG,CAACA,CAAC,CAAC+G,WAAW,EAAC;QACd/G,CAAC,CAAC+G,WAAW,GAAG,IAAImN,IAAI,CAACkN,QAAQ,CAACC,IAAI,CAACrhB,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC;QACnDtI,CAAC,CAACgH,YAAY,GAAG,IAAIkN,IAAI,CAACkN,QAAQ,CAACC,IAAI,CAACrhB,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC;QACpD,IAAIoE,WAAW,GAAG,SAAdA,WAAWA,CAAI1D,KAAK,EAACsY,GAAG,EAACC,OAAO,EAAG;UACnC,IAAItJ,KAAK,GAAG,EAAE;YAACR,EAAE,GAAG8J,OAAO,CAACvR,UAAU,CAAClB,MAAM;UAC7C;UACA,IAAG,CAAC,CAACyS,OAAO,CAACvR,UAAU,CAACnB,aAAa,EAAC;YAClCoJ,KAAK,GAAG;cACJ3K,IAAI,EAAEtN,CAAC,CAACkG,KAAK,CAACob,GAAG,CAAC,CAAChU,IAAI;cACvBG,MAAM,EAAE;gBACJrH,CAAC,EAAEqR,EAAE,CAAC1I,cAAc,IAAI,GAAG;gBAC3B1I,CAAC,EAAEoR,EAAE,CAACzI,cAAc,IAAI;cAC5B,CAAC;cACDjC,QAAQ,EAAE/D;YACd,CAAC;UACL,CAAC,MAAI;YACD;YACA,IAAGuY,OAAO,CAACvR,UAAU,CAACwI,YAAY,IAAIf,EAAE,CAACC,YAAY,EAAC;cAClDO,KAAK,GAAG;gBACJ3K,IAAI,EAAEtN,CAAC,CAACkG,KAAK,CAACob,GAAG,CAAC,CAAChU,IAAI;gBACvB;gBACAG,MAAM,EAAE;kBACJrH,CAAC,EAAE,CAACqR,EAAE,CAACE,WAAW,IAAI,CAAC,KAAK,CAACF,EAAE,CAAC1I,cAAc,IAAI,CAAC,EAAE,IAAI,CAAC0I,EAAE,CAACpK,KAAK,IAAI,EAAE,IAAE,CAAC,CAAC;kBAC5EhH,CAAC,EAAE,CAACoR,EAAE,CAACG,WAAW,IAAI,EAAE,KAAIH,EAAE,CAACzI,cAAc,IAAI,CAAC,EAAE;gBACxD,CAAC;gBACDjC,QAAQ,EAAE/D;cACd,CAAC;YACL;UACJ;UACA,IAAGiP,KAAK,EAAC;YACLjY,CAAC,CAAC8Y,iBAAiB,CAACwI,GAAG,EAACrJ,KAAK,CAAC;UAClC;QACJ,CAAC;QACD;QACA;QACAjY,CAAC,CAAC+G,WAAW,CAAC8I,EAAE,CAAC,YAAY,EAAC,UAAC7Q,CAAC,EAAG;UAC/B,IAAIsiB,GAAG,GAAGtiB,CAAC,CAACmT,OAAO,CAACnC,UAAU,CAAClD,EAAE;UACjC,IAAIyU,OAAO,GAAGvhB,CAAC,CAACsG,EAAE,CAACyJ,eAAe,CAACuR,GAAG,CAAC;UACvC;UACAthB,CAAC,CAACkH,YAAY,GAAG,KAAK;UACtBlH,CAAC,CAACmH,gBAAgB,CAACG,OAAO,GAAG,KAAK;UAClC,IAAG,mBAAmB,IAAItH,CAAC,CAACwC,KAAK,IAAI,OAAOxC,CAAC,CAACwC,KAAK,CAACgf,iBAAkB,IAAI,UAAU,EAAC;YACjF,IAAI1jB,GAAG,GAAG,CAAC,CAAC;YACZ,IAAGwjB,GAAG,IAAI,gBAAgB,EAAC;cACvB,IAAIrD,KAAK,GAAGje,CAAC,CAACgN,UAAU,CAAChN,CAAC,CAACiH,MAAM,CAAC;cAClCnJ,GAAG,GAAG;gBACFiiB,IAAI,EAAErR,IAAI,CAACsR,EAAE,GAACtR,IAAI,CAACiD,GAAG,CAAC3R,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAChN,CAAC,CAACiH,MAAM,CAAC,CAACgG,QAAQ,CAACoP,MAAM,EAAC,CAAC,CAAC;gBACnErd,CAAC,EAAEgB,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAChN,CAAC,CAACiH,MAAM,CAAC;gBAC5BgX,KAAK,EAALA,KAAK;gBACLnR,EAAE,EAAE9M,CAAC,CAACiH,MAAM;gBACZgG,QAAQ,EAAEjN,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAChN,CAAC,CAACiH,MAAM,CAAC,CAACgG;cACxC,CAAC;YACL,CAAC,MAAI;cACD,IAAIgR,MAAK,GAAGje,CAAC,CAACgN,UAAU,CAACsU,GAAG,CAAC;cAC7BxjB,GAAG,GAAG;gBACFkB,CAAC,EAACA,CAAC,CAACmT,OAAO;gBAAC8L,KAAK,EAALA,MAAK;gBACjBnR,EAAE,EAAEwU,GAAG;gBACPrU,QAAQ,EAAEjO,CAAC,CAACmT,OAAO,CAAClF;cACxB,CAAC;cACD,QAAOnP,GAAG,CAACmP,QAAQ,CAACxC,IAAI;gBACpB,KAAK,UAAU;kBACX3M,GAAG,CAACmP,QAAQ,GAAAxM,aAAA,CAAAA,aAAA,KACL3C,GAAG,CAACmP,QAAQ;oBACfuB,KAAK,EAAE1Q,GAAG,CAACmP,QAAQ,CAACuB,KAAK,CAAC,CAAC;kBAAC,EAC/B;kBACD1Q,GAAG,CAACoK,QAAQ,GAAGlI,CAAC,CAACyhB,iBAAiB,CAAC3jB,GAAG,CAACmP,QAAQ,CAACuB,KAAK,CAAC;kBAC1D;gBACA,KAAK,SAAS;kBACV1Q,GAAG,CAACmP,QAAQ,GAAAxM,aAAA,CAAAA,aAAA,KACL3C,GAAG,CAACmP,QAAQ;oBACfkO,KAAK,EAAErd,GAAG,CAACmP,QAAQ,CAACkO,KAAK,CAAC,CAAC;kBAAC,EAC/B;kBACDrd,GAAG,CAACiiB,IAAI,GAAG,IAAAvZ,+BAAc,EAAC1I,GAAG,CAACmP,QAAQ,CAACkO,KAAK,CAAC;kBACjD;cACJ;YACJ;YACAnb,CAAC,CAACwC,KAAK,CAACgf,iBAAiB,CAAC1jB,GAAG,CAAC;UAClC;UACA,IAAGwjB,GAAG,IAAI,gBAAgB,EAAC;YACvBthB,CAAC,CAAC2P,aAAa,CAAC,gBAAgB,EAAC,OAAO,CAAC;YACzC3P,CAAC,CAAC2P,aAAa,CAAC,kBAAkB,EAAC,OAAO,CAAC;YAC3C,IAAG3P,CAAC,CAAC+F,cAAc,CAAC6H,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAC;cAC/C5N,CAAC,CAAC+F,cAAc,CAAC2a,MAAM,CAAC1gB,CAAC,CAAC+F,cAAc,CAAC6H,OAAO,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC;YACzE;YACA,IAAG5N,CAAC,CAAC+F,cAAc,CAAC6H,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAC;cACjD5N,CAAC,CAAC+F,cAAc,CAAC2a,MAAM,CAAC1gB,CAAC,CAAC+F,cAAc,CAAC6H,OAAO,CAAC,kBAAkB,CAAC,EAAC,CAAC,CAAC;YAC3E;UACJ;UACA,IAAG5N,CAAC,CAAC+F,cAAc,CAAC6H,OAAO,CAAC0T,GAAG,CAAC,GAAG,CAAC,CAAC,EAAC;YAClCthB,CAAC,CAAC+F,cAAc,CAAC2a,MAAM,CAAC1gB,CAAC,CAAC+F,cAAc,CAAC6H,OAAO,CAAC0T,GAAG,CAAC,EAAC,CAAC,CAAC;UAC5D;UACAthB,CAAC,CAACiH,MAAM,GAAG,EAAE;QACjB,CAAC,CAAC;QACF;QACAjH,CAAC,CAAC+G,WAAW,CAAC8I,EAAE,CAAC,oBAAoB,EAAC,UAAC7Q,CAAC,EAAG;UACvC;UACAgB,CAAC,CAACkH,YAAY,GAAG,IAAI;QACzB,CAAC,CAAC;QACF;QACAlH,CAAC,CAAC+G,WAAW,CAAC8I,EAAE,CAAC,cAAc,EAAC,UAAC7Q,CAAC,EAAG;UACjC;UACA,IAAG,CAACgB,CAAC,CAACmH,gBAAgB,CAACG,OAAO,EAAC;YAC3BtH,CAAC,CAACmH,gBAAgB,CAACG,OAAO,GAAG,IAAI;YACjCtH,CAAC,CAACmH,gBAAgB,CAACC,EAAE,GAAGpH,CAAC,CAACmH,gBAAgB,CAACf,CAAC,GAAGpH,CAAC,CAACmT,OAAO,CAAClF,QAAQ,CAAC7G,CAAC;YACnEpG,CAAC,CAACmH,gBAAgB,CAACE,EAAE,GAAGrH,CAAC,CAACmH,gBAAgB,CAACd,CAAC,GAAGrH,CAAC,CAACmT,OAAO,CAAClF,QAAQ,CAAC5G,CAAC;UACvE;UACA,IAAIib,GAAG,GAAGtiB,CAAC,CAACmT,OAAO,CAACnC,UAAU,CAAClD,EAAE;YAC7BC,QAAQ,GAAG,IAAImH,IAAI,CAACjH,QAAQ,CAAC8K,KAAK,CAAC;cAC/BzJ,SAAS,EAAEtO,CAAC,CAACmH,gBAAgB,CAACf,CAAC,GAAGpG,CAAC,CAACmH,gBAAgB,CAACC,EAAE;cACvDmH,QAAQ,EAAEvO,CAAC,CAACmH,gBAAgB,CAACd,CAAC,GAAGrG,CAAC,CAACmH,gBAAgB,CAACE,EAAE;cACtD+M,gBAAgB,EAAC;gBAAEzO,IAAI,EAAE3F,CAAC,CAAC0F;cAAO;YACtC,CAAC,CAAC;UACN;UACA,IAAG4b,GAAG,IAAI,gBAAgB,EAAC;YACvBthB,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAC,gBAAgB,CAAC,CAAC4M,WAAW,CAAC7M,QAAQ,CAAC;YACvD,IAAI2U,YAAY,GAAG,IAAIxN,IAAI,CAACjH,QAAQ,CAACmP,MAAM,CAAC;cACxC/I,MAAM,EAAEtG,QAAQ;cAChBsP,MAAM,EAAErc,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAChN,CAAC,CAACiH,MAAM,CAAC,CAACgG,QAAQ,CAACoP;YAC/C,CAAC,CAAC;YACFrc,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAChN,CAAC,CAACiH,MAAM,CAAC,CAAC2S,WAAW,CAAC8H,YAAY,CAAC;YACnD1hB,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAC,kBAAkB,CAAC,CAAC4M,WAAW,CAC3C,IAAI1F,IAAI,CAACjH,QAAQ,CAAC8K,KAAK,CAAC;cACpBzJ,SAAS,EAAEtO,CAAC,CAACmH,gBAAgB,CAACf,CAAC,GAAGpG,CAAC,CAACmH,gBAAgB,CAACC,EAAE,GAAGpH,CAAC,CAAC2hB,aAAa,CAACva,EAAE;cAC5EmH,QAAQ,EAAEvO,CAAC,CAACmH,gBAAgB,CAACd,CAAC,GAAGrG,CAAC,CAACmH,gBAAgB,CAACE,EAAE,GAAGrH,CAAC,CAAC2hB,aAAa,CAACta,EAAE;cAC3E+M,gBAAgB,EAAC;gBAAEzO,IAAI,EAAE3F,CAAC,CAAC0F;cAAO;YACtC,CAAC,CACL,CAAC;YACD1F,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC4J,QAAQ,CAAC8H,OAAO,CAAC,CAAC;YAC9B,OAAO,KAAK;UAChB;UACA,IAAIuH,OAAO,GAAGvhB,CAAC,CAACsG,EAAE,CAACyJ,eAAe,CAACuR,GAAG,CAAC;UACvC5U,WAAW,CAACK,QAAQ,EAACuU,GAAG,EAACC,OAAO,CAAC;QACrC,CAAC,CAAC;QACF;QACAvhB,CAAC,CAAC+G,WAAW,CAAC8I,EAAE,CAAC,mBAAmB,EAAC,UAAC7Q,CAAC,EAAG;UACtC,IAAIsiB,GAAG,GAAGtiB,CAAC,CAACmT,OAAO,CAACnC,UAAU,CAAClD,EAAE;UACjC,IAAIyU,OAAO,GAAGvhB,CAAC,CAACsG,EAAE,CAACyJ,eAAe,CAACuR,GAAG,CAAC;UACvC;UACAthB,CAAC,CAACkH,YAAY,GAAG,KAAK;UACtBlH,CAAC,CAACmH,gBAAgB,CAACG,OAAO,GAAG,KAAK;UAClC;UACA,IAAGia,OAAO,CAACtI,YAAY,IAAI,OAAO,EAAC;YAC/BvM,WAAW,CAAC1N,CAAC,CAACmT,OAAO,CAAClF,QAAQ,EAACqU,GAAG,EAACC,OAAO,CAAC;UAC/C;UACA;UACA,IAAGD,GAAG,IAAI,gBAAgB,EAAC;YACvBthB,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAC,gBAAgB,CAAC,CAAC4M,WAAW,CAAC5a,CAAC,CAACmT,OAAO,CAAClF,QAAQ,CAAC;YACjE,IAAIyU,YAAY,GAAG,IAAIxN,IAAI,CAACjH,QAAQ,CAACmP,MAAM,CAAC;cACxC/I,MAAM,EAAErU,CAAC,CAACmT,OAAO,CAAClF,QAAQ;cAC1BoP,MAAM,EAAErc,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAChN,CAAC,CAACiH,MAAM,CAAC,CAACgG,QAAQ,CAACoP;YAC/C,CAAC,CAAC;YACFrc,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAChN,CAAC,CAACiH,MAAM,CAAC,CAAC2S,WAAW,CAAC8H,YAAY,CAAC;YACnD1hB,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAC,kBAAkB,CAAC,CAAC4M,WAAW,CAC3C,IAAI1F,IAAI,CAACjH,QAAQ,CAAC8K,KAAK,CAAC;cACpBzJ,SAAS,EAAEtP,CAAC,CAACmT,OAAO,CAAClF,QAAQ,CAAC7G,CAAC,GAAGpG,CAAC,CAAC2hB,aAAa,CAACva,EAAE;cACpDmH,QAAQ,EAAEvP,CAAC,CAACmT,OAAO,CAAClF,QAAQ,CAAC5G,CAAC,GAAGrG,CAAC,CAAC2hB,aAAa,CAACta,EAAE;cACnD+M,gBAAgB,EAAC;gBAAEzO,IAAI,EAAE3F,CAAC,CAAC0F;cAAO;YACtC,CAAC,CACL,CAAC;YACD1F,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC4J,QAAQ,CAAC8H,OAAO,CAAC,CAAC;YAC9B,IAAG,mBAAmB,IAAIha,CAAC,CAACwC,KAAK,IAAI,OAAOxC,CAAC,CAACwC,KAAK,CAACgf,iBAAkB,IAAI,UAAU,EAAC;cACjF,IAAIvD,KAAK,GAAGje,CAAC,CAACgN,UAAU,CAAChN,CAAC,CAACiH,MAAM,CAAC;cAClCjH,CAAC,CAACwC,KAAK,CAACgf,iBAAiB,CAAC;gBACtBzB,IAAI,EAAErR,IAAI,CAACsR,EAAE,GAACtR,IAAI,CAACiD,GAAG,CAAC3R,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAChN,CAAC,CAACiH,MAAM,CAAC,CAACgG,QAAQ,CAACoP,MAAM,EAAC,CAAC,CAAC;gBACnErd,CAAC,EAAEgB,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAChN,CAAC,CAACiH,MAAM,CAAC;gBAC5BgX,KAAK,EAALA,KAAK;gBACLnR,EAAE,EAAE9M,CAAC,CAACiH,MAAM;gBACZgG,QAAQ,EAAEjN,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAChN,CAAC,CAACiH,MAAM,CAAC,CAACgG;cACxC,CAAC,CAAC;YACN;YACA,OAAO,KAAK;UAChB;UACA,IAAG,mBAAmB,IAAIjN,CAAC,CAACwC,KAAK,IAAI,OAAOxC,CAAC,CAACwC,KAAK,CAACgf,iBAAkB,IAAI,UAAU,EAAC;YACjF,IAAIvD,OAAK,GAAGje,CAAC,CAACgN,UAAU,CAACsU,GAAG,CAAC;YAC7BthB,CAAC,CAACwC,KAAK,CAACgf,iBAAiB,CAAC;cACtBxiB,CAAC,EAACA,CAAC,CAACmT,OAAO;cAAC8L,KAAK,EAALA,OAAK;cACjBnR,EAAE,EAAEwU,GAAG;cACPrU,QAAQ,EAAEjO,CAAC,CAACmT,OAAO,CAAClF;YACxB,CAAC,CAAC;UACN;QACJ,CAAC,CAAC;QACF;QACAjN,CAAC,CAAC+G,WAAW,CAAC8I,EAAE,CAAC,kBAAkB,EAAC,UAAC7Q,CAAC,EAAG;UACrC,IAAIsiB,GAAG,GAAGtiB,CAAC,CAACmT,OAAO,CAACnC,UAAU,CAAClD,EAAE;UACjC,IAAIyU,OAAO,GAAGvhB,CAAC,CAACsG,EAAE,CAACyJ,eAAe,CAACuR,GAAG,CAAC;UACvC,IAAG,mBAAmB,IAAIthB,CAAC,CAACwC,KAAK,IAAI,OAAOxC,CAAC,CAACwC,KAAK,CAACgf,iBAAkB,IAAI,UAAU,EAAC;YACjF,IAAIvD,KAAK,GAAGje,CAAC,CAACgN,UAAU,CAACsU,GAAG,CAAC;YAC7B,IAAIxjB,GAAG,GAAG;cACNkB,CAAC,EAACA,CAAC,CAACmT,OAAO;cAAC8L,KAAK,EAALA,KAAK;cACjBnR,EAAE,EAAEwU,GAAG;cACPrU,QAAQ,EAAEjO,CAAC,CAACmT,OAAO,CAAClF;YACxB,CAAC;YACD,QAAOnP,GAAG,CAACmP,QAAQ,CAACxC,IAAI;cACpB,KAAK,UAAU;gBACX3M,GAAG,CAACmP,QAAQ,GAAAxM,aAAA,CAAAA,aAAA,KACL3C,GAAG,CAACmP,QAAQ;kBACfuB,KAAK,EAAE1Q,GAAG,CAACmP,QAAQ,CAACuB,KAAK,CAAC,CAAC;gBAAC,EAC/B;gBACD1Q,GAAG,CAACoK,QAAQ,GAAGlI,CAAC,CAACyhB,iBAAiB,CAAC3jB,GAAG,CAACmP,QAAQ,CAACuB,KAAK,CAAC;gBAC1D;cACA,KAAK,SAAS;gBACV1Q,GAAG,CAACmP,QAAQ,GAAAxM,aAAA,CAAAA,aAAA,KACL3C,GAAG,CAACmP,QAAQ;kBACfkO,KAAK,EAAErd,GAAG,CAACmP,QAAQ,CAACkO,KAAK,CAAC,CAAC;gBAAC,EAC/B;gBACDrd,GAAG,CAACiiB,IAAI,GAAG,IAAAvZ,+BAAc,EAAC1I,GAAG,CAACmP,QAAQ,CAACkO,KAAK,CAAC;gBACjD;YACJ;YACAnb,CAAC,CAACwC,KAAK,CAACgf,iBAAiB,CAAC1jB,GAAG,CAAC;UAClC;QACJ,CAAC,CAAC;QACF;QACAkC,CAAC,CAACgH,YAAY,CAAC6I,EAAE,CAAC,oBAAoB,EAAC,UAAC7Q,CAAC,EAAG;UACxC;UACAgB,CAAC,CAACkH,YAAY,GAAG,IAAI;QACzB,CAAC,CAAC;QACF;QACAlH,CAAC,CAACgH,YAAY,CAAC6I,EAAE,CAAC,cAAc,EAAC,UAAC7Q,CAAC,EAAG;UAClC;UACA,IAAG,CAACgB,CAAC,CAACmH,gBAAgB,CAACG,OAAO,EAAC;YAC3BtH,CAAC,CAACmH,gBAAgB,CAACG,OAAO,GAAG,IAAI;YACjCtH,CAAC,CAACmH,gBAAgB,CAACC,EAAE,GAAGpH,CAAC,CAACmH,gBAAgB,CAACf,CAAC,GAAGpH,CAAC,CAACmT,OAAO,CAAClF,QAAQ,CAAC7G,CAAC;YACnEpG,CAAC,CAACmH,gBAAgB,CAACE,EAAE,GAAGrH,CAAC,CAACmH,gBAAgB,CAACd,CAAC,GAAGrH,CAAC,CAACmT,OAAO,CAAClF,QAAQ,CAAC5G,CAAC;UACvE;UACA,IAAIub,GAAG,GAAG5hB,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAChN,CAAC,CAACiH,MAAM,CAAC;YAC/Bqa,GAAG,GAAGtiB,CAAC,CAACmT,OAAO,CAACnC,UAAU,CAAClD,EAAE;YAC7BC,QAAQ,GAAG,IAAImH,IAAI,CAACjH,QAAQ,CAAC8K,KAAK,CAAC;cAC/BzJ,SAAS,EAAEtO,CAAC,CAACmH,gBAAgB,CAACf,CAAC,GAAGpG,CAAC,CAACmH,gBAAgB,CAACC,EAAE;cACvDmH,QAAQ,EAAEvO,CAAC,CAACmH,gBAAgB,CAACd,CAAC,GAAGrG,CAAC,CAACmH,gBAAgB,CAACE,EAAE;cACtD+M,gBAAgB,EAAC;gBAAEzO,IAAI,EAAE3F,CAAC,CAAC0F;cAAO;YACtC,CAAC,CAAC;YACF2W,MAAM,GAAGrc,CAAC,CAACugB,uBAAuB,CAC9B,CAACqB,GAAG,CAAC3U,QAAQ,CAACoG,MAAM,CAACjN,CAAC,EAACwb,GAAG,CAAC3U,QAAQ,CAACoG,MAAM,CAAChN,CAAC,CAAC,EAC7C,CAACrG,CAAC,CAACmH,gBAAgB,CAACf,CAAC,GAAGpG,CAAC,CAACmH,gBAAgB,CAACC,EAAE,EAACpH,CAAC,CAACmH,gBAAgB,CAACd,CAAC,GAAGrG,CAAC,CAACmH,gBAAgB,CAACE,EAAE,CAC9F,CAAC;UACLrH,CAAC,CAAC2hB,aAAa,GAAG;YACdva,EAAE,EAAEwa,GAAG,CAAC3U,QAAQ,CAACoG,MAAM,CAACjN,CAAC,IAAIpG,CAAC,CAACmH,gBAAgB,CAACf,CAAC,GAAGpG,CAAC,CAACmH,gBAAgB,CAACC,EAAE,CAAC;YAC1EC,EAAE,EAAEua,GAAG,CAAC3U,QAAQ,CAACoG,MAAM,CAAChN,CAAC,IAAIrG,CAAC,CAACmH,gBAAgB,CAACd,CAAC,GAAGrG,CAAC,CAACmH,gBAAgB,CAACE,EAAE;UAC7E,CAAC;UACDua,GAAG,CAAChI,WAAW,CAAC,IAAI1F,IAAI,CAACjH,QAAQ,CAACmP,MAAM,CAAC;YACrC/I,MAAM,EAAE,IAAIa,IAAI,CAACjH,QAAQ,CAAC8K,KAAK,CAAC6J,GAAG,CAAC3U,QAAQ,CAACoG,MAAM,CAACjN,CAAC,EAACwb,GAAG,CAAC3U,QAAQ,CAACoG,MAAM,CAAChN,CAAC,CAAC;YAC5EgW,MAAM,EAAEA;UACZ,CAAC,CAAC,CAAC;UACHrc,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAC,kBAAkB,CAAC,CAAC4M,WAAW,CAAC7M,QAAQ,CAAC;UACzD/M,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC4J,QAAQ,CAAC8H,OAAO,CAAC,CAAC;QAClC,CAAC,CAAC;QACF;QACAha,CAAC,CAACgH,YAAY,CAAC6I,EAAE,CAAC,mBAAmB,EAAC,UAAC7Q,CAAC,EAAG;UACvCgB,CAAC,CAACkH,YAAY,GAAG,KAAK;UACtBlH,CAAC,CAACmH,gBAAgB,CAACG,OAAO,GAAG,KAAK;UAClC,IAAIsa,GAAG,GAAG5hB,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAChN,CAAC,CAACiH,MAAM,CAAC;YAC/Bqa,GAAG,GAAGtiB,CAAC,CAACmT,OAAO,CAACnC,UAAU,CAAClD,EAAE;YAC7BC,QAAQ,GAAG,IAAImH,IAAI,CAACjH,QAAQ,CAAC8K,KAAK,CAAC;cAC/BzJ,SAAS,EAAEtO,CAAC,CAACmH,gBAAgB,CAACf,CAAC,GAAGpG,CAAC,CAACmH,gBAAgB,CAACC,EAAE;cACvDmH,QAAQ,EAAEvO,CAAC,CAACmH,gBAAgB,CAACd,CAAC,GAAGrG,CAAC,CAACmH,gBAAgB,CAACE,EAAE;cACtD+M,gBAAgB,EAAC;gBAAEzO,IAAI,EAAE3F,CAAC,CAAC0F;cAAO;YACtC,CAAC,CAAC;YACF2W,MAAM,GAAGrc,CAAC,CAACugB,uBAAuB,CAC9B,CAACqB,GAAG,CAAC3U,QAAQ,CAACoG,MAAM,CAACjN,CAAC,EAACwb,GAAG,CAAC3U,QAAQ,CAACoG,MAAM,CAAChN,CAAC,CAAC,EAC7C,CAACrG,CAAC,CAACmH,gBAAgB,CAACf,CAAC,GAAGpG,CAAC,CAACmH,gBAAgB,CAACC,EAAE,EAACpH,CAAC,CAACmH,gBAAgB,CAACd,CAAC,GAAGrG,CAAC,CAACmH,gBAAgB,CAACE,EAAE,CAC9F,CAAC;UACLrH,CAAC,CAAC2hB,aAAa,GAAG;YACdva,EAAE,EAAEwa,GAAG,CAAC3U,QAAQ,CAACoG,MAAM,CAACjN,CAAC,IAAIpG,CAAC,CAACmH,gBAAgB,CAACf,CAAC,GAAGpG,CAAC,CAACmH,gBAAgB,CAACC,EAAE,CAAC;YAC1EC,EAAE,EAAEua,GAAG,CAAC3U,QAAQ,CAACoG,MAAM,CAAChN,CAAC,IAAIrG,CAAC,CAACmH,gBAAgB,CAACd,CAAC,GAAGrG,CAAC,CAACmH,gBAAgB,CAACE,EAAE;UAC7E,CAAC;UACDua,GAAG,CAAChI,WAAW,CAAC,IAAI1F,IAAI,CAACjH,QAAQ,CAACmP,MAAM,CAAC;YACrC/I,MAAM,EAAE,IAAIa,IAAI,CAACjH,QAAQ,CAAC8K,KAAK,CAAC6J,GAAG,CAAC3U,QAAQ,CAACoG,MAAM,CAACjN,CAAC,EAACwb,GAAG,CAAC3U,QAAQ,CAACoG,MAAM,CAAChN,CAAC,CAAC;YAC5EgW,MAAM,EAAEA;UACZ,CAAC,CAAC,CAAC;UACHrc,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAC,kBAAkB,CAAC,CAAC4M,WAAW,CAAC7M,QAAQ,CAAC;UACzD/M,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC4J,QAAQ,CAAC8H,OAAO,CAAC,CAAC;UAC9B,IAAG,mBAAmB,IAAIha,CAAC,CAACwC,KAAK,IAAI,OAAOxC,CAAC,CAACwC,KAAK,CAACgf,iBAAkB,IAAI,UAAU,EAAC;YACjF,IAAIvD,KAAK,GAAGje,CAAC,CAACgN,UAAU,CAAChN,CAAC,CAACiH,MAAM,CAAC;YAClCjH,CAAC,CAACwC,KAAK,CAACgf,iBAAiB,CAAC;cACtBzB,IAAI,EAAErR,IAAI,CAACsR,EAAE,GAACtR,IAAI,CAACiD,GAAG,CAAC3R,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAChN,CAAC,CAACiH,MAAM,CAAC,CAACgG,QAAQ,CAACoP,MAAM,EAAC,CAAC,CAAC;cACnErd,CAAC,EAAEgB,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAChN,CAAC,CAACiH,MAAM,CAAC;cAC5BgX,KAAK,EAALA,KAAK;cACLnR,EAAE,EAAE9M,CAAC,CAACiH,MAAM;cACZgG,QAAQ,EAAEjN,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAChN,CAAC,CAACiH,MAAM,CAAC,CAACgG;YACxC,CAAC,CAAC;UACN;QACJ,CAAC,CAAC;MACN;MACA;MACA,IAAGjN,CAAC,CAACiH,MAAM,EAAC;QACRjH,CAAC,CAAC+G,WAAW,CAAC8a,UAAU,CAAC,CAAC;QAC1B7hB,CAAC,CAACgH,YAAY,CAAC6a,UAAU,CAAC,CAAC;MAC/B;MACA;MACA,IAAI1I,EAAE,GAAGnZ,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAACF,EAAE,CAAC;MAC5B,IAAI6S,EAAE,GAAG3f,CAAC,CAACsG,EAAE,CAACyJ,eAAe,CAACjD,EAAE,CAAC;MACjC,IAAG,CAACqM,EAAE,EAAC;MACP,QAAOwG,EAAE,CAAC1G,YAAY;QAClB,KAAK,OAAO;UACR;UACAjZ,CAAC,CAAC+N,OAAO,CAACjB,EAAE,CAAC;UACb,IAAG9M,CAAC,CAAC+F,cAAc,CAAC6H,OAAO,CAACd,EAAE,CAAC,IAAI,CAAC,CAAC,EAAC;YAClC9M,CAAC,CAAC+F,cAAc,CAACxF,IAAI,CAACuM,EAAE,CAAC;UAC7B;UACA9M,CAAC,CAAC+G,WAAW,CAAC+a,QAAQ,CAAC5N,IAAI,CAACkN,QAAQ,CAACC,IAAI,CAACU,IAAI,EAAG5I,EAAE,CAAC;UACxD;QACA,KAAK,UAAU;QACf,KAAK,SAAS;UACVnZ,CAAC,CAAC+G,WAAW,CAAC+a,QAAQ,CAAC5N,IAAI,CAACkN,QAAQ,CAACC,IAAI,CAACW,aAAa,EAAG7I,EAAE,CAAC;UACjE;QACA,KAAK,QAAQ;UACT;UACAnZ,CAAC,CAAC+L,QAAQ,CAAC,CAAC;YACRe,EAAE,EAAE,gBAAgB;YACpBwB,SAAS,EAAE6K,EAAE,CAAClM,QAAQ,CAACoG,MAAM,CAACjN,CAAC;YAC/BmI,QAAQ,EAAE4K,EAAE,CAAClM,QAAQ,CAACoG,MAAM,CAAChN,CAAC;YAC9BwO,GAAG,EAAE,2CAA2C;YAChD/F,MAAM,EAAE;cACJzB,KAAK,EAAE,EAAE;cACTD,MAAM,EAAE,EAAE;cACV4B,cAAc,EAAE,CAAC,GAAG;cACpBD,cAAc,EAAE,CAAC;YACrB;UACJ,CAAC,EAAC;YACEjC,EAAE,EAAE,kBAAkB;YACtBwB,SAAS,EAAE6K,EAAE,CAAClM,QAAQ,CAACkO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC5M,QAAQ,EAAE4K,EAAE,CAAClM,QAAQ,CAACkO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpCtG,GAAG,EAAE,2CAA2C;YAChD/F,MAAM,EAAE;cACJzB,KAAK,EAAE,EAAE;cACTD,MAAM,EAAE,EAAE;cACV4B,cAAc,EAAE,CAAC,GAAG;cACpBD,cAAc,EAAE,CAAC;YACrB;UACJ,CAAC,CAAC,CAAC;UACH/O,CAAC,CAAC2hB,aAAa,GAAG;YACdva,EAAE,EAAE+R,EAAE,CAAClM,QAAQ,CAACoG,MAAM,CAACjN,CAAC,GAAG+S,EAAE,CAAClM,QAAQ,CAACkO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD9T,EAAE,EAAE8R,EAAE,CAAClM,QAAQ,CAACoG,MAAM,CAAChN,CAAC,GAAG8S,EAAE,CAAClM,QAAQ,CAACkO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;UACxD,CAAC;UACDnb,CAAC,CAAC+N,OAAO,CAAC,gBAAgB,CAAC;UAC3B/N,CAAC,CAAC+N,OAAO,CAAC,kBAAkB,CAAC;UAC7B,IAAG/N,CAAC,CAAC+F,cAAc,CAAC6H,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAC;YAChD5N,CAAC,CAAC+F,cAAc,CAACxF,IAAI,CAAC,gBAAgB,CAAC;UAC3C;UACA,IAAGP,CAAC,CAAC+F,cAAc,CAAC6H,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAC;YAClD5N,CAAC,CAAC+F,cAAc,CAACxF,IAAI,CAAC,kBAAkB,CAAC;UAC7C;UACAP,CAAC,CAAC+G,WAAW,CAAC+a,QAAQ,CAAC5N,IAAI,CAACkN,QAAQ,CAACC,IAAI,CAACU,IAAI,EAAG/hB,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAC,gBAAgB,CAAC,CAAC;UACnFhN,CAAC,CAACgH,YAAY,CAAC8a,QAAQ,CAAC5N,IAAI,CAACkN,QAAQ,CAACC,IAAI,CAACU,IAAI,EAAG/hB,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAC,kBAAkB,CAAC,CAAC;UAC1F;MACJ;MACA;MACAhN,CAAC,CAACiH,MAAM,GAAG6F,EAAE;IACjB;IACA;EAAA;IAAA9L,GAAA;IAAAjC,KAAA,EACA,SAAAkjB,QAAA,EAAS;MACL,IAAIjiB,CAAC,GAAG,IAAI;MACZA,CAAC,CAAC+G,WAAW,CAAC8a,UAAU,CAAC,CAAC;MAC1B;MACA7hB,CAAC,CAACgH,YAAY,CAAC6a,UAAU,CAAC,CAAC;IAC/B;IACA;EAAA;IAAA7gB,GAAA;IAAAjC,KAAA,EACA,SAAAkS,KAAKnT,GAAG,EAAC;MACL,IAAIkC,CAAC,GAAG,IAAI;MACZ,IAAG,CAACA,CAAC,CAAC6G,WAAW,EAAC;QACd7G,CAAC,CAAC6G,WAAW,GAAG,IAAIqN,IAAI,CAACkN,QAAQ,CAACc,IAAI,CAACliB,CAAC,CAACqI,KAAK,CAACC,GAAG,EAAC;UAC/C6Z,QAAQ,EAAE,EAAE;UACZC,YAAY,EAAE;QAClB,CAAC,CAAC;QACFpiB,CAAC,CAAC6G,WAAW,CAACgJ,EAAE,CAAC,eAAe,EAAC,UAAC7Q,CAAC,EAAG;UAClC;UACAgB,CAAC,CAACqiB,SAAS,CAAC,CAAC;UACb;UACA,IAAIpE,KAAK,GAAG,CAAC,CAAC;UACd;UACA,IAAGje,CAAC,CAAC8G,SAAS,CAACmS,YAAY,IAAI,OAAO,EAAC;YACnCjZ,CAAC,CAAC+L,QAAQ,CAAC,CAAC;cACRe,EAAE,EAAE9M,CAAC,CAAC8G,SAAS,CAAC4V,IAAI,CAAC5P,EAAE;cACvBwB,SAAS,EAAEtP,CAAC,CAACiO,QAAQ,CAAC7G,CAAC;cACvBmI,QAAQ,EAAEvP,CAAC,CAACiO,QAAQ,CAAC5G,CAAC;cACtBwO,GAAG,EAAE7U,CAAC,CAAC8G,SAAS,CAACwb,SAAS,CAACzN,GAAG,OAAA/K,MAAA,CAAOC,oBAAS,CAACG,YAAY,8BAA2B;cACtF4E,MAAM,EAAArO,aAAA,KACCT,CAAC,CAAC8G,SAAS,CAACwb,SAAS;YAEhC,CAAC,CAAC,EAAC,OAAO,CAAC;YACX;YACArE,KAAK,GAAG;cACJnR,EAAE,EAAE9M,CAAC,CAAC8G,SAAS,CAAC4V,IAAI,CAAC5P,EAAE;cACvBkD,UAAU,EAAE;gBACRlD,EAAE,EAAE9M,CAAC,CAAC8G,SAAS,CAAC4V,IAAI,CAAC5P,EAAE;gBACvB+H,GAAG,EAAE7U,CAAC,CAAC8G,SAAS,CAACwb,SAAS,CAACzN,GAAG,OAAA/K,MAAA,CAAOC,oBAAS,CAACG,YAAY,8BAA2B;gBACtF4E,MAAM,EAAE;kBACJzB,KAAK,EAAErN,CAAC,CAAC8G,SAAS,CAACwb,SAAS,CAACjV,KAAK,IAAI,EAAE;kBACxCD,MAAM,EAAEpN,CAAC,CAAC8G,SAAS,CAACwb,SAAS,CAAClV,MAAM,IAAI;gBAC5C;cACJ,CAAC;cACDH,QAAQ,EAAEjO,CAAC,CAACiO,QAAQ;cACpBgM,YAAY,EAAE,OAAO;cACrB6G,QAAQ,EAAE9f,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAChN,CAAC,CAAC8G,SAAS,CAAC4V,IAAI,CAAC5P,EAAE;YACjD,CAAC;UACL;UACA;UACA,IAAG9M,CAAC,CAAC8G,SAAS,CAACmS,YAAY,IAAI,UAAU,EAAC;YACtCjZ,CAAC,CAACgM,OAAO,CAAC,CAAC;cACPc,EAAE,EAAE9M,CAAC,CAAC8G,SAAS,CAAC4V,IAAI,CAAC5P,EAAE;cACvB0B,KAAK,EAAExP,CAAC,CAACiO,QAAQ,CAACuB,KAAK,CAAC,CAAC,CAAC;cAC1BM,MAAM,EAAArO,aAAA,KACCT,CAAC,CAAC8G,SAAS,CAACwb,SAAS;YAEhC,CAAC,CAAC,EAAC,UAAU,CAAC;YACd;YACA,IAAAC,YAAA,GAA0BviB,CAAC,CAAC+a,QAAQ,CAAC/b,CAAC,CAACiO,QAAQ,CAACuB,KAAK,CAAC,CAAC,CAAC,CAAC;cAApDgU,SAAS,GAAAD,YAAA,CAATC,SAAS;cAAC3I,OAAO,GAAA0I,YAAA,CAAP1I,OAAO;YACtBoE,KAAK,GAAG;cACJuE,SAAS,EAATA,SAAS;cACT1V,EAAE,EAAE9M,CAAC,CAAC8G,SAAS,CAAC4V,IAAI,CAAC5P,EAAE;cACvBG,QAAQ,EAAAxM,aAAA,CAAAA,aAAA,KACDzB,CAAC,CAACiO,QAAQ;gBACbuB,KAAK,EAAExP,CAAC,CAACiO,QAAQ,CAACuB,KAAK,CAAC,CAAC,CAAC;gBAC1BqL,OAAO,EAAPA;cAAO,EACV;cACD7J,UAAU,EAAE;gBACRlD,EAAE,EAAE9M,CAAC,CAAC8G,SAAS,CAAC4V,IAAI,CAAC5P,EAAE;gBACvBgC,MAAM,EAAArO,aAAA,KACCT,CAAC,CAAC8G,SAAS,CAACwb,SAAS;cAEhC,CAAC;cACDpa,QAAQ,EAAElI,CAAC,CAACyhB,iBAAiB,CAACziB,CAAC,CAACiO,QAAQ,CAACuB,KAAK,CAAC,CAAC,CAAC,CAAC;cAClDyK,YAAY,EAAE,UAAU;cACxB6G,QAAQ,EAAE9f,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAChN,CAAC,CAAC8G,SAAS,CAAC4V,IAAI,CAAC5P,EAAE;YACjD,CAAC;UACL;UACA,IAAG9M,CAAC,CAAC8G,SAAS,CAACmS,YAAY,IAAI,SAAS,IAAIjZ,CAAC,CAAC8G,SAAS,CAACmS,YAAY,IAAI,WAAW,EAAC;YAChF,IAAIwJ,EAAE,GAAArhB,kBAAA,CAAOpC,CAAC,CAACiO,QAAQ,CAACkO,KAAK,CAAC,CAAC,CAAC,CAAC;YACjCsH,EAAE,CAACC,GAAG,CAAC,CAAC;YACR1iB,CAAC,CAACiM,UAAU,CAAC,CAAC;cACVa,EAAE,EAAE9M,CAAC,CAAC8G,SAAS,CAAC4V,IAAI,CAAC5P,EAAE;cACvBqO,KAAK,EAAEsH,EAAE;cACT3T,MAAM,EAAArO,aAAA,KACCT,CAAC,CAAC8G,SAAS,CAACwb,SAAS;YAEhC,CAAC,CAAC,EAACtiB,CAAC,CAAC8G,SAAS,CAACmS,YAAY,CAAC;YAC5B;YACA,IAAA0J,YAAA,GAA0B3iB,CAAC,CAAC+a,QAAQ,CAAC/b,CAAC,CAACiO,QAAQ,CAACkO,KAAK,CAAC,CAAC,CAAC,CAAC;cAApDqH,UAAS,GAAAG,YAAA,CAATH,SAAS;cAAC3I,QAAO,GAAA8I,YAAA,CAAP9I,OAAO;YACtBoE,KAAK,GAAC;cACFuE,SAAS,EAATA,UAAS;cACT1V,EAAE,EAAE9M,CAAC,CAAC8G,SAAS,CAAC4V,IAAI,CAAC5P,EAAE;cACvBG,QAAQ,EAAAxM,aAAA,CAAAA,aAAA,KACDzB,CAAC,CAACiO,QAAQ;gBACbkO,KAAK,EAAEnc,CAAC,CAACiO,QAAQ,CAACkO,KAAK,CAAC,CAAC,CAAC;gBAC1B1Q,IAAI,EAAEzK,CAAC,CAAC8G,SAAS,CAACmS,YAAY;gBAC9BY,OAAO,EAAPA;cAAO,EACV;cACD7J,UAAU,EAAE;gBACRlD,EAAE,EAAE9M,CAAC,CAAC8G,SAAS,CAAC4V,IAAI,CAAC5P,EAAE;gBACvBgC,MAAM,EAAArO,aAAA,KACCT,CAAC,CAAC8G,SAAS,CAACwb,SAAS;cAEhC,CAAC;cACDvC,IAAI,EAAE,IAAAvZ,+BAAc,EAACxH,CAAC,CAACiO,QAAQ,CAACkO,KAAK,CAAC,CAAC,CAAC,CAAC;cACzClC,YAAY,EAAEjZ,CAAC,CAAC8G,SAAS,CAACmS,YAAY;cACtC6G,QAAQ,EAAE9f,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAChN,CAAC,CAAC8G,SAAS,CAAC4V,IAAI,CAAC5P,EAAE;YACjD,CAAC;UACL;UACA,IAAG9M,CAAC,CAAC8G,SAAS,CAACmS,YAAY,IAAI,QAAQ,EAAC;YACpC,IAAGja,CAAC,CAACiO,QAAQ,CAAC4M,OAAO,EAAC;cAClB,IAAIwC,MAAM,GAAG,IAAAhO,4BAAW,EACpB,CAACrP,CAAC,CAACiO,QAAQ,CAAC4M,OAAO,CAACrG,IAAI,EAACxU,CAAC,CAACiO,QAAQ,CAAC4M,OAAO,CAACpG,IAAI,CAAC,EACjD,CAACzU,CAAC,CAACiO,QAAQ,CAAC4M,OAAO,CAACnG,IAAI,EAAC1U,CAAC,CAACiO,QAAQ,CAAC4M,OAAO,CAAClG,IAAI,CAAC,EACjD3T,CAAC,CAACqI,KAAK,CAACC,GAAG,EACXtI,CAAC,CAAC0F,MACN,CAAC,GAAC,CAAC;cACH2W,MAAM,GAAG3N,IAAI,CAACkU,IAAI,CAAClU,IAAI,CAACiD,GAAG,CAAC0K,MAAM,EAAC,CAAC,CAAC,GAAC,CAAC,CAAC,GAAC,CAAC;cAC1Crc,CAAC,CAACkM,SAAS,CAAC,CAAC;gBACTY,EAAE,EAAE9M,CAAC,CAAC8G,SAAS,CAAC4V,IAAI,CAAC5P,EAAE;gBACvBwB,SAAS,EAAE,CAACtP,CAAC,CAACiO,QAAQ,CAAC4M,OAAO,CAACrG,IAAI,GAACxU,CAAC,CAACiO,QAAQ,CAAC4M,OAAO,CAACnG,IAAI,IAAE,CAAC;gBAC9DnF,QAAQ,EAAE,CAACvP,CAAC,CAACiO,QAAQ,CAAC4M,OAAO,CAACpG,IAAI,GAACzU,CAAC,CAACiO,QAAQ,CAAC4M,OAAO,CAAClG,IAAI,IAAE,CAAC;gBAC7D0I,MAAM,EAAEA,MAAM;gBACdvN,MAAM,EAAArO,aAAA,KACCT,CAAC,CAAC8G,SAAS,CAACwb,SAAS;cAEhC,CAAC,CAAC,EAACtiB,CAAC,CAAC8G,SAAS,CAACmS,YAAY,CAAC;cAC5BgF,KAAK,GAAG;gBACJ8B,IAAI,EAAErR,IAAI,CAACsR,EAAE,GAACtR,IAAI,CAACiD,GAAG,CAAC0K,MAAM,EAAC,CAAC,CAAC;gBAChCrM,UAAU,EAAE;kBACRlD,EAAE,EAAE9M,CAAC,CAAC8G,SAAS,CAAC4V,IAAI,CAAC5P,EAAE;kBACvBgC,MAAM,EAAArO,aAAA,KACCT,CAAC,CAAC8G,SAAS,CAACwb,SAAS;gBAEhC,CAAC;gBACDrV,QAAQ,EAAE;kBACNxC,IAAI,EAAEzK,CAAC,CAAC8G,SAAS,CAACmS,YAAY;kBAC9B7S,CAAC,EAAE,CAACpH,CAAC,CAACiO,QAAQ,CAAC4M,OAAO,CAACrG,IAAI,GAACxU,CAAC,CAACiO,QAAQ,CAAC4M,OAAO,CAACnG,IAAI,IAAE,CAAC;kBACtDrN,CAAC,EAAE,CAACrH,CAAC,CAACiO,QAAQ,CAAC4M,OAAO,CAACpG,IAAI,GAACzU,CAAC,CAACiO,QAAQ,CAAC4M,OAAO,CAAClG,IAAI,IAAE,CAAC;kBACtD0I,MAAM,EAANA;gBACJ,CAAC;gBACDpD,YAAY,EAAEjZ,CAAC,CAAC8G,SAAS,CAACmS,YAAY;gBACtC6G,QAAQ,EAAE9f,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAAChN,CAAC,CAAC8G,SAAS,CAAC4V,IAAI,CAAC5P,EAAE;cACjD,CAAC;YACL;UACJ;UACA;UACA;UACA,IAAG,SAAS,IAAI9M,CAAC,CAACwC,KAAK,IAAI,OAAOxC,CAAC,CAACwC,KAAK,CAACqgB,OAAQ,IAAI,UAAU,EAAC;YAC7D7iB,CAAC,CAACwC,KAAK,CAACqgB,OAAO,CAAC5E,KAAK,CAAC;UAC1B;QACJ,CAAC,CAAC;MACN;MACA;MACAje,CAAC,CAACqiB,SAAS,CAAC,CAAC;MACbzY,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACwC,KAAK,CAAC+F,KAAK,eAAY,CAAC,CAACgF,GAAG,CAAC;QACjCuV,MAAM,EAAE;MACZ,CAAC,CAAC;MACF,IAAIhc,SAAS,GAAG,CAAC,CAAC;MAClB;MACAA,SAAS,CAACmS,YAAY,GAAGnb,GAAG,CAACmb,YAAY,IAAI,OAAO;MACpDnS,SAAS,CAACwb,SAAS,GAAGxkB,GAAG,CAACwkB,SAAS,GAAA7hB,aAAA,KAAK3C,GAAG,CAACwkB,SAAS,IAAE,CAAC,CAAC;MACzDxb,SAAS,CAAC4V,IAAI,GAAG5e,GAAG,CAAC4e,IAAI,GAAAjc,aAAA,KAAK3C,GAAG,CAAC4e,IAAI,IAAE,CAAC,CAAC;MAC1C5V,SAAS,CAAC4V,IAAI,CAAC5P,EAAE,GAAG,CAAChP,GAAG,CAAC4e,IAAI,IAAI,CAAC,CAAC,EAAE5P,EAAE,WAAAhD,MAAA,CAAW,IAAIyF,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,CAAE;MACxE;MACAxP,CAAC,CAAC8G,SAAS,GAAGA,SAAS;MACvB;MACA,IAAI7E,GAAG,GAAGjC,CAAC,CAACqI,KAAK,CAACU,OAAO,CAACjC,SAAS,CAACmS,YAAY,CAAC,CAACrL,OAAO,CAAC9G,SAAS,CAAC4V,IAAI,CAAC5P,EAAE,CAAC;MAC5E,IAAG7K,GAAG,GAAG,CAAC,CAAC,EAAC;QACR;QACAjC,CAAC,CAAC2P,aAAa,CAAC7I,SAAS,CAAC4V,IAAI,CAAC5P,EAAE,CAAC;QAClC9M,CAAC,CAACqI,KAAK,CAACU,OAAO,CAACjC,SAAS,CAACmS,YAAY,CAAC,CAACyH,MAAM,CAACze,GAAG,EAAC,CAAC,CAAC;MACzD;MACA,IAAI0Y,UAAU,GAAG,IAAI;QAACoI,UAAU,GAAG,IAAI;MACvC,IAAGjc,SAAS,CAACmS,YAAY,KAAK,OAAO,EAAC;QAClC;QACA,IAAIuC,SAAS,GAAGtH,IAAI,CAACiE,MAAM,CAACmC,gBAAgB,CAACC,WAAW;QACxD,QAAOzT,SAAS,CAACwb,SAAS,CAACnT,QAAQ;UAC/B,KAAK,OAAO;YACRqM,SAAS,GAAGtH,IAAI,CAACiE,MAAM,CAACmC,gBAAgB,CAACC,WAAW;YACxD;UACA,KAAK,QAAQ;YACTiB,SAAS,GAAGtH,IAAI,CAACiE,MAAM,CAACmC,gBAAgB,CAACE,UAAU;YACvD;QACJ;QACA;QACA,IAAIY,SAAS,GAAG,IAAI;QACpB;QACA,IAAGtU,SAAS,CAACmS,YAAY,IAAI,UAAU,EAAC;UACpCmC,SAAS,GAAG,IAAIlH,IAAI,CAACuG,KAAK,CAAC3T,SAAS,CAACwb,SAAS,CAACrT,KAAK,CAAC;UACrDmM,SAAS,CAACV,CAAC,GAAG5T,SAAS,CAACwb,SAAS,CAAClS,WAAW;QACjD,CAAC,MAAI;UACDgL,SAAS,GAAG,IAAIlH,IAAI,CAACuG,KAAK,CAAC3T,SAAS,CAACwb,SAAS,CAAClH,SAAS,CAAC;UACzDA,SAAS,CAACV,CAAC,GAAG5T,SAAS,CAACwb,SAAS,CAACjH,WAAW;QACjD;QACA;QACAV,UAAU,GAAG,IAAIzG,IAAI,CAACiE,MAAM,CAACmC,gBAAgB,CAACkB,SAAS,EAACJ,SAAS,EAACtU,SAAS,CAACwb,SAAS,CAACpT,SAAS,CAAC;MACpG,CAAC,MAAI;QACD;QACA,IAAIgJ,YAAY,GAAG,IAAIhE,IAAI,CAACiE,MAAM,CAACC,mBAAmB,CAClDtR,SAAS,CAACwb,SAAS,CAACzN,GAAG,OAAA/K,MAAA,CAAOC,oBAAS,CAACG,YAAY,8BAA2B,EAC9EpD,SAAS,CAACwb,SAAS,CAACjV,KAAK,IAAI,EAAE,EAAIvG,SAAS,CAACwb,SAAS,CAAClV,MAAM,IAAI,EACtE,CAAC;QACD;QACA8K,YAAY,CAACG,SAAS,CAClB,CAACvR,SAAS,CAACwb,SAAS,CAACvT,cAAc,IAAI,CAAC,EAAE,IAAI,CAACjI,SAAS,CAACwb,SAAS,CAACjV,KAAK,IAAI,EAAE,IAAE,CAAC,EAChF,EAAE,CAACvG,SAAS,CAACwb,SAAS,CAACtT,cAAc,IAAI,CAAC,EAAE,IAAI,CAAClI,SAAS,CAACwb,SAAS,CAAClV,MAAM,IAAI,EAAE,IAAE,CAAC,CACzF,CAAC;QACDpN,CAAC,CAAC6G,WAAW,CAACmc,eAAe,CAAC9K,YAAY,CAAC;MAC/C;MACA;MACA,IAAGpR,SAAS,CAACmS,YAAY,IAAI,SAAS,IAAInS,SAAS,CAACmS,YAAY,IAAI,QAAQ,IAAInS,SAAS,CAACmS,YAAY,IAAI,WAAW,EAAC;QAClH;QACA8J,UAAU,GAAG,IAAI7O,IAAI,CAACiE,MAAM,CAACuD,gBAAgB,CAAC,CAAC;QAC/C;QACAqH,UAAU,CAACpH,UAAU,CAAChB,UAAU,CAAC;QACjC;QACA,IAAIsI,MAAM,GAAG,IAAI/O,IAAI,CAACuG,KAAK,CAAC3T,SAAS,CAACwb,SAAS,CAACrT,KAAK,CAAC;QACtDgU,MAAM,CAACvI,CAAC,GAAG5T,SAAS,CAACwb,SAAS,CAAClS,WAAW;QAC1C2S,UAAU,CAAC/H,QAAQ,CAACiI,MAAM,CAAC;QAC3B;QACAjjB,CAAC,CAAC6G,WAAW,CAACqc,aAAa,CAACH,UAAU,CAAC;QACvC/iB,CAAC,CAAC6G,WAAW,CAACsc,4BAA4B,CAAC,IAAI,CAAC;MACpD;MACA;MACA,IAAIlK,YAAY,GAAG/E,IAAI,CAACkN,QAAQ,CAACc,IAAI,CAACkB,KAAK;MAC3C,QAAOtc,SAAS,CAACmS,YAAY;QACzB,KAAK,OAAO;UACRA,YAAY,GAAG/E,IAAI,CAACkN,QAAQ,CAACc,IAAI,CAACkB,KAAK;UAE3C;QACA,KAAK,UAAU;UACXnK,YAAY,GAAG/E,IAAI,CAACkN,QAAQ,CAACc,IAAI,CAACmB,QAAQ;UAC1C;UACArjB,CAAC,CAAC6G,WAAW,CAACyc,aAAa,CAAC3I,UAAU,CAAC;UAC3C;QACA,KAAK,SAAS;UACV1B,YAAY,GAAG/E,IAAI,CAACkN,QAAQ,CAACc,IAAI,CAACqB,OAAO;UAC7C;QACA,KAAK,QAAQ;UACTtK,YAAY,GAAG/E,IAAI,CAACkN,QAAQ,CAACc,IAAI,CAACsB,MAAM;UAC5C;QACA,KAAK,WAAW;UACZvK,YAAY,GAAG/E,IAAI,CAACkN,QAAQ,CAACc,IAAI,CAACuB,SAAS;UAC/C;MACJ;MACAzjB,CAAC,CAAC6G,WAAW,CAACib,QAAQ,CAAC7I,YAAY,CAAC;IACxC;IACA;EAAA;IAAAjY,GAAA;IAAAjC,KAAA,EACA,SAAAsjB,UAAA,EAAW;MACP,IAAIriB,CAAC,GAAG,IAAI;MACZ,IAAGA,CAAC,CAAC6G,WAAW,EAAC;QACb+C,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACwC,KAAK,CAAC+F,KAAK,eAAY,CAAC,CAACgF,GAAG,CAAC;UACjCuV,MAAM,EAAE;QACZ,CAAC,CAAC;QACF;QACA9iB,CAAC,CAAC6G,WAAW,CAAC6c,aAAa,CAAC,CAAC;QAC7B;QACA1jB,CAAC,CAAC6G,WAAW,CAACgb,UAAU,CAAC,CAAC;MAC9B;IACJ;IACA;EAAA;IAAA7gB,GAAA;IAAAjC,KAAA,EACA,SAAAsN,QAAQkG,GAAG,EAAC;MACR,IAAIvS,CAAC,GAAG,IAAI;MACZ;MACAA,CAAC,CAACwH,cAAc,GAAGxH,CAAC,CAAC2jB,mBAAmB,CAACpR,GAAG,CAAC;MAC7C;MACAvS,CAAC,CAAC6Q,gBAAgB,CAAC,CAAC;IACxB;IACA;EAAA;IAAA7P,GAAA;IAAAjC,KAAA,EACA,SAAA8R,iBAAA,EAAkB;MACd,IAAI7Q,CAAC,GAAG,IAAI;MACZ;MACA,IAAIof,GAAG,GAAGpf,CAAC,CAACmf,gBAAgB,CAACnf,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC2L,MAAM,CAAC;MAChDjU,CAAC,CAACyH,SAAS,GAAG,EAAE;MAChB;MACA,KAAI,IAAI/I,CAAC,GAAG,CAAC,EAAGA,CAAC,GAAGsB,CAAC,CAAC0H,SAAS,CAACjJ,MAAM,EAAEC,CAAC,EAAE,EAAC;QACxCsB,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC4J,QAAQ,CAACpE,MAAM,CAAC9N,CAAC,CAAC0H,SAAS,CAAChJ,CAAC,CAAC,CAACyT,OAAO,CAAC;QACnDnS,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC4J,QAAQ,CAACpE,MAAM,CAAC9N,CAAC,CAAC0H,SAAS,CAAChJ,CAAC,CAAC,CAACklB,WAAW,CAAC;MAC3D;MACA,KAAI,IAAIllB,IAAC,GAAG,CAAC,EAAEA,IAAC,GAAGsB,CAAC,CAACwH,cAAc,CAAC/I,MAAM,EAAGC,IAAC,EAAE,EAAC;QAC7CsB,CAAC,CAACwH,cAAc,CAAC9I,IAAC,CAAC,CAACmlB,SAAS,GAAG,KAAK;MACzC;MACA;MACA,KAAI,IAAInlB,IAAC,GAAG,CAAC,EAAGA,IAAC,GAAGsB,CAAC,CAACwH,cAAc,CAAC/I,MAAM,EAAGC,IAAC,EAAE,EAAC;QAC9C,IAAIya,EAAE,GAAGnZ,CAAC,CAACwH,cAAc,CAAC9I,IAAC,CAAC,CAACsZ,MAAM;UAC/B9P,QAAQ,GAAG,OAAO;UAAC4b,UAAU,GAAG,IAAI;QACxC;QACA,IAAG3K,EAAE,CAAClM,QAAQ,CAACxC,IAAI,KAAK,OAAO,EAAC;UAC5BiM,OAAO,CAACqN,OAAO,4EAAgB,CAAC;QACpC,CAAC,MAAI;UACD;UACA,IAAG3E,GAAG,CAAC4E,QAAQ,CAAC7K,EAAE,CAAClM,QAAQ,CAAC,EAAC;YACzB;YACA,IAAGjN,CAAC,CAACyH,SAAS,CAAChJ,MAAM,KAAK,CAAC,EAAC;cACxBuB,CAAC,CAACikB,aAAa,CAACjkB,CAAC,CAACwH,cAAc,CAAC9I,IAAC,CAAC,CAAC;YACxC,CAAC,MAAI;cACD,KAAI,IAAI0Y,CAAC,GAAG,CAAC,EAAGA,CAAC,GAAGpX,CAAC,CAACyH,SAAS,CAAChJ,MAAM,EAAE2Y,CAAC,EAAE,EAAC;gBACxC;gBACA,IAAIuF,CAAC,GAAG3c,CAAC,CAACugB,uBAAuB,CAC7B,CAACpH,EAAE,CAAClM,QAAQ,CAAC7G,CAAC,EAAC+S,EAAE,CAAClM,QAAQ,CAAC5G,CAAC,CAAC,EAC7B,CAACrG,CAAC,CAACyH,SAAS,CAAC2P,CAAC,CAAC,CAAC/D,MAAM,CAACjN,CAAC,EAACpG,CAAC,CAACyH,SAAS,CAAC2P,CAAC,CAAC,CAAC/D,MAAM,CAAChN,CAAC,CACpD,CAAC;gBACD;gBACA,IAAGsW,CAAC,GAAGzU,QAAQ,EAAC;kBACZA,QAAQ,GAAGyU,CAAC;kBACZmH,UAAU,GAAG9jB,CAAC,CAACyH,SAAS,CAAC2P,CAAC,CAAC;gBAC/B;cACJ;cACA;cACA,IAAG0M,UAAU,IAAIA,UAAU,CAAC7P,MAAM,CAAC+P,QAAQ,CAAC7K,EAAE,CAAClM,QAAQ,CAAC,EAAC;gBACrDjN,CAAC,CAACwH,cAAc,CAAC9I,IAAC,CAAC,CAACmlB,SAAS,GAAG,IAAI;gBACpCC,UAAU,CAACI,OAAO,CAAC3jB,IAAI,CAACP,CAAC,CAACwH,cAAc,CAAC9I,IAAC,CAAC,CAAC;gBAC5ColB,UAAU,CAACK,MAAM,GAAG,IAAI;cAC5B,CAAC,MAAI;gBACDnkB,CAAC,CAACikB,aAAa,CAACjkB,CAAC,CAACwH,cAAc,CAAC9I,IAAC,CAAC,CAAC;cACxC;YACJ;UACJ;QACJ;MACJ;MACA;MACA,KAAI,IAAIA,IAAC,GAAG,CAAC,EAAGA,IAAC,GAAGsB,CAAC,CAACyH,SAAS,CAAChJ,MAAM,EAAEC,IAAC,EAAE,EAAC;QACxC,IAAGsB,CAAC,CAACyH,SAAS,CAAC/I,IAAC,CAAC,CAACylB,MAAM,EAAC;UACrB;UACAnkB,CAAC,CAACokB,eAAe,CAACpkB,CAAC,CAACyH,SAAS,CAAC/I,IAAC,CAAC,CAAC;QACrC,CAAC,MAAI;UACD,IAAI2lB,CAAC,GAAGrkB,CAAC,CAACyH,SAAS,CAAC/I,IAAC,CAAC,CAACwlB,OAAO,CAAC,CAAC,CAAC;UACjC,IAAG,CAACG,CAAC,CAACrM,MAAM,CAAChK,OAAO,CAAC,CAAC,EAAC;YACnB;YACA,IAAGqW,CAAC,CAAC/W,IAAI,EAAC;cACNtN,CAAC,CAAC8Y,iBAAiB,CAACuL,CAAC,CAACvX,EAAE,EAACuX,CAAC,CAAC/W,IAAI,CAAC;YACpC;YACA;YACAtN,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC4J,QAAQ,CAACvE,GAAG,CAAC0W,CAAC,CAACrM,MAAM,CAAC;UACtC;QACJ;MACJ;IACJ;IACA;EAAA;IAAAhX,GAAA;IAAAjC,KAAA,EACA,SAAAqlB,gBAAgB/X,OAAO,EAAC;MACpB,IAAIrM,CAAC,GAAG,IAAI;MACZ,IAAIiC,GAAG,GAAGoK,OAAO,CAAC6X,OAAO,CAACzlB,MAAM;QAAC8T,GAAG,GAAC,EAAE;MACvC,IAAIsC,GAAG,GAAG,wEAAwE;QAC9EmM,CAAC,GAAG,EAAE;MACV,IAAG/e,GAAG,GAAG,EAAE,EAAC;QACR4S,GAAG,GAAG,wEAAwE;QAC9EmM,CAAC,GAAG,EAAE;MACV;MACA,IAAG/e,GAAG,GAAG,EAAE,EAAC;QACR4S,GAAG,GAAG,wEAAwE;QAC9EmM,CAAC,GAAG,EAAE;MACV;MACA,IAAG/e,GAAG,GAAG,EAAE,EAAC;QACR4S,GAAG,GAAG,wEAAwE;QAC9EmM,CAAC,GAAG,EAAE;MACV;MACA,IAAG/e,GAAG,GAAG,EAAE,EAAC;QACR4S,GAAG,GAAG,wEAAwE;QAC9EmM,CAAC,GAAG,EAAE;MACV;MACA;MACA,KAAI,IAAItiB,CAAC,GAAG,CAAC,EAAGA,CAAC,GAAGuD,GAAG,EAAGvD,CAAC,EAAE,EAAC;QAC1B6T,GAAG,CAAChS,IAAI,CAAC8L,OAAO,CAAC6X,OAAO,CAACxlB,CAAC,CAAC,CAACoO,EAAE,CAAC;QAC/B,IAAGT,OAAO,CAAC6X,OAAO,CAACxlB,CAAC,CAAC,CAACsZ,MAAM,CAAChK,OAAO,CAAC,CAAC,EAAC;UACnChO,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC4J,QAAQ,CAACpE,MAAM,CAACzB,OAAO,CAAC6X,OAAO,CAACxlB,CAAC,CAAC,CAACsZ,MAAM,CAAC;UACtD,IAAG3L,OAAO,CAAC6X,OAAO,CAACxlB,CAAC,CAAC,CAAC4O,IAAI,EAAC;YACvBjB,OAAO,CAAC6X,OAAO,CAACxlB,CAAC,CAAC,CAAC4O,IAAI,CAACA,IAAI,CAACQ,MAAM,CAAC,CAAC;UACzC;QACJ;MACJ;MACA;MACA,IAAIoK,YAAY,GAAG,IAAIhE,IAAI,CAACiE,MAAM,CAACC,mBAAmB,CAClDvD,GAAG,EAAEmM,CAAC,EAAEA,CACZ,CAAC;MACD;MACA,IAAIsD,IAAI,GAAG,IAAIpQ,IAAI,CAACiE,MAAM,CAACoM,UAAU,CAACtiB,GAAG,CAAC,CAAC+Y,QAAQ,CAAC,IAAI9G,IAAI,CAACuG,KAAK,CAAC,MAAM,CAAC,CAAC;MACvE;MACA6J,IAAI,CAACjM,SAAS,CAAC,GAAG,EAAC,CAAC,CAAC,CAAC;MAC1B;MACA,IAAIlG,OAAO,GAAG,IAAI+B,IAAI,CAACoE,OAAO,CAACjM,OAAO,CAACgH,MAAM,EAAC6E,YAAY,EAAC;UAACpL,EAAE,EAAE,kBAAkB;UAACyF,GAAG,EAAHA,GAAG;UAAClG,OAAO,EAAPA;QAAO,CAAC,CAAC;QAC5FuX,WAAW,GAAG,IAAI1P,IAAI,CAACoE,OAAO,CAACjM,OAAO,CAACgH,MAAM,EAACiR,IAAI,EAAC;UAACxX,EAAE,EAAE,kBAAkB;UAACyF,GAAG,EAAHA,GAAG;UAAClG,OAAO,EAAPA;QAAO,CAAC,CAAC;MAC5F;MACArM,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC4J,QAAQ,CAACvE,GAAG,CAACwE,OAAO,CAAC;MACjCnS,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC4J,QAAQ,CAACvE,GAAG,CAACiW,WAAW,CAAC;MACrC5jB,CAAC,CAAC0H,SAAS,CAACnH,IAAI,CAAC;QAAC4R,OAAO,EAAPA,OAAO;QAACyR,WAAW,EAAXA;MAAW,CAAC,CAAC;IAC3C;IACA;EAAA;IAAA5iB,GAAA;IAAAjC,KAAA,EACA,SAAAklB,cAAcI,CAAC,EAAC;MACZ,IAAIrkB,CAAC,GAAG,IAAI;MACZ,IAAImZ,EAAE,GAAGkL,CAAC,CAACrM,MAAM;MACjB;MACA,IAAG,CAACqM,CAAC,CAACR,SAAS,EAAC;QACZQ,CAAC,CAACR,SAAS,GAAG,IAAI;QAClB7jB,CAAC,CAACyH,SAAS,CAAClH,IAAI,CAAC;UACb0T,MAAM,EAAEjU,CAAC,CAACmf,gBAAgB,CAAChG,EAAE,CAACU,OAAO,CAAC;UACtCxG,MAAM,EAAE8F,EAAE,CAAClM,QAAQ;UACnBiX,OAAO,EAAE,CAACG,CAAC,CAAC;UACZF,MAAM,EAAE;QACZ,CAAC,CAAC;MACN;IACJ;IACA;EAAA;IAAAnjB,GAAA;IAAAjC,KAAA,EACA,SAAAogB,iBAAiBlL,MAAM,EAAC8L,IAAI,EAAC;MACzB,IAAI/f,CAAC,GAAG,IAAI;QAACwkB,KAAK,GAAGzE,IAAI,IAAI,EAAE;MAC/B,IAAI0E,EAAE,GAAG,IAAIvQ,IAAI,CAACjH,QAAQ,CAAC8K,KAAK,CAAC9D,MAAM,CAACP,IAAI,EAACO,MAAM,CAACN,IAAI,CAAC;QACrD+Q,EAAE,GAAG,IAAIxQ,IAAI,CAACjH,QAAQ,CAAC8K,KAAK,CAAC9D,MAAM,CAACT,IAAI,EAACS,MAAM,CAACR,IAAI,CAAC;QACrDkR,OAAO,GAAG3kB,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC6E,QAAQ,CAACsX,EAAE,CAAC;QAClCG,OAAO,GAAG5kB,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC6E,QAAQ,CAACuX,EAAE,CAAC;MAClCC,OAAO,CAACve,CAAC,IAAIoe,KAAK;MAClBG,OAAO,CAACte,CAAC,IAAIme,KAAK;MAClBI,OAAO,CAACxe,CAAC,IAAIoe,KAAK;MAClBI,OAAO,CAACve,CAAC,IAAIme,KAAK;MACtB,IAAIK,KAAK,GAAG7kB,CAAC,CAACqI,KAAK,CAACC,GAAG,CAACwc,KAAK,CAACH,OAAO,CAAC;QAClCI,KAAK,GAAG/kB,CAAC,CAACqI,KAAK,CAACC,GAAG,CAACwc,KAAK,CAACF,OAAO,CAAC;MACtC,OAAO,IAAI1Q,IAAI,CAACjH,QAAQ,CAACkH,MAAM,CAAC4Q,KAAK,CAAC3e,CAAC,EAAC2e,KAAK,CAAC1e,CAAC,EAACwe,KAAK,CAACze,CAAC,EAACye,KAAK,CAACxe,CAAC,EAAE,IAAI6N,IAAI,CAACkB,gBAAgB,CAAC;QAAEzP,IAAI,EAAE3F,CAAC,CAAC0F;MAAO,CAAC,CAAC,CAAC;IACnH;IACA;EAAA;IAAA1E,GAAA;IAAAjC,KAAA,EACA,SAAA4kB,oBAAoB9gB,GAAG,EAAC;MACpB,IAAI7C,CAAC,GAAG,IAAI;MACZ,IAAIgf,GAAG,GAAG,EAAE;MACZ,IAAG,CAACnc,GAAG,EAAC;QACJ,IAAK4F,QAAQ,GAAIzI,CAAC,CAACqI,KAAK,CAAnBI,QAAQ;QACbuW,GAAG,GAAGvW,QAAQ;MAClB,CAAC,MAAI;QACD,IAAGxI,MAAM,CAACJ,SAAS,CAAC8B,QAAQ,CAACnB,KAAK,CAACqC,GAAG,CAAC,KAAK,gBAAgB,EAAC;UACzDmc,GAAG,GAAGnc,GAAG;QACb,CAAC,MAAK,IAAG,OAAOA,GAAG,KAAK,QAAQ,EAAC;UAC7Bmc,GAAG,GAAGnc,GAAG,CAAC6V,KAAK,CAAC,GAAG,CAAC;QACxB;MACJ;MACA,IAAIsM,UAAU,GAAG,EAAE;MACnB,KAAI,IAAItmB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsgB,GAAG,CAACvgB,MAAM,EAAGC,CAAC,EAAE,EAAC;QAChC,IAAIZ,GAAG,GAAG;UACNgP,EAAE,EAAEkS,GAAG,CAACtgB,CAAC,CAAC;UACVsZ,MAAM,EAAEhY,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAACgS,GAAG,CAACtgB,CAAC,CAAC,CAAC;UAC/BmlB,SAAS,EAAE;QACf,CAAC;QACD,IAAG7jB,CAAC,CAACkG,KAAK,CAAC8Y,GAAG,CAACtgB,CAAC,CAAC,CAAC,EAAC;UACfZ,GAAG,CAACwP,IAAI,GAAGtN,CAAC,CAACkG,KAAK,CAAC8Y,GAAG,CAACtgB,CAAC,CAAC,CAAC;QAC9B;QACAsmB,UAAU,CAACzkB,IAAI,CAACzC,GAAG,CAAC;MACxB;MACA,OAAOknB,UAAU;IACrB;IACA;EAAA;IAAAhkB,GAAA;IAAAjC,KAAA,EACA,SAAAwN,mBAAmB3E,eAAe,EAAC;MAC/B,IAAI5H,CAAC,GAAG,IAAI;MACZ,IAAAilB,YAAA,GAAoBjlB,CAAC,CAAC+a,QAAQ,CAACnT,eAAe,CAAC;QAAlCsd,GAAG,GAAAD,YAAA,CAAXpL,OAAO;MACZ7Z,CAAC,CAAC4H,eAAe,GAAG,IAAIsM,IAAI,CAACjH,QAAQ,CAACkH,MAAM,CAAA1T,aAAA,CAAAA,aAAA,KACrCykB,GAAG;QAAC9Q,gBAAgB,EAAE;UAACzO,IAAI,EAAE3F,CAAC,CAAC0F;QAAM;MAAC,EAC5C,CAAC;IACN;IACA;EAAA;IAAA1E,GAAA;IAAAjC,KAAA,EACA,SAAAomB,qBAAA,EAAsB;MAClB,IAAInlB,CAAC,GAAG,IAAI;MACZA,CAAC,CAAC4H,eAAe,GAAG,IAAI;IAC5B;IACA;EAAA;IAAA5G,GAAA;IAAAjC,KAAA,EACA,SAAAmS,oBAAoBlS,CAAC,EAAC;MAClB,IAAIgB,CAAC,GAAG,IAAI;MACZ;MACA,IAAGA,CAAC,CAAC4H,eAAe,CAACoc,QAAQ,CAAChlB,CAAC,CAACiV,MAAM,CAACyK,SAAS,CAAC,CAAC,CAAC,EAAC;QAChD;MACJ;MACA;MACA;MACA;MACA,IAAA0G,kBAAA,GAAuDplB,CAAC,CAAC4H,eAAe;QAA9Dyd,KAAK,GAAAD,kBAAA,CAAV5R,IAAI;QAAa8R,KAAK,GAAAF,kBAAA,CAAX1R,IAAI;QAAc6R,KAAK,GAAAH,kBAAA,CAAX3R,IAAI;QAAc+R,KAAK,GAAAJ,kBAAA,CAAXzR,IAAI;MAC5C,IAAA8R,SAAA,GAAuDzmB,CAAC,CAACiV,MAAM;QAArDyR,KAAK,GAAAD,SAAA,CAAVjS,IAAI;QAAamS,KAAK,GAAAF,SAAA,CAAX/R,IAAI;QAAckS,KAAK,GAAAH,SAAA,CAAXhS,IAAI;QAAcoS,KAAK,GAAAJ,SAAA,CAAX9R,IAAI;MAC5C,IAAIvN,CAAC,GAAGpH,CAAC,CAACiV,MAAM,CAACyK,SAAS,CAAC,CAAC,CAACtY,CAAC;QAACC,CAAC,GAAGrH,CAAC,CAACiV,MAAM,CAACyK,SAAS,CAAC,CAAC,CAACrY,CAAC;MACzD,IAAGD,CAAC,GAAGif,KAAK,EAACjf,CAAC,GAAGif,KAAK,GAAC,GAAG;MAC1B,IAAGjf,CAAC,GAAGkf,KAAK,EAAClf,CAAC,GAAGkf,KAAK,GAAC,GAAG;MAC1B,IAAGjf,CAAC,GAAGkf,KAAK,EAAClf,CAAC,GAAGkf,KAAK,GAAC,GAAG;MAC1B,IAAGlf,CAAC,GAAGmf,KAAK,EAACnf,CAAC,GAAGmf,KAAK,GAAC,GAAG;MAC1B,IAAInS,MAAM,GAAG,IAAIa,IAAI,CAACjH,QAAQ,CAAC8K,KAAK,CAAC3R,CAAC,EAACC,CAAC,CAAC;MACzCrG,CAAC,CAACqI,KAAK,CAACC,GAAG,CAACqW,QAAQ,CAACtL,MAAM,CAAC;IAChC;IACA;IACA;EAAA;IAAArS,GAAA;IAAAjC,KAAA,EACA,SAAA+mB,eAAeC,EAAE,EAACC,EAAE,EAAC;MACjB,IAAUX,KAAK,GAAwCU,EAAE,CAApDvS,IAAI;QAAa8R,KAAK,GAA4BS,EAAE,CAAzCrS,IAAI;QAAc6R,KAAK,GAAgBQ,EAAE,CAA7BtS,IAAI;QAAc+R,KAAK,GAAIO,EAAE,CAAjBpS,IAAI;MAC5C,IAAU+R,KAAK,GAAwCM,EAAE,CAApDxS,IAAI;QAAamS,KAAK,GAA4BK,EAAE,CAAzCtS,IAAI;QAAckS,KAAK,GAAgBI,EAAE,CAA7BvS,IAAI;QAAcoS,KAAK,GAAIG,EAAE,CAAjBrS,IAAI;MAC5C,OAAQ+R,KAAK,GAAGL,KAAK,IAAIM,KAAK,GAAGL,KAAK,IAAIM,KAAK,GAAGL,KAAK,IAAIM,KAAK,GAAGL,KAAK;IAC5E;IACA;EAAA;IAAAxkB,GAAA;IAAAjC,KAAA,EACA,SAAAgP,QAAQjB,EAAE,EAAC;MACP,IAAI9M,CAAC,GAAG,IAAI;MACZ4J,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACwC,KAAK,CAAC+F,KAAK,oBAAiB,CAAC,CAACsF,MAAM,CAAC7N,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAACF,EAAE,CAAC,CAACkB,OAAO,CAAC,CAAC,CAAC;IAC/E;EAAC;IAAAhN,GAAA;IAAAjC,KAAA,EACD,SAAAknB,YAAYvL,CAAC,EAACwL,CAAC,EAAC;MACZ,OAAQxL,CAAC,CAACtU,CAAC,IAAI8f,CAAC,CAAC9f,CAAC,IAAIsU,CAAC,CAACrU,CAAC,IAAI6f,CAAC,CAAC7f,CAAC;IACpC;IACA;EAAA;IAAArF,GAAA;IAAAjC,KAAA,EACA,SAAAwhB,wBAAwB4F,EAAE,EAACC,EAAE,EAAC;MAC1B,OAAO,IAAA/X,4BAAW,EAAC8X,EAAE,EAACC,EAAE,EAAC,IAAI,CAAC/d,KAAK,CAACC,GAAG,EAAC,IAAI,CAACD,KAAK,CAAC3C,MAAM,CAAC;IAC9D;IACA;EAAA;IAAA1E,GAAA;IAAAjC,KAAA,EACA,SAAA0iB,kBAAkB/O,EAAE,EAAC;MACjB,IAAI1S,CAAC,GAAG,IAAI;QAACqmB,aAAa,GAAG,CAAC;MAC9B,IAAI3T,EAAE,CAACjU,MAAM,GAAG,CAAC,EAAE;QAAC,OAAO,CAAC;MAAC;MAC7B,KAAI,IAAIC,CAAC,GAAE,CAAC,EAAGA,CAAC,GAAEgU,EAAE,CAACjU,MAAM,EAAGC,CAAC,EAAE,EAAC;QAC9B,IAAGA,CAAC,GAAGgU,EAAE,CAACjU,MAAM,GAAC,CAAC,EAAC;UACf4nB,aAAa,IAAIrmB,CAAC,CAACugB,uBAAuB,CAAC7N,EAAE,CAAChU,CAAC,CAAC,EAACgU,EAAE,CAAChU,CAAC,GAAC,CAAC,CAAC,CAAC;QAC7D;MACJ;MACA,OAAO2nB,aAAa;IACxB;IACA;EAAA;IAAArlB,GAAA;IAAAjC,KAAA,EACA,SAAAgc,SAASvM,KAAK,EAAC;MACX;MACA,IAAIgU,SAAS,GAAG,EAAE;QAAC3I,OAAO,GAAG;UAACnG,IAAI,EAAE,CAAC;UAACF,IAAI,EAAE,CAAC;UAACG,IAAI,EAAE,CAAC;UAACF,IAAI,EAAE;QAAC,CAAC;QAAC6S,IAAI,GAAC,EAAE;MACtEA,IAAI,GAAG9X,KAAK,CAAC5B,GAAG,CAAC,UAACC,IAAI,EAAC6C,KAAK,EAAG;QAC3B,IAAIkN,GAAG,GAAG/P,IAAI,CAAC,CAAC,CAAC;UAACgQ,GAAG,GAAGhQ,IAAI,CAAC,CAAC,CAAC;QAC/B,IAAG+P,GAAG,GAAG/C,OAAO,CAACnG,IAAI,EAAC;UAClBmG,OAAO,CAACnG,IAAI,GAAGkJ,GAAG;QACtB;QACA,IAAGA,GAAG,GAAG/C,OAAO,CAACrG,IAAI,IAAIqG,OAAO,CAACrG,IAAI,IAAI,CAAC,EAAC;UACvCqG,OAAO,CAACrG,IAAI,GAAGoJ,GAAG;QACtB;QACA,IAAGC,GAAG,GAAGhD,OAAO,CAAClG,IAAI,EAAC;UAClBkG,OAAO,CAAClG,IAAI,GAAGkJ,GAAG;QACtB;QACA,IAAGA,GAAG,GAAGhD,OAAO,CAACpG,IAAI,IAAIoG,OAAO,CAACpG,IAAI,IAAI,CAAC,EAAC;UACvCoG,OAAO,CAACpG,IAAI,GAAGoJ,GAAG;QACtB;QACA2F,SAAS,CAACjiB,IAAI,CAAC;UACXgmB,IAAI,EAAE3J,GAAG;UACT4J,IAAI,EAAE3J;QACV,CAAC,CAAC;QACF,OAAO,CAACD,GAAG,EAACC,GAAG,CAAC;MACpB,CAAC,CAAC;MACF,OAAO;QAAC2F,SAAS,EAATA,SAAS;QAAC3I,OAAO,EAAPA,OAAO;QAACyM,IAAI,EAAJA;MAAI,CAAC;IACnC;IACC;EAAA;IAAAtlB,GAAA;IAAAjC,KAAA,EACD,SAAA+Z,kBAAkBhM,EAAE,EAACmL,KAAK,EAAC;MACvB,IAAIjY,CAAC,GAAG,IAAI;MACZ,IAAGiY,KAAK,EAAC;QACL,IAAIlL,QAAQ,GAAG,CAAC/M,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAACF,EAAE,CAAC,IAAI,CAAC,CAAC,EAAEG,QAAQ,IAAIgL,KAAK,CAAClL,QAAQ;QACrE;QACA,IAAIG,EAAE,GAAGlN,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC6E,QAAQ,CAACJ,QAAQ,CAAC;UAAC0Z,GAAG,GAAAhmB,aAAA,KAAOwX,KAAK,CAAC;QACxD;QACA,IAAG,EAAE/K,EAAE,CAAC7G,CAAC,GAAG,CAAC,EAAE,IAAI6G,EAAE,CAAC9G,CAAC,GAAG,CAAC,EAAE,IAAI8G,EAAE,CAAC7G,CAAC,GAAGrG,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC8E,MAAM,IAAIF,EAAE,CAAC9G,CAAC,GAAGpG,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC+E,KAAK,CAAC,EAAC;UACpF;UACA4K,KAAK,CAAC3K,IAAI,CAACC,GAAG,CAAC;YACXR,QAAQ,EAAE,UAAU;YACpBS,GAAG,EAAEN,EAAE,CAAC7G,CAAC,IAAI4R,KAAK,CAACxK,MAAM,CAACpH,CAAC,IAAI,CAAC,CAAC,GAAGrG,CAAC,CAACmG,UAAU,CAACE,CAAC;YAClDqH,IAAI,EAAER,EAAE,CAAC9G,CAAC,IAAI6R,KAAK,CAACxK,MAAM,CAACrH,CAAC,IAAI,CAAC,CAAC,GAAGpG,CAAC,CAACmG,UAAU,CAACC;UACtD,CAAC,CAAC;UACF;UACAwD,CAAC,KAAAE,MAAA,CAAK9J,CAAC,CAACgG,YAAY,CAAE,CAAC,CAAC6H,MAAM,CAACoK,KAAK,CAAC3K,IAAI,CAAC;UAC1CmZ,GAAG,CAAC9Y,GAAG,GAAG,IAAI;QAClB,CAAC,MAAI;UACD8Y,GAAG,CAAC9Y,GAAG,GAAG,KAAK;QACnB;QACA;QACA3N,CAAC,CAACkG,KAAK,CAAC4G,EAAE,CAAC,GAAG2Z,GAAG;MACrB;IACJ;IACA;EAAA;IAAAzlB,GAAA;IAAAjC,KAAA,EACA,SAAA8Z,eAAe/L,EAAE,EAACkL,MAAM,EAAC;MACrB,IAAIhY,CAAC,GAAG,IAAI;MACZ;MACA,IAAG,CAAC,CAACgY,MAAM,EAAC;QACR,IAAGhY,CAAC,CAAC0G,SAAS,CAACoG,EAAE,CAAC,EAAC;UACf4Z,aAAa,CAAC1mB,CAAC,CAAC0G,SAAS,CAACoG,EAAE,CAAC,CAAC;QAClC;QACA9M,CAAC,CAAC0G,SAAS,CAACoG,EAAE,CAAC,GAAG6Z,WAAW,CAAC,YAAI;UAC9B;UACA,IAAG3O,MAAM,CAACG,MAAM,EAAC;YACb,IAAI4E,KAAK,GAAAtc,aAAA,KAAOuX,MAAM,CAACG,MAAM,CAAC;YAC9B;YACA,IAAG,CAACnY,CAAC,CAAC2G,SAAS,CAACmG,EAAE,CAAC,IAAIiQ,KAAK,CAAC6J,OAAO,IAAI5mB,CAAC,CAAC2G,SAAS,CAACmG,EAAE,CAAC,CAAC+Z,GAAG,EAAC;cACxD7mB,CAAC,CAAC2G,SAAS,CAACmG,EAAE,CAAC,GAAG;gBACdga,KAAK,EAAE/J,KAAK,CAAC6J,OAAO;gBACpBC,GAAG,EAAE9J,KAAK,CAAC6J,OAAO;gBAClBG,QAAQ,EAAE,CAAC;cACf,CAAC;YACL;YACA,IAAG/mB,CAAC,CAAC2G,SAAS,CAACmG,EAAE,CAAC,CAAC+Z,GAAG,GAAG7mB,CAAC,CAAC2G,SAAS,CAACmG,EAAE,CAAC,CAACga,KAAK,IAAI,EAAE,EAAC;cACjD9mB,CAAC,CAAC2G,SAAS,CAACmG,EAAE,CAAC,CAACia,QAAQ,GAAG,CAAC,CAAC;YACjC;YACA,IAAG/mB,CAAC,CAAC2G,SAAS,CAACmG,EAAE,CAAC,CAAC+Z,GAAG,GAAG7mB,CAAC,CAAC2G,SAAS,CAACmG,EAAE,CAAC,CAACga,KAAK,IAAI,CAAC,EAAC;cAChD9mB,CAAC,CAAC2G,SAAS,CAACmG,EAAE,CAAC,CAACia,QAAQ,GAAG,CAAC;YAChC;YACAhK,KAAK,CAAC6J,OAAO,GAAG5mB,CAAC,CAAC2G,SAAS,CAACmG,EAAE,CAAC,CAAC+Z,GAAG,GAAI7mB,CAAC,CAAC2G,SAAS,CAACmG,EAAE,CAAC,CAAC+Z,GAAG,GAAI7mB,CAAC,CAAC2G,SAAS,CAACmG,EAAE,CAAC,CAACia,QAAQ,GAAE,CAAE;YAC1F/O,MAAM,CAACG,MAAM,CAACE,SAAS,CAAC0E,KAAK,CAACiK,OAAO,EAACjK,KAAK,CAAC6J,OAAO,CAAC;YACpD5mB,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC4J,QAAQ,CAAC8H,OAAO,CAAC,CAAC;UAClC;QACJ,CAAC,EAAC,EAAE,CAAC;MACT,CAAC,MAAI;QACD0M,aAAa,CAAC1mB,CAAC,CAAC0G,SAAS,CAACoG,EAAE,CAAC,CAAC;MAClC;IACJ;EAAC;IAAA9L,GAAA;IAAAjC,KAAA,EACD,SAAAkb,cAAA,EAAe;MACX,IAAIja,CAAC,GAAG,IAAI;MACZ,IAAGA,CAAC,CAAC4G,WAAW,EAAC;QACb8f,aAAa,CAAC1mB,CAAC,CAAC4G,WAAW,CAAC;MAChC;MACA5G,CAAC,CAAC4G,WAAW,GAAG+f,WAAW,CAAC,YAAI;QAC5B,KAAI,IAAIjoB,CAAC,GAAG,CAAC,EAACA,CAAC,GAAGsB,CAAC,CAAC6H,UAAU,CAACpJ,MAAM,EAAEC,CAAC,EAAE,EAAC;UACvCsB,CAAC,CAAC6H,UAAU,CAACnJ,CAAC,CAAC,CAACuoB,QAAQ,IAAI,EAAE;UAC9BjnB,CAAC,CAAC6H,UAAU,CAACnJ,CAAC,CAAC,CAACwoB,UAAU,IAAI,EAAE;QACpC;QACAlnB,CAAC,CAAC6H,UAAU,CAACsf,IAAI,CAAC,UAAC/gB,CAAC,EAACC,CAAC,EAAG;UACrB,OAAOA,CAAC,CAAC4gB,QAAQ,GAAE7gB,CAAC,CAAC6gB,QAAQ;QACjC,CAAC,CAAC;QACF,IAAIG,aAAa,GAAGpnB,CAAC,CAAC6H,UAAU,CAACjG,KAAK,CAAC,CAAC,EAAC,EAAE,CAAC;UAACylB,WAAW,GAAC,EAAE;QAC3D,KAAI,IAAI3oB,IAAC,GAAG,CAAC,EAACA,IAAC,GAAG0oB,aAAa,CAAC3oB,MAAM,EAAEC,IAAC,EAAE,EAAC;UACxC,IAAA4oB,iBAAA,GAA0CF,aAAa,CAAC1oB,IAAC,CAAC;YAArDoO,EAAE,GAAAwa,iBAAA,CAAFxa,EAAE;YAACya,EAAE,GAAAD,iBAAA,CAAFC,EAAE;YAACC,EAAE,GAAAF,iBAAA,CAAFE,EAAE;YAACP,QAAQ,GAAAK,iBAAA,CAARL,QAAQ;YAACC,UAAU,GAAAI,iBAAA,CAAVJ,UAAU;YAACO,IAAI,GAAAH,iBAAA,CAAJG,IAAI;UACtC,IAAItO,EAAE,GAAGnZ,CAAC,CAACsG,EAAE,CAAC0G,UAAU,CAACF,EAAE,CAAC;UAC5B,IAAG,CAACqM,EAAE,IAAI,CAACA,EAAE,CAACuO,cAAc,EAAC;YACzBhB,aAAa,CAAC1mB,CAAC,CAAC4G,WAAW,CAAC;UAChC,CAAC,MAAI;YACD,IAAIgZ,EAAE,GAAGzG,EAAE,CAAClM,QAAQ;YACpB,IAAI0a,EAAE,GAAG/H,EAAE,CAACxZ,CAAC,GAAGmhB,EAAE;cAACK,EAAE,GAAGhI,EAAE,CAACvZ,CAAC,GAAGmhB,EAAE;YACjC,IAAIK,IAAI,GAAG,IAAI3T,IAAI,CAACjH,QAAQ,CAAC8K,KAAK,CAAC4P,EAAE,EAACC,EAAE,CAAC;YACzCzO,EAAE,CAAClM,QAAQ,CAAC6a,WAAW,CAACF,EAAE,CAAC;YAC3BzO,EAAE,CAAClM,QAAQ,CAAC8a,YAAY,CAACJ,EAAE,CAAC;YAC5B;YACAxO,EAAE,CAACU,OAAO,CAACC,MAAM,CAAC6N,EAAE,EAACC,EAAE,EAACD,EAAE,EAACC,EAAE,EAAC,IAAI1T,IAAI,CAACkB,gBAAgB,CAAC;cAAEzP,IAAI,EAAE3F,CAAC,CAAC0F;YAAO,CAAC,CAAC,CAAC;YAC5E,IAAGyT,EAAE,CAACU,OAAO,CAACE,MAAM,IAAIZ,EAAE,CAACU,OAAO,CAACE,MAAM,CAAC,CAAC,CAAC,EAAC;cACzCZ,EAAE,CAACU,OAAO,CAACE,MAAM,CAAC,CAAC,CAAC,CAAC9F,MAAM,CAAC6F,MAAM,CAAC6N,EAAE,EAACC,EAAE,EAACD,EAAE,EAACC,EAAE,EAAC,IAAI1T,IAAI,CAACkB,gBAAgB,CAAC;gBAAEzP,IAAI,EAAE3F,CAAC,CAAC0F;cAAO,CAAC,CAAC,CAAC;YACjG;YACA;YACAyT,EAAE,CAACuO,cAAc,CAAC1N,OAAO,CAAC,CAAC;YAC3B,IAAGha,CAAC,CAACkG,KAAK,CAAC4G,EAAE,CAAC,IAAI9M,CAAC,CAACkG,KAAK,CAAC4G,EAAE,CAAC,CAACa,GAAG,EAAC;cAC9B,IAAIT,EAAE,GAAGlN,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC6E,QAAQ,CAAC0a,IAAI,CAAC;cACnC;cACA7nB,CAAC,CAACkG,KAAK,CAAC4G,EAAE,CAAC,CAACQ,IAAI,CAACC,GAAG,CAAC;gBACjBR,QAAQ,EAAE,UAAU;gBACpBS,GAAG,EAAEN,EAAE,CAAC7G,CAAC,IAAIrG,CAAC,CAACkG,KAAK,CAAC4G,EAAE,CAAC,CAACW,MAAM,CAACpH,CAAC,IAAI,CAAC,CAAC,GAAGrG,CAAC,CAACmG,UAAU,CAACE,CAAC;gBACxDqH,IAAI,EAAER,EAAE,CAAC9G,CAAC,IAAIpG,CAAC,CAACkG,KAAK,CAAC4G,EAAE,CAAC,CAACW,MAAM,CAACrH,CAAC,IAAI,CAAC,CAAC,GAAGpG,CAAC,CAACmG,UAAU,CAACC;cAC5D,CAAC,CAAC;YACN;YACApG,CAAC,CAACsG,EAAE,CAAC0S,eAAe,CAAClM,EAAE,EAAArM,aAAA,CAAAA,aAAA,KAAKT,CAAC,CAACsG,EAAE,CAACyJ,eAAe,CAACjD,EAAE,CAAC;cAACgL,GAAG,EAAE2P;YAAI,EAAC,CAAC;YAChEznB,CAAC,CAAC6H,UAAU,CAACnJ,IAAC,CAAC,CAACuoB,QAAQ,GAAG,CAAC;YAC5B,IAAGC,UAAU,IAAI,CAAC,EAAC;cACfG,WAAW,CAAC9mB,IAAI,CAAC7B,IAAC,CAAC;YACvB;UACJ;QACJ;QACA2oB,WAAW,CAACF,IAAI,CAAC,UAACzM,CAAC,EAACwL,CAAC,EAAG;UAAC,OAAOA,CAAC,GAACxL,CAAC;QAAA,CAAC,CAAC;QACrC,KAAI,IAAIhc,IAAC,GAAG,CAAC,EAAGA,IAAC,GAAG2oB,WAAW,CAAC5oB,MAAM,EAAGC,IAAC,EAAE,EAAC;UACzCsB,CAAC,CAAC6H,UAAU,CAAC6Y,MAAM,CAAC2G,WAAW,CAAC3oB,IAAC,CAAC,EAAC,CAAC,CAAC;QACzC;QACA,IAAG0oB,aAAa,CAAC3oB,MAAM,IAAI,CAAC,EAAC;UACzBioB,aAAa,CAAC1mB,CAAC,CAAC4G,WAAW,CAAC;QAChC;MACJ,CAAC,EAAC,EAAE,CAAC;IACT;IACA;EAAA;IAAA5F,GAAA;IAAAjC,KAAA,EACA,SAAAya,OAAO1M,EAAE,EAACkb,MAAM,EAACC,KAAK,EAACvO,YAAY,EAACwO,QAAQ,EAACvO,OAAO,EAAC;MACjDsO,KAAK,GAAGA,KAAK,IAAI,CAAC;MAClB,IAAIjoB,CAAC,GAAG,IAAI;QAACmoB,KAAK,GAAG,EAAE;MACvBF,KAAK,GAAGlX,IAAI,CAACkX,KAAK,CAAC,GAAC,IAAI;MACxB,IAAIG,KAAK,GAAGH,KAAK,GAACE,KAAK;QACnBhP,EAAE,GAAG,IAAI,CAAC7S,EAAE,CAAC0G,UAAU,CAACF,EAAE,CAAC;MAC/B,IAAIlO,CAAC,GAAGua,EAAE,CAAClM,QAAQ;QAACjO,CAAC,GAAG,IAAIkV,IAAI,CAACjH,QAAQ,CAAC8K,KAAK,CAACiQ,MAAM,CAAC,CAAC,CAAC,EAACA,MAAM,CAAC,CAAC,CAAC,CAAC;MACpE,IAAGhoB,CAAC,CAACimB,WAAW,CAACrnB,CAAC,EAACI,CAAC,CAAC,EAAC;QAClB,OAAO,KAAK;MAChB,CAAC,MAAI;QACD,IAAIyoB,IAAI,GAAG,CAAC;UAAC5S,GAAG,GAAE,IAAI;QACtB;QACA,IAAG6E,YAAY,EAAC;UACZ;UACA+N,IAAI,GAAGznB,CAAC,CAACqoB,SAAS,CAAClP,EAAE,CAAClM,QAAQ,EAAC+a,MAAM,CAAC;UACtC,IAAGrO,OAAO,IAAK8N,IAAI,GAAG,CAAC,EAAE,IAAIA,IAAI,GAAG,CAAC,GAAI,EAAC;YACtCA,IAAI,IAAI,GAAG;YACX5S,GAAG,GAAG8E,OAAO;UACjB,CAAC,MAAI;YACD9E,GAAG,GAAGqT,QAAQ;UAClB;UACA/O,EAAE,CAAChB,MAAM,CAACiB,MAAM,CAACvE,GAAG,CAAC;UACrBsE,EAAE,CAAChB,MAAM,CAACI,QAAQ,CAACkP,IAAI,CAAC;UACxBtO,EAAE,CAACuO,cAAc,CAAC1N,OAAO,CAAC,CAAC;QAC/B;QACA;QACA,IAAIuN,EAAE,GAAG,CAACvoB,CAAC,CAACoH,CAAC,GAAGxH,CAAC,CAACwH,CAAC,IAAEgiB,KAAK;UAAEZ,EAAE,GAAG,CAACxoB,CAAC,CAACqH,CAAC,GAAGzH,CAAC,CAACyH,CAAC,IAAE+hB,KAAK;QAClD,IAAIE,MAAM,GAAG,KAAK;QAClB,KAAI,IAAI5pB,CAAC,GAAG,CAAC,EAAGA,CAAC,GAAGsB,CAAC,CAAC6H,UAAU,CAACpJ,MAAM,EAAEC,CAAC,EAAE,EAAC;UACzC,IAAGsB,CAAC,CAAC6H,UAAU,CAACnJ,CAAC,CAAC,CAACoO,EAAE,IAAIA,EAAE,EAAC;YACxB9M,CAAC,CAAC6H,UAAU,CAAC6Y,MAAM,CAAChiB,CAAC,EAAC,CAAC,EAAC;cACpBoO,EAAE,EAAFA,EAAE;cAACya,EAAE,EAAFA,EAAE;cAACC,EAAE,EAAFA,EAAE;cACRP,QAAQ,EAAE,CAAC;cACXC,UAAU,EAAEe;YAChB,CAAC,CAAC;YACFK,MAAM,GAAG,IAAI;UACjB;QACJ;QACA,IAAG,CAACA,MAAM,EAAC;UACPtoB,CAAC,CAAC6H,UAAU,CAACtH,IAAI,CAAC;YACduM,EAAE,EAAFA,EAAE;YAACya,EAAE,EAAFA,EAAE;YAACC,EAAE,EAAFA,EAAE;YACRP,QAAQ,EAAE,CAAC;YACXC,UAAU,EAAEe;UAChB,CAAC,CAAC;QACN;MACJ;IACJ;IACA;EAAA;IAAAjnB,GAAA;IAAAjC,KAAA,EACA,SAAAspB,UAAUE,EAAE,EAACnC,EAAE,EAAC;MACZ,IAAIpmB,CAAC,GAAG,IAAI;MACZ,IAAIwoB,QAAQ,GAAGD,EAAE;MACjB,IAAGjqB,KAAK,CAACC,OAAO,CAACgqB,EAAE,CAAC,EAAC;QACjBC,QAAQ,GAAG,IAAItU,IAAI,CAACjH,QAAQ,CAAC8K,KAAK,CAACwQ,EAAE,CAAC,CAAC,CAAC,EAACA,EAAE,CAAC,CAAC,CAAC,CAAC;MACnD;MACA,IAAI3pB,CAAC,GAAGoB,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC6E,QAAQ,CAACqb,QAAQ,CAAC;QACtC;QACIxpB,CAAC,GAAGgB,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC6E,QAAQ,CAAC,IAAI+G,IAAI,CAACjH,QAAQ,CAAC8K,KAAK,CAACqO,EAAE,CAAC,CAAC,CAAC,EAACA,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9DtO,GAAG,GAAG,CAAC;MACX,IAAG9Y,CAAC,CAACoH,CAAC,IAAIxH,CAAC,CAACwH,CAAC,EAAC;QACV,IAAIqiB,GAAG,GAAG,CAACzpB,CAAC,CAACqH,CAAC,GAAGzH,CAAC,CAACyH,CAAC,KAAGrH,CAAC,CAACoH,CAAC,GAAGxH,CAAC,CAACwH,CAAC,CAAC;UACjCsiB,IAAI,GAAIha,IAAI,CAACga,IAAI,CAACD,GAAG,CAAC;QACtB3Q,GAAG,GAAG4Q,IAAI,GAAC,GAAG,IAAE,CAAC,GAACha,IAAI,CAACsR,EAAE,CAAC;QAC1B;QACA,IAAGhhB,CAAC,CAACoH,CAAC,GAAGxH,CAAC,CAACwH,CAAC,EAAC;UACT0R,GAAG,GAAG,CAACA,GAAG,GAAG,EAAE,GAAG,EAAE;QAExB,CAAC,MAAM;UACHA,GAAG,GAAG,CAACA,GAAG;QACd;QACAA,GAAG,GAAG,CAACA,GAAG;MACd,CAAC,MAAK;QACF,IAAI6Q,IAAI,GAAG3pB,CAAC,CAACqH,CAAC,GAAEzH,CAAC,CAACyH,CAAC;QACnB,IAAIuiB,IAAI,GAAG,CAAC;QACZ,IAAGD,IAAI,GAAG,CAAC,EACPC,IAAI,GAAC,CAAC,CAAC,CAAC,KAERA,IAAI,GAAG,CAAC;QACZ,IAAGD,IAAI,IAAI,CAAC,EACRC,IAAI,GAAG,CAAC;QACZ9Q,GAAG,GAAG,CAAC8Q,IAAI,GAAG,EAAE;MACpB;MACA,OAAO9Q,GAAG;IACd;IACA;EAAA;IAAA9W,GAAA;IAAAjC,KAAA,EACA,SAAA8pB,UAAUnO,CAAC,EAACwL,CAAC,EAAC;MACV,OAAO7gB,qBAAS,CAACyjB,EAAE,CAACzjB,qBAAS,CAAC0jB,MAAM,CAACrO,CAAC,CAAC,EAACrV,qBAAS,CAAC0jB,MAAM,CAAC7C,CAAC,CAAC,CAAC;IAChE;IACA;EAAA;IAAAllB,GAAA;IAAAjC,KAAA,EACA,SAAAiqB,UAAUC,OAAO,EAACC,OAAO,EAACze,IAAI,EAAC;MAC3B,IAAI0e,WAAW,GAAG/jB,GAAG,CAAC6jB,OAAO,CAAC,CAACG,QAAQ,CAAChkB,GAAG,CAAC8jB,OAAO,CAAC,CAAC,CAACG,IAAI,CAAC,CAAC;MAC5D,IAAIC,WAAW,GAAGlkB,GAAG,CAAC8jB,OAAO,CAAC,CAACE,QAAQ,CAAChkB,GAAG,CAAC6jB,OAAO,CAAC,CAAC,CAACI,IAAI,CAAC,CAAC;MAC5D,IAAIE,UAAU,GAAGJ,WAAW,CAACvc,GAAG,CAAC,UAAAC,IAAI;QAAA,OAAEA,IAAI,CAACpC,IAAI,CAAC;MAAA,EAAC;MAClD,IAAI+e,UAAU,GAAGF,WAAW,CAAC1c,GAAG,CAAC,UAAAC,IAAI;QAAA,OAAEA,IAAI,CAACpC,IAAI,CAAC;MAAA,EAAC;MAClD,IAAIgf,aAAa,GAAGrkB,GAAG,CAACmkB,UAAU,CAAC,CAACG,SAAS,CAACtkB,GAAG,CAACokB,UAAU,CAAC,CAAC,CAACH,IAAI,CAAC,CAAC;MACrE,IAAIM,WAAW,GAAGL,WAAW,CAAClpB,MAAM,CAAC,UAAAyM,IAAI;QAAA,OAAG4c,aAAa,CAAC7b,OAAO,CAACf,IAAI,CAACpC,IAAI,CAAC,CAAC,GAAC,CAAC,CAAC;MAAA,EAAC;MACjF,IAAImf,YAAY,GAAGT,WAAW,CAAC/oB,MAAM,CAAC,UAAAyM,IAAI;QAAA,OAAG4c,aAAa,CAAC7b,OAAO,CAACf,IAAI,CAACpC,IAAI,CAAC,CAAC,GAAC,CAAC,CAAC;MAAA,EAAC;MAClF,IAAIof,cAAc,GAAGN,UAAU,CAACnpB,MAAM,CAAC,UAAA0pB,KAAK;QAAA,OAAEL,aAAa,CAAC7b,OAAO,CAACkc,KAAK,CAAC,IAAE,CAAC,CAAC;MAAA,EAAC;MAC/E,IAAIC,SAAS,GAAGT,WAAW,CAAClpB,MAAM,CAAC,UAAAyM,IAAI;QAAA,OAAE4c,aAAa,CAAC7b,OAAO,CAACf,IAAI,CAACpC,IAAI,CAAC,CAAC,IAAE,CAAC,CAAC;MAAA,EAAC;MAE/E,OAAO;QAACof,cAAc,EAAdA,cAAc;QAACE,SAAS,EAATA,SAAS;QAACJ,WAAW,EAAXA,WAAW;QAACC,YAAY,EAAZA;MAAY,CAAC;IAC9D;IACA;EAAA;IAAA5oB,GAAA;IAAAjC,KAAA,EACA,SAAAirB,QAAQhL,GAAG,EAACzM,GAAG,EAAC;MACZ,IAAI0X,GAAG,GAAG,EAAE;QAAEC,SAAS,GAAG,EAAE;MAC5B,KAAI,IAAIxrB,CAAC,GAAG,CAAC,EAAGA,CAAC,GAAGsgB,GAAG,CAACvgB,MAAM,EAAGC,CAAC,EAAE,EAAC;QACjC,IAAG6T,GAAG,CAAC3E,OAAO,CAACoR,GAAG,CAACtgB,CAAC,CAAC,CAACoO,EAAE,CAAC,GAAG,CAAC,CAAC,EAAC;UAC3Bod,SAAS,CAAC3pB,IAAI,CAACye,GAAG,CAACtgB,CAAC,CAAC,CAAC;QAC1B,CAAC,MAAI;UACDurB,GAAG,CAAC1pB,IAAI,CAACye,GAAG,CAACtgB,CAAC,CAAC,CAAC;QACpB;MACJ;MACA,OAAO;QAACurB,GAAG,EAAHA,GAAG;QAACC,SAAS,EAATA;MAAS,CAAC;IAC1B;IACA;EAAA;IAAAlpB,GAAA;IAAAjC,KAAA,EACA,SAAAorB,WAAWnL,GAAG,EAACzM,GAAG,EAAC;MACf,IAAI6X,IAAI,GAAG,EAAE;QAAEC,QAAQ,GAAG,EAAE;MAC5B,KAAI,IAAI3rB,CAAC,GAAG,CAAC,EAAGA,CAAC,GAAGsgB,GAAG,CAACvgB,MAAM,EAAGC,CAAC,EAAE,EAAC;QACjC,IAAG6T,GAAG,CAAC3E,OAAO,CAACoR,GAAG,CAACtgB,CAAC,CAAC,CAACoO,EAAE,CAAC,GAAG,CAAC,CAAC,EAAC;UAC3Bsd,IAAI,CAAC7pB,IAAI,CAACye,GAAG,CAACtgB,CAAC,CAAC,CAAC;QACrB,CAAC,MAAI;UACD2rB,QAAQ,CAAC9pB,IAAI,CAACye,GAAG,CAACtgB,CAAC,CAAC,CAAC;QACzB;MACJ;MACA,OAAO;QAAC0rB,IAAI,EAAJA,IAAI;QAACC,QAAQ,EAARA;MAAQ,CAAC;IAC1B;IACA;EAAA;IAAArpB,GAAA;IAAAjC,KAAA,EACA,SAAAurB,OAAA,EAAQ;MACJ,IAAItqB,CAAC,GAAG,IAAI;MACZ,IAAIuqB,IAAI,GAAG,IAAI,CAAC/nB,KAAK;MACrB,oBACIhF,MAAA,YAAAgtB,aAAA;QAAK1d,EAAE,EAAEyd,IAAI,CAAChiB,KAAM;QAACyN,KAAK,EAAE;UAAC3I,KAAK,EAAC,MAAM;UAACD,MAAM,EAAC,MAAM;UAAC4G,eAAe,EAAE;QAAS;MAAE,CAAM,CAAC;IAEnG;;IAEA;EAAA;IAAAhT,GAAA;IAAAjC,KAAA,EACA,SAAA0rB,kBAAA,EAAmB;MACf,IAAIzqB,CAAC,GAAG,IAAI;MACZA,CAAC,CAACsJ,eAAe,CAACe,IAAI,CAAC,YAAI;QACvBrK,CAAC,CAAC4K,IAAI,CAAC,CAAC;MACZ,CAAC,CAAC;IACN;IACA;EAAA;IAAA5J,GAAA;IAAAjC,KAAA,EACA,SAAA2rB,0BAA0BC,SAAS,EAAE;MAAA,IAAAC,MAAA;MACjC,IAAI5qB,CAAC,GAAG,IAAI;MACZA,CAAC,CAAC0F,MAAM,GAAGilB,SAAS,CAACjlB,MAAM,IAAI,IAAI;MACnC;MACA,IAAIqF,QAAQ,GAAG,SAAXA,QAAQA,CAAA,EAAO;QACf,IAAI/K,CAAC,GAAG4qB,MAAI;QACZ;QACA,IAAAC,SAAA,GAAsD7qB,CAAC,CAACqI,KAAK;UAAxDI,QAAQ,GAAAoiB,SAAA,CAARpiB,QAAQ;UAACC,OAAO,GAAAmiB,SAAA,CAAPniB,OAAO;UAACC,UAAU,GAAAkiB,SAAA,CAAVliB,UAAU;UAACC,SAAS,GAAAiiB,SAAA,CAATjiB,SAAS;UAACG,OAAO,GAAA8hB,SAAA,CAAP9hB,OAAO;QAClD,IAAKC,KAAK,GAAsCD,OAAO,CAAlDC,KAAK;UAACC,QAAQ,GAA6BF,OAAO,CAA5CE,QAAQ;UAACC,OAAO,GAAqBH,OAAO,CAAnCG,OAAO;UAACC,MAAM,GAAcJ,OAAO,CAA3BI,MAAM;UAACC,SAAS,GAAIL,OAAO,CAApBK,SAAS;QAC5C;QACA,IAAA0hB,oBAAA,GAcIH,SAAS,CAbT1f,SAAS;UAATA,SAAS,GAAA6f,oBAAA,cAAG,EAAE,GAAAA,oBAAA;UAAAC,mBAAA,GAadJ,SAAS,CAbMzf,QAAQ;UAARA,QAAQ,GAAA6f,mBAAA,cAAG,EAAE,GAAAA,mBAAA;UAAAC,qBAAA,GAa5BL,SAAS,CAboBxf,WAAW;UAAXA,WAAW,GAAA6f,qBAAA,cAAG,EAAE,GAAAA,qBAAA;UAAAC,qBAAA,GAa7CN,SAAS,CAbqCvf,UAAU;UAAVA,UAAU,GAAA6f,qBAAA,cAAG,EAAE,GAAAA,qBAAA;UAAAC,qBAAA,GAa7DP,SAAS,CAbqD9e,kBAAkB;UAAlBA,kBAAkB,GAAAqf,qBAAA,cAAE,EAAE,GAAAA,qBAAA;UACpF1f,iBAAiB,GAYjBmf,SAAS,CAZTnf,iBAAiB;UAACG,YAAY,GAY9Bgf,SAAS,CAZShf,YAAY;UAACC,WAAW,GAY1C+e,SAAS,CAZsB/e,WAAW;UAC1CP,gBAAgB,GAWhBsf,SAAS,CAXTtf,gBAAgB;UAACgH,gBAAgB,GAWjCsY,SAAS,CAXQtY,gBAAgB;UACjCQ,SAAS,GAUT8X,SAAS,CAVT9X,SAAS;UAACC,SAAS,GAUnB6X,SAAS,CAVC7X,SAAS;UACnB8L,YAAY,GASZ+L,SAAS,CATT/L,YAAY;UAACrT,YAAY,GASzBof,SAAS,CATIpf,YAAY;UACzB4f,UAAU,GAQVR,SAAS,CARTQ,UAAU;UAAC7f,UAAU,GAQrBqf,SAAS,CARErf,UAAU;UACrB8f,aAAa,GAObT,SAAS,CAPTS,aAAa;UAACjjB,cAAc,GAO5BwiB,SAAS,CAPKxiB,cAAc;UAC5BkjB,QAAQ,GAMRV,SAAS,CANTU,QAAQ;UAACC,SAAS,GAMlBX,SAAS,CANAW,SAAS;UAClBC,OAAO,GAKPZ,SAAS,CALTY,OAAO;UAACC,MAAM,GAKdb,SAAS,CALDa,MAAM;UAACC,WAAW,GAK1Bd,SAAS,CALMc,WAAW;UAC1BC,aAAa,GAIbf,SAAS,CAJTe,aAAa;UAACC,QAAQ,GAItBhB,SAAS,CAJKgB,QAAQ;UAACC,SAAS,GAIhCjB,SAAS,CAJciB,SAAS;UAChCngB,kBAAkB,GAGlBkf,SAAS,CAHTlf,kBAAkB;UAACogB,yBAAyB,GAG5ClB,SAAS,CAHUkB,yBAAyB;UAC5CC,oBAAoB,GAEpBnB,SAAS,CAFTmB,oBAAoB;UAAClkB,eAAe,GAEpC+iB,SAAS,CAFY/iB,eAAe;UAACmkB,sBAAsB,GAE3DpB,SAAS,CAF4BoB,sBAAsB;UAC3DC,UAAU,GACVrB,SAAS,CADTqB,UAAU;QAEd;QACA,IAAG,CAAChsB,CAAC,CAACqI,KAAK,CAACG,UAAU,EAAC;QACvB;QACA,IAAGiD,kBAAkB,YAAYnN,KAAK,IAAI0B,CAAC,CAACwC,KAAK,CAACiJ,kBAAkB,YAAYnN,KAAK,IAAI,CAAC0B,CAAC,CAAC6oB,SAAS,CAACpd,kBAAkB,EAACzL,CAAC,CAACwC,KAAK,CAACiJ,kBAAkB,CAAC,EAAC;UACjJ,IAAAwgB,YAAA,GAA6CjsB,CAAC,CAACgpB,SAAS,CAAChpB,CAAC,CAACwC,KAAK,CAACiJ,kBAAkB,EAACA,kBAAkB,EAAC,IAAI,CAAC;YAAvGoe,cAAc,GAAAoC,YAAA,CAAdpC,cAAc;YAACE,SAAS,GAAAkC,YAAA,CAATlC,SAAS;YAACJ,WAAW,GAAAsC,YAAA,CAAXtC,WAAW;UACzC3pB,CAAC,CAACqd,oBAAoB,CAACwM,cAAc,CAAC;UACtC7pB,CAAC,CAACsM,kBAAkB,CAACyd,SAAS,CAAC;UAC/B/pB,CAAC,CAAC8Q,qBAAqB,CAAC6Y,WAAW,CAAC;QACxC;QACA,IAAI,OAAOkC,yBAA0B,IAAI,SAAS,IAAIA,yBAAyB,IAAMA,yBAAyB,IAAIA,yBAAyB,KAAK7rB,CAAC,CAACwC,KAAK,CAACqpB,yBAA0B,EAAC;UAC/K7rB,CAAC,CAACud,uBAAuB,CAAC,CAAC;QAC/B;QACA;AACZ;AACA;AACA;AACA;QACY,IAAGtS,SAAS,YAAY3M,KAAK,IAAI0B,CAAC,CAACwC,KAAK,CAACyI,SAAS,YAAY3M,KAAK,IAAI,CAAC0B,CAAC,CAAC6oB,SAAS,CAAC5d,SAAS,EAACjL,CAAC,CAACwC,KAAK,CAACyI,SAAS,CAAC,EAAC;UAC7G,IAAIihB,YAAY,GAAGlsB,CAAC,CAACwC,KAAK,CAACyI,SAAS;UACpC,IAAIkhB,YAAY,GAAGlhB,SAAS;UAC5B;UACA,IAAG,CAAC,CAACjL,CAAC,CAACiH,MAAM,EAAC;YACVilB,YAAY,GAAGlsB,CAAC,CAACwC,KAAK,CAACyI,SAAS,CAAC7K,MAAM,CAAC,UAACyM,IAAI,EAAG;cAAC,OAAOA,IAAI,CAACC,EAAE,KAAK4e,aAAa;YAAA,CAAC,CAAC;YACnFS,YAAY,GAAGlhB,SAAS,CAAC7K,MAAM,CAAC,UAACyM,IAAI,EAAG;cAAC,OAAOA,IAAI,CAACC,EAAE,KAAK4e,aAAa;YAAA,CAAC,CAAC;UAC/E;UACA,IAAAU,aAAA,GAA6CpsB,CAAC,CAACgpB,SAAS,CAACkD,YAAY,EAACC,YAAY,EAAC,IAAI,CAAC;YAAnFtC,eAAc,GAAAuC,aAAA,CAAdvC,cAAc;YAACE,UAAS,GAAAqC,aAAA,CAATrC,SAAS;YAACJ,YAAW,GAAAyC,aAAA,CAAXzC,WAAW;UACzC,IAAA0C,UAAA,GAAsBrsB,CAAC,CAACgqB,OAAO,CAACD,UAAS,KAAAjgB,MAAA,CAAA1I,kBAAA,CAAKqH,QAAQ,GAAArH,kBAAA,CAAI4H,KAAK,EAAC,CAAC;YAA5DihB,GAAG,GAAAoC,UAAA,CAAHpC,GAAG;YAACC,SAAS,GAAAmC,UAAA,CAATnC,SAAS;UAClB,IAAAoC,aAAA,GAAsBtsB,CAAC,CAACmqB,UAAU,CAACR,YAAW,KAAA7f,MAAA,CAAA1I,kBAAA,CAAKqH,QAAQ,GAAArH,kBAAA,CAAI4H,KAAK,EAAC,CAAC;YAAjEohB,IAAI,GAAAkC,aAAA,CAAJlC,IAAI;YAACC,QAAQ,GAAAiC,aAAA,CAARjC,QAAQ;UAClB;UAAA,IAAAkC,SAAA,GAAAvuB,0BAAA,CACc6rB,eAAc;YAAA2C,KAAA;UAAA;YAA5B,KAAAD,SAAA,CAAA3tB,CAAA,MAAA4tB,KAAA,GAAAD,SAAA,CAAA1tB,CAAA,IAAAC,IAAA,GAA6B;cAAA,IAArBgO,EAAE,GAAA0f,KAAA,CAAAztB,KAAA;cACNiB,CAAC,CAAC2P,aAAa,CAAC7C,EAAE,EAAC,OAAO,CAAC;YAC/B;YACA;UAAA,SAAAxN,GAAA;YAAAitB,SAAA,CAAAvtB,CAAA,CAAAM,GAAA;UAAA;YAAAitB,SAAA,CAAArtB,CAAA;UAAA;UACAc,CAAC,CAAC+L,QAAQ,IAAAjC,MAAA,CAAA1I,kBAAA,CAAK6oB,GAAG,GAAA7oB,kBAAA,CAAIipB,QAAQ,EAAC,CAAC;UAChC;UACArqB,CAAC,CAACqQ,WAAW,IAAAvG,MAAA,CAAA1I,kBAAA,CAAKgpB,IAAI,GAAAhpB,kBAAA,CAAI8oB,SAAS,EAAC,CAAC;QACzC;QACA;AACZ;AACA;AACA;QACY,IAAG/e,WAAW,YAAY7M,KAAK,IAAI0B,CAAC,CAACwC,KAAK,CAAC2I,WAAW,YAAY7M,KAAK,IAAI,CAAC0B,CAAC,CAAC6oB,SAAS,CAAC1d,WAAW,EAACnL,CAAC,CAACwC,KAAK,CAAC2I,WAAW,CAAC,EAAC;UACrH,IAAIshB,cAAc,GAAGzsB,CAAC,CAACwC,KAAK,CAAC2I,WAAW;UACxC,IAAIuhB,cAAc,GAAGvhB,WAAW;UAChC,IAAG,CAAC,CAACnL,CAAC,CAACiH,MAAM,EAAC;YACVwlB,cAAc,GAAGzsB,CAAC,CAACwC,KAAK,CAAC2I,WAAW,CAAC/K,MAAM,CAAC,UAACyM,IAAI,EAAG;cAAC,OAAOA,IAAI,CAACC,EAAE,KAAK4e,aAAa;YAAA,CAAC,CAAC;YACvFgB,cAAc,GAAGvhB,WAAW,CAAC/K,MAAM,CAAC,UAACyM,IAAI,EAAG;cAAC,OAAOA,IAAI,CAACC,EAAE,KAAK4e,aAAa;YAAA,CAAC,CAAC;UACnF;UACA,IAAAiB,aAAA,GAA6C3sB,CAAC,CAACgpB,SAAS,CAACyD,cAAc,EAACC,cAAc,EAAC,IAAI,CAAC;YAAvF7C,gBAAc,GAAA8C,aAAA,CAAd9C,cAAc;YAACE,WAAS,GAAA4C,aAAA,CAAT5C,SAAS;YAACJ,aAAW,GAAAgD,aAAA,CAAXhD,WAAW;UACzC,IAAAiD,WAAA,GAAsB5sB,CAAC,CAACgqB,OAAO,CAACD,WAAS,KAAAjgB,MAAA,CAAA1I,kBAAA,CAAKgI,SAAS,GAAAhI,kBAAA,CAAI8H,OAAO,GAAA9H,kBAAA,CAAIuH,UAAU,EAAC,CAAC;YAA7EshB,IAAG,GAAA2C,WAAA,CAAH3C,GAAG;YAACC,UAAS,GAAA0C,WAAA,CAAT1C,SAAS;UAClB,IAAA2C,cAAA,GAAsB7sB,CAAC,CAACmqB,UAAU,CAACR,aAAW,KAAA7f,MAAA,CAAA1I,kBAAA,CAAKgI,SAAS,GAAAhI,kBAAA,CAAI8H,OAAO,GAAA9H,kBAAA,CAAIuH,UAAU,EAAC,CAAC;YAAlFyhB,KAAI,GAAAyC,cAAA,CAAJzC,IAAI;YAACC,SAAQ,GAAAwC,cAAA,CAARxC,QAAQ;UAClB;UAAA,IAAAyC,UAAA,GAAA9uB,0BAAA,CACc6rB,gBAAc;YAAAkD,MAAA;UAAA;YAA5B,KAAAD,UAAA,CAAAluB,CAAA,MAAAmuB,MAAA,GAAAD,UAAA,CAAAjuB,CAAA,IAAAC,IAAA,GAA6B;cAAA,IAArBgO,GAAE,GAAAigB,MAAA,CAAAhuB,KAAA;cACNiB,CAAC,CAAC2P,aAAa,CAAC7C,GAAE,EAAC,SAAS,CAAC;YACjC;YACA;UAAA,SAAAxN,GAAA;YAAAwtB,UAAA,CAAA9tB,CAAA,CAAAM,GAAA;UAAA;YAAAwtB,UAAA,CAAA5tB,CAAA;UAAA;UACAc,CAAC,CAACiM,UAAU,IAAAnC,MAAA,CAAA1I,kBAAA,CAAK6oB,IAAG,GAAA7oB,kBAAA,CAAIipB,SAAQ,EAAC,CAAC;UAClC;UACArqB,CAAC,CAAC6b,aAAa,IAAA/R,MAAA,CAAA1I,kBAAA,CAAKgpB,KAAI,GAAAhpB,kBAAA,CAAI8oB,UAAS,EAAC,CAAC;QAC3C;QACA;AACZ;AACA;AACA;QACY,IAAG9e,UAAU,YAAY9M,KAAK,IAAI0B,CAAC,CAACwC,KAAK,CAAC4I,UAAU,YAAY9M,KAAK,IAAI,CAAC0B,CAAC,CAAC6oB,SAAS,CAACzd,UAAU,EAACpL,CAAC,CAACwC,KAAK,CAAC4I,UAAU,CAAC,EAAC;UACjH,IAAI4hB,aAAa,GAAGhtB,CAAC,CAACwC,KAAK,CAAC4I,UAAU;UACtC,IAAI6hB,aAAa,GAAG7hB,UAAU;UAC9B,IAAG,CAAC,CAACpL,CAAC,CAACiH,MAAM,EAAC;YACV+lB,aAAa,GAAGhtB,CAAC,CAACwC,KAAK,CAAC4I,UAAU,CAAChL,MAAM,CAAC,UAACyM,IAAI,EAAG;cAAC,OAAOA,IAAI,CAACC,EAAE,KAAK4e,aAAa;YAAA,CAAC,CAAC;YACrFuB,aAAa,GAAG7hB,UAAU,CAAChL,MAAM,CAAC,UAACyM,IAAI,EAAG;cAAC,OAAOA,IAAI,CAACC,EAAE,KAAK4e,aAAa;YAAA,CAAC,CAAC;UACjF;UACA,IAAAwB,aAAA,GAA6CltB,CAAC,CAACgpB,SAAS,CAACgE,aAAa,EAACC,aAAa,EAAC,IAAI,CAAC;YAArFpD,gBAAc,GAAAqD,aAAA,CAAdrD,cAAc;YAACE,WAAS,GAAAmD,aAAA,CAATnD,SAAS;YAACJ,aAAW,GAAAuD,aAAA,CAAXvD,WAAW;UACzC,IAAAwD,WAAA,GAAsBntB,CAAC,CAACgqB,OAAO,CAACD,WAAS,KAAAjgB,MAAA,CAAA1I,kBAAA,CAAKwH,SAAS,GAAAxH,kBAAA,CAAI+H,MAAM,EAAC,CAAC;YAA9D8gB,KAAG,GAAAkD,WAAA,CAAHlD,GAAG;YAACC,WAAS,GAAAiD,WAAA,CAATjD,SAAS;UAClB,IAAAkD,cAAA,GAAsBptB,CAAC,CAACmqB,UAAU,CAACR,aAAW,KAAA7f,MAAA,CAAA1I,kBAAA,CAAKwH,SAAS,GAAAxH,kBAAA,CAAI+H,MAAM,EAAC,CAAC;YAAnEihB,MAAI,GAAAgD,cAAA,CAAJhD,IAAI;YAACC,UAAQ,GAAA+C,cAAA,CAAR/C,QAAQ;UAClB;UAAA,IAAAgD,UAAA,GAAArvB,0BAAA,CACc6rB,gBAAc;YAAAyD,MAAA;UAAA;YAA5B,KAAAD,UAAA,CAAAzuB,CAAA,MAAA0uB,MAAA,GAAAD,UAAA,CAAAxuB,CAAA,IAAAC,IAAA,GAA6B;cAAA,IAArBgO,IAAE,GAAAwgB,MAAA,CAAAvuB,KAAA;cACNiB,CAAC,CAAC2P,aAAa,CAAC7C,IAAE,EAAC,QAAQ,CAAC;YAChC;YACA;UAAA,SAAAxN,GAAA;YAAA+tB,UAAA,CAAAruB,CAAA,CAAAM,GAAA;UAAA;YAAA+tB,UAAA,CAAAnuB,CAAA;UAAA;UACAc,CAAC,CAACkM,SAAS,IAAApC,MAAA,CAAA1I,kBAAA,CAAK6oB,KAAG,GAAA7oB,kBAAA,CAAIipB,UAAQ,EAAC,CAAC;UACjC;UACArqB,CAAC,CAACwc,YAAY,IAAA1S,MAAA,CAAA1I,kBAAA,CAAKgpB,MAAI,GAAAhpB,kBAAA,CAAI8oB,WAAS,EAAC,CAAC;QAC1C;QACA;AACZ;AACA;AACA;QACY,IAAGhf,QAAQ,YAAY5M,KAAK,IAAI0B,CAAC,CAACwC,KAAK,CAAC0I,QAAQ,YAAY5M,KAAK,IAAI,CAAC0B,CAAC,CAAC6oB,SAAS,CAAC3d,QAAQ,EAAClL,CAAC,CAACwC,KAAK,CAAC0I,QAAQ,CAAC,EAAC;UACzG,IAAIqiB,WAAW,GAAGvtB,CAAC,CAACwC,KAAK,CAAC0I,QAAQ;UAClC,IAAIsiB,WAAW,GAAGtiB,QAAQ;UAC1B,IAAG,CAAC,CAAClL,CAAC,CAACiH,MAAM,EAAC;YACVsmB,WAAW,GAAGvtB,CAAC,CAACwC,KAAK,CAAC0I,QAAQ,CAAC9K,MAAM,CAAC,UAACyM,IAAI,EAAG;cAAC,OAAOA,IAAI,CAACC,EAAE,KAAK4e,aAAa;YAAA,CAAC,CAAC;YACjF8B,WAAW,GAAGtiB,QAAQ,CAAC9K,MAAM,CAAC,UAACyM,IAAI,EAAG;cAAC,OAAOA,IAAI,CAACC,EAAE,KAAK4e,aAAa;YAAA,CAAC,CAAC;UAC7E;UACA,IAAA+B,aAAA,GAA6CztB,CAAC,CAACgpB,SAAS,CAACuE,WAAW,EAACC,WAAW,EAAC,IAAI,CAAC;YAAjF3D,gBAAc,GAAA4D,aAAA,CAAd5D,cAAc;YAACE,WAAS,GAAA0D,aAAA,CAAT1D,SAAS;YAACJ,aAAW,GAAA8D,aAAA,CAAX9D,WAAW;UACzC,IAAA+D,WAAA,GAAsB1tB,CAAC,CAACgqB,OAAO,CAACD,WAAS,KAAAjgB,MAAA,CAAA1I,kBAAA,CAAKsH,OAAO,GAAAtH,kBAAA,CAAI6H,QAAQ,EAAC,CAAC;YAA9DghB,KAAG,GAAAyD,WAAA,CAAHzD,GAAG;YAACC,WAAS,GAAAwD,WAAA,CAATxD,SAAS;UAClB,IAAAyD,cAAA,GAAsB3tB,CAAC,CAACmqB,UAAU,CAACR,aAAW,KAAA7f,MAAA,CAAA1I,kBAAA,CAAKsH,OAAO,GAAAtH,kBAAA,CAAI6H,QAAQ,EAAC,CAAC;YAAnEmhB,MAAI,GAAAuD,cAAA,CAAJvD,IAAI;YAACC,UAAQ,GAAAsD,cAAA,CAARtD,QAAQ;UAClB;UAAA,IAAAuD,UAAA,GAAA5vB,0BAAA,CACc6rB,gBAAc;YAAAgE,MAAA;UAAA;YAA5B,KAAAD,UAAA,CAAAhvB,CAAA,MAAAivB,MAAA,GAAAD,UAAA,CAAA/uB,CAAA,IAAAC,IAAA,GAA6B;cAAA,IAArBgO,IAAE,GAAA+gB,MAAA,CAAA9uB,KAAA;cACNiB,CAAC,CAAC2P,aAAa,CAAC7C,IAAE,EAAC,MAAM,CAAC;YAC9B;YACA;UAAA,SAAAxN,GAAA;YAAAsuB,UAAA,CAAA5uB,CAAA,CAAAM,GAAA;UAAA;YAAAsuB,UAAA,CAAA1uB,CAAA;UAAA;UACAc,CAAC,CAACgM,OAAO,IAAAlC,MAAA,CAAA1I,kBAAA,CAAK6oB,KAAG,GAAA7oB,kBAAA,CAAIipB,UAAQ,EAAC,CAAC;UAC/B;UACArqB,CAAC,CAACoP,UAAU,IAAAtF,MAAA,CAAA1I,kBAAA,CAAKgpB,MAAI,GAAAhpB,kBAAA,CAAI8oB,WAAS,EAAC,CAAC;QACxC;QACA;QACA,IAAGre,kBAAkB,YAAYvN,KAAK,IAAI0B,CAAC,CAACwC,KAAK,CAACqJ,kBAAkB,YAAYvN,KAAK,IAAI,CAAC0B,CAAC,CAAC6oB,SAAS,CAAChd,kBAAkB,EAAC7L,CAAC,CAACwC,KAAK,CAACqJ,kBAAkB,CAAC,EAAC;UACjJ,IAAAiiB,aAAA,GAA6C9tB,CAAC,CAACgpB,SAAS,CAAChpB,CAAC,CAACwC,KAAK,CAACqJ,kBAAkB,EAACA,kBAAkB,EAAC,IAAI,CAAC;YAAvGge,gBAAc,GAAAiE,aAAA,CAAdjE,cAAc;YAACE,WAAS,GAAA+D,aAAA,CAAT/D,SAAS;YAACJ,aAAW,GAAAmE,aAAA,CAAXnE,WAAW;UACzC;UAAA,IAAAoE,UAAA,GAAA/vB,0BAAA,CACc6rB,gBAAc;YAAAmE,MAAA;UAAA;YAA5B,KAAAD,UAAA,CAAAnvB,CAAA,MAAAovB,MAAA,GAAAD,UAAA,CAAAlvB,CAAA,IAAAC,IAAA,GAA6B;cAAA,IAArBgO,IAAE,GAAAkhB,MAAA,CAAAjvB,KAAA;cACNiB,CAAC,CAAC2P,aAAa,CAAC7C,IAAE,EAAC,MAAM,CAAC;YAC9B;UAAC,SAAAxN,GAAA;YAAAyuB,UAAA,CAAA/uB,CAAA,CAAAM,GAAA;UAAA;YAAAyuB,UAAA,CAAA7uB,CAAA;UAAA;UACDc,CAAC,CAACgM,OAAO,CAAC+d,WAAS,CAAC;UACpB/pB,CAAC,CAACoP,UAAU,CAACua,aAAW,CAAC;QAC7B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,IAAG/d,WAAW,IAAI,CAAC5L,CAAC,CAAC6oB,SAAS,CAACjd,WAAW,EAAC5L,CAAC,CAACwC,KAAK,CAACoJ,WAAW,CAAC,EAAC;UAC5D5L,CAAC,CAACoM,cAAc,CAACR,WAAW,CAAC;QACjC;QACA;QACA,IAAI,OAAO+f,QAAS,IAAI,SAAS,IAAIA,QAAQ,IAAMA,QAAQ,IAAIA,QAAQ,KAAK3rB,CAAC,CAACwC,KAAK,CAACmpB,QAAS,EAAC;UAC1F3rB,CAAC,CAACmhB,MAAM,CAACuK,aAAa,CAAC;QAC3B;QACA;QACA,IAAI,OAAOE,SAAU,IAAI,SAAS,IAAIA,SAAS,IAAMA,SAAS,IAAIA,SAAS,KAAK5rB,CAAC,CAACwC,KAAK,CAACopB,SAAU,EAAC;UAC/F5rB,CAAC,CAACiiB,OAAO,CAAC,CAAC;QACf;QACA;QACA,IAAI,OAAOuJ,MAAO,IAAI,SAAS,IAAIA,MAAM,IAAMA,MAAM,IAAIA,MAAM,KAAKxrB,CAAC,CAACwC,KAAK,CAACgpB,MAAO,EAAC;UAChFxrB,CAAC,CAACiR,IAAI,CAACsa,OAAO,CAAC;QACnB;QACA;QACA,IAAI,OAAOE,WAAY,IAAI,SAAS,IAAIA,WAAW,IAAMA,WAAW,IAAIA,WAAW,KAAKzrB,CAAC,CAACwC,KAAK,CAACipB,WAAY,EAAC;UACzGzrB,CAAC,CAACqiB,SAAS,CAAC,CAAC;QACjB;QACA;QACA,IAAI,OAAOxP,SAAU,IAAI,SAAS,IAAIA,SAAS,IAAMA,SAAS,IAAIA,SAAS,KAAK7S,CAAC,CAACwC,KAAK,CAACqQ,SAAU,EAAC;UAC/F7S,CAAC,CAAC6S,SAAS,CAACC,SAAS,CAAC;QAC1B;QACA;QACA,IAAI,OAAOqY,UAAW,IAAI,SAAS,IAAIA,UAAU,IAAMA,UAAU,IAAIA,UAAU,KAAKnrB,CAAC,CAACwC,KAAK,CAAC2oB,UAAW,EAAC;UACpGnrB,CAAC,CAACqM,OAAO,CAACf,UAAU,CAAC;QACzB;QACA;QACA,IAAI,OAAOsT,YAAa,IAAI,SAAS,IAAIA,YAAY,IAAMA,YAAY,IAAIA,YAAY,KAAK5e,CAAC,CAACwC,KAAK,CAACoc,YAAa,EAAC;UAC9G5e,CAAC,CAAC4e,YAAY,CAACrT,YAAY,CAAC;QAChC;QACA;QACA,IAAI,OAAO8G,gBAAiB,IAAI,SAAS,IAAIA,gBAAgB,IAAMA,gBAAgB,IAAIA,gBAAgB,KAAKrS,CAAC,CAACwC,KAAK,CAAC6P,gBAAiB,EAAC;UAClIrS,CAAC,CAACqS,gBAAgB,CAAChH,gBAAgB,CAAC;QACxC;QACA;QACA,IAAI,OAAO+f,aAAc,IAAI,SAAS,IAAIA,aAAa,IAAMA,aAAa,IAAIA,aAAa,KAAKprB,CAAC,CAACwC,KAAK,CAAC4oB,aAAc,EAAC;UACnHprB,CAAC,CAACwgB,cAAc,CAACrY,cAAc,CAAC;QACpC;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,IAAI,OAAO2jB,oBAAqB,IAAI,SAAS,IAAIA,oBAAoB,IACjEA,oBAAoB,IAAIA,oBAAoB,KAAK9rB,CAAC,CAACwC,KAAK,CAACspB,oBAAoB,IAC9ElkB,eAAe,IAAI,CAAC,CAACA,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAACA,eAAe,CAAC,CAAC,CAAC,EAAC;UAC/D5H,CAAC,CAACuM,kBAAkB,CAAC3E,eAAe,CAAC;QACzC;QACA;QACA,IAAI,OAAOmkB,sBAAuB,IAAI,SAAS,IAAIA,sBAAsB,IAAMA,sBAAsB,IAAIA,sBAAsB,KAAK/rB,CAAC,CAACwC,KAAK,CAACupB,sBAAuB,EAAC;UAChK/rB,CAAC,CAACmlB,oBAAoB,CAAC,CAAC;QAC5B;QACA;QACA,IAAI,OAAO6G,UAAW,IAAI,SAAS,IAAIA,UAAU,IAAMA,UAAU,IAAIA,UAAU,KAAKhsB,CAAC,CAACwC,KAAK,CAACwpB,UAAW,EAAC;UACpGhsB,CAAC,CAAC2gB,QAAQ,CAAC,CAAC;QAChB;QACA;QACA,IAAI,OAAO0K,QAAS,IAAI,SAAS,IAAIA,QAAQ,IAAMA,QAAQ,IAAIA,QAAQ,KAAKrrB,CAAC,CAACwC,KAAK,CAAC6oB,QAAS,EAAC;UAC1FC,SAAS,CAAC1e,GAAG,CAAC,UAACC,IAAI,EAAC6C,KAAK,EAAG;YACxB1P,CAAC,CAAC2P,aAAa,CAAC9C,IAAI,CAACC,EAAE,EAACD,IAAI,CAACpC,IAAI,CAAC;UACtC,CAAC,CAAC;QACN;MACJ,CAAC;MACD;MACA,IAAG,CAACzK,CAAC,CAACqI,KAAK,CAACC,GAAG,IAAI,CAACtI,CAAC,CAACqI,KAAK,CAACC,GAAG,CAAC4J,QAAQ,EAAC;QACrC,IAAGlS,CAAC,CAACyG,SAAS,EAAC;UACXwnB,YAAY,CAACjuB,CAAC,CAACyG,SAAS,CAAC;QAC7B;QACAzG,CAAC,CAACyG,SAAS,GAAGynB,UAAU,CAAC,YAAI;UACzBnjB,QAAQ,CAAC,CAAC;QACd,CAAC,EAAC,GAAG,CAAC;MACV,CAAC,MAAI;QACDA,QAAQ,CAAC,CAAC;MACd;IACJ;EAAC;IAAA/J,GAAA;IAAAjC,KAAA,EACD,SAAAovB,qBAAA,EAAuB;MACnB;MACA,IAAInuB,CAAC,GAAG,IAAI;MACZ,IAAGA,CAAC,CAAC4G,WAAW,EAAC;QACb8f,aAAa,CAAC1mB,CAAC,CAAC4G,WAAW,CAAC;MAChC;MACA;MACA,KAAI,IAAIwQ,CAAC,IAAIpX,CAAC,CAAC0G,SAAS,EAAC;QACrB,IAAG1G,CAAC,CAAC0G,SAAS,CAAC0Q,CAAC,CAAC,EAAC;UACdsP,aAAa,CAAC1mB,CAAC,CAAC0G,SAAS,CAAC0Q,CAAC,CAAC,CAAC;QACjC;MACJ;MACA1N,MAAM,CAAC4J,MAAM,CAACtT,CAAC,CAACqI,KAAK,CAACE,KAAK,CAAC,GAAE,IAAI;IACtC;EAAC;EAAA,OAAAjD,SAAA;AAAA,EAtpHmB8oB,iBAAK,CAACC,SAAS;AAAA,IAAAC,QAAA,GAAAC,OAAA,cAwpHxBjpB,SAAS;AAAAkpB,MAAA,CAAAD,OAAA,GAAAA,OAAA"}