{"version":3,"sources":["ui/styles.js","common/constants.js","ui/ContactUs.js","ui/WhatsNew.js","ui/Sidebar-mui.js","map/RhinoQueryContext.js","utils/colorScale.js","utils/rgbtohex.js","map/RoadSegmentLegend.js","webpack:///./src/assets/icons/flight_yellow_24dp.svg?fdc7","webpack:///./src/assets/icons/flight_white_24dp.svg?a7da","webpack:///./src/assets/icons/anchor_white_24dp.svg?7366","webpack:///./src/assets/icons/construction_white_on_red_24dp.svg?477d","webpack:///./src/assets/icons/construction_white_on_purple_24dp.svg?5b89","webpack:///./src/assets/icons/construction_white_on_green_24dp.svg?6293","webpack:///./src/assets/icons/construction_white_on_blue_24dp.svg?fe14","webpack:///./src/assets/icons/green_box_24dp.svg?e162","webpack:///./src/assets/icons/violet_box_24dp.svg?f178","webpack:///./src/assets/icons/pink_box_24dp.svg?31e9","assets/icons/circle_black_24dp.svg","webpack:///./src/assets/icons/local_parking_white_on_green_24dp.svg?3a0b","map/mapTabs.js","map/layers/SandMinesLayer.js","map/layers/DisposalWellsLayer.js","map/layers/CountyBoundaryLayer.js","map/layers/DistrictBoundaryLayer.js","map/layers/CommercialBorderCrossingLayer.js","map/layers/NonCommercialBorderCrossingLayer.js","map/layers/RailBorderCrossingLayer.js","map/layers/PortsLayer.js","map/layers/UTPLayer.js","map/layers/CargoAirportsLayer.js","map/layers/AirportsLayer.js","map/layers/TruckParkingLayer.js","map/TX100LeafletMap.js","map/RhinoLeafletMap.js","map/contols/LayerControls.js","data-loaders/DataLoaders.js","map/DeckglMap.js","map/OtherMapLayers.js","table/TableColumnSelector.js","table/ExportFileNameDialog.js","table/RoadSegmentTable-mui.js","table/MonitoredRoadsTable.js","common/dictionary.js","table/CustomSummary.js","table/SummaryTable.js","map/rhinoYearSelection.js","map/roadSegmentHue.js","tabs/SettingsTab.js","table/DataTabs.js","tabs/TrkTop100ODSelLnk.js","table/DataTabsTx100.js","utils/normalizeRoadSegments.js","map/contols/LayerControlsOD.js","map/TrkTop100ODSelLnkMap.js","App-new-mui.js","serviceWorker.js","index.js","assets/icons/green_box_24dp.svg","assets/icons/violet_box_24dp.svg","assets/icons/pink_box_24dp.svg","assets/icons/anchor_white_24dp.svg","assets/icons/construction_white_on_red_24dp.svg","assets/icons/construction_white_on_purple_24dp.svg","assets/icons/construction_white_on_green_24dp.svg","assets/icons/construction_white_on_blue_24dp.svg","assets/icons/flight_yellow_24dp.svg","assets/icons/flight_white_24dp.svg","assets/icons/local_parking_white_on_green_24dp.svg"],"names":["sidebarStyles","makeStyles","theme","root","display","drawer","breakpoints","up","width","flexShrink","appBar","zIndex","menuButton","marginRight","spacing","toolbar","mixins","drawerPaper","background","drawerContainer","overflow","content","flexGrow","padding","overflowX","overflowY","divider","marginBottom","height","sectionHeader","color","paddingLeft","text","fontSize","iconText","API_ROOT","MAPBOX_ACCESSTOKEN","MAPBOX_URL","MAPBOX_ATTRIBUTION","baseLayers","name","url","id","COLOR_RHINO","bucket1","bucket2","bucket3","bucket4","bucket5","bucket6","bucket7","bucket8","bucket9","bucket10","normal","notSelected","selected","selectedSection","colorContextlayers","sandMines","disposalWells","SUMMARY_VARIABLES_RHINO","variable","summaryName","definition","explanation","formatOptions","maximumFractionDigits","category","defaultVisibility","normalizedBy","style","TXDOTdist_VARIABLES","mapped","SUMMARY_VARIABLES_TX100","COUNTY_LIST","MPO_LIST","ROAD_LIST","value","label","FUNCTION_CLASS2014","RURAL_URBAN_CODE","tx100_monitored_counties","cnty_nm","cnty_nbr","utpCategoryLookups","checkedVariable","markerIcon","nameDesc","geographic_options_tx100","icon","active","geoRoute","segmentsTable","segmentSelection","statsLayer","statusGuide","geographic_options_TXDOTdist","counties","geographic_options_MPO","geoRoute2021","geographic_options_Networks","description","route","geographic_options_REGIONS","geographic_options_corridors","geographic_options_COUNTY","SUMMARY_VARIABLES_ROUTE_100","numeric","disablePadding","checked","SUMMARY_VARIABLES_ROUTE","SUMMARY_VARIABLES_GROUPING","queryVariable","tooltip","maxWidth","tx100_plot_vars","year","trank","arank","databaseVariablesHPMS","condition","ContactUsDialog","props","openContactUs","setOpenContactUs","handleCloseContactUs","Dialog","open","onClose","fullWidth","scroll","DialogTitle","DialogContent","dividers","Grid","container","direction","item","xs","Typography","variant","href","DialogActions","Button","onClick","useStyles","backgroundColor","palette","paper","nested","WhatsNewDialog","classes","openWhatsNew","setOpenWhatsNew","List","component","aria-labelledby","className","ListItem","ListItemIcon","ListItemText","primary","map","index","key","Sidebar","React","useState","setOpen","handleClose","GeographicSelectionDialog","propsGeo","geographicOptions","Link","underline","e","preventDefault","setStatsLayer","setGeoRoute","setSegmentsTable","setSegmentSelection","setStatusGuide","button","Icon","geographicGroups","options","grouped_option","opt","setGeographicOptions","customStyles","control","base","state","borderRadius","isFocused","menu","marginTop","menuList","option","styles","isSelected","undefined","Divider","light","target","rel","title","WhatsNew","isClearable","classNamePrefix","onChange","groupName","split","slice","statsLayerDesc","filterOption","createFilter","ignoreAccents","ContactUs","Drawer","stopPropagation","initialState","popUpEnabled","highlightQuery","feature","userSelection","ria_rte_id","frm_dfo","Number","NaN","to_dfo","userSelectionTX100","top100id","from_road","String","to_road","road","features","utpMapLayersVisibility","underwayorsoon","within4years","fivetotenyears","tenplusyears","utpMapLayersCount","roadSegmentCategoryIndex","roadSegmentCategory","selectedBaselayer","yearSelection","contextLayersVisibility","countyBoundaries","districtBoundaries","odessaDistSandMines","commercialBorderCrossings","nonCommercialBorderCrossings","railBorderCrossings","portsLayer","cargoAirports","airports","truckParkingLayer","contextLayersNumbFeatures","tableColumns","hsysFilters","ruralUrbanFilters","functionalClassFilters","countyFilters","districtFilters","mpoFilters","nhsFilters","estimatedFilters","frghtNtwkTxFilters","frghtNtwkNationFilters","TrkTop100ODSelLnkMap","odVisibility","showLayer","RhinoQueryContext","createContext","queryReducer","action","type","query","selection","payload","x","properties","Error","RhinoQueryProvider","useReducer","dispatch","Provider","children","colorScale","minValue","maxValue","r","g","b","linearScale","scaleLinear","domain","range","colorF","interpolateTurbo","toString","roadSegmentSelector","wrapIcon","alignItems","roadwayLegendLine","marginLeft","roadwayLegendLine2","roadwayLegendLine2Text","roadwayLegendDiv","borderBottomStyle","borderWidth","borderColor","RoadSegmentLegend","useContext","setAnchorEl","LegendNone","LegendOther","x1","y1","x2","y2","spreadMethod","offset","stopColor","fill","y","textColor","fontFamily","minValueText","maxValueOffset","align","maxValueText","Legend","numFeatures","Math","round","length","aria-label","paddingTop","aria-haspopup","aria-controls","event","currentTarget","secondary","paddingBottom","mode","_path","_path2","_excluded","_extends","Object","assign","bind","i","arguments","source","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","_ref","svgRef","createElement","viewBox","ref","d","ForwardRef","forwardRef","_g","_g2","enableBackground","transform","TabPanel","other","role","hidden","Box","margin","a11yProps","roadwayLegendLine1Text","tabHeader","icon1","icon2","position","icon3","icon4","iconCommercialBorderCrossing","iconNonCommercialBorderCrossing","iconRailBorderCrossing","iconPorts","iconCargoAirports","iconAirports","titleRow","titleLine","textAlign","MapTabs","tabValue","settabValue","expanded","setExpanded","handleClickTab","Event","Accordion","defaultExpanded","AccordionSummary","expandIcon","accordSummary","Tabs","newValue","scrollButtons","TabIndicatorProps","Tab","AccordionDetails","accordDetails","hoverInfo","find","numrecs","newMarkerIcon","UtpIconSVG1","UtpIconSVG2","UtpIconSVG3","UtpIconSVG4","SvgIcon","htmlColor","toLocaleString","addLegendUtp","SandMinesIconSVG","DisposalWellsIconSVG","CommercialBorderCrossingIconSVG","NonCommercialBorderCrossingIconSVG","RailBorderCrossingIconSVG","PortsIconSVG","CargoAirportIconSVG","OtherAirportIconSVG","TruckParkingIconSVG","SandMinesLayer","sandMinesData","setSandMinesData","useEffect","axios","get","response","f","data","fc","obj","numFeaturesContext","console","log","fetchMapData","handleMouseOver","layer","setStyle","fillColor","handleMouseOut","LayerGroup","GeoJSON","radius","weight","opacity","fillOpacity","onEachFeature","on","mouseover","mouseout","pointToLayer","latlng","L","circleMarker","Tooltip","DisposalWellsLayer","disposalWellsData","setdisposalWellsData","heading","typography","pxToRem","fontWeight","fontWeightBold","legendContainer","legendIcon","CountyBoundaryLayer","countyList","layerRef","mapType","setCountyBoundaries","dataUrl","join","responseCnty","fetchCountyBoundaries","current","leafletElement","clearLayers","addData","tooltipText","cnty_fips","dist_nm","bindTooltip","pickable","pickingRadius","stroked","filled","extruded","pointType","lineWidthScale","lineWidthMinPixels","getPointRadius","getLineWidth","getElevation","autoHighlight","highlightColor","match","parseInt","getLineColor","getFillColor","DistrictBoundaryLayer","setDistrictBoundaries","fetchDistrictBoundaries","DIST_NM","DIST_NBR","DIST_ABRVN","CommercialBorderCrossingLayer","customMarkerIcon","iconUrl","customMarkerIconSvg","iconRetinaUrl","iconSize","featureData","setFeatureData","fetchFeatureData","commercialAccess","VEH_COML","noncommercialAccess","VEH_CAR","railAccess","RR_BRDGE","pedestrianAccess","PED","CROSS_NM","CRS_TYPE","OWNER","OPRTR","JURIS_TYPE","marker","NonCommercialBorderCrossingLayer","RailBorderCrossingLayer","path","PortsLayer","PORT_NM","PORT_TYPE","UTPLayer","customMarkerIcon1","setutpMapLayersCount","customMarkerIcon2","customMarkerIcon3","customMarkerIcon4","utpData","setUTPData","all","filterPhases","val","PT_PHASE","includes","category0","filter","category1","category2","category3","featureCount","fetchUTP","utpLayersChecked","setutpLayersChecked","setSelected","selectedMarker","useRef","getFirstCoordinates","coordinates","idx","Marker","geometry","HIGHWAY_NUMBER","LIMITS_FROM","LIMITS_TO","CONTROL_SECT_JOB","TYPE_OF_WORK","LAYMAN_DESCRIPTION1","FREIGHT","Popup","onOpen","PRJ_TIER","PRIORITY_CODE","ACTUAL_LET_DATE","NBR_LET_MONTH","NBR_LET_YEAR","createMarkersLayer2","CargoAirportsLayer","Fac_Name","City","Commercial_Ops","Commuter_Ops","Other_Services","AirportsLayer","TruckParkingLayer","PrintControl","withLeaflet","PrintControlDefault","TX100LeafletMap","latLngBounds","latLng","mapBounds","homeMapBounds","rhino","setRhino","Date","now","setGeoJsonKey","info","setInfo","rhinoColorContainer","rhinoWeightContainer","setCountyList","roadGeomFeatures","layerID","color_base","weight_base","roadsLayerRef","cntyList","array","p","arr","findUnique","fetchRhinoNetwork","forEach","mapBounds_bbox","bbox","mapRef","flyToBounds","minTrkCatValue","setminTrkCatValue","maxTrkCatValue","setmaxTrkCatValue","rgbToHex","rdSeqCat","compVal","max","min","minCalc","toFixed","colorScaleInv","weightScaleInv","weightScale","stylesHoverBox","h6Header","leftText","leftBullet","rightBullet","leftHeader","rightHeader","rprops","dashArray","tdly","tdmile","tcost","dly","dmile","cost","popUp","defaultUserSelection","resetUserSelection","highlightUserSelectionTX100","BaseLayer","LayersControl","Overlay","Zoom","mapZoom","setMapZoom","setselectedBaselayer","countyBoundariesRef","districtBoundariesRef","commercialBorderCrossingsRef","nonCommercialBorderCrossingsRef","railBorderCrossingsRef","portsLayerRef","utpLayerRef","CargoAirportsLayerRef","airportsLayerRef","truckParkingLayerRef","printControlRef","exportControlRef","a3Size","setmapDownloadName","date","toLocaleDateString","toLocaleTimeString","popupRef","window","popupTitle","setPopupTitle","popupTitle2","setPopupTitle2","Map","bounds","zoom","minZoom","maxZoom","attributionContol","zoomSnap","zoomDelta","TileLayer","attribution","access_token","createBaseLayer","a","c","featureProps","_source","remove","ScaleControl","sizeModes","hideControlContainer","spinnerBgColor","customWindowTitle","hideClasses","filename","exportOnly","RhinoLeafletMap","setHomeMapBounds","setRoadGeomFeatures","len_sec","estimated","adt_cur","tottrk","trkttivmt","pct_sadt","trkdelay","trktti","trkpti80","trkpti95","pct_cadt","from_ria_rte_id","from_frm_dfo","Nan","from_to_dfo","to_frm_dfo","to_to_dfo","highlightUserSelection","isNaN","fromDfo","toDfo","mapClickLatLng","setMapClickLatLng","fromPointLocation","setFromPointLocation","handleClick","setYear","fromButton","toButton","clearButton","fromToCleasrButtonDisabled","setFromToClearButtonDisabled","click","lat","lng","disabled","newSelection","createMuiTheme","formGroup","formLabel","input","colselectColumn1","colselectColumn2","customWidth","filterIcon","selectedFeaturesLabel","LayerControls","baseMap","setBaseMap","showRoads","setShowRoads","anchorEl","localName","document","getElementById","menuBoundary","left","offsetLeft","top","offsetTop","offsetHeight","right","bottom","clientX","clientY","MuiList","onMouseLeave","ThemeProvider","IconButton","onMouseEnter","Menu","keepMounted","Boolean","FormGroup","FormControl","FormLabel","RadioGroup","FormControlLabel","Radio","size","Checkbox","inputProps","fetchCountyBoundaryData","status","error","fetchDistrictBoundariesData","fetchSandMinesData","fetchDisposalWellsData","fetchCommercialBorderCrossingData","fetchNonCommercialBorderCrossingData","fetchRailBorderCrossingData","fetchTruckParkingData","fetchPortsData","fetchCargoAirportsData","fetchAirportsData","fetchUtpData","fetchRoadData","toLowerCase","fetchMonitoredRoads","fetchODByTrank","deckglMap","dialog","dialog2","DeckglMap","isLoading","setIsLoading","rhinoPolygon","setRhinoPolygon","rhinoLineColorsWeight","setRhinoLineColorsWeight","longitude","latitude","commercialBorderCrossingsData","setCommercialBorderCrossingData","nonCommercialBorderCrossingsData","setNonCommercialBorderCrossingData","railBorderCrossingsData","setRailBorderCrossingData","truckParkingData","setTruckParkingData","portsData","setPortsData","cargoAirportsData","setCargoAirportsData","airportsData","setAirportsData","fromPoints","setFromPoints","fetchTX100Network","fc_colors_weight","colorTemp","push","rte_id","ogc_fid","elevScale","getBoundsForRoads","useMemo","buffer","units","lines","polygons","roadLayerVisibility","setRoadLayerVisibility","then","res","catch","err","utpPointsData","setUtpPointsData","selectedUtpData","setSelectedUTPData","cornersLongLat","viewport","WebMercatorViewport","fitBounds","dataTemp","fcTemp","geomTemp","crs","selectedPoint","setSelectedPoint","activePopup","setActivePopup","handleAddSegment","object","defaultUserSelectionTX100","handleFrom","coordinate","handleTo","handleClearSelection","tx100Info","rhinoInfo","zoomLevel","zoomScale","setZoomLevel","maxCalc","elevScaleF","linearScaleElev","elevScaleInvF","linearScaleElevInv","geomType","tempLineColorsWeight","tempValues","rf","elevScale_base","visibleFeatures","activePopupUtp","setActivePopupUtp","currentContentHeight","querySelector","onContextMenu","initialViewState","pitch","bearing","transitionDuration","controller","ContextProvider","MapContext","getTooltip","toolTipStyle","html","borderCrossingCategory","airportCategory","deckGlTooltip","onViewStateChange","viewState","zoomScaleTemp","reuseMaps","mapStyle","mapboxApiAccessToken","preventStyleDiffing","closeButton","renderPopup","renderPopupUtp","CircularProgress","visible","onHover","colorWeightTemp","opacityTemp","updateTriggers","elevationTemp","d3","linearScaleInv","iconAtlas","iconMapping","mask","anchorY","getIcon","sizeScale","getPosition","getSize","getColor","radiusScale","radiusMinPixels","radiusMaxPixels","getRadius","getIconSize","getIconColor","sqrt","exits","getIconAngle","getIconPixelOffset","iconSizeUnits","iconSizeScale","commercialBorderCrossingIconSvg","nonCommercialBorderCrossingIconSvg","railBorderCrossingIconSvg","truckParkingIconSvg","portsIconSvg","cargoAirportsIconSvg","geomPoint","airportsIconSvg","OBJECTID","card","boxShadow","table","minWidth","visuallyHidden","border","clip","bullet","cardcontent","cardActions","OtherMapLayers","contextLayersChecked","setContextLayersChecked","handleCheckChange","handleContextLayersCheckChange","Paper","justify","Card","CardHeader","subheader","CardContent","column","Switch","orientation","flexItem","CardActions","HtmlTooltip","withStyles","colselectLabel","paddingRight","buttonClass","TableColumnSelector","columns","columnsState","setColumnsState","handleChange","aadt","trkaadt","buildColsState","cols","col","DialogColumn","formGroupKey","categoryLabel","selectAllButton","unselectAllButton","placement","ExportFileNameDialog","openExportDialog","setOpenExportDialog","csvFileNameTest","setCsvFileNameTest","exportCols","exportData","exportButtonColor","matchMedia","matches","DialogContentText","TextField","autoFocus","defaultValue","ExportPdf","ExportCsv","HC_exporting","Highcharts","RoadSegmentTable","roads","setRoads","roadsID","setRoadsID","roadsData","setRoadsData","rows","setRows","createPlotlyComponent","Plotly","roadLayerType","setRoadLayerType","selectedRows","setSelectedRows","summary","setSummary","isRoadSelected","some","rowIndex","roadLabel","updateSelectedRows","fetchSummary","keyField","years","yearroad","j","promises","responses","fields","v","temp","concat","summaryTemp","promise","filterHPMSVariables","SUMMARY_VARIABLES_layer","results","ii","jjj","iiii","newRoads","add","roadsIDtemp","roadsDataTemp","queryRow","roads_id","trkvolper","tableData","my_filter","totalNames","slt","statsTotals","sumNames","weightValues","weightValuesTotals","statsTotalsTemp","weightedSumByNames","headCells","setHeadCells","colVars","buildCols","total","reduce","sumByName","weightString","weightedSumByName","svar","colsTemp","tx_100_plot_years","setTx100PlotData","row","yData","chart","legend","verticalAlign","layout","xAxis","categories","yAxis","reversed","credits","enabled","TX100chartOptions","RhinochartOptions","setExportCols","setExportData","columnsTemp","headCell","SUMMARY_VARIABLES_ROUTE_Temp","field","cellStyle","borderTopWidth","borderBottomWidth","borderLeftWidth","borderRightWidth","borderStyle","headerStyle","tooltipStyle","render","rowData","buildColsNew","exportButton","exportAllData","exportMenu","exportFunc","toolbarButtonAlignment","icons","Export","actions","evt","roadsTemp","selectedRoadID","handleRemoveSelected","isFreeAction","onSelectionChange","n","detailPanel","rowLine","sline","containerProps","highcharts","series","subtitle","itemMarginTop","exporting","sourceWidth","sourceHeight","scale","textOverflow","materialTableDetailPanel","MonitoredRoadsTable","monitoredRoads","monitoredRoadsData","tableRef","fetchRoadMetrics","getRoadSummary","progress","setId","result","fetchData","setHeadCellsTest","chartOptions","itemMarginBottom","symbolWidth","itemStyle","sx","boxBackground","LinearProgress","localization","header","lineHeight","tempSelectedRows","onRowClick","Timeline","Delete","sort","formatNumber","num","digits","num_parts","replace","findLabel","dict","labelText","labelItem","DICTIONARY_COLUMNS","customBodyRender","note","CustomSummary","TX100cols","statewidecols","customaggregators","filteredFuncs","updateRoads","neededcols","labeldict","co","acc","di","f_system","mpa","ru","roadsdata","ir","aggregators","hiddenFromDragDrop","hiddenFromAggregators","s","SummaryTable","grouping","setGrouping","createRef","roadSegmentTable","iii","aggrigateRow","rawRow","sum","normSum","prev","cur","rowsGroup","rv","group","segments","end_point","tempData","filterGrouping","rawRows","buildRow","buildRows","srows","pageSize","pageSizeOptions","formControl","InputLabel","Select","labelId","MenuItem","disable","newSelecteds","segmentIds","ds","YearSelection","selectedIndex","setSelectedIndex","handleMenuItemClick","RoadSegmentHue","setroadSegmentCategory","optionsAbbrev","featureType","formLabel2","setMapType","setDeckGlMapTypeOptionsEnabled","footer","appBarText","DataTabs","setValue","AppBar","indicatorColor","TrkTop100ODSelLnk","top100Features","setTop100Features","todData","setTodData","getTodData","dow","todDataTemp","itm","texas_100_id","obs_start_hour","dow_dist_raw","Promise","weekDayResponse","weekendDayResponse","fetchTodData","hourDesc","hour","DataTabsTx100","normalizeRoadSegments","databaseVariables","roadSegs","roadSelection","odCategory","setOdCategory","show3dMap","setShow3dMap","showODlayer","setShowODlayer","MenuList","origins","destinations","colorDomain","maxValues","setMaxValues","sumValue","bill","cloneResData","origins_dist","destinations_dist","maxValueOrigins","getTopGeojsonN","maxValueDestinations","setTrkTopOdData","trkTopOdData","colorScaleFunction","scaleThreshold","colorScaleFunctionValue","prop","mapSize","setMapSize","controlledPosition","setControlledPosition","LightTooltip","styled","popper","tooltipClasses","common","white","shadows","rgb","handle","defaultPosition","onDrag","mb","mt","mr","samtaz","fp64","gpuAggregation","ml","pr","justifyContent","logo1","logo2","linearProgress","App","useMediaQuery","main","dark","contrastText","makeTheme","responsiveFontSizes","mobileOpen","setMobileOpen","handleDrawerToggle","classes2","statsLayerParam","body","setMonitoredRoads","setMonitoredRoadsData","loadingProgress","setLoadingProgress","cntyCounter","geoRouteTemp","fetchCountyPromise","countyPromise","countyIds","fetchDistrictPromise","promiseResult","allSettled","fTemp","monitoredRoadsTemp","monitoredRoadsDataTemp","fMonitored","fcTempData","frm_dfo_min","to_dfo_max","normalizedData","showDetailPanel","setMap","CssBaseline","Toolbar","edge","src","alt","noWrap","Hidden","smUp","implementation","anchor","ModalProps","xsDown","spinner","overlay","location","hostname","ReactDOM","navigator","serviceWorker","ready","registration","unregister","module","exports"],"mappings":"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IACJF,KAAM,gBAER,CACEE,GAAI,IACJF,KAAM,eAER,CACEE,GAAI,IACJF,KAAM,qBAER,CACEE,GAAI,IACJF,KAAM,kBAER,CACEE,GAAI,GACJF,KAAM,kBAER,CACEE,GAAI,IACJF,KAAM,uBAER,CACEE,GAAI,IACJF,KAAM,iBAER,CACEE,GAAI,IACJF,KAAM,kBAER,CACEE,GAAI,IACJF,KAAM,gBAER,CACEE,GAAI,IACJF,KAAM,YAER,CACEE,GAAI,IACJF,KAAM,sBAgCGqC,EAAY,CACvB,CACEC,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,aACPC,MAAO,WAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,aACPC,MAAO,WAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,aACPC,MAAO,WAET,CACED,MAAO,aACPC,MAAO,WAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,aACPC,MAAO,WAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CACED,MAAO,YACPC,MAAO,UAET,CAC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,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAGJ,CACE1D,KAAM,gBACN8D,YAAa,uBAEbC,MAAO,kBACPvE,KAAM,uBACN0D,KAAM,uBACNC,QAAQ,EACRC,SAAU,sCACVC,cAAe,QACfC,iBAAkB,MAClBC,WAAY,YACZC,YAAa,CAAC,UAAW,wBACzBE,SAAU,CACR,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAGJ,CACE1D,KAAM,eACN8D,YAAa,iBAEbC,MAAO,aACPvE,KAAM,iBACN0D,KAAM,uBACNC,QAAQ,EACRC,SAAU,sCACVC,cAAe,QACfC,iBAAkB,MAClBC,WAAY,YACZC,YAAa,CAAC,UAAW,kBACzBE,SAAU,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAE9D,CACE1D,KAAM,WACN8D,YAAa,aAEbC,MAAO,SACPvE,KAAM,aACN0D,KAAM,uBACNC,QAAQ,EACRC,SAAU,sCACVC,cAAe,QACfC,iBAAkB,MAClBC,WAAY,YACZC,YAAa,CAAC,UAAW,cACzBE,SAAU,CACR,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAGJ,CACE1D,KAAM,yBACN8D,YAAa,2BAEbC,MAAO,qBACPvE,KAAM,2BACN0D,KAAM,uBACNC,QAAQ,EACRC,SAAU,sCACVC,cAAe,QACfC,iBAAkB,MAClBC,WAAY,YACZC,YAAa,CAAC,UAAW,4BACzBE,SAAU,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,OAIlCO,EAA+B,CAC1C,CACEjE,K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SAAU,YACV2D,UAAW,OACXnD,aAAc,IAEhB,CACER,SAAU,MACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,OACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,OACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,UACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,WACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,WACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,SACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,UACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,UACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,aACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,aACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,aACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,KACV2D,UAAW,OACXnD,aAAc,IAEhB,CACER,SAAU,QACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,SACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,SACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,WACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,YACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,YACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,QACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,SACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,SACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,WACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,YACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,YACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,QACV2D,UAAW,aACXnD,aAAc,UAEhB,CACER,SAAU,SACV2D,UAAW,aACXnD,aAAc,WAEhB,CACER,SAAU,SACV2D,UAAW,aACXnD,aAAc,WAEhB,CACER,SAAU,QACV2D,UAAW,aACXnD,aAAc,UAEhB,CACER,SAAU,SACV2D,UAAW,aACXnD,aAAc,WAEhB,CACER,SAAU,SACV2D,UAAW,aACXnD,aAAc,WAEhB,CACER,SAAU,WACV2D,UAAW,OACXnD,aAAc,IAEhB,CACER,SAAU,aACV2D,UAAW,OACXnD,aAAc,IAEhB,CAEER,SAAU,SACV2D,UAAW,aACXnD,aAAc,aAEhB,CACER,SAAU,WACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,YACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,YACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,UACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,WACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,WACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,WACV2D,UAAW,aACXnD,aAAc,aAEhB,CACER,SAAU,YACV2D,UAAW,aACXnD,aAAc,cAEhB,CACER,SAAU,YACV2D,UAAW,aACXnD,aAAc,cAEhB,CACER,SAAU,WACV2D,UAAW,aACXnD,aAAc,aAEhB,CACER,SAAU,YACV2D,UAAW,aACXnD,aAAc,cAEhB,CACER,SAAU,YACV2D,UAAW,aACXnD,aAAc,cAEhB,CACER,SAAU,aACV2D,UAAW,aACXnD,aAAc,aAEhB,CACER,SAAU,aACV2D,UAAW,aACXnD,aAAc,cAEhB,CACER,SAAU,aACV2D,UAAW,aACXnD,aAAc,cAEhB,CACER,SAAU,WACV2D,UAAW,aACXnD,aAAc,aAEhB,CACER,SAAU,YACV2D,UAAW,aACXnD,aAAc,cAEhB,CACER,SAAU,YACV2D,UAAW,aACXnD,aAAc,cAEhB,CACER,SAAU,SACV2D,UAAW,aACXnD,aAAc,aAEhB,CACER,SAAU,UACV2D,UAAW,aACXnD,aAAc,cAEhB,CACER,SAAU,UACV2D,UAAW,aACXnD,aAAc,cAEhB,CACER,SAAU,YACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,aACV2D,UAAW,MACXnD,aAAc,IAEhB,CACER,SAAU,aACV2D,UAAW,MACXn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","file":"static/js/main.9058386d.chunk.js","sourcesContent":["import { makeStyles, createMuiTheme } from \"@material-ui/core/styles\";\n\n// Main theme and responsive fonts\nexport function makeTheme(mode) {\n return createMuiTheme({\n palette: {\n type: mode,\n primary: {\n light: \"#1E1E1E\",\n // main: \"#14375a\",\n main: \"#14375a\",\n dark: \"#000000\",\n contrastText: \"#fff\",\n },\n secondary: {\n light: \"#ffd35f\",\n main: \"#ffc838\",\n dark: \"#b28c27\",\n contrastText: \"#000\",\n },\n background: {\n paper: mode === \"dark\" ? \"#1E1E1E\" : \"#ffffff\",\n },\n },\n });\n}\n\n// Sidebar\nconst drawerWidth = 325;\nexport const sidebarStyles = makeStyles((theme) => ({\n root: {\n display: \"flex\",\n },\n drawer: {\n [theme.breakpoints.up(\"sm\")]: {\n width: drawerWidth,\n flexShrink: 0,\n },\n },\n appBar: {\n zIndex: theme.zIndex.drawer + 1,\n },\n menuButton: {\n marginRight: theme.spacing(2),\n [theme.breakpoints.up(\"sm\")]: {\n display: \"none\",\n },\n },\n // necessary for content to be below app bar\n toolbar: theme.mixins.toolbar,\n drawerPaper: {\n width: drawerWidth,\n background: \"#14375a\",\n },\n drawerContainer: {\n overflow: \"auto\",\n },\n content: {\n flexGrow: 1,\n padding: 5,\n overflowX: \"auto\",\n overflowY: \"hidden\",\n },\n divider: {\n // margin: \"8px 0\",\n marginBottom: \"5px\",\n height: 1.5,\n },\n sectionHeader: {\n color: \"#FFFFFF\",\n // fontStyle: \"bold\",\n paddingLeft: \"0.5em\",\n // fontSize: \"1.15em\",\n },\n text: {\n color: \"#FFFFFF !important\",\n // fontStyle: \"bold\",\n paddingLeft: \"0.75em\",\n fontSize: \"1.15em\",\n },\n iconText: {\n color: \"#FFFFFF !important\",\n // fontStyle: \"bold\",\n // paddingLeft: \"0.25em\",\n fontSize: \"1.15em\",\n },\n}));\n","import React from \"react\";\n\n/* for nginix */\n/* export const API_ROOT = \"/api\"; */\n/* for yarn start */\n// dev api server on Azure\n//export const API_ROOT = \"https://tti-tcat-api-dev.azurewebsites.net/api\";\n//export const API_ROOT = \"https://tti-tcat-api-prod-dev.azurewebsites.net/api\";\n//export const API_ROOT = \"https://tti-tcat-api-prod.azurewebsites.net/api\";\n//export const API_ROOT = \"https://tti-txcat-api.azurewebsites.net/api\";\nexport const API_ROOT = \"https://tti-txcat-api-dev.azurewebsites.net/api\";\n\n// local api server\n//export const API_ROOT = \"http://localhost:5000/api\";\n\n// Following is test for different Azure config\n// export const API_ROOT = \"https://tti-tcat-api-prod.azurewebsites.net/api\";\n\n// export const whatIsTCATFile = \"TCAT Desc 14Jan2021.pdf\";\nexport const whatIsTCATFile = \"TCAT_analysis.pdf\";\nexport const whatIsTCAT_tooltip = \"What is TCAT?\";\n// export const basicHelpFile = \"TCAT V 2.0 Basic Info 4Feb2021.pdf\";\n// export const basicHelpFile = \"TCAT V 2.1 Basic Info 30July2021.pdf\";\n// export const basicHelpFile = \"TCAT V 2.2 Basic Info 1Dec2021.pdf\";\nexport const basicHelpFile = \"TCAT V 2.2 Basic Info 21Feb2022.pdf\";\nexport const usersguide_tooltip = \"Quick Reference/Basic Help\";\n// const methodHelpFile = \"Methods-2019-6.pdf\";\nexport const methodHelpFile =\n \"https://static.tti.tamu.edu/tti.tamu.edu/documents/TTI-2020-8.pdf\";\n// const summaryReportFile = \"Summary Report-2019-7.pdf\";\nexport const summaryReportFile =\n \"https://static.tti.tamu.edu/tti.tamu.edu/documents/TTI-2020-9.pdf\";\nexport const annTruckCongRepCardsLink = \"https://atcrtx.tti.tamu.edu/\";\nexport const quarterlyTruckMobilityReportsLink = \"https://qtmrtx.tti.tamu.edu/\";\n\nexport const MAPBOX_ACCESSTOKEN =\n \"pk.eyJ1IjoiamlzdW5nIiwiYSI6ImNqaXZ1YW9pNDJ4Nzkza3A4cGRtczhkNnUifQ.l8GpDnBNJtRoFMcId2hpSw\";\n\nexport const MAPBOX_URL =\n \"https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token={access_token}\";\n//\"https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={access_token}\";\n\nexport const MAPBOX_STREETS_V10_URL =\n \"https://api.tiles.mapbox.com/styles/v1/mapbox/streets-v10/tiles/256/{z}/{x}/{y}?access_token={access_token}\";\n\nexport const MAPBOX_ATTRIBUTION = `Map data © \nOpenStreetMap contributors, \nCC-BY-SA,\nImagery © Mapbox`;\n\nexport const baseLayers = [\n {\n name: \"Streets\",\n url: MAPBOX_STREETS_V10_URL,\n id: \"mapbox/streets-v11\",\n },\n {\n name: \"Satellite\",\n url: MAPBOX_URL,\n id: \"mapbox/satellite-v9\",\n },\n {\n name: \"Satellite-Streets\",\n url: MAPBOX_URL,\n id: \"mapbox/satellite-streets-v11\",\n },\n {\n name: \"Light\",\n url: MAPBOX_URL,\n id: \"mapbox/light-v10\",\n },\n {\n name: \"Dark\",\n url: MAPBOX_URL,\n id: \"mapbox/dark-v10\",\n },\n];\n\n/* Colors from the \"paired\" and \"accent\" color scheme\n * at https://vega.github.io/vega/docs/schemes/#categorical.\n * normal: paired[0] light blue\n * selected: paired[1] dark blue\n * selectedSection: accent[2] light orange\n */\nexport const COLOR_RHINO = {\n //['#a6cee3','#1f78b4','#b2df8a','#33a02c','#fb9a99','#e31a1c','#fdbf6f','#ff7f00','#cab2d6','#6a3d9a']\n //['#a50026', '#d73027', '#f46d43', '#fdae61', '#fee090', '#e0f3f8', '#abd9e9', '#74add1', '#4575b4', '#313695']\n bucket1: \"#a6cee3\",\n bucket2: \"#1f78b4\",\n bucket3: \"#b2df8a\",\n bucket4: \"#33a02c\",\n bucket5: \"#fb9a99\",\n bucket6: \"#e31a1c\",\n bucket7: \"#fdbf6f\",\n bucket8: \"#ff7f00\",\n bucket9: \"#cab2d6\",\n bucket10: \"#6a3d9a\",\n //normal: \"#1f78b4\",\n //normal: \"#a6cee3\",\n normal: \"#4d4dff\",\n //normal: \"#0080ff\",\n //notSelected actually makes roadways disappear.\n // notSelected: \"#d3d3d3\",\n notSelected: \"#d4d4d4\",\n //selected: \"#a6cee3\",\n selected: \"#ff0000\",\n selectedSection: \"#006400\",\n};\nexport const colorContextlayers = {\n sandMines: \"#ff7800\",\n disposalWells: \"#4B0082\", //'#e31a1c',\n};\n\nexport const SUMMARY_VARIABLES_RHINO = [\n {\n variable: \"trkdelay\",\n summaryName: \"Truck Person Hours of Delay\",\n definition: \"Annual Hours of Truck Delay\",\n explanation: `The mileage traveled by all trucks on a highway segment\\\n in the peak period over an average day in a year.`,\n formatOptions: { maximumFractionDigits: 0 },\n category: \"truck\",\n defaultVisibility: true,\n },\n {\n variable: \"trkpti80\",\n summaryName: \"Truck Planning Time Index 80\",\n definition: \"80th Percentile Truck Planning Time Index\",\n explanation: `80th percentile Truck Planning Time Index (PTI)\\\n is the ratio of the 80th percentile truck travel time as compared\\\n to the truck free-flow travel time.`,\n formatOptions: { maximumFractionDigits: 2 },\n normalizedBy: \"trkttivmt\",\n category: \"truck\",\n defaultVisibility: true,\n },\n {\n variable: \"trkpti95\",\n summaryName: \"Truck Planning Time Index 95\",\n definition: \"95th Percentile Truck Planning Time Index\",\n explanation: `95th percentile Truck Planning Time Index (PTI)\\\nis the ratio of the 95th percentile truck travel time\\\nas compared to the truck free-flow travel time.`,\n formatOptions: { maximumFractionDigits: 2 },\n normalizedBy: \"trkttivmt\",\n category: \"truck\",\n defaultVisibility: true,\n },\n {\n variable: \"tottrk\", // derived:\n // pct_trk = pct_sadt + pct_cadt;\n // tottrk = Math.round(pct_trk === 0 ? trkttivmt/len_sec : pct_trk/100 * adt_cur)\n summaryName: \"Truck AADT\",\n definition: \"Average Annual Daily Truck Traffic\",\n explanation: `The total volume of truck traffic on a highway segment\\\n for one year, divided by the number of days in the year.`,\n formatOptions: { maximumFractionDigits: 0 },\n normalizedBy: \"len_sec\",\n category: \"truck\",\n defaultVisibility: true,\n },\n {\n variable: \"trkttivmt\",\n summaryName: \"Truck Vehicle Miles of Travel\",\n definition: \"Daily Truck Vehicle Miles of Travel\",\n explanation: `The mileage traveled by all trucks on a highway segment\\\n over an average day in a year.`,\n formatOptions: { maximumFractionDigits: 0 },\n category: \"truck\",\n defaultVisibility: true,\n },\n {\n variable: \"trkrefspee\",\n summaryName: \"Truck Reference Speed\",\n definition: \"Average Network Truck Free Flow Speed\",\n explanation: \"The average speed of trucks in uncongested conditions.\",\n formatOptions: { maximumFractionDigits: 1 },\n normalizedBy: \"trkttivmt\",\n category: \"truck\",\n defaultVisibility: true,\n },\n {\n variable: \"trkspeed\",\n summaryName: \"Truck Congested Speed\",\n definition: \"Average Network Truck Congested Speed\",\n explanation: \"The average speed of trucks in congested conditions.\",\n formatOptions: { maximumFractionDigits: 2 },\n normalizedBy: \"trkttivmt\",\n category: \"truck\",\n defaultVisibility: true,\n },\n {\n variable: \"trktti\",\n summaryName: \"Truck Travel Time Index\",\n definition: \"Truck Travel Time Index\",\n explanation: `Travel Time Index is the ratio of the peak-period travel time\\\n for trucks as compared to the free-flow travel time for trucks. This measure\\\n is computed for the AM peak period (6:00 a.m. to 9:00 a.m.) and PM peak period\\\n (4:00 p.m. to 7:00 p.m.) on weekdays.`,\n formatOptions: { maximumFractionDigits: 2 },\n normalizedBy: \"trkttivmt\",\n category: \"truck\",\n defaultVisibility: true,\n },\n {\n variable: \"delay\",\n summaryName: \"Person Hours of Delay\",\n definition: \"Annual Person Hours of Delay\",\n explanation: `Person hours of delay is the difference in travel time\\\n from uncogested traffic and congested traffic. This is for all persons\\\n in vehicles traveling for a year.`,\n formatOptions: { maximumFractionDigits: 0 },\n category: \"all\",\n defaultVisibility: false,\n },\n {\n variable: \"pti80\",\n summaryName: \"Planning Time Index 80\",\n definition: \"80th Percentile Planning Time Index\",\n explanation: `80th percentile Planning Time Index (PTI) is the ratio\\\n of the 80th percentile travel time as compared to the free-flow travel time.`,\n formatOptions: { maximumFractionDigits: 2 },\n normalizedBy: \"ttivmt\",\n category: \"all\",\n defaultVisibility: false,\n },\n {\n variable: \"pti95\",\n summaryName: \"Planning Time Index 95\",\n definition: \"95th Percentile Planning Time Index\",\n explanation: `95th percentile Planning Time Index (PTI) is the ratio of\\\n the 95th percentile travel time as compared to the free-flow travel time.`,\n formatOptions: { maximumFractionDigits: 2 },\n normalizedBy: \"ttivmt\",\n category: \"all\",\n defaultVisibility: false,\n },\n {\n variable: \"adt_cur\",\n summaryName: \"AADT\",\n definition: \"Average Annual Daily Traffic\",\n explanation: `The total volume of traffic on a highway segment\\\n for one year, divided by the number of days in the year.`,\n formatOptions: { maximumFractionDigits: 0 }, // rounded to closest integer\n normalizedBy: \"len_sec\",\n category: \"all\",\n defaultVisibility: false,\n },\n\n {\n variable: \"vmt\", // derived: Math.round(adt_cur * len_sec)\n summaryName: \"Vehicle Miles of Travel\",\n definition: \"Daily Vehicle Miles of Travel\",\n explanation: `The mileage traveled by all vehicles on a highway segment\\\n over an average day in a year.`,\n formatOptions: { maximumFractionDigits: 0 },\n category: \"all\",\n defaultVisibility: false,\n },\n {\n variable: \"ttivmt\",\n summaryName: \"Peak Vehicle Miles of Travel\",\n definition: \"Daily Peak Period Vehicle Miles of Travel\",\n explanation: `The mileage traveled by all vehicles on a highway segment\\\n in the peak period over an average day in a year.`,\n formatOptions: { maximumFractionDigits: 0 },\n category: \"all\",\n defaultVisibility: false,\n },\n {\n variable: \"congcost\",\n summaryName: \"Congested Costs\",\n definition: \"Annual Costs ($) of Congestion\",\n explanation: `Congested costs is the annual costs to travelers due to\\\n such factors as loss productivity and extra vehicle wear`,\n formatOptions: { maximumFractionDigits: 0 },\n category: \"all\",\n defaultVisibility: false,\n },\n {\n variable: \"ghg\",\n summaryName: \"Congested CO2 Lbs\",\n definition: \"Annual Pounds of CO2 Due to Traffic Congestion\",\n explanation:\n \"Congested pounds of CO2 is the extra CO2 emmitted from vehicles \\\n in congested conidtions.\",\n formatOptions: { maximumFractionDigits: 0 },\n category: \"all\",\n defaultVisibility: false,\n },\n {\n variable: \"ghgbase\",\n summaryName: \"Normal CO2 Lbs\",\n definition: \"Annual Pounds of CO2 Associated with Uncongested Travel\",\n explanation: `Congested pounds of CO2 is the CO2 emmitted from vehicles\\\n in uncongested conditions.`,\n formatOptions: { maximumFractionDigits: 0 },\n category: \"all\",\n defaultVisibility: false,\n },\n {\n variable: \"len_sec\",\n summaryName: \"Miles of Highway\",\n definition: \"Total Highway Miles of Analysis\",\n explanation: \"The total miles of highway for the roadways being analyzed.\",\n formatOptions: { maximumFractionDigits: 1 },\n category: \"route\",\n defaultVisibility: false,\n },\n {\n variable: \"lanemiles\", // derived: len_sec * num_lanes\n summaryName: \"Lane Miles of Highway\",\n definition: \"Total Lane Miles of Analysis\",\n explanation: `The total lanes*miles of highway for the roadways\\\n being analyzed.`,\n formatOptions: { maximumFractionDigits: 1 },\n category: \"route\",\n defaultVisibility: false,\n },\n {\n variable: \"allrefspee\",\n summaryName: \"Reference Speed\",\n definition: \"Average Network Free Flow Speed\",\n explanation: \"The average speed of vehicles in uncongested conditions.\",\n formatOptions: { maximumFractionDigits: 1 },\n normalizedBy: \"ttivmt\",\n category: \"all\",\n defaultVisibility: false,\n },\n {\n variable: \"allspeed\",\n summaryName: \"Congested Speed\",\n definition: \"Average Network Congested Speed\",\n explanation: \"The average speed of vehicles in congested conditions.\",\n formatOptions: { maximumFractionDigits: 1 },\n normalizedBy: \"ttivmt\",\n category: \"all\",\n defaultVisibility: false,\n },\n {\n variable: \"tti\",\n summaryName: \"Travel Time Index\",\n definition: \"Travel Time Index\",\n explanation: `Travel Time Index is the ratio of the peak-period travel time\\\n as compared to the free-flow travel time. This measure is computed for\\\n the AM peak period (6:00 a.m. to 9:00 a.m.) and PM peak period\\\n (4:00 p.m. to 7:00 p.m.) on weekdays.`,\n formatOptions: { maximumFractionDigits: 2 },\n normalizedBy: \"ttivmt\",\n category: \"all\",\n defaultVisibility: false,\n },\n {\n variable: \"estimated_vmt_ratio\",\n summaryName: \"Estimated Coverage - VMT\",\n definition: \"Ratio of estimated VMT over total VMT\",\n formatOptions: { style: \"percent\", maximumFractionDigits: 2 },\n category: \"estimation\",\n defaultVisibility: true,\n },\n {\n variable: \"estimated_lanemiles_ratio\",\n summaryName: \"Estimated Coverage - Miles\",\n definition: \"Ratio of estimated lanemiles over total lanemiles\",\n formatOptions: { style: \"percent\", maximumFractionDigits: 2 },\n category: \"estimation\",\n defaultVisibility: true,\n },\n // {\n // variable: \"len_sec\",\n // summaryName: \"Length of Segment\",\n // definition: \"Segment Length\",\n // explanation: `Segment Length`,\n // formatOptions: { maximumFractionDigits: 2 },\n // category: \"route\",\n // defaultVisibility: false,\n // },\n];\n\nexport const CATEGORICAL_VARIABLES = [\n {\n variable: \"county\",\n mapped: \"co_name\",\n definition: \"County Name\",\n },\n {\n variable: \"hsys_new\",\n mapped: \"hsys_new\",\n definition: \"Highway System Designation\",\n },\n {\n variable: \"ru\",\n mapped: \"ru_n\",\n definition: \"Rural Urban Code\",\n },\n {\n variable: \"sec_nhs\",\n mapped: \"sec_nhs_n\",\n definition: \"National Highway System\",\n },\n // {\n // variable: \"f_system\",\n // definition: \"Functional-Classification (2014)\",\n // // text: function (value) {\n // // var f_system_n = {\n // // 1: 'Interstate',\n // // 2: 'Other Freeway and Expressway',\n // // 3: 'Other Principal Arterial',\n // // 4: 'Minor Arterial',\n // // 5: 'Major Collector',\n // // 6: 'Minor Collector',\n // // 7: 'Local',\n // // }\n // // return f_system_n[value];\n // // },\n // compare: function (a, b) {\n // return b - a; // reverse order;\n // },\n // sortable: true,\n // },\n // {\n // variable: \"fun_sys\",\n // definition: \"Functional-Classification (2009)\",\n // compare: function (a, b) {\n // var ranks = {\n // 'Interstate': 1,\n // 'Other Principal Arterial': 2,\n // 'Minor Arterial': 3,\n // 'Major Collector': 4,\n // 'Minor Collector': 5,\n // 'Other Freeway and Expressway': 7,\n // 'Collector': 9,\n // 'Local': 10,\n // }\n // return ranks[b] - ranks[a];\n // },\n // },\n // {\n // variable: \"hwy_des1\",\n // definition: \"Highway Design\",\n // compare: function(a, b) {\n // var ranks = {\n // 'Highway': 1,\n // 'Interstate': 2,\n // }\n // return ranks[b] - ranks[a];\n // },\n // },\n {\n variable: \"hwy\",\n mapped: \"highway_name\",\n definition: \"Major Highways\",\n },\n];\n\nexport const TXDOTdist_VARIABLES = [\n {\n variable: \"txdot_dist_8\",\n mapped: 8,\n definition: \"Abilene District\",\n },\n {\n variable: \"txdot_dist_4\",\n mapped: 4,\n definition: \"Amarillo District\",\n },\n {\n variable: \"txdot_dist_19\",\n mapped: 19,\n definition: \"Atlanta District\",\n },\n {\n variable: \"txdot_dist_14\",\n mapped: 14,\n definition: \"Austin District\",\n },\n {\n variable: \"txdot_dist_20\",\n mapped: 20,\n definition: \"Beaumont District\",\n },\n {\n variable: \"txdot_dist_23\",\n mapped: 23,\n definition: \"Brownwood District\",\n },\n {\n variable: \"txdot_dist_17\",\n mapped: 17,\n definition: \"Bryan District\",\n },\n {\n variable: \"txdot_dist_25\",\n mapped: 25,\n definition: \"Childress District\",\n },\n {\n variable: \"txdot_dist_16\",\n mapped: 16,\n definition: \"Corpus Christi District\",\n },\n {\n variable: \"txdot_dist_18\",\n mapped: 18,\n definition: \"Dallas District\",\n },\n {\n variable: \"txdot_dist_24\",\n mapped: 24,\n definition: \"El Paso District\",\n },\n {\n variable: \"txdot_dist_2\",\n mapped: 2,\n definition: \"Fort Worth District\",\n },\n {\n variable: \"txdot_dist_12\",\n mapped: 12,\n definition: \"Houston District\",\n },\n {\n variable: \"txdot_dist_22\",\n mapped: 22,\n definition: \"Laredo District\",\n },\n {\n variable: \"txdot_dist_5\",\n mapped: 5,\n definition: \"Lubbock District\",\n },\n {\n variable: \"txdot_dist_11\",\n mapped: 11,\n definition: \"Lufkin District\",\n },\n {\n variable: \"txdot_dist_6\",\n mapped: 6,\n definition: \"Odessa District\",\n },\n {\n variable: \"txdot_dist_1\",\n mapped: 1,\n definition: \"Paris District\",\n },\n {\n variable: \"txdot_dist_21\",\n mapped: 21,\n definition: \"Pharr District\",\n },\n {\n variable: \"txdot_dist_7\",\n mapped: 7,\n definition: \"San Angelo District\",\n },\n {\n variable: \"txdot_dist_15\",\n mapped: 15,\n definition: \"San Antonio District\",\n },\n {\n variable: \"txdot_dist_10\",\n mapped: 10,\n definition: \"Tyler District\",\n },\n {\n variable: \"txdot_dist_9\",\n mapped: 9,\n definition: \"Waco District\",\n },\n {\n variable: \"txdot_dist_3\",\n mapped: 3,\n definition: \"Wichita Falls District\",\n },\n {\n variable: \"txdot_dist_13\",\n mapped: 13,\n definition: \"Yoakum District\",\n },\n];\n\nexport const CATEGORY_SUMMARY_VARIABLES = [\n {\n variable: \"hrs_delay\",\n summaryName: \"Hours of Delay\",\n definition: \"Hours of Delay\",\n subcategory: [\"delay\", \"trkdelay\"],\n defaultVisibility: true,\n },\n {\n variable: \"plan_time_index\",\n summaryName: \"Planning Time Index\",\n definition: \"Planning Time Index\",\n subcategory: [\"pti80\", \"trkpti80\", \"pti95\", \"trkpti95\"],\n defaultVisibility: false,\n },\n];\n\nexport const SUMMARY_VARIABLES_TX100 = [\n {\n variable: \"trank\",\n summaryName: \"Truck Top 100 Rank\",\n definition: \"Truck Top 100 Rank\",\n explanation: `Truck Top 100 Rank`,\n formatOptions: { maximumFractionDigits: 0 },\n category: \"truck\",\n defaultVisibility: true,\n },\n {\n variable: \"arank\",\n summaryName: \"Top 100 Rank\",\n definition: \"Top 100 Rank\",\n explanation: `Top 100 Rank`,\n formatOptions: { maximumFractionDigits: 0 },\n category: \"all\",\n defaultVisibility: false,\n },\n {\n variable: \"tdly\",\n summaryName: \"Truck Person Hours of Delay\",\n definition: \"Annual Hours of Truck Delay\",\n explanation: `Truck hours of delay is the difference in travel time\\\n from uncogested traffic and congested traffic. This is for all persons\\\n in vehicles traveling for a year.`,\n formatOptions: { maximumFractionDigits: 0 },\n category: \"truck\",\n defaultVisibility: true,\n },\n {\n variable: \"dly\",\n summaryName: \"Person Hours of Delay\",\n definition: \"Annual Person Hours of Delay\",\n explanation: `Person hours of delay is the difference in travel time\\\n from uncogested traffic and congested traffic. This is for all persons\\\n in vehicles traveling for a year.`,\n formatOptions: { maximumFractionDigits: 0 },\n category: \"all\",\n defaultVisibility: false,\n },\n {\n variable: \"dmile\",\n summaryName: \"Person Hours of Delay per Mile\",\n definition: \"Annual Person Hours of Delay per Mile\",\n explanation: `Person hours of delay per mile.`,\n formatOptions: { maximumFractionDigits: 0 },\n category: \"all\",\n defaultVisibility: false,\n },\n {\n variable: \"tdmile\",\n summaryName: \"Truck Person Hours of Delay per Mile\",\n definition: \"Annual Hours of Truck Delay per Mile\",\n explanation: `Truck hours of delay per Mile.`,\n formatOptions: { maximumFractionDigits: 0 },\n category: \"truck\",\n defaultVisibility: true,\n },\n {\n variable: \"ttci\",\n summaryName: \"Truck Congestion Index\",\n definition: \"Truck Congestion Index\",\n explanation: \"Truck Congestion Index\",\n formatOptions: { maximumFractionDigits: 2 },\n category: \"truck\",\n defaultVisibility: true,\n },\n {\n variable: \"tpti\",\n summaryName: \"Truck Planning Time Index\",\n definition: \"Truck Planning Time Index\",\n explanation: \"Truck Planning Time Index\",\n formatOptions: { maximumFractionDigits: 2 },\n category: \"truck\",\n defaultVisibility: true,\n },\n {\n variable: \"tcost\",\n summaryName: \"Truck Congested Costs\",\n definition: \"Annual Costs ($) of Truck Congestion\",\n explanation: `Congested costs is the annual costs to travelers due to\\\n such factors as loss productivity and extra vehicle wear`,\n formatOptions: { maximumFractionDigits: 0 },\n category: \"truck\",\n defaultVisibility: true,\n },\n {\n variable: \"tci\",\n summaryName: \"Congestion Index\",\n definition: \"Congestion Index\",\n explanation: \"Congestion Index\",\n formatOptions: { maximumFractionDigits: 2 },\n category: \"all\",\n defaultVisibility: false,\n },\n {\n variable: \"pti\",\n summaryName: \"Planning Time Index\",\n definition: \"Planning Time Index\",\n explanation: \"Planning Time Index\",\n formatOptions: { maximumFractionDigits: 2 },\n category: \"all\",\n defaultVisibility: false,\n },\n {\n variable: \"cost\",\n summaryName: \"Congested Costs\",\n definition: \"Annual Costs ($) of Congestion\",\n explanation: `Congested costs is the annual costs to travelers due to\\\n such factors as loss productivity and extra vehicle wear`,\n formatOptions: { maximumFractionDigits: 0 },\n category: \"all\",\n defaultVisibility: false,\n },\n {\n variable: \"length_tx100seg\",\n summaryName: \"Miles of Highway\",\n definition: \"Segment Length\",\n explanation: `Segment Length`,\n formatOptions: { maximumFractionDigits: 2 },\n category: \"route\",\n defaultVisibility: false,\n },\n];\nexport const COUNTY_LIST = [\n {\n name: \"Atascosa\",\n id: 7,\n },\n {\n name: \"Matagorda\",\n id: 158,\n },\n {\n name: \"Jackson\",\n id: 121,\n },\n {\n name: \"De Witt\",\n id: 62,\n },\n {\n name: \"Wilson\",\n id: 247,\n },\n {\n name: \"Kinney\",\n id: 136,\n },\n {\n name: \"Uvalde\",\n id: 232,\n },\n {\n name: \"Lavaca\",\n id: 143,\n },\n {\n name: \"Brazoria\",\n id: 20,\n },\n {\n name: \"Wharton\",\n id: 241,\n },\n {\n name: \"Presidio\",\n id: 189,\n },\n {\n name: \"Burleson\",\n id: 26,\n },\n {\n name: \"Williamson\",\n id: 246,\n },\n {\n name: \"Grimes\",\n id: 94,\n },\n {\n name: \"Llano\",\n id: 150,\n },\n {\n name: \"Mason\",\n id: 157,\n },\n {\n name: \"San Jacinto\",\n id: 204,\n },\n {\n name: \"Brazos\",\n id: 21,\n },\n {\n name: \"Burnet\",\n id: 27,\n },\n {\n name: \"Menard\",\n id: 164,\n },\n {\n name: \"Schleicher\",\n id: 207,\n },\n {\n name: \"Crockett\",\n id: 53,\n },\n {\n name: \"Walker\",\n id: 236,\n },\n {\n name: \"Milam\",\n id: 166,\n },\n {\n name: \"Medina\",\n id: 163,\n },\n {\n name: \"Galveston\",\n id: 85,\n },\n {\n name: \"Bexar\",\n id: 15,\n },\n {\n name: \"Gonzales\",\n id: 90,\n },\n {\n name: \"Fort Bend\",\n id: 80,\n },\n {\n name: \"Guadalupe\",\n id: 95,\n },\n {\n name: \"Madison\",\n id: 154,\n },\n {\n name: \"Jeff Davis\",\n id: 123,\n },\n {\n name: \"Tyler\",\n id: 229,\n },\n {\n name: \"Polk\",\n id: 187,\n },\n {\n name: \"Jasper\",\n id: 122,\n },\n {\n name: \"Bandera\",\n id: 10,\n },\n {\n name: \"Colorado\",\n id: 45,\n },\n {\n name: \"Chambers\",\n id: 36,\n },\n {\n name: \"Comal\",\n id: 46,\n },\n {\n name: \"Real\",\n id: 193,\n },\n {\n name: \"Caldwell\",\n id: 28,\n },\n {\n name: \"Kendall\",\n id: 131,\n },\n {\n name: \"Austin\",\n id: 8,\n },\n {\n name: \"Fayette\",\n id: 76,\n },\n {\n name: \"Harris\",\n id: 102,\n },\n {\n name: \"Edwards\",\n id: 70,\n },\n {\n name: \"Newton\",\n id: 176,\n },\n {\n name: \"Pecos\",\n id: 186,\n },\n {\n name: \"Kerr\",\n id: 133,\n },\n {\n name: \"Val Verde\",\n id: 233,\n },\n {\n name: \"Waller\",\n id: 237,\n },\n {\n name: \"Jefferson\",\n id: 124,\n },\n {\n name: \"Hays\",\n id: 106,\n },\n {\n name: \"Cameron\",\n id: 31,\n },\n {\n name: \"Willacy\",\n id: 245,\n },\n {\n name: \"Starr\",\n id: 214,\n },\n {\n name: \"Hidalgo\",\n id: 109,\n },\n {\n name: \"Brooks\",\n id: 24,\n },\n {\n name: \"Kenedy\",\n id: 66,\n },\n {\n name: \"Robertson\",\n id: 198,\n },\n {\n name: \"Lampasas\",\n id: 141,\n },\n {\n name: \"Trinity\",\n id: 228,\n },\n {\n name: \"San Saba\",\n id: 206,\n },\n {\n name: \"McCulloch\",\n id: 160,\n },\n {\n name: \"Zapata\",\n id: 253,\n },\n {\n name: \"Jim Hogg\",\n id: 125,\n },\n {\n name: \"Kleberg\",\n id: 137,\n },\n {\n name: \"Nueces\",\n id: 178,\n },\n {\n name: \"Duval\",\n id: 67,\n },\n {\n name: \"Jim Wells\",\n id: 126,\n },\n {\n name: \"San Patricio\",\n id: 205,\n },\n {\n name: \"Webb\",\n id: 240,\n },\n {\n name: \"Aransas\",\n id: 4,\n },\n {\n name: \"Refugio\",\n id: 196,\n },\n {\n name: \"Dimmit\",\n id: 64,\n },\n {\n name: \"La Salle\",\n id: 142,\n },\n {\n name: \"McMullen\",\n id: 162,\n },\n {\n name: \"Bee\",\n id: 13,\n },\n {\n name: \"Calhoun\",\n id: 29,\n },\n {\n name: \"Live Oak\",\n id: 149,\n },\n {\n name: \"Goliad\",\n id: 89,\n },\n {\n name: \"Maverick\",\n id: 159,\n },\n {\n name: \"Reagan\",\n id: 192,\n },\n {\n name: \"Zavala\",\n id: 254,\n },\n {\n name: \"Frio\",\n id: 83,\n },\n {\n name: \"Victoria\",\n id: 235,\n },\n {\n name: \"Karnes\",\n id: 129,\n },\n {\n name: \"Hudspeth\",\n id: 116,\n },\n {\n name: \"Anderson\",\n id: 1,\n },\n {\n name: \"El Paso\",\n id: 72,\n },\n {\n name: \"Bosque\",\n id: 18,\n },\n {\n name: \"Cherokee\",\n id: 37,\n },\n {\n name: \"Comanche\",\n id: 47,\n },\n {\n name: \"Hill\",\n id: 110,\n },\n {\n name: \"Hall\",\n id: 97,\n },\n {\n name: \"Somervell\",\n id: 213,\n },\n {\n name: \"Navarro\",\n id: 175,\n },\n {\n name: \"Henderson\",\n id: 108,\n },\n {\n name: \"Callahan\",\n id: 30,\n },\n {\n name: \"Rusk\",\n id: 201,\n },\n {\n name: \"Eastland\",\n id: 68,\n },\n {\n name: \"Taylor\",\n id: 221,\n },\n {\n name: \"Erath\",\n id: 73,\n },\n {\n name: \"Nolan\",\n id: 177,\n },\n {\n name: \"Panola\",\n id: 183,\n },\n {\n name: \"Mitchell\",\n id: 168,\n },\n {\n name: \"Howard\",\n id: 115,\n },\n {\n name: \"Martin\",\n id: 156,\n },\n {\n name: \"Upton\",\n id: 231,\n },\n {\n name: \"Andrews\",\n id: 2,\n },\n {\n name: \"Hood\",\n id: 112,\n },\n {\n name: \"Johnson\",\n id: 127,\n },\n {\n name: \"Ellis\",\n id: 71,\n },\n {\n name: \"Smith\",\n id: 212,\n },\n {\n name: \"Gregg\",\n id: 93,\n },\n {\n name: \"Kaufman\",\n id: 130,\n },\n {\n name: \"Harrison\",\n id: 103,\n },\n {\n name: \"Van Zandt\",\n id: 234,\n },\n {\n name: \"Shackelford\",\n id: 209,\n },\n {\n name: \"Jones\",\n id: 128,\n },\n {\n name: \"Stephens\",\n id: 215,\n },\n {\n name: \"Houston\",\n id: 114,\n },\n {\n name: \"Crane\",\n id: 52,\n },\n {\n name: \"Ward\",\n id: 238,\n },\n {\n name: \"Tom Green\",\n id: 226,\n },\n {\n name: \"Leon\",\n id: 145,\n },\n {\n name: \"Coryell\",\n id: 50,\n },\n {\n name: \"Mills\",\n id: 167,\n },\n {\n name: \"Sabine\",\n id: 202,\n },\n {\n name: \"Fisher\",\n id: 77,\n },\n {\n name: \"San Augustine\",\n id: 203,\n },\n {\n name: \"Borden\",\n id: 17,\n },\n {\n name: \"Scurry\",\n id: 208,\n },\n {\n name: \"Orange\",\n id: 181,\n },\n {\n name: \"Bastrop\",\n id: 11,\n },\n {\n name: \"Washington\",\n id: 239,\n },\n {\n name: \"Gillespie\",\n id: 87,\n },\n {\n name: \"Glasscock\",\n id: 88,\n },\n {\n name: \"Blanco\",\n id: 16,\n },\n {\n name: \"Lee\",\n id: 144,\n },\n {\n name: \"Liberty\",\n id: 146,\n },\n {\n name: \"Travis\",\n id: 227,\n },\n {\n name: \"Hardin\",\n id: 101,\n },\n {\n name: \"Terrell\",\n id: 222,\n },\n {\n name: \"Montgomery\",\n id: 170,\n },\n {\n name: \"Sutton\",\n id: 218,\n },\n {\n name: \"Kimble\",\n id: 134,\n },\n {\n name: \"Brewster\",\n id: 22,\n },\n {\n name: \"Bell\",\n id: 14,\n },\n {\n name: \"Irion\",\n id: 119,\n },\n {\n name: \"Falls\",\n id: 74,\n },\n {\n name: \"Concho\",\n id: 48,\n },\n {\n name: \"Angelina\",\n id: 3,\n },\n {\n name: \"Limestone\",\n id: 147,\n },\n {\n name: \"Midland\",\n id: 165,\n },\n {\n name: \"McLennan\",\n id: 161,\n },\n {\n name: \"Nacogdoches\",\n id: 174,\n },\n {\n name: \"Hamilton\",\n id: 98,\n },\n {\n name: \"Loving\",\n id: 151,\n },\n {\n name: \"Reeves\",\n id: 195,\n },\n {\n name: \"Freestone\",\n id: 82,\n },\n {\n name: \"Coleman\",\n id: 42,\n },\n {\n name: \"Runnels\",\n id: 200,\n },\n {\n name: \"Brown\",\n id: 25,\n },\n {\n name: \"Coke\",\n id: 41,\n },\n {\n name: \"Culberson\",\n id: 55,\n },\n {\n name: \"Sterling\",\n id: 216,\n },\n {\n name: \"Ector\",\n id: 69,\n },\n {\n name: \"Shelby\",\n id: 210,\n },\n {\n name: \"Winkler\",\n id: 248,\n },\n {\n name: \"Tarrant\",\n id: 220,\n },\n {\n name: \"Dallas\",\n id: 57,\n },\n {\n name: \"Crosby\",\n id: 54,\n },\n {\n name: \"Lubbock\",\n id: 152,\n },\n {\n name: \"Archer\",\n id: 5,\n },\n {\n name: \"Hockley\",\n id: 111,\n },\n {\n name: \"Cochran\",\n id: 40,\n },\n {\n name: \"Fannin\",\n id: 75,\n },\n {\n name: \"Cooke\",\n id: 49,\n },\n {\n name: \"Grayson\",\n id: 92,\n },\n {\n name: \"Montague\",\n id: 169,\n },\n {\n name: \"Lamar\",\n id: 139,\n },\n {\n name: \"Red River\",\n id: 194,\n },\n {\n name: \"Clay\",\n id: 39,\n },\n {\n name: \"Wichita\",\n id: 243,\n },\n {\n name: \"Foard\",\n id: 79,\n },\n {\n name: \"Motley\",\n id: 173,\n },\n {\n name: \"Cottle\",\n id: 51,\n },\n {\n name: \"Floyd\",\n id: 78,\n },\n {\n name: \"Hale\",\n id: 96,\n },\n {\n name: \"Rockwall\",\n id: 199,\n },\n {\n name: \"Rains\",\n id: 190,\n },\n {\n name: \"Wood\",\n id: 250,\n },\n {\n name: \"Camp\",\n id: 32,\n },\n {\n name: \"Stonewall\",\n id: 217,\n },\n {\n name: \"Haskell\",\n id: 105,\n },\n {\n name: \"Kent\",\n id: 132,\n },\n {\n name: \"Throckmorton\",\n id: 224,\n },\n {\n name: \"Collingsworth\",\n id: 44,\n },\n {\n name: \"Garza\",\n id: 86,\n },\n {\n name: \"Gray\",\n id: 91,\n },\n {\n name: \"Lynn\",\n id: 153,\n },\n {\n name: \"Young\",\n id: 252,\n },\n {\n name: \"Terry\",\n id: 223,\n },\n {\n name: \"Yoakum\",\n id: 251,\n },\n {\n name: \"Cass\",\n id: 34,\n },\n {\n name: \"Collin\",\n id: 43,\n },\n {\n name: \"Ochiltree\",\n id: 179,\n },\n {\n name: \"Denton\",\n id: 61,\n },\n {\n name: \"Hansford\",\n id: 99,\n },\n {\n name: \"Wise\",\n id: 249,\n },\n {\n name: \"Hopkins\",\n id: 113,\n },\n {\n name: \"Morris\",\n id: 172,\n },\n {\n name: \"Hunt\",\n id: 117,\n },\n {\n name: \"Franklin\",\n id: 81,\n },\n {\n name: \"Roberts\",\n id: 197,\n },\n {\n name: \"Jack\",\n id: 120,\n },\n {\n name: \"Titus\",\n id: 225,\n },\n {\n name: \"Delta\",\n id: 60,\n },\n {\n name: \"Bowie\",\n id: 19,\n },\n {\n name: \"Knox\",\n id: 138,\n },\n {\n name: \"King\",\n id: 135,\n },\n {\n name: \"Dickens\",\n id: 63,\n },\n {\n name: \"Baylor\",\n id: 12,\n },\n {\n name: \"Dawson\",\n id: 58,\n },\n {\n name: \"Gaines\",\n id: 84,\n },\n {\n name: \"Upshur\",\n id: 230,\n },\n {\n name: \"Marion\",\n id: 155,\n },\n {\n name: \"Palo Pinto\",\n id: 182,\n },\n {\n name: \"Parker\",\n id: 184,\n },\n {\n name: \"Randall\",\n id: 191,\n },\n {\n name: \"Deaf Smith\",\n id: 59,\n },\n {\n name: \"Wheeler\",\n id: 242,\n },\n {\n name: \"Carson\",\n id: 33,\n },\n {\n name: \"Potter\",\n id: 188,\n },\n {\n name: \"Hutchinson\",\n id: 118,\n },\n {\n name: \"Oldham\",\n id: 180,\n },\n {\n name: \"Hemphill\",\n id: 107,\n },\n {\n name: \"Lamb\",\n id: 140,\n },\n {\n name: \"Bailey\",\n id: 9,\n },\n {\n name: \"Wilbarger\",\n id: 244,\n },\n {\n name: \"Hardeman\",\n id: 100,\n },\n {\n name: \"Childress\",\n id: 38,\n },\n {\n name: \"Briscoe\",\n id: 23,\n },\n {\n name: \"Swisher\",\n id: 219,\n },\n {\n name: \"Castro\",\n id: 35,\n },\n {\n name: \"Parmer\",\n id: 185,\n },\n {\n name: \"Donley\",\n id: 65,\n },\n {\n name: \"Armstrong\",\n id: 6,\n },\n {\n name: \"Lipscomb\",\n id: 148,\n },\n {\n name: \"Sherman\",\n id: 211,\n },\n {\n name: \"Dallam\",\n id: 56,\n },\n {\n name: \"Moore\",\n id: 171,\n },\n {\n name: \"Hartley\",\n id: 104,\n },\n];\n\nexport const MPO_LIST = [\n {\n id: 166,\n name: \"Abilene MPO\",\n },\n {\n id: 120,\n name: \"Amarillo MPO\",\n },\n {\n id: 90,\n name: \"Capital Area MPO\",\n },\n {\n id: 135,\n name: \"Beaumont - Port Arthur MPO\",\n },\n {\n id: 230,\n name: \"Brownsville MPO\",\n },\n {\n id: 249,\n name: \"Bryan College Station MPO\",\n },\n {\n id: 96,\n name: \"Corpus Christi MPO\",\n },\n {\n id: 282,\n name: \"North Central Texas COG\",\n },\n {\n id: 66,\n name: \"El Paso MPO\",\n },\n {\n id: 230,\n name: \"Rio Grande Valley MPO\",\n },\n {\n id: 15,\n name: \"Houston-Galveston Area Council\",\n },\n {\n id: 277,\n name: \"Killeen-Temple MPO\",\n },\n {\n id: 205,\n name: \"Laredo Urban Transportation Study\",\n },\n {\n id: 361,\n name: \"Longview MPO\",\n },\n {\n id: 122,\n name: \"Lubbock MPO\",\n },\n {\n id: 174,\n name: \"Permian Basin MPO\",\n },\n {\n id: 208,\n name: \"San Angelo MPO\",\n },\n {\n id: 28,\n name: \"Alamo Area MPO\",\n },\n {\n id: 232,\n name: \"Sherman-Denison MPO\",\n },\n {\n id: 211,\n name: \"Texarkana MPO\",\n },\n {\n id: 213,\n name: \"Tyler Area MPO\",\n },\n {\n id: 363,\n name: \"Victoria MPO\",\n },\n {\n id: 140,\n name: \"Waco MPO\",\n },\n {\n id: 151,\n name: \"Wichita Falls MPO\",\n }, //,\n\n // {\n // \"id\": 201,\n // \"name\": \"Unknown MPO 201\"\n // },\n\n // {\n // \"id\": 248,\n // \"name\": \"Unknown MPO 248\"\n // }\n];\n\nconst colourOptions = [\n { value: \"ocean\", label: \"Ocean\", color: \"#00B8D9\", isFixed: true },\n { value: \"blue\", label: \"Blue\", color: \"#0052CC\", isDisabled: true },\n { value: \"purple\", label: \"Purple\", color: \"#5243AA\" },\n { value: \"red\", label: \"Red\", color: \"#FF5630\", isFixed: true },\n { value: \"orange\", label: \"Orange\", color: \"#FF8B00\" },\n { value: \"yellow\", label: \"Yellow\", color: \"#FFC400\" },\n { value: \"green\", label: \"Green\", color: \"#36B37E\" },\n { value: \"forest\", label: \"Forest\", color: \"#00875A\" },\n { value: \"slate\", label: \"Slate\", color: \"#253858\" },\n { value: \"silver\", label: \"Silver\", color: \"#666666\" },\n];\nexport const groupedOptions = [\n {\n label: \"Colours\",\n options: colourOptions,\n },\n];\nexport const ROAD_LIST = [\n {\n value: \"FM0001-KG\",\n label: \"FM0001\",\n },\n {\n value: \"FM0002-KG\",\n label: \"FM0002\",\n },\n {\n value: \"FM0003-KG\",\n label: \"FM0003\",\n },\n {\n value: \"FM0004-KG\",\n label: \"FM0004\",\n },\n {\n value: \"FM0005-KG\",\n label: \"FM0005\",\n },\n {\n value: \"FM0006-KG\",\n label: \"FM0006\",\n },\n {\n value: \"FM0008-KG\",\n label: \"FM0008\",\n },\n {\n value: \"FM0009-KG\",\n label: \"FM0009\",\n },\n {\n value: \"FM0010-KG\",\n label: \"FM0010\",\n },\n {\n value: \"FM0011-KG\",\n label: \"FM0011\",\n },\n {\n value: \"FM0013-KG\",\n label: \"FM0013\",\n },\n {\n value: \"FM0014-KG\",\n label: \"FM0014\",\n },\n {\n value: \"FM0015-KG\",\n label: \"FM0015\",\n },\n {\n value: \"FM0016-KG\",\n label: \"FM0016\",\n },\n {\n value: \"FM0017-KG\",\n label: \"FM0017\",\n },\n {\n value: \"FM0018-KG\",\n label: \"FM0018\",\n },\n {\n value: \"FM0019-KG\",\n label: \"FM0019\",\n },\n {\n value: \"FM0020-KG\",\n label: \"FM0020\",\n },\n {\n value: \"FM0021-KG\",\n label: \"FM0021\",\n },\n {\n value: \"FM0022-KG\",\n label: \"FM0022\",\n },\n {\n value: \"FM0023-KG\",\n label: \"FM0023\",\n },\n {\n value: \"FM0024-KG\",\n label: \"FM0024\",\n },\n {\n value: \"FM0026-KG\",\n label: \"FM0026\",\n },\n {\n value: \"FM0027-KG\",\n label: \"FM0027\",\n },\n {\n value: \"FM0028-KG\",\n label: \"FM0028\",\n },\n {\n value: \"FM0030-KG\",\n label: \"FM0030\",\n },\n {\n value: \"FM0031-KG\",\n label: \"FM0031\",\n },\n {\n value: \"FM0034-KG\",\n label: \"FM0034\",\n },\n {\n value: \"FM0035-KG\",\n label: \"FM0035\",\n },\n {\n value: \"FM0036-KG\",\n label: \"FM0036\",\n },\n {\n value: \"FM0037-KG\",\n label: \"FM0037\",\n },\n {\n value: \"FM0038-KG\",\n label: \"FM0038\",\n },\n {\n value: \"FM0039-KG\",\n label: \"FM0039\",\n },\n {\n value: \"FM0040-KG\",\n label: \"FM0040\",\n },\n {\n value: \"FM0041-KG\",\n label: \"FM0041\",\n },\n {\n value: \"FM0043-KG\",\n label: \"FM0043\",\n },\n {\n value: \"FM0044-KG\",\n label: \"FM0044\",\n },\n {\n value: \"FM0045-KG\",\n label: \"FM0045\",\n },\n {\n value: \"FM0046-KG\",\n label: \"FM0046\",\n },\n {\n value: \"FM0047-KG\",\n label: \"FM0047\",\n },\n {\n value: \"FM0048-KG\",\n label: \"FM0048\",\n },\n {\n value: \"FM0049-KG\",\n label: \"FM0049\",\n },\n {\n value: \"FM0050-KG\",\n label: \"FM0050\",\n },\n {\n value: \"FM0051-KG\",\n label: \"FM0051\",\n },\n {\n value: \"FM0052-KG\",\n label: \"FM0052\",\n },\n {\n value: \"FM0054-KG\",\n label: \"FM0054\",\n },\n {\n value: \"FM0055-KG\",\n label: \"FM0055\",\n },\n {\n value: \"FM0056-KG\",\n label: \"FM0056\",\n },\n {\n value: \"FM0057-KG\",\n label: \"FM0057\",\n },\n {\n value: \"FM0058-KG\",\n label: \"FM0058\",\n },\n {\n value: \"FM0059-KG\",\n label: \"FM0059\",\n },\n {\n value: \"FM0060-KG\",\n label: \"FM0060\",\n },\n {\n value: \"FM0061-KG\",\n label: \"FM0061\",\n },\n {\n value: \"FM0062-KG\",\n label: \"FM0062\",\n },\n {\n value: \"FM0064-KG\",\n label: \"FM0064\",\n },\n {\n value: \"FM0065-KG\",\n label: \"FM0065\",\n },\n {\n value: \"FM0066-KG\",\n label: \"FM0066\",\n },\n {\n value: \"FM0067-KG\",\n label: \"FM0067\",\n },\n {\n value: \"FM0068-KG\",\n label: \"FM0068\",\n },\n {\n value: \"FM0069-KG\",\n label: \"FM0069\",\n },\n {\n value: \"FM0070-KG\",\n label: \"FM0070\",\n },\n {\n value: \"FM0071-KG\",\n label: \"FM0071\",\n },\n {\n value: \"FM0072-KG\",\n label: \"FM0072\",\n },\n {\n value: \"FM0073-KG\",\n label: \"FM0073\",\n },\n {\n value: \"FM0074-KG\",\n label: \"FM0074\",\n },\n {\n value: \"FM0075-KG\",\n label: \"FM0075\",\n },\n {\n value: \"FM0076-KG\",\n label: \"FM0076\",\n },\n {\n value: \"FM0077-KG\",\n label: \"FM0077\",\n },\n {\n value: \"FM0078-KG\",\n label: \"FM0078\",\n },\n {\n value: \"FM0079-KG\",\n label: \"FM0079\",\n },\n {\n value: \"FM0080-KG\",\n label: \"FM0080\",\n },\n {\n value: \"FM0081-KG\",\n label: \"FM0081\",\n },\n {\n value: \"FM0082-KG\",\n label: \"FM0082\",\n },\n {\n value: \"FM0083-KG\",\n label: \"FM0083\",\n },\n {\n value: \"FM0084-KG\",\n label: \"FM0084\",\n },\n {\n value: \"FM0085-KG\",\n label: \"FM0085\",\n },\n {\n value: \"FM0086-KG\",\n label: \"FM0086\",\n },\n {\n value: \"FM0087-KG\",\n label: \"FM0087\",\n },\n {\n value: \"FM0088-KG\",\n label: \"FM0088\",\n },\n {\n value: \"FM0089-KG\",\n label: \"FM0089\",\n },\n {\n value: \"FM0090-KG\",\n label: \"FM0090\",\n },\n {\n value: \"FM0091-KG\",\n label: \"FM0091\",\n },\n {\n value: \"FM0092-KG\",\n label: \"FM0092\",\n },\n {\n value: \"FM0093-KG\",\n label: \"FM0093\",\n },\n {\n value: \"FM0094-KG\",\n label: \"FM0094\",\n },\n {\n value: \"FM0095-KG\",\n label: \"FM0095\",\n },\n {\n value: \"FM0096-KG\",\n label: \"FM0096\",\n },\n {\n value: \"FM0097-KG\",\n label: \"FM0097\",\n },\n {\n value: \"FM0098-KG\",\n label: \"FM0098\",\n },\n {\n value: \"FM0099-KG\",\n label: \"FM0099\",\n },\n {\n value: \"FM0100-KG\",\n label: \"FM0100\",\n },\n {\n value: \"FM0101-KG\",\n label: \"FM0101\",\n },\n {\n value: \"FM0102-KG\",\n label: \"FM0102\",\n },\n {\n value: \"FM0103-KG\",\n label: \"FM0103\",\n },\n {\n value: \"FM0104-KG\",\n label: \"FM0104\",\n },\n {\n value: \"FM0105-KG\",\n label: \"FM0105\",\n },\n {\n value: \"FM0106-KG\",\n label: \"FM0106\",\n },\n {\n value: \"FM0107-KG\",\n label: \"FM0107\",\n },\n {\n value: \"FM0108-KG\",\n label: \"FM0108\",\n },\n {\n value: \"FM0109-KG\",\n label: \"FM0109\",\n },\n {\n value: \"FM0110-KG\",\n label: \"FM0110\",\n },\n {\n value: \"FM0111-KG\",\n label: \"FM0111\",\n },\n {\n value: \"FM0112-KG\",\n label: \"FM0112\",\n },\n {\n value: \"FM0113-KG\",\n label: \"FM0113\",\n },\n {\n value: \"FM0114-KG\",\n label: \"FM0114\",\n },\n {\n value: \"FM0115-KG\",\n label: \"FM0115\",\n },\n {\n value: \"FM0116-KG\",\n label: \"FM0116\",\n },\n {\n value: \"FM0117-KG\",\n label: \"FM0117\",\n },\n {\n value: \"FM0118-KG\",\n label: \"FM0118\",\n },\n {\n value: \"FM0119-KG\",\n label: \"FM0119\",\n },\n {\n value: \"FM0120-KG\",\n label: \"FM0120\",\n },\n {\n value: \"FM0121-KG\",\n label: \"FM0121\",\n },\n {\n value: \"FM0122-KG\",\n label: \"FM0122\",\n },\n {\n value: \"FM0123-KG\",\n label: \"FM0123\",\n },\n {\n value: \"FM0124-KG\",\n label: \"FM0124\",\n },\n {\n value: \"FM0125-KG\",\n label: \"FM0125\",\n },\n {\n value: \"FM0126-KG\",\n label: \"FM0126\",\n },\n {\n value: \"FM0127-KG\",\n label: \"FM0127\",\n },\n {\n value: \"FM0128-KG\",\n label: \"FM0128\",\n },\n {\n value: \"FM0129-KG\",\n label: \"FM0129\",\n },\n {\n value: \"FM0130-KG\",\n label: \"FM0130\",\n },\n {\n value: \"FM0131-KG\",\n label: \"FM0131\",\n },\n {\n value: \"FM0132-KG\",\n label: \"FM0132\",\n },\n {\n value: \"FM0133-KG\",\n label: \"FM0133\",\n },\n {\n value: \"FM0134-KG\",\n label: \"FM0134\",\n },\n {\n value: \"FM0135-KG\",\n label: \"FM0135\",\n },\n {\n value: \"FM0136-KG\",\n label: \"FM0136\",\n },\n {\n value: \"FM0137-KG\",\n label: \"FM0137\",\n },\n {\n value: \"FM0138-KG\",\n label: \"FM0138\",\n },\n {\n value: \"FM0139-KG\",\n label: \"FM0139\",\n },\n {\n value: \"FM0140-KG\",\n label: \"FM0140\",\n },\n {\n value: \"FM0141-KG\",\n label: \"FM0141\",\n },\n {\n value: \"FM0142-KG\",\n label: \"FM0142\",\n },\n {\n value: \"FM0143-KG\",\n label: \"FM0143\",\n },\n {\n value: \"FM0144-KG\",\n label: \"FM0144\",\n },\n {\n value: \"FM0145-KG\",\n label: \"FM0145\",\n },\n {\n value: \"FM0146-KG\",\n label: \"FM0146\",\n },\n {\n value: \"FM0147-KG\",\n label: \"FM0147\",\n },\n {\n value: \"FM0148-KG\",\n label: \"FM0148\",\n },\n {\n value: \"FM0149-KG\",\n label: \"FM0149\",\n },\n {\n value: \"FM0151-KG\",\n label: \"FM0151\",\n },\n {\n value: \"FM0153-KG\",\n label: \"FM0153\",\n },\n {\n value: \"FM0154-KG\",\n label: \"FM0154\",\n },\n {\n value: \"FM0155-KG\",\n label: \"FM0155\",\n },\n {\n value: \"FM0156-KG\",\n label: \"FM0156\",\n },\n {\n value: \"FM0157-KG\",\n label: \"FM0157\",\n },\n {\n value: \"FM0158-KG\",\n label: \"FM0158\",\n },\n {\n value: \"FM0159-KG\",\n label: \"FM0159\",\n },\n {\n value: \"FM0160-KG\",\n label: \"FM0160\",\n },\n {\n value: \"FM0161-KG\",\n label: \"FM0161\",\n },\n {\n value: \"FM0162-KG\",\n label: \"FM0162\",\n },\n {\n value: \"FM0163-KG\",\n label: \"FM0163\",\n },\n {\n value: \"FM0164-KG\",\n label: \"FM0164\",\n },\n {\n value: \"FM0166-KG\",\n label: \"FM0166\",\n },\n {\n value: \"FM0167-KG\",\n label: \"FM0167\",\n },\n {\n value: \"FM0168-KG\",\n label: \"FM0168\",\n },\n {\n value: \"FM0170-KG\",\n label: \"FM0170\",\n },\n {\n value: \"FM0171-KG\",\n label: \"FM0171\",\n },\n {\n value: \"FM0172-KG\",\n label: \"FM0172\",\n },\n {\n value: \"FM0173-KG\",\n label: \"FM0173\",\n },\n {\n value: \"FM0174-KG\",\n label: \"FM0174\",\n },\n {\n value: \"FM0175-KG\",\n label: \"FM0175\",\n },\n {\n value: \"FM0176-KG\",\n label: \"FM0176\",\n },\n {\n value: \"FM0177-KG\",\n label: \"FM0177\",\n },\n {\n value: \"FM0178-KG\",\n label: \"FM0178\",\n },\n {\n value: \"FM0179-KG\",\n label: \"FM0179\",\n },\n {\n value: \"FM0180-KG\",\n label: \"FM0180\",\n },\n {\n value: \"FM0181-KG\",\n label: \"FM0181\",\n },\n {\n value: \"FM0182-KG\",\n label: \"FM0182\",\n },\n {\n value: \"FM0183-KG\",\n label: \"FM0183\",\n },\n {\n value: \"FM0184-KG\",\n label: \"FM0184\",\n },\n {\n value: \"FM0185-KG\",\n label: \"FM0185\",\n },\n {\n value: \"FM0186-KG\",\n label: \"FM0186\",\n },\n {\n value: \"FM0188-KG\",\n label: \"FM0188\",\n },\n {\n value: \"FM0190-KG\",\n label: \"FM0190\",\n },\n {\n value: \"FM0191-KG\",\n label: \"FM0191\",\n },\n {\n value: \"FM0192-KG\",\n label: \"FM0192\",\n },\n {\n value: \"FM0193-KG\",\n label: \"FM0193\",\n },\n {\n value: \"FM0194-KG\",\n label: \"FM0194\",\n },\n {\n value: \"FM0195-KG\",\n label: \"FM0195\",\n },\n {\n value: \"FM0196-KG\",\n label: \"FM0196\",\n },\n {\n value: \"FM0197-KG\",\n label: \"FM0197\",\n },\n {\n value: \"FM0198-KG\",\n label: \"FM0198\",\n },\n {\n value: \"FM0199-KG\",\n label: \"FM0199\",\n },\n {\n value: \"FM0200-KG\",\n label: \"FM0200\",\n },\n {\n value: \"FM0201-KG\",\n label: \"FM0201\",\n },\n {\n value: \"FM0202-KG\",\n label: \"FM0202\",\n },\n {\n value: \"FM0203-KG\",\n label: \"FM0203\",\n },\n {\n value: \"FM0204-KG\",\n label: \"FM0204\",\n },\n {\n value: \"FM0205-KG\",\n label: \"FM0205\",\n },\n {\n value: \"FM0206-KG\",\n label: \"FM0206\",\n },\n {\n value: \"FM0207-KG\",\n label: \"FM0207\",\n },\n {\n value: \"FM0209-KG\",\n label: \"FM0209\",\n },\n {\n value: \"FM0210-KG\",\n label: \"FM0210\",\n },\n {\n value: \"FM0211-KG\",\n label: \"FM0211\",\n },\n {\n value: \"FM0212-KG\",\n label: \"FM0212\",\n },\n {\n value: \"FM0213-KG\",\n label: \"FM0213\",\n },\n {\n value: \"FM0214-KG\",\n label: \"FM0214\",\n },\n {\n value: \"FM0215-KG\",\n label: \"FM0215\",\n },\n {\n value: \"FM0216-KG\",\n label: \"FM0216\",\n },\n {\n value: \"FM0217-KG\",\n label: \"FM0217\",\n },\n {\n value: \"FM0218-KG\",\n label: \"FM0218\",\n },\n {\n value: \"FM0219-KG\",\n label: \"FM0219\",\n },\n {\n value: \"FM0220-KG\",\n label: \"FM0220\",\n },\n {\n value: \"FM0221-KG\",\n label: \"FM0221\",\n },\n {\n value: \"FM0222-KG\",\n label: \"FM0222\",\n },\n {\n value: \"FM0223-KG\",\n label: \"FM0223\",\n },\n {\n value: \"FM0224-KG\",\n label: \"FM0224\",\n },\n {\n value: \"FM0225-KG\",\n label: \"FM0225\",\n },\n {\n value: \"FM0226-KG\",\n label: \"FM0226\",\n },\n {\n value: \"FM0227-KG\",\n label: \"FM0227\",\n },\n {\n value: \"FM0228-KG\",\n label: \"FM0228\",\n },\n {\n value: \"FM0229-KG\",\n label: \"FM0229\",\n },\n {\n value: \"FM0230-KG\",\n label: \"FM0230\",\n },\n {\n value: \"FM0231-KG\",\n label: \"FM0231\",\n },\n {\n value: \"FM0232-KG\",\n label: \"FM0232\",\n },\n {\n value: \"FM0233-KG\",\n label: \"FM0233\",\n },\n {\n value: \"FM0234-KG\",\n label: \"FM0234\",\n },\n {\n value: \"FM0235-KG\",\n label: \"FM0235\",\n },\n {\n value: \"FM0236-KG\",\n label: \"FM0236\",\n },\n {\n value: \"FM0237-KG\",\n label: \"FM0237\",\n },\n {\n value: \"FM0238-KG\",\n label: \"FM0238\",\n },\n {\n value: \"FM0239-KG\",\n label: \"FM0239\",\n },\n {\n value: \"FM0240-KG\",\n label: \"FM0240\",\n },\n {\n value: \"FM0241-KG\",\n label: \"FM0241\",\n },\n {\n value: \"FM0242-KG\",\n label: \"FM0242\",\n },\n {\n value: \"FM0244-KG\",\n label: \"FM0244\",\n },\n {\n value: \"FM0245-KG\",\n label: \"FM0245\",\n },\n {\n value: \"FM0246-KG\",\n label: \"FM0246\",\n },\n {\n value: \"FM0247-KG\",\n label: \"FM0247\",\n },\n {\n value: \"FM0248-KG\",\n label: \"FM0248\",\n },\n {\n value: \"FM0249-KG\",\n label: \"FM0249\",\n },\n {\n value: \"FM0250-KG\",\n label: \"FM0250\",\n },\n {\n value: \"FM0251-KG\",\n label: \"FM0251\",\n },\n {\n value: \"FM0252-KG\",\n label: \"FM0252\",\n },\n {\n value: \"FM0253-KG\",\n label: \"FM0253\",\n },\n {\n value: \"FM0254-KG\",\n label: \"FM0254\",\n },\n {\n value: \"FM0256-KG\",\n label: \"FM0256\",\n },\n {\n value: \"FM0257-KG\",\n label: \"FM0257\",\n },\n {\n value: \"FM0258-KG\",\n label: \"FM0258\",\n },\n {\n value: \"FM0259-KG\",\n label: \"FM0259\",\n },\n {\n value: \"FM0261-KG\",\n label: \"FM0261\",\n },\n {\n value: \"FM0262-KG\",\n label: \"FM0262\",\n },\n {\n value: \"FM0263-KG\",\n label: \"FM0263\",\n },\n {\n value: \"FM0264-KG\",\n label: \"FM0264\",\n },\n {\n value: \"FM0265-KG\",\n label: \"FM0265\",\n },\n {\n value: \"FM0266-KG\",\n label: \"FM0266\",\n },\n {\n value: \"FM0267-KG\",\n label: \"FM0267\",\n },\n {\n value: \"FM0268-KG\",\n label: \"FM0268\",\n },\n {\n value: \"FM0269-KG\",\n label: \"FM0269\",\n },\n {\n value: \"FM0270-KG\",\n label: \"FM0270\",\n },\n {\n value: \"FM0271-KG\",\n label: \"FM0271\",\n },\n {\n value: \"FM0272-KG\",\n label: \"FM0272\",\n },\n {\n value: \"FM0273-KG\",\n label: \"FM0273\",\n },\n {\n value: \"FM0274-KG\",\n label: \"FM0274\",\n },\n {\n value: \"FM0275-KG\",\n label: \"FM0275\",\n },\n {\n value: \"FM0276-KG\",\n label: \"FM0276\",\n },\n {\n value: \"FM0277-KG\",\n label: \"FM0277\",\n },\n {\n value: \"FM0278-KG\",\n label: \"FM0278\",\n },\n {\n value: \"FM0279-KG\",\n label: \"FM0279\",\n },\n {\n value: \"FM0280-KG\",\n label: \"FM0280\",\n },\n {\n value: \"FM0281-KG\",\n label: \"FM0281\",\n },\n {\n value: \"FM0282-KG\",\n label: \"FM0282\",\n },\n {\n value: \"FM0283-KG\",\n label: \"FM0283\",\n },\n {\n value: \"FM0284-KG\",\n label: \"FM0284\",\n },\n {\n value: \"FM0285-KG\",\n label: \"FM0285\",\n },\n {\n value: \"FM0287-KG\",\n label: \"FM0287\",\n },\n {\n value: \"FM0288-KG\",\n label: \"FM0288\",\n },\n {\n value: \"FM0289-KG\",\n label: \"FM0289\",\n },\n {\n value: \"FM0291-KG\",\n label: \"FM0291\",\n },\n {\n value: \"FM0292-KG\",\n label: \"FM0292\",\n },\n {\n value: \"FM0293-KG\",\n label: \"FM0293\",\n },\n {\n value: \"FM0294-KG\",\n label: \"FM0294\",\n },\n {\n value: \"FM0295-KG\",\n label: \"FM0295\",\n },\n {\n value: \"FM0296-KG\",\n label: \"FM0296\",\n },\n {\n value: \"FM0297-KG\",\n label: \"FM0297\",\n },\n {\n value: \"FM0298-KG\",\n label: \"FM0298\",\n },\n {\n value: \"FM0300-KG\",\n label: \"FM0300\",\n },\n {\n value: \"FM0301-KG\",\n label: \"FM0301\",\n },\n {\n value: \"FM0302-KG\",\n label: \"FM0302\",\n },\n {\n value: \"FM0303-KG\",\n label: \"FM0303\",\n },\n {\n value: \"FM0304-KG\",\n label: \"FM0304\",\n },\n {\n value: \"FM0305-KG\",\n label: \"FM0305\",\n },\n {\n value: \"FM0306-KG\",\n label: \"FM0306\",\n },\n {\n value: \"FM0307-KG\",\n label: \"FM0307\",\n },\n {\n value: \"FM0308-KG\",\n label: \"FM0308\",\n },\n {\n value: \"FM0309-KG\",\n label: \"FM0309\",\n },\n {\n value: \"FM0310-KG\",\n label: \"FM0310\",\n },\n {\n value: \"FM0311-KG\",\n label: \"FM0311\",\n },\n {\n value: \"FM0312-KG\",\n label: \"FM0312\",\n },\n {\n value: \"FM0313-KG\",\n label: \"FM0313\",\n },\n {\n value: \"FM0314-KG\",\n label: \"FM0314\",\n },\n {\n value: \"FM0315-KG\",\n label: \"FM0315\",\n },\n {\n value: \"FM0316-KG\",\n label: \"FM0316\",\n },\n {\n value: \"FM0317-KG\",\n label: \"FM0317\",\n },\n {\n value: \"FM0318-KG\",\n label: \"FM0318\",\n },\n {\n value: \"FM0319-KG\",\n label: \"FM0319\",\n },\n {\n value: \"FM0320-KG\",\n label: \"FM0320\",\n },\n {\n value: \"FM0321-KG\",\n label: \"FM0321\",\n },\n {\n value: \"FM0322-KG\",\n label: \"FM0322\",\n },\n {\n value: \"FM0323-KG\",\n label: \"FM0323\",\n },\n {\n value: \"FM0324-KG\",\n label: \"FM0324\",\n },\n {\n value: \"FM0325-KG\",\n label: \"FM0325\",\n },\n {\n value: \"FM0326-KG\",\n label: \"FM0326\",\n },\n {\n value: \"FM0327-KG\",\n label: \"FM0327\",\n },\n {\n value: \"FM0328-KG\",\n label: \"FM0328\",\n },\n {\n value: \"FM0329-KG\",\n label: \"FM0329\",\n },\n {\n value: \"FM0330-KG\",\n label: \"FM0330\",\n },\n {\n value: \"FM0331-KG\",\n label: \"FM0331\",\n },\n {\n value: \"FM0332-KG\",\n label: \"FM0332\",\n },\n {\n value: \"FM0333-KG\",\n label: \"FM0333\",\n },\n {\n value: \"FM0338-KG\",\n label: \"FM0338\",\n },\n {\n value: \"FM0339-KG\",\n label: \"FM0339\",\n },\n {\n value: \"FM0340-KG\",\n label: \"FM0340\",\n },\n {\n value: \"FM0341-KG\",\n label: \"FM0341\",\n },\n {\n value: \"FM0342-KG\",\n label: \"FM0342\",\n },\n {\n value: \"FM0343-KG\",\n label: \"FM0343\",\n },\n {\n value: \"FM0344-KG\",\n label: \"FM0344\",\n },\n {\n value: \"FM0345-KG\",\n label: \"FM0345\",\n },\n {\n value: \"FM0346-KG\",\n label: \"FM0346\",\n },\n {\n value: \"FM0347-KG\",\n label: \"FM0347\",\n },\n {\n value: \"FM0348-KG\",\n label: \"FM0348\",\n },\n {\n value: \"FM0349-KG\",\n label: \"FM0349\",\n },\n {\n value: \"FM0350-KG\",\n label: \"FM0350\",\n },\n {\n value: \"FM0351-KG\",\n label: \"FM0351\",\n },\n {\n value: \"FM0352-KG\",\n label: \"FM0352\",\n },\n {\n value: \"FM0353-KG\",\n label: \"FM0353\",\n },\n {\n value: \"FM0354-KG\",\n label: \"FM0354\",\n },\n {\n value: \"FM0355-KG\",\n label: \"FM0355\",\n },\n {\n value: \"FM0356-KG\",\n label: \"FM0356\",\n },\n {\n value: \"FM0357-KG\",\n label: \"FM0357\",\n },\n {\n value: \"FM0358-KG\",\n label: \"FM0358\",\n },\n {\n value: \"FM0359-KG\",\n label: \"FM0359\",\n },\n {\n value: \"FM0360-KG\",\n label: \"FM0360\",\n },\n {\n value: \"FM0361-KG\",\n label: \"FM0361\",\n },\n {\n value: \"FM0362-KG\",\n label: \"FM0362\",\n },\n {\n value: \"FM0363-KG\",\n label: \"FM0363\",\n },\n {\n value: \"FM0364-KG\",\n label: \"FM0364\",\n },\n {\n value: \"FM0365-KG\",\n label: \"FM0365\",\n },\n {\n value: \"FM0366-KG\",\n label: \"FM0366\",\n },\n {\n value: \"FM0367-KG\",\n label: \"FM0367\",\n },\n {\n value: \"FM0368-KG\",\n label: \"FM0368\",\n },\n {\n value: \"FM0369-KG\",\n label: \"FM0369\",\n },\n {\n value: \"FM0370-KG\",\n label: \"FM0370\",\n },\n {\n value: \"FM0371-KG\",\n label: \"FM0371\",\n },\n {\n value: \"FM0372-KG\",\n label: \"FM0372\",\n },\n {\n value: \"FM0373-KG\",\n label: \"FM0373\",\n },\n {\n value: \"FM0374-KG\",\n label: \"FM0374\",\n },\n {\n value: \"FM0375-KG\",\n label: \"FM0375\",\n },\n {\n value: \"FM0376-KG\",\n label: \"FM0376\",\n },\n {\n value: \"FM0377-KG\",\n label: \"FM0377\",\n },\n {\n value: \"FM0378-KG\",\n label: \"FM0378\",\n },\n {\n value: \"FM0379-KG\",\n label: \"FM0379\",\n },\n {\n value: \"FM0380-KG\",\n label: \"FM0380\",\n },\n {\n value: \"FM0381-KG\",\n label: \"FM0381\",\n },\n {\n value: \"FM0382-KG\",\n label: \"FM0382\",\n },\n {\n value: \"FM0383-KG\",\n label: \"FM0383\",\n },\n {\n value: \"FM0384-KG\",\n label: \"FM0384\",\n },\n {\n value: \"FM0387-KG\",\n label: \"FM0387\",\n },\n {\n value: \"FM0388-KG\",\n label: \"FM0388\",\n },\n {\n value: \"FM0389-KG\",\n label: \"FM0389\",\n },\n {\n value: \"FM0390-KG\",\n label: \"FM0390\",\n },\n {\n value: \"FM0391-KG\",\n label: \"FM0391\",\n },\n {\n value: \"FM0392-KG\",\n label: \"FM0392\",\n },\n {\n value: \"FM0393-KG\",\n label: \"FM0393\",\n },\n {\n value: \"FM0394-KG\",\n label: \"FM0394\",\n },\n {\n value: \"FM0395-KG\",\n label: \"FM0395\",\n },\n {\n value: \"FM0396-KG\",\n label: \"FM0396\",\n },\n {\n value: \"FM0397-KG\",\n label: \"FM0397\",\n },\n {\n value: \"FM0398-KG\",\n label: \"FM0398\",\n },\n {\n value: \"FM0399-KG\",\n label: \"FM0399\",\n },\n {\n value: \"FM0400-KG\",\n label: \"FM0400\",\n },\n {\n value: \"FM0401-KG\",\n label: \"FM0401\",\n },\n {\n value: \"FM0402-KG\",\n label: \"FM0402\",\n },\n {\n value: \"FM0403-KG\",\n label: \"FM0403\",\n },\n {\n value: \"FM0405-KG\",\n label: \"FM0405\",\n },\n {\n value: \"FM0406-KG\",\n label: \"FM0406\",\n },\n {\n value: \"FM0407-KG\",\n label: \"FM0407\",\n },\n {\n value: \"FM0408-KG\",\n label: \"FM0408\",\n },\n {\n value: \"FM0409-KG\",\n label: \"FM0409\",\n },\n {\n value: \"FM0410-KG\",\n label: \"FM0410\",\n },\n {\n value: \"FM0411-KG\",\n label: \"FM0411\",\n },\n {\n value: \"FM0412-KG\",\n label: \"FM0412\",\n },\n {\n value: \"FM0413-KG\",\n label: \"FM0413\",\n },\n {\n value: \"FM0414-KG\",\n label: \"FM0414\",\n },\n {\n value: \"FM0415-KG\",\n label: \"FM0415\",\n },\n {\n value: \"FM0416-KG\",\n label: \"FM0416\",\n },\n {\n value: \"FM0417-KG\",\n label: \"FM0417\",\n },\n {\n value: \"FM0418-KG\",\n label: \"FM0418\",\n },\n {\n value: \"FM0419-KG\",\n label: \"FM0419\",\n },\n {\n value: \"FM0420-KG\",\n label: \"FM0420\",\n },\n {\n value: \"FM0421-KG\",\n label: \"FM0421\",\n },\n {\n value: \"FM0422-KG\",\n label: \"FM0422\",\n },\n {\n value: \"FM0423-KG\",\n label: \"FM0423\",\n },\n {\n value: \"FM0424-KG\",\n label: \"FM0424\",\n },\n {\n value: \"FM0425-KG\",\n label: \"FM0425\",\n },\n {\n value: \"FM0426-KG\",\n label: \"FM0426\",\n },\n {\n value: \"FM0427-KG\",\n label: \"FM0427\",\n },\n {\n value: \"FM0428-KG\",\n label: \"FM0428\",\n },\n {\n value: \"FM0429-KG\",\n label: \"FM0429\",\n },\n {\n value: \"FM0430-KG\",\n label: \"FM0430\",\n },\n {\n value: \"FM0431-KG\",\n label: \"FM0431\",\n },\n {\n value: \"FM0432-KG\",\n label: \"FM0432\",\n },\n {\n value: \"FM0433-KG\",\n label: \"FM0433\",\n },\n {\n value: \"FM0434-KG\",\n label: \"FM0434\",\n },\n {\n value: \"FM0435-KG\",\n label: \"FM0435\",\n },\n {\n value: \"FM0436-KG\",\n label: \"FM0436\",\n },\n {\n value: \"FM0437-KG\",\n label: \"FM0437\",\n },\n {\n value: \"FM0438-KG\",\n label: \"FM0438\",\n },\n {\n value: \"FM0439-KG\",\n label: \"FM0439\",\n },\n {\n value: \"FM0440-KG\",\n label: \"FM0440\",\n },\n {\n value: \"FM0441-KG\",\n label: \"FM0441\",\n },\n {\n value: \"FM0442-KG\",\n label: \"FM0442\",\n },\n {\n value: \"FM0443-KG\",\n label: \"FM0443\",\n },\n {\n value: \"FM0444-KG\",\n label: \"FM0444\",\n },\n {\n value: \"FM0445-KG\",\n label: \"FM0445\",\n },\n {\n value: \"FM0446-KG\",\n label: \"FM0446\",\n },\n {\n value: \"FM0447-KG\",\n label: \"FM0447\",\n },\n {\n value: \"FM0448-KG\",\n label: \"FM0448\",\n },\n {\n value: \"FM0449-KG\",\n label: \"FM0449\",\n },\n {\n value: \"FM0450-KG\",\n label: \"FM0450\",\n },\n {\n value: \"FM0451-KG\",\n label: \"FM0451\",\n },\n {\n value: \"FM0452-KG\",\n label: \"FM0452\",\n },\n {\n value: \"FM0453-KG\",\n label: \"FM0453\",\n },\n {\n value: \"FM0455-KG\",\n label: \"FM0455\",\n },\n {\n value: \"FM0456-KG\",\n label: \"FM0456\",\n },\n {\n value: \"FM0457-KG\",\n label: \"FM0457\",\n },\n {\n value: \"FM0458-KG\",\n label: \"FM0458\",\n },\n {\n value: \"FM0459-KG\",\n label: \"FM0459\",\n },\n {\n value: \"FM0460-KG\",\n label: \"FM0460\",\n },\n {\n value: \"FM0461-KG\",\n label: \"FM0461\",\n },\n {\n value: \"FM0462-KG\",\n label: \"FM0462\",\n },\n {\n value: \"FM0463-KG\",\n label: \"FM0463\",\n },\n {\n value: \"FM0464-KG\",\n label: \"FM0464\",\n },\n {\n value: \"FM0465-KG\",\n label: \"FM0465\",\n },\n {\n value: \"FM0466-KG\",\n label: \"FM0466\",\n },\n {\n value: \"FM0467-KG\",\n label: \"FM0467\",\n },\n {\n value: \"FM0468-KG\",\n label: \"FM0468\",\n },\n {\n value: \"FM0469-KG\",\n label: \"FM0469\",\n },\n {\n value: \"FM0470-KG\",\n label: \"FM0470\",\n },\n {\n value: \"FM0471-KG\",\n label: \"FM0471\",\n },\n {\n value: \"FM0472-KG\",\n label: \"FM0472\",\n },\n {\n value: \"FM0475-KG\",\n label: \"FM0475\",\n },\n {\n value: \"FM0476-KG\",\n label: \"FM0476\",\n },\n {\n value: \"FM0477-KG\",\n label: \"FM0477\",\n },\n {\n value: \"FM0478-KG\",\n label: \"FM0478\",\n },\n {\n value: \"FM0481-KG\",\n label: \"FM0481\",\n },\n {\n value: \"FM0482-KG\",\n label: \"FM0482\",\n },\n {\n value: \"FM0485-KG\",\n label: \"FM0485\",\n },\n {\n value: \"FM0486-KG\",\n label: \"FM0486\",\n },\n {\n value: \"FM0487-KG\",\n label: \"FM0487\",\n },\n {\n value: \"FM0488-KG\",\n label: \"FM0488\",\n },\n {\n value: \"FM0489-KG\",\n label: \"FM0489\",\n },\n {\n value: \"FM0490-KG\",\n label: \"FM0490\",\n },\n {\n value: \"FM0491-KG\",\n label: \"FM0491\",\n },\n {\n value: \"FM0492-KG\",\n label: \"FM0492\",\n },\n {\n value: \"FM0493-KG\",\n label: \"FM0493\",\n },\n {\n value: \"FM0494-KG\",\n label: \"FM0494\",\n },\n {\n value: \"FM0496-KG\",\n label: \"FM0496\",\n },\n {\n value: \"FM0498-KG\",\n label: \"FM0498\",\n },\n {\n value: \"FM0499-KG\",\n label: \"FM0499\",\n },\n {\n value: \"FM0500-KG\",\n label: \"FM0500\",\n },\n {\n value: \"FM0502-KG\",\n label: \"FM0502\",\n },\n {\n value: \"FM0503-KG\",\n label: \"FM0503\",\n },\n {\n value: \"FM0504-KG\",\n label: \"FM0504\",\n },\n {\n value: \"FM0506-KG\",\n label: \"FM0506\",\n },\n {\n value: \"FM0507-KG\",\n label: \"FM0507\",\n },\n {\n value: \"FM0508-KG\",\n label: \"FM0508\",\n },\n {\n value: \"FM0509-KG\",\n label: \"FM0509\",\n },\n {\n value: \"FM0510-KG\",\n label: \"FM0510\",\n },\n {\n value: \"FM0511-KG\",\n label: \"FM0511\",\n },\n {\n value: \"FM0512-KG\",\n label: \"FM0512\",\n },\n {\n value: \"FM0513-KG\",\n label: \"FM0513\",\n },\n {\n value: \"FM0514-KG\",\n label: \"FM0514\",\n },\n {\n value: \"FM0515-KG\",\n label: \"FM0515\",\n },\n {\n value: \"FM0516-KG\",\n label: \"FM0516\",\n },\n {\n value: \"FM0517-KG\",\n label: \"FM0517\",\n },\n {\n value: \"FM0518-KG\",\n label: \"FM0518\",\n },\n {\n value: \"FM0519-KG\",\n label: \"FM0519\",\n },\n {\n value: \"FM0520-KG\",\n label: \"FM0520\",\n },\n {\n value: \"FM0521-KG\",\n label: \"FM0521\",\n },\n {\n value: \"FM0522-KG\",\n label: \"FM0522\",\n },\n {\n value: \"FM0523-KG\",\n label: \"FM0523\",\n },\n {\n value: \"FM0524-KG\",\n label: \"FM0524\",\n },\n {\n value: \"FM0525-KG\",\n label: \"FM0525\",\n },\n {\n value: \"FM0526-KG\",\n label: \"FM0526\",\n },\n {\n value: \"FM0528-KG\",\n label: \"FM0528\",\n },\n {\n value: \"FM0529-KG\",\n label: \"FM0529\",\n },\n {\n value: \"FM0530-KG\",\n label: \"FM0530\",\n },\n {\n value: \"FM0531-KG\",\n label: \"FM0531\",\n },\n {\n value: \"FM0532-KG\",\n label: \"FM0532\",\n },\n {\n value: \"FM0533-KG\",\n label: \"FM0533\",\n },\n {\n value: \"FM0534-KG\",\n label: \"FM0534\",\n },\n {\n value: \"FM0535-KG\",\n label: \"FM0535\",\n },\n {\n value: \"FM0536-KG\",\n label: \"FM0536\",\n },\n {\n value: \"FM0537-KG\",\n label: \"FM0537\",\n },\n {\n value: \"FM0538-KG\",\n label: \"FM0538\",\n },\n {\n value: \"FM0539-KG\",\n label: \"FM0539\",\n },\n {\n value: \"FM0540-KG\",\n label: \"FM0540\",\n },\n {\n value: \"FM0541-KG\",\n label: \"FM0541\",\n },\n {\n value: \"FM0542-KG\",\n label: \"FM0542\",\n },\n {\n value: \"FM0543-KG\",\n label: \"FM0543\",\n },\n {\n value: \"FM0544-KG\",\n label: \"FM0544\",\n },\n {\n value: \"FM0545-KG\",\n label: \"FM0545\",\n },\n {\n value: \"FM0546-KG\",\n label: \"FM0546\",\n },\n {\n value: \"FM0547-KG\",\n label: \"FM0547\",\n },\n {\n value: \"FM0548-KG\",\n label: \"FM0548\",\n },\n {\n value: \"FM0549-KG\",\n label: \"FM0549\",\n },\n {\n value: \"FM0550-KG\",\n label: \"FM0550\",\n },\n {\n value: \"FM0551-KG\",\n label: \"FM0551\",\n },\n {\n value: \"FM0552-KG\",\n label: \"FM0552\",\n },\n {\n value: \"FM0553-KG\",\n label: \"FM0553\",\n },\n {\n value: \"FM0554-KG\",\n label: \"FM0554\",\n },\n {\n value: \"FM0555-KG\",\n label: \"FM0555\",\n },\n {\n value: \"FM0556-KG\",\n label: \"FM0556\",\n },\n {\n value: \"FM0557-KG\",\n label: \"FM0557\",\n },\n {\n value: \"FM0558-KG\",\n label: \"FM0558\",\n },\n {\n value: \"FM0559-KG\",\n label: \"FM0559\",\n },\n {\n value: \"FM0560-KG\",\n label: \"FM0560\",\n },\n {\n value: \"FM0561-KG\",\n label: \"FM0561\",\n },\n {\n value: \"FM0562-KG\",\n label: \"FM0562\",\n },\n {\n value: \"FM0563-KG\",\n label: \"FM0563\",\n },\n {\n value: \"FM0565-KG\",\n label: \"FM0565\",\n },\n {\n value: \"FM0566-KG\",\n label: \"FM0566\",\n },\n {\n value: \"FM0567-KG\",\n label: \"FM0567\",\n },\n {\n value: \"FM0568-KG\",\n label: \"FM0568\",\n },\n {\n value: \"FM0569-KG\",\n label: \"FM0569\",\n },\n {\n value: \"FM0570-KG\",\n label: \"FM0570\",\n },\n {\n value: \"FM0571-KG\",\n label: \"FM0571\",\n },\n {\n value: \"FM0572-KG\",\n label: \"FM0572\",\n },\n {\n value: \"FM0573-KG\",\n label: \"FM0573\",\n },\n {\n value: \"FM0574-KG\",\n label: \"FM0574\",\n },\n {\n value: \"FM0575-KG\",\n label: \"FM0575\",\n },\n {\n value: \"FM0576-KG\",\n label: \"FM0576\",\n },\n {\n value: \"FM0577-KG\",\n label: \"FM0577\",\n },\n {\n value: \"FM0578-KG\",\n label: \"FM0578\",\n },\n {\n value: \"FM0579-KG\",\n label: \"FM0579\",\n },\n {\n value: \"FM0580-KG\",\n label: \"FM0580\",\n },\n {\n value: \"FM0581-KG\",\n label: \"FM0581\",\n },\n {\n value: \"FM0582-KG\",\n label: \"FM0582\",\n },\n {\n value: \"FM0583-KG\",\n label: \"FM0583\",\n },\n {\n value: \"FM0585-KG\",\n label: \"FM0585\",\n },\n {\n value: \"FM0586-KG\",\n label: \"FM0586\",\n },\n {\n value: \"FM0587-KG\",\n label: \"FM0587\",\n },\n {\n value: \"FM0588-KG\",\n label: \"FM0588\",\n },\n {\n value: \"FM0589-KG\",\n label: \"FM0589\",\n },\n {\n value: \"FM0590-KG\",\n label: \"FM0590\",\n },\n {\n value: \"FM0591-KG\",\n label: \"FM0591\",\n },\n {\n value: \"FM0592-KG\",\n label: \"FM0592\",\n },\n {\n value: \"FM0593-KG\",\n label: \"FM0593\",\n },\n {\n value: \"FM0594-KG\",\n label: \"FM0594\",\n },\n {\n value: \"FM0595-KG\",\n label: \"FM0595\",\n },\n {\n value: \"FM0596-KG\",\n label: \"FM0596\",\n },\n {\n value: \"FM0597-KG\",\n label: \"FM0597\",\n },\n {\n value: \"FM0598-KG\",\n label: \"FM0598\",\n },\n {\n value: \"FM0599-KG\",\n label: \"FM0599\",\n },\n {\n value: \"FM0600-KG\",\n label: \"FM0600\",\n },\n {\n value: \"FM0601-KG\",\n label: \"FM0601\",\n },\n {\n value: \"FM0602-KG\",\n label: \"FM0602\",\n },\n {\n value: \"FM0603-KG\",\n label: \"FM0603\",\n },\n {\n value: \"FM0604-KG\",\n label: \"FM0604\",\n },\n {\n value: \"FM0605-KG\",\n label: \"FM0605\",\n },\n {\n value: \"FM0606-KG\",\n label: \"FM0606\",\n },\n {\n value: \"FM0607-KG\",\n label: \"FM0607\",\n },\n {\n value: \"FM0608-KG\",\n label: \"FM0608\",\n },\n {\n value: \"FM0609-KG\",\n label: \"FM0609\",\n },\n {\n value: \"FM0610-KG\",\n label: \"FM0610\",\n },\n {\n value: \"FM0611-KG\",\n label: \"FM0611\",\n },\n {\n value: \"FM0612-KG\",\n label: \"FM0612\",\n },\n {\n value: \"FM0613-KG\",\n label: \"FM0613\",\n },\n {\n value: \"FM0614-KG\",\n label: \"FM0614\",\n },\n {\n value: \"FM0615-KG\",\n label: \"FM0615\",\n },\n {\n value: \"FM0616-KG\",\n label: \"FM0616\",\n },\n {\n value: \"FM0617-KG\",\n label: \"FM0617\",\n },\n {\n value: \"FM0618-KG\",\n label: \"FM0618\",\n },\n {\n value: \"FM0619-KG\",\n label: \"FM0619\",\n },\n {\n value: \"FM0621-KG\",\n label: \"FM0621\",\n },\n {\n value: \"FM0622-KG\",\n label: \"FM0622\",\n },\n {\n value: \"FM0623-KG\",\n label: \"FM0623\",\n },\n {\n value: \"FM0624-KG\",\n label: \"FM0624\",\n },\n {\n value: \"FM0625-KG\",\n label: \"FM0625\",\n },\n {\n value: \"FM0626-KG\",\n label: \"FM0626\",\n },\n {\n value: \"FM0627-KG\",\n label: \"FM0627\",\n },\n {\n value: \"FM0629-KG\",\n label: \"FM0629\",\n },\n {\n value: \"FM0630-KG\",\n label: \"FM0630\",\n },\n {\n value: \"FM0631-KG\",\n label: \"FM0631\",\n },\n {\n value: \"FM0632-KG\",\n label: \"FM0632\",\n },\n {\n value: \"FM0633-KG\",\n label: \"FM0633\",\n },\n {\n value: \"FM0634-KG\",\n label: \"FM0634\",\n },\n {\n value: \"FM0635-KG\",\n label: \"FM0635\",\n },\n {\n value: \"FM0636-KG\",\n label: \"FM0636\",\n },\n {\n value: \"FM0637-KG\",\n label: \"FM0637\",\n },\n {\n value: \"FM0638-KG\",\n label: \"FM0638\",\n },\n {\n value: \"FM0639-KG\",\n label: \"FM0639\",\n },\n {\n value: \"FM0640-KG\",\n label: \"FM0640\",\n },\n {\n value: \"FM0641-KG\",\n label: \"FM0641\",\n },\n {\n value: \"FM0642-KG\",\n label: \"FM0642\",\n },\n {\n value: \"FM0643-KG\",\n label: \"FM0643\",\n },\n {\n value: \"FM0644-KG\",\n label: \"FM0644\",\n },\n {\n value: \"FM0645-KG\",\n label: \"FM0645\",\n },\n {\n value: \"FM0646-KG\",\n label: \"FM0646\",\n },\n {\n value: \"FM0647-KG\",\n label: \"FM0647\",\n },\n {\n value: \"FM0649-KG\",\n label: \"FM0649\",\n },\n {\n value: \"FM0650-KG\",\n label: \"FM0650\",\n },\n {\n value: \"FM0651-KG\",\n label: \"FM0651\",\n },\n {\n value: \"FM0653-KG\",\n label: \"FM0653\",\n },\n {\n value: \"FM0654-KG\",\n label: \"FM0654\",\n },\n {\n value: \"FM0655-KG\",\n label: \"FM0655\",\n },\n {\n value: \"FM0656-KG\",\n label: \"FM0656\",\n },\n {\n value: \"FM0657-KG\",\n label: \"FM0657\",\n },\n {\n value: \"FM0658-KG\",\n label: \"FM0658\",\n },\n {\n value: \"FM0659-KG\",\n label: \"FM0659\",\n },\n {\n value: \"FM0660-KG\",\n label: \"FM0660\",\n },\n {\n value: \"FM0661-KG\",\n label: \"FM0661\",\n },\n {\n value: \"FM0662-KG\",\n label: \"FM0662\",\n },\n {\n value: \"FM0663-KG\",\n label: \"FM0663\",\n },\n {\n value: \"FM0664-KG\",\n label: \"FM0664\",\n },\n {\n value: \"FM0665-KG\",\n label: \"FM0665\",\n },\n {\n value: \"FM0666-KG\",\n label: \"FM0666\",\n },\n {\n value: \"FM0667-KG\",\n label: \"FM0667\",\n },\n {\n value: \"FM0668-KG\",\n label: \"FM0668\",\n },\n {\n value: \"FM0669-KG\",\n label: \"FM0669\",\n },\n {\n value: \"FM0670-KG\",\n label: \"FM0670\",\n },\n {\n value: \"FM0671-KG\",\n label: \"FM0671\",\n },\n {\n value: \"FM0672-KG\",\n label: \"FM0672\",\n },\n {\n value: \"FM0673-KG\",\n label: \"FM0673\",\n },\n {\n value: \"FM0675-KG\",\n label: \"FM0675\",\n },\n {\n value: \"FM0676-KG\",\n label: \"FM0676\",\n },\n {\n value: \"FM0677-KG\",\n label: \"FM0677\",\n },\n {\n value: \"FM0678-KG\",\n label: \"FM0678\",\n },\n {\n value: \"FM0679-KG\",\n label: \"FM0679\",\n },\n {\n value: \"FM0680-KG\",\n label: \"FM0680\",\n },\n {\n value: \"FM0681-KG\",\n label: \"FM0681\",\n },\n {\n value: \"FM0682-KG\",\n label: \"FM0682\",\n },\n {\n value: \"FM0683-KG\",\n label: \"FM0683\",\n },\n {\n value: \"FM0684-KG\",\n label: \"FM0684\",\n },\n {\n value: \"FM0685-KG\",\n label: \"FM0685\",\n },\n {\n value: \"FM0686-KG\",\n label: \"FM0686\",\n },\n {\n value: \"FM0688-KG\",\n label: \"FM0688\",\n },\n {\n value: \"FM0689-KG\",\n label: \"FM0689\",\n },\n {\n value: \"FM0691-KG\",\n label: \"FM0691\",\n },\n {\n value: \"FM0692-KG\",\n label: \"FM0692\",\n },\n {\n value: \"FM0694-KG\",\n label: \"FM0694\",\n },\n {\n value: \"FM0695-KG\",\n label: \"FM0695\",\n },\n {\n value: \"FM0696-KG\",\n label: \"FM0696\",\n },\n {\n value: \"FM0697-KG\",\n label: \"FM0697\",\n },\n {\n value: \"FM0698-KG\",\n label: \"FM0698\",\n },\n {\n value: \"FM0699-KG\",\n label: \"FM0699\",\n },\n {\n value: \"FM0700-KG\",\n label: \"FM0700\",\n },\n {\n value: \"FM0701-KG\",\n label: \"FM0701\",\n },\n {\n value: \"FM0702-KG\",\n label: \"FM0702\",\n },\n {\n value: \"FM0704-KG\",\n label: \"FM0704\",\n },\n {\n value: \"FM0705-KG\",\n label: \"FM0705\",\n },\n {\n value: \"FM0706-KG\",\n label: \"FM0706\",\n },\n {\n value: \"FM0707-KG\",\n label: \"FM0707\",\n },\n {\n value: \"FM0708-KG\",\n label: \"FM0708\",\n },\n {\n value: \"FM0709-KG\",\n label: \"FM0709\",\n },\n {\n value: \"FM0710-KG\",\n label: \"FM0710\",\n },\n {\n value: \"FM0711-KG\",\n label: \"FM0711\",\n },\n {\n value: \"FM0712-KG\",\n label: \"FM0712\",\n },\n {\n value: \"FM0713-KG\",\n label: \"FM0713\",\n },\n {\n value: \"FM0714-KG\",\n label: \"FM0714\",\n },\n {\n value: \"FM0715-KG\",\n label: \"FM0715\",\n },\n {\n value: \"FM0716-KG\",\n label: \"FM0716\",\n },\n {\n value: \"FM0717-KG\",\n label: \"FM0717\",\n },\n {\n value: \"FM0718-KG\",\n label: \"FM0718\",\n },\n {\n value: \"FM0719-KG\",\n label: \"FM0719\",\n },\n {\n value: \"FM0720-KG\",\n label: \"FM0720\",\n },\n {\n value: \"FM0721-KG\",\n label: \"FM0721\",\n },\n {\n value: \"FM0722-KG\",\n label: \"FM0722\",\n },\n {\n value: \"FM0723-KG\",\n label: \"FM0723\",\n },\n {\n value: \"FM0724-KG\",\n label: \"FM0724\",\n },\n {\n value: \"FM0725-KG\",\n label: \"FM0725\",\n },\n {\n value: \"FM0726-KG\",\n label: \"FM0726\",\n },\n {\n value: \"FM0727-KG\",\n label: \"FM0727\",\n },\n {\n value: \"FM0728-KG\",\n label: \"FM0728\",\n },\n {\n value: \"FM0729-KG\",\n label: \"FM0729\",\n },\n {\n value: \"FM0730-KG\",\n label: \"FM0730\",\n },\n {\n value: \"FM0731-KG\",\n label: \"FM0731\",\n },\n {\n value: \"FM0732-KG\",\n label: \"FM0732\",\n },\n {\n value: \"FM0733-KG\",\n label: \"FM0733\",\n },\n {\n value: \"FM0734-KG\",\n label: \"FM0734\",\n },\n {\n value: \"FM0735-KG\",\n label: \"FM0735\",\n },\n {\n value: \"FM0736-KG\",\n label: \"FM0736\",\n },\n {\n value: \"FM0738-KG\",\n label: \"FM0738\",\n },\n {\n value: \"FM0739-KG\",\n label: \"FM0739\",\n },\n {\n value: \"FM0740-KG\",\n label: \"FM0740\",\n },\n {\n value: \"FM0741-KG\",\n label: \"FM0741\",\n },\n {\n value: \"FM0742-KG\",\n label: \"FM0742\",\n },\n {\n value: \"FM0743-KG\",\n label: \"FM0743\",\n },\n {\n value: \"FM0744-KG\",\n label: \"FM0744\",\n },\n {\n value: \"FM0745-KG\",\n label: \"FM0745\",\n },\n {\n value: \"FM0746-KG\",\n label: \"FM0746\",\n },\n {\n value: \"FM0747-KG\",\n label: \"FM0747\",\n },\n {\n value: \"FM0748-KG\",\n label: \"FM0748\",\n },\n {\n value: \"FM0749-KG\",\n label: \"FM0749\",\n },\n {\n value: \"FM0750-KG\",\n label: \"FM0750\",\n },\n {\n value: \"FM0751-KG\",\n label: \"FM0751\",\n },\n {\n value: \"FM0752-KG\",\n label: \"FM0752\",\n },\n {\n value: \"FM0753-KG\",\n label: \"FM0753\",\n },\n {\n value: \"FM0754-KG\",\n label: \"FM0754\",\n },\n {\n value: \"FM0755-KG\",\n label: \"FM0755\",\n },\n {\n value: \"FM0756-KG\",\n label: \"FM0756\",\n },\n {\n value: \"FM0757-KG\",\n label: \"FM0757\",\n },\n {\n value: \"FM0758-KG\",\n label: \"FM0758\",\n },\n {\n value: \"FM0759-KG\",\n label: \"FM0759\",\n },\n {\n value: \"FM0760-KG\",\n label: \"FM0760\",\n },\n {\n value: \"FM0761-KG\",\n label: \"FM0761\",\n },\n {\n value: \"FM0762-KG\",\n label: \"FM0762\",\n },\n {\n value: \"FM0763-KG\",\n label: \"FM0763\",\n },\n {\n value: \"FM0764-KG\",\n label: \"FM0764\",\n },\n {\n value: \"FM0765-KG\",\n label: \"FM0765\",\n },\n {\n value: \"FM0766-KG\",\n label: \"FM0766\",\n },\n {\n value: \"FM0767-KG\",\n label: \"FM0767\",\n },\n {\n value: \"FM0768-KG\",\n label: \"FM0768\",\n },\n {\n value: \"FM0769-KG\",\n label: \"FM0769\",\n },\n {\n value: \"FM0770-KG\",\n label: \"FM0770\",\n },\n {\n value: \"FM0771-KG\",\n label: \"FM0771\",\n },\n {\n value: \"FM0772-KG\",\n label: \"FM0772\",\n },\n {\n value: \"FM0773-KG\",\n label: \"FM0773\",\n },\n {\n value: \"FM0774-KG\",\n label: \"FM0774\",\n },\n {\n value: \"FM0775-KG\",\n label: \"FM0775\",\n },\n {\n value: \"FM0776-KG\",\n label: \"FM0776\",\n },\n {\n value: \"FM0777-KG\",\n label: \"FM0777\",\n },\n {\n value: \"FM0778-KG\",\n label: \"FM0778\",\n },\n {\n value: \"FM0779-KG\",\n label: \"FM0779\",\n },\n {\n value: \"FM0780-KG\",\n label: \"FM0780\",\n },\n {\n value: \"FM0782-KG\",\n label: \"FM0782\",\n },\n {\n value: \"FM0784-KG\",\n label: \"FM0784\",\n },\n {\n value: \"FM0785-KG\",\n label: \"FM0785\",\n },\n {\n value: \"FM0786-KG\",\n label: \"FM0786\",\n },\n {\n value: \"FM0787-KG\",\n label: \"FM0787\",\n },\n {\n value: \"FM0788-KG\",\n label: \"FM0788\",\n },\n {\n value: \"FM0789-KG\",\n label: \"FM0789\",\n },\n {\n value: \"FM0790-KG\",\n label: \"FM0790\",\n },\n {\n value: \"FM0791-KG\",\n label: \"FM0791\",\n },\n {\n value: \"FM0792-KG\",\n label: \"FM0792\",\n },\n {\n value: \"FM0793-KG\",\n label: \"FM0793\",\n },\n {\n value: \"FM0794-KG\",\n label: \"FM0794\",\n },\n {\n value: \"FM0795-KG\",\n label: \"FM0795\",\n },\n {\n value: \"FM0796-KG\",\n label: \"FM0796\",\n },\n {\n value: \"FM0797-KG\",\n label: \"FM0797\",\n },\n {\n value: \"FM0798-KG\",\n label: \"FM0798\",\n },\n {\n value: \"FM0799-KG\",\n label: \"FM0799\",\n },\n {\n value: \"FM0800-KG\",\n label: \"FM0800\",\n },\n {\n value: \"FM0801-KG\",\n label: \"FM0801\",\n },\n {\n value: \"FM0802-KG\",\n label: \"FM0802\",\n },\n {\n value: \"FM0803-KG\",\n label: \"FM0803\",\n },\n {\n value: \"FM0804-KG\",\n label: \"FM0804\",\n },\n {\n value: \"FM0805-KG\",\n label: \"FM0805\",\n },\n {\n value: \"FM0806-KG\",\n label: \"FM0806\",\n },\n {\n value: \"FM0807-KG\",\n label: \"FM0807\",\n },\n {\n value: \"FM0809-KG\",\n label: \"FM0809\",\n },\n {\n value: \"FM0810-KG\",\n label: \"FM0810\",\n },\n {\n value: \"FM0811-KG\",\n label: \"FM0811\",\n },\n {\n value: \"FM0812-KG\",\n label: \"FM0812\",\n },\n {\n value: \"FM0813-KG\",\n label: \"FM0813\",\n },\n {\n value: \"FM0814-KG\",\n label: \"FM0814\",\n },\n {\n value: \"FM0815-KG\",\n label: \"FM0815\",\n },\n {\n value: \"FM0816-KG\",\n label: \"FM0816\",\n },\n {\n value: \"FM0817-KG\",\n label: \"FM0817\",\n },\n {\n value: \"FM0818-KG\",\n label: \"FM0818\",\n },\n {\n value: \"FM0819-KG\",\n label: \"FM0819\",\n },\n {\n value: \"FM0820-KG\",\n label: \"FM0820\",\n },\n {\n value: \"FM0821-KG\",\n label: \"FM0821\",\n },\n {\n value: \"FM0822-KG\",\n label: \"FM0822\",\n },\n {\n value: \"FM0824-KG\",\n label: \"FM0824\",\n },\n {\n value: \"FM0825-KG\",\n label: \"FM0825\",\n },\n {\n value: \"FM0826-KG\",\n label: \"FM0826\",\n },\n {\n value: \"FM0827-KG\",\n label: \"FM0827\",\n },\n {\n value: \"FM0828-KG\",\n label: \"FM0828\",\n },\n {\n value: \"FM0829-KG\",\n label: \"FM0829\",\n },\n {\n value: \"FM0830-KG\",\n label: \"FM0830\",\n },\n {\n value: \"FM0831-KG\",\n label: \"FM0831\",\n },\n {\n value: \"FM0832-KG\",\n label: \"FM0832\",\n },\n {\n value: \"FM0833-KG\",\n label: \"FM0833\",\n },\n {\n value: \"FM0834-KG\",\n label: \"FM0834\",\n },\n {\n value: \"FM0835-KG\",\n label: \"FM0835\",\n },\n {\n value: \"FM0836-KG\",\n label: \"FM0836\",\n },\n {\n value: \"FM0837-KG\",\n label: \"FM0837\",\n },\n {\n value: \"FM0838-KG\",\n label: \"FM0838\",\n },\n {\n value: \"FM0839-KG\",\n label: \"FM0839\",\n },\n {\n value: \"FM0840-KG\",\n label: \"FM0840\",\n },\n {\n value: \"FM0841-KG\",\n label: \"FM0841\",\n },\n {\n value: \"FM0842-KG\",\n label: \"FM0842\",\n },\n {\n value: \"FM0843-KG\",\n label: \"FM0843\",\n },\n {\n value: \"FM0844-KG\",\n label: \"FM0844\",\n },\n {\n value: \"FM0845-KG\",\n label: \"FM0845\",\n },\n {\n value: \"FM0846-KG\",\n label: \"FM0846\",\n },\n {\n value: \"FM0847-KG\",\n label: \"FM0847\",\n },\n {\n value: \"FM0848-KG\",\n label: \"FM0848\",\n },\n {\n value: \"FM0849-KG\",\n label: \"FM0849\",\n },\n {\n value: \"FM0850-KG\",\n label: \"FM0850\",\n },\n {\n value: \"FM0851-KG\",\n label: \"FM0851\",\n },\n {\n value: \"FM0852-KG\",\n label: \"FM0852\",\n },\n {\n value: \"FM0854-KG\",\n label: \"FM0854\",\n },\n {\n value: \"FM0855-KG\",\n label: \"FM0855\",\n },\n {\n value: \"FM0856-KG\",\n label: \"FM0856\",\n },\n {\n value: \"FM0857-KG\",\n label: \"FM0857\",\n },\n {\n value: \"FM0858-KG\",\n label: \"FM0858\",\n },\n {\n value: \"FM0859-KG\",\n label: \"FM0859\",\n },\n {\n value: \"FM0860-KG\",\n label: \"FM0860\",\n },\n {\n value: \"FM0861-KG\",\n label: \"FM0861\",\n },\n {\n value: \"FM0862-KG\",\n label: \"FM0862\",\n },\n {\n value: \"FM0865-KG\",\n label: \"FM0865\",\n },\n {\n value: \"FM0866-KG\",\n label: \"FM0866\",\n },\n {\n value: \"FM0867-KG\",\n label: \"FM0867\",\n },\n {\n value: \"FM0868-KG\",\n label: \"FM0868\",\n },\n {\n value: \"FM0869-KG\",\n label: \"FM0869\",\n },\n {\n value: \"FM0871-KG\",\n label: \"FM0871\",\n },\n {\n value: \"FM0872-KG\",\n label: \"FM0872\",\n },\n {\n value: \"FM0873-KG\",\n label: \"FM0873\",\n },\n {\n value: \"FM0874-KG\",\n label: \"FM0874\",\n },\n {\n value: \"FM0875-KG\",\n label: \"FM0875\",\n },\n {\n value: \"FM0876-KG\",\n label: \"FM0876\",\n },\n {\n value: \"FM0877-KG\",\n label: \"FM0877\",\n },\n {\n value: \"FM0878-KG\",\n label: \"FM0878\",\n },\n {\n value: \"FM0879-KG\",\n label: \"FM0879\",\n },\n {\n value: \"FM0880-KG\",\n label: \"FM0880\",\n },\n {\n value: \"FM0881-KG\",\n label: \"FM0881\",\n },\n {\n value: \"FM0882-KG\",\n label: \"FM0882\",\n },\n {\n value: \"FM0883-KG\",\n label: \"FM0883\",\n },\n {\n value: \"FM0884-KG\",\n label: \"FM0884\",\n },\n {\n value: \"FM0885-KG\",\n label: \"FM0885\",\n },\n {\n value: \"FM0886-KG\",\n label: \"FM0886\",\n },\n {\n value: \"FM0887-KG\",\n label: \"FM0887\",\n },\n {\n value: \"FM0888-KG\",\n label: \"FM0888\",\n },\n {\n value: \"FM0889-KG\",\n label: \"FM0889\",\n },\n {\n value: \"FM0890-KG\",\n label: \"FM0890\",\n },\n {\n value: \"FM0892-KG\",\n label: \"FM0892\",\n },\n {\n value: \"FM0893-KG\",\n label: \"FM0893\",\n },\n {\n value: \"FM0895-KG\",\n label: \"FM0895\",\n },\n {\n value: \"FM0896-KG\",\n label: \"FM0896\",\n },\n {\n value: \"FM0897-KG\",\n label: \"FM0897\",\n },\n {\n value: \"FM0898-KG\",\n label: \"FM0898\",\n },\n {\n value: \"FM0899-KG\",\n label: \"FM0899\",\n },\n {\n value: \"FM0900-KG\",\n label: \"FM0900\",\n },\n {\n value: \"FM0901-KG\",\n label: \"FM0901\",\n },\n {\n value: \"FM0902-KG\",\n label: \"FM0902\",\n },\n {\n value: \"FM0903-KG\",\n label: \"FM0903\",\n },\n {\n value: \"FM0904-KG\",\n label: \"FM0904\",\n },\n {\n value: \"FM0905-KG\",\n label: \"FM0905\",\n },\n {\n value: \"FM0906-KG\",\n label: \"FM0906\",\n },\n {\n value: \"FM0907-KG\",\n label: \"FM0907\",\n },\n {\n value: \"FM0908-KG\",\n label: \"FM0908\",\n },\n {\n value: \"FM0909-KG\",\n label: \"FM0909\",\n },\n {\n value: \"FM0910-KG\",\n label: \"FM0910\",\n },\n {\n value: \"FM0911-KG\",\n label: \"FM0911\",\n },\n {\n value: \"FM0912-KG\",\n label: \"FM0912\",\n },\n {\n value: \"FM0913-KG\",\n label: \"FM0913\",\n },\n {\n value: \"FM0914-KG\",\n label: \"FM0914\",\n },\n {\n value: \"FM0916-KG\",\n label: \"FM0916\",\n },\n {\n value: \"FM0917-KG\",\n label: \"FM0917\",\n },\n {\n value: \"FM0918-KG\",\n label: \"FM0918\",\n },\n {\n value: \"FM0919-KG\",\n label: \"FM0919\",\n },\n {\n value: \"FM0920-KG\",\n label: \"FM0920\",\n },\n {\n value: \"FM0921-KG\",\n label: \"FM0921\",\n },\n {\n value: \"FM0922-KG\",\n label: \"FM0922\",\n },\n {\n value: \"FM0923-KG\",\n label: \"FM0923\",\n },\n {\n value: \"FM0924-KG\",\n label: \"FM0924\",\n },\n {\n value: \"FM0925-KG\",\n label: \"FM0925\",\n },\n {\n value: \"FM0926-KG\",\n label: \"FM0926\",\n },\n {\n value: \"FM0927-KG\",\n label: \"FM0927\",\n },\n {\n value: \"FM0928-KG\",\n label: \"FM0928\",\n },\n {\n value: \"FM0929-KG\",\n label: \"FM0929\",\n },\n {\n value: \"FM0930-KG\",\n label: \"FM0930\",\n },\n {\n value: \"FM0931-KG\",\n label: \"FM0931\",\n },\n {\n value: \"FM0932-KG\",\n label: \"FM0932\",\n },\n {\n value: \"FM0933-KG\",\n label: \"FM0933\",\n },\n {\n value: \"FM0934-KG\",\n label: \"FM0934\",\n },\n {\n value: \"FM0935-KG\",\n label: \"FM0935\",\n },\n {\n value: \"FM0936-KG\",\n label: \"FM0936\",\n },\n {\n value: \"FM0937-KG\",\n label: \"FM0937\",\n },\n {\n value: \"FM0938-KG\",\n label: \"FM0938\",\n },\n {\n value: \"FM0939-KG\",\n label: \"FM0939\",\n },\n {\n value: \"FM0940-KG\",\n label: \"FM0940\",\n },\n {\n value: \"FM0941-KG\",\n label: \"FM0941\",\n },\n {\n value: \"FM0942-KG\",\n label: \"FM0942\",\n },\n {\n value: \"FM0943-KG\",\n label: \"FM0943\",\n },\n {\n value: \"FM0944-KG\",\n label: \"FM0944\",\n },\n {\n value: \"FM0945-KG\",\n label: \"FM0945\",\n },\n {\n value: \"FM0946-KG\",\n label: \"FM0946\",\n },\n {\n value: \"FM0947-KG\",\n label: \"FM0947\",\n },\n {\n value: \"FM0949-KG\",\n label: \"FM0949\",\n },\n {\n value: \"FM0950-KG\",\n label: \"FM0950\",\n },\n {\n value: \"FM0951-KG\",\n label: \"FM0951\",\n },\n {\n value: \"FM0952-KG\",\n label: \"FM0952\",\n },\n {\n value: \"FM0953-KG\",\n label: \"FM0953\",\n },\n {\n value: \"FM0954-KG\",\n label: \"FM0954\",\n },\n {\n value: \"FM0955-KG\",\n label: \"FM0955\",\n },\n {\n value: \"FM0956-KG\",\n label: \"FM0956\",\n },\n {\n value: \"FM0957-KG\",\n label: \"FM0957\",\n },\n {\n value: \"FM0958-KG\",\n label: \"FM0958\",\n },\n {\n value: \"FM0959-KG\",\n label: \"FM0959\",\n },\n {\n value: \"FM0960-KG\",\n label: \"FM0960\",\n },\n {\n value: \"FM0961-KG\",\n label: \"FM0961\",\n },\n {\n value: \"FM0964-KG\",\n label: \"FM0964\",\n },\n {\n value: \"FM0966-KG\",\n label: \"FM0966\",\n },\n {\n value: \"FM0968-KG\",\n label: \"FM0968\",\n },\n {\n value: \"FM0969-KG\",\n label: \"FM0969\",\n },\n {\n value: \"FM0970-KG\",\n label: \"FM0970\",\n },\n {\n value: \"FM0971-KG\",\n label: \"FM0971\",\n },\n {\n value: \"FM0972-KG\",\n label: \"FM0972\",\n },\n {\n value: \"FM0973-KG\",\n label: \"FM0973\",\n },\n {\n value: \"FM0974-KG\",\n label: \"FM0974\",\n },\n {\n value: \"FM0975-KG\",\n label: \"FM0975\",\n },\n {\n value: \"FM0976-KG\",\n label: \"FM0976\",\n },\n {\n value: \"FM0977-KG\",\n label: \"FM0977\",\n },\n {\n value: \"FM0978-KG\",\n label: \"FM0978\",\n },\n {\n value: \"FM0979-KG\",\n label: \"FM0979\",\n },\n {\n value: \"FM0980-KG\",\n label: \"FM0980\",\n },\n {\n value: \"FM0981-KG\",\n label: \"FM0981\",\n },\n {\n value: \"FM0982-KG\",\n label: \"FM0982\",\n },\n {\n value: \"FM0983-KG\",\n label: \"FM0983\",\n },\n {\n value: \"FM0984-KG\",\n label: \"FM0984\",\n },\n {\n value: \"FM0985-KG\",\n label: \"FM0985\",\n },\n {\n value: \"FM0986-KG\",\n label: \"FM0986\",\n },\n {\n value: \"FM0987-KG\",\n label: \"FM0987\",\n },\n {\n value: \"FM0988-KG\",\n label: \"FM0988\",\n },\n {\n value: \"FM0989-KG\",\n label: \"FM0989\",\n },\n {\n value: \"FM0990-KG\",\n label: \"FM0990\",\n },\n {\n value: \"FM0991-KG\",\n label: \"FM0991\",\n },\n {\n value: \"FM0992-KG\",\n label: \"FM0992\",\n },\n {\n value: \"FM0993-KG\",\n label: \"FM0993\",\n },\n {\n value: \"FM0994-KG\",\n label: \"FM0994\",\n },\n {\n value: \"FM0995-KG\",\n label: \"FM0995\",\n },\n {\n value: \"FM0996-KG\",\n label: \"FM0996\",\n },\n {\n value: \"FM0997-KG\",\n label: \"FM0997\",\n },\n {\n value: \"FM0998-KG\",\n label: \"FM0998\",\n },\n {\n value: \"FM0999-KG\",\n label: \"FM0999\",\n },\n {\n value: \"FM1000-KG\",\n label: \"FM1000\",\n },\n {\n value: \"FM1001-KG\",\n label: \"FM1001\",\n },\n {\n value: \"FM1002-KG\",\n label: \"FM1002\",\n },\n {\n value: \"FM1003-KG\",\n label: \"FM1003\",\n },\n {\n value: \"FM1004-KG\",\n label: \"FM1004\",\n },\n {\n value: \"FM1005-KG\",\n label: \"FM1005\",\n },\n {\n value: \"FM1006-KG\",\n label: \"FM1006\",\n },\n {\n value: \"FM1007-KG\",\n label: \"FM1007\",\n },\n {\n value: \"FM1008-KG\",\n label: \"FM1008\",\n },\n {\n value: \"FM1009-KG\",\n label: \"FM1009\",\n },\n {\n value: \"FM1010-KG\",\n label: \"FM1010\",\n },\n {\n value: \"FM1011-KG\",\n label: \"FM1011\",\n },\n {\n value: \"FM1012-KG\",\n label: \"FM1012\",\n },\n {\n value: \"FM1013-KG\",\n label: \"FM1013\",\n },\n {\n value: \"FM1014-KG\",\n label: \"FM1014\",\n },\n {\n value: \"FM1015-KG\",\n label: \"FM1015\",\n },\n {\n value: \"FM1016-KG\",\n label: \"FM1016\",\n },\n {\n value: \"FM1017-KG\",\n label: \"FM1017\",\n },\n {\n value: \"FM1018-KG\",\n label: \"FM1018\",\n },\n {\n value: \"FM1019-KG\",\n label: \"FM1019\",\n },\n {\n value: \"FM1020-KG\",\n label: \"FM1020\",\n },\n {\n value: \"FM1021-KG\",\n label: \"FM1021\",\n },\n {\n value: \"FM1023-KG\",\n label: \"FM1023\",\n },\n {\n value: \"FM1025-KG\",\n label: \"FM1025\",\n },\n {\n value: \"FM1026-KG\",\n label: \"FM1026\",\n },\n {\n value: \"FM1027-KG\",\n label: \"FM1027\",\n },\n {\n value: \"FM1028-KG\",\n label: \"FM1028\",\n },\n {\n value: \"FM1029-KG\",\n label: \"FM1029\",\n },\n {\n value: \"FM1030-KG\",\n label: \"FM1030\",\n },\n {\n value: \"FM1031-KG\",\n label: \"FM1031\",\n },\n {\n value: \"FM1032-KG\",\n label: \"FM1032\",\n },\n {\n value: \"FM1033-KG\",\n label: \"FM1033\",\n },\n {\n value: \"FM1034-KG\",\n label: \"FM1034\",\n },\n {\n value: \"FM1035-KG\",\n label: \"FM1035\",\n },\n {\n value: \"FM1036-KG\",\n label: \"FM1036\",\n },\n {\n value: \"FM1037-KG\",\n label: \"FM1037\",\n },\n {\n value: \"FM1038-KG\",\n label: \"FM1038\",\n },\n {\n value: \"FM1039-KG\",\n label: \"FM1039\",\n },\n {\n value: \"FM1040-KG\",\n label: \"FM1040\",\n },\n {\n value: \"FM1041-KG\",\n label: \"FM1041\",\n },\n {\n value: \"FM1042-KG\",\n label: \"FM1042\",\n },\n {\n value: \"FM1043-KG\",\n label: \"FM1043\",\n },\n {\n value: \"FM1044-KG\",\n label: \"FM1044\",\n },\n {\n value: \"FM1045-KG\",\n label: \"FM1045\",\n },\n {\n value: \"FM1046-KG\",\n label: \"FM1046\",\n },\n {\n value: \"FM1047-KG\",\n label: \"FM1047\",\n },\n {\n value: \"FM1048-KG\",\n label: \"FM1048\",\n },\n {\n value: \"FM1049-KG\",\n label: \"FM1049\",\n },\n {\n value: \"FM1051-KG\",\n label: \"FM1051\",\n },\n {\n value: \"FM1052-KG\",\n label: \"FM1052\",\n },\n {\n value: \"FM1053-KG\",\n label: \"FM1053\",\n },\n {\n value: \"FM1054-KG\",\n label: \"FM1054\",\n },\n {\n value: \"FM1055-KG\",\n label: \"FM1055\",\n },\n {\n value: \"FM1056-KG\",\n label: \"FM1056\",\n },\n {\n value: \"FM1057-KG\",\n label: \"FM1057\",\n },\n {\n value: \"FM1058-KG\",\n label: \"FM1058\",\n },\n {\n value: \"FM1059-KG\",\n label: \"FM1059\",\n },\n {\n value: \"FM1060-KG\",\n label: \"FM1060\",\n },\n {\n value: \"FM1062-KG\",\n label: \"FM1062\",\n },\n {\n value: \"FM1063-KG\",\n label: \"FM1063\",\n },\n {\n value: \"FM1064-KG\",\n label: \"FM1064\",\n },\n {\n value: \"FM1065-KG\",\n label: \"FM1065\",\n },\n {\n value: \"FM1066-KG\",\n label: \"FM1066\",\n },\n {\n value: \"FM1067-KG\",\n label: \"FM1067\",\n },\n {\n value: \"FM1068-KG\",\n label: \"FM1068\",\n },\n {\n value: \"FM1069-KG\",\n label: \"FM1069\",\n },\n {\n value: \"FM1070-KG\",\n label: \"FM1070\",\n },\n {\n value: \"FM1071-KG\",\n label: \"FM1071\",\n },\n {\n value: \"FM1072-KG\",\n label: \"FM1072\",\n },\n {\n value: \"FM1073-KG\",\n label: \"FM1073\",\n },\n {\n value: \"FM1074-KG\",\n label: \"FM1074\",\n },\n {\n value: \"FM1075-KG\",\n label: \"FM1075\",\n },\n {\n value: \"FM1076-KG\",\n label: \"FM1076\",\n },\n {\n value: \"FM1078-KG\",\n label: \"FM1078\",\n },\n {\n value: \"FM1079-KG\",\n label: \"FM1079\",\n },\n {\n value: \"FM1080-KG\",\n label: \"FM1080\",\n },\n {\n value: \"FM1081-KG\",\n label: \"FM1081\",\n },\n {\n value: \"FM1082-KG\",\n label: \"FM1082\",\n },\n {\n value: \"FM1083-KG\",\n label: \"FM1083\",\n },\n {\n value: \"FM1084-KG\",\n label: \"FM1084\",\n },\n {\n value: \"FM1085-KG\",\n label: \"FM1085\",\n },\n {\n value: \"FM1086-KG\",\n label: \"FM1086\",\n },\n {\n value: \"FM1087-KG\",\n label: \"FM1087\",\n },\n {\n value: \"FM1088-KG\",\n label: \"FM1088\",\n },\n {\n value: \"FM1089-KG\",\n label: \"FM1089\",\n },\n {\n value: \"FM1090-KG\",\n label: \"FM1090\",\n },\n {\n value: \"FM1091-KG\",\n label: \"FM1091\",\n },\n {\n value: \"FM1092-KG\",\n label: \"FM1092\",\n },\n {\n value: \"FM1093-KG\",\n label: \"FM1093\",\n },\n {\n value: \"FM1094-KG\",\n label: \"FM1094\",\n },\n {\n value: \"FM1095-KG\",\n label: \"FM1095\",\n },\n {\n value: \"FM1096-KG\",\n label: \"FM1096\",\n },\n {\n value: \"FM1097-KG\",\n label: \"FM1097\",\n },\n {\n value: \"FM1098-KG\",\n label: \"FM1098\",\n },\n {\n value: \"FM1099-KG\",\n label: \"FM1099\",\n },\n {\n value: \"FM1100-KG\",\n label: \"FM1100\",\n },\n {\n value: \"FM1101-KG\",\n label: \"FM1101\",\n },\n {\n value: \"FM1102-KG\",\n label: \"FM1102\",\n },\n {\n value: \"FM1103-KG\",\n label: \"FM1103\",\n },\n {\n value: \"FM1104-KG\",\n label: \"FM1104\",\n },\n {\n value: \"FM1105-KG\",\n label: \"FM1105\",\n },\n {\n value: \"FM1106-KG\",\n label: \"FM1106\",\n },\n {\n value: \"FM1107-KG\",\n label: \"FM1107\",\n },\n {\n value: \"FM1110-KG\",\n label: \"FM1110\",\n },\n {\n value: \"FM1112-KG\",\n label: \"FM1112\",\n },\n {\n value: \"FM1113-KG\",\n label: \"FM1113\",\n },\n {\n value: \"FM1114-KG\",\n label: \"FM1114\",\n },\n {\n value: \"FM1115-KG\",\n label: \"FM1115\",\n },\n {\n value: \"FM1116-KG\",\n label: \"FM1116\",\n },\n {\n value: \"FM1117-KG\",\n label: \"FM1117\",\n },\n {\n value: \"FM1118-KG\",\n label: \"FM1118\",\n },\n {\n value: \"FM1119-KG\",\n label: \"FM1119\",\n },\n {\n value: \"FM1120-KG\",\n label: \"FM1120\",\n },\n {\n value: \"FM1121-KG\",\n label: \"FM1121\",\n },\n {\n value: \"FM1122-KG\",\n label: \"FM1122\",\n },\n {\n value: \"FM1123-KG\",\n label: \"FM1123\",\n },\n {\n value: \"FM1124-KG\",\n label: \"FM1124\",\n },\n {\n value: \"FM1125-KG\",\n label: \"FM1125\",\n },\n {\n value: \"FM1126-KG\",\n label: \"FM1126\",\n },\n {\n value: \"FM1127-KG\",\n label: \"FM1127\",\n },\n {\n value: \"FM1128-KG\",\n label: \"FM1128\",\n },\n {\n value: \"FM1129-KG\",\n label: \"FM1129\",\n },\n {\n value: \"FM1130-KG\",\n label: \"FM1130\",\n },\n {\n value: \"FM1131-KG\",\n label: \"FM1131\",\n },\n {\n value: \"FM1132-KG\",\n label: \"FM1132\",\n },\n {\n value: \"FM1133-KG\",\n label: \"FM1133\",\n },\n {\n value: \"FM1134-KG\",\n label: \"FM1134\",\n },\n {\n value: \"FM1135-KG\",\n label: \"FM1135\",\n },\n {\n value: \"FM1136-KG\",\n label: \"FM1136\",\n },\n {\n value: \"FM1137-KG\",\n label: \"FM1137\",\n },\n {\n value: \"FM1138-KG\",\n label: \"FM1138\",\n },\n {\n value: \"FM1139-KG\",\n label: \"FM1139\",\n },\n {\n value: \"FM1140-KG\",\n label: \"FM1140\",\n },\n {\n value: \"FM1141-KG\",\n label: \"FM1141\",\n },\n {\n value: \"FM1142-KG\",\n label: \"FM1142\",\n },\n {\n value: \"FM1143-KG\",\n label: \"FM1143\",\n },\n {\n value: \"FM1144-KG\",\n label: \"FM1144\",\n },\n {\n value: \"FM1145-KG\",\n label: \"FM1145\",\n },\n {\n value: \"FM1146-KG\",\n label: \"FM1146\",\n },\n {\n value: \"FM1147-KG\",\n label: \"FM1147\",\n },\n {\n value: \"FM1148-KG\",\n label: \"FM1148\",\n },\n {\n value: \"FM1149-KG\",\n label: \"FM1149\",\n },\n {\n value: \"FM1150-KG\",\n label: \"FM1150\",\n },\n {\n value: \"FM1151-KG\",\n label: \"FM1151\",\n },\n {\n value: \"FM1152-KG\",\n label: \"FM1152\",\n },\n {\n value: \"FM1153-KG\",\n label: \"FM1153\",\n },\n {\n value: \"FM1154-KG\",\n label: \"FM1154\",\n },\n {\n value: \"FM1155-KG\",\n label: \"FM1155\",\n },\n {\n value: \"FM1156-KG\",\n label: \"FM1156\",\n },\n {\n value: \"FM1157-KG\",\n label: \"FM1157\",\n },\n {\n value: \"FM1158-KG\",\n label: \"FM1158\",\n },\n {\n value: \"FM1159-KG\",\n label: \"FM1159\",\n },\n {\n value: \"FM1160-KG\",\n label: \"FM1160\",\n },\n {\n value: \"FM1161-KG\",\n label: \"FM1161\",\n },\n {\n value: \"FM1162-KG\",\n label: \"FM1162\",\n },\n {\n value: \"FM1163-KG\",\n label: \"FM1163\",\n },\n {\n value: \"FM1164-KG\",\n label: \"FM1164\",\n },\n {\n value: \"FM1166-KG\",\n label: \"FM1166\",\n },\n {\n value: \"FM1167-KG\",\n label: \"FM1167\",\n },\n {\n value: \"FM1168-KG\",\n label: \"FM1168\",\n },\n {\n value: \"FM1169-KG\",\n label: \"FM1169\",\n },\n {\n value: \"FM1170-KG\",\n label: \"FM1170\",\n },\n {\n value: \"FM1171-KG\",\n label: \"FM1171\",\n },\n {\n value: \"FM1172-KG\",\n label: \"FM1172\",\n },\n {\n value: \"FM1173-KG\",\n label: \"FM1173\",\n },\n {\n value: \"FM1175-KG\",\n label: \"FM1175\",\n },\n {\n value: \"FM1176-KG\",\n label: \"FM1176\",\n },\n {\n value: \"FM1177-KG\",\n label: \"FM1177\",\n },\n {\n value: \"FM1178-KG\",\n label: \"FM1178\",\n },\n {\n value: \"FM1179-KG\",\n label: \"FM1179\",\n },\n {\n value: \"FM1180-KG\",\n label: \"FM1180\",\n },\n {\n value: \"FM1181-KG\",\n label: \"FM1181\",\n },\n {\n value: \"FM1182-KG\",\n label: \"FM1182\",\n },\n {\n value: \"FM1183-KG\",\n label: \"FM1183\",\n },\n {\n value: \"FM1184-KG\",\n label: \"FM1184\",\n },\n {\n value: \"FM1185-KG\",\n label: \"FM1185\",\n },\n {\n value: \"FM1186-KG\",\n label: \"FM1186\",\n },\n {\n value: \"FM1187-KG\",\n label: \"FM1187\",\n },\n {\n value: \"FM1188-KG\",\n label: \"FM1188\",\n },\n {\n value: \"FM1189-KG\",\n label: \"FM1189\",\n },\n {\n value: \"FM1190-KG\",\n label: \"FM1190\",\n },\n {\n value: \"FM1191-KG\",\n label: \"FM1191\",\n },\n {\n value: \"FM1192-KG\",\n label: \"FM1192\",\n },\n {\n value: \"FM1193-KG\",\n label: \"FM1193\",\n },\n {\n value: \"FM1194-KG\",\n label: \"FM1194\",\n },\n {\n value: \"FM1195-KG\",\n label: \"FM1195\",\n },\n {\n value: \"FM1196-KG\",\n label: \"FM1196\",\n },\n {\n value: \"FM1197-KG\",\n label: \"FM1197\",\n },\n {\n value: \"FM1198-KG\",\n label: \"FM1198\",\n },\n {\n value: \"FM1199-KG\",\n label: \"FM1199\",\n },\n {\n value: \"FM1200-KG\",\n label: \"FM1200\",\n },\n {\n value: \"FM1201-KG\",\n label: \"FM1201\",\n },\n {\n value: \"FM1202-KG\",\n label: \"FM1202\",\n },\n {\n value: \"FM1203-KG\",\n label: \"FM1203\",\n },\n {\n value: \"FM1204-KG\",\n label: \"FM1204\",\n },\n {\n value: \"FM1205-KG\",\n label: \"FM1205\",\n },\n {\n value: \"FM1206-KG\",\n label: \"FM1206\",\n },\n {\n value: \"FM1207-KG\",\n label: \"FM1207\",\n },\n {\n value: \"FM1208-KG\",\n label: \"FM1208\",\n },\n {\n value: \"FM1209-KG\",\n label: \"FM1209\",\n },\n {\n value: \"FM1210-KG\",\n label: \"FM1210\",\n },\n {\n value: \"FM1212-KG\",\n label: \"FM1212\",\n },\n {\n value: \"FM1213-KG\",\n label: \"FM1213\",\n },\n {\n value: \"FM1214-KG\",\n label: \"FM1214\",\n },\n {\n value: \"FM1215-KG\",\n label: \"FM1215\",\n },\n {\n value: \"FM1216-KG\",\n label: \"FM1216\",\n },\n {\n value: \"FM1218-KG\",\n label: \"FM1218\",\n },\n {\n value: \"FM1219-KG\",\n label: \"FM1219\",\n },\n {\n value: \"FM1220-KG\",\n label: \"FM1220\",\n },\n {\n value: \"FM1223-KG\",\n label: \"FM1223\",\n },\n {\n value: \"FM1224-KG\",\n label: \"FM1224\",\n },\n {\n value: \"FM1225-KG\",\n label: \"FM1225\",\n },\n {\n value: \"FM1226-KG\",\n label: \"FM1226\",\n },\n {\n value: \"FM1227-KG\",\n label: \"FM1227\",\n },\n {\n value: \"FM1228-KG\",\n label: \"FM1228\",\n },\n {\n value: \"FM1229-KG\",\n label: \"FM1229\",\n },\n {\n value: \"FM1230-KG\",\n label: \"FM1230\",\n },\n {\n value: \"FM1232-KG\",\n label: \"FM1232\",\n },\n {\n value: \"FM1233-KG\",\n label: \"FM1233\",\n },\n {\n value: \"FM1234-KG\",\n label: \"FM1234\",\n },\n {\n value: \"FM1235-KG\",\n label: \"FM1235\",\n },\n {\n value: \"FM1236-KG\",\n label: \"FM1236\",\n },\n {\n value: \"FM1237-KG\",\n label: \"FM1237\",\n },\n {\n value: \"FM1238-KG\",\n label: \"FM1238\",\n },\n {\n value: \"FM1239-KG\",\n label: \"FM1239\",\n },\n {\n value: \"FM1240-KG\",\n label: \"FM1240\",\n },\n {\n value: \"FM1241-KG\",\n label: \"FM1241\",\n },\n {\n value: \"FM1242-KG\",\n label: \"FM1242\",\n },\n {\n value: \"FM1243-KG\",\n label: \"FM1243\",\n },\n {\n value: \"FM1244-KG\",\n label: \"FM1244\",\n },\n {\n value: \"FM1245-KG\",\n label: \"FM1245\",\n },\n {\n value: \"FM1246-KG\",\n label: \"FM1246\",\n },\n {\n value: \"FM1247-KG\",\n label: \"FM1247\",\n },\n {\n value: \"FM1248-KG\",\n label: \"FM1248\",\n },\n {\n value: \"FM1249-KG\",\n label: \"FM1249\",\n },\n {\n value: \"FM1250-KG\",\n label: \"FM1250\",\n },\n {\n value: \"FM1251-KG\",\n label: \"FM1251\",\n },\n {\n value: \"FM1252-KG\",\n label: \"FM1252\",\n },\n {\n value: \"FM1253-KG\",\n label: \"FM1253\",\n },\n {\n value: \"FM1254-KG\",\n label: \"FM1254\",\n },\n {\n value: \"FM1255-KG\",\n label: \"FM1255\",\n },\n {\n value: \"FM1256-KG\",\n label: \"FM1256\",\n },\n {\n value: \"FM1257-KG\",\n label: \"FM1257\",\n },\n {\n value: \"FM1258-KG\",\n label: \"FM1258\",\n },\n {\n value: \"FM1259-KG\",\n label: \"FM1259\",\n },\n {\n value: \"FM1260-KG\",\n label: \"FM1260\",\n },\n {\n value: \"FM1261-KG\",\n label: \"FM1261\",\n },\n {\n value: \"FM1262-KG\",\n label: \"FM1262\",\n },\n {\n value: \"FM1263-KG\",\n label: \"FM1263\",\n },\n {\n value: \"FM1264-KG\",\n label: \"FM1264\",\n },\n {\n value: \"FM1266-KG\",\n label: \"FM1266\",\n },\n {\n value: \"FM1267-KG\",\n label: \"FM1267\",\n },\n {\n value: \"FM1268-KG\",\n label: \"FM1268\",\n },\n {\n value: \"FM1269-KG\",\n label: \"FM1269\",\n },\n {\n value: \"FM1270-KG\",\n label: \"FM1270\",\n },\n {\n value: \"FM1271-KG\",\n label: \"FM1271\",\n },\n {\n value: \"FM1272-KG\",\n label: \"FM1272\",\n },\n {\n value: \"FM1273-KG\",\n label: \"FM1273\",\n },\n {\n value: \"FM1274-KG\",\n label: \"FM1274\",\n },\n {\n value: \"FM1275-KG\",\n label: \"FM1275\",\n },\n {\n value: \"FM1276-KG\",\n label: \"FM1276\",\n },\n {\n value: \"FM1277-KG\",\n label: \"FM1277\",\n },\n {\n value: \"FM1278-KG\",\n label: \"FM1278\",\n },\n {\n value: \"FM1279-KG\",\n label: \"FM1279\",\n },\n {\n value: \"FM1280-KG\",\n label: \"FM1280\",\n },\n {\n value: \"FM1281-KG\",\n label: \"FM1281\",\n },\n {\n value: \"FM1283-KG\",\n label: \"FM1283\",\n },\n {\n value: \"FM1284-KG\",\n label: \"FM1284\",\n },\n {\n value: \"FM1285-KG\",\n label: \"FM1285\",\n },\n {\n value: \"FM1286-KG\",\n label: \"FM1286\",\n },\n {\n value: \"FM1287-KG\",\n label: \"FM1287\",\n },\n {\n value: \"FM1288-KG\",\n label: \"FM1288\",\n },\n {\n value: \"FM1289-KG\",\n label: \"FM1289\",\n },\n {\n value: \"FM1290-KG\",\n label: \"FM1290\",\n },\n {\n value: \"FM1291-KG\",\n label: \"FM1291\",\n },\n {\n value: \"FM1292-KG\",\n label: \"FM1292\",\n },\n {\n value: \"FM1293-KG\",\n label: \"FM1293\",\n },\n {\n value: \"FM1294-KG\",\n label: \"FM1294\",\n },\n {\n value: \"FM1295-KG\",\n label: \"FM1295\",\n },\n {\n value: \"FM1296-KG\",\n label: \"FM1296\",\n },\n {\n value: \"FM1297-KG\",\n label: \"FM1297\",\n },\n {\n value: \"FM1298-KG\",\n label: \"FM1298\",\n },\n {\n value: \"FM1299-KG\",\n label: \"FM1299\",\n },\n {\n value: \"FM1300-KG\",\n label: \"FM1300\",\n },\n {\n value: \"FM1301-KG\",\n label: \"FM1301\",\n },\n {\n value: \"FM1302-KG\",\n label: \"FM1302\",\n },\n {\n value: \"FM1303-KG\",\n label: \"FM1303\",\n },\n {\n value: \"FM1304-KG\",\n label: \"FM1304\",\n },\n {\n value: \"FM1305-KG\",\n label: \"FM1305\",\n },\n {\n value: \"FM1306-KG\",\n label: \"FM1306\",\n },\n {\n value: \"FM1307-KG\",\n label: \"FM1307\",\n },\n {\n value: \"FM1308-KG\",\n label: \"FM1308\",\n },\n {\n value: \"FM1309-KG\",\n label: \"FM1309\",\n },\n {\n value: \"FM1310-KG\",\n label: \"FM1310\",\n },\n {\n value: \"FM1311-KG\",\n label: \"FM1311\",\n },\n {\n value: \"FM1313-KG\",\n label: \"FM1313\",\n },\n {\n value: \"FM1314-KG\",\n label: \"FM1314\",\n },\n {\n value: \"FM1315-KG\",\n label: \"FM1315\",\n },\n {\n value: \"FM1316-KG\",\n label: \"FM1316\",\n },\n {\n value: \"FM1317-KG\",\n label: \"FM1317\",\n },\n {\n value: \"FM1318-KG\",\n label: \"FM1318\",\n },\n {\n value: \"FM1322-KG\",\n label: \"FM1322\",\n },\n {\n value: \"FM1324-KG\",\n label: \"FM1324\",\n },\n {\n value: \"FM1325-KG\",\n label: \"FM1325\",\n },\n {\n value: \"FM1326-KG\",\n label: \"FM1326\",\n },\n {\n value: \"FM1327-KG\",\n label: \"FM1327\",\n },\n {\n value: \"FM1328-KG\",\n label: \"FM1328\",\n },\n {\n value: \"FM1329-KG\",\n label: \"FM1329\",\n },\n {\n value: \"FM1330-KG\",\n label: \"FM1330\",\n },\n {\n value: \"FM1331-KG\",\n label: \"FM1331\",\n },\n {\n value: \"FM1332-KG\",\n label: \"FM1332\",\n },\n {\n value: \"FM1333-KG\",\n label: \"FM1333\",\n },\n {\n value: \"FM1334-KG\",\n label: \"FM1334\",\n },\n {\n value: \"FM1335-KG\",\n label: \"FM1335\",\n },\n {\n value: \"FM1336-KG\",\n label: \"FM1336\",\n },\n {\n value: \"FM1337-KG\",\n label: \"FM1337\",\n },\n {\n value: \"FM1338-KG\",\n label: \"FM1338\",\n },\n {\n value: \"FM1339-KG\",\n label: \"FM1339\",\n },\n {\n value: \"FM1340-KG\",\n label: \"FM1340\",\n },\n {\n value: \"FM1341-KG\",\n label: \"FM1341\",\n },\n {\n value: \"FM1342-KG\",\n label: \"FM1342\",\n },\n {\n value: \"FM1343-KG\",\n label: \"FM1343\",\n },\n {\n value: \"FM1344-KG\",\n label: \"FM1344\",\n },\n {\n value: \"FM1346-KG\",\n label: \"FM1346\",\n },\n {\n value: \"FM1347-KG\",\n label: \"FM1347\",\n },\n {\n value: \"FM1348-KG\",\n label: \"FM1348\",\n },\n {\n value: \"FM1349-KG\",\n label: \"FM1349\",\n },\n {\n value: \"FM1350-KG\",\n label: \"FM1350\",\n },\n {\n value: \"FM1351-KG\",\n label: \"FM1351\",\n },\n {\n value: \"FM1352-KG\",\n label: \"FM1352\",\n },\n {\n value: \"FM1353-KG\",\n label: \"FM1353\",\n },\n {\n value: \"FM1354-KG\",\n label: \"FM1354\",\n },\n {\n value: \"FM1355-KG\",\n label: \"FM1355\",\n },\n {\n value: \"FM1356-KG\",\n label: \"FM1356\",\n },\n {\n value: \"FM1358-KG\",\n label: \"FM1358\",\n },\n {\n value: \"FM1359-KG\",\n label: \"FM1359\",\n },\n {\n value: \"FM1360-KG\",\n label: \"FM1360\",\n },\n {\n value: \"FM1361-KG\",\n label: \"FM1361\",\n },\n {\n value: \"FM1362-KG\",\n label: \"FM1362\",\n },\n {\n value: \"FM1363-KG\",\n label: \"FM1363\",\n },\n {\n value: \"FM1364-KG\",\n label: \"FM1364\",\n },\n {\n value: \"FM1365-KG\",\n label: \"FM1365\",\n },\n {\n value: \"FM1366-KG\",\n label: \"FM1366\",\n },\n {\n value: \"FM1367-KG\",\n label: \"FM1367\",\n },\n {\n value: \"FM1368-KG\",\n label: \"FM1368\",\n },\n {\n value: \"FM1370-KG\",\n label: \"FM1370\",\n },\n {\n value: \"FM1371-KG\",\n label: \"FM1371\",\n },\n {\n value: \"FM1372-KG\",\n label: \"FM1372\",\n },\n {\n value: \"FM1373-KG\",\n label: \"FM1373\",\n },\n {\n value: \"FM1374-KG\",\n label: \"FM1374\",\n },\n {\n value: \"FM1375-KG\",\n label: \"FM1375\",\n },\n {\n value: \"FM1377-KG\",\n label: \"FM1377\",\n },\n {\n value: \"FM1378-KG\",\n label: \"FM1378\",\n },\n {\n value: \"FM1379-KG\",\n label: \"FM1379\",\n },\n {\n value: \"FM1380-KG\",\n label: \"FM1380\",\n },\n {\n value: \"FM1381-KG\",\n label: \"FM1381\",\n },\n {\n value: \"FM1382-KG\",\n label: \"FM1382\",\n },\n {\n value: \"FM1383-KG\",\n label: \"FM1383\",\n },\n {\n value: \"FM1384-KG\",\n label: \"FM1384\",\n },\n {\n value: \"FM1385-KG\",\n label: \"FM1385\",\n },\n {\n value: \"FM1386-KG\",\n label: \"FM1386\",\n },\n {\n value: \"FM1387-KG\",\n label: \"FM1387\",\n },\n {\n value: \"FM1388-KG\",\n label: \"FM1388\",\n },\n {\n value: \"FM1389-KG\",\n label: \"FM1389\",\n },\n {\n value: \"FM1390-KG\",\n label: \"FM1390\",\n },\n {\n value: \"FM1391-KG\",\n label: \"FM1391\",\n },\n {\n value: \"FM1392-KG\",\n label: \"FM1392\",\n },\n {\n value: \"FM1393-KG\",\n label: \"FM1393\",\n },\n {\n value: \"FM1394-KG\",\n label: \"FM1394\",\n },\n {\n value: \"FM1395-KG\",\n label: \"FM1395\",\n },\n {\n value: \"FM1396-KG\",\n label: \"FM1396\",\n },\n {\n value: \"FM1397-KG\",\n label: \"FM1397\",\n },\n {\n value: \"FM1398-KG\",\n label: \"FM1398\",\n },\n {\n value: \"FM1399-KG\",\n label: \"FM1399\",\n },\n {\n value: \"FM1400-KG\",\n label: \"FM1400\",\n },\n {\n value: \"FM1402-KG\",\n label: \"FM1402\",\n },\n {\n value: \"FM1403-KG\",\n label: \"FM1403\",\n },\n {\n value: \"FM1404-KG\",\n label: \"FM1404\",\n },\n {\n value: \"FM1405-KG\",\n label: \"FM1405\",\n },\n {\n value: \"FM1406-KG\",\n label: \"FM1406\",\n },\n {\n value: \"FM1407-KG\",\n label: \"FM1407\",\n },\n {\n value: \"FM1408-KG\",\n label: \"FM1408\",\n },\n {\n value: \"FM1409-KG\",\n label: \"FM1409\",\n },\n {\n value: \"FM1410-KG\",\n label: \"FM1410\",\n },\n {\n value: \"FM1411-KG\",\n label: \"FM1411\",\n },\n {\n value: \"FM1412-KG\",\n label: \"FM1412\",\n },\n {\n value: \"FM1413-KG\",\n label: \"FM1413\",\n },\n {\n value: \"FM1414-KG\",\n label: \"FM1414\",\n },\n {\n value: \"FM1415-KG\",\n label: \"FM1415\",\n },\n {\n value: \"FM1416-KG\",\n label: \"FM1416\",\n },\n {\n value: \"FM1417-KG\",\n label: \"FM1417\",\n },\n {\n value: \"FM1418-KG\",\n label: \"FM1418\",\n },\n {\n value: \"FM1419-KG\",\n label: \"FM1419\",\n },\n {\n value: \"FM1420-KG\",\n label: \"FM1420\",\n },\n {\n value: \"FM1421-KG\",\n label: \"FM1421\",\n },\n {\n value: \"FM1422-KG\",\n label: \"FM1422\",\n },\n {\n value: \"FM1423-KG\",\n label: \"FM1423\",\n },\n {\n value: \"FM1424-KG\",\n label: \"FM1424\",\n },\n {\n value: \"FM1425-KG\",\n label: \"FM1425\",\n },\n {\n value: \"FM1426-KG\",\n label: \"FM1426\",\n },\n {\n value: \"FM1427-KG\",\n label: \"FM1427\",\n },\n {\n value: \"FM1428-KG\",\n label: \"FM1428\",\n },\n {\n value: \"FM1429-KG\",\n label: \"FM1429\",\n },\n {\n value: \"FM1430-KG\",\n label: \"FM1430\",\n },\n {\n value: \"FM1432-KG\",\n label: \"FM1432\",\n },\n {\n value: \"FM1433-KG\",\n label: \"FM1433\",\n },\n {\n value: \"FM1434-KG\",\n label: \"FM1434\",\n },\n {\n value: \"FM1435-KG\",\n label: \"FM1435\",\n },\n {\n value: \"FM1436-KG\",\n label: \"FM1436\",\n },\n {\n value: \"FM1437-KG\",\n label: \"FM1437\",\n },\n {\n value: \"FM1438-KG\",\n label: \"FM1438\",\n },\n {\n value: \"FM1439-KG\",\n label: \"FM1439\",\n },\n {\n value: \"FM1440-KG\",\n label: \"FM1440\",\n },\n {\n value: \"FM1441-KG\",\n label: \"FM1441\",\n },\n {\n value: \"FM1442-KG\",\n label: \"FM1442\",\n },\n {\n value: \"FM1443-KG\",\n label: \"FM1443\",\n },\n {\n value: \"FM1444-KG\",\n label: \"FM1444\",\n },\n {\n value: \"FM1445-KG\",\n label: \"FM1445\",\n },\n {\n value: \"FM1446-KG\",\n label: \"FM1446\",\n },\n {\n value: \"FM1447-KG\",\n label: \"FM1447\",\n },\n {\n value: \"FM1448-KG\",\n label: \"FM1448\",\n },\n {\n value: \"FM1449-KG\",\n label: \"FM1449\",\n },\n {\n value: \"FM1450-KG\",\n label: \"FM1450\",\n },\n {\n value: \"FM1451-KG\",\n label: \"FM1451\",\n },\n {\n value: \"FM1452-KG\",\n label: \"FM1452\",\n },\n {\n value: \"FM1453-KG\",\n label: \"FM1453\",\n },\n {\n value: \"FM1454-KG\",\n label: \"FM1454\",\n },\n {\n value: \"FM1455-KG\",\n label: \"FM1455\",\n },\n {\n value: \"FM1456-KG\",\n label: \"FM1456\",\n },\n {\n value: \"FM1457-KG\",\n label: \"FM1457\",\n },\n {\n value: \"FM1458-KG\",\n label: \"FM1458\",\n },\n {\n value: \"FM1459-KG\",\n label: \"FM1459\",\n },\n {\n value: \"FM1460-KG\",\n label: \"FM1460\",\n },\n {\n value: \"FM1461-KG\",\n label: \"FM1461\",\n },\n {\n value: \"FM1462-KG\",\n label: \"FM1462\",\n },\n {\n value: \"FM1463-KG\",\n label: \"FM1463\",\n },\n {\n value: \"FM1464-KG\",\n label: \"FM1464\",\n },\n {\n value: \"FM1465-KG\",\n label: \"FM1465\",\n },\n {\n value: \"FM1466-KG\",\n label: \"FM1466\",\n },\n {\n value: \"FM1467-KG\",\n label: \"FM1467\",\n },\n {\n value: \"FM1468-KG\",\n label: \"FM1468\",\n },\n {\n value: \"FM1469-KG\",\n label: \"FM1469\",\n },\n {\n value: \"FM1470-KG\",\n label: \"FM1470\",\n },\n {\n value: \"FM1471-KG\",\n label: \"FM1471\",\n },\n {\n value: \"FM1472-KG\",\n label: \"FM1472\",\n },\n {\n value: \"FM1473-KG\",\n label: \"FM1473\",\n },\n {\n value: \"FM1475-KG\",\n label: \"FM1475\",\n },\n {\n value: \"FM1476-KG\",\n label: \"FM1476\",\n },\n {\n value: \"FM1477-KG\",\n label: \"FM1477\",\n },\n {\n value: \"FM1478-KG\",\n label: \"FM1478\",\n },\n {\n value: \"FM1479-KG\",\n label: \"FM1479\",\n },\n {\n value: \"FM1480-KG\",\n label: \"FM1480\",\n },\n {\n value: \"FM1481-KG\",\n label: \"FM1481\",\n },\n {\n value: \"FM1482-KG\",\n label: \"FM1482\",\n },\n {\n value: \"FM1483-KG\",\n label: \"FM1483\",\n },\n {\n value: \"FM1484-KG\",\n label: \"FM1484\",\n },\n {\n value: \"FM1485-KG\",\n label: \"FM1485\",\n },\n {\n value: \"FM1486-KG\",\n label: \"FM1486\",\n },\n {\n value: \"FM1487-KG\",\n label: \"FM1487\",\n },\n {\n value: \"FM1488-KG\",\n label: \"FM1488\",\n },\n {\n value: \"FM1489-KG\",\n label: \"FM1489\",\n },\n {\n value: \"FM1490-KG\",\n label: \"FM1490\",\n },\n {\n value: \"FM1491-KG\",\n label: \"FM1491\",\n },\n {\n value: \"FM1493-KG\",\n label: \"FM1493\",\n },\n {\n value: \"FM1494-KG\",\n label: \"FM1494\",\n },\n {\n value: \"FM1495-KG\",\n label: \"FM1495\",\n },\n {\n value: \"FM1496-KG\",\n label: \"FM1496\",\n },\n {\n value: \"FM1497-KG\",\n label: \"FM1497\",\n },\n {\n value: \"FM1498-KG\",\n label: \"FM1498\",\n },\n {\n value: \"FM1499-KG\",\n label: \"FM1499\",\n },\n {\n value: \"FM1500-KG\",\n label: \"FM1500\",\n },\n {\n value: \"FM1501-KG\",\n label: \"FM1501\",\n },\n {\n value: \"FM1502-KG\",\n label: \"FM1502\",\n },\n {\n value: \"FM1503-KG\",\n label: \"FM1503\",\n },\n {\n value: \"FM1504-KG\",\n label: \"FM1504\",\n },\n {\n value: \"FM1505-KG\",\n label: \"FM1505\",\n },\n {\n value: \"FM1506-KG\",\n label: \"FM1506\",\n },\n {\n value: \"FM1507-KG\",\n label: \"FM1507\",\n },\n {\n value: \"FM1508-KG\",\n label: \"FM1508\",\n },\n {\n value: \"FM1509-KG\",\n label: \"FM1509\",\n },\n {\n value: \"FM1510-KG\",\n label: \"FM1510\",\n },\n {\n value: \"FM1511-KG\",\n label: \"FM1511\",\n },\n {\n value: \"FM1512-KG\",\n label: \"FM1512\",\n },\n {\n value: \"FM1513-KG\",\n label: \"FM1513\",\n },\n {\n value: \"FM1514-KG\",\n label: \"FM1514\",\n },\n {\n value: \"FM1515-KG\",\n label: \"FM1515\",\n },\n {\n value: \"FM1516-KG\",\n label: \"FM1516\",\n },\n {\n value: \"FM1518-KG\",\n label: \"FM1518\",\n },\n {\n value: \"FM1519-KG\",\n label: \"FM1519\",\n },\n {\n value: \"FM1520-KG\",\n label: \"FM1520\",\n },\n {\n value: \"FM1521-KG\",\n label: \"FM1521\",\n },\n {\n value: \"FM1522-KG\",\n label: \"FM1522\",\n },\n {\n value: \"FM1523-KG\",\n label: \"FM1523\",\n },\n {\n value: \"FM1524-KG\",\n label: \"FM1524\",\n },\n {\n value: \"FM1525-KG\",\n label: \"FM1525\",\n },\n {\n value: \"FM1527-KG\",\n label: \"FM1527\",\n },\n {\n value: \"FM1528-KG\",\n label: \"FM1528\",\n },\n {\n value: \"FM1529-KG\",\n label: \"FM1529\",\n },\n {\n value: \"FM1530-KG\",\n label: \"FM1530\",\n },\n {\n value: \"FM1531-KG\",\n label: \"FM1531\",\n },\n {\n value: \"FM1532-KG\",\n label: \"FM1532\",\n },\n {\n value: \"FM1533-KG\",\n label: \"FM1533\",\n },\n {\n value: \"FM1534-KG\",\n label: \"FM1534\",\n },\n {\n value: \"FM1535-KG\",\n label: \"FM1535\",\n },\n {\n value: \"FM1536-KG\",\n label: \"FM1536\",\n },\n {\n value: \"FM1537-KG\",\n label: \"FM1537\",\n },\n {\n value: \"FM1538-KG\",\n label: \"FM1538\",\n },\n {\n value: \"FM1539-KG\",\n label: \"FM1539\",\n },\n {\n value: \"FM1540-KG\",\n label: \"FM1540\",\n },\n {\n value: \"FM1541-KG\",\n label: \"FM1541\",\n },\n {\n value: \"FM1542-KG\",\n label: \"FM1542\",\n },\n {\n value: \"FM1543-KG\",\n label: \"FM1543\",\n },\n {\n value: \"FM1544-KG\",\n label: \"FM1544\",\n },\n {\n value: \"FM1545-KG\",\n label: \"FM1545\",\n },\n {\n value: \"FM1546-KG\",\n label: \"FM1546\",\n },\n {\n value: \"FM1547-KG\",\n label: \"FM1547\",\n },\n {\n value: \"FM1548-KG\",\n label: \"FM1548\",\n },\n {\n value: \"FM1549-KG\",\n label: \"FM1549\",\n },\n {\n value: \"FM1550-KG\",\n label: \"FM1550\",\n },\n {\n value: \"FM1551-KG\",\n label: \"FM1551\",\n },\n {\n value: \"FM1552-KG\",\n label: \"FM1552\",\n },\n {\n value: \"FM1553-KG\",\n label: \"FM1553\",\n },\n {\n value: \"FM1554-KG\",\n label: \"FM1554\",\n },\n {\n value: \"FM1556-KG\",\n label: \"FM1556\",\n },\n {\n value: \"FM1557-KG\",\n label: \"FM1557\",\n },\n {\n value: \"FM1558-KG\",\n label: \"FM1558\",\n },\n {\n value: \"FM1559-KG\",\n label: \"FM1559\",\n },\n {\n value: \"FM1560-KG\",\n label: \"FM1560\",\n },\n {\n value: \"FM1561-KG\",\n label: \"FM1561\",\n },\n {\n value: \"FM1562-KG\",\n label: \"FM1562\",\n },\n {\n value: \"FM1563-KG\",\n label: \"FM1563\",\n },\n {\n value: \"FM1564-KG\",\n label: \"FM1564\",\n },\n {\n value: \"FM1565-KG\",\n label: \"FM1565\",\n },\n {\n value: \"FM1566-KG\",\n label: \"FM1566\",\n },\n {\n value: \"FM1567-KG\",\n label: \"FM1567\",\n },\n {\n value: \"FM1568-KG\",\n label: \"FM1568\",\n },\n {\n value: \"FM1569-KG\",\n label: \"FM1569\",\n },\n {\n value: \"FM1570-KG\",\n label: \"FM1570\",\n },\n {\n value: \"FM1571-KG\",\n label: \"FM1571\",\n },\n {\n value: \"FM1572-KG\",\n label: \"FM1572\",\n },\n {\n value: \"FM1573-KG\",\n label: \"FM1573\",\n },\n {\n value: \"FM1574-KG\",\n label: \"FM1574\",\n },\n {\n value: \"FM1575-KG\",\n label: \"FM1575\",\n },\n {\n value: \"FM1576-KG\",\n label: \"FM1576\",\n },\n {\n value: \"FM1577-KG\",\n label: \"FM1577\",\n },\n {\n value: \"FM1578-KG\",\n label: \"FM1578\",\n },\n {\n value: \"FM1579-KG\",\n label: \"FM1579\",\n },\n {\n value: \"FM1580-KG\",\n label: \"FM1580\",\n },\n {\n value: \"FM1581-KG\",\n label: \"FM1581\",\n },\n {\n value: \"FM1582-KG\",\n label: \"FM1582\",\n },\n {\n value: \"FM1583-KG\",\n label: \"FM1583\",\n },\n {\n value: \"FM1584-KG\",\n label: \"FM1584\",\n },\n {\n value: \"FM1585-KG\",\n label: \"FM1585\",\n },\n {\n value: \"FM1586-KG\",\n label: \"FM1586\",\n },\n {\n value: \"FM1588-KG\",\n label: \"FM1588\",\n },\n {\n value: \"FM1589-KG\",\n label: \"FM1589\",\n },\n {\n value: \"FM1590-KG\",\n label: \"FM1590\",\n },\n {\n value: \"FM1591-KG\",\n label: \"FM1591\",\n },\n {\n value: \"FM1592-KG\",\n label: \"FM1592\",\n },\n {\n value: \"FM1593-KG\",\n label: \"FM1593\",\n },\n {\n value: \"FM1594-KG\",\n label: \"FM1594\",\n },\n {\n value: \"FM1595-KG\",\n label: \"FM1595\",\n },\n {\n value: \"FM1596-KG\",\n label: \"FM1596\",\n },\n {\n value: \"FM1597-KG\",\n label: \"FM1597\",\n },\n {\n value: \"FM1598-KG\",\n label: \"FM1598\",\n },\n {\n value: \"FM1599-KG\",\n label: \"FM1599\",\n },\n {\n value: \"FM1600-KG\",\n label: \"FM1600\",\n },\n {\n value: \"FM1601-KG\",\n label: \"FM1601\",\n },\n {\n value: \"FM1602-KG\",\n label: \"FM1602\",\n },\n {\n value: \"FM1603-KG\",\n label: \"FM1603\",\n },\n {\n value: \"FM1604-KG\",\n label: \"FM1604\",\n },\n {\n value: \"FM1605-KG\",\n label: \"FM1605\",\n },\n {\n value: \"FM1606-KG\",\n label: \"FM1606\",\n },\n {\n value: \"FM1607-KG\",\n label: \"FM1607\",\n },\n {\n value: \"FM1608-KG\",\n label: \"FM1608\",\n },\n {\n value: \"FM1609-KG\",\n label: \"FM1609\",\n },\n {\n value: \"FM1610-KG\",\n label: \"FM1610\",\n },\n {\n value: \"FM1611-KG\",\n label: \"FM1611\",\n },\n {\n value: \"FM1612-KG\",\n label: \"FM1612\",\n },\n {\n value: \"FM1613-KG\",\n label: \"FM1613\",\n },\n {\n value: \"FM1614-KG\",\n label: \"FM1614\",\n },\n {\n value: \"FM1615-KG\",\n label: \"FM1615\",\n },\n {\n value: \"FM1616-KG\",\n label: \"FM1616\",\n },\n {\n value: \"FM1617-KG\",\n label: \"FM1617\",\n },\n {\n value: \"FM1618-KG\",\n label: \"FM1618\",\n },\n {\n value: \"FM1619-KG\",\n label: \"FM1619\",\n },\n {\n value: \"FM1620-KG\",\n label: \"FM1620\",\n },\n {\n value: \"FM1621-KG\",\n label: \"FM1621\",\n },\n {\n value: \"FM1622-KG\",\n label: \"FM1622\",\n },\n {\n value: \"FM1624-KG\",\n label: \"FM1624\",\n },\n {\n value: \"FM1625-KG\",\n label: \"FM1625\",\n },\n {\n value: \"FM1626-KG\",\n label: \"FM1626\",\n },\n {\n value: \"FM1628-KG\",\n label: \"FM1628\",\n },\n {\n value: \"FM1629-KG\",\n label: \"FM1629\",\n },\n {\n value: \"FM1630-KG\",\n label: \"FM1630\",\n },\n {\n value: \"FM1632-KG\",\n label: \"FM1632\",\n },\n {\n value: \"FM1633-KG\",\n label: \"FM1633\",\n },\n {\n value: \"FM1634-KG\",\n label: \"FM1634\",\n },\n {\n value: \"FM1635-KG\",\n label: \"FM1635\",\n },\n {\n value: \"FM1636-KG\",\n label: \"FM1636\",\n },\n {\n value: \"FM1637-KG\",\n label: \"FM1637\",\n },\n {\n value: \"FM1638-KG\",\n label: \"FM1638\",\n },\n {\n value: \"FM1639-KG\",\n label: \"FM1639\",\n },\n {\n value: \"FM1640-KG\",\n label: \"FM1640\",\n },\n {\n value: \"FM1641-KG\",\n label: \"FM1641\",\n },\n {\n value: \"FM1642-KG\",\n label: \"FM1642\",\n },\n {\n value: \"FM1643-KG\",\n label: \"FM1643\",\n },\n {\n value: \"FM1644-KG\",\n label: \"FM1644\",\n },\n {\n value: \"FM1645-KG\",\n label: \"FM1645\",\n },\n {\n value: \"FM1646-KG\",\n label: \"FM1646\",\n },\n {\n value: \"FM1647-KG\",\n label: \"FM1647\",\n },\n {\n value: \"FM1648-KG\",\n label: \"FM1648\",\n },\n {\n value: \"FM1649-KG\",\n label: \"FM1649\",\n },\n {\n value: \"FM1650-KG\",\n label: \"FM1650\",\n },\n {\n value: \"FM1651-KG\",\n label: \"FM1651\",\n },\n {\n value: \"FM1652-KG\",\n label: \"FM1652\",\n },\n {\n value: \"FM1653-KG\",\n label: \"FM1653\",\n },\n {\n value: \"FM1655-KG\",\n label: \"FM1655\",\n },\n {\n value: \"FM1656-KG\",\n label: \"FM1656\",\n },\n {\n value: \"FM1657-KG\",\n label: \"FM1657\",\n },\n {\n value: \"FM1658-KG\",\n label: \"FM1658\",\n },\n {\n value: \"FM1660-KG\",\n label: \"FM1660\",\n },\n {\n value: \"FM1661-KG\",\n label: \"FM1661\",\n },\n {\n value: \"FM1662-KG\",\n label: \"FM1662\",\n },\n {\n value: \"FM1663-KG\",\n label: \"FM1663\",\n },\n {\n value: \"FM1664-KG\",\n label: \"FM1664\",\n },\n {\n value: \"FM1665-KG\",\n label: \"FM1665\",\n },\n {\n value: \"FM1666-KG\",\n label: \"FM1666\",\n },\n {\n value: \"FM1667-KG\",\n label: \"FM1667\",\n },\n {\n value: \"FM1668-KG\",\n label: \"FM1668\",\n },\n {\n value: \"FM1669-KG\",\n label: \"FM1669\",\n },\n {\n value: \"FM1670-KG\",\n label: \"FM1670\",\n },\n {\n value: \"FM1671-KG\",\n label: \"FM1671\",\n },\n {\n value: \"FM1673-KG\",\n label: \"FM1673\",\n },\n {\n value: \"FM1677-KG\",\n label: \"FM1677\",\n },\n {\n value: \"FM1678-KG\",\n label: \"FM1678\",\n },\n {\n value: \"FM1679-KG\",\n label: \"FM1679\",\n },\n {\n value: \"FM1680-KG\",\n label: \"FM1680\",\n },\n {\n value: \"FM1681-KG\",\n label: \"FM1681\",\n },\n {\n value: \"FM1682-KG\",\n label: \"FM1682\",\n },\n {\n value: \"FM1683-KG\",\n label: \"FM1683\",\n },\n {\n value: \"FM1684-KG\",\n label: \"FM1684\",\n },\n {\n value: \"FM1685-KG\",\n label: \"FM1685\",\n },\n {\n value: \"FM1686-KG\",\n label: \"FM1686\",\n },\n {\n value: \"FM1687-KG\",\n label: \"FM1687\",\n },\n {\n value: \"FM1688-KG\",\n label: \"FM1688\",\n },\n {\n value: \"FM1689-KG\",\n label: \"FM1689\",\n },\n {\n value: \"FM1690-KG\",\n label: \"FM1690\",\n },\n {\n value: \"FM1692-KG\",\n label: \"FM1692\",\n },\n {\n value: \"FM1693-KG\",\n label: \"FM1693\",\n },\n {\n value: \"FM1694-KG\",\n label: \"FM1694\",\n },\n {\n value: \"FM1695-KG\",\n label: \"FM1695\",\n },\n {\n value: \"FM1696-KG\",\n label: \"FM1696\",\n },\n {\n value: \"FM1697-KG\",\n label: \"FM1697\",\n },\n {\n value: \"FM1698-KG\",\n label: \"FM1698\",\n },\n {\n value: \"FM1699-KG\",\n label: \"FM1699\",\n },\n {\n value: \"FM1700-KG\",\n label: \"FM1700\",\n },\n {\n value: \"FM1701-KG\",\n label: \"FM1701\",\n },\n {\n value: \"FM1702-KG\",\n label: \"FM1702\",\n },\n {\n value: \"FM1703-KG\",\n label: \"FM1703\",\n },\n {\n value: \"FM1704-KG\",\n label: \"FM1704\",\n },\n {\n value: \"FM1705-KG\",\n label: \"FM1705\",\n },\n {\n value: \"FM1706-KG\",\n label: \"FM1706\",\n },\n {\n value: \"FM1707-KG\",\n label: \"FM1707\",\n },\n {\n value: \"FM1708-KG\",\n label: \"FM1708\",\n },\n {\n value: \"FM1709-KG\",\n label: \"FM1709\",\n },\n {\n value: \"FM1710-KG\",\n label: \"FM1710\",\n },\n {\n value: \"FM1711-KG\",\n label: \"FM1711\",\n },\n {\n value: \"FM1712-KG\",\n label: \"FM1712\",\n },\n {\n value: \"FM1713-KG\",\n label: \"FM1713\",\n },\n {\n value: \"FM1714-KG\",\n label: \"FM1714\",\n },\n {\n value: \"FM1715-KG\",\n label: \"FM1715\",\n },\n {\n value: \"FM1716-KG\",\n label: \"FM1716\",\n },\n {\n value: \"FM1717-KG\",\n label: \"FM1717\",\n },\n {\n value: \"FM1718-KG\",\n label: \"FM1718\",\n },\n {\n value: \"FM1719-KG\",\n label: \"FM1719\",\n },\n {\n value: \"FM1720-KG\",\n label: \"FM1720\",\n },\n {\n value: \"FM1721-KG\",\n label: \"FM1721\",\n },\n {\n value: \"FM1722-KG\",\n label: \"FM1722\",\n },\n {\n value: \"FM1724-KG\",\n label: \"FM1724\",\n },\n {\n value: \"FM1725-KG\",\n label: \"FM1725\",\n },\n {\n value: \"FM1726-KG\",\n label: \"FM1726\",\n },\n {\n value: \"FM1727-KG\",\n label: \"FM1727\",\n },\n {\n value: \"FM1728-KG\",\n label: \"FM1728\",\n },\n {\n value: \"FM1729-KG\",\n label: \"FM1729\",\n },\n {\n value: \"FM1730-KG\",\n label: \"FM1730\",\n },\n {\n value: \"FM1731-KG\",\n label: \"FM1731\",\n },\n {\n value: \"FM1732-KG\",\n label: \"FM1732\",\n },\n {\n value: \"FM1733-KG\",\n label: \"FM1733\",\n },\n {\n value: \"FM1734-KG\",\n label: \"FM1734\",\n },\n {\n value: \"FM1735-KG\",\n label: \"FM1735\",\n },\n {\n value: \"FM1736-KG\",\n label: \"FM1736\",\n },\n {\n value: \"FM1737-KG\",\n label: \"FM1737\",\n },\n {\n value: \"FM1738-KG\",\n label: \"FM1738\",\n },\n {\n value: \"FM1739-KG\",\n label: \"FM1739\",\n },\n {\n value: \"FM1740-KG\",\n label: \"FM1740\",\n },\n {\n value: \"FM1741-KG\",\n label: \"FM1741\",\n },\n {\n value: \"FM1742-KG\",\n label: \"FM1742\",\n },\n {\n value: \"FM1743-KG\",\n label: \"FM1743\",\n },\n {\n value: \"FM1744-KG\",\n label: \"FM1744\",\n },\n {\n value: \"FM1745-KG\",\n label: \"FM1745\",\n },\n {\n value: \"FM1746-KG\",\n label: \"FM1746\",\n },\n {\n value: \"FM1747-KG\",\n label: \"FM1747\",\n },\n {\n value: \"FM1748-KG\",\n label: \"FM1748\",\n },\n {\n value: \"FM1749-KG\",\n label: \"FM1749\",\n },\n {\n value: \"FM1750-KG\",\n label: \"FM1750\",\n },\n {\n value: \"FM1751-KG\",\n label: \"FM1751\",\n },\n {\n value: \"FM1752-KG\",\n label: \"FM1752\",\n },\n {\n value: \"FM1753-KG\",\n label: \"FM1753\",\n },\n {\n value: \"FM1754-KG\",\n label: \"FM1754\",\n },\n {\n value: \"FM1755-KG\",\n label: \"FM1755\",\n },\n {\n value: \"FM1756-KG\",\n label: \"FM1756\",\n },\n {\n value: \"FM1757-KG\",\n label: \"FM1757\",\n },\n {\n value: \"FM1758-KG\",\n label: \"FM1758\",\n },\n {\n value: \"FM1759-KG\",\n label: \"FM1759\",\n },\n {\n value: \"FM1760-KG\",\n label: \"FM1760\",\n },\n {\n value: \"FM1761-KG\",\n label: \"FM1761\",\n },\n {\n value: \"FM1762-KG\",\n label: \"FM1762\",\n },\n {\n value: \"FM1763-KG\",\n label: \"FM1763\",\n },\n {\n value: \"FM1764-KG\",\n label: \"FM1764\",\n },\n {\n value: \"FM1765-KG\",\n label: \"FM1765\",\n },\n {\n value: \"FM1766-KG\",\n label: \"FM1766\",\n },\n {\n value: \"FM1767-KG\",\n label: \"FM1767\",\n },\n {\n value: \"FM1768-KG\",\n label: \"FM1768\",\n },\n {\n value: \"FM1769-KG\",\n label: \"FM1769\",\n },\n {\n value: \"FM1770-KG\",\n label: \"FM1770\",\n },\n {\n value: \"FM1771-KG\",\n label: \"FM1771\",\n },\n {\n value: \"FM1772-KG\",\n label: \"FM1772\",\n },\n {\n value: \"FM1774-KG\",\n label: \"FM1774\",\n },\n {\n value: \"FM1775-KG\",\n label: \"FM1775\",\n },\n {\n value: \"FM1776-KG\",\n label: \"FM1776\",\n },\n {\n value: \"FM1777-KG\",\n label: \"FM1777\",\n },\n {\n value: \"FM1778-KG\",\n label: \"FM1778\",\n },\n {\n value: \"FM1779-KG\",\n label: \"FM1779\",\n },\n {\n value: \"FM1780-KG\",\n label: \"FM1780\",\n },\n {\n value: \"FM1781-KG\",\n label: \"FM1781\",\n },\n {\n value: \"FM1782-KG\",\n label: \"FM1782\",\n },\n {\n value: \"FM1783-KG\",\n label: \"FM1783\",\n },\n {\n value: \"FM1784-KG\",\n label: \"FM1784\",\n },\n {\n value: \"FM1785-KG\",\n label: \"FM1785\",\n },\n {\n value: \"FM1786-KG\",\n label: \"FM1786\",\n },\n {\n value: \"FM1787-KG\",\n label: \"FM1787\",\n },\n {\n value: \"FM1788-KG\",\n label: \"FM1788\",\n },\n {\n value: \"FM1789-KG\",\n label: \"FM1789\",\n },\n {\n value: \"FM1790-KG\",\n label: \"FM1790\",\n },\n {\n value: \"FM1791-KG\",\n label: \"FM1791\",\n },\n {\n value: \"FM1793-KG\",\n label: \"FM1793\",\n },\n {\n value: \"FM1794-KG\",\n label: \"FM1794\",\n },\n {\n value: \"FM1795-KG\",\n label: \"FM1795\",\n },\n {\n value: \"FM1796-KG\",\n label: \"FM1796\",\n },\n {\n value: \"FM1797-KG\",\n label: \"FM1797\",\n },\n {\n value: \"FM1798-KG\",\n label: \"FM1798\",\n },\n {\n value: \"FM1799-KG\",\n label: \"FM1799\",\n },\n {\n value: \"FM1800-KG\",\n label: \"FM1800\",\n },\n {\n value: \"FM1801-KG\",\n label: \"FM1801\",\n },\n {\n value: \"FM1802-KG\",\n label: \"FM1802\",\n },\n {\n value: \"FM1803-KG\",\n label: \"FM1803\",\n },\n {\n value: \"FM1804-KG\",\n label: \"FM1804\",\n },\n {\n value: \"FM1805-KG\",\n label: \"FM1805\",\n },\n {\n value: \"FM1806-KG\",\n label: \"FM1806\",\n },\n {\n value: \"FM1807-KG\",\n label: \"FM1807\",\n },\n {\n value: \"FM1808-KG\",\n label: \"FM1808\",\n },\n {\n value: \"FM1809-KG\",\n label: \"FM1809\",\n },\n {\n value: \"FM1810-KG\",\n label: \"FM1810\",\n },\n {\n value: \"FM1811-KG\",\n label: \"FM1811\",\n },\n {\n value: \"FM1812-KG\",\n label: \"FM1812\",\n },\n {\n value: \"FM1813-KG\",\n label: \"FM1813\",\n },\n {\n value: \"FM1814-KG\",\n label: \"FM1814\",\n },\n {\n value: \"FM1815-KG\",\n label: \"FM1815\",\n },\n {\n value: \"FM1816-KG\",\n label: \"FM1816\",\n },\n {\n value: \"FM1817-KG\",\n label: \"FM1817\",\n },\n {\n value: \"FM1818-KG\",\n label: \"FM1818\",\n },\n {\n value: \"FM1819-KG\",\n label: \"FM1819\",\n },\n {\n value: \"FM1821-KG\",\n label: \"FM1821\",\n },\n {\n value: \"FM1822-KG\",\n label: \"FM1822\",\n },\n {\n value: \"FM1823-KG\",\n label: \"FM1823\",\n },\n {\n value: \"FM1824-KG\",\n label: \"FM1824\",\n },\n {\n value: \"FM1825-KG\",\n label: \"FM1825\",\n },\n {\n value: \"FM1827-KG\",\n label: \"FM1827\",\n },\n {\n value: \"FM1828-KG\",\n label: \"FM1828\",\n },\n {\n value: \"FM1829-KG\",\n label: \"FM1829\",\n },\n {\n value: \"FM1830-KG\",\n label: \"FM1830\",\n },\n {\n value: \"FM1831-KG\",\n label: \"FM1831\",\n },\n {\n value: \"FM1833-KG\",\n label: \"FM1833\",\n },\n {\n value: \"FM1834-KG\",\n label: \"FM1834\",\n },\n {\n value: \"FM1835-KG\",\n label: \"FM1835\",\n },\n {\n value: \"FM1836-KG\",\n label: \"FM1836\",\n },\n {\n value: \"FM1838-KG\",\n label: \"FM1838\",\n },\n {\n value: \"FM1839-KG\",\n label: \"FM1839\",\n },\n {\n value: \"FM1840-KG\",\n label: \"FM1840\",\n },\n {\n value: \"FM1841-KG\",\n label: \"FM1841\",\n },\n {\n value: \"FM1842-KG\",\n label: \"FM1842\",\n },\n {\n value: \"FM1843-KG\",\n label: \"FM1843\",\n },\n {\n value: \"FM1844-KG\",\n label: \"FM1844\",\n },\n {\n value: \"FM1845-KG\",\n label: \"FM1845\",\n },\n {\n value: \"FM1846-KG\",\n label: \"FM1846\",\n },\n {\n value: \"FM1847-KG\",\n label: \"FM1847\",\n },\n {\n value: \"FM1848-KG\",\n label: \"FM1848\",\n },\n {\n value: \"FM1849-KG\",\n label: \"FM1849\",\n },\n {\n value: \"FM1850-KG\",\n label: \"FM1850\",\n },\n {\n value: \"FM1851-KG\",\n label: \"FM1851\",\n },\n {\n value: \"FM1852-KG\",\n label: \"FM1852\",\n },\n {\n value: \"FM1853-KG\",\n label: \"FM1853\",\n },\n {\n value: \"FM1854-KG\",\n label: \"FM1854\",\n },\n {\n value: \"FM1856-KG\",\n label: \"FM1856\",\n },\n {\n value: \"FM1857-KG\",\n label: \"FM1857\",\n },\n {\n value: \"FM1858-KG\",\n label: \"FM1858\",\n },\n {\n value: \"FM1859-KG\",\n label: \"FM1859\",\n },\n {\n value: \"FM1860-KG\",\n label: \"FM1860\",\n },\n {\n value: \"FM1861-KG\",\n label: \"FM1861\",\n },\n {\n value: \"FM1862-KG\",\n label: \"FM1862\",\n },\n {\n value: \"FM1863-KG\",\n label: \"FM1863\",\n },\n {\n value: \"FM1864-KG\",\n label: \"FM1864\",\n },\n {\n value: \"FM1866-KG\",\n label: \"FM1866\",\n },\n {\n value: \"FM1867-KG\",\n label: \"FM1867\",\n },\n {\n value: \"FM1868-KG\",\n label: \"FM1868\",\n },\n {\n value: \"FM1870-KG\",\n label: \"FM1870\",\n },\n {\n value: \"FM1872-KG\",\n label: \"FM1872\",\n },\n {\n value: \"FM1873-KG\",\n label: \"FM1873\",\n },\n {\n value: \"FM1874-KG\",\n label: \"FM1874\",\n },\n {\n value: \"FM1875-KG\",\n label: \"FM1875\",\n },\n {\n value: \"FM1876-KG\",\n label: \"FM1876\",\n },\n {\n value: \"FM1877-KG\",\n label: \"FM1877\",\n },\n {\n value: \"FM1878-KG\",\n label: \"FM1878\",\n },\n {\n value: \"FM1879-KG\",\n label: \"FM1879\",\n },\n {\n value: \"FM1880-KG\",\n label: \"FM1880\",\n },\n {\n value: \"FM1881-KG\",\n label: \"FM1881\",\n },\n {\n value: \"FM1882-KG\",\n label: \"FM1882\",\n },\n {\n value: \"FM1883-KG\",\n label: \"FM1883\",\n },\n {\n value: \"FM1884-KG\",\n label: \"FM1884\",\n },\n {\n value: \"FM1885-KG\",\n label: \"FM1885\",\n },\n {\n value: \"FM1886-KG\",\n label: \"FM1886\",\n },\n {\n value: \"FM1887-KG\",\n label: \"FM1887\",\n },\n {\n value: \"FM1889-KG\",\n label: \"FM1889\",\n },\n {\n value: \"FM1890-KG\",\n label: \"FM1890\",\n },\n {\n value: \"FM1891-KG\",\n label: \"FM1891\",\n },\n {\n value: \"FM1892-KG\",\n label: \"FM1892\",\n },\n {\n value: \"FM1893-KG\",\n label: \"FM1893\",\n },\n {\n value: \"FM1894-KG\",\n label: \"FM1894\",\n },\n {\n value: \"FM1895-KG\",\n label: \"FM1895\",\n },\n {\n value: \"FM1896-KG\",\n label: \"FM1896\",\n },\n {\n value: \"FM1897-KG\",\n label: \"FM1897\",\n },\n {\n value: \"FM1898-KG\",\n label: \"FM1898\",\n },\n {\n value: \"FM1899-KG\",\n label: \"FM1899\",\n },\n {\n value: \"FM1901-KG\",\n label: \"FM1901\",\n },\n {\n value: \"FM1902-KG\",\n label: \"FM1902\",\n },\n {\n value: \"FM1903-KG\",\n label: \"FM1903\",\n },\n {\n value: \"FM1904-KG\",\n label: \"FM1904\",\n },\n {\n value: \"FM1905-KG\",\n label: \"FM1905\",\n },\n {\n value: \"FM1906-KG\",\n label: \"FM1906\",\n },\n {\n value: \"FM1907-KG\",\n label: \"FM1907\",\n },\n {\n value: \"FM1908-KG\",\n label: \"FM1908\",\n },\n {\n value: \"FM1909-KG\",\n label: \"FM1909\",\n },\n {\n value: \"FM1910-KG\",\n label: \"FM1910\",\n },\n {\n value: \"FM1911-KG\",\n label: \"FM1911\",\n },\n {\n value: \"FM1912-KG\",\n label: \"FM1912\",\n },\n {\n value: \"FM1913-KG\",\n label: \"FM1913\",\n },\n {\n value: \"FM1914-KG\",\n label: \"FM1914\",\n },\n {\n value: \"FM1915-KG\",\n label: \"FM1915\",\n },\n {\n value: \"FM1916-KG\",\n label: \"FM1916\",\n },\n {\n value: \"FM1917-KG\",\n label: \"FM1917\",\n },\n {\n value: \"FM1918-KG\",\n label: \"FM1918\",\n },\n {\n value: \"FM1920-KG\",\n label: \"FM1920\",\n },\n {\n value: \"FM1921-KG\",\n label: \"FM1921\",\n },\n {\n value: \"FM1922-KG\",\n label: \"FM1922\",\n },\n {\n value: \"FM1923-KG\",\n label: \"FM1923\",\n },\n {\n value: \"FM1924-KG\",\n label: \"FM1924\",\n },\n {\n value: \"FM1925-KG\",\n label: \"FM1925\",\n },\n {\n value: \"FM1926-KG\",\n label: \"FM1926\",\n },\n {\n value: \"FM1927-KG\",\n label: \"FM1927\",\n },\n {\n value: \"FM1929-KG\",\n label: \"FM1929\",\n },\n {\n value: \"FM1930-KG\",\n label: \"FM1930\",\n },\n {\n value: \"FM1931-KG\",\n label: \"FM1931\",\n },\n {\n value: \"FM1932-KG\",\n label: \"FM1932\",\n },\n {\n value: \"FM1933-KG\",\n label: \"FM1933\",\n },\n {\n value: \"FM1934-KG\",\n label: \"FM1934\",\n },\n {\n value: \"FM1935-KG\",\n label: \"FM1935\",\n },\n {\n value: \"FM1936-KG\",\n label: \"FM1936\",\n },\n {\n value: \"FM1937-KG\",\n label: \"FM1937\",\n },\n {\n value: \"FM1938-KG\",\n label: \"FM1938\",\n },\n {\n value: \"FM1939-KG\",\n label: \"FM1939\",\n },\n {\n value: \"FM1940-KG\",\n label: \"FM1940\",\n },\n {\n value: \"FM1941-KG\",\n label: \"FM1941\",\n },\n {\n value: \"FM1942-KG\",\n label: \"FM1942\",\n },\n {\n value: \"FM1943-KG\",\n label: \"FM1943\",\n },\n {\n value: \"FM1944-KG\",\n label: \"FM1944\",\n },\n {\n value: \"FM1945-KG\",\n label: \"FM1945\",\n },\n {\n value: \"FM1946-KG\",\n label: \"FM1946\",\n },\n {\n value: \"FM1947-KG\",\n label: \"FM1947\",\n },\n {\n value: \"FM1948-KG\",\n label: \"FM1948\",\n },\n {\n value: \"FM1949-KG\",\n label: \"FM1949\",\n },\n {\n value: \"FM1950-KG\",\n label: \"FM1950\",\n },\n {\n value: \"FM1951-KG\",\n label: \"FM1951\",\n },\n {\n value: \"FM1952-KG\",\n label: \"FM1952\",\n },\n {\n value: \"FM1953-KG\",\n label: \"FM1953\",\n },\n {\n value: \"FM1954-KG\",\n label: \"FM1954\",\n },\n {\n value: \"FM1955-KG\",\n label: \"FM1955\",\n },\n {\n value: \"FM1956-KG\",\n label: \"FM1956\",\n },\n {\n value: \"FM1957-KG\",\n label: \"FM1957\",\n },\n {\n value: \"FM1958-KG\",\n label: \"FM1958\",\n },\n {\n value: \"FM1959-KG\",\n label: \"FM1959\",\n },\n {\n value: \"FM1960-KG\",\n label: \"FM1960\",\n },\n {\n value: \"FM1961-KG\",\n label: \"FM1961\",\n },\n {\n value: \"FM1962-KG\",\n label: \"FM1962\",\n },\n {\n value: \"FM1963-KG\",\n label: \"FM1963\",\n },\n {\n value: \"FM1965-KG\",\n label: \"FM1965\",\n },\n {\n value: \"FM1966-KG\",\n label: \"FM1966\",\n },\n {\n value: \"FM1967-KG\",\n label: \"FM1967\",\n },\n {\n value: \"FM1968-KG\",\n label: \"FM1968\",\n },\n {\n value: \"FM1969-KG\",\n label: \"FM1969\",\n },\n {\n value: \"FM1970-KG\",\n label: \"FM1970\",\n },\n {\n value: \"FM1971-KG\",\n label: \"FM1971\",\n },\n {\n value: \"FM1972-KG\",\n label: \"FM1972\",\n },\n {\n value: \"FM1974-KG\",\n label: \"FM1974\",\n },\n {\n value: \"FM1975-KG\",\n label: \"FM1975\",\n },\n {\n value: \"FM1976-KG\",\n label: \"FM1976\",\n },\n {\n value: \"FM1977-KG\",\n label: \"FM1977\",\n },\n {\n value: \"FM1978-KG\",\n label: \"FM1978\",\n },\n {\n value: \"FM1979-KG\",\n label: \"FM1979\",\n },\n {\n value: \"FM1980-KG\",\n label: \"FM1980\",\n },\n {\n value: \"FM1981-KG\",\n label: \"FM1981\",\n },\n {\n value: \"FM1982-KG\",\n label: \"FM1982\",\n },\n {\n value: \"FM1983-KG\",\n label: \"FM1983\",\n },\n {\n value: \"FM1984-KG\",\n label: \"FM1984\",\n },\n {\n value: \"FM1985-KG\",\n label: \"FM1985\",\n },\n {\n value: \"FM1986-KG\",\n label: \"FM1986\",\n },\n {\n value: \"FM1987-KG\",\n label: \"FM1987\",\n },\n {\n value: \"FM1988-KG\",\n label: \"FM1988\",\n },\n {\n value: \"FM1990-KG\",\n label: \"FM1990\",\n },\n {\n value: \"FM1991-KG\",\n label: \"FM1991\",\n },\n {\n value: \"FM1992-KG\",\n label: \"FM1992\",\n },\n {\n value: \"FM1993-KG\",\n label: \"FM1993\",\n },\n {\n value: \"FM1994-KG\",\n label: \"FM1994\",\n },\n {\n value: \"FM1995-KG\",\n label: \"FM1995\",\n },\n {\n value: \"FM1996-KG\",\n label: \"FM1996\",\n },\n {\n value: \"FM1997-KG\",\n label: \"FM1997\",\n },\n {\n value: \"FM1998-KG\",\n label: \"FM1998\",\n },\n {\n value: \"FM1999-KG\",\n label: \"FM1999\",\n },\n {\n value: \"FM2000-KG\",\n label: \"FM2000\",\n },\n {\n value: \"FM2001-KG\",\n label: \"FM2001\",\n },\n {\n value: \"FM2002-KG\",\n label: \"FM2002\",\n },\n {\n value: \"FM2003-KG\",\n label: \"FM2003\",\n },\n {\n value: \"FM2004-KG\",\n label: \"FM2004\",\n },\n {\n value: \"FM2005-KG\",\n label: \"FM2005\",\n },\n {\n value: \"FM2006-KG\",\n label: \"FM2006\",\n },\n {\n value: \"FM2007-KG\",\n label: \"FM2007\",\n },\n {\n value: \"FM2008-KG\",\n label: \"FM2008\",\n },\n {\n value: \"FM2009-KG\",\n label: \"FM2009\",\n },\n {\n value: \"FM2010-KG\",\n label: \"FM2010\",\n },\n {\n value: \"FM2011-KG\",\n label: \"FM2011\",\n },\n {\n value: \"FM2012-KG\",\n label: \"FM2012\",\n },\n {\n value: \"FM2013-KG\",\n label: \"FM2013\",\n },\n {\n value: \"FM2014-KG\",\n label: \"FM2014\",\n },\n {\n value: \"FM2015-KG\",\n label: \"FM2015\",\n },\n {\n value: \"FM2016-KG\",\n label: \"FM2016\",\n },\n {\n value: \"FM2017-KG\",\n label: \"FM2017\",\n },\n {\n value: \"FM2018-KG\",\n label: \"FM2018\",\n },\n {\n value: \"FM2019-KG\",\n label: \"FM2019\",\n },\n {\n value: \"FM2020-KG\",\n label: \"FM2020\",\n },\n {\n value: \"FM2021-KG\",\n label: \"FM2021\",\n },\n {\n value: \"FM2022-KG\",\n label: \"FM2022\",\n },\n {\n value: \"FM2024-KG\",\n label: \"FM2024\",\n },\n {\n value: \"FM2025-KG\",\n label: \"FM2025\",\n },\n {\n value: \"FM2026-KG\",\n label: \"FM2026\",\n },\n {\n value: \"FM2027-KG\",\n label: \"FM2027\",\n },\n {\n value: \"FM2028-KG\",\n label: \"FM2028\",\n },\n {\n value: \"FM2029-KG\",\n label: \"FM2029\",\n },\n {\n value: \"FM2030-KG\",\n label: \"FM2030\",\n },\n {\n value: \"FM2031-KG\",\n label: \"FM2031\",\n },\n {\n value: \"FM2033-KG\",\n label: \"FM2033\",\n },\n {\n value: \"FM2035-KG\",\n label: \"FM2035\",\n },\n {\n value: \"FM2036-KG\",\n label: \"FM2036\",\n },\n {\n value: \"FM2037-KG\",\n label: \"FM2037\",\n },\n {\n value: \"FM2038-KG\",\n label: \"FM2038\",\n },\n {\n value: \"FM2039-KG\",\n label: \"FM2039\",\n },\n {\n value: \"FM2040-KG\",\n label: \"FM2040\",\n },\n {\n value: \"FM2041-KG\",\n label: \"FM2041\",\n },\n {\n value: \"FM2042-KG\",\n label: \"FM2042\",\n },\n {\n value: \"FM2043-KG\",\n label: \"FM2043\",\n },\n {\n value: \"FM2044-KG\",\n label: \"FM2044\",\n },\n {\n value: \"FM2045-KG\",\n label: \"FM2045\",\n },\n {\n value: \"FM2046-KG\",\n label: \"FM2046\",\n },\n {\n value: \"FM2047-KG\",\n label: \"FM2047\",\n },\n {\n value: \"FM2048-KG\",\n label: \"FM2048\",\n },\n {\n value: \"FM2049-KG\",\n label: \"FM2049\",\n },\n {\n value: \"FM2050-KG\",\n label: \"FM2050\",\n },\n {\n value: \"FM2051-KG\",\n label: \"FM2051\",\n },\n {\n value: \"FM2052-KG\",\n label: \"FM2052\",\n },\n {\n value: \"FM2053-KG\",\n label: \"FM2053\",\n },\n {\n value: \"FM2054-KG\",\n label: \"FM2054\",\n },\n {\n value: \"FM2055-KG\",\n label: \"FM2055\",\n },\n {\n value: \"FM2056-KG\",\n label: \"FM2056\",\n },\n {\n value: \"FM2057-KG\",\n label: \"FM2057\",\n },\n {\n value: \"FM2058-KG\",\n label: \"FM2058\",\n },\n {\n value: \"FM2060-KG\",\n label: \"FM2060\",\n },\n {\n value: \"FM2061-KG\",\n label: \"FM2061\",\n },\n {\n value: \"FM2062-KG\",\n label: \"FM2062\",\n },\n {\n value: \"FM2063-KG\",\n label: \"FM2063\",\n },\n {\n value: \"FM2064-KG\",\n label: \"FM2064\",\n },\n {\n value: \"FM2065-KG\",\n label: \"FM2065\",\n },\n {\n value: \"FM2066-KG\",\n label: \"FM2066\",\n },\n {\n value: \"FM2067-KG\",\n label: \"FM2067\",\n },\n {\n value: \"FM2068-KG\",\n label: \"FM2068\",\n },\n {\n value: \"FM2069-KG\",\n label: \"FM2069\",\n },\n {\n value: \"FM2070-KG\",\n label: \"FM2070\",\n },\n {\n value: \"FM2071-KG\",\n label: \"FM2071\",\n },\n {\n value: \"FM2072-KG\",\n label: \"FM2072\",\n },\n {\n value: \"FM2073-KG\",\n label: \"FM2073\",\n },\n {\n value: \"FM2074-KG\",\n label: \"FM2074\",\n },\n {\n value: \"FM2075-KG\",\n label: \"FM2075\",\n },\n {\n value: \"FM2076-KG\",\n label: \"FM2076\",\n },\n {\n value: \"FM2077-KG\",\n label: \"FM2077\",\n },\n {\n value: \"FM2078-KG\",\n label: \"FM2078\",\n },\n {\n value: \"FM2079-KG\",\n label: \"FM2079\",\n },\n {\n value: \"FM2080-KG\",\n label: \"FM2080\",\n },\n {\n value: \"FM2081-KG\",\n label: \"FM2081\",\n },\n {\n value: \"FM2082-KG\",\n label: \"FM2082\",\n },\n {\n value: \"FM2085-KG\",\n label: \"FM2085\",\n },\n {\n value: \"FM2086-KG\",\n label: \"FM2086\",\n },\n {\n value: \"FM2087-KG\",\n label: \"FM2087\",\n },\n {\n value: \"FM2088-KG\",\n label: \"FM2088\",\n },\n {\n value: \"FM2089-KG\",\n label: \"FM2089\",\n },\n {\n value: \"FM2090-KG\",\n label: \"FM2090\",\n },\n {\n value: \"FM2091-KG\",\n label: \"FM2091\",\n },\n {\n value: \"FM2092-KG\",\n label: \"FM2092\",\n },\n {\n value: \"FM2093-KG\",\n label: \"FM2093\",\n },\n {\n value: \"FM2094-KG\",\n label: \"FM2094\",\n },\n {\n value: \"FM2095-KG\",\n label: \"FM2095\",\n },\n {\n value: \"FM2096-KG\",\n label: \"FM2096\",\n },\n {\n value: \"FM2097-KG\",\n label: \"FM2097\",\n },\n {\n value: \"FM2098-KG\",\n label: \"FM2098\",\n },\n {\n value: \"FM2099-KG\",\n label: \"FM2099\",\n },\n {\n value: \"FM2100-KG\",\n label: \"FM2100\",\n },\n {\n value: \"FM2101-KG\",\n label: \"FM2101\",\n },\n {\n value: \"FM2102-KG\",\n label: \"FM2102\",\n },\n {\n value: \"FM2103-KG\",\n label: \"FM2103\",\n },\n {\n value: \"FM2104-KG\",\n label: \"FM2104\",\n },\n {\n value: \"FM2105-KG\",\n label: \"FM2105\",\n },\n {\n value: \"FM2106-KG\",\n label: \"FM2106\",\n },\n {\n value: \"FM2107-KG\",\n label: \"FM2107\",\n },\n {\n value: \"FM2108-KG\",\n label: \"FM2108\",\n },\n {\n value: \"FM2109-KG\",\n label: \"FM2109\",\n },\n {\n value: \"FM2110-KG\",\n label: \"FM2110\",\n },\n {\n value: \"FM2111-KG\",\n label: \"FM2111\",\n },\n {\n value: \"FM2112-KG\",\n label: \"FM2112\",\n },\n {\n value: \"FM2113-KG\",\n label: \"FM2113\",\n },\n {\n value: \"FM2114-KG\",\n label: \"FM2114\",\n },\n {\n value: \"FM2115-KG\",\n label: \"FM2115\",\n },\n {\n value: \"FM2116-KG\",\n label: \"FM2116\",\n },\n {\n value: \"FM2117-KG\",\n label: \"FM2117\",\n },\n {\n value: \"FM2118-KG\",\n label: \"FM2118\",\n },\n {\n value: \"FM2119-KG\",\n label: \"FM2119\",\n },\n {\n value: \"FM2120-KG\",\n label: \"FM2120\",\n },\n {\n value: \"FM2121-KG\",\n label: \"FM2121\",\n },\n {\n value: \"FM2122-KG\",\n label: \"FM2122\",\n },\n {\n value: \"FM2123-KG\",\n label: \"FM2123\",\n },\n {\n value: \"FM2124-KG\",\n label: \"FM2124\",\n },\n {\n value: \"FM2125-KG\",\n label: \"FM2125\",\n },\n {\n value: \"FM2126-KG\",\n label: \"FM2126\",\n },\n {\n value: \"FM2127-KG\",\n label: \"FM2127\",\n },\n {\n value: \"FM2128-KG\",\n label: \"FM2128\",\n },\n {\n value: \"FM2129-KG\",\n label: \"FM2129\",\n },\n {\n value: \"FM2130-KG\",\n label: \"FM2130\",\n },\n {\n value: \"FM2131-KG\",\n label: \"FM2131\",\n },\n {\n value: \"FM2132-KG\",\n label: \"FM2132\",\n },\n {\n value: \"FM2133-KG\",\n label: \"FM2133\",\n },\n {\n value: \"FM2134-KG\",\n label: \"FM2134\",\n },\n {\n value: \"FM2135-KG\",\n label: \"FM2135\",\n },\n {\n value: \"FM2136-KG\",\n label: \"FM2136\",\n },\n {\n value: \"FM2137-KG\",\n label: \"FM2137\",\n },\n {\n value: \"FM2138-KG\",\n label: \"FM2138\",\n },\n {\n value: \"FM2140-KG\",\n label: \"FM2140\",\n },\n {\n value: \"FM2141-KG\",\n label: \"FM2141\",\n },\n {\n value: \"FM2142-KG\",\n label: \"FM2142\",\n },\n {\n value: \"FM2143-KG\",\n label: \"FM2143\",\n },\n {\n value: \"FM2144-KG\",\n label: \"FM2144\",\n },\n {\n value: \"FM2145-KG\",\n label: \"FM2145\",\n },\n {\n value: \"FM2146-KG\",\n label: \"FM2146\",\n },\n {\n value: \"FM2148-KG\",\n label: \"FM2148\",\n },\n {\n value: \"FM2149-KG\",\n label: \"FM2149\",\n },\n {\n value: \"FM2150-KG\",\n label: \"FM2150\",\n },\n {\n value: \"FM2152-KG\",\n label: \"FM2152\",\n },\n {\n value: \"FM2153-KG\",\n label: \"FM2153\",\n },\n {\n value: \"FM2154-KG\",\n label: \"FM2154\",\n },\n {\n value: \"FM2155-KG\",\n label: \"FM2155\",\n },\n {\n value: \"FM2156-KG\",\n label: \"FM2156\",\n },\n {\n value: \"FM2158-KG\",\n label: \"FM2158\",\n },\n {\n value: \"FM2159-KG\",\n label: \"FM2159\",\n },\n {\n value: \"FM2160-KG\",\n label: \"FM2160\",\n },\n {\n value: \"FM2161-KG\",\n label: \"FM2161\",\n },\n {\n value: \"FM2162-KG\",\n label: \"FM2162\",\n },\n {\n value: \"FM2163-KG\",\n label: \"FM2163\",\n },\n {\n value: \"FM2164-KG\",\n label: \"FM2164\",\n },\n {\n value: \"FM2165-KG\",\n label: \"FM2165\",\n },\n {\n value: \"FM2168-KG\",\n label: \"FM2168\",\n },\n {\n value: \"FM2169-KG\",\n label: \"FM2169\",\n },\n {\n value: \"FM2170-KG\",\n label: \"FM2170\",\n },\n {\n value: \"FM2171-KG\",\n label: \"FM2171\",\n },\n {\n value: \"FM2172-KG\",\n label: \"FM2172\",\n },\n {\n value: \"FM2174-KG\",\n label: \"FM2174\",\n },\n {\n value: \"FM2175-KG\",\n label: \"FM2175\",\n },\n {\n value: \"FM2176-KG\",\n label: \"FM2176\",\n },\n {\n value: \"FM2177-KG\",\n label: \"FM2177\",\n },\n {\n value: \"FM2178-KG\",\n label: \"FM2178\",\n },\n {\n value: \"FM2179-KG\",\n label: \"FM2179\",\n },\n {\n value: \"FM2180-KG\",\n label: \"FM2180\",\n },\n {\n value: \"FM2181-KG\",\n label: \"FM2181\",\n },\n {\n value: \"FM2182-KG\",\n label: \"FM2182\",\n },\n {\n value: \"FM2183-KG\",\n label: \"FM2183\",\n },\n {\n value: \"FM2184-KG\",\n label: \"FM2184\",\n },\n {\n value: \"FM2185-KG\",\n label: \"FM2185\",\n },\n {\n value: \"FM2186-KG\",\n label: \"FM2186\",\n },\n {\n value: \"FM2187-KG\",\n label: \"FM2187\",\n },\n {\n value: \"FM2188-KG\",\n label: \"FM2188\",\n },\n {\n value: \"FM2189-KG\",\n label: \"FM2189\",\n },\n {\n value: \"FM2190-KG\",\n label: \"FM2190\",\n },\n {\n value: \"FM2191-KG\",\n label: \"FM2191\",\n },\n {\n value: \"FM2192-KG\",\n label: \"FM2192\",\n },\n {\n value: \"FM2193-KG\",\n label: \"FM2193\",\n },\n {\n value: \"FM2194-KG\",\n label: \"FM2194\",\n },\n {\n value: \"FM2195-KG\",\n label: \"FM2195\",\n },\n {\n value: \"FM2196-KG\",\n label: \"FM2196\",\n },\n {\n value: \"FM2197-KG\",\n label: \"FM2197\",\n },\n {\n value: \"FM2198-KG\",\n label: \"FM2198\",\n },\n {\n value: \"FM2199-KG\",\n label: \"FM2199\",\n },\n {\n value: \"FM2200-KG\",\n label: \"FM2200\",\n },\n {\n value: \"FM2201-KG\",\n label: \"FM2201\",\n },\n {\n value: \"FM2202-KG\",\n label: \"FM2202\",\n },\n {\n value: \"FM2203-KG\",\n label: \"FM2203\",\n },\n {\n value: \"FM2204-KG\",\n label: \"FM2204\",\n },\n {\n value: \"FM2205-KG\",\n label: \"FM2205\",\n },\n {\n value: \"FM2206-KG\",\n label: \"FM2206\",\n },\n {\n value: \"FM2207-KG\",\n label: \"FM2207\",\n },\n {\n value: \"FM2208-KG\",\n label: \"FM2208\",\n },\n {\n value: \"FM2209-KG\",\n label: \"FM2209\",\n },\n {\n value: \"FM2210-KG\",\n label: \"FM2210\",\n },\n {\n value: \"FM2211-KG\",\n label: \"FM2211\",\n },\n {\n value: \"FM2212-KG\",\n label: \"FM2212\",\n },\n {\n value: \"FM2213-KG\",\n label: \"FM2213\",\n },\n {\n value: \"FM2214-KG\",\n label: \"FM2214\",\n },\n {\n value: \"FM2215-KG\",\n label: \"FM2215\",\n },\n {\n value: \"FM2216-KG\",\n label: \"FM2216\",\n },\n {\n value: \"FM2217-KG\",\n label: \"FM2217\",\n },\n {\n value: \"FM2218-KG\",\n label: \"FM2218\",\n },\n {\n value: \"FM2219-KG\",\n label: \"FM2219\",\n },\n {\n value: \"FM2220-KG\",\n label: \"FM2220\",\n },\n {\n value: \"FM2221-KG\",\n label: \"FM2221\",\n },\n {\n value: \"FM2223-KG\",\n label: \"FM2223\",\n },\n {\n value: \"FM2224-KG\",\n label: \"FM2224\",\n },\n {\n value: \"FM2225-KG\",\n label: \"FM2225\",\n },\n {\n value: \"FM2226-KG\",\n label: \"FM2226\",\n },\n {\n value: \"FM2228-KG\",\n label: \"FM2228\",\n },\n {\n value: \"FM2229-KG\",\n label: \"FM2229\",\n },\n {\n value: \"FM2230-KG\",\n label: \"FM2230\",\n },\n {\n value: \"FM2231-KG\",\n label: \"FM2231\",\n },\n {\n value: \"FM2232-KG\",\n label: \"FM2232\",\n },\n {\n value: \"FM2234-KG\",\n label: \"FM2234\",\n },\n {\n value: \"FM2235-KG\",\n label: \"FM2235\",\n },\n {\n value: \"FM2236-KG\",\n label: \"FM2236\",\n },\n {\n value: \"FM2237-KG\",\n label: \"FM2237\",\n },\n {\n value: \"FM2238-KG\",\n label: \"FM2238\",\n },\n {\n value: \"FM2239-KG\",\n label: \"FM2239\",\n },\n {\n value: \"FM2240-KG\",\n label: \"FM2240\",\n },\n {\n value: \"FM2245-KG\",\n label: \"FM2245\",\n },\n {\n value: \"FM2246-KG\",\n label: \"FM2246\",\n },\n {\n value: \"FM2247-KG\",\n label: \"FM2247\",\n },\n {\n value: \"FM2249-KG\",\n label: \"FM2249\",\n },\n {\n value: \"FM2250-KG\",\n label: \"FM2250\",\n },\n {\n value: \"FM2251-KG\",\n label: \"FM2251\",\n },\n {\n value: \"FM2252-KG\",\n label: \"FM2252\",\n },\n {\n value: \"FM2253-KG\",\n label: \"FM2253\",\n },\n {\n value: \"FM2254-KG\",\n label: \"FM2254\",\n },\n {\n value: \"FM2255-KG\",\n label: \"FM2255\",\n },\n {\n value: \"FM2256-KG\",\n label: \"FM2256\",\n },\n {\n value: \"FM2257-KG\",\n label: \"FM2257\",\n },\n {\n value: \"FM2258-KG\",\n label: \"FM2258\",\n },\n {\n value: \"FM2259-KG\",\n label: \"FM2259\",\n },\n {\n value: \"FM2260-KG\",\n label: \"FM2260\",\n },\n {\n value: \"FM2261-KG\",\n label: \"FM2261\",\n },\n {\n value: \"FM2262-KG\",\n label: \"FM2262\",\n },\n {\n value: \"FM2263-KG\",\n label: \"FM2263\",\n },\n {\n value: \"FM2264-KG\",\n label: \"FM2264\",\n },\n {\n value: \"FM2265-KG\",\n label: \"FM2265\",\n },\n {\n value: \"FM2266-KG\",\n label: \"FM2266\",\n },\n {\n value: \"FM2267-KG\",\n label: \"FM2267\",\n },\n {\n value: \"FM2268-KG\",\n label: \"FM2268\",\n },\n {\n value: \"FM2269-KG\",\n label: \"FM2269\",\n },\n {\n value: \"FM2270-KG\",\n label: \"FM2270\",\n },\n {\n value: \"FM2271-KG\",\n label: \"FM2271\",\n },\n {\n value: \"FM2272-KG\",\n label: \"FM2272\",\n },\n {\n value: \"FM2273-KG\",\n label: \"FM2273\",\n },\n {\n value: \"FM2274-KG\",\n label: \"FM2274\",\n },\n {\n value: \"FM2275-KG\",\n label: \"FM2275\",\n },\n {\n value: \"FM2276-KG\",\n label: \"FM2276\",\n },\n {\n value: \"FM2278-KG\",\n label: \"FM2278\",\n },\n {\n value: \"FM2279-KG\",\n label: \"FM2279\",\n },\n {\n value: \"FM2280-KG\",\n label: \"FM2280\",\n },\n {\n value: \"FM2281-KG\",\n label: \"FM2281\",\n },\n {\n value: \"FM2282-KG\",\n label: \"FM2282\",\n },\n {\n value: \"FM2283-KG\",\n label: \"FM2283\",\n },\n {\n value: \"FM2284-KG\",\n label: \"FM2284\",\n },\n {\n value: \"FM2285-KG\",\n label: \"FM2285\",\n },\n {\n value: \"FM2286-KG\",\n label: \"FM2286\",\n },\n {\n value: \"FM2287-KG\",\n label: \"FM2287\",\n },\n {\n value: \"FM2288-KG\",\n label: \"FM2288\",\n },\n {\n value: \"FM2289-KG\",\n label: \"FM2289\",\n },\n {\n value: \"FM2290-KG\",\n label: \"FM2290\",\n },\n {\n value: \"FM2292-KG\",\n label: \"FM2292\",\n },\n {\n value: \"FM2293-KG\",\n label: \"FM2293\",\n },\n {\n value: \"FM2294-KG\",\n label: \"FM2294\",\n },\n {\n value: \"FM2295-KG\",\n label: \"FM2295\",\n },\n {\n value: \"FM2296-KG\",\n label: \"FM2296\",\n },\n {\n value: \"FM2297-KG\",\n label: \"FM2297\",\n },\n {\n value: \"FM2298-KG\",\n label: \"FM2298\",\n },\n {\n value: \"FM2299-KG\",\n label: \"FM2299\",\n },\n {\n value: \"FM2300-KG\",\n label: \"FM2300\",\n },\n {\n value: \"FM2301-KG\",\n label: \"FM2301\",\n },\n {\n value: \"FM2302-KG\",\n label: \"FM2302\",\n },\n {\n value: \"FM2303-KG\",\n label: \"FM2303\",\n },\n {\n value: \"FM2304-KG\",\n label: \"FM2304\",\n },\n {\n value: \"FM2305-KG\",\n label: \"FM2305\",\n },\n {\n value: \"FM2306-KG\",\n label: \"FM2306\",\n },\n {\n value: \"FM2307-KG\",\n label: \"FM2307\",\n },\n {\n value: \"FM2308-KG\",\n label: \"FM2308\",\n },\n {\n value: \"FM2309-KG\",\n label: \"FM2309\",\n },\n {\n value: \"FM2310-KG\",\n label: \"FM2310\",\n },\n {\n value: \"FM2311-KG\",\n label: \"FM2311\",\n },\n {\n value: \"FM2312-KG\",\n label: \"FM2312\",\n },\n {\n value: \"FM2313-KG\",\n label: \"FM2313\",\n },\n {\n value: \"FM2314-KG\",\n label: \"FM2314\",\n },\n {\n value: \"FM2315-KG\",\n label: \"FM2315\",\n },\n {\n value: \"FM2316-KG\",\n label: \"FM2316\",\n },\n {\n value: \"FM2318-KG\",\n label: \"FM2318\",\n },\n {\n value: \"FM2319-KG\",\n label: \"FM2319\",\n },\n {\n value: \"FM2320-KG\",\n label: \"FM2320\",\n },\n {\n value: \"FM2321-KG\",\n label: \"FM2321\",\n },\n {\n value: \"FM2324-KG\",\n label: \"FM2324\",\n },\n {\n value: \"FM2326-KG\",\n label: \"FM2326\",\n },\n {\n value: \"FM2327-KG\",\n label: \"FM2327\",\n },\n {\n value: \"FM2328-KG\",\n label: \"FM2328\",\n },\n {\n value: \"FM2330-KG\",\n label: \"FM2330\",\n },\n {\n value: \"FM2331-KG\",\n label: \"FM2331\",\n },\n {\n value: \"FM2332-KG\",\n label: \"FM2332\",\n },\n {\n value: \"FM2333-KG\",\n label: \"FM2333\",\n },\n {\n value: \"FM2334-KG\",\n label: \"FM2334\",\n },\n {\n value: \"FM2335-KG\",\n label: \"FM2335\",\n },\n {\n value: \"FM2336-KG\",\n label: \"FM2336\",\n },\n {\n value: \"FM2337-KG\",\n label: \"FM2337\",\n },\n {\n value: \"FM2339-KG\",\n label: \"FM2339\",\n },\n {\n value: \"FM2343-KG\",\n label: \"FM2343\",\n },\n {\n value: \"FM2344-KG\",\n label: \"FM2344\",\n },\n {\n value: \"FM2345-KG\",\n label: \"FM2345\",\n },\n {\n value: \"FM2346-KG\",\n label: \"FM2346\",\n },\n {\n value: \"FM2347-KG\",\n label: \"FM2347\",\n },\n {\n value: \"FM2348-KG\",\n label: \"FM2348\",\n },\n {\n value: \"FM2349-KG\",\n label: \"FM2349\",\n },\n {\n value: \"FM2350-KG\",\n label: \"FM2350\",\n },\n {\n value: \"FM2351-KG\",\n label: \"FM2351\",\n },\n {\n value: \"FM2352-KG\",\n label: \"FM2352\",\n },\n {\n value: \"FM2353-KG\",\n label: \"FM2353\",\n },\n {\n value: \"FM2354-KG\",\n label: \"FM2354\",\n },\n {\n value: \"FM2356-KG\",\n label: \"FM2356\",\n },\n {\n value: \"FM2357-KG\",\n label: \"FM2357\",\n },\n {\n value: \"FM2358-KG\",\n label: \"FM2358\",\n },\n {\n value: \"FM2359-KG\",\n label: \"FM2359\",\n },\n {\n value: \"FM2360-KG\",\n label: \"FM2360\",\n },\n {\n value: \"FM2361-KG\",\n label: \"FM2361\",\n },\n {\n value: \"FM2362-KG\",\n label: \"FM2362\",\n },\n {\n value: \"FM2363-KG\",\n label: \"FM2363\",\n },\n {\n value: \"FM2364-KG\",\n label: \"FM2364\",\n },\n {\n value: \"FM2365-KG\",\n label: \"FM2365\",\n },\n {\n value: \"FM2367-KG\",\n label: \"FM2367\",\n },\n {\n value: \"FM2368-KG\",\n label: \"FM2368\",\n },\n {\n value: \"FM2369-KG\",\n label: \"FM2369\",\n },\n {\n value: \"FM2370-KG\",\n label: \"FM2370\",\n },\n {\n value: \"FM2371-KG\",\n label: \"FM2371\",\n },\n {\n value: \"FM2372-KG\",\n label: \"FM2372\",\n },\n {\n value: \"FM2373-KG\",\n label: \"FM2373\",\n },\n {\n value: \"FM2374-KG\",\n label: \"FM2374\",\n },\n {\n value: \"FM2376-KG\",\n label: \"FM2376\",\n },\n {\n value: \"FM2377-KG\",\n label: \"FM2377\",\n },\n {\n value: \"FM2378-KG\",\n label: \"FM2378\",\n },\n {\n value: \"FM2379-KG\",\n label: \"FM2379\",\n },\n {\n value: \"FM2380-KG\",\n label: \"FM2380\",\n },\n {\n value: \"FM2382-KG\",\n label: \"FM2382\",\n },\n {\n value: \"FM2383-KG\",\n label: \"FM2383\",\n },\n {\n value: \"FM2384-KG\",\n label: \"FM2384\",\n },\n {\n value: \"FM2385-KG\",\n label: \"FM2385\",\n },\n {\n value: \"FM2386-KG\",\n label: \"FM2386\",\n },\n {\n value: \"FM2387-KG\",\n label: \"FM2387\",\n },\n {\n value: \"FM2388-KG\",\n label: \"FM2388\",\n },\n {\n value: \"FM2390-KG\",\n label: \"FM2390\",\n },\n {\n value: \"FM2391-KG\",\n label: \"FM2391\",\n },\n {\n value: \"FM2392-KG\",\n label: \"FM2392\",\n },\n {\n value: \"FM2393-KG\",\n label: \"FM2393\",\n },\n {\n value: \"FM2394-KG\",\n label: \"FM2394\",\n },\n {\n value: \"FM2395-KG\",\n label: \"FM2395\",\n },\n {\n value: \"FM2396-KG\",\n label: \"FM2396\",\n },\n {\n value: \"FM2397-KG\",\n label: \"FM2397\",\n },\n {\n value: \"FM2402-KG\",\n label: \"FM2402\",\n },\n {\n value: \"FM2403-KG\",\n label: \"FM2403\",\n },\n {\n value: \"FM2404-KG\",\n label: \"FM2404\",\n },\n {\n value: \"FM2405-KG\",\n label: \"FM2405\",\n },\n {\n value: \"FM2406-KG\",\n label: \"FM2406\",\n },\n {\n value: \"FM2407-KG\",\n label: \"FM2407\",\n },\n {\n value: \"FM2408-KG\",\n label: \"FM2408\",\n },\n {\n value: \"FM2409-KG\",\n label: \"FM2409\",\n },\n {\n value: \"FM2410-KG\",\n label: \"FM2410\",\n },\n {\n value: \"FM2411-KG\",\n label: \"FM2411\",\n },\n {\n value: \"FM2412-KG\",\n label: \"FM2412\",\n },\n {\n value: \"FM2413-KG\",\n label: \"FM2413\",\n },\n {\n value: \"FM2414-KG\",\n label: \"FM2414\",\n },\n {\n value: \"FM2415-KG\",\n label: \"FM2415\",\n },\n {\n value: \"FM2416-KG\",\n label: \"FM2416\",\n },\n {\n value: \"FM2417-KG\",\n label: \"FM2417\",\n },\n {\n value: \"FM2418-KG\",\n label: \"FM2418\",\n },\n {\n value: \"FM2419-KG\",\n label: \"FM2419\",\n },\n {\n value: \"FM2420-KG\",\n label: \"FM2420\",\n },\n {\n value: \"FM2421-KG\",\n label: \"FM2421\",\n },\n {\n value: \"FM2422-KG\",\n label: \"FM2422\",\n },\n {\n value: \"FM2423-KG\",\n label: \"FM2423\",\n },\n {\n value: \"FM2425-KG\",\n label: \"FM2425\",\n },\n {\n value: \"FM2426-KG\",\n label: \"FM2426\",\n },\n {\n value: \"FM2427-KG\",\n label: \"FM2427\",\n },\n {\n value: \"FM2428-KG\",\n label: \"FM2428\",\n },\n {\n value: \"FM2429-KG\",\n label: \"FM2429\",\n },\n {\n value: \"FM2430-KG\",\n label: \"FM2430\",\n },\n {\n value: \"FM2431-KG\",\n label: \"FM2431\",\n },\n {\n value: \"FM2432-KG\",\n label: \"FM2432\",\n },\n {\n value: \"FM2433-KG\",\n label: \"FM2433\",\n },\n {\n value: \"FM2434-KG\",\n label: \"FM2434\",\n },\n {\n value: \"FM2435-KG\",\n label: \"FM2435\",\n },\n {\n value: \"FM2436-KG\",\n label: \"FM2436\",\n },\n {\n value: \"FM2437-KG\",\n label: \"FM2437\",\n },\n {\n value: \"FM2438-KG\",\n label: \"FM2438\",\n },\n {\n value: \"FM2439-KG\",\n label: \"FM2439\",\n },\n {\n value: \"FM2440-KG\",\n label: \"FM2440\",\n },\n {\n value: \"FM2441-KG\",\n label: \"FM2441\",\n },\n {\n value: \"FM2442-KG\",\n label: \"FM2442\",\n },\n {\n value: \"FM2443-KG\",\n label: \"FM2443\",\n },\n {\n value: \"FM2444-KG\",\n label: \"FM2444\",\n },\n {\n value: \"FM2445-KG\",\n label: \"FM2445\",\n },\n {\n value: \"FM2446-KG\",\n label: \"FM2446\",\n },\n {\n value: \"FM2447-KG\",\n label: \"FM2447\",\n },\n {\n value: \"FM2448-KG\",\n label: \"FM2448\",\n },\n {\n value: \"FM2449-KG\",\n label: \"FM2449\",\n },\n {\n value: \"FM2450-KG\",\n label: \"FM2450\",\n },\n {\n value: \"FM2451-KG\",\n label: \"FM2451\",\n },\n {\n value: \"FM2452-KG\",\n label: \"FM2452\",\n },\n {\n value: \"FM2453-KG\",\n label: \"FM2453\",\n },\n {\n value: \"FM2454-KG\",\n label: \"FM2454\",\n },\n {\n value: \"FM2455-KG\",\n label: \"FM2455\",\n },\n {\n value: \"FM2456-KG\",\n label: \"FM2456\",\n },\n {\n value: \"FM2457-KG\",\n label: \"FM2457\",\n },\n {\n value: \"FM2458-KG\",\n label: \"FM2458\",\n },\n {\n value: \"FM2459-KG\",\n label: \"FM2459\",\n },\n {\n value: \"FM2460-KG\",\n label: \"FM2460\",\n },\n {\n value: \"FM2461-KG\",\n label: \"FM2461\",\n },\n {\n value: \"FM2462-KG\",\n label: \"FM2462\",\n },\n {\n value: \"FM2464-KG\",\n label: \"FM2464\",\n },\n {\n value: \"FM2465-KG\",\n label: \"FM2465\",\n },\n {\n value: \"FM2466-KG\",\n label: \"FM2466\",\n },\n {\n value: \"FM2467-KG\",\n label: \"FM2467\",\n },\n {\n value: \"FM2468-KG\",\n label: \"FM2468\",\n },\n {\n value: \"FM2470-KG\",\n label: \"FM2470\",\n },\n {\n value: \"FM2471-KG\",\n label: \"FM2471\",\n },\n {\n value: \"FM2472-KG\",\n label: \"FM2472\",\n },\n {\n value: \"FM2473-KG\",\n label: \"FM2473\",\n },\n {\n value: \"FM2474-KG\",\n label: \"FM2474\",\n },\n {\n value: \"FM2475-KG\",\n label: \"FM2475\",\n },\n {\n value: \"FM2476-KG\",\n label: \"FM2476\",\n },\n {\n value: \"FM2477-KG\",\n label: \"FM2477\",\n },\n {\n value: \"FM2478-KG\",\n label: \"FM2478\",\n },\n {\n value: \"FM2479-KG\",\n label: \"FM2479\",\n },\n {\n value: \"FM2480-KG\",\n label: \"FM2480\",\n },\n {\n value: \"FM2481-KG\",\n label: \"FM2481\",\n },\n {\n value: \"FM2482-KG\",\n label: \"FM2482\",\n },\n {\n value: \"FM2483-KG\",\n label: \"FM2483\",\n },\n {\n value: \"FM2484-KG\",\n label: \"FM2484\",\n },\n {\n value: \"FM2485-KG\",\n label: \"FM2485\",\n },\n {\n value: \"FM2486-KG\",\n label: \"FM2486\",\n },\n {\n value: \"FM2487-KG\",\n label: \"FM2487\",\n },\n {\n value: \"FM2488-KG\",\n label: \"FM2488\",\n },\n {\n value: \"FM2489-KG\",\n label: \"FM2489\",\n },\n {\n value: \"FM2490-KG\",\n label: \"FM2490\",\n },\n {\n value: \"FM2491-KG\",\n label: \"FM2491\",\n },\n {\n value: \"FM2492-KG\",\n label: \"FM2492\",\n },\n {\n value: \"FM2493-KG\",\n label: \"FM2493\",\n },\n {\n value: \"FM2494-KG\",\n label: \"FM2494\",\n },\n {\n value: \"FM2495-KG\",\n label: \"FM2495\",\n },\n {\n value: \"FM2496-KG\",\n label: \"FM2496\",\n },\n {\n value: \"FM2497-KG\",\n label: \"FM2497\",\n },\n {\n value: \"FM2498-KG\",\n label: \"FM2498\",\n },\n {\n value: \"FM2499-KG\",\n label: \"FM2499\",\n },\n {\n value: \"FM2500-KG\",\n label: \"FM2500\",\n },\n {\n value: \"FM2501-KG\",\n label: \"FM2501\",\n },\n {\n value: \"FM2502-KG\",\n label: \"FM2502\",\n },\n {\n value: \"FM2503-KG\",\n label: \"FM2503\",\n },\n {\n value: \"FM2504-KG\",\n label: \"FM2504\",\n },\n {\n value: \"FM2505-KG\",\n label: \"FM2505\",\n },\n {\n value: \"FM2506-KG\",\n label: \"FM2506\",\n },\n {\n value: \"FM2507-KG\",\n label: \"FM2507\",\n },\n {\n value: \"FM2508-KG\",\n label: \"FM2508\",\n },\n {\n value: \"FM2509-KG\",\n label: \"FM2509\",\n },\n {\n value: \"FM2510-KG\",\n label: \"FM2510\",\n },\n {\n value: \"FM2511-KG\",\n label: \"FM2511\",\n },\n {\n value: \"FM2512-KG\",\n label: \"FM2512\",\n },\n {\n value: \"FM2514-KG\",\n label: \"FM2514\",\n },\n {\n value: \"FM2515-KG\",\n label: \"FM2515\",\n },\n {\n value: \"FM2516-KG\",\n label: \"FM2516\",\n },\n {\n value: \"FM2517-KG\",\n label: \"FM2517\",\n },\n {\n value: \"FM2518-KG\",\n label: \"FM2518\",\n },\n {\n value: \"FM2519-KG\",\n label: \"FM2519\",\n },\n {\n value: \"FM2520-KG\",\n label: \"FM2520\",\n },\n {\n value: \"FM2521-KG\",\n label: \"FM2521\",\n },\n {\n value: \"FM2522-KG\",\n label: \"FM2522\",\n },\n {\n value: \"FM2524-KG\",\n label: \"FM2524\",\n },\n {\n value: \"FM2525-KG\",\n label: \"FM2525\",\n },\n {\n value: \"FM2526-KG\",\n label: \"FM2526\",\n },\n {\n value: \"FM2527-KG\",\n label: \"FM2527\",\n },\n {\n value: \"FM2528-KG\",\n label: \"FM2528\",\n },\n {\n value: \"FM2529-KG\",\n label: \"FM2529\",\n },\n {\n value: \"FM2530-KG\",\n label: \"FM2530\",\n },\n {\n value: \"FM2531-KG\",\n label: \"FM2531\",\n },\n {\n value: \"FM2532-KG\",\n label: \"FM2532\",\n },\n {\n value: \"FM2533-KG\",\n label: \"FM2533\",\n },\n {\n value: \"FM2534-KG\",\n label: \"FM2534\",\n },\n {\n value: \"FM2535-KG\",\n label: \"FM2535\",\n },\n {\n value: \"FM2536-KG\",\n label: \"FM2536\",\n },\n {\n value: \"FM2537-KG\",\n label: \"FM2537\",\n },\n {\n value: \"FM2538-KG\",\n label: \"FM2538\",\n },\n {\n value: \"FM2539-KG\",\n label: \"FM2539\",\n },\n {\n value: \"FM2540-KG\",\n label: \"FM2540\",\n },\n {\n value: \"FM2541-KG\",\n label: \"FM2541\",\n },\n {\n value: \"FM2542-KG\",\n label: \"FM2542\",\n },\n {\n value: \"FM2543-KG\",\n label: \"FM2543\",\n },\n {\n value: \"FM2544-KG\",\n label: \"FM2544\",\n },\n {\n value: \"FM2546-KG\",\n label: \"FM2546\",\n },\n {\n value: \"FM2547-KG\",\n label: \"FM2547\",\n },\n {\n value: \"FM2548-KG\",\n label: \"FM2548\",\n },\n {\n value: \"FM2549-KG\",\n label: \"FM2549\",\n },\n {\n value: \"FM2550-KG\",\n label: \"FM2550\",\n },\n {\n value: \"FM2551-KG\",\n label: \"FM2551\",\n },\n {\n value: \"FM2552-KG\",\n label: \"FM2552\",\n },\n {\n value: \"FM2553-KG\",\n label: \"FM2553\",\n },\n {\n value: \"FM2554-KG\",\n label: \"FM2554\",\n },\n {\n value: \"FM2555-KG\",\n label: \"FM2555\",\n },\n {\n value: \"FM2556-KG\",\n label: \"FM2556\",\n },\n {\n value: \"FM2557-KG\",\n label: \"FM2557\",\n },\n {\n value: \"FM2558-KG\",\n label: \"FM2558\",\n },\n {\n value: \"FM2559-KG\",\n label: \"FM2559\",\n },\n {\n value: \"FM2560-KG\",\n label: \"FM2560\",\n },\n {\n value: \"FM2561-KG\",\n label: \"FM2561\",\n },\n {\n value: \"FM2562-KG\",\n label: \"FM2562\",\n },\n {\n value: \"FM2563-KG\",\n label: \"FM2563\",\n },\n {\n value: \"FM2564-KG\",\n label: \"FM2564\",\n },\n {\n value: \"FM2565-KG\",\n label: \"FM2565\",\n },\n {\n value: \"FM2566-KG\",\n label: \"FM2566\",\n },\n {\n value: \"FM2567-KG\",\n label: \"FM2567\",\n },\n {\n value: \"FM2568-KG\",\n label: \"FM2568\",\n },\n {\n value: \"FM2569-KG\",\n label: \"FM2569\",\n },\n {\n value: \"FM2570-KG\",\n label: \"FM2570\",\n },\n {\n value: \"FM2571-KG\",\n label: \"FM2571\",\n },\n {\n value: \"FM2572-KG\",\n label: \"FM2572\",\n },\n {\n value: \"FM2573-KG\",\n label: \"FM2573\",\n },\n {\n value: \"FM2574-KG\",\n label: \"FM2574\",\n },\n {\n value: \"FM2575-KG\",\n label: \"FM2575\",\n },\n {\n value: \"FM2576-KG\",\n label: \"FM2576\",\n },\n {\n value: \"FM2577-KG\",\n label: \"FM2577\",\n },\n {\n value: \"FM2578-KG\",\n label: \"FM2578\",\n },\n {\n value: \"FM2579-KG\",\n label: \"FM2579\",\n },\n {\n value: \"FM2580-KG\",\n label: \"FM2580\",\n },\n {\n value: \"FM2581-KG\",\n label: \"FM2581\",\n },\n {\n value: \"FM2582-KG\",\n label: \"FM2582\",\n },\n {\n value: \"FM2583-KG\",\n label: \"FM2583\",\n },\n {\n value: \"FM2584-KG\",\n label: \"FM2584\",\n },\n {\n value: \"FM2585-KG\",\n label: \"FM2585\",\n },\n {\n value: \"FM2586-KG\",\n label: \"FM2586\",\n },\n {\n value: \"FM2587-KG\",\n label: \"FM2587\",\n },\n {\n value: \"FM2589-KG\",\n label: \"FM2589\",\n },\n {\n value: \"FM2590-KG\",\n label: \"FM2590\",\n },\n {\n value: \"FM2591-KG\",\n label: \"FM2591\",\n },\n {\n value: \"FM2592-KG\",\n label: \"FM2592\",\n },\n {\n value: \"FM2595-KG\",\n label: \"FM2595\",\n },\n {\n value: \"FM2598-KG\",\n label: \"FM2598\",\n },\n {\n value: \"FM2599-KG\",\n label: \"FM2599\",\n },\n {\n value: \"FM2601-KG\",\n label: \"FM2601\",\n },\n {\n value: \"FM2602-KG\",\n label: \"FM2602\",\n },\n {\n value: \"FM2603-KG\",\n label: \"FM2603\",\n },\n {\n value: \"FM2604-KG\",\n label: \"FM2604\",\n },\n {\n value: \"FM2605-KG\",\n label: \"FM2605\",\n },\n {\n value: \"FM2606-KG\",\n label: \"FM2606\",\n },\n {\n value: \"FM2607-KG\",\n label: \"FM2607\",\n },\n {\n value: \"FM2608-KG\",\n label: \"FM2608\",\n },\n {\n value: \"FM2609-KG\",\n label: \"FM2609\",\n },\n {\n value: \"FM2610-KG\",\n label: \"FM2610\",\n },\n {\n value: \"FM2611-KG\",\n label: \"FM2611\",\n },\n {\n value: \"FM2612-KG\",\n label: \"FM2612\",\n },\n {\n value: \"FM2613-KG\",\n label: \"FM2613\",\n },\n {\n value: \"FM2614-KG\",\n label: \"FM2614\",\n },\n {\n value: \"FM2615-KG\",\n label: \"FM2615\",\n },\n {\n value: \"FM2616-KG\",\n label: \"FM2616\",\n },\n {\n value: \"FM2617-KG\",\n label: \"FM2617\",\n },\n {\n value: \"FM2619-KG\",\n label: \"FM2619\",\n },\n {\n value: \"FM2620-KG\",\n label: \"FM2620\",\n },\n {\n value: \"FM2621-KG\",\n label: \"FM2621\",\n },\n {\n value: \"FM2622-KG\",\n label: \"FM2622\",\n },\n {\n value: \"FM2623-KG\",\n label: \"FM2623\",\n },\n {\n value: \"FM2624-KG\",\n label: \"FM2624\",\n },\n {\n value: \"FM2625-KG\",\n label: \"FM2625\",\n },\n {\n value: \"FM2626-KG\",\n label: \"FM2626\",\n },\n {\n value: \"FM2628-KG\",\n label: \"FM2628\",\n },\n {\n value: \"FM2629-KG\",\n label: \"FM2629\",\n },\n {\n value: \"FM2632-KG\",\n label: \"FM2632\",\n },\n {\n value: \"FM2633-KG\",\n label: \"FM2633\",\n },\n {\n value: \"FM2634-KG\",\n label: \"FM2634\",\n },\n {\n value: \"FM2635-KG\",\n label: \"FM2635\",\n },\n {\n value: \"FM2636-KG\",\n label: \"FM2636\",\n },\n {\n value: \"FM2637-KG\",\n label: \"FM2637\",\n },\n {\n value: \"FM2638-KG\",\n label: \"FM2638\",\n },\n {\n value: \"FM2639-KG\",\n label: \"FM2639\",\n },\n {\n value: \"FM2640-KG\",\n label: \"FM2640\",\n },\n {\n value: \"FM2641-KG\",\n label: \"FM2641\",\n },\n {\n value: \"FM2642-KG\",\n label: \"FM2642\",\n },\n {\n value: \"FM2643-KG\",\n label: \"FM2643\",\n },\n {\n value: \"FM2644-KG\",\n label: \"FM2644\",\n },\n {\n value: \"FM2645-KG\",\n label: \"FM2645\",\n },\n {\n value: \"FM2646-KG\",\n label: \"FM2646\",\n },\n {\n value: \"FM2647-KG\",\n label: \"FM2647\",\n },\n {\n value: \"FM2648-KG\",\n label: \"FM2648\",\n },\n {\n value: \"FM2649-KG\",\n label: \"FM2649\",\n },\n {\n value: \"FM2650-KG\",\n label: \"FM2650\",\n },\n {\n value: \"FM2651-KG\",\n label: \"FM2651\",\n },\n {\n value: \"FM2652-KG\",\n label: \"FM2652\",\n },\n {\n value: \"FM2653-KG\",\n label: \"FM2653\",\n },\n {\n value: \"FM2655-KG\",\n label: \"FM2655\",\n },\n {\n value: \"FM2656-KG\",\n label: \"FM2656\",\n },\n {\n value: \"FM2657-KG\",\n label: \"FM2657\",\n },\n {\n value: \"FM2658-KG\",\n label: \"FM2658\",\n },\n {\n value: \"FM2659-KG\",\n label: \"FM2659\",\n },\n {\n value: \"FM2660-KG\",\n label: \"FM2660\",\n },\n {\n value: \"FM2661-KG\",\n label: \"FM2661\",\n },\n {\n value: \"FM2662-KG\",\n label: \"FM2662\",\n },\n {\n value: \"FM2663-KG\",\n label: \"FM2663\",\n },\n {\n value: \"FM2664-KG\",\n label: \"FM2664\",\n },\n {\n value: \"FM2665-KG\",\n label: \"FM2665\",\n },\n {\n value: \"FM2666-KG\",\n label: \"FM2666\",\n },\n {\n value: \"FM2667-KG\",\n label: \"FM2667\",\n },\n {\n value: \"FM2668-KG\",\n label: \"FM2668\",\n },\n {\n value: \"FM2669-KG\",\n label: \"FM2669\",\n },\n {\n value: \"FM2670-KG\",\n label: \"FM2670\",\n },\n {\n value: \"FM2671-KG\",\n label: \"FM2671\",\n },\n {\n value: \"FM2672-KG\",\n label: \"FM2672\",\n },\n {\n value: \"FM2673-KG\",\n label: \"FM2673\",\n },\n {\n value: \"FM2674-KG\",\n label: \"FM2674\",\n },\n {\n value: \"FM2675-KG\",\n label: \"FM2675\",\n },\n {\n value: \"FM2676-KG\",\n label: \"FM2676\",\n },\n {\n value: \"FM2677-KG\",\n label: \"FM2677\",\n },\n {\n value: \"FM2678-KG\",\n label: \"FM2678\",\n },\n {\n value: \"FM2679-KG\",\n label: \"FM2679\",\n },\n {\n value: \"FM2680-KG\",\n label: \"FM2680\",\n },\n {\n value: \"FM2681-KG\",\n label: \"FM2681\",\n },\n {\n value: \"FM2682-KG\",\n label: \"FM2682\",\n },\n {\n value: \"FM2683-KG\",\n label: \"FM2683\",\n },\n {\n value: \"FM2684-KG\",\n label: \"FM2684\",\n },\n {\n value: \"FM2685-KG\",\n label: \"FM2685\",\n },\n {\n value: \"FM2686-KG\",\n label: \"FM2686\",\n },\n {\n value: \"FM2687-KG\",\n label: \"FM2687\",\n },\n {\n value: \"FM2688-KG\",\n label: \"FM2688\",\n },\n {\n value: \"FM2689-KG\",\n label: \"FM2689\",\n },\n {\n value: \"FM2691-KG\",\n label: \"FM2691\",\n },\n {\n value: \"FM2693-KG\",\n label: \"FM2693\",\n },\n {\n value: \"FM2694-KG\",\n label: \"FM2694\",\n },\n {\n value: \"FM2695-KG\",\n label: \"FM2695\",\n },\n {\n value: \"FM2696-KG\",\n label: \"FM2696\",\n },\n {\n value: \"FM2697-KG\",\n label: \"FM2697\",\n },\n {\n value: \"FM2698-KG\",\n label: \"FM2698\",\n },\n {\n value: \"FM2700-KG\",\n label: \"FM2700\",\n },\n {\n value: \"FM2701-KG\",\n label: \"FM2701\",\n },\n {\n value: \"FM2702-KG\",\n label: \"FM2702\",\n },\n {\n value: \"FM2703-KG\",\n label: \"FM2703\",\n },\n {\n value: \"FM2705-KG\",\n label: \"FM2705\",\n },\n {\n value: \"FM2706-KG\",\n label: \"FM2706\",\n },\n {\n value: \"FM2707-KG\",\n label: \"FM2707\",\n },\n {\n value: \"FM2708-KG\",\n label: \"FM2708\",\n },\n {\n value: \"FM2709-KG\",\n label: \"FM2709\",\n },\n {\n value: \"FM2710-KG\",\n label: \"FM2710\",\n },\n {\n value: \"FM2711-KG\",\n label: \"FM2711\",\n },\n {\n value: \"FM2712-KG\",\n label: \"FM2712\",\n },\n {\n value: \"FM2713-KG\",\n label: \"FM2713\",\n },\n {\n value: \"FM2714-KG\",\n label: \"FM2714\",\n },\n {\n value: \"FM2716-KG\",\n label: \"FM2716\",\n },\n {\n value: \"FM2717-KG\",\n label: \"FM2717\",\n },\n {\n value: \"FM2718-KG\",\n label: \"FM2718\",\n },\n {\n value: \"FM2719-KG\",\n label: \"FM2719\",\n },\n {\n value: \"FM2720-KG\",\n label: \"FM2720\",\n },\n {\n value: \"FM2723-KG\",\n label: \"FM2723\",\n },\n {\n value: \"FM2724-KG\",\n label: \"FM2724\",\n },\n {\n value: \"FM2725-KG\",\n label: \"FM2725\",\n },\n {\n value: \"FM2726-KG\",\n label: \"FM2726\",\n },\n {\n value: \"FM2727-KG\",\n label: \"FM2727\",\n },\n {\n value: \"FM2728-KG\",\n label: \"FM2728\",\n },\n {\n value: \"FM2729-KG\",\n label: \"FM2729\",\n },\n {\n value: \"FM2730-KG\",\n label: \"FM2730\",\n },\n {\n value: \"FM2731-KG\",\n label: \"FM2731\",\n },\n {\n value: \"FM2732-KG\",\n label: \"FM2732\",\n },\n {\n value: \"FM2733-KG\",\n label: \"FM2733\",\n },\n {\n value: \"FM2734-KG\",\n label: \"FM2734\",\n },\n {\n value: \"FM2735-KG\",\n label: \"FM2735\",\n },\n {\n value: \"FM2736-KG\",\n label: \"FM2736\",\n },\n {\n value: \"FM2737-KG\",\n label: \"FM2737\",\n },\n {\n value: \"FM2738-KG\",\n label: \"FM2738\",\n },\n {\n value: \"FM2739-KG\",\n label: \"FM2739\",\n },\n {\n value: \"FM2741-KG\",\n label: \"FM2741\",\n },\n {\n value: \"FM2742-KG\",\n label: \"FM2742\",\n },\n {\n value: \"FM2743-KG\",\n label: \"FM2743\",\n },\n {\n value: \"FM2744-KG\",\n label: \"FM2744\",\n },\n {\n value: \"FM2745-KG\",\n label: \"FM2745\",\n },\n {\n value: \"FM2746-KG\",\n label: \"FM2746\",\n },\n {\n value: \"FM2747-KG\",\n label: \"FM2747\",\n },\n {\n value: \"FM2749-KG\",\n label: \"FM2749\",\n },\n {\n value: \"FM2750-KG\",\n label: \"FM2750\",\n },\n {\n value: \"FM2751-KG\",\n label: \"FM2751\",\n },\n {\n value: \"FM2752-KG\",\n label: \"FM2752\",\n },\n {\n value: \"FM2753-KG\",\n label: \"FM2753\",\n },\n {\n value: \"FM2754-KG\",\n label: \"FM2754\",\n },\n {\n value: \"FM2755-KG\",\n label: \"FM2755\",\n },\n {\n value: \"FM2756-KG\",\n label: \"FM2756\",\n },\n {\n value: \"FM2757-KG\",\n label: \"FM2757\",\n },\n {\n value: \"FM2759-KG\",\n label: \"FM2759\",\n },\n {\n value: \"FM2760-KG\",\n label: \"FM2760\",\n },\n {\n value: \"FM2761-KG\",\n label: \"FM2761\",\n },\n {\n value: \"FM2762-KG\",\n label: \"FM2762\",\n },\n {\n value: \"FM2763-KG\",\n label: \"FM2763\",\n },\n {\n value: \"FM2764-KG\",\n label: \"FM2764\",\n },\n {\n value: \"FM2765-KG\",\n label: \"FM2765\",\n },\n {\n value: \"FM2767-KG\",\n label: \"FM2767\",\n },\n {\n value: \"FM2770-KG\",\n label: \"FM2770\",\n },\n {\n value: \"FM2771-KG\",\n label: \"FM2771\",\n },\n {\n value: \"FM2772-KG\",\n label: \"FM2772\",\n },\n {\n value: \"FM2773-KG\",\n label: \"FM2773\",\n },\n {\n value: \"FM2774-KG\",\n label: \"FM2774\",\n },\n {\n value: \"FM2776-KG\",\n label: \"FM2776\",\n },\n {\n value: \"FM2777-KG\",\n label: \"FM2777\",\n },\n {\n value: \"FM2779-KG\",\n label: \"FM2779\",\n },\n {\n value: \"FM2780-KG\",\n label: \"FM2780\",\n },\n {\n value: \"FM2781-KG\",\n label: \"FM2781\",\n },\n {\n value: \"FM2782-KG\",\n label: \"FM2782\",\n },\n {\n value: \"FM2783-KG\",\n label: \"FM2783\",\n },\n {\n value: \"FM2784-KG\",\n label: \"FM2784\",\n },\n {\n value: \"FM2785-KG\",\n label: \"FM2785\",\n },\n {\n value: \"FM2786-KG\",\n label: \"FM2786\",\n },\n {\n value: \"FM2787-KG\",\n label: \"FM2787\",\n },\n {\n value: \"FM2788-KG\",\n label: \"FM2788\",\n },\n {\n value: \"FM2789-KG\",\n label: \"FM2789\",\n },\n {\n value: \"FM2790-KG\",\n label: \"FM2790\",\n },\n {\n value: \"FM2791-KG\",\n label: \"FM2791\",\n },\n {\n value: \"FM2792-KG\",\n label: \"FM2792\",\n },\n {\n value: \"FM2793-KG\",\n label: \"FM2793\",\n },\n {\n value: \"FM2794-KG\",\n label: \"FM2794\",\n },\n {\n value: \"FM2795-KG\",\n label: \"FM2795\",\n },\n {\n value: \"FM2796-KG\",\n label: \"FM2796\",\n },\n {\n value: \"FM2797-KG\",\n label: \"FM2797\",\n },\n {\n value: \"FM2798-KG\",\n label: \"FM2798\",\n },\n {\n value: \"FM2799-KG\",\n label: \"FM2799\",\n },\n {\n value: \"FM2800-KG\",\n label: \"FM2800\",\n },\n {\n value: \"FM2801-KG\",\n label: \"FM2801\",\n },\n {\n value: \"FM2802-KG\",\n label: \"FM2802\",\n },\n {\n value: \"FM2803-KG\",\n label: \"FM2803\",\n },\n {\n value: \"FM2805-KG\",\n label: \"FM2805\",\n },\n {\n value: \"FM2806-KG\",\n label: \"FM2806\",\n },\n {\n value: \"FM2807-KG\",\n label: \"FM2807\",\n },\n {\n value: \"FM2808-KG\",\n label: \"FM2808\",\n },\n {\n value: \"FM2809-KG\",\n label: \"FM2809\",\n },\n {\n value: \"FM2811-KG\",\n label: \"FM2811\",\n },\n {\n value: \"FM2812-KG\",\n label: \"FM2812\",\n },\n {\n value: \"FM2813-KG\",\n label: \"FM2813\",\n },\n {\n value: \"FM2814-KG\",\n label: \"FM2814\",\n },\n {\n value: \"FM2815-KG\",\n label: \"FM2815\",\n },\n {\n value: \"FM2816-KG\",\n label: \"FM2816\",\n },\n {\n value: \"FM2817-KG\",\n label: \"FM2817\",\n },\n {\n value: \"FM2818-KG\",\n label: \"FM2818\",\n },\n {\n value: \"FM2819-KG\",\n label: \"FM2819\",\n },\n {\n value: \"FM2820-KG\",\n label: \"FM2820\",\n },\n {\n value: \"FM2821-KG\",\n label: \"FM2821\",\n },\n {\n value: \"FM2822-KG\",\n label: \"FM2822\",\n },\n {\n value: \"FM2823-KG\",\n label: \"FM2823\",\n },\n {\n value: \"FM2824-KG\",\n label: \"FM2824\",\n },\n {\n value: \"FM2825-KG\",\n label: \"FM2825\",\n },\n {\n value: \"FM2826-KG\",\n label: \"FM2826\",\n },\n {\n value: \"FM2827-KG\",\n label: \"FM2827\",\n },\n {\n value: \"FM2829-KG\",\n label: \"FM2829\",\n },\n {\n value: \"FM2830-KG\",\n label: \"FM2830\",\n },\n {\n value: \"FM2832-KG\",\n label: \"FM2832\",\n },\n {\n value: \"FM2833-KG\",\n label: \"FM2833\",\n },\n {\n value: \"FM2834-KG\",\n label: \"FM2834\",\n },\n {\n value: \"FM2835-KG\",\n label: \"FM2835\",\n },\n {\n value: \"FM2836-KG\",\n label: \"FM2836\",\n },\n {\n value: \"FM2837-KG\",\n label: \"FM2837\",\n },\n {\n value: \"FM2838-KG\",\n label: \"FM2838\",\n },\n {\n value: \"FM2839-KG\",\n label: \"FM2839\",\n },\n {\n value: \"FM2840-KG\",\n label: \"FM2840\",\n },\n {\n value: \"FM2841-KG\",\n label: \"FM2841\",\n },\n {\n value: \"FM2842-KG\",\n label: \"FM2842\",\n },\n {\n value: \"FM2843-KG\",\n label: \"FM2843\",\n },\n {\n value: \"FM2844-KG\",\n label: \"FM2844\",\n },\n {\n value: \"FM2845-KG\",\n label: \"FM2845\",\n },\n {\n value: \"FM2846-KG\",\n label: \"FM2846\",\n },\n {\n value: \"FM2847-KG\",\n label: \"FM2847\",\n },\n {\n value: \"FM2848-KG\",\n label: \"FM2848\",\n },\n {\n value: \"FM2849-KG\",\n label: \"FM2849\",\n },\n {\n value: \"FM2850-KG\",\n label: \"FM2850\",\n },\n {\n value: \"FM2851-KG\",\n label: \"FM2851\",\n },\n {\n value: \"FM2852-KG\",\n label: \"FM2852\",\n },\n {\n value: \"FM2853-KG\",\n label: \"FM2853\",\n },\n {\n value: \"FM2854-KG\",\n label: \"FM2854\",\n },\n {\n value: \"FM2855-KG\",\n label: \"FM2855\",\n },\n {\n value: \"FM2856-KG\",\n label: \"FM2856\",\n },\n {\n value: \"FM2858-KG\",\n label: \"FM2858\",\n },\n {\n value: \"FM2859-KG\",\n label: \"FM2859\",\n },\n {\n value: \"FM2860-KG\",\n label: \"FM2860\",\n },\n {\n value: \"FM2861-KG\",\n label: \"FM2861\",\n },\n {\n value: \"FM2862-KG\",\n label: \"FM2862\",\n },\n {\n value: \"FM2863-KG\",\n label: \"FM2863\",\n },\n {\n value: \"FM2864-KG\",\n label: \"FM2864\",\n },\n {\n value: \"FM2865-KG\",\n label: \"FM2865\",\n },\n {\n value: \"FM2866-KG\",\n label: \"FM2866\",\n },\n {\n value: \"FM2867-KG\",\n label: \"FM2867\",\n },\n {\n value: \"FM2868-KG\",\n label: \"FM2868\",\n },\n {\n value: \"FM2869-KG\",\n label: \"FM2869\",\n },\n {\n value: \"FM2870-KG\",\n label: \"FM2870\",\n },\n {\n value: \"FM2872-KG\",\n label: \"FM2872\",\n },\n {\n value: \"FM2873-KG\",\n label: \"FM2873\",\n },\n {\n value: \"FM2874-KG\",\n label: \"FM2874\",\n },\n {\n value: \"FM2875-KG\",\n label: \"FM2875\",\n },\n {\n value: \"FM2876-KG\",\n label: \"FM2876\",\n },\n {\n value: \"FM2877-KG\",\n label: \"FM2877\",\n },\n {\n value: \"FM2878-KG\",\n label: \"FM2878\",\n },\n {\n value: \"FM2879-KG\",\n label: \"FM2879\",\n },\n {\n value: \"FM2880-KG\",\n label: \"FM2880\",\n },\n {\n value: \"FM2881-KG\",\n label: \"FM2881\",\n },\n {\n value: \"FM2882-KG\",\n label: \"FM2882\",\n },\n {\n value: \"FM2883-KG\",\n label: \"FM2883\",\n },\n {\n value: \"FM2884-KG\",\n label: \"FM2884\",\n },\n {\n value: \"FM2885-KG\",\n label: \"FM2885\",\n },\n {\n value: \"FM2887-KG\",\n label: \"FM2887\",\n },\n {\n value: \"FM2888-KG\",\n label: \"FM2888\",\n },\n {\n value: \"FM2889-KG\",\n label: \"FM2889\",\n },\n {\n value: \"FM2890-KG\",\n label: \"FM2890\",\n },\n {\n value: \"FM2891-KG\",\n label: \"FM2891\",\n },\n {\n value: \"FM2892-KG\",\n label: \"FM2892\",\n },\n {\n value: \"FM2893-KG\",\n label: \"FM2893\",\n },\n {\n value: \"FM2895-KG\",\n label: \"FM2895\",\n },\n {\n value: \"FM2896-KG\",\n label: \"FM2896\",\n },\n {\n value: \"FM2897-KG\",\n label: \"FM2897\",\n },\n {\n value: \"FM2898-KG\",\n label: \"FM2898\",\n },\n {\n value: \"FM2899-KG\",\n label: \"FM2899\",\n },\n {\n value: \"FM2901-KG\",\n label: \"FM2901\",\n },\n {\n value: \"FM2902-KG\",\n label: \"FM2902\",\n },\n {\n value: \"FM2903-KG\",\n label: \"FM2903\",\n },\n {\n value: \"FM2904-KG\",\n label: \"FM2904\",\n },\n {\n value: \"FM2905-KG\",\n label: \"FM2905\",\n },\n {\n value: \"FM2906-KG\",\n label: \"FM2906\",\n },\n {\n value: \"FM2907-KG\",\n label: \"FM2907\",\n },\n {\n value: \"FM2908-KG\",\n label: \"FM2908\",\n },\n {\n value: \"FM2910-KG\",\n label: \"FM2910\",\n },\n {\n value: \"FM2911-KG\",\n label: \"FM2911\",\n },\n {\n value: \"FM2912-KG\",\n label: \"FM2912\",\n },\n {\n value: \"FM2913-KG\",\n label: \"FM2913\",\n },\n {\n value: \"FM2914-KG\",\n label: \"FM2914\",\n },\n {\n value: \"FM2915-KG\",\n label: \"FM2915\",\n },\n {\n value: \"FM2916-KG\",\n label: \"FM2916\",\n },\n {\n value: \"FM2917-KG\",\n label: \"FM2917\",\n },\n {\n value: \"FM2918-KG\",\n label: \"FM2918\",\n },\n {\n value: \"FM2919-KG\",\n label: \"FM2919\",\n },\n {\n value: \"FM2920-KG\",\n label: \"FM2920\",\n },\n {\n value: \"FM2921-KG\",\n label: \"FM2921\",\n },\n {\n value: \"FM2922-KG\",\n label: \"FM2922\",\n },\n {\n value: \"FM2923-KG\",\n label: \"FM2923\",\n },\n {\n value: \"FM2924-KG\",\n label: \"FM2924\",\n },\n {\n value: \"FM2925-KG\",\n label: \"FM2925\",\n },\n {\n value: \"FM2926-KG\",\n label: \"FM2926\",\n },\n {\n value: \"FM2928-KG\",\n label: \"FM2928\",\n },\n {\n value: \"FM2929-KG\",\n label: \"FM2929\",\n },\n {\n value: \"FM2930-KG\",\n label: \"FM2930\",\n },\n {\n value: \"FM2931-KG\",\n label: \"FM2931\",\n },\n {\n value: \"FM2932-KG\",\n label: \"FM2932\",\n },\n {\n value: \"FM2933-KG\",\n label: \"FM2933\",\n },\n {\n value: \"FM2934-KG\",\n label: \"FM2934\",\n },\n {\n value: \"FM2935-KG\",\n label: \"FM2935\",\n },\n {\n value: \"FM2936-KG\",\n label: \"FM2936\",\n },\n {\n value: \"FM2937-KG\",\n label: \"FM2937\",\n },\n {\n value: \"FM2938-KG\",\n label: \"FM2938\",\n },\n {\n value: \"FM2939-KG\",\n label: \"FM2939\",\n },\n {\n value: \"FM2940-KG\",\n label: \"FM2940\",\n },\n {\n value: \"FM2941-KG\",\n label: \"FM2941\",\n },\n {\n value: \"FM2942-KG\",\n label: \"FM2942\",\n },\n {\n value: \"FM2943-KG\",\n label: \"FM2943\",\n },\n {\n value: \"FM2944-KG\",\n label: \"FM2944\",\n },\n {\n value: \"FM2945-KG\",\n label: \"FM2945\",\n },\n {\n value: \"FM2946-KG\",\n label: \"FM2946\",\n },\n {\n value: \"FM2947-KG\",\n label: \"FM2947\",\n },\n {\n value: \"FM2948-KG\",\n label: \"FM2948\",\n },\n {\n value: \"FM2949-KG\",\n label: \"FM2949\",\n },\n {\n value: \"FM2950-KG\",\n label: \"FM2950\",\n },\n {\n value: \"FM2951-KG\",\n label: \"FM2951\",\n },\n {\n value: \"FM2952-KG\",\n label: \"FM2952\",\n },\n {\n value: \"FM2953-KG\",\n label: \"FM2953\",\n },\n {\n value: \"FM2954-KG\",\n label: \"FM2954\",\n },\n {\n value: \"FM2955-KG\",\n label: \"FM2955\",\n },\n {\n value: \"FM2956-KG\",\n label: \"FM2956\",\n },\n {\n value: \"FM2957-KG\",\n label: \"FM2957\",\n },\n {\n value: \"FM2958-KG\",\n label: \"FM2958\",\n },\n {\n value: \"FM2959-KG\",\n label: \"FM2959\",\n },\n {\n value: \"FM2960-KG\",\n label: \"FM2960\",\n },\n {\n value: \"FM2961-KG\",\n label: \"FM2961\",\n },\n {\n value: \"FM2962-KG\",\n label: \"FM2962\",\n },\n {\n value: \"FM2963-KG\",\n label: \"FM2963\",\n },\n {\n value: \"FM2964-KG\",\n label: \"FM2964\",\n },\n {\n value: \"FM2965-KG\",\n label: \"FM2965\",\n },\n {\n value: \"FM2966-KG\",\n label: \"FM2966\",\n },\n {\n value: \"FM2967-KG\",\n label: \"FM2967\",\n },\n {\n value: \"FM2968-KG\",\n label: \"FM2968\",\n },\n {\n value: \"FM2969-KG\",\n label: \"FM2969\",\n },\n {\n value: \"FM2971-KG\",\n label: \"FM2971\",\n },\n {\n value: \"FM2972-KG\",\n label: \"FM2972\",\n },\n {\n value: \"FM2973-KG\",\n label: \"FM2973\",\n },\n {\n value: \"FM2974-KG\",\n label: \"FM2974\",\n },\n {\n value: \"FM2975-KG\",\n label: \"FM2975\",\n },\n {\n value: \"FM2976-KG\",\n label: \"FM2976\",\n },\n {\n value: \"FM2977-KG\",\n label: \"FM2977\",\n },\n {\n value: \"FM2978-KG\",\n label: \"FM2978\",\n },\n {\n value: \"FM2979-KG\",\n label: \"FM2979\",\n },\n {\n value: \"FM2980-KG\",\n label: \"FM2980\",\n },\n {\n value: \"FM2981-KG\",\n label: \"FM2981\",\n },\n {\n value: \"FM2982-KG\",\n label: \"FM2982\",\n },\n {\n value: \"FM2983-KG\",\n label: \"FM2983\",\n },\n {\n value: \"FM2984-KG\",\n label: \"FM2984\",\n },\n {\n value: \"FM2985-KG\",\n label: \"FM2985\",\n },\n {\n value: \"FM2986-KG\",\n label: \"FM2986\",\n },\n {\n value: \"FM2987-KG\",\n label: \"FM2987\",\n },\n {\n value: \"FM2988-KG\",\n label: \"FM2988\",\n },\n {\n value: \"FM2989-KG\",\n label: \"FM2989\",\n },\n {\n value: \"FM2990-KG\",\n label: \"FM2990\",\n },\n {\n value: \"FM2991-KG\",\n label: \"FM2991\",\n },\n {\n value: \"FM2992-KG\",\n label: \"FM2992\",\n },\n {\n value: \"FM2993-KG\",\n label: \"FM2993\",\n },\n {\n value: \"FM2994-KG\",\n label: \"FM2994\",\n },\n {\n value: \"FM2996-KG\",\n label: \"FM2996\",\n },\n {\n value: \"FM2997-KG\",\n label: \"FM2997\",\n },\n {\n value: \"FM2998-KG\",\n label: \"FM2998\",\n },\n {\n value: \"FM2999-KG\",\n label: \"FM2999\",\n },\n {\n value: \"FM3000-KG\",\n label: \"FM3000\",\n },\n {\n value: \"FM3001-KG\",\n label: \"FM3001\",\n },\n {\n value: \"FM3002-KG\",\n label: \"FM3002\",\n },\n {\n value: \"FM3003-KG\",\n label: \"FM3003\",\n },\n {\n value: \"FM3004-KG\",\n label: \"FM3004\",\n },\n {\n value: \"FM3005-KG\",\n label: \"FM3005\",\n },\n {\n value: \"FM3006-KG\",\n label: \"FM3006\",\n },\n {\n value: \"FM3007-KG\",\n label: \"FM3007\",\n },\n {\n value: \"FM3009-KG\",\n label: \"FM3009\",\n },\n {\n value: \"FM3010-KG\",\n label: \"FM3010\",\n },\n {\n value: \"FM3011-KG\",\n label: \"FM3011\",\n },\n {\n value: \"FM3012-KG\",\n label: \"FM3012\",\n },\n {\n value: \"FM3013-KG\",\n label: \"FM3013\",\n },\n {\n value: \"FM3016-KG\",\n label: \"FM3016\",\n },\n {\n value: \"FM3017-KG\",\n label: \"FM3017\",\n },\n {\n value: \"FM3018-KG\",\n label: \"FM3018\",\n },\n {\n value: \"FM3019-KG\",\n label: \"FM3019\",\n },\n {\n value: \"FM3020-KG\",\n label: \"FM3020\",\n },\n {\n value: \"FM3021-KG\",\n label: \"FM3021\",\n },\n {\n value: \"FM3022-KG\",\n label: \"FM3022\",\n },\n {\n value: \"FM3023-KG\",\n label: \"FM3023\",\n },\n {\n value: \"FM3024-KG\",\n label: \"FM3024\",\n },\n {\n value: \"FM3025-KG\",\n label: \"FM3025\",\n },\n {\n value: \"FM3026-KG\",\n label: \"FM3026\",\n },\n {\n value: \"FM3027-KG\",\n label: \"FM3027\",\n },\n {\n value: \"FM3028-KG\",\n label: \"FM3028\",\n },\n {\n value: \"FM3029-KG\",\n label: \"FM3029\",\n },\n {\n value: \"FM3030-KG\",\n label: \"FM3030\",\n },\n {\n value: \"FM3031-KG\",\n label: \"FM3031\",\n },\n {\n value: \"FM3032-KG\",\n label: \"FM3032\",\n },\n {\n value: \"FM3033-KG\",\n label: \"FM3033\",\n },\n {\n value: \"FM3034-KG\",\n label: \"FM3034\",\n },\n {\n value: \"FM3035-KG\",\n label: \"FM3035\",\n },\n {\n value: \"FM3036-KG\",\n label: \"FM3036\",\n },\n {\n value: \"FM3037-KG\",\n label: \"FM3037\",\n },\n {\n value: \"FM3038-KG\",\n label: \"FM3038\",\n },\n {\n value: \"FM3039-KG\",\n label: \"FM3039\",\n },\n {\n value: \"FM3040-KG\",\n label: \"FM3040\",\n },\n {\n value: \"FM3041-KG\",\n label: \"FM3041\",\n },\n {\n value: \"FM3042-KG\",\n label: \"FM3042\",\n },\n {\n value: \"FM3043-KG\",\n label: \"FM3043\",\n },\n {\n value: \"FM3044-KG\",\n label: \"FM3044\",\n },\n {\n value: \"FM3045-KG\",\n label: \"FM3045\",\n },\n {\n value: \"FM3046-KG\",\n label: \"FM3046\",\n },\n {\n value: \"FM3047-KG\",\n label: \"FM3047\",\n },\n {\n value: \"FM3048-KG\",\n label: \"FM3048\",\n },\n {\n value: \"FM3049-KG\",\n label: \"FM3049\",\n },\n {\n value: \"FM3050-KG\",\n label: \"FM3050\",\n },\n {\n value: \"FM3051-KG\",\n label: \"FM3051\",\n },\n {\n value: \"FM3052-KG\",\n label: \"FM3052\",\n },\n {\n value: \"FM3053-KG\",\n label: \"FM3053\",\n },\n {\n value: \"FM3055-KG\",\n label: \"FM3055\",\n },\n {\n value: \"FM3056-KG\",\n label: \"FM3056\",\n },\n {\n value: \"FM3057-KG\",\n label: \"FM3057\",\n },\n {\n value: \"FM3058-KG\",\n label: \"FM3058\",\n },\n {\n value: \"FM3059-KG\",\n label: \"FM3059\",\n },\n {\n value: \"FM3060-KG\",\n label: \"FM3060\",\n },\n {\n value: \"FM3061-KG\",\n label: \"FM3061\",\n },\n {\n value: \"FM3062-KG\",\n label: \"FM3062\",\n },\n {\n value: \"FM3063-KG\",\n label: \"FM3063\",\n },\n {\n value: \"FM3064-KG\",\n label: \"FM3064\",\n },\n {\n value: \"FM3065-KG\",\n label: \"FM3065\",\n },\n {\n value: \"FM3066-KG\",\n label: \"FM3066\",\n },\n {\n value: \"FM3067-KG\",\n label: \"FM3067\",\n },\n {\n value: \"FM3068-KG\",\n label: \"FM3068\",\n },\n {\n value: \"FM3069-KG\",\n label: \"FM3069\",\n },\n {\n value: \"FM3071-KG\",\n label: \"FM3071\",\n },\n {\n value: \"FM3072-KG\",\n label: \"FM3072\",\n },\n {\n value: \"FM3073-KG\",\n label: \"FM3073\",\n },\n {\n value: \"FM3074-KG\",\n label: \"FM3074\",\n },\n {\n value: \"FM3075-KG\",\n label: \"FM3075\",\n },\n {\n value: \"FM3077-KG\",\n label: \"FM3077\",\n },\n {\n value: \"FM3078-KG\",\n label: \"FM3078\",\n },\n {\n value: \"FM3079-KG\",\n label: \"FM3079\",\n },\n {\n value: \"FM3080-KG\",\n label: \"FM3080\",\n },\n {\n value: \"FM3081-KG\",\n label: \"FM3081\",\n },\n {\n value: \"FM3082-KG\",\n label: \"FM3082\",\n },\n {\n value: \"FM3083-KG\",\n label: \"FM3083\",\n },\n {\n value: \"FM3084-KG\",\n label: \"FM3084\",\n },\n {\n value: \"FM3085-KG\",\n label: \"FM3085\",\n },\n {\n value: \"FM3086-KG\",\n label: \"FM3086\",\n },\n {\n value: \"FM3087-KG\",\n label: \"FM3087\",\n },\n {\n value: \"FM3088-KG\",\n label: \"FM3088\",\n },\n {\n value: \"FM3089-KG\",\n label: \"FM3089\",\n },\n {\n value: \"FM3090-KG\",\n label: \"FM3090\",\n },\n {\n value: \"FM3091-KG\",\n label: \"FM3091\",\n },\n {\n value: \"FM3092-KG\",\n label: \"FM3092\",\n },\n {\n value: \"FM3094-KG\",\n label: \"FM3094\",\n },\n {\n value: \"FM3095-KG\",\n label: \"FM3095\",\n },\n {\n value: \"FM3096-KG\",\n label: \"FM3096\",\n },\n {\n value: \"FM3097-KG\",\n label: \"FM3097\",\n },\n {\n value: \"FM3098-KG\",\n label: \"FM3098\",\n },\n {\n value: \"FM3099-KG\",\n label: \"FM3099\",\n },\n {\n value: \"FM3100-KG\",\n label: \"FM3100\",\n },\n {\n value: \"FM3101-KG\",\n label: \"FM3101\",\n },\n {\n value: \"FM3102-KG\",\n label: \"FM3102\",\n },\n {\n value: \"FM3103-KG\",\n label: \"FM3103\",\n },\n {\n value: \"FM3104-KG\",\n label: \"FM3104\",\n },\n {\n value: \"FM3105-KG\",\n label: \"FM3105\",\n },\n {\n value: \"FM3107-KG\",\n label: \"FM3107\",\n },\n {\n value: \"FM3108-KG\",\n label: \"FM3108\",\n },\n {\n value: \"FM3109-KG\",\n label: \"FM3109\",\n },\n {\n value: \"FM3110-KG\",\n label: \"FM3110\",\n },\n {\n value: \"FM3111-KG\",\n label: \"FM3111\",\n },\n {\n value: \"FM3112-KG\",\n label: \"FM3112\",\n },\n {\n value: \"FM3113-KG\",\n label: \"FM3113\",\n },\n {\n value: \"FM3115-KG\",\n label: \"FM3115\",\n },\n {\n value: \"FM3116-KG\",\n label: \"FM3116\",\n },\n {\n value: \"FM3117-KG\",\n label: \"FM3117\",\n },\n {\n value: \"FM3118-KG\",\n label: \"FM3118\",\n },\n {\n value: \"FM3119-KG\",\n label: \"FM3119\",\n },\n {\n value: \"FM3121-KG\",\n label: \"FM3121\",\n },\n {\n value: \"FM3122-KG\",\n label: \"FM3122\",\n },\n {\n value: \"FM3123-KG\",\n label: \"FM3123\",\n },\n {\n value: \"FM3124-KG\",\n label: \"FM3124\",\n },\n {\n value: \"FM3125-KG\",\n label: \"FM3125\",\n },\n {\n value: \"FM3126-KG\",\n label: \"FM3126\",\n },\n {\n value: \"FM3127-KG\",\n label: \"FM3127\",\n },\n {\n value: \"FM3128-KG\",\n label: \"FM3128\",\n },\n {\n value: \"FM3129-KG\",\n label: \"FM3129\",\n },\n {\n value: \"FM3131-KG\",\n label: \"FM3131\",\n },\n {\n value: \"FM3132-KG\",\n label: \"FM3132\",\n },\n {\n value: \"FM3133-KG\",\n label: \"FM3133\",\n },\n {\n value: \"FM3134-KG\",\n label: \"FM3134\",\n },\n {\n value: \"FM3135-KG\",\n label: \"FM3135\",\n },\n {\n value: \"FM3136-KG\",\n label: \"FM3136\",\n },\n {\n value: \"FM3138-KG\",\n label: \"FM3138\",\n },\n {\n value: \"FM3139-KG\",\n label: \"FM3139\",\n },\n {\n value: \"FM3140-KG\",\n label: \"FM3140\",\n },\n {\n value: \"FM3141-KG\",\n label: \"FM3141\",\n },\n {\n value: \"FM3142-KG\",\n label: \"FM3142\",\n },\n {\n value: \"FM3143-KG\",\n label: \"FM3143\",\n },\n {\n value: \"FM3144-KG\",\n label: \"FM3144\",\n },\n {\n value: \"FM3145-KG\",\n label: \"FM3145\",\n },\n {\n value: \"FM3147-KG\",\n label: \"FM3147\",\n },\n {\n value: \"FM3148-KG\",\n label: \"FM3148\",\n },\n {\n value: \"FM3149-KG\",\n label: \"FM3149\",\n },\n {\n value: \"FM3150-KG\",\n label: \"FM3150\",\n },\n {\n value: \"FM3151-KG\",\n label: \"FM3151\",\n },\n {\n value: \"FM3152-KG\",\n label: \"FM3152\",\n },\n {\n value: \"FM3153-KG\",\n label: \"FM3153\",\n },\n {\n value: \"FM3154-KG\",\n label: \"FM3154\",\n },\n {\n value: \"FM3155-KG\",\n label: \"FM3155\",\n },\n {\n value: \"FM3156-KG\",\n label: \"FM3156\",\n },\n {\n value: \"FM3157-KG\",\n label: \"FM3157\",\n },\n {\n value: \"FM3158-KG\",\n label: \"FM3158\",\n },\n {\n value: \"FM3159-KG\",\n label: \"FM3159\",\n },\n {\n value: \"FM3161-KG\",\n label: \"FM3161\",\n },\n {\n value: \"FM3162-KG\",\n label: \"FM3162\",\n },\n {\n value: \"FM3163-KG\",\n label: \"FM3163\",\n },\n {\n value: \"FM3164-KG\",\n label: \"FM3164\",\n },\n {\n value: \"FM3165-KG\",\n label: \"FM3165\",\n },\n {\n value: \"FM3167-KG\",\n label: \"FM3167\",\n },\n {\n value: \"FM3168-KG\",\n label: \"FM3168\",\n },\n {\n value: \"FM3169-KG\",\n label: \"FM3169\",\n },\n {\n value: \"FM3170-KG\",\n label: \"FM3170\",\n },\n {\n value: \"FM3171-KG\",\n label: \"FM3171\",\n },\n {\n value: \"FM3172-KG\",\n label: \"FM3172\",\n },\n {\n value: \"FM3173-KG\",\n label: \"FM3173\",\n },\n {\n value: \"FM3174-KG\",\n label: \"FM3174\",\n },\n {\n value: \"FM3175-KG\",\n label: \"FM3175\",\n },\n {\n value: \"FM3176-KG\",\n label: \"FM3176\",\n },\n {\n value: \"FM3177-KG\",\n label: \"FM3177\",\n },\n {\n value: \"FM3178-KG\",\n label: \"FM3178\",\n },\n {\n value: \"FM3179-KG\",\n label: \"FM3179\",\n },\n {\n value: \"FM3180-KG\",\n label: \"FM3180\",\n },\n {\n value: \"FM3181-KG\",\n label: \"FM3181\",\n },\n {\n value: \"FM3182-KG\",\n label: \"FM3182\",\n },\n {\n value: \"FM3183-KG\",\n label: \"FM3183\",\n },\n {\n value: \"FM3184-KG\",\n label: \"FM3184\",\n },\n {\n value: \"FM3185-KG\",\n label: \"FM3185\",\n },\n {\n value: \"FM3186-KG\",\n label: \"FM3186\",\n },\n {\n value: \"FM3187-KG\",\n label: \"FM3187\",\n },\n {\n value: \"FM3188-KG\",\n label: \"FM3188\",\n },\n {\n value: \"FM3190-KG\",\n label: \"FM3190\",\n },\n {\n value: \"FM3191-KG\",\n label: \"FM3191\",\n },\n {\n value: \"FM3192-KG\",\n label: \"FM3192\",\n },\n {\n value: \"FM3194-KG\",\n label: \"FM3194\",\n },\n {\n value: \"FM3195-KG\",\n label: \"FM3195\",\n },\n {\n value: \"FM3196-KG\",\n label: \"FM3196\",\n },\n {\n value: \"FM3197-KG\",\n label: \"FM3197\",\n },\n {\n value: \"FM3198-KG\",\n label: \"FM3198\",\n },\n {\n value: \"FM3199-KG\",\n label: \"FM3199\",\n },\n {\n value: \"FM3200-KG\",\n label: \"FM3200\",\n },\n {\n value: \"FM3201-KG\",\n label: \"FM3201\",\n },\n {\n value: \"FM3202-KG\",\n label: \"FM3202\",\n },\n {\n value: \"FM3203-KG\",\n label: \"FM3203\",\n },\n {\n value: \"FM3204-KG\",\n label: \"FM3204\",\n },\n {\n value: \"FM3205-KG\",\n label: \"FM3205\",\n },\n {\n value: \"FM3206-KG\",\n label: \"FM3206\",\n },\n {\n value: \"FM3207-KG\",\n label: \"FM3207\",\n },\n {\n value: \"FM3208-KG\",\n label: \"FM3208\",\n },\n {\n value: \"FM3209-KG\",\n label: \"FM3209\",\n },\n {\n value: \"FM3210-KG\",\n label: \"FM3210\",\n },\n {\n value: \"FM3211-KG\",\n label: \"FM3211\",\n },\n {\n value: \"FM3212-KG\",\n label: \"FM3212\",\n },\n {\n value: \"FM3213-KG\",\n label: \"FM3213\",\n },\n {\n value: \"FM3214-KG\",\n label: \"FM3214\",\n },\n {\n value: \"FM3215-KG\",\n label: \"FM3215\",\n },\n {\n value: \"FM3216-KG\",\n label: \"FM3216\",\n },\n {\n value: \"FM3217-KG\",\n label: \"FM3217\",\n },\n {\n value: \"FM3218-KG\",\n label: \"FM3218\",\n },\n {\n value: \"FM3219-KG\",\n label: \"FM3219\",\n },\n {\n value: \"FM3220-KG\",\n label: \"FM3220\",\n },\n {\n value: \"FM3221-KG\",\n label: \"FM3221\",\n },\n {\n value: \"FM3222-KG\",\n label: \"FM3222\",\n },\n {\n value: \"FM3223-KG\",\n label: \"FM3223\",\n },\n {\n value: \"FM3224-KG\",\n label: \"FM3224\",\n },\n {\n value: \"FM3225-KG\",\n label: \"FM3225\",\n },\n {\n value: \"FM3226-KG\",\n label: \"FM3226\",\n },\n {\n value: \"FM3227-KG\",\n label: \"FM3227\",\n },\n {\n value: \"FM3228-KG\",\n label: \"FM3228\",\n },\n {\n value: \"FM3229-KG\",\n label: \"FM3229\",\n },\n {\n value: \"FM3230-KG\",\n label: \"FM3230\",\n },\n {\n value: \"FM3231-KG\",\n label: \"FM3231\",\n },\n {\n value: \"FM3233-KG\",\n label: \"FM3233\",\n },\n {\n value: \"FM3234-KG\",\n label: \"FM3234\",\n },\n {\n value: \"FM3236-KG\",\n label: \"FM3236\",\n },\n {\n value: \"FM3239-KG\",\n label: \"FM3239\",\n },\n {\n value: \"FM3240-KG\",\n label: \"FM3240\",\n },\n {\n value: \"FM3242-KG\",\n label: \"FM3242\",\n },\n {\n value: \"FM3243-KG\",\n label: \"FM3243\",\n },\n {\n value: \"FM3244-KG\",\n label: \"FM3244\",\n },\n {\n value: \"FM3245-KG\",\n label: \"FM3245\",\n },\n {\n value: \"FM3246-KG\",\n label: \"FM3246\",\n },\n {\n value: \"FM3247-KG\",\n label: \"FM3247\",\n },\n {\n value: \"FM3248-KG\",\n label: \"FM3248\",\n },\n {\n value: \"FM3249-KG\",\n label: \"FM3249\",\n },\n {\n value: \"FM3250-KG\",\n label: \"FM3250\",\n },\n {\n value: \"FM3251-KG\",\n label: \"FM3251\",\n },\n {\n value: \"FM3252-KG\",\n label: \"FM3252\",\n },\n {\n value: \"FM3253-KG\",\n label: \"FM3253\",\n },\n {\n value: \"FM3254-KG\",\n label: \"FM3254\",\n },\n {\n value: \"FM3255-KG\",\n label: \"FM3255\",\n },\n {\n value: \"FM3256-KG\",\n label: \"FM3256\",\n },\n {\n value: \"FM3257-KG\",\n label: \"FM3257\",\n },\n {\n value: \"FM3258-KG\",\n label: \"FM3258\",\n },\n {\n value: \"FM3259-KG\",\n label: \"FM3259\",\n },\n {\n value: \"FM3261-KG\",\n label: \"FM3261\",\n },\n {\n value: \"FM3262-KG\",\n label: \"FM3262\",\n },\n {\n value: \"FM3263-KG\",\n label: \"FM3263\",\n },\n {\n value: \"FM3264-KG\",\n label: \"FM3264\",\n },\n {\n value: \"FM3265-KG\",\n label: \"FM3265\",\n },\n {\n value: \"FM3266-KG\",\n label: \"FM3266\",\n },\n {\n value: \"FM3267-KG\",\n label: \"FM3267\",\n },\n {\n value: \"FM3268-KG\",\n label: \"FM3268\",\n },\n {\n value: \"FM3269-KG\",\n label: \"FM3269\",\n },\n {\n value: \"FM3270-KG\",\n label: \"FM3270\",\n },\n {\n value: \"FM3271-KG\",\n label: \"FM3271\",\n },\n {\n value: \"FM3272-KG\",\n label: \"FM3272\",\n },\n {\n value: \"FM3274-KG\",\n label: \"FM3274\",\n },\n {\n value: \"FM3275-KG\",\n label: \"FM3275\",\n },\n {\n value: \"FM3276-KG\",\n label: \"FM3276\",\n },\n {\n value: \"FM3277-KG\",\n label: \"FM3277\",\n },\n {\n value: \"FM3278-KG\",\n label: \"FM3278\",\n },\n {\n value: \"FM3279-KG\",\n label: \"FM3279\",\n },\n {\n value: \"FM3280-KG\",\n label: \"FM3280\",\n },\n {\n value: \"FM3281-KG\",\n label: \"FM3281\",\n },\n {\n value: \"FM3282-KG\",\n label: \"FM3282\",\n },\n {\n value: \"FM3283-KG\",\n label: \"FM3283\",\n },\n {\n value: \"FM3284-KG\",\n label: \"FM3284\",\n },\n {\n value: \"FM3285-KG\",\n label: \"FM3285\",\n },\n {\n value: \"FM3286-KG\",\n label: \"FM3286\",\n },\n {\n value: \"FM3287-KG\",\n label: \"FM3287\",\n },\n {\n value: \"FM3288-KG\",\n label: \"FM3288\",\n },\n {\n value: \"FM3290-KG\",\n label: \"FM3290\",\n },\n {\n value: \"FM3292-KG\",\n label: \"FM3292\",\n },\n {\n value: \"FM3293-KG\",\n label: \"FM3293\",\n },\n {\n value: \"FM3294-KG\",\n label: \"FM3294\",\n },\n {\n value: \"FM3295-KG\",\n label: \"FM3295\",\n },\n {\n value: \"FM3297-KG\",\n label: \"FM3297\",\n },\n {\n value: \"FM3298-KG\",\n label: \"FM3298\",\n },\n {\n value: \"FM3299-KG\",\n label: \"FM3299\",\n },\n {\n value: \"FM3300-KG\",\n label: \"FM3300\",\n },\n {\n value: \"FM3301-KG\",\n label: \"FM3301\",\n },\n {\n value: \"FM3302-KG\",\n label: \"FM3302\",\n },\n {\n value: \"FM3303-KG\",\n label: \"FM3303\",\n },\n {\n value: \"FM3304-KG\",\n label: \"FM3304\",\n },\n {\n value: \"FM3305-KG\",\n label: \"FM3305\",\n },\n {\n value: \"FM3306-KG\",\n label: \"FM3306\",\n },\n {\n value: \"FM3308-KG\",\n label: \"FM3308\",\n },\n {\n value: \"FM3309-KG\",\n label: \"FM3309\",\n },\n {\n value: \"FM3310-KG\",\n label: \"FM3310\",\n },\n {\n value: \"FM3311-KG\",\n label: \"FM3311\",\n },\n {\n value: \"FM3313-KG\",\n label: \"FM3313\",\n },\n {\n value: \"FM3314-KG\",\n label: \"FM3314\",\n },\n {\n value: \"FM3315-KG\",\n label: \"FM3315\",\n },\n {\n value: \"FM3316-KG\",\n label: \"FM3316\",\n },\n {\n value: \"FM3317-KG\",\n label: \"FM3317\",\n },\n {\n value: \"FM3318-KG\",\n label: \"FM3318\",\n },\n {\n value: \"FM3319-KG\",\n label: \"FM3319\",\n },\n {\n value: \"FM3320-KG\",\n label: \"FM3320\",\n },\n {\n value: \"FM3321-KG\",\n label: \"FM3321\",\n },\n {\n value: \"FM3322-KG\",\n label: \"FM3322\",\n },\n {\n value: \"FM3323-KG\",\n label: \"FM3323\",\n },\n {\n value: \"FM3324-KG\",\n label: \"FM3324\",\n },\n {\n value: \"FM3325-KG\",\n label: \"FM3325\",\n },\n {\n value: \"FM3326-KG\",\n label: \"FM3326\",\n },\n {\n value: \"FM3327-KG\",\n label: \"FM3327\",\n },\n {\n value: \"FM3328-KG\",\n label: \"FM3328\",\n },\n {\n value: \"FM3329-KG\",\n label: \"FM3329\",\n },\n {\n value: \"FM3330-KG\",\n label: \"FM3330\",\n },\n {\n value: \"FM3331-KG\",\n label: \"FM3331\",\n },\n {\n value: \"FM3332-KG\",\n label: \"FM3332\",\n },\n {\n value: \"FM3333-KG\",\n label: \"FM3333\",\n },\n {\n value: \"FM3334-KG\",\n label: \"FM3334\",\n },\n {\n value: \"FM3335-KG\",\n label: \"FM3335\",\n },\n {\n value: \"FM3336-KG\",\n label: \"FM3336\",\n },\n {\n value: \"FM3337-KG\",\n label: \"FM3337\",\n },\n {\n value: \"FM3338-KG\",\n label: \"FM3338\",\n },\n {\n value: \"FM3339-KG\",\n label: \"FM3339\",\n },\n {\n value: \"FM3340-KG\",\n label: \"FM3340\",\n },\n {\n value: \"FM3341-KG\",\n label: \"FM3341\",\n },\n {\n value: \"FM3342-KG\",\n label: \"FM3342\",\n },\n {\n value: \"FM3343-KG\",\n label: \"FM3343\",\n },\n {\n value: \"FM3344-KG\",\n label: \"FM3344\",\n },\n {\n value: \"FM3345-KG\",\n label: \"FM3345\",\n },\n {\n value: \"FM3346-KG\",\n label: \"FM3346\",\n },\n {\n value: \"FM3349-KG\",\n label: \"FM3349\",\n },\n {\n value: \"FM3350-KG\",\n label: \"FM3350\",\n },\n {\n value: \"FM3351-KG\",\n label: \"FM3351\",\n },\n {\n value: \"FM3352-KG\",\n label: \"FM3352\",\n },\n {\n value: \"FM3353-KG\",\n label: \"FM3353\",\n },\n {\n value: \"FM3354-KG\",\n label: \"FM3354\",\n },\n {\n value: \"FM3355-KG\",\n label: \"FM3355\",\n },\n {\n value: \"FM3356-KG\",\n label: \"FM3356\",\n },\n {\n value: \"FM3357-KG\",\n label: \"FM3357\",\n },\n {\n value: \"FM3358-KG\",\n label: \"FM3358\",\n },\n {\n value: \"FM3359-KG\",\n label: \"FM3359\",\n },\n {\n value: \"FM3360-KG\",\n label: \"FM3360\",\n },\n {\n value: \"FM3361-KG\",\n label: \"FM3361\",\n },\n {\n value: \"FM3362-KG\",\n label: \"FM3362\",\n },\n {\n value: \"FM3363-KG\",\n label: \"FM3363\",\n },\n {\n value: \"FM3364-KG\",\n label: \"FM3364\",\n },\n {\n value: \"FM3365-KG\",\n label: \"FM3365\",\n },\n {\n value: \"FM3366-KG\",\n label: \"FM3366\",\n },\n {\n value: \"FM3367-KG\",\n label: \"FM3367\",\n },\n {\n value: \"FM3368-KG\",\n label: \"FM3368\",\n },\n {\n value: \"FM3369-KG\",\n label: \"FM3369\",\n },\n {\n value: \"FM3370-KG\",\n label: \"FM3370\",\n },\n {\n value: \"FM3371-KG\",\n label: \"FM3371\",\n },\n {\n value: \"FM3372-KG\",\n label: \"FM3372\",\n },\n {\n value: \"FM3373-KG\",\n label: \"FM3373\",\n },\n {\n value: \"FM3375-KG\",\n label: \"FM3375\",\n },\n {\n value: \"FM3376-KG\",\n label: \"FM3376\",\n },\n {\n value: \"FM3377-KG\",\n label: \"FM3377\",\n },\n {\n value: \"FM3378-KG\",\n label: \"FM3378\",\n },\n {\n value: \"FM3379-KG\",\n label: \"FM3379\",\n },\n {\n value: \"FM3380-KG\",\n label: \"FM3380\",\n },\n {\n value: \"FM3381-KG\",\n label: \"FM3381\",\n },\n {\n value: \"FM3382-KG\",\n label: \"FM3382\",\n },\n {\n value: \"FM3383-KG\",\n label: \"FM3383\",\n },\n {\n value: \"FM3384-KG\",\n label: \"FM3384\",\n },\n {\n value: \"FM3385-KG\",\n label: \"FM3385\",\n },\n {\n value: \"FM3386-KG\",\n label: \"FM3386\",\n },\n {\n value: \"FM3387-KG\",\n label: \"FM3387\",\n },\n {\n value: \"FM3388-KG\",\n label: \"FM3388\",\n },\n {\n value: \"FM3389-KG\",\n label: \"FM3389\",\n },\n {\n value: \"FM3390-KG\",\n label: \"FM3390\",\n },\n {\n value: \"FM3391-KG\",\n label: \"FM3391\",\n },\n {\n value: \"FM3392-KG\",\n label: \"FM3392\",\n },\n {\n value: \"FM3393-KG\",\n label: \"FM3393\",\n },\n {\n value: \"FM3394-KG\",\n label: \"FM3394\",\n },\n {\n value: \"FM3395-KG\",\n label: \"FM3395\",\n },\n {\n value: \"FM3396-KG\",\n label: \"FM3396\",\n },\n {\n value: \"FM3397-KG\",\n label: \"FM3397\",\n },\n {\n value: \"FM3398-KG\",\n label: \"FM3398\",\n },\n {\n value: \"FM3399-KG\",\n label: \"FM3399\",\n },\n {\n value: \"FM3400-KG\",\n label: \"FM3400\",\n },\n {\n value: \"FM3401-KG\",\n label: \"FM3401\",\n },\n {\n value: \"FM3403-KG\",\n label: \"FM3403\",\n },\n {\n value: \"FM3405-KG\",\n label: \"FM3405\",\n },\n {\n value: \"FM3406-KG\",\n label: \"FM3406\",\n },\n {\n value: \"FM3408-KG\",\n label: \"FM3408\",\n },\n {\n value: \"FM3409-KG\",\n label: \"FM3409\",\n },\n {\n value: \"FM3410-KG\",\n label: \"FM3410\",\n },\n {\n value: \"FM3411-KG\",\n label: \"FM3411\",\n },\n {\n value: \"FM3413-KG\",\n label: \"FM3413\",\n },\n {\n value: \"FM3414-KG\",\n label: \"FM3414\",\n },\n {\n value: \"FM3415-KG\",\n label: \"FM3415\",\n },\n {\n value: \"FM3416-KG\",\n label: \"FM3416\",\n },\n {\n value: \"FM3417-KG\",\n label: \"FM3417\",\n },\n {\n value: \"FM3418-KG\",\n label: \"FM3418\",\n },\n {\n value: \"FM3419-KG\",\n label: \"FM3419\",\n },\n {\n value: \"FM3421-KG\",\n label: \"FM3421\",\n },\n {\n value: \"FM3422-KG\",\n label: \"FM3422\",\n },\n {\n value: \"FM3423-KG\",\n label: \"FM3423\",\n },\n {\n value: \"FM3424-KG\",\n label: \"FM3424\",\n },\n {\n value: \"FM3425-KG\",\n label: \"FM3425\",\n },\n {\n value: \"FM3426-KG\",\n label: \"FM3426\",\n },\n {\n value: \"FM3427-KG\",\n label: \"FM3427\",\n },\n {\n value: \"FM3428-KG\",\n label: \"FM3428\",\n },\n {\n value: \"FM3429-KG\",\n label: \"FM3429\",\n },\n {\n value: \"FM3430-KG\",\n label: \"FM3430\",\n },\n {\n value: \"FM3431-KG\",\n label: \"FM3431\",\n },\n {\n value: \"FM3432-KG\",\n label: \"FM3432\",\n },\n {\n value: \"FM3433-KG\",\n label: \"FM3433\",\n },\n {\n value: \"FM3434-KG\",\n label: \"FM3434\",\n },\n {\n value: \"FM3435-KG\",\n label: \"FM3435\",\n },\n {\n value: \"FM3436-KG\",\n label: \"FM3436\",\n },\n {\n value: \"FM3437-KG\",\n label: \"FM3437\",\n },\n {\n value: \"FM3438-KG\",\n label: \"FM3438\",\n },\n {\n value: \"FM3439-KG\",\n label: \"FM3439\",\n },\n {\n value: \"FM3440-KG\",\n label: \"FM3440\",\n },\n {\n value: \"FM3441-KG\",\n label: \"FM3441\",\n },\n {\n value: \"FM3442-KG\",\n label: \"FM3442\",\n },\n {\n value: \"FM3443-KG\",\n label: \"FM3443\",\n },\n {\n value: \"FM3445-KG\",\n label: \"FM3445\",\n },\n {\n value: \"FM3446-KG\",\n label: \"FM3446\",\n },\n {\n value: \"FM3447-KG\",\n label: \"FM3447\",\n },\n {\n value: \"FM3448-KG\",\n label: \"FM3448\",\n },\n {\n value: \"FM3449-KG\",\n label: \"FM3449\",\n },\n {\n value: \"FM3450-KG\",\n label: \"FM3450\",\n },\n {\n value: \"FM3451-KG\",\n label: \"FM3451\",\n },\n {\n value: \"FM3452-KG\",\n label: \"FM3452\",\n },\n {\n value: \"FM3453-KG\",\n label: \"FM3453\",\n },\n {\n value: \"FM3454-KG\",\n label: \"FM3454\",\n },\n {\n value: \"FM3455-KG\",\n label: \"FM3455\",\n },\n {\n value: \"FM3456-KG\",\n label: \"FM3456\",\n },\n {\n value: \"FM3457-KG\",\n label: \"FM3457\",\n },\n {\n value: \"FM3458-KG\",\n label: \"FM3458\",\n },\n {\n value: \"FM3459-KG\",\n label: \"FM3459\",\n },\n {\n value: \"FM3460-KG\",\n label: \"FM3460\",\n },\n {\n value: \"FM3461-KG\",\n label: \"FM3461\",\n },\n {\n value: \"FM3462-KG\",\n label: \"FM3462\",\n },\n {\n value: \"FM3463-KG\",\n label: \"FM3463\",\n },\n {\n value: \"FM3465-KG\",\n label: \"FM3465\",\n },\n {\n value: \"FM3466-KG\",\n label: \"FM3466\",\n },\n {\n value: \"FM3468-KG\",\n label: \"FM3468\",\n },\n {\n value: \"FM3469-KG\",\n label: \"FM3469\",\n },\n {\n value: \"FM3470-KG\",\n label: \"FM3470\",\n },\n {\n value: \"FM3471-KG\",\n label: \"FM3471\",\n },\n {\n value: \"FM3472-KG\",\n label: \"FM3472\",\n },\n {\n value: \"FM3475-KG\",\n label: \"FM3475\",\n },\n {\n value: \"FM3476-KG\",\n label: \"FM3476\",\n },\n {\n value: \"FM3478-KG\",\n label: \"FM3478\",\n },\n {\n value: \"FM3479-KG\",\n label: \"FM3479\",\n },\n {\n value: \"FM3480-KG\",\n label: \"FM3480\",\n },\n {\n value: \"FM3481-KG\",\n label: \"FM3481\",\n },\n {\n value: \"FM3482-KG\",\n label: \"FM3482\",\n },\n {\n value: \"FM3483-KG\",\n label: \"FM3483\",\n },\n {\n value: \"FM3484-KG\",\n label: \"FM3484\",\n },\n {\n value: \"FM3486-KG\",\n label: \"FM3486\",\n },\n {\n value: \"FM3489-KG\",\n label: \"FM3489\",\n },\n {\n value: \"FM3490-KG\",\n label: \"FM3490\",\n },\n {\n value: \"FM3491-KG\",\n label: \"FM3491\",\n },\n {\n value: \"FM3492-KG\",\n label: \"FM3492\",\n },\n {\n value: \"FM3495-KG\",\n label: \"FM3495\",\n },\n {\n value: \"FM3496-KG\",\n label: \"FM3496\",\n },\n {\n value: \"FM3497-KG\",\n label: \"FM3497\",\n },\n {\n value: \"FM3498-KG\",\n label: \"FM3498\",\n },\n {\n value: \"FM3499-KG\",\n label: \"FM3499\",\n },\n {\n value: \"FM3501-KG\",\n label: \"FM3501\",\n },\n {\n value: \"FM3502-KG\",\n label: \"FM3502\",\n },\n {\n value: \"FM3503-KG\",\n label: \"FM3503\",\n },\n {\n value: \"FM3505-KG\",\n label: \"FM3505\",\n },\n {\n value: \"FM3506-KG\",\n label: \"FM3506\",\n },\n {\n value: \"FM3509-KG\",\n label: \"FM3509\",\n },\n {\n value: \"FM3510-KG\",\n label: \"FM3510\",\n },\n {\n value: \"FM3512-KG\",\n label: \"FM3512\",\n },\n {\n value: \"FM3513-KG\",\n label: \"FM3513\",\n },\n {\n value: \"FM3514-KG\",\n label: \"FM3514\",\n },\n {\n value: \"FM3516-KG\",\n label: \"FM3516\",\n },\n {\n value: \"FM3517-KG\",\n label: \"FM3517\",\n },\n {\n value: \"FM3519-KG\",\n label: \"FM3519\",\n },\n {\n value: \"FM3520-KG\",\n label: \"FM3520\",\n },\n {\n value: \"FM3521-KG\",\n label: \"FM3521\",\n },\n {\n value: \"FM3522-KG\",\n label: \"FM3522\",\n },\n {\n value: \"FM3523-KG\",\n label: \"FM3523\",\n },\n {\n value: \"FM3524-KG\",\n label: \"FM3524\",\n },\n {\n value: \"FM3525-KG\",\n label: \"FM3525\",\n },\n {\n value: \"FM3527-KG\",\n label: \"FM3527\",\n },\n {\n value: \"FM3529-KG\",\n label: \"FM3529\",\n },\n {\n value: \"FM3530-KG\",\n label: \"FM3530\",\n },\n {\n value: \"FM3533-KG\",\n label: \"FM3533\",\n },\n {\n value: \"FM3535-KG\",\n label: \"FM3535\",\n },\n {\n value: \"FM3537-KG\",\n label: \"FM3537\",\n },\n {\n value: \"FM3538-KG\",\n label: \"FM3538\",\n },\n {\n value: \"FM3541-KG\",\n label: \"FM3541\",\n },\n {\n value: \"FM3549-KG\",\n label: \"FM3549\",\n },\n {\n value: \"FM4000-KG\",\n label: \"FM4000\",\n },\n {\n value: \"IH0002-KG\",\n label: \"IH0002\",\n },\n {\n value: \"IH0010-KG\",\n label: \"IH0010\",\n },\n {\n value: \"IH0014-KG\",\n label: \"IH0014\",\n },\n {\n value: \"IH0020-KG\",\n label: \"IH0020\",\n },\n {\n value: \"IH0027-KG\",\n label: \"IH0027\",\n },\n {\n value: \"IH0030-KG\",\n label: \"IH0030\",\n },\n {\n value: \"IH0035E-KG\",\n label: \"IH0035E\",\n },\n {\n value: \"IH0035-KG\",\n label: \"IH0035\",\n },\n {\n value: \"IH0035W-KG\",\n label: \"IH0035W\",\n },\n {\n value: \"IH0037-KG\",\n label: \"IH0037\",\n },\n {\n value: \"IH0040-KG\",\n label: \"IH0040\",\n },\n {\n value: \"IH0044-KG\",\n label: \"IH0044\",\n },\n {\n value: \"IH0045-KG\",\n label: \"IH0045\",\n },\n {\n value: \"IH0069C-KG\",\n label: \"IH0069C\",\n },\n {\n value: \"IH0069E-KG\",\n label: \"IH0069E\",\n },\n {\n value: \"IH0069-KG\",\n label: \"IH0069\",\n },\n {\n value: \"IH0069W-KG\",\n label: \"IH0069W\",\n },\n {\n value: \"IH0110-KG\",\n label: \"IH0110\",\n },\n {\n value: \"IH0169-KG\",\n label: \"IH0169\",\n },\n {\n value: \"IH0345-KG\",\n label: \"IH0345\",\n },\n {\n value: \"IH0369-KG\",\n label: \"IH0369\",\n },\n {\n value: \"IH0410-KG\",\n label: \"IH0410\",\n },\n {\n value: \"IH0610-KG\",\n label: \"IH0610\",\n },\n {\n value: \"IH0635-KG\",\n label: \"IH0635\",\n },\n {\n value: \"IH0820-KG\",\n label: \"IH0820\",\n },\n {\n value: \"RM0012-KG\",\n label: \"RM0012\",\n },\n {\n value: \"RM0032-KG\",\n label: \"RM0032\",\n },\n {\n value: \"RM0033-KG\",\n label: \"RM0033\",\n },\n {\n value: \"RM0150-KG\",\n label: \"RM0150\",\n },\n {\n value: \"RM0152-KG\",\n label: \"RM0152\",\n },\n {\n value: \"RM0165-KG\",\n label: \"RM0165\",\n },\n {\n value: \"RM0169-KG\",\n label: \"RM0169\",\n },\n {\n value: \"RM0187-KG\",\n label: \"RM0187\",\n },\n {\n value: \"RM0189-KG\",\n label: \"RM0189\",\n },\n {\n value: \"RM0243-KG\",\n label: \"RM0243\",\n },\n {\n value: \"RM0334-KG\",\n label: \"RM0334\",\n },\n {\n value: \"RM0335-KG\",\n label: \"RM0335\",\n },\n {\n value: \"RM0336-KG\",\n label: \"RM0336\",\n },\n {\n value: \"RM0337-KG\",\n label: \"RM0337\",\n },\n {\n value: \"RM0385-KG\",\n label: \"RM0385\",\n },\n {\n value: \"RM0386-KG\",\n label: \"RM0386\",\n },\n {\n value: \"RM0473-KG\",\n label: \"RM0473\",\n },\n {\n value: \"RM0474-KG\",\n label: \"RM0474\",\n },\n {\n value: \"RM0479-KG\",\n label: \"RM0479\",\n },\n {\n value: \"RM0480-KG\",\n label: \"RM0480\",\n },\n {\n value: \"RM0484-KG\",\n label: \"RM0484\",\n },\n {\n value: \"RM0501-KG\",\n label: \"RM0501\",\n },\n {\n value: \"RM0505-KG\",\n label: \"RM0505\",\n },\n {\n value: \"RM0584-KG\",\n label: \"RM0584\",\n },\n {\n value: \"RM0620-KG\",\n label: \"RM0620\",\n },\n {\n value: \"RM0628-KG\",\n label: \"RM0628\",\n },\n {\n value: \"RM0648-KG\",\n label: \"RM0648\",\n },\n {\n value: \"RM0652-KG\",\n label: \"RM0652\",\n },\n {\n value: \"RM0674-KG\",\n label: \"RM0674\",\n },\n {\n value: \"RM0687-KG\",\n label: \"RM0687\",\n },\n {\n value: \"RM0690-KG\",\n label: \"RM0690\",\n },\n {\n value: \"RM0693-KG\",\n label: \"RM0693\",\n },\n {\n value: \"RM0783-KG\",\n label: \"RM0783\",\n },\n {\n value: \"RM0853-KG\",\n label: \"RM0853\",\n },\n {\n value: \"RM0864-KG\",\n label: \"RM0864\",\n },\n {\n value: \"RM0915-KG\",\n label: \"RM0915\",\n },\n {\n value: \"RM0962-KG\",\n label: \"RM0962\",\n },\n {\n value: \"RM0963-KG\",\n label: \"RM0963\",\n },\n {\n value: \"RM0965-KG\",\n label: \"RM0965\",\n },\n {\n value: \"RM0967-KG\",\n label: \"RM0967\",\n },\n {\n value: \"RM1022-KG\",\n label: \"RM1022\",\n },\n {\n value: \"RM1024-KG\",\n label: \"RM1024\",\n },\n {\n value: \"RM1050-KG\",\n label: \"RM1050\",\n },\n {\n value: \"RM1061-KG\",\n label: \"RM1061\",\n },\n {\n value: \"RM1077-KG\",\n label: \"RM1077\",\n },\n {\n value: \"RM1108-KG\",\n label: \"RM1108\",\n },\n {\n value: \"RM1111-KG\",\n label: \"RM1111\",\n },\n {\n value: \"RM1165-KG\",\n label: \"RM1165\",\n },\n {\n value: \"RM1174-KG\",\n label: \"RM1174\",\n },\n {\n value: \"RM1221-KG\",\n label: \"RM1221\",\n },\n {\n value: \"RM1222-KG\",\n label: \"RM1222\",\n },\n {\n value: \"RM1282-KG\",\n label: \"RM1282\",\n },\n {\n value: \"RM1312-KG\",\n label: \"RM1312\",\n },\n {\n value: \"RM1319-KG\",\n label: \"RM1319\",\n },\n {\n value: \"RM1320-KG\",\n label: \"RM1320\",\n },\n {\n value: \"RM1321-KG\",\n label: \"RM1321\",\n },\n {\n value: \"RM1323-KG\",\n label: \"RM1323\",\n },\n {\n value: \"RM1357-KG\",\n label: \"RM1357\",\n },\n {\n value: \"RM1376-KG\",\n label: \"RM1376\",\n },\n {\n value: \"RM1431-KG\",\n label: \"RM1431\",\n },\n {\n value: \"RM1474-KG\",\n label: \"RM1474\",\n },\n {\n value: \"RM1492-KG\",\n label: \"RM1492\",\n },\n {\n value: \"RM1526-KG\",\n label: \"RM1526\",\n },\n {\n value: \"RM1555-KG\",\n label: \"RM1555\",\n },\n {\n value: \"RM1623-KG\",\n label: \"RM1623\",\n },\n {\n value: \"RM1631-KG\",\n label: \"RM1631\",\n },\n {\n value: \"RM1672-KG\",\n label: \"RM1672\",\n },\n {\n value: \"RM1674-KG\",\n label: \"RM1674\",\n },\n {\n value: \"RM1675-KG\",\n label: \"RM1675\",\n },\n {\n value: \"RM1676-KG\",\n label: \"RM1676\",\n },\n {\n value: \"RM1691-KG\",\n label: \"RM1691\",\n },\n {\n value: \"RM1723-KG\",\n label: \"RM1723\",\n },\n {\n value: \"RM1773-KG\",\n label: \"RM1773\",\n },\n {\n value: \"RM1826-KG\",\n label: \"RM1826\",\n },\n {\n value: \"RM1832-KG\",\n label: \"RM1832\",\n },\n {\n value: \"RM1837-KG\",\n label: \"RM1837\",\n },\n {\n value: \"RM1855-KG\",\n label: \"RM1855\",\n },\n {\n value: \"RM1865-KG\",\n label: \"RM1865\",\n },\n {\n value: \"RM1869-KG\",\n label: \"RM1869\",\n },\n {\n value: \"RM1871-KG\",\n label: \"RM1871\",\n },\n {\n value: \"RM1888-KG\",\n label: \"RM1888\",\n },\n {\n value: \"RM1900-KG\",\n label: \"RM1900\",\n },\n {\n value: \"RM1919-KG\",\n label: \"RM1919\",\n },\n {\n value: \"RM1964-KG\",\n label: \"RM1964\",\n },\n {\n value: \"RM1973-KG\",\n label: \"RM1973\",\n },\n {\n value: \"RM1989-KG\",\n label: \"RM1989\",\n },\n {\n value: \"RM2023-KG\",\n label: \"RM2023\",\n },\n {\n value: \"RM2034-KG\",\n label: \"RM2034\",\n },\n {\n value: \"RM2059-KG\",\n label: \"RM2059\",\n },\n {\n value: \"RM2083-KG\",\n label: \"RM2083\",\n },\n {\n value: \"RM2084-KG\",\n label: \"RM2084\",\n },\n {\n value: \"RM2139-KG\",\n label: \"RM2139\",\n },\n {\n value: \"RM2147-KG\",\n label: \"RM2147\",\n },\n {\n value: \"RM2166-KG\",\n label: \"RM2166\",\n },\n {\n value: \"RM2222-KG\",\n label: \"RM2222\",\n },\n {\n value: \"RM2233-KG\",\n label: \"RM2233\",\n },\n {\n value: \"RM2241-KG\",\n label: \"RM2241\",\n },\n {\n value: \"RM2242-KG\",\n label: \"RM2242\",\n },\n {\n value: \"RM2243-KG\",\n label: \"RM2243\",\n },\n {\n value: \"RM2244-KG\",\n label: \"RM2244\",\n },\n {\n value: \"RM2248-KG\",\n label: \"RM2248\",\n },\n {\n value: \"RM2277-KG\",\n label: \"RM2277\",\n },\n {\n value: \"RM2291-KG\",\n label: \"RM2291\",\n },\n {\n value: \"RM2317-KG\",\n label: \"RM2317\",\n },\n {\n value: \"RM2322-KG\",\n label: \"RM2322\",\n },\n {\n value: \"RM2323-KG\",\n label: \"RM2323\",\n },\n {\n value: \"RM2325-KG\",\n label: \"RM2325\",\n },\n {\n value: \"RM2329-KG\",\n label: \"RM2329\",\n },\n {\n value: \"RM2338-KG\",\n label: \"RM2338\",\n },\n {\n value: \"RM2340-KG\",\n label: \"RM2340\",\n },\n {\n value: \"RM2341-KG\",\n label: \"RM2341\",\n },\n {\n value: \"RM2342-KG\",\n label: \"RM2342\",\n },\n {\n value: \"RM2355-KG\",\n label: \"RM2355\",\n },\n {\n value: \"RM2375-KG\",\n label: \"RM2375\",\n },\n {\n value: \"RM2381-KG\",\n label: \"RM2381\",\n },\n {\n value: \"RM2389-KG\",\n label: \"RM2389\",\n },\n {\n value: \"RM2398-KG\",\n label: \"RM2398\",\n },\n {\n value: \"RM2400-KG\",\n label: \"RM2400\",\n },\n {\n value: \"RM2401-KG\",\n label: \"RM2401\",\n },\n {\n value: \"RM2424-KG\",\n label: \"RM2424\",\n },\n {\n value: \"RM2463-KG\",\n label: \"RM2463\",\n },\n {\n value: \"RM2469-KG\",\n label: \"RM2469\",\n },\n {\n value: \"RM2523-KG\",\n label: \"RM2523\",\n },\n {\n value: \"RM2545-KG\",\n label: \"RM2545\",\n },\n {\n value: \"RM2588-KG\",\n label: \"RM2588\",\n },\n {\n value: \"RM2593-KG\",\n label: \"RM2593\",\n },\n {\n value: \"RM2594-KG\",\n label: \"RM2594\",\n },\n {\n value: \"RM2596-KG\",\n label: \"RM2596\",\n },\n {\n value: \"RM2597-KG\",\n label: \"RM2597\",\n },\n {\n value: \"RM2600-KG\",\n label: \"RM2600\",\n },\n {\n value: \"RM2618-KG\",\n label: \"RM2618\",\n },\n {\n value: \"RM2627-KG\",\n label: \"RM2627\",\n },\n {\n value: \"RM2630-KG\",\n label: \"RM2630\",\n },\n {\n value: \"RM2631-KG\",\n label: \"RM2631\",\n },\n {\n value: \"RM2654-KG\",\n label: \"RM2654\",\n },\n {\n value: \"RM2690-KG\",\n label: \"RM2690\",\n },\n {\n value: \"RM2692-KG\",\n label: \"RM2692\",\n },\n {\n value: \"RM2699-KG\",\n label: \"RM2699\",\n },\n {\n value: \"RM2721-KG\",\n label: \"RM2721\",\n },\n {\n value: \"RM2722-KG\",\n label: \"RM2722\",\n },\n {\n value: \"RM2748-KG\",\n label: \"RM2748\",\n },\n {\n value: \"RM2758-KG\",\n label: \"RM2758\",\n },\n {\n value: \"RM2766-KG\",\n label: \"RM2766\",\n },\n {\n value: \"RM2768-KG\",\n label: \"RM2768\",\n },\n {\n value: \"RM2769-KG\",\n label: \"RM2769\",\n },\n {\n value: \"RM2775-KG\",\n label: \"RM2775\",\n },\n {\n value: \"RM2804-KG\",\n label: \"RM2804\",\n },\n {\n value: \"RM2810-KG\",\n label: \"RM2810\",\n },\n {\n value: \"RM2828-KG\",\n label: \"RM2828\",\n },\n {\n value: \"RM2831-KG\",\n label: \"RM2831\",\n },\n {\n value: \"RM2857-KG\",\n label: \"RM2857\",\n },\n {\n value: \"RM2871-KG\",\n label: \"RM2871\",\n },\n {\n value: \"RM2886-KG\",\n label: \"RM2886\",\n },\n {\n value: \"RM2900-KG\",\n label: \"RM2900\",\n },\n {\n value: \"RM2909-KG\",\n label: \"RM2909\",\n },\n {\n value: \"RM2970-KG\",\n label: \"RM2970\",\n },\n {\n value: \"RM2995-KG\",\n label: \"RM2995\",\n },\n {\n value: \"RM3008-KG\",\n label: \"RM3008\",\n },\n {\n value: \"RM3014-KG\",\n label: \"RM3014\",\n },\n {\n value: \"RM3054-KG\",\n label: \"RM3054\",\n },\n {\n value: \"RM3093-KG\",\n label: \"RM3093\",\n },\n {\n value: \"RM3130-KG\",\n label: \"RM3130\",\n },\n {\n value: \"RM3137-KG\",\n label: \"RM3137\",\n },\n {\n value: \"RM3166-KG\",\n label: \"RM3166\",\n },\n {\n value: \"RM3232-KG\",\n label: \"RM3232\",\n },\n {\n value: \"RM3235-KG\",\n label: \"RM3235\",\n },\n {\n value: \"RM3237-KG\",\n label: \"RM3237\",\n },\n {\n value: \"RM3238-KG\",\n label: \"RM3238\",\n },\n {\n value: \"RM3260-KG\",\n label: \"RM3260\",\n },\n {\n value: \"RM3273-KG\",\n label: \"RM3273\",\n },\n {\n value: \"RM3296-KG\",\n label: \"RM3296\",\n },\n {\n value: \"RM3307-KG\",\n label: \"RM3307\",\n },\n {\n value: \"RM3347-KG\",\n label: \"RM3347\",\n },\n {\n value: \"RM3348-KG\",\n label: \"RM3348\",\n },\n {\n value: \"RM3404-KG\",\n label: \"RM3404\",\n },\n {\n value: \"RM3474-KG\",\n label: \"RM3474\",\n },\n {\n value: \"SH0003-KG\",\n label: \"SH0003\",\n },\n {\n value: \"SH0004-KG\",\n label: \"SH0004\",\n },\n {\n value: \"SH0005-KG\",\n label: \"SH0005\",\n },\n {\n value: \"SH0006-KG\",\n label: \"SH0006\",\n },\n {\n value: \"SH0007-KG\",\n label: \"SH0007\",\n },\n {\n value: \"SH0008-KG\",\n label: \"SH0008\",\n },\n {\n value: \"SH0009-KG\",\n label: \"SH0009\",\n },\n {\n value: \"SH0010-KG\",\n label: \"SH0010\",\n },\n {\n value: \"SH0011-KG\",\n label: \"SH0011\",\n },\n {\n value: \"SH0012-KG\",\n label: \"SH0012\",\n },\n {\n value: \"SH0014-KG\",\n label: \"SH0014\",\n },\n {\n value: \"SH0015-KG\",\n label: \"SH0015\",\n },\n {\n value: \"SH0016-KG\",\n label: \"SH0016\",\n },\n {\n value: \"SH0017-KG\",\n label: \"SH0017\",\n },\n {\n value: \"SH0018-KG\",\n label: \"SH0018\",\n },\n {\n value: \"SH0019-KG\",\n label: \"SH0019\",\n },\n {\n value: \"SH0020-KG\",\n label: \"SH0020\",\n },\n {\n value: \"SH0021-KG\",\n label: \"SH0021\",\n },\n {\n value: \"SH0022-KG\",\n label: \"SH0022\",\n },\n {\n value: \"SH0023-KG\",\n label: \"SH0023\",\n },\n {\n value: \"SH0024-KG\",\n label: \"SH0024\",\n },\n {\n value: \"SH0025-KG\",\n label: \"SH0025\",\n },\n {\n value: \"SH0026-KG\",\n label: \"SH0026\",\n },\n {\n value: \"SH0027-KG\",\n label: \"SH0027\",\n },\n {\n value: \"SH0029-KG\",\n label: \"SH0029\",\n },\n {\n value: \"SH0030-KG\",\n label: \"SH0030\",\n },\n {\n value: \"SH0031-KG\",\n label: \"SH0031\",\n },\n {\n value: \"SH0033-KG\",\n label: \"SH0033\",\n },\n {\n value: \"SH0034-KG\",\n label: \"SH0034\",\n },\n {\n value: \"SH0035-KG\",\n label: \"SH0035\",\n },\n {\n value: \"SH0036-KG\",\n label: \"SH0036\",\n },\n {\n value: \"SH0037-KG\",\n label: \"SH0037\",\n },\n {\n value: \"SH0039-KG\",\n label: \"SH0039\",\n },\n {\n value: \"SH0040-KG\",\n label: \"SH0040\",\n },\n {\n value: \"SH0041-KG\",\n label: \"SH0041\",\n },\n {\n value: \"SH0042-KG\",\n label: \"SH0042\",\n },\n {\n value: \"SH0043-KG\",\n label: \"SH0043\",\n },\n {\n value: \"SH0044-KG\",\n label: \"SH0044\",\n },\n {\n value: \"SH0045-KG\",\n label: \"SH0045\",\n },\n {\n value: \"SH0046-KG\",\n label: \"SH0046\",\n },\n {\n value: \"SH0047-KG\",\n label: \"SH0047\",\n },\n {\n value: \"SH0048-KG\",\n label: \"SH0048\",\n },\n {\n value: \"SH0049-KG\",\n label: \"SH0049\",\n },\n {\n value: \"SH0050-KG\",\n label: \"SH0050\",\n },\n {\n value: \"SH0051-KG\",\n label: \"SH0051\",\n },\n {\n value: \"SH0053-KG\",\n label: \"SH0053\",\n },\n {\n value: \"SH0054-KG\",\n label: \"SH0054\",\n },\n {\n value: \"SH0055-KG\",\n label: \"SH0055\",\n },\n {\n value: \"SH0056-KG\",\n label: \"SH0056\",\n },\n {\n value: \"SH0057-KG\",\n label: \"SH0057\",\n },\n {\n value: \"SH0059-KG\",\n label: \"SH0059\",\n },\n {\n value: \"SH0060-KG\",\n label: \"SH0060\",\n },\n {\n value: \"SH0061-KG\",\n label: \"SH0061\",\n },\n {\n value: \"SH0062-KG\",\n label: \"SH0062\",\n },\n {\n value: \"SH0063-KG\",\n label: \"SH0063\",\n },\n {\n value: \"SH0064-KG\",\n label: \"SH0064\",\n },\n {\n value: \"SH0065-KG\",\n label: \"SH0065\",\n },\n {\n value: \"SH0066-KG\",\n label: \"SH0066\",\n },\n {\n value: \"SH0067-KG\",\n label: \"SH0067\",\n },\n {\n value: \"SH0070-KG\",\n label: \"SH0070\",\n },\n {\n value: \"SH0071-KG\",\n label: \"SH0071\",\n },\n {\n value: \"SH0072-KG\",\n label: \"SH0072\",\n },\n {\n value: \"SH0073-KG\",\n label: \"SH0073\",\n },\n {\n value: \"SH0075-KG\",\n label: \"SH0075\",\n },\n {\n value: \"SH0077-KG\",\n label: \"SH0077\",\n },\n {\n value: \"SH0078-KG\",\n label: \"SH0078\",\n },\n {\n value: \"SH0079-KG\",\n label: \"SH0079\",\n },\n {\n value: \"SH0080-KG\",\n label: \"SH0080\",\n },\n {\n value: \"SH0081-KG\",\n label: \"SH0081\",\n },\n {\n value: \"SH0082-KG\",\n label: \"SH0082\",\n },\n {\n value: \"SH0083-KG\",\n label: \"SH0083\",\n },\n {\n value: \"SH0085-KG\",\n label: \"SH0085\",\n },\n {\n value: \"SH0086-KG\",\n label: \"SH0086\",\n },\n {\n value: \"SH0087-KG\",\n label: \"SH0087\",\n },\n {\n value: \"SH0089-KG\",\n label: \"SH0089\",\n },\n {\n value: \"SH0090-KG\",\n label: \"SH0090\",\n },\n {\n value: \"SH0091-KG\",\n label: \"SH0091\",\n },\n {\n value: \"SH0092-KG\",\n label: \"SH0092\",\n },\n {\n value: \"SH0093-KG\",\n label: \"SH0093\",\n },\n {\n value: \"SH0094-KG\",\n label: \"SH0094\",\n },\n {\n value: \"SH0095-KG\",\n label: \"SH0095\",\n },\n {\n value: \"SH0096-KG\",\n label: \"SH0096\",\n },\n {\n value: \"SH0097-KG\",\n label: \"SH0097\",\n },\n {\n value: \"SH0098-KG\",\n label: \"SH0098\",\n },\n {\n value: \"SH0099-KG\",\n label: \"SH0099\",\n },\n {\n value: \"SH0100-KG\",\n label: \"SH0100\",\n },\n {\n value: \"SH0101-KG\",\n label: \"SH0101\",\n },\n {\n value: \"SH0102-KG\",\n label: \"SH0102\",\n },\n {\n value: \"SH0103-KG\",\n label: \"SH0103\",\n },\n {\n value: \"SH0105-KG\",\n label: \"SH0105\",\n },\n {\n value: \"SH0107-KG\",\n label: \"SH0107\",\n },\n {\n value: \"SH0108-KG\",\n label: \"SH0108\",\n },\n {\n value: \"SH0110-KG\",\n label: \"SH0110\",\n },\n {\n value: \"SH0111-KG\",\n label: \"SH0111\",\n },\n {\n value: \"SH0112-KG\",\n label: \"SH0112\",\n },\n {\n value: \"SH0114-KG\",\n label: \"SH0114\",\n },\n {\n value: \"SH0115-KG\",\n label: \"SH0115\",\n },\n {\n value: \"SH0118-KG\",\n label: \"SH0118\",\n },\n {\n value: \"SH0119-KG\",\n label: \"SH0119\",\n },\n {\n value: \"SH0121-KG\",\n label: \"SH0121\",\n },\n {\n value: \"SH0123-KG\",\n label: \"SH0123\",\n },\n {\n value: \"SH0124-KG\",\n label: \"SH0124\",\n },\n {\n value: \"SH0125-KG\",\n label: \"SH0125\",\n },\n {\n value: \"SH0127-KG\",\n label: \"SH0127\",\n },\n {\n value: \"SH0128-KG\",\n label: \"SH0128\",\n },\n {\n value: \"SH0130-KG\",\n label: \"SH0130\",\n },\n {\n value: \"SH0131-KG\",\n label: \"SH0131\",\n },\n {\n value: \"SH0132-KG\",\n label: \"SH0132\",\n },\n {\n value: \"SH0135-KG\",\n label: \"SH0135\",\n },\n {\n value: \"SH0136-KG\",\n label: \"SH0136\",\n },\n {\n value: \"SH0137-KG\",\n label: \"SH0137\",\n },\n {\n value: \"SH0138-KG\",\n label: \"SH0138\",\n },\n {\n value: \"SH0140-KG\",\n label: \"SH0140\",\n },\n {\n value: \"SH0141-KG\",\n label: \"SH0141\",\n },\n {\n value: \"SH0142-KG\",\n label: \"SH0142\",\n },\n {\n value: \"SH0144-KG\",\n label: \"SH0144\",\n },\n {\n value: \"SH0146-KG\",\n label: \"SH0146\",\n },\n {\n value: \"SH0147-KG\",\n label: \"SH0147\",\n },\n {\n value: \"SH0148-KG\",\n label: \"SH0148\",\n },\n {\n value: \"SH0149-KG\",\n label: \"SH0149\",\n },\n {\n value: \"SH0150-KG\",\n label: \"SH0150\",\n },\n {\n value: \"SH0151-KG\",\n label: \"SH0151\",\n },\n {\n value: \"SH0152-KG\",\n label: \"SH0152\",\n },\n {\n value: \"SH0153-KG\",\n label: \"SH0153\",\n },\n {\n value: \"SH0154-KG\",\n label: \"SH0154\",\n },\n {\n value: \"SH0155-KG\",\n label: \"SH0155\",\n },\n {\n value: \"SH0156-KG\",\n label: \"SH0156\",\n },\n {\n value: \"SH0158-KG\",\n label: \"SH0158\",\n },\n {\n value: \"SH0159-KG\",\n label: \"SH0159\",\n },\n {\n value: \"SH0160-KG\",\n label: \"SH0160\",\n },\n {\n value: \"SH0161-KG\",\n label: \"SH0161\",\n },\n {\n value: \"SH0163-KG\",\n label: \"SH0163\",\n },\n {\n value: \"SH0164-KG\",\n label: \"SH0164\",\n },\n {\n value: \"SH0165-KG\",\n label: \"SH0165\",\n },\n {\n value: \"SH0166-KG\",\n label: \"SH0166\",\n },\n {\n value: \"SH0167-KG\",\n label: \"SH0167\",\n },\n {\n value: \"SH0168-KG\",\n label: \"SH0168\",\n },\n {\n value: \"SH0170-KG\",\n label: \"SH0170\",\n },\n {\n value: \"SH0171-KG\",\n label: \"SH0171\",\n },\n {\n value: \"SH0172-KG\",\n label: \"SH0172\",\n },\n {\n value: \"SH0173-KG\",\n label: \"SH0173\",\n },\n {\n value: \"SH0174-KG\",\n label: \"SH0174\",\n },\n {\n value: \"SH0175-KG\",\n label: \"SH0175\",\n },\n {\n value: \"SH0176-KG\",\n label: \"SH0176\",\n },\n {\n value: \"SH0178-KG\",\n label: \"SH0178\",\n },\n {\n value: \"SH0179-KG\",\n label: \"SH0179\",\n },\n {\n value: \"SH0180-KG\",\n label: \"SH0180\",\n },\n {\n value: \"SH0182-KG\",\n label: \"SH0182\",\n },\n {\n value: \"SH0183-KG\",\n label: \"SH0183\",\n },\n {\n value: \"SH0184-KG\",\n label: \"SH0184\",\n },\n {\n value: \"SH0185-KG\",\n label: \"SH0185\",\n },\n {\n value: \"SH0186-KG\",\n label: \"SH0186\",\n },\n {\n value: \"SH0188-KG\",\n label: \"SH0188\",\n },\n {\n value: \"SH0191-KG\",\n label: \"SH0191\",\n },\n {\n value: \"SH0193-KG\",\n label: \"SH0193\",\n },\n {\n value: \"SH0194-KG\",\n label: \"SH0194\",\n },\n {\n value: \"SH0195-KG\",\n label: \"SH0195\",\n },\n {\n value: \"SH0198-KG\",\n label: \"SH0198\",\n },\n {\n value: \"SH0199-KG\",\n label: \"SH0199\",\n },\n {\n value: \"SH0201-KG\",\n label: \"SH0201\",\n },\n {\n value: \"SH0202-KG\",\n label: \"SH0202\",\n },\n {\n value: \"SH0203-KG\",\n label: \"SH0203\",\n },\n {\n value: \"SH0204-KG\",\n label: \"SH0204\",\n },\n {\n value: \"SH0205-KG\",\n label: \"SH0205\",\n },\n {\n value: \"SH0206-KG\",\n label: \"SH0206\",\n },\n {\n value: \"SH0207-KG\",\n label: \"SH0207\",\n },\n {\n value: \"SH0208-KG\",\n label: \"SH0208\",\n },\n {\n value: \"SH0211-KG\",\n label: \"SH0211\",\n },\n {\n value: \"SH0213-KG\",\n label: \"SH0213\",\n },\n {\n value: \"SH0214-KG\",\n label: \"SH0214\",\n },\n {\n value: \"SH0217-KG\",\n label: \"SH0217\",\n },\n {\n value: \"SH0218-KG\",\n label: \"SH0218\",\n },\n {\n value: \"SH0220-KG\",\n label: \"SH0220\",\n },\n {\n value: \"SH0222-KG\",\n label: \"SH0222\",\n },\n {\n value: \"SH0223-KG\",\n label: \"SH0223\",\n },\n {\n value: \"SH0224-KG\",\n label: \"SH0224\",\n },\n {\n value: \"SH0225-KG\",\n label: \"SH0225\",\n },\n {\n value: \"SH0234-KG\",\n label: \"SH0234\",\n },\n {\n value: \"SH0236-KG\",\n label: \"SH0236\",\n },\n {\n value: \"SH0237-KG\",\n label: \"SH0237\",\n },\n {\n value: \"SH0238-KG\",\n label: \"SH0238\",\n },\n {\n value: \"SH0239-KG\",\n label: \"SH0239\",\n },\n {\n value: \"SH0240-KG\",\n label: \"SH0240\",\n },\n {\n value: \"SH0242-KG\",\n label: \"SH0242\",\n },\n {\n value: \"SH0243-KG\",\n label: \"SH0243\",\n },\n {\n value: \"SH0249-KG\",\n label: \"SH0249\",\n },\n {\n value: \"SH0251-KG\",\n label: \"SH0251\",\n },\n {\n value: \"SH0254-KG\",\n label: \"SH0254\",\n },\n {\n value: \"SH0255-KG\",\n label: \"SH0255\",\n },\n {\n value: \"SH0256-KG\",\n label: \"SH0256\",\n },\n {\n value: \"SH0258-KG\",\n label: \"SH0258\",\n },\n {\n value: \"SH0261-KG\",\n label: \"SH0261\",\n },\n {\n value: \"SH0267-KG\",\n label: \"SH0267\",\n },\n {\n value: \"SH0273-KG\",\n label: \"SH0273\",\n },\n {\n value: \"SH0274-KG\",\n label: \"SH0274\",\n },\n {\n value: \"SH0275-KG\",\n label: \"SH0275\",\n },\n {\n value: \"SH0276-KG\",\n label: \"SH0276\",\n },\n {\n value: \"SH0279-KG\",\n label: \"SH0279\",\n },\n {\n value: \"SH0283-KG\",\n label: \"SH0283\",\n },\n {\n value: \"SH0285-KG\",\n label: \"SH0285\",\n },\n {\n value: \"SH0286-KG\",\n label: \"SH0286\",\n },\n {\n value: \"SH0288-KG\",\n label: \"SH0288\",\n },\n {\n value: \"SH0289-KG\",\n label: \"SH0289\",\n },\n {\n value: \"SH0290-KG\",\n label: \"SH0290\",\n },\n {\n value: \"SH0294-KG\",\n label: \"SH0294\",\n },\n {\n value: \"SH0300-KG\",\n label: \"SH0300\",\n },\n {\n value: \"SH0302-KG\",\n label: \"SH0302\",\n },\n {\n value: \"SH0304-KG\",\n label: \"SH0304\",\n },\n {\n value: \"SH0305-KG\",\n label: \"SH0305\",\n },\n {\n value: \"SH0308-KG\",\n label: \"SH0308\",\n },\n {\n value: \"SH0309-KG\",\n label: \"SH0309\",\n },\n {\n value: \"SH0310-KG\",\n label: \"SH0310\",\n },\n {\n value: \"SH0315-KG\",\n label: \"SH0315\",\n },\n {\n value: \"SH0316-KG\",\n label: \"SH0316\",\n },\n {\n value: \"SH0317-KG\",\n label: \"SH0317\",\n },\n {\n value: \"SH0320-KG\",\n label: \"SH0320\",\n },\n {\n value: \"SH0321-KG\",\n label: \"SH0321\",\n },\n {\n value: \"SH0322-KG\",\n label: \"SH0322\",\n },\n {\n value: \"SH0323-KG\",\n label: \"SH0323\",\n },\n {\n value: \"SH0326-KG\",\n label: \"SH0326\",\n },\n {\n value: \"SH0327-KG\",\n label: \"SH0327\",\n },\n {\n value: \"SH0329-KG\",\n label: \"SH0329\",\n },\n {\n value: \"SH0332-KG\",\n label: \"SH0332\",\n },\n {\n value: \"SH0334-KG\",\n label: \"SH0334\",\n },\n {\n value: \"SH0336-KG\",\n label: \"SH0336\",\n },\n {\n value: \"SH0337-KG\",\n label: \"SH0337\",\n },\n {\n value: \"SH0338-KG\",\n label: \"SH0338\",\n },\n {\n value: \"SH0339-KG\",\n label: \"SH0339\",\n },\n {\n value: \"SH0342-KG\",\n label: \"SH0342\",\n },\n {\n value: \"SH0345-KG\",\n label: \"SH0345\",\n },\n {\n value: \"SH0347-KG\",\n label: \"SH0347\",\n },\n {\n value: \"SH0349-KG\",\n label: \"SH0349\",\n },\n {\n value: \"SH0350-KG\",\n label: \"SH0350\",\n },\n {\n value: \"SH0351-KG\",\n label: \"SH0351\",\n },\n {\n value: \"SH0352-KG\",\n label: \"SH0352\",\n },\n {\n value: \"SH0354-KG\",\n label: \"SH0354\",\n },\n {\n value: \"SH0356-KG\",\n label: \"SH0356\",\n },\n {\n value: \"SH0357-KG\",\n label: \"SH0357\",\n },\n {\n value: \"SH0358-KG\",\n label: \"SH0358\",\n },\n {\n value: \"SH0359-KG\",\n label: \"SH0359\",\n },\n {\n value: \"SH0360-KG\",\n label: \"SH0360\",\n },\n {\n value: \"SH0361-KG\",\n label: \"SH0361\",\n },\n {\n value: \"SH0364-KG\",\n label: \"SH0364\",\n },\n {\n value: \"SH0495-KG\",\n label: \"SH0495\",\n },\n {\n value: \"SH0550-KG\",\n label: \"SH0550\",\n },\n {\n value: \"SHNASA-KG\",\n label: \"SHNASA\",\n },\n {\n value: \"SL0001-KG\",\n label: \"SL0001\",\n },\n {\n value: \"SL0002-KG\",\n label: \"SL0002\",\n },\n {\n value: \"SL0007-KG\",\n label: \"SL0007\",\n },\n {\n value: \"SL0011-KG\",\n label: \"SL0011\",\n },\n {\n value: \"SL0012-KG\",\n label: \"SL0012\",\n },\n {\n value: \"SL0013-KG\",\n label: \"SL0013\",\n },\n {\n value: \"SL0014-KG\",\n label: \"SL0014\",\n },\n {\n value: \"SL0015-KG\",\n label: \"SL0015\",\n },\n {\n value: \"SL0019-KG\",\n label: \"SL0019\",\n },\n {\n value: \"SL0020-KG\",\n label: \"SL0020\",\n },\n {\n value: \"SL0021-KG\",\n label: \"SL0021\",\n },\n {\n value: \"SL0025-KG\",\n label: \"SL0025\",\n },\n {\n value: \"SL0034-KG\",\n label: \"SL0034\",\n },\n {\n value: \"SL0036-KG\",\n label: \"SL0036\",\n },\n {\n value: \"SL0040-KG\",\n label: \"SL0040\",\n },\n {\n value: \"SL0042-KG\",\n label: \"SL0042\",\n },\n {\n value: \"SL0043-KG\",\n label: \"SL0043\",\n },\n {\n value: \"SL0046-KG\",\n label: \"SL0046\",\n },\n {\n value: \"SL0047-KG\",\n label: \"SL0047\",\n },\n {\n value: \"SL0048-KG\",\n label: \"SL0048\",\n },\n {\n value: \"SL0060-KG\",\n label: \"SL0060\",\n },\n {\n value: \"SL0062-KG\",\n label: \"SL0062\",\n },\n {\n value: \"SL0070-KG\",\n label: \"SL0070\",\n },\n {\n value: \"SL0071-KG\",\n label: \"SL0071\",\n },\n {\n value: \"SL0075-KG\",\n label: \"SL0075\",\n },\n {\n value: \"SL0076-KG\",\n label: \"SL0076\",\n },\n {\n value: \"SL0079-KG\",\n label: \"SL0079\",\n },\n {\n value: \"SL0082-KG\",\n label: \"SL0082\",\n },\n {\n value: \"SL0083-KG\",\n label: \"SL0083\",\n },\n {\n value: \"SL0084-KG\",\n label: \"SL0084\",\n },\n {\n value: \"SL0090-KG\",\n label: \"SL0090\",\n },\n {\n value: \"SL0096-KG\",\n label: \"SL0096\",\n },\n {\n value: \"SL0098-KG\",\n label: \"SL0098\",\n },\n {\n value: \"SL0105-KG\",\n label: \"SL0105\",\n },\n {\n value: \"SL0106-KG\",\n label: \"SL0106\",\n },\n {\n value: \"SL0107-KG\",\n label: \"SL0107\",\n },\n {\n value: \"SL0108-KG\",\n label: \"SL0108\",\n },\n {\n value: \"SL0109-KG\",\n label: \"SL0109\",\n },\n {\n value: \"SL0110-KG\",\n label: \"SL0110\",\n },\n {\n value: \"SL0111-KG\",\n label: \"SL0111\",\n },\n {\n value: \"SL0116-KG\",\n label: \"SL0116\",\n },\n {\n value: \"SL0118-KG\",\n label: \"SL0118\",\n },\n {\n value: \"SL0120-KG\",\n label: \"SL0120\",\n },\n {\n value: \"SL0121-KG\",\n label: \"SL0121\",\n },\n {\n value: \"SL0123-KG\",\n label: \"SL0123\",\n },\n {\n value: \"SL0124-KG\",\n label: \"SL0124\",\n },\n {\n value: \"SL0127-KG\",\n label: \"SL0127\",\n },\n {\n value: \"SL0128-KG\",\n label: \"SL0128\",\n },\n {\n value: \"SL0130-KG\",\n label: \"SL0130\",\n },\n {\n value: \"SL0132-KG\",\n label: \"SL0132\",\n },\n {\n value: \"SL0142-KG\",\n label: \"SL0142\",\n },\n {\n value: \"SL0143-KG\",\n label: \"SL0143\",\n },\n {\n value: \"SL0145-KG\",\n label: \"SL0145\",\n },\n {\n value: \"SL0149-KG\",\n label: \"SL0149\",\n },\n {\n value: \"SL0150-KG\",\n label: \"SL0150\",\n },\n {\n value: \"SL0151-KG\",\n label: \"SL0151\",\n },\n {\n value: \"SL0155-KG\",\n label: \"SL0155\",\n },\n {\n value: \"SL0157-KG\",\n label: \"SL0157\",\n },\n {\n value: \"SL0160-KG\",\n label: \"SL0160\",\n },\n {\n value: \"SL0163-KG\",\n label: \"SL0163\",\n },\n {\n value: \"SL0166-KG\",\n label: \"SL0166\",\n },\n {\n value: \"SL0168-KG\",\n label: \"SL0168\",\n },\n {\n value: \"SL0170-KG\",\n label: \"SL0170\",\n },\n {\n value: \"SL0171-KG\",\n label: \"SL0171\",\n },\n {\n value: \"SL0173-KG\",\n label: \"SL0173\",\n },\n {\n value: \"SL0177-KG\",\n label: \"SL0177\",\n },\n {\n value: \"SL0178-KG\",\n label: \"SL0178\",\n },\n {\n value: \"SL0179-KG\",\n label: \"SL0179\",\n },\n {\n value: \"SL0181-KG\",\n label: \"SL0181\",\n },\n {\n value: \"SL0182-KG\",\n label: \"SL0182\",\n },\n {\n value: \"SL0187-KG\",\n label: \"SL0187\",\n },\n {\n value: \"SL0193-KG\",\n label: \"SL0193\",\n },\n {\n value: \"SL0197-KG\",\n label: \"SL0197\",\n },\n {\n value: \"SL0204-KG\",\n label: \"SL0204\",\n },\n {\n value: \"SL0205-KG\",\n label: \"SL0205\",\n },\n {\n value: \"SL0207-KG\",\n label: \"SL0207\",\n },\n {\n value: \"SL0208-KG\",\n label: \"SL0208\",\n },\n {\n value: \"SL0210-KG\",\n label: \"SL0210\",\n },\n {\n value: \"SL0211-KG\",\n label: \"SL0211\",\n },\n {\n value: \"SL0212-KG\",\n label: \"SL0212\",\n },\n {\n value: \"SL0220-KG\",\n label: \"SL0220\",\n },\n {\n value: \"SL0222-KG\",\n label: \"SL0222\",\n },\n {\n value: \"SL0223-KG\",\n label: \"SL0223\",\n },\n {\n value: \"SL0224-KG\",\n label: \"SL0224\",\n },\n {\n value: \"SL0225-KG\",\n label: \"SL0225\",\n },\n {\n value: \"SL0227-KG\",\n label: \"SL0227\",\n },\n {\n value: \"SL0229-KG\",\n label: \"SL0229\",\n },\n {\n value: \"SL0230-KG\",\n label: \"SL0230\",\n },\n {\n value: \"SL0235-KG\",\n label: \"SL0235\",\n },\n {\n value: \"SL0236-KG\",\n label: \"SL0236\",\n },\n {\n value: \"SL0238-KG\",\n label: \"SL0238\",\n },\n {\n value: \"SL0250-KG\",\n label: \"SL0250\",\n },\n {\n value: \"SL0252-KG\",\n label: \"SL0252\",\n },\n {\n value: \"SL0254-KG\",\n label: \"SL0254\",\n },\n {\n value: \"SL0255-KG\",\n label: \"SL0255\",\n },\n {\n value: \"SL0256-KG\",\n label: \"SL0256\",\n },\n {\n value: \"SL0257-KG\",\n label: \"SL0257\",\n },\n {\n value: \"SL0262-KG\",\n label: \"SL0262\",\n },\n {\n value: \"SL0265-KG\",\n label: \"SL0265\",\n },\n {\n value: \"SL0266-KG\",\n label: \"SL0266\",\n },\n {\n value: \"SL0267-KG\",\n label: \"SL0267\",\n },\n {\n value: \"SL0268-KG\",\n label: \"SL0268\",\n },\n {\n value: \"SL0271-KG\",\n label: \"SL0271\",\n },\n {\n value: \"SL0274-KG\",\n label: \"SL0274\",\n },\n {\n value: \"SL0275-KG\",\n label: \"SL0275\",\n },\n {\n value: \"SL0279-KG\",\n label: \"SL0279\",\n },\n {\n value: \"SL0281-KG\",\n label: \"SL0281\",\n },\n {\n value: \"SL0282-KG\",\n label: \"SL0282\",\n },\n {\n value: \"SL0284-KG\",\n label: \"SL0284\",\n },\n {\n value: \"SL0285-KG\",\n label: \"SL0285\",\n },\n {\n value: \"SL0286-KG\",\n label: \"SL0286\",\n },\n {\n value: \"SL0287-KG\",\n label: \"SL0287\",\n },\n {\n value: \"SL0288-KG\",\n label: \"SL0288\",\n },\n {\n value: \"SL0289-KG\",\n label: \"SL0289\",\n },\n {\n value: \"SL0291-KG\",\n label: \"SL0291\",\n },\n {\n value: \"SL0292-KG\",\n label: \"SL0292\",\n },\n {\n value: \"SL0293-KG\",\n label: \"SL0293\",\n },\n {\n value: \"SL0301-KG\",\n label: \"SL0301\",\n },\n {\n value: \"SL0304-KG\",\n label: \"SL0304\",\n },\n {\n value: \"SL0305-KG\",\n label: \"SL0305\",\n },\n {\n value: \"SL0306-KG\",\n label: \"SL0306\",\n },\n {\n value: \"SL0308-KG\",\n label: \"SL0308\",\n },\n {\n value: \"SL0321-KG\",\n label: \"SL0321\",\n },\n {\n value: \"SL0322-KG\",\n label: \"SL0322\",\n },\n {\n value: \"SL0323-KG\",\n label: \"SL0323\",\n },\n {\n value: \"SL0328-KG\",\n label: \"SL0328\",\n },\n {\n value: \"SL0332-KG\",\n label: \"SL0332\",\n },\n {\n value: \"SL0335-KG\",\n label: \"SL0335\",\n },\n {\n value: \"SL0336-KG\",\n label: \"SL0336\",\n },\n {\n value: \"SL0337-KG\",\n label: \"SL0337\",\n },\n {\n value: \"SL0338-KG\",\n label: \"SL0338\",\n },\n {\n value: \"SL0340-KG\",\n label: \"SL0340\",\n },\n {\n value: \"SL0343-KG\",\n label: \"SL0343\",\n },\n {\n value: \"SL0344-KG\",\n label: \"SL0344\",\n },\n {\n value: \"SL0345-KG\",\n label: \"SL0345\",\n },\n {\n value: \"SL0350-KG\",\n label: \"SL0350\",\n },\n {\n value: \"SL0353-KG\",\n label: \"SL0353\",\n },\n {\n value: \"SL0354-KG\",\n label: \"SL0354\",\n },\n {\n value: \"SL0360-KG\",\n label: \"SL0360\",\n },\n {\n value: \"SL0361-KG\",\n label: \"SL0361\",\n },\n {\n value: \"SL0362-KG\",\n label: \"SL0362\",\n },\n {\n value: \"SL0363-KG\",\n label: \"SL0363\",\n },\n {\n value: \"SL0368-KG\",\n label: \"SL0368\",\n },\n {\n value: \"SL0369-KG\",\n label: \"SL0369\",\n },\n {\n value: \"SL0373-KG\",\n label: \"SL0373\",\n },\n {\n value: \"SL0375-KG\",\n label: \"SL0375\",\n },\n {\n value: \"SL0378-KG\",\n label: \"SL0378\",\n },\n {\n value: \"SL0385-KG\",\n label: \"SL0385\",\n },\n {\n value: \"SL0388-KG\",\n label: \"SL0388\",\n },\n {\n value: \"SL0389-KG\",\n label: \"SL0389\",\n },\n {\n value: \"SL0390-KG\",\n label: \"SL0390\",\n },\n {\n value: \"SL0391-KG\",\n label: \"SL0391\",\n },\n {\n value: \"SL0393-KG\",\n label: \"SL0393\",\n },\n {\n value: \"SL0395-KG\",\n label: \"SL0395\",\n },\n {\n value: \"SL0396-KG\",\n label: \"SL0396\",\n },\n {\n value: \"SL0403-KG\",\n label: \"SL0403\",\n },\n {\n value: \"SL0404-KG\",\n label: \"SL0404\",\n },\n {\n value: \"SL0424-KG\",\n label: \"SL0424\",\n },\n {\n value: \"SL0429-KG\",\n label: \"SL0429\",\n },\n {\n value: \"SL0430-KG\",\n label: \"SL0430\",\n },\n {\n value: \"SL0434-KG\",\n label: \"SL0434\",\n },\n {\n value: \"SL0438-KG\",\n label: \"SL0438\",\n },\n {\n value: \"SL0442-KG\",\n label: \"SL0442\",\n },\n {\n value: \"SL0444-KG\",\n label: \"SL0444\",\n },\n {\n value: \"SL0456-KG\",\n label: \"SL0456\",\n },\n {\n value: \"SL0461-KG\",\n label: \"SL0461\",\n },\n {\n value: \"SL0463-KG\",\n label: \"SL0463\",\n },\n {\n value: \"SL0464-KG\",\n label: \"SL0464\",\n },\n {\n value: \"SL0466-KG\",\n label: \"SL0466\",\n },\n {\n value: \"SL0467-KG\",\n label: \"SL0467\",\n },\n {\n value: \"SL0472-KG\",\n label: \"SL0472\",\n },\n {\n value: \"SL0473-KG\",\n label: \"SL0473\",\n },\n {\n value: \"SL0478-KG\",\n label: \"SL0478\",\n },\n {\n value: \"SL0480-KG\",\n label: \"SL0480\",\n },\n {\n value: \"SL0481-KG\",\n label: \"SL0481\",\n },\n {\n value: \"SL0484-KG\",\n label: \"SL0484\",\n },\n {\n value: \"SL0485-KG\",\n label: \"SL0485\",\n },\n {\n value: \"SL0488-KG\",\n label: \"SL0488\",\n },\n {\n value: \"SL0493-KG\",\n label: \"SL0493\",\n },\n {\n value: \"SL0494-KG\",\n label: \"SL0494\",\n },\n {\n value: \"SL0497-KG\",\n label: \"SL0497\",\n },\n {\n value: \"SL0499-KG\",\n label: \"SL0499\",\n },\n {\n value: \"SL0500-KG\",\n label: \"SL0500\",\n },\n {\n value: \"SL0505-KG\",\n label: \"SL0505\",\n },\n {\n value: \"SL0517-KG\",\n label: \"SL0517\",\n },\n {\n value: \"SL0521-KG\",\n label: \"SL0521\",\n },\n {\n value: \"SL0522-KG\",\n label: \"SL0522\",\n },\n {\n value: \"SL0523-KG\",\n label: \"SL0523\",\n },\n {\n value: \"SL0524-KG\",\n label: \"SL0524\",\n },\n {\n value: \"SL0526-KG\",\n label: \"SL0526\",\n },\n {\n value: \"SL0533-KG\",\n label: \"SL0533\",\n },\n {\n value: \"SL0534-KG\",\n label: \"SL0534\",\n },\n {\n value: \"SL0540-KG\",\n label: \"SL0540\",\n },\n {\n value: \"SL0541-KG\",\n label: \"SL0541\",\n },\n {\n value: \"SL0543-KG\",\n label: \"SL0543\",\n },\n {\n value: \"SL0547-KG\",\n label: \"SL0547\",\n },\n {\n value: \"SL0561-KG\",\n label: \"SL0561\",\n },\n {\n value: \"SL0564-KG\",\n label: \"SL0564\",\n },\n {\n value: \"SL0567-KG\",\n label: \"SL0567\",\n },\n {\n value: \"SL0570-KG\",\n label: \"SL0570\",\n },\n {\n value: \"SL0571-KG\",\n label: \"SL0571\",\n },\n {\n value: \"SL0573-KG\",\n label: \"SL0573\",\n },\n {\n value: \"SL0574-KG\",\n label: \"SL0574\",\n },\n {\n value: \"SL0577-KG\",\n label: \"SL0577\",\n },\n {\n value: \"SL1604-KG\",\n label: \"SL1604\",\n },\n {\n value: \"US0054-KG\",\n label: \"US0054\",\n },\n {\n value: \"US0057-KG\",\n label: \"US0057\",\n },\n {\n value: \"US0059-KG\",\n label: \"US0059\",\n },\n {\n value: \"US0060-KG\",\n label: \"US0060\",\n },\n {\n value: \"US0062-KG\",\n label: \"US0062\",\n },\n {\n value: \"US0067-KG\",\n label: \"US0067\",\n },\n {\n value: \"US0069-KG\",\n label: \"US0069\",\n },\n {\n value: \"US0070-KG\",\n label: \"US0070\",\n },\n {\n value: \"US0071-KG\",\n label: \"US0071\",\n },\n {\n value: \"US0075-KG\",\n label: \"US0075\",\n },\n {\n value: \"US0077-KG\",\n label: \"US0077\",\n },\n {\n value: \"US0079-KG\",\n label: \"US0079\",\n },\n {\n value: \"US0080-KG\",\n label: \"US0080\",\n },\n {\n value: \"US0081-KG\",\n label: \"US0081\",\n },\n {\n value: \"US0082-KG\",\n label: \"US0082\",\n },\n {\n value: \"US0083-KG\",\n label: \"US0083\",\n },\n {\n value: \"US0084-KG\",\n label: \"US0084\",\n },\n {\n value: \"US0085-KG\",\n label: \"US0085\",\n },\n {\n value: \"US0087-KG\",\n label: \"US0087\",\n },\n {\n value: \"US0090-KG\",\n label: \"US0090\",\n },\n {\n value: \"US0096-KG\",\n label: \"US0096\",\n },\n {\n value: \"US0175-KG\",\n label: \"US0175\",\n },\n {\n value: \"US0180-KG\",\n label: \"US0180\",\n },\n {\n value: \"US0181-KG\",\n label: \"US0181\",\n },\n {\n value: \"US0183-KG\",\n label: \"US0183\",\n },\n {\n value: \"US0190-KG\",\n label: \"US0190\",\n },\n {\n value: \"US0259-KG\",\n label: \"US0259\",\n },\n {\n value: \"US0271-KG\",\n label: \"US0271\",\n },\n {\n value: \"US0277-KG\",\n label: \"US0277\",\n },\n {\n value: \"US0281-KG\",\n label: \"US0281\",\n },\n {\n value: \"US0283-KG\",\n label: \"US0283\",\n },\n {\n value: \"US0285-KG\",\n label: \"US0285\",\n },\n {\n value: \"US0287-KG\",\n label: \"US0287\",\n },\n {\n value: \"US0290-KG\",\n label: \"US0290\",\n },\n {\n value: \"US0377-KG\",\n label: \"US0377\",\n },\n {\n value: \"US0380-KG\",\n label: \"US0380\",\n },\n {\n value: \"US0385-KG\",\n label: \"US0385\",\n },\n];\nexport const REGION_LIST = [\n {\n name: \"texas-triangle\",\n description: \"Texas Triangle Region\",\n statsLayer: \"statewide\",\n route: \"/triangleregion=1\",\n },\n {\n name: \"border\",\n description: \"Border Region\",\n statsLayer: \"statewide\",\n route: \"/borderregion=1\",\n },\n {\n name: \"permian-basin\",\n description: \"Permian Basin Region\",\n statsLayer: \"statewide\",\n route: \"/permianbasin=1\",\n },\n {\n name: \"houston-area\",\n description: \"Houston Region\",\n statsLayer: \"statewide\",\n route: \"/houston=1\",\n },\n {\n name: \"dfw-area\",\n description: \"DFW Region\",\n statsLayer: \"statewide\",\n route: \"/dfw=1\",\n },\n {\n name: \"rio-grande-valley-area\",\n description: \"Rio Grande Valley Region\",\n statsLayer: \"statewide\",\n route: \"/riograndevalley=1\",\n },\n];\nexport const OTHER_GROUP = [\n {\n name: \"interstates\",\n description: \"Interstate Corridors (including loops)\",\n statsLayer: \"statewide\",\n route: \"/interstatesloops=1\",\n },\n {\n name: \"port-to-plains-area\",\n description: \"Port-to-Plains Corridor\",\n statsLayer: \"statewide\",\n route: \"/portstoplains=1\",\n },\n];\n\nexport const FUNCTION_CLASS2014 = [\n { id: 1, label: \"Interstate\" },\n { id: 2, label: \"Other Freeway and Expressway\" },\n { id: 3, label: \"Other Principal Arterial\" },\n { id: 4, label: \"Minor Arterial\" },\n { id: 5, label: \"Major Collector\" },\n { id: 6, label: \"Minor Collector\" },\n { id: 7, label: \"Local\" },\n];\n\nexport const FUNCTION_CLASS2009 = [\n { id: 1, label: \"Interstate\" },\n { id: 2, label: \"Other Principal Arterial\" },\n { id: 3, label: \"Minor Arterial\" },\n { id: 4, label: \"Major Collector\" },\n { id: 5, label: \"Minor Collector\" },\n { id: 7, label: \"Other Freeway and Expressway\" },\n { id: 9, label: \"Collector\" },\n { id: 10, label: \"Local\" },\n];\n\nexport const RURAL_URBAN_CODE = [\n { id: 0, label: \"Unknown\" },\n { id: 1, label: \"Rural (<5000)\" },\n { id: 2, label: \"Small Urban (5000-49,999)\" },\n { id: 3, label: \"Large Urban (50,000-199,999)\" },\n { id: 4, label: \"Urbanized (200,000+)\" },\n];\n\nexport const tx100_monitored_counties = [\n {\n cnty_nm: \"Palo Pinto\",\n cnty_nbr: 182,\n },\n {\n cnty_nm: \"Freestone\",\n cnty_nbr: 82,\n },\n {\n cnty_nm: \"Bosque\",\n cnty_nbr: 18,\n },\n {\n cnty_nm: \"Galveston\",\n cnty_nbr: 85,\n },\n {\n cnty_nm: \"Taylor\",\n cnty_nbr: 221,\n },\n {\n cnty_nm: \"Wichita\",\n cnty_nbr: 243,\n },\n {\n cnty_nm: \"Hardin\",\n cnty_nbr: 101,\n },\n {\n cnty_nm: \"Travis\",\n cnty_nbr: 227,\n },\n {\n cnty_nm: \"Cherokee\",\n cnty_nbr: 37,\n },\n {\n cnty_nm: \"Victoria\",\n cnty_nbr: 235,\n },\n {\n cnty_nm: \"Brazoria\",\n cnty_nbr: 20,\n },\n {\n cnty_nm: \"Coryell\",\n cnty_nbr: 50,\n },\n {\n cnty_nm: \"Lampasas\",\n cnty_nbr: 141,\n },\n {\n cnty_nm: \"Williamson\",\n cnty_nbr: 246,\n },\n {\n cnty_nm: \"Bastrop\",\n cnty_nbr: 11,\n },\n {\n cnty_nm: \"San Jacinto\",\n cnty_nbr: 204,\n },\n {\n cnty_nm: \"McLennan\",\n cnty_nbr: 161,\n },\n {\n cnty_nm: \"Atascosa\",\n cnty_nbr: 7,\n },\n {\n cnty_nm: \"Callahan\",\n cnty_nbr: 30,\n },\n {\n cnty_nm: \"Tom Green\",\n cnty_nbr: 226,\n },\n {\n cnty_nm: \"Clay\",\n cnty_nbr: 39,\n },\n {\n cnty_nm: \"Orange\",\n cnty_nbr: 181,\n },\n {\n cnty_nm: \"Ellis\",\n cnty_nbr: 71,\n },\n {\n cnty_nm: \"Blanco\",\n cnty_nbr: 16,\n },\n {\n cnty_nm: \"Hunt\",\n cnty_nbr: 117,\n },\n {\n cnty_nm: \"Kendall\",\n cnty_nbr: 131,\n },\n {\n cnty_nm: \"Fort Bend\",\n cnty_nbr: 80,\n },\n {\n cnty_nm: \"Smith\",\n cnty_nbr: 212,\n },\n {\n cnty_nm: \"Austin\",\n cnty_nbr: 8,\n },\n {\n cnty_nm: \"Harrison\",\n cnty_nbr: 103,\n },\n {\n cnty_nm: \"Caldwell\",\n cnty_nbr: 28,\n },\n {\n cnty_nm: \"Liberty\",\n cnty_nbr: 146,\n },\n {\n cnty_nm: \"Parker\",\n cnty_nbr: 184,\n },\n {\n cnty_nm: \"Webb\",\n cnty_nbr: 240,\n },\n {\n cnty_nm: \"Colorado\",\n cnty_nbr: 45,\n },\n {\n cnty_nm: \"Midland\",\n cnty_nbr: 165,\n },\n {\n cnty_nm: \"Waller\",\n cnty_nbr: 237,\n },\n {\n cnty_nm: \"Kaufman\",\n cnty_nbr: 130,\n },\n {\n cnty_nm: \"El Paso\",\n cnty_nbr: 72,\n },\n {\n cnty_nm: \"Bexar\",\n cnty_nbr: 15,\n },\n {\n cnty_nm: \"Cameron\",\n cnty_nbr: 31,\n },\n {\n cnty_nm: \"Guadalupe\",\n cnty_nbr: 95,\n },\n {\n cnty_nm: \"Chambers\",\n cnty_nbr: 36,\n },\n {\n cnty_nm: \"Nueces\",\n cnty_nbr: 178,\n },\n {\n cnty_nm: \"Hays\",\n cnty_nbr: 106,\n },\n {\n cnty_nm: \"Comal\",\n cnty_nbr: 46,\n },\n {\n cnty_nm: \"Gregg\",\n cnty_nbr: 93,\n },\n {\n cnty_nm: \"Tarrant\",\n cnty_nbr: 220,\n },\n {\n cnty_nm: \"Jefferson\",\n cnty_nbr: 124,\n },\n {\n cnty_nm: \"Collin\",\n cnty_nbr: 43,\n },\n {\n cnty_nm: \"Lubbock\",\n cnty_nbr: 152,\n },\n {\n cnty_nm: \"Ector\",\n cnty_nbr: 69,\n },\n {\n cnty_nm: \"Navarro\",\n cnty_nbr: 175,\n },\n {\n cnty_nm: \"Hood\",\n cnty_nbr: 112,\n },\n {\n cnty_nm: \"Wise\",\n cnty_nbr: 249,\n },\n {\n cnty_nm: \"Jones\",\n cnty_nbr: 128,\n },\n {\n cnty_nm: \"Falls\",\n cnty_nbr: 74,\n },\n {\n cnty_nm: \"Rockwall\",\n cnty_nbr: 199,\n },\n {\n cnty_nm: \"Harris\",\n cnty_nbr: 102,\n },\n {\n cnty_nm: \"Dallas\",\n cnty_nbr: 57,\n },\n {\n cnty_nm: \"Polk\",\n cnty_nbr: 187,\n },\n {\n cnty_nm: \"Bell\",\n cnty_nbr: 14,\n },\n {\n cnty_nm: \"Burnet\",\n cnty_nbr: 27,\n },\n {\n cnty_nm: \"Van Zandt\",\n cnty_nbr: 234,\n },\n {\n cnty_nm: \"Montgomery\",\n cnty_nbr: 170,\n },\n {\n cnty_nm: \"Randall\",\n cnty_nbr: 191,\n },\n {\n cnty_nm: \"San Patricio\",\n cnty_nbr: 205,\n },\n {\n cnty_nm: \"Johnson\",\n cnty_nbr: 127,\n },\n {\n cnty_nm: \"Bowie\",\n cnty_nbr: 19,\n },\n {\n cnty_nm: \"Brazos\",\n cnty_nbr: 21,\n },\n {\n cnty_nm: \"Upshur\",\n cnty_nbr: 230,\n },\n {\n cnty_nm: \"Wharton\",\n cnty_nbr: 241,\n },\n {\n cnty_nm: \"Hidalgo\",\n cnty_nbr: 109,\n },\n {\n cnty_nm: \"Walker\",\n cnty_nbr: 236,\n },\n {\n cnty_nm: \"Grayson\",\n cnty_nbr: 92,\n },\n {\n cnty_nm: \"Denton\",\n cnty_nbr: 61,\n },\n {\n cnty_nm: \"Potter\",\n cnty_nbr: 188,\n },\n {\n cnty_nm: \"Cooke\",\n cnty_nbr: 49,\n },\n];\n\nexport const utpCategoryLookups = [\n {\n category: \"category0\",\n checkedVariable: \"underwayorsoon\",\n markerIcon:\n \"https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-red.png\",\n nameDesc: \"UTP-Underway or begins soon\",\n },\n {\n category: \"category1\",\n checkedVariable: \"within4years\",\n markerIcon:\n \"https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-violet.png\",\n nameDesc: \"UTP-Begins in 4 years\",\n },\n {\n category: \"category2\",\n checkedVariable: \"fivetotenyears\",\n markerIcon:\n \"https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-blue.png\",\n nameDesc: \"UTP-Begins in 5-10 years\",\n },\n {\n category: \"category3\",\n checkedVariable: \"tenplusyears\",\n markerIcon:\n \"https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-green.png\",\n nameDesc: \"UTP-Begins in 10+ years\",\n },\n];\n\n// Note: segmentsTable and selection only used for geoRoute = 'hpms_segments/geojson'\nexport const geographic_options_tx100 = [\n {\n text: \"Texas 100 Monitored Roads\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads_tx100\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"TX100\",\n statusGuide: [\"TX100\", \"Monitored Roads\"],\n },\n {\n text: \"Top 100 Truck Segments\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads_tx100/findByTrank?min=0&max=100\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"TX100\",\n statusGuide: [\"TX100\", \"Top100 Truck Segments\"],\n },\n {\n text: \"Top 100 All-Vehicle Segments\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads_tx100/findByArank?min=0&max=100\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"TX100\",\n statusGuide: [\"TX100\", \"Top100 Segments\"],\n },\n];\n\nexport const geographic_options_TXDOTdist = [\n {\n variable: \"txdot_dist_8\",\n mapped: 8,\n definition: \"Abilene District\",\n text: \"Abilene District\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByDistrict?district=8\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"TxDOT District\", \"Abilene District\"],\n counties: [17, 30, 77, 105, 115, 128, 132, 168, 177, 208, 209, 217, 221],\n },\n {\n variable: \"txdot_dist_4\",\n mapped: 4,\n definition: \"Amarillo District\",\n text: \"Amarillo District\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByDistrict?district=4\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"TxDOT District\", \"Amarillo District\"],\n counties: [\n 6,\n 33,\n 56,\n 59,\n 91,\n 99,\n 104,\n 107,\n 118,\n 148,\n 171,\n 179,\n 180,\n 188,\n 191,\n 197,\n 211,\n ],\n },\n {\n variable: \"txdot_dist_19\",\n mapped: 19,\n definition: \"Atlanta District\",\n text: \"Atlanta District\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByDistrict?district=19\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"TxDOT District\", \"Atlanta District\"],\n counties: [19, 32, 34, 103, 155, 172, 183, 225, 230],\n },\n {\n variable: \"txdot_dist_14\",\n mapped: 14,\n definition: \"Austin District\",\n text: \"Austin District\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByDistrict?district=14\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"TxDOT District\", \"Austin District\"],\n counties: [11, 16, 27, 28, 87, 106, 144, 150, 157, 227, 246],\n },\n {\n variable: \"txdot_dist_20\",\n mapped: 20,\n definition: \"Beaumont District\",\n text: \"Beaumont District\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByDistrict?district=20\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"TxDOT District\", \"Beaumont District\"],\n counties: [36, 101, 122, 124, 146, 176, 181, 229],\n },\n {\n variable: \"txdot_dist_23\",\n mapped: 23,\n definition: \"Brownwood District\",\n text: \"Brownwood District\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByDistrict?district=23\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"TxDOT District\", \"Brownwood District\"],\n counties: [25, 42, 47, 68, 141, 160, 167, 206, 215],\n },\n {\n variable: \"txdot_dist_17\",\n mapped: 17,\n definition: \"Bryan District\",\n text: \"Bryan District\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByDistrict?district=17\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"TxDOT District\", \"Bryan District\"],\n counties: [21, 26, 82, 94, 145, 154, 166, 198, 236, 239],\n },\n {\n variable: \"txdot_dist_25\",\n mapped: 25,\n definition: \"Childress District\",\n text: \"Childress District\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByDistrict?district=25\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"TxDOT District\", \"Childress District\"],\n counties: [23, 38, 44, 51, 63, 65, 79, 97, 100, 135, 138, 173, 242],\n },\n {\n variable: \"txdot_dist_16\",\n mapped: 16,\n definition: \"Corpus Christi District\",\n text: \"Corpus Christi District\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByDistrict?district=16\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"TxDOT District\", \"Corpus Christi District\"],\n counties: [4, 13, 89, 126, 129, 137, 149, 178, 196, 205],\n },\n {\n variable: \"txdot_dist_18\",\n mapped: 18,\n definition: \"Dallas District\",\n text: \"Dallas District\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByDistrict?district=18\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"TxDOT District\", \"Dallas District\"],\n counties: [43, 57, 61, 71, 130, 175, 199],\n },\n {\n variable: \"txdot_dist_24\",\n mapped: 24,\n definition: \"El Paso District\",\n text: \"El Paso District\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByDistrict?district=24\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"TxDOT District\", \"El Paso District\"],\n counties: [22, 55, 72, 116, 123, 189],\n },\n {\n variable: \"txdot_dist_2\",\n mapped: 2,\n definition: \"Fort Worth District\",\n text: \"Fort Worth District\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByDistrict?district=2\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"TxDOT District\", \"Fort Worth District\"],\n counties: [73, 112, 120, 127, 182, 184, 213, 220, 249],\n },\n {\n variable: \"txdot_dist_12\",\n mapped: 12,\n definition: \"Houston District\",\n text: \"Houston District\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByDistrict?district=12\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"TxDOT District\", \"Houston District\"],\n counties: [20, 80, 85, 102, 170, 237],\n },\n {\n variable: \"txdot_dist_22\",\n mapped: 22,\n definition: \"Laredo District\",\n text: \"Laredo District\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByDistrict?district=22\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"TxDOT District\", \"Laredo District\"],\n counties: [64, 67, 136, 142, 159, 233, 240, 254],\n },\n {\n variable: \"txdot_dist_5\",\n mapped: 5,\n definition: \"Lubbock District\",\n text: \"Lubbock District\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByDistrict?district=5\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"TxDOT District\", \"Lubbock District\"],\n counties: [\n 9,\n 35,\n 40,\n 54,\n 58,\n 78,\n 84,\n 86,\n 96,\n 111,\n 140,\n 152,\n 153,\n 185,\n 219,\n 223,\n 251,\n ],\n },\n {\n variable: \"txdot_dist_11\",\n mapped: 11,\n definition: \"Lufkin District\",\n text: \"Lufkin District\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByDistrict?district=11\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"TxDOT District\", \"Lufkin District\"],\n counties: [3, 114, 174, 187, 202, 203, 204, 210, 228],\n },\n {\n variable: \"txdot_dist_6\",\n mapped: 6,\n definition: \"Odessa District\",\n text: \"Odessa District\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByDistrict?district=6\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"TxDOT District\", \"Odessa District\"],\n counties: [2, 52, 69, 151, 156, 165, 186, 195, 222, 231, 238, 248],\n },\n {\n variable: \"txdot_dist_1\",\n mapped: 1,\n definition: \"Paris District\",\n text: \"Paris District\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByDistrict?district=1\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"TxDOT District\", \"Paris District\"],\n counties: [60, 75, 81, 92, 113, 117, 139, 190, 194],\n },\n {\n variable: \"txdot_dist_21\",\n mapped: 21,\n definition: \"Pharr District\",\n text: \"Pharr District\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByDistrict?district=21\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"TxDOT District\", \"Pharr District\"],\n counties: [24, 31, 66, 109, 125, 214, 245, 253],\n },\n {\n variable: \"txdot_dist_7\",\n mapped: 7,\n definition: \"San Angelo District\",\n text: \"San Angelo District\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByDistrict?district=7\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"TxDOT District\", \"San Angelo District\"],\n counties: [\n 41,\n 48,\n 53,\n 70,\n 88,\n 119,\n 134,\n 164,\n 192,\n 193,\n 200,\n 207,\n 216,\n 218,\n 226,\n ],\n },\n {\n variable: \"txdot_dist_15\",\n mapped: 15,\n definition: \"San Antonio District\",\n text: \"San Antonio District\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByDistrict?district=15\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"TxDOT District\", \"San Antonio District\"],\n counties: [7, 10, 15, 46, 83, 95, 131, 133, 162, 163, 232, 247],\n },\n {\n variable: \"txdot_dist_10\",\n mapped: 10,\n definition: \"Tyler District\",\n text: \"Tyler District\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByDistrict?district=10\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"TxDOT District\", \"Tyler District\"],\n counties: [1, 37, 93, 108, 201, 212, 234, 250],\n },\n {\n variable: \"txdot_dist_9\",\n mapped: 9,\n definition: \"Waco District\",\n text: \"Waco District\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByDistrict?district=9\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"TxDOT District\", \"Waco District\"],\n counties: [14, 18, 50, 74, 98, 110, 147, 161],\n },\n {\n variable: \"txdot_dist_3\",\n mapped: 3,\n definition: \"Wichita Falls District\",\n text: \"Wichita Falls District\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByDistrict?district=3\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"TxDOT District\", \"Wichita Falls District\"],\n counties: [5, 12, 39, 49, 169, 224, 243, 244, 252],\n },\n {\n variable: \"txdot_dist_13\",\n mapped: 13,\n definition: \"Yoakum District\",\n text: \"Yoakum District\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByDistrict?district=13\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"TxDOT District\", \"Yoakum District\"],\n counties: [8, 29, 45, 62, 76, 90, 121, 143, 158, 235, 241],\n },\n];\n\nexport const geographic_options_MPO = [\n {\n id: 166,\n name: \"Abilene MPO\",\n text: \"Abilene MPO\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByMpo?mpo=166\",\n geoRoute2021: \"/roads/findByMpo?mpo=4\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"MPO\", \"Abilene MPO\"],\n },\n {\n id: 120,\n name: \"Amarillo MPO\",\n text: \"Amarillo MPO\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByMpo?mpo=120\",\n geoRoute2021: \"/roads/findByMpo?mpo=2\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"MPO\", \"Amarillo MPO\"],\n },\n {\n id: 90,\n name: \"Capital Area MPO\",\n text: \"Capital Area MPO\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByMpo?mpo=90\",\n geoRoute2021: \"/roads/findByMpo?mpo=20\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"MPO\", \"Capital Area MPO\"],\n },\n {\n id: 135,\n name: \"Beaumont - Port Arthur MPO\",\n text: \"Beaumont - Port Arthur MPO\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByMpo?mpo=135\",\n geoRoute2021: \"/roads/findByMpo?mpo=17\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"MPO\", \"Beaumont - Port Arthur MPO\"],\n },\n {\n id: 230,\n name: \"Brownsville MPO\",\n text: \"Brownsville MPO\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByMpo?mpo=230\",\n geoRoute2021: \"/roads/findByMpo?mpo=25\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"MPO\", \"Brownsville MPO\"],\n },\n {\n id: 249,\n name: \"Bryan College Station MPO\",\n text: \"Bryan College Station MPO\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByMpo?mpo=249\",\n geoRoute2021: \"/roads/findByMpo?mpo=19\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"MPO\", \"Bryan College Station MPO\"],\n },\n {\n id: 96,\n name: \"Corpus Christi MPO\",\n text: \"Corpus Christi MPO\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByMpo?mpo=96\",\n geoRoute2021: \"/roads/findByMpo?mpo=9\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"MPO\", \"Corpus Christi MPO\"],\n },\n {\n id: 282,\n name: \"North Central Texas COG\",\n text: \"North Central Texas COG\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByMpo?mpo=282\",\n geoRoute2021: \"/roads/findByMpo?mpo=8\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"MPO\", \"North Central Texas COG\"],\n },\n {\n id: 66,\n name: \"El Paso MPO\",\n text: \"El Paso MPO\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByMpo?mpo=66\",\n geoRoute2021: \"/roads/findByMpo?mpo=15\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"MPO\", \"El Paso MPO\"],\n },\n {\n id: 230,\n name: \"Rio Grande Valley MPO\",\n text: \"Rio Grande Valley MPO\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByMpo?mpo=230\",\n geoRoute2021: \"/roads/findByMpo?mpo=25\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"MPO\", \"Rio Grande Valley MPO\"],\n },\n {\n id: 15,\n name: \"Houston-Galveston Area Council\",\n text: \"Houston-Galveston Area Council\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByMpo?mpo=15\",\n geoRoute2021: \"/roads/findByMpo?mpo=11\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"MPO\", \"Houston-Galveston Area Council\"],\n },\n {\n id: 277,\n name: \"Killeen-Temple MPO\",\n text: \"Killeen-Temple MPO\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByMpo?mpo=277\",\n geoRoute2021: \"/roads/findByMpo?mpo=7\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"MPO\", \"Killeen-Temple MPO\"],\n },\n {\n id: 205,\n name: \"Laredo Urban Transportation Study\",\n text: \"Laredo Urban Transportation Study\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByMpo?mpo=205\",\n geoRoute2021: \"/roads/findByMpo?mpo=16\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"MPO\", \"Laredo Urban Transportation Study\"],\n },\n {\n id: 361,\n name: \"Longview MPO\",\n text: \"Longview MPO\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByMpo?mpo=361\",\n geoRoute2021: \"/roads/findByMpo?mpo=13\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"MPO\", \"Longview MPO\"],\n },\n {\n id: 122,\n name: \"Lubbock MPO\",\n text: \"Lubbock MPO\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByMpo?mpo=122\",\n geoRoute2021: \"/roads/findByMpo?mpo=6\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"MPO\", \"Lubbock MPO\"],\n },\n {\n id: 174,\n name: \"Permian Basin MPO\",\n text: \"Permian Basin MPO\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByMpo?mpo=174\",\n geoRoute2021: \"/roads/findByMpo?mpo=1\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"MPO\", \"Permian Basin MPO\"],\n },\n {\n id: 208,\n name: \"San Angelo MPO\",\n text: \"San Angelo MPO\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByMpo?mpo=208\",\n geoRoute2021: \"/roads/findByMpo?mpo=3\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"MPO\", \"San Angelo MPO\"],\n },\n {\n id: 28,\n name: \"Alamo Area MPO\",\n text: \"Alamo Area MPO\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByMpo?mpo=28\",\n geoRoute2021: \"/roads/findByMpo?mpo=21\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"MPO\", \"Alamo Area MPO\"],\n },\n {\n id: 232,\n name: \"Sherman-Denison MPO\",\n text: \"Sherman-Denison MPO\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByMpo?mpo=232\",\n geoRoute2021: \"/roads/findByMpo?mpo=24\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"MPO\", \"Sherman-Denison MPO\"],\n },\n {\n id: 211,\n name: \"Texarkana MPO\",\n text: \"Texarkana MPO\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByMpo?mpo=211\",\n geoRoute2021: \"/roads/findByMpo?mpo=14\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"MPO\", \"Texarkana MPO\"],\n },\n {\n id: 213,\n name: \"Tyler Area MPO\",\n text: \"Tyler Area MPO\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByMpo?mpo=213\",\n geoRoute2021: \"/roads/findByMpo?mpo=12\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"MPO\", \"Tyler Area MPO\"],\n },\n {\n id: 363,\n name: \"Victoria MPO\",\n text: \"Victoria MPO\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByMpo?mpo=363\",\n geoRoute2021: \"/roads/findByMpo?mpo=18\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"MPO\", \"Victoria MPO\"],\n },\n {\n id: 140,\n name: \"Waco MPO\",\n text: \"Waco MPO\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByMpo?mpo=140\",\n geoRoute2021: \"/roads/findByMpo?mpo=22\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"MPO\", \"Waco MPO\"],\n },\n {\n id: 151,\n name: \"Wichita Falls MPO\",\n text: \"Wichita Falls MPO\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByMpo?mpo=151\",\n geoRoute2021: \"/roads/findByMpo?mpo=5\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"MPO\", \"Wichita Falls MPO\"],\n }, //,\n\n // {\n // \"id\": 201,\n // \"name\": \"Unknown MPO 201\"\n // },\n\n // {\n // \"id\": 248,\n // \"name\": \"Unknown MPO 248\"\n // }\n];\n\nexport const geographic_options_Networks = [\n {\n name: \"freight-network-texas\",\n description: \"Texas Freight Network\",\n route: \"/frght_ntwk_st=1\",\n text: \"Texas Freight Network\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findTxFreightNetworkByDistrict\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"Networks\", \"Texas Freight Network\"],\n },\n {\n name: \"freight-network-national\",\n description: \"National Freight Network\",\n route: \"/frght_ntwk_nl=1\",\n text: \"National Freight Network\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findNationalFreightNetworkByDistrict\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"Networks\", \"National Freight Network\"],\n },\n {\n name: \"national-highway-system\",\n description: \"National Highway System (NHS)\",\n route: \"/sec_nhs>0\",\n text: \"National Highway System (NHS)\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findNhsByDistrict\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"Networks\", \"National Highway System (NHS)\"],\n },\n];\nexport const geographic_options_REGIONS = [\n {\n name: \"texas-triangle\",\n description: \"Texas Triangle Region\",\n // statsLayer: \"statewide\",\n route: \"/triangleregion=1\",\n text: \"Texas Triangle Region\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByTcatRegion?region_id=1\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"Regions\", \"Texas Triangle Region\"],\n counties: [\n 8,\n 14,\n 15,\n 18,\n 28,\n 43,\n 45,\n 46,\n 50,\n 57,\n 61,\n 71,\n 74,\n 76,\n 80,\n 82,\n 90,\n 95,\n 98,\n 102,\n 106,\n 110,\n 127,\n 145,\n 147,\n 154,\n 161,\n 170,\n 175,\n 220,\n 227,\n 236,\n 237,\n 246,\n ],\n },\n {\n name: \"border\",\n description: \"Border Region\",\n // statsLayer: \"statewide\",\n route: \"/borderregion=1\",\n text: \"Border Region\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByTcatRegion?region_id=2\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"Regions\", \"Border Region\"],\n counties: [\n 22,\n 31,\n 55,\n 72,\n 109,\n 116,\n 123,\n 136,\n 159,\n 189,\n 214,\n 222,\n 233,\n 240,\n 253,\n ],\n },\n {\n name: \"permian-basin\",\n description: \"Permian Basin Region\",\n // statsLayer: \"statewide\",\n route: \"/permianbasin=1\",\n text: \"Permian Basin Region\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByTcatRegion?region_id=3\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"Regions\", \"Permian Basin Region\"],\n counties: [\n 2,\n 17,\n 22,\n 40,\n 41,\n 48,\n 51,\n 52,\n 53,\n 54,\n 55,\n 58,\n 63,\n 69,\n 70,\n 77,\n 78,\n 84,\n 86,\n 88,\n 96,\n 111,\n 115,\n 116,\n 119,\n 123,\n 132,\n 134,\n 135,\n 138,\n 140,\n 151,\n 152,\n 153,\n 156,\n 160,\n 164,\n 165,\n 168,\n 173,\n 177,\n 186,\n 189,\n 192,\n 195,\n 200,\n 207,\n 208,\n 216,\n 217,\n 218,\n 221,\n 222,\n 223,\n 226,\n 231,\n 233,\n 238,\n 248,\n 251,\n ],\n },\n {\n name: \"houston-area\",\n description: \"Houston Region\",\n // statsLayer: \"statewide\",\n route: \"/houston=1\",\n text: \"Houston Region\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByTcatRegion?region_id=4\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"Regions\", \"Houston Region\"],\n counties: [8, 20, 36, 45, 80, 102, 146, 158, 170, 236, 237, 241],\n },\n {\n name: \"dfw-area\",\n description: \"DFW Region\",\n // statsLayer: \"statewide\",\n route: \"/dfw=1\",\n text: \"DFW Region\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByTcatRegion?region_id=5\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"Regions\", \"DFW Region\"],\n counties: [\n 43,\n 57,\n 61,\n 71,\n 73,\n 112,\n 117,\n 127,\n 130,\n 175,\n 182,\n 184,\n 199,\n 213,\n 220,\n 249,\n ],\n },\n {\n name: \"rio-grande-valley-area\",\n description: \"Rio Grande Valley Region\",\n // statsLayer: \"statewide\",\n route: \"/riograndevalley=1\",\n text: \"Rio Grande Valley Region\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByTcatRegion?region_id=6\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"Regions\", \"Rio Grande Valley Region\"],\n counties: [24, 31, 66, 109, 125, 214, 245, 253],\n },\n];\n\nexport const geographic_options_corridors = [\n {\n name: \"interstates\",\n description: \"Interstate Corridors (including loops)\",\n // statsLayer: \"statewide\",\n route: \"/interstatesloops=1\",\n text: \"Interstate Corridors (including loops)\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByFSystem?fsystem=1\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"Corridors\", \"Interstate Corridors (including loops)\"],\n },\n {\n name: \"port-to-plains-area\",\n description: \"Port-to-Plains Corridor\",\n // statsLayer: \"statewide\",\n route: \"/portstoplains=1\",\n text: \"Port-to-Plains Corridor\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCorridor?name=ptp\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"Corridors\", \"Port-to-Plains Corridor\"],\n },\n];\n\nexport const geographic_options_COUNTY = [\n {\n name: \"Anderson\",\n id: 1,\n text: \"Anderson County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=1\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Anderson County\"],\n },\n {\n name: \"Andrews\",\n id: 2,\n text: \"Andrews County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=2\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Andrews County\"],\n },\n {\n name: \"Angelina\",\n id: 3,\n text: \"Angelina County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=3\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Angelina County\"],\n },\n {\n name: \"Aransas\",\n id: 4,\n text: \"Aransas County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=4\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Aransas County\"],\n },\n {\n name: \"Archer\",\n id: 5,\n text: \"Archer County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=5\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Archer County\"],\n },\n {\n name: \"Armstrong\",\n id: 6,\n text: \"Armstrong County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=6\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Armstrong County\"],\n },\n {\n name: \"Atascosa\",\n id: 7,\n text: \"Atascosa County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=7\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Atascosa County\"],\n },\n {\n name: \"Austin\",\n id: 8,\n text: \"Austin County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=8\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Austin County\"],\n },\n {\n name: \"Bailey\",\n id: 9,\n text: \"Bailey County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=9\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Bailey County\"],\n },\n {\n name: \"Bandera\",\n id: 10,\n text: \"Bandera County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=10\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Bandera County\"],\n },\n {\n name: \"Bastrop\",\n id: 11,\n text: \"Bastrop County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=11\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Bastrop County\"],\n },\n {\n name: \"Baylor\",\n id: 12,\n text: \"Baylor County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=12\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Baylor County\"],\n },\n {\n name: \"Bee\",\n id: 13,\n text: \"Bee County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=13\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Bee County\"],\n },\n {\n name: \"Bell\",\n id: 14,\n text: \"Bell County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=14\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Bell County\"],\n },\n {\n name: \"Bexar\",\n id: 15,\n text: \"Bexar County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=15\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Bexar County\"],\n },\n {\n name: \"Blanco\",\n id: 16,\n text: \"Blanco County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=16\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Blanco County\"],\n },\n {\n name: \"Borden\",\n id: 17,\n text: \"Borden County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=17\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Borden County\"],\n },\n {\n name: \"Bosque\",\n id: 18,\n text: \"Bosque County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=18\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Bosque County\"],\n },\n {\n name: \"Bowie\",\n id: 19,\n text: \"Bowie County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=19\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Bowie County\"],\n },\n {\n name: \"Brazoria\",\n id: 20,\n text: \"Brazoria County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=20\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Brazoria County\"],\n },\n {\n name: \"Brazos\",\n id: 21,\n text: \"Brazos County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=21\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Brazos County\"],\n },\n {\n name: \"Brewster\",\n id: 22,\n text: \"Brewster County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=22\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Brewster County\"],\n },\n {\n name: \"Briscoe\",\n id: 23,\n text: \"Briscoe County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=23\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Briscoe County\"],\n },\n {\n name: \"Brooks\",\n id: 24,\n text: \"Brooks County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=24\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Brooks County\"],\n },\n {\n name: \"Brown\",\n id: 25,\n text: \"Brown County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=25\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Brown County\"],\n },\n {\n name: \"Burleson\",\n id: 26,\n text: \"Burleson County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=26\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Burleson County\"],\n },\n {\n name: \"Burnet\",\n id: 27,\n text: \"Burnet County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=27\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Burnet County\"],\n },\n {\n name: \"Caldwell\",\n id: 28,\n text: \"Caldwell County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=28\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Caldwell County\"],\n },\n {\n name: \"Calhoun\",\n id: 29,\n text: \"Calhoun County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=29\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Calhoun County\"],\n },\n {\n name: \"Callahan\",\n id: 30,\n text: \"Callahan County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=30\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Callahan County\"],\n },\n {\n name: \"Cameron\",\n id: 31,\n text: \"Cameron County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=31\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Cameron County\"],\n },\n {\n name: \"Camp\",\n id: 32,\n text: \"Camp County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=32\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Camp County\"],\n },\n {\n name: \"Carson\",\n id: 33,\n text: \"Carson County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=33\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Carson County\"],\n },\n {\n name: \"Cass\",\n id: 34,\n text: \"Cass County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=34\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Cass County\"],\n },\n {\n name: \"Castro\",\n id: 35,\n text: \"Castro County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=35\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Castro County\"],\n },\n {\n name: \"Chambers\",\n id: 36,\n text: \"Chambers County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=36\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Chambers County\"],\n },\n {\n name: \"Cherokee\",\n id: 37,\n text: \"Cherokee County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=37\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Cherokee County\"],\n },\n {\n name: \"Childress\",\n id: 38,\n text: \"Childress County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=38\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Childress County\"],\n },\n {\n name: \"Clay\",\n id: 39,\n text: \"Clay County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=39\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Clay County\"],\n },\n {\n name: \"Cochran\",\n id: 40,\n text: \"Cochran County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=40\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Cochran County\"],\n },\n {\n name: \"Coke\",\n id: 41,\n text: \"Coke County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=41\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Coke County\"],\n },\n {\n name: \"Coleman\",\n id: 42,\n text: \"Coleman County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=42\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Coleman County\"],\n },\n {\n name: \"Collin\",\n id: 43,\n text: \"Collin County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=43\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Collin County\"],\n },\n {\n name: \"Collingsworth\",\n id: 44,\n text: \"Collingsworth County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=44\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Collingsworth County\"],\n },\n {\n name: \"Colorado\",\n id: 45,\n text: \"Colorado County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=45\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Colorado County\"],\n },\n {\n name: \"Comal\",\n id: 46,\n text: \"Comal County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=46\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Comal County\"],\n },\n {\n name: \"Comanche\",\n id: 47,\n text: \"Comanche County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=47\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Comanche County\"],\n },\n {\n name: \"Concho\",\n id: 48,\n text: \"Concho County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=48\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Concho County\"],\n },\n {\n name: \"Cooke\",\n id: 49,\n text: \"Cooke County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=49\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Cooke County\"],\n },\n {\n name: \"Coryell\",\n id: 50,\n text: \"Coryell County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=50\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Coryell County\"],\n },\n {\n name: \"Cottle\",\n id: 51,\n text: \"Cottle County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=51\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Cottle County\"],\n },\n {\n name: \"Crane\",\n id: 52,\n text: \"Crane County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=52\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Crane County\"],\n },\n {\n name: \"Crockett\",\n id: 53,\n text: \"Crockett County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=53\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Crockett County\"],\n },\n {\n name: \"Crosby\",\n id: 54,\n text: \"Crosby County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=54\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Crosby County\"],\n },\n {\n name: \"Culberson\",\n id: 55,\n text: \"Culberson County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=55\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Culberson County\"],\n },\n {\n name: \"Dallam\",\n id: 56,\n text: \"Dallam County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=56\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Dallam County\"],\n },\n {\n name: \"Dallas\",\n id: 57,\n text: \"Dallas County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=57\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Dallas County\"],\n },\n {\n name: \"Dawson\",\n id: 58,\n text: \"Dawson County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=58\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Dawson County\"],\n },\n {\n name: \"De Witt\",\n id: 62,\n text: \"De Witt County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=62\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"De Witt County\"],\n },\n {\n name: \"Deaf Smith\",\n id: 59,\n text: \"Deaf Smith County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=59\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Deaf Smith County\"],\n },\n {\n name: \"Delta\",\n id: 60,\n text: \"Delta County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=60\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Delta County\"],\n },\n {\n name: \"Denton\",\n id: 61,\n text: \"Denton County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=61\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Denton County\"],\n },\n {\n name: \"Dickens\",\n id: 63,\n text: \"Dickens County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=63\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Dickens County\"],\n },\n {\n name: \"Dimmit\",\n id: 64,\n text: \"Dimmit County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=64\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Dimmit County\"],\n },\n {\n name: \"Donley\",\n id: 65,\n text: \"Donley County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=65\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Donley County\"],\n },\n {\n name: \"Duval\",\n id: 67,\n text: \"Duval County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=67\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Duval County\"],\n },\n {\n name: \"Eastland\",\n id: 68,\n text: \"Eastland County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=68\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Eastland County\"],\n },\n {\n name: \"Ector\",\n id: 69,\n text: \"Ector County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=69\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Ector County\"],\n },\n {\n name: \"Edwards\",\n id: 70,\n text: \"Edwards County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=70\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Edwards County\"],\n },\n {\n name: \"El Paso\",\n id: 72,\n text: \"El Paso County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=72\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"El Paso County\"],\n },\n {\n name: \"Ellis\",\n id: 71,\n text: \"Ellis County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=71\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Ellis County\"],\n },\n {\n name: \"Erath\",\n id: 73,\n text: \"Erath County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=73\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Erath County\"],\n },\n {\n name: \"Falls\",\n id: 74,\n text: \"Falls County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=74\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Falls County\"],\n },\n {\n name: \"Fannin\",\n id: 75,\n text: \"Fannin County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=75\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Fannin County\"],\n },\n {\n name: \"Fayette\",\n id: 76,\n text: \"Fayette County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=76\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Fayette County\"],\n },\n {\n name: \"Fisher\",\n id: 77,\n text: \"Fisher County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=77\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Fisher County\"],\n },\n {\n name: \"Floyd\",\n id: 78,\n text: \"Floyd County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=78\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Floyd County\"],\n },\n {\n name: \"Foard\",\n id: 79,\n text: \"Foard County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=79\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Foard County\"],\n },\n {\n name: \"Fort Bend\",\n id: 80,\n text: \"Fort Bend County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=80\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Fort Bend County\"],\n },\n {\n name: \"Franklin\",\n id: 81,\n text: \"Franklin County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=81\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Franklin County\"],\n },\n {\n name: \"Freestone\",\n id: 82,\n text: \"Freestone County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=82\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Freestone County\"],\n },\n {\n name: \"Frio\",\n id: 83,\n text: \"Frio County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=83\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Frio County\"],\n },\n {\n name: \"Gaines\",\n id: 84,\n text: \"Gaines County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=84\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Gaines County\"],\n },\n {\n name: \"Galveston\",\n id: 85,\n text: \"Galveston County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=85\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Galveston County\"],\n },\n {\n name: \"Garza\",\n id: 86,\n text: \"Garza County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=86\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Garza County\"],\n },\n {\n name: \"Gillespie\",\n id: 87,\n text: \"Gillespie County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=87\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Gillespie County\"],\n },\n {\n name: \"Glasscock\",\n id: 88,\n text: \"Glasscock County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=88\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Glasscock County\"],\n },\n {\n name: \"Goliad\",\n id: 89,\n text: \"Goliad County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=89\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Goliad County\"],\n },\n {\n name: \"Gonzales\",\n id: 90,\n text: \"Gonzales County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=90\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Gonzales County\"],\n },\n {\n name: \"Gray\",\n id: 91,\n text: \"Gray County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=91\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Gray County\"],\n },\n {\n name: \"Grayson\",\n id: 92,\n text: \"Grayson County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=92\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Grayson County\"],\n },\n {\n name: \"Gregg\",\n id: 93,\n text: \"Gregg County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=93\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Gregg County\"],\n },\n {\n name: \"Grimes\",\n id: 94,\n text: \"Grimes County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=94\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Grimes County\"],\n },\n {\n name: \"Guadalupe\",\n id: 95,\n text: \"Guadalupe County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=95\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Guadalupe County\"],\n },\n {\n name: \"Hale\",\n id: 96,\n text: \"Hale County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=96\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Hale County\"],\n },\n {\n name: \"Hall\",\n id: 97,\n text: \"Hall County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=97\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Hall County\"],\n },\n {\n name: \"Hamilton\",\n id: 98,\n text: \"Hamilton County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=98\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Hamilton County\"],\n },\n {\n name: \"Hansford\",\n id: 99,\n text: \"Hansford County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=99\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Hansford County\"],\n },\n {\n name: \"Hardeman\",\n id: 100,\n text: \"Hardeman County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=100\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Hardeman County\"],\n },\n {\n name: \"Hardin\",\n id: 101,\n text: \"Hardin County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=101\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Hardin County\"],\n },\n {\n name: \"Harris\",\n id: 102,\n text: \"Harris County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=102\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Harris County\"],\n },\n {\n name: \"Harrison\",\n id: 103,\n text: \"Harrison County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=103\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Harrison County\"],\n },\n {\n name: \"Hartley\",\n id: 104,\n text: \"Hartley County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=104\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Hartley County\"],\n },\n {\n name: \"Haskell\",\n id: 105,\n text: \"Haskell County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=105\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Haskell County\"],\n },\n {\n name: \"Hays\",\n id: 106,\n text: \"Hays County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=106\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Hays County\"],\n },\n {\n name: \"Hemphill\",\n id: 107,\n text: \"Hemphill County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=107\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Hemphill County\"],\n },\n {\n name: \"Henderson\",\n id: 108,\n text: \"Henderson County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=108\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Henderson County\"],\n },\n {\n name: \"Hidalgo\",\n id: 109,\n text: \"Hidalgo County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=109\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Hidalgo County\"],\n },\n {\n name: \"Hill\",\n id: 110,\n text: \"Hill County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=110\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Hill County\"],\n },\n {\n name: \"Hockley\",\n id: 111,\n text: \"Hockley County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=111\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Hockley County\"],\n },\n {\n name: \"Hood\",\n id: 112,\n text: \"Hood County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=112\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Hood County\"],\n },\n {\n name: \"Hopkins\",\n id: 113,\n text: \"Hopkins County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=113\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Hopkins County\"],\n },\n {\n name: \"Houston\",\n id: 114,\n text: \"Houston County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=114\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Houston County\"],\n },\n {\n name: \"Howard\",\n id: 115,\n text: \"Howard County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=115\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Howard County\"],\n },\n {\n name: \"Hudspeth\",\n id: 116,\n text: \"Hudspeth County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=116\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Hudspeth County\"],\n },\n {\n name: \"Hunt\",\n id: 117,\n text: \"Hunt County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=117\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Hunt County\"],\n },\n {\n name: \"Hutchinson\",\n id: 118,\n text: \"Hutchinson County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=118\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Hutchinson County\"],\n },\n {\n name: \"Irion\",\n id: 119,\n text: \"Irion County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=119\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Irion County\"],\n },\n {\n name: \"Jack\",\n id: 120,\n text: \"Jack County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=120\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Jack County\"],\n },\n {\n name: \"Jackson\",\n id: 121,\n text: \"Jackson County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=121\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Jackson County\"],\n },\n {\n name: \"Jasper\",\n id: 122,\n text: \"Jasper County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=122\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Jasper County\"],\n },\n {\n name: \"Jeff Davis\",\n id: 123,\n text: \"Jeff Davis County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=123\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Jeff Davis County\"],\n },\n {\n name: \"Jefferson\",\n id: 124,\n text: \"Jefferson County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=124\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Jefferson County\"],\n },\n {\n name: \"Jim Hogg\",\n id: 125,\n text: \"Jim Hogg County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=125\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Jim Hogg County\"],\n },\n {\n name: \"Jim Wells\",\n id: 126,\n text: \"Jim Wells County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=126\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Jim Wells County\"],\n },\n {\n name: \"Johnson\",\n id: 127,\n text: \"Johnson County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=127\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Johnson County\"],\n },\n {\n name: \"Jones\",\n id: 128,\n text: \"Jones County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=128\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Jones County\"],\n },\n {\n name: \"Karnes\",\n id: 129,\n text: \"Karnes County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=129\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Karnes County\"],\n },\n {\n name: \"Kaufman\",\n id: 130,\n text: \"Kaufman County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=130\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Kaufman County\"],\n },\n {\n name: \"Kendall\",\n id: 131,\n text: \"Kendall County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=131\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Kendall County\"],\n },\n {\n name: \"Kenedy\",\n id: 66,\n text: \"Kenedy County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=66\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Kenedy County\"],\n },\n {\n name: \"Kent\",\n id: 132,\n text: \"Kent County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=132\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Kent County\"],\n },\n {\n name: \"Kerr\",\n id: 133,\n text: \"Kerr County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=133\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Kerr County\"],\n },\n {\n name: \"Kimble\",\n id: 134,\n text: \"Kimble County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=134\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Kimble County\"],\n },\n {\n name: \"King\",\n id: 135,\n text: \"King County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=135\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"King County\"],\n },\n {\n name: \"Kinney\",\n id: 136,\n text: \"Kinney County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=136\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Kinney County\"],\n },\n {\n name: \"Kleberg\",\n id: 137,\n text: \"Kleberg County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=137\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Kleberg County\"],\n },\n {\n name: \"Knox\",\n id: 138,\n text: \"Knox County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=138\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Knox County\"],\n },\n {\n name: \"La Salle\",\n id: 142,\n text: \"La Salle County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=142\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"La Salle County\"],\n },\n {\n name: \"Lamar\",\n id: 139,\n text: \"Lamar County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=139\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Lamar County\"],\n },\n {\n name: \"Lamb\",\n id: 140,\n text: \"Lamb County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=140\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Lamb County\"],\n },\n {\n name: \"Lampasas\",\n id: 141,\n text: \"Lampasas County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=141\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Lampasas County\"],\n },\n {\n name: \"Lavaca\",\n id: 143,\n text: \"Lavaca County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=143\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Lavaca County\"],\n },\n {\n name: \"Lee\",\n id: 144,\n text: \"Lee County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=144\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Lee County\"],\n },\n {\n name: \"Leon\",\n id: 145,\n text: \"Leon County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=145\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Leon County\"],\n },\n {\n name: \"Liberty\",\n id: 146,\n text: \"Liberty County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=146\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Liberty County\"],\n },\n {\n name: \"Limestone\",\n id: 147,\n text: \"Limestone County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=147\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Limestone County\"],\n },\n {\n name: \"Lipscomb\",\n id: 148,\n text: \"Lipscomb County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=148\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Lipscomb County\"],\n },\n {\n name: \"Live Oak\",\n id: 149,\n text: \"Live Oak County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=149\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Live Oak County\"],\n },\n {\n name: \"Llano\",\n id: 150,\n text: \"Llano County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=150\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Llano County\"],\n },\n {\n name: \"Loving\",\n id: 151,\n text: \"Loving County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=151\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Loving County\"],\n },\n {\n name: \"Lubbock\",\n id: 152,\n text: \"Lubbock County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=152\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Lubbock County\"],\n },\n {\n name: \"Lynn\",\n id: 153,\n text: \"Lynn County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=153\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Lynn County\"],\n },\n {\n name: \"Madison\",\n id: 154,\n text: \"Madison County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=154\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Madison County\"],\n },\n {\n name: \"Marion\",\n id: 155,\n text: \"Marion County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=155\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Marion County\"],\n },\n {\n name: \"Martin\",\n id: 156,\n text: \"Martin County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=156\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Martin County\"],\n },\n {\n name: \"Mason\",\n id: 157,\n text: \"Mason County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=157\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Mason County\"],\n },\n {\n name: \"Matagorda\",\n id: 158,\n text: \"Matagorda County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=158\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Matagorda County\"],\n },\n {\n name: \"Maverick\",\n id: 159,\n text: \"Maverick County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=159\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Maverick County\"],\n },\n {\n name: \"McCulloch\",\n id: 160,\n text: \"McCulloch County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=160\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"McCulloch County\"],\n },\n {\n name: \"McLennan\",\n id: 161,\n text: \"McLennan County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=161\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"McLennan County\"],\n },\n {\n name: \"McMullen\",\n id: 162,\n text: \"McMullen County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=162\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"McMullen County\"],\n },\n {\n name: \"Medina\",\n id: 163,\n text: \"Medina County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=163\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Medina County\"],\n },\n {\n name: \"Menard\",\n id: 164,\n text: \"Menard County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=164\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Menard County\"],\n },\n {\n name: \"Midland\",\n id: 165,\n text: \"Midland County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=165\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Midland County\"],\n },\n {\n name: \"Milam\",\n id: 166,\n text: \"Milam County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=166\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Milam County\"],\n },\n {\n name: \"Mills\",\n id: 167,\n text: \"Mills County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=167\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Mills County\"],\n },\n {\n name: \"Mitchell\",\n id: 168,\n text: \"Mitchell County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=168\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Mitchell County\"],\n },\n {\n name: \"Montague\",\n id: 169,\n text: \"Montague County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=169\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Montague County\"],\n },\n {\n name: \"Montgomery\",\n id: 170,\n text: \"Montgomery County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=170\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Montgomery County\"],\n },\n {\n name: \"Moore\",\n id: 171,\n text: \"Moore County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=171\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Moore County\"],\n },\n {\n name: \"Morris\",\n id: 172,\n text: \"Morris County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=172\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Morris County\"],\n },\n {\n name: \"Motley\",\n id: 173,\n text: \"Motley County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=173\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Motley County\"],\n },\n {\n name: \"Nacogdoches\",\n id: 174,\n text: \"Nacogdoches County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=174\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Nacogdoches County\"],\n },\n {\n name: \"Navarro\",\n id: 175,\n text: \"Navarro County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=175\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Navarro County\"],\n },\n {\n name: \"Newton\",\n id: 176,\n text: \"Newton County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=176\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Newton County\"],\n },\n {\n name: \"Nolan\",\n id: 177,\n text: \"Nolan County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=177\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Nolan County\"],\n },\n {\n name: \"Nueces\",\n id: 178,\n text: \"Nueces County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=178\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Nueces County\"],\n },\n {\n name: \"Ochiltree\",\n id: 179,\n text: \"Ochiltree County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=179\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Ochiltree County\"],\n },\n {\n name: \"Oldham\",\n id: 180,\n text: \"Oldham County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=180\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Oldham County\"],\n },\n {\n name: \"Orange\",\n id: 181,\n text: \"Orange County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=181\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Orange County\"],\n },\n {\n name: \"Palo Pinto\",\n id: 182,\n text: \"Palo Pinto County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=182\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Palo Pinto County\"],\n },\n {\n name: \"Panola\",\n id: 183,\n text: \"Panola County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=183\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Panola County\"],\n },\n {\n name: \"Parker\",\n id: 184,\n text: \"Parker County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=184\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Parker County\"],\n },\n {\n name: \"Parmer\",\n id: 185,\n text: \"Parmer County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=185\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Parmer County\"],\n },\n {\n name: \"Pecos\",\n id: 186,\n text: \"Pecos County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=186\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Pecos County\"],\n },\n {\n name: \"Polk\",\n id: 187,\n text: \"Polk County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=187\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Polk County\"],\n },\n {\n name: \"Potter\",\n id: 188,\n text: \"Potter County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=188\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Potter County\"],\n },\n {\n name: \"Presidio\",\n id: 189,\n text: \"Presidio County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=189\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Presidio County\"],\n },\n {\n name: \"Rains\",\n id: 190,\n text: \"Rains County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=190\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Rains County\"],\n },\n {\n name: \"Randall\",\n id: 191,\n text: \"Randall County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=191\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Randall County\"],\n },\n {\n name: \"Reagan\",\n id: 192,\n text: \"Reagan County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=192\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Reagan County\"],\n },\n {\n name: \"Real\",\n id: 193,\n text: \"Real County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=193\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Real County\"],\n },\n {\n name: \"Red River\",\n id: 194,\n text: \"Red River County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=194\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Red River County\"],\n },\n {\n name: \"Reeves\",\n id: 195,\n text: \"Reeves County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=195\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Reeves County\"],\n },\n {\n name: \"Refugio\",\n id: 196,\n text: \"Refugio County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=196\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Refugio County\"],\n },\n {\n name: \"Roberts\",\n id: 197,\n text: \"Roberts County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=197\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Roberts County\"],\n },\n {\n name: \"Robertson\",\n id: 198,\n text: \"Robertson County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=198\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Robertson County\"],\n },\n {\n name: \"Rockwall\",\n id: 199,\n text: \"Rockwall County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=199\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Rockwall County\"],\n },\n {\n name: \"Runnels\",\n id: 200,\n text: \"Runnels County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=200\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Runnels County\"],\n },\n {\n name: \"Rusk\",\n id: 201,\n text: \"Rusk County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=201\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Rusk County\"],\n },\n {\n name: \"Sabine\",\n id: 202,\n text: \"Sabine County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=202\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Sabine County\"],\n },\n {\n name: \"San Augustine\",\n id: 203,\n text: \"San Augustine County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=203\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"San Augustine County\"],\n },\n {\n name: \"San Jacinto\",\n id: 204,\n text: \"San Jacinto County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=204\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"San Jacinto County\"],\n },\n {\n name: \"San Patricio\",\n id: 205,\n text: \"San Patricio County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=205\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"San Patricio County\"],\n },\n {\n name: \"San Saba\",\n id: 206,\n text: \"San Saba County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=206\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"San Saba County\"],\n },\n {\n name: \"Schleicher\",\n id: 207,\n text: \"Schleicher County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=207\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Schleicher County\"],\n },\n {\n name: \"Scurry\",\n id: 208,\n text: \"Scurry County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=208\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Scurry County\"],\n },\n {\n name: \"Shackelford\",\n id: 209,\n text: \"Shackelford County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=209\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Shackelford County\"],\n },\n {\n name: \"Shelby\",\n id: 210,\n text: \"Shelby County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=210\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Shelby County\"],\n },\n {\n name: \"Sherman\",\n id: 211,\n text: \"Sherman County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=211\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Sherman County\"],\n },\n {\n name: \"Smith\",\n id: 212,\n text: \"Smith County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=212\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Smith County\"],\n },\n {\n name: \"Somervell\",\n id: 213,\n text: \"Somervell County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=213\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Somervell County\"],\n },\n {\n name: \"Starr\",\n id: 214,\n text: \"Starr County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=214\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Starr County\"],\n },\n {\n name: \"Stephens\",\n id: 215,\n text: \"Stephens County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=215\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Stephens County\"],\n },\n {\n name: \"Sterling\",\n id: 216,\n text: \"Sterling County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=216\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Sterling County\"],\n },\n {\n name: \"Stonewall\",\n id: 217,\n text: \"Stonewall County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=217\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Stonewall County\"],\n },\n {\n name: \"Sutton\",\n id: 218,\n text: \"Sutton County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=218\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Sutton County\"],\n },\n {\n name: \"Swisher\",\n id: 219,\n text: \"Swisher County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=219\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Swisher County\"],\n },\n {\n name: \"Tarrant\",\n id: 220,\n text: \"Tarrant County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=220\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Tarrant County\"],\n },\n {\n name: \"Taylor\",\n id: 221,\n text: \"Taylor County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=221\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Taylor County\"],\n },\n {\n name: \"Terrell\",\n id: 222,\n text: \"Terrell County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=222\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Terrell County\"],\n },\n {\n name: \"Terry\",\n id: 223,\n text: \"Terry County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=223\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Terry County\"],\n },\n {\n name: \"Throckmorton\",\n id: 224,\n text: \"Throckmorton County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=224\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Throckmorton County\"],\n },\n {\n name: \"Titus\",\n id: 225,\n text: \"Titus County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=225\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Titus County\"],\n },\n {\n name: \"Tom Green\",\n id: 226,\n text: \"Tom Green County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=226\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Tom Green County\"],\n },\n {\n name: \"Travis\",\n id: 227,\n text: \"Travis County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=227\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Travis County\"],\n },\n {\n name: \"Trinity\",\n id: 228,\n text: \"Trinity County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=228\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Trinity County\"],\n },\n {\n name: \"Tyler\",\n id: 229,\n text: \"Tyler County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=229\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Tyler County\"],\n },\n {\n name: \"Upshur\",\n id: 230,\n text: \"Upshur County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=230\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Upshur County\"],\n },\n {\n name: \"Upton\",\n id: 231,\n text: \"Upton County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=231\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Upton County\"],\n },\n {\n name: \"Uvalde\",\n id: 232,\n text: \"Uvalde County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=232\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Uvalde County\"],\n },\n {\n name: \"Val Verde\",\n id: 233,\n text: \"Val Verde County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=233\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Val Verde County\"],\n },\n {\n name: \"Van Zandt\",\n id: 234,\n text: \"Van Zandt County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=234\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Van Zandt County\"],\n },\n {\n name: \"Victoria\",\n id: 235,\n text: \"Victoria County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=235\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Victoria County\"],\n },\n {\n name: \"Walker\",\n id: 236,\n text: \"Walker County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=236\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Walker County\"],\n },\n {\n name: \"Waller\",\n id: 237,\n text: \"Waller County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=237\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Waller County\"],\n },\n {\n name: \"Ward\",\n id: 238,\n text: \"Ward County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=238\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Ward County\"],\n },\n {\n name: \"Washington\",\n id: 239,\n text: \"Washington County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=239\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Washington County\"],\n },\n {\n name: \"Webb\",\n id: 240,\n text: \"Webb County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=240\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Webb County\"],\n },\n {\n name: \"Wharton\",\n id: 241,\n text: \"Wharton County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=241\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Wharton County\"],\n },\n {\n name: \"Wheeler\",\n id: 242,\n text: \"Wheeler County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=242\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Wheeler County\"],\n },\n {\n name: \"Wichita\",\n id: 243,\n text: \"Wichita County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=243\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Wichita County\"],\n },\n {\n name: \"Wilbarger\",\n id: 244,\n text: \"Wilbarger County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=244\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Wilbarger County\"],\n },\n {\n name: \"Willacy\",\n id: 245,\n text: \"Willacy County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=245\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Willacy County\"],\n },\n {\n name: \"Williamson\",\n id: 246,\n text: \"Williamson County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=246\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Williamson County\"],\n },\n {\n name: \"Wilson\",\n id: 247,\n text: \"Wilson County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=247\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Wilson County\"],\n },\n {\n name: \"Winkler\",\n id: 248,\n text: \"Winkler County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=248\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Winkler County\"],\n },\n {\n name: \"Wise\",\n id: 249,\n text: \"Wise County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=249\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Wise County\"],\n },\n {\n name: \"Wood\",\n id: 250,\n text: \"Wood County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=250\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Wood County\"],\n },\n {\n name: \"Yoakum\",\n id: 251,\n text: \"Yoakum County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=251\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Yoakum County\"],\n },\n {\n name: \"Young\",\n id: 252,\n text: \"Young County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=252\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Young County\"],\n },\n {\n name: \"Zapata\",\n id: 253,\n text: \"Zapata County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=253\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Zapata County\"],\n },\n {\n name: \"Zavala\",\n id: 254,\n text: \"Zavala County\",\n icon: \"emoji_transportation\",\n active: true,\n geoRoute: \"/roads/findByCounty?county=254\",\n segmentsTable: \"roads\",\n segmentSelection: \"all\",\n statsLayer: \"statewide\",\n statusGuide: [\"County\", \"Zavala County\"],\n },\n];\n\nexport const SUMMARY_VARIABLES_ROUTE_100 = [\n {\n id: \"road\",\n numeric: false,\n disablePadding: true,\n label: \"Name\",\n checked: true,\n category: \"route\",\n // tooltip:
Top 100 Bottlenecks road name
\n },\n {\n id: \"from_road\",\n numeric: true,\n disablePadding: false,\n label: \"From\",\n checked: true,\n category: \"route\",\n // tooltip:
Starting road name
\n },\n {\n id: \"to_road\",\n numeric: true,\n disablePadding: false,\n label: \"To\",\n checked: true,\n category: \"route\",\n // tooltip:
Ending road name
\n },\n];\n\nexport const SUMMARY_VARIABLES_ROUTE = [\n {\n id: \"ria_rte_id\",\n numeric: false,\n disablePadding: true,\n label: \"Route ID\",\n checked: true,\n category: \"route\",\n // tooltip:
HPMS route identifier/road name
\n },\n {\n id: \"frm_dfo\",\n numeric: true,\n disablePadding: false,\n label: \"From\",\n checked: true,\n category: \"route\",\n // tooltip:
Starting milemarker
\n },\n {\n id: \"to_dfo\",\n numeric: true,\n disablePadding: false,\n label: \"To\",\n checked: true,\n category: \"route\",\n // tooltip:
Ending milemarker
\n },\n];\n\nexport const SUMMARY_VARIABLES_GROUPING = [\n {\n id: \"ria_rte_id\",\n numeric: false,\n disablePadding: true,\n label: \"Route ID\",\n checked: true,\n category: \"route\",\n // tooltip:
HPMS route identifier/road name
\n },\n {\n id: \"frght_ntwk_st\",\n numeric: false,\n disablePadding: true,\n label: \"Texas Freight Network\",\n checked: true,\n category: \"route\",\n // tooltip:
The entity that has legal ownership of a roadway
,\n queryVariable: \"frghtNtwkTxFilters\",\n },\n {\n id: \"frght_ntwk_nl\",\n numeric: false,\n disablePadding: true,\n label: \"National Freight Network\",\n checked: true,\n category: \"route\",\n // tooltip:
The entity that has legal ownership of a roadway
,\n queryVariable: \"frghtNtwkNationFilters\",\n },\n {\n //id: \"hsys_new\",\n id: \"hsys\",\n numeric: false,\n disablePadding: true,\n label: \"Highway System Designation\",\n checked: true,\n category: \"route\",\n // tooltip:
The entity that has legal ownership of a roadway
,\n queryVariable: \"hsysFilters\",\n },\n {\n id: \"f_system\",\n numeric: false,\n disablePadding: true,\n label: \"Functional Classification\",\n checked: true,\n category: \"route\",\n // tooltip:
The FHWA approved Functional Classification System
,\n queryVariable: \"functionalClassFilters\",\n },\n {\n id: \"ru\",\n numeric: false,\n disablePadding: true,\n label: \"Rural/Urban Code\",\n checked: true,\n category: \"route\",\n // tooltip:
The entity that has legal ownership of a roadway
,\n queryVariable: \"ruralUrbanFilters\",\n },\n {\n id: \"co\",\n numeric: false,\n disablePadding: true,\n label: \"County\",\n checked: true,\n category: \"route\",\n // tooltip:
The entity that has legal ownership of a roadway
,\n queryVariable: \"countyFilters\",\n },\n {\n id: \"di\",\n numeric: false,\n disablePadding: true,\n label: \"TxDOT District\",\n checked: true,\n category: \"route\",\n // tooltip:
The entity that has legal ownership of a roadway
,\n queryVariable: \"districtFilters\",\n },\n {\n id: \"mpa\",\n numeric: false,\n disablePadding: true,\n label: \"MPO\",\n checked: true,\n category: \"route\",\n // tooltip:
The entity that has legal ownership of a roadway
,\n queryVariable: \"mpoFilters\",\n },\n {\n id: \"sec_nhs\",\n numeric: false,\n disablePadding: true,\n label: \"NHS\",\n checked: true,\n category: \"route\",\n // tooltip: (\n //
\n // A Roadway that is a component of the National Highway System\n // (NHS)\n //
\n // ),\n queryVariable: \"nhsFilters\",\n },\n {\n id: \"estimated\",\n numeric: false,\n disablePadding: true,\n label: \"Estimated\",\n checked: true,\n category: \"route\",\n // tooltip: (\n //
\n // A Roadway that is a component of the National Highway System\n // (NHS)\n //
\n // ),\n queryVariable: \"estimatedFilters\",\n },\n {\n id: \"ownership\",\n numeric: false,\n disablePadding: true,\n label: \"Ownership\",\n checked: true,\n category: \"route\",\n // tooltip:
The entity that has legal ownership of a roadway
,\n queryVariable: \"ownershipFilters\",\n },\n {\n id: \"urban_code\",\n numeric: false,\n disablePadding: true,\n label: \"Urban Code\",\n checked: true,\n category: \"route\",\n tooltip: (\n
\n The U.S. Census Urban Area Code\n
\n ),\n queryVariable: \"urbanCodeFilters\",\n },\n {\n id: \"nhs\",\n numeric: false,\n disablePadding: true,\n label: \"NHS\",\n checked: true,\n category: \"route\",\n tooltip: (\n
\n A Roadway that is a component of the National Highway System (NHS)\n
\n ),\n queryVariable: \"nhsFilters\",\n },\n {\n id: \"strahnet_t\",\n numeric: false,\n disablePadding: true,\n label: \"STRAHNET\",\n checked: true,\n category: \"route\",\n tooltip: (\n
\n Roadway section that is a component of the Strategic Highway Network\n (STRAHNET)\n
\n ),\n queryVariable: \"strahnetFilters\",\n },\n {\n id: \"truck\",\n numeric: false,\n disablePadding: true,\n label: \"NN\",\n checked: true,\n category: \"route\",\n tooltip: (\n
\n Roadway section that is a component of the National Truck Network (NN)\n as defined by 23 CFR 658\n
\n ),\n queryVariable: \"truckNetworkFilters\",\n },\n {\n id: \"total\",\n numeric: false,\n disablePadding: true,\n label: \"Total\",\n checked: true,\n category: \"route\",\n tooltip: (\n
Total of each column
\n ),\n },\n {\n id: \"county_cod\",\n numeric: false,\n disablePadding: true,\n label: \"County\",\n checked: true,\n category: \"route\",\n tooltip:
Counties
,\n queryVariable: \"countyFilters\",\n },\n];\n\nexport const tx100_plot_vars = [\n { year: \"2014\", trank: \"trank2014\", arank: \"arank2014\" },\n { year: \"2015\", trank: \"trank2015\", arank: \"arank2015\" },\n { year: \"2016\", trank: \"trank2016\", arank: \"arank2016\" },\n { year: \"2017\", trank: \"trank2017\", arank: \"arank2017\" },\n { year: \"2018\", trank: \"trank2018\", arank: \"arank2018\" },\n { year: \"2019\", trank: \"trank2019\", arank: \"arank2019\" },\n { year: \"2020\", trank: \"trank2020\", arank: \"arank2020\" },\n { year: \"2021\", trank: \"trank2021\", arank: \"arank2021\" },\n];\n\nexport const databaseVariablesHPMS = [\n {\n // variable: \"aadt\",\n variable: \"adt_cur\",\n condition: \"normalized\",\n normalizedBy: \"ttivmt\",\n },\n {\n variable: \"aadt_combi\",\n condition: \"normalized\",\n normalizedBy: \"trkttivmt\",\n },\n {\n variable: \"aadt_sgl_u\",\n condition: \"normalized\",\n normalizedBy: \"trkttivmt\",\n },\n {\n variable: \"allfuel\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"allfuel1\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"allfuel2\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"allrefspe1\",\n condition: \"normalized\",\n normalizedBy: \"ttivmt1\",\n },\n {\n variable: \"allrefspe4\",\n condition: \"normalized\",\n normalizedBy: \"ttivmt2\",\n },\n {\n variable: \"allrefspee\",\n condition: \"normalized\",\n normalizedBy: \"ttivmt\",\n },\n {\n variable: \"allspeed\",\n condition: \"normalized\",\n normalizedBy: \"ttivmt\",\n },\n {\n variable: \"allspeed1\",\n condition: \"normalized\",\n normalizedBy: \"ttivmt1\",\n },\n {\n variable: \"allspeed2\",\n condition: \"normalized\",\n normalizedBy: \"ttivmt2\",\n },\n {\n variable: \"beg_point\",\n condition: \"none\",\n normalizedBy: \"\",\n },\n {\n variable: \"commcost\",\n condition: \"sum\",\n normalizedBy: \"trkttivmt\",\n },\n {\n variable: \"commcost1\",\n condition: \"sum\",\n normalizedBy: \"trkttivmt1\",\n },\n {\n variable: \"commcost2\",\n condition: \"sum\",\n normalizedBy: \"trkttivmt2\",\n },\n {\n variable: \"congcost\",\n condition: \"sum\",\n normalizedBy: \"ttivmt\",\n },\n {\n variable: \"congcost1\",\n condition: \"sum\",\n normalizedBy: \"ttivmt1\",\n },\n {\n variable: \"congcost2\",\n condition: \"sum\",\n normalizedBy: \"ttivmt2\",\n },\n {\n variable: \"delay\",\n condition: \"sum\",\n normalizedBy: \"ttivmt\",\n },\n {\n variable: \"delay1\",\n condition: \"sum\",\n normalizedBy: \"ttivmt1\",\n },\n {\n variable: \"delay2\",\n condition: \"sum\",\n normalizedBy: \"ttivmt2\",\n },\n {\n variable: \"direction1\",\n condition: \"none\",\n normalizedBy: \"\",\n },\n {\n variable: \"direction2\",\n condition: \"none\",\n normalizedBy: \"\",\n },\n {\n variable: \"end_point\",\n condition: \"none\",\n normalizedBy: \"\",\n },\n {\n variable: \"estimated\",\n condition: \"none\",\n normalizedBy: \"\",\n },\n {\n variable: \"ghg\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"ghg1\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"ghg2\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"ghgbase\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"ghgbase1\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"ghgbase2\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"ghgtrk\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"ghgtrk1\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"ghgtrk2\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"ghgtrkbas0\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"ghgtrkbas3\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"ghgtrkbase\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"id\",\n condition: \"none\",\n normalizedBy: \"\",\n },\n {\n variable: \"opdly\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"opdly1\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"opdly2\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"optrkdly\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"optrkdly1\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"optrkdly2\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"pkdly\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"pkdly1\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"pkdly2\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"pktrkdly\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"pktrkdly1\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"pktrkdly2\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"pti80\",\n condition: \"normalized\",\n normalizedBy: \"ttivmt\",\n },\n {\n variable: \"pti801\",\n condition: \"normalized\",\n normalizedBy: \"ttivmt1\",\n },\n {\n variable: \"pti802\",\n condition: \"normalized\",\n normalizedBy: \"ttivmt2\",\n },\n {\n variable: \"pti95\",\n condition: \"normalized\",\n normalizedBy: \"ttivmt\",\n },\n {\n variable: \"pti951\",\n condition: \"normalized\",\n normalizedBy: \"ttivmt1\",\n },\n {\n variable: \"pti952\",\n condition: \"normalized\",\n normalizedBy: \"ttivmt2\",\n },\n {\n variable: \"route_id\",\n condition: \"none\",\n normalizedBy: \"\",\n },\n {\n variable: \"state_code\",\n condition: \"none\",\n normalizedBy: \"\",\n },\n {\n // variable: \"trkaadt\",\n variable: \"tottrk\",\n condition: \"normalized\",\n normalizedBy: \"trkttivmt\",\n },\n {\n variable: \"trkdelay\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"trkdelay1\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"trkdelay2\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"trkfuel\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"trkfuel1\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"trkfuel2\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"trkpti80\",\n condition: \"normalized\",\n normalizedBy: \"trkttivmt\",\n },\n {\n variable: \"trkpti801\",\n condition: \"normalized\",\n normalizedBy: \"trkttivmt1\",\n },\n {\n variable: \"trkpti802\",\n condition: \"normalized\",\n normalizedBy: \"trkttivmt2\",\n },\n {\n variable: \"trkpti95\",\n condition: \"normalized\",\n normalizedBy: \"trkttivmt\",\n },\n {\n variable: \"trkpti951\",\n condition: \"normalized\",\n normalizedBy: \"trkttivmt1\",\n },\n {\n variable: \"trkpti952\",\n condition: \"normalized\",\n normalizedBy: \"trkttivmt2\",\n },\n {\n variable: \"trkrefspee\",\n condition: \"normalized\",\n normalizedBy: \"trkttivmt\",\n },\n {\n variable: \"trkrefspe2\",\n condition: \"normalized\",\n normalizedBy: \"trkttivmt1\",\n },\n {\n variable: \"trkrefspe5\",\n condition: \"normalized\",\n normalizedBy: \"trkttivmt2\",\n },\n {\n variable: \"trkspeed\",\n condition: \"normalized\",\n normalizedBy: \"trkttivmt\",\n },\n {\n variable: \"trkspeed1\",\n condition: \"normalized\",\n normalizedBy: \"trkttivmt1\",\n },\n {\n variable: \"trkspeed2\",\n condition: \"normalized\",\n normalizedBy: \"trkttivmt2\",\n },\n {\n variable: \"trktti\",\n condition: \"normalized\",\n normalizedBy: \"trkttivmt\",\n },\n {\n variable: \"trktti1\",\n condition: \"normalized\",\n normalizedBy: \"trkttivmt`\",\n },\n {\n variable: \"trktti2\",\n condition: \"normalized\",\n normalizedBy: \"trkttivmt2\",\n },\n {\n variable: \"trkttivmt\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"trkttivmt1\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"trkttivmt2\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"truck\",\n condition: \"none\",\n normalizedBy: \"\",\n },\n {\n variable: \"tti\",\n condition: \"normalized\",\n normalizedBy: \"ttivmt\",\n },\n {\n variable: \"tti1\",\n condition: \"normalized\",\n normalizedBy: \"ttivmt1\",\n },\n {\n variable: \"tti2\",\n condition: \"normalized\",\n normalizedBy: \"ttivmt2\",\n },\n {\n variable: \"ttivmt\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"ttivmt1\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"ttivmt2\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"volume_gro\",\n condition: \"none\",\n normalizedBy: \"\",\n },\n {\n variable: \"wedly\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"wedly1\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"wedly2\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"wetrkdly\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"wetrkdly1\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"wetrkdly2\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"year_recor\",\n condition: \"none\",\n normalizedBy: \"\",\n },\n //variable: \"vmt\",\n {\n variable: \"vmt\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n {\n variable: \"trkvmt\",\n condition: \"sum\",\n normalizedBy: \"\",\n },\n];\n","import React from \"react\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport DialogActions from \"@material-ui/core/DialogActions\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Typography from \"@material-ui/core/Typography\";\nimport Button from \"@material-ui/core/Button\";\n\nconst ContactUsDialog = (props) => {\n //function ContactUsDialog(props) {\n const { openContactUs, setOpenContactUs } = props;\n\n const handleCloseContactUs = () => {\n setOpenContactUs(false);\n };\n\n return (\n \n Contact Us:\n \n \n {/* \n \n Casey Wells\n \n \n Texas Department of Transportation (TxDOT)\n \n Casey.Wells@txdot.gov\n */}\n \n \n Kale Driemeier\n \n \n Texas Department of Transportation (TxDOT)\n \n \n kale.driemeier@txdot.gov\n \n \n \n \n L.D. White\n \n \n Texas A&M Transportation Institute (TTI)\n \n l-white@tti.tamu.edu\n \n \n \n \n \n \n \n );\n};\n\nexport default ContactUsDialog;\n","import React from \"react\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport DialogActions from \"@material-ui/core/DialogActions\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\n// import Grid from \"@material-ui/core/Grid\";\n// import Typography from \"@material-ui/core/Typography\";\nimport Button from \"@material-ui/core/Button\";\n\nimport List from \"@material-ui/core/List\";\nimport ListItem from \"@material-ui/core/ListItem\";\nimport ListItemIcon from \"@material-ui/core/ListItemIcon\";\nimport ListItemText from \"@material-ui/core/ListItemText\";\nimport NewReleasesOutlinedIcon from \"@material-ui/icons/NewReleasesOutlined\";\nimport ArrowRightIcon from \"@material-ui/icons/ArrowRight\";\n\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: \"100%\",\n // maxWidth: 360,\n backgroundColor: theme.palette.background.paper,\n },\n nested: {\n paddingLeft: theme.spacing(10),\n },\n}));\n\nconst WhatsNewDialog = (props) => {\n const classes = useStyles();\n const { openWhatsNew, setOpenWhatsNew } = props;\n\n const handleCloseContactUs = () => {\n setOpenWhatsNew(false);\n };\n\n const update13 = [\n \"New Feature - Monitored roadways tab for statewide-based layers.\",\n ];\n const update12 = [\n \"Settings/Inputs Tab - New Feature: Created new location for tool settings, inputs, and filters\",\n \"New Map Type - New Feature: Deck.GL 3-D maps\",\n \"Charts Updates: Improved chart features\",\n ];\n const update11 = [\n \"Other Map Layers - New Feature: Added locations of truck parking\",\n \"Other Map Layers: Improved layout\",\n ];\n const update10 = [\"Road Segments Table Update: Improved functionality/look\"];\n const update9 = [\n \"Summary Table Update: Added row selection (highlights selection on map)\",\n ];\n const update8 = [\n \"NEW Data Update: 2020 reporting year (2019 data) added \",\n \"UI Update: Improved functionality/look\",\n \"Summary Table Update: Improved functionality/look\",\n ];\n const update7 = [\n 'Feature Update: Energy sector layers in \"Other Map Layers\" tab',\n \"Document Update: Updated Quick Reference/Basic Help\",\n ];\n const update6 = [\n \"Feature Update: County layer\",\n \"Document Update: Updated Quick Reference/Basic Help\",\n ];\n const update5 = [\n 'UI Update: Addition of \"Filters/Legend\" and \"Quick Info/Hover\" collapsibles on leaflet map',\n 'UI Update: Year selection moved to \"Filters/Legend\" collapsible',\n 'New Feature: User control of road segment hues based on data categories under \"Filters/Legend\"',\n \"New Document: What is TCAT?\",\n ];\n const update4 = [\n \"New Feature: Inclusion UTP projects via TxDOT Open Data Portal API\",\n \"New Feature: Other Map Layers Tab\",\n ];\n const update3 = [\n \"Bug fixes: Custom Summary Tab\",\n \"Feature improvements: Custom Summary Tab\",\n \"Data revision: display of 2019 on Texas 100 layers\",\n ];\n const update2 = [\n \"New Feature: Custom Summary Tab\",\n \"General UI improvements\",\n ];\n const update1 = [\"New Feature: Summary Tab\", \"General UI improvements\"];\n\n return (\n \n What's New...\n \n \n // Nested List Items\n // \n // }\n className={classes.root}\n >\n \n \n \n \n \n \n {update13.map((item, index) => (\n \n \n \n \n \n \n ))}{\" \"}\n \n \n \n \n \n \n {update12.map((item, index) => (\n \n \n \n \n \n \n ))}{\" \"}\n \n \n \n \n \n \n {update11.map((item, index) => (\n \n \n \n \n \n \n ))}{\" \"}\n \n \n \n \n \n \n {update10.map((item, index) => (\n \n \n \n \n \n \n ))}{\" \"}\n \n \n \n \n \n \n {update9.map((item, index) => (\n \n \n \n \n \n \n ))}{\" \"}\n \n \n \n \n \n \n {update8.map((item, index) => (\n \n \n \n \n \n \n ))}{\" \"}\n \n \n \n \n \n \n {update7.map((item, index) => (\n \n \n \n \n \n \n ))}\n \n \n \n \n \n \n {update6.map((item, index) => (\n \n \n \n \n \n \n ))}\n \n \n \n \n \n \n {update5.map((item, index) => (\n \n \n \n \n \n \n ))}\n \n \n \n \n \n \n {update4.map((item, index) => (\n \n \n \n \n \n \n ))}\n \n \n \n \n \n \n {update3.map((item, index) => (\n \n \n \n \n \n \n ))}\n \n \n \n \n \n \n {update2.map((item, index) => (\n \n \n \n \n \n \n ))}\n \n \n \n \n \n \n {update1.map((item, index) => (\n \n \n \n \n \n \n ))}\n {/*
  • March 31, 2020 - TCAT Version 1.2\n
      \n
    • New Feature: Time series information
    • \n
    • General UI improvements
    • \n
    • Minor data revisions
    • \n
    \n
  • \n
  • November 30, 2019 - TCAT Version 1
  • */}\n \n
    \n \n \n \n \n );\n};\n\nexport default WhatsNewDialog;\n","import React from \"react\";\nimport Drawer from \"@material-ui/core/Drawer\";\nimport Divider from \"@material-ui/core/Divider\";\nimport Typography from \"@material-ui/core/Typography\";\n// import List from \"@material-ui/core/List\";\nimport ListItem from \"@material-ui/core/ListItem\";\nimport ListItemIcon from \"@material-ui/core/ListItemIcon\";\nimport ListItemText from \"@material-ui/core/ListItemText\";\nimport Link from \"@material-ui/core/Link\";\nimport Icon from \"@material-ui/core/Icon\";\nimport PropTypes from \"prop-types\";\nimport Button from \"@material-ui/core/Button\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport DialogActions from \"@material-ui/core/DialogActions\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\n\nimport { sidebarStyles } from \"../ui/styles\";\n// import {\n// geographic_options,\n// geographic_options_counties,\n// geographic_options_critical_corridors,\n// geographic_options_other_fway_corridors,\n// geographic_options_other_art_corridors,\n// geographic_options_other_freight_corridors,\n// geographic_options_top100,\n// } from \"../common/constants\";\n\nimport ContactUsDialog from \"./ContactUs\";\nimport WhatsNewDialog from \"./WhatsNew\";\n\nimport Select, {\n // components,\n createFilter,\n} from \"react-select\";\n\nimport {\n // TXDOTdist_VARIABLES,\n // COUNTY_LIST,\n // MPO_LIST,\n // OTHER_GROUP,\n // REGION_LIST,\n ROAD_LIST,\n geographic_options_tx100,\n geographic_options_TXDOTdist,\n geographic_options_MPO,\n geographic_options_REGIONS,\n geographic_options_corridors,\n geographic_options_COUNTY,\n whatIsTCATFile,\n whatIsTCAT_tooltip,\n basicHelpFile,\n usersguide_tooltip,\n methodHelpFile,\n summaryReportFile,\n annTruckCongRepCardsLink,\n geographic_options_Networks,\n quarterlyTruckMobilityReportsLink,\n} from \"../common/constants\";\n\nimport InfoIcon from \"@material-ui/icons/Info\";\nimport HelpIcon from \"@material-ui/icons/Help\";\nimport WebAssetIcon from \"@material-ui/icons/WebAsset\";\nimport ContactMailIcon from \"@material-ui/icons/ContactMail\";\n\nconst Sidebar = (props) => {\n const classes = sidebarStyles();\n\n // const [geographicOptions, setGeographicOptions] = React.useState(\n // geographic_options\n // );\n const [open, setOpen] = React.useState(false);\n const handleClickOpen = () => {\n setOpen(true);\n };\n const handleClose = () => {\n setOpen(false);\n };\n\n function GeographicSelectionDialog(propsGeo) {\n return (\n \n Available layers:\n \n {propsGeo.geographicOptions.map((item, index) => (\n {\n e.preventDefault();\n if (item.active) {\n props.setStatsLayer(item.text);\n props.setGeoRoute(item.geoRoute);\n props.setSegmentsTable(item.segmentsTable);\n props.setSegmentSelection(item.segmentSelection);\n props.setStatusGuide(item.statusGuide);\n }\n }}\n >\n \n \n {item.icon}\n \n \n \n \n ))}\n \n \n \n \n \n );\n }\n\n const [openContactUs, setOpenContactUs] = React.useState(false);\n const handleClickOpenContactUs = () => {\n setOpenContactUs(true);\n };\n\n const [openWhatsNew, setOpenWhatsNew] = React.useState(false);\n const handleClickOpenWhatsNew = () => {\n setOpenWhatsNew(true);\n };\n\n const geographicGroups = [\n { name: \"Texas 100\", options: geographic_options_tx100 },\n { name: \"TxDOT District\", options: geographic_options_TXDOTdist },\n { name: \"County\", options: geographic_options_COUNTY },\n { name: \"MPO\", options: geographic_options_MPO },\n { name: \"Region\", options: geographic_options_REGIONS },\n { name: \"Corridor\", options: geographic_options_corridors },\n { name: \"Freight Networks/NHS\", options: geographic_options_Networks },\n ];\n\n const grouped_option = [\n {\n label: \"TxDOT Districts\",\n options: geographic_options_TXDOTdist.map((opt) => ({\n label: opt.text,\n value: opt.geoRoute,\n statusGuide: opt.statusGuide,\n })),\n },\n {\n label: \"Counties\",\n options: geographic_options_COUNTY.map((opt) => ({\n label: opt.text,\n value: opt.geoRoute,\n statusGuide: opt.statusGuide,\n })),\n },\n {\n label: \"MPOs\",\n options: geographic_options_MPO.map((opt) => ({\n label: opt.text,\n value: opt.geoRoute,\n statusGuide: opt.statusGuide,\n })),\n },\n {\n label: \"Regions\",\n options: geographic_options_REGIONS.map((opt) => ({\n label: opt.text,\n value: opt.geoRoute,\n statusGuide: opt.statusGuide,\n })),\n },\n {\n label: \"Corridors\",\n options: geographic_options_corridors.map((opt) => ({\n label: opt.text,\n value: opt.geoRoute,\n statusGuide: opt.statusGuide,\n })),\n },\n {\n label: \"Roads\",\n options: ROAD_LIST.map((opt) => ({\n label: opt.label,\n value: \"findByRouteId?route_id=\" + opt.value,\n statusGuide: [\"Roads\", opt.label],\n })),\n },\n ];\n\n var handleSelect = (e) => {\n // console.log(\"e-check\", e);\n // setstatusTX100Layer(false);\n // setstatusStateLayer(false);\n // setstatusCountyLayer(false);\n // setstatusStateLayer(false);\n //props.setStatsLayer(\"statewide\");\n // props.setRoute(\"/roads/\" + e.value);\n if (!e) {\n props.setStatsLayer(props.statsLayerDesc);\n props.setGeoRoute(props.geoRoute);\n props.setSegmentsTable(\"roads\");\n props.setSegmentSelection(\"all\");\n props.setStatusGuide(props.statusGuide);\n } else {\n let groupName = e.label.split(\" \").slice(-1)[0];\n groupName = groupName === e.label ? \"Road\" : groupName;\n // let label =\n // groupName === \"Road\" ? e.label : e.label.slice(0, -groupName.length);\n // setstatusGuide([groupName, label]);\n\n props.setStatsLayer(e.label);\n //props.setGeoRoute(\"/roads/\" + e.value);\n if (groupName === \"Road\") {\n props.setGeoRoute(\"/roads/\" + e.value);\n } else {\n props.setGeoRoute(e.value);\n }\n\n props.setSegmentsTable(\"roads\");\n props.setSegmentSelection(\"all\");\n props.setStatusGuide(e.statusGuide);\n }\n };\n\n const [geographicOptions, setGeographicOptions] = React.useState(\n geographic_options_tx100\n );\n const customStyles = {\n control: (base, state) => ({\n ...base,\n color: \"white\",\n // match with the menu\n borderRadius: state.isFocused ? \"3px 3px 0 0\" : 3,\n // Overwrittes the different states of border\n // borderColor: state.isFocused ? \"yellow\" : \"green\",\n // Removes weird border around container\n // boxShadow: state.isFocused ? null : null,\n // \"&:hover\": {\n // // Overwrittes the different states of border\n // borderColor: state.isFocused ? \"red\" : \"blue\",\n // },\n }),\n menu: (base) => ({\n ...base,\n // override border radius to match the box\n borderRadius: 0,\n // kill the gap\n marginTop: 0,\n background: \"#1e1e1e\",\n color: \"white\",\n }),\n menuList: (base, state) => ({\n ...base,\n // kill the white space on first and last option\n padding: 0,\n background: \"#1e1e1e\",\n color: \"white\",\n }),\n option: (styles, { isFocused, isSelected }) => ({\n ...styles,\n background: isFocused\n ? // ? \"hsla(291, 64%, 42%, 0.5)\"\n \"#9b27b0\"\n : isSelected\n ? // ? \"hsla(291, 64%, 42%, 1)\"\n \"#3a8848\"\n : undefined,\n zIndex: 1,\n }),\n };\n\n const drawer = (\n
    \n
    \n \n \n General Information\n \n {\n // setGeographicOptions(geographic_options);\n // handleClickOpen();\n // }}\n component=\"a\"\n href={process.env.PUBLIC_URL + whatIsTCATFile}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n title={whatIsTCAT_tooltip}\n >\n {/* \n {\"location_city\"}\n */}\n \n \n \n \n \n {\n // setGeographicOptions(geographic_options);\n handleClickOpenWhatsNew();\n }}\n title=\"What's New?\"\n >\n {/* \n {\"location_city\"}\n */}\n \n \n \n \n \n \n\n {\n // setGeographicOptions(geographic_options);\n // handleClickOpen();\n // }}\n component=\"a\"\n href={process.env.PUBLIC_URL + basicHelpFile}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n title={usersguide_tooltip}\n >\n {/* \n {\"location_city\"}\n */}\n \n \n \n \n \n \n \n Congestion Layers\n \n {/* \n Current Layer:\n {props.statsLayerDesc}\n */}\n {/* */}\n\n {geographicGroups.map((opt) => (\n {\n setGeographicOptions(opt.options);\n handleClickOpen();\n }}\n >\n \n {\"location_city\"}\n \n \n \n ))}\n\n {\n // setGeographicOptions(geographic_options);\n // handleClickOpen();\n // }}\n key={\"sidebar-group-search\"}\n >\n \n {\"search\"}\n \n \n \n ({\n // ...styles,\n // backgroundColor: \"white\",\n // color: \"black\",\n // }),\n // option: (styles, state) => ({\n // ...styles,\n // }),\n // // singleValue: (styles) => ({ ...style, color: \"black\" }),\n // singleValue: (styles) => ({ color: \"black\" }),\n // // menu: (styles) => ({ ...style, color: \"black\" }),\n // menu: (styles) => ({ color: \"black\" }),\n // color: \"black\",\n // cursor: \"default\",\n // }}\n />\n \n \n \n Other Links\n \n {\n // setGeographicOptions(geographic_options);\n // handleClickOpen();\n // }}\n component=\"a\"\n href={annTruckCongRepCardsLink}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n title=\"Annual Truck Congestion Report Cards\"\n >\n {/* \n {\"location_city\"}\n */}\n \n \n \n \n \n {\n // setGeographicOptions(geographic_options);\n // handleClickOpen();\n // }}\n component=\"a\"\n href={quarterlyTruckMobilityReportsLink}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n title=\"Quarterly Truck Mobility Reports\"\n >\n {/* \n {\"location_city\"}\n */}\n \n \n \n \n \n {\n // setGeographicOptions(geographic_options);\n // handleClickOpen();\n // }}\n component=\"a\"\n href={process.env.PUBLIC_URL + methodHelpFile}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n title=\"Analysis Procedures and Mobility Performance Measures 100 Most Congested Texas Road Sections\"\n >\n {/* \n {\"location_city\"}\n */}\n \n \n \n \n \n {\n // setGeographicOptions(geographic_options);\n // handleClickOpen();\n // }}\n component=\"a\"\n href={process.env.PUBLIC_URL + summaryReportFile}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n title=\"100 Most Congested Roadways in Texas\"\n >\n {/* \n {\"location_city\"}\n */}\n \n \n \n \n \n {\n // setGeographicOptions(geographic_options);\n handleClickOpenContactUs();\n }}\n title=\"Contact Us\"\n >\n {/* \n {\"location_city\"}\n */}\n\n \n \n \n \n \n \n\n \n
    \n );\n\n return (\n {\n e.stopPropagation();\n }}\n >\n {drawer}\n \n );\n};\n\nSidebar.propTypes = {\n style: PropTypes.object,\n};\n\nexport default Sidebar;\n","/** see https://upmostly.com/tutorials/how-to-use-the-usecontext-hook-in-react*/\nimport React, { createContext, useReducer } from \"react\";\nimport {\n geographic_options_COUNTY,\n geographic_options_TXDOTdist,\n geographic_options_MPO,\n} from \"../common/constants\";\n\nconst initialState = {\n popUpEnabled: true,\n highlightQuery: function(feature) {\n return false;\n },\n userSelection: { ria_rte_id: \"\", frm_dfo: Number.NaN, to_dfo: Number.NaN },\n userSelectionTX100: {\n top100id: \"\",\n from_road: String.NaN,\n to_road: \"\",\n road: \"\",\n },\n features: [],\n utpMapLayersVisibility: {\n underwayorsoon: false,\n within4years: false,\n fivetotenyears: false,\n tenplusyears: false,\n },\n utpMapLayersCount: {\n underwayorsoon: 0,\n within4years: 0,\n fivetotenyears: 0,\n tenplusyears: 0,\n },\n roadSegmentCategoryIndex: 0,\n roadSegmentCategory: \"none\",\n selectedBaselayer: \"Streets\",\n yearSelection: 2021,\n contextLayersVisibility: {\n countyBoundaries: false,\n districtBoundaries: false,\n odessaDistSandMines: false,\n disposalWells: false,\n commercialBorderCrossings: false,\n nonCommercialBorderCrossings: false,\n railBorderCrossings: false,\n portsLayer: false,\n cargoAirports: false,\n airports: false,\n truckParkingLayer: false,\n },\n contextLayersNumbFeatures: {\n odessaDistSandMines: 0,\n disposalWells: 0,\n commercialBorderCrossings: 0,\n nonCommercialBorderCrossings: 0,\n railBorderCrossings: 0,\n portsLayer: 0,\n cargoAirports: 0,\n airports: 0,\n truckParkingLayer: 0,\n },\n tableColumns: {},\n hsysFilters: [\n { label: \"Interstate\", id: \"IH\", checked: true },\n { label: \"US Highway\", id: \"US\", checked: true },\n { label: \"US Spur\", id: \"UP\", checked: true },\n { label: \"State Highway\", id: \"SH\", checked: true },\n { label: \"State Alt\", id: \"SA\", checked: true },\n { label: \"State Loop\", id: \"SL\", checked: true },\n { label: \"State Spur\", id: \"SS\", checked: true },\n { label: \"Business IH\", id: \"BI\", checked: true },\n { label: \"Business US\", id: \"BU\", checked: true },\n { label: \"Business State\", id: \"BS\", checked: true },\n { label: \"Principal Arterial\", id: \"PA\", checked: true },\n { label: \"Ranch to Mkt\", id: \"RM\", checked: true },\n { label: \"Ranch Road, \", id: \"RR\", checked: true },\n { label: \"Park Road\", id: \"PR\", checked: true },\n { label: \"Rec Road\", id: \"RE\", checked: true },\n { label: \"Rec Rd Spur\", id: \"RP\", checked: true },\n { label: \"FM Spur\", id: \"FS\", checked: true },\n { label: \"RM Spur\", id: \"RS\", checked: true },\n { label: \"RR Spur\", id: \"RU\", checked: true },\n { label: \"Business FM\", id: \"BF\", checked: true },\n { label: \"Farm to Mkt\", id: \"FM\", checked: true },\n { label: \"Off-System: Tollroad\", id: \"TL\", checked: true },\n { label: \"Off-System: County Road\", id: \"CR\", checked: true },\n { label: \"Off-System: Func. Classified St\", id: \"FC\", checked: true },\n { label: \"Off-System: Local Street\", id: \"LS\", checked: true },\n { label: \"Federal Road\", id: \"FD\", checked: true },\n { label: \"US Alternate\", id: \"UA\", checked: true },\n ],\n ruralUrbanFilters: [\n { label: \"Unknown\", id: \"0\", checked: true },\n { label: \"Rural (<5000)\", id: \"1\", checked: true },\n { label: \"Small Urban (5000-49,999)\", id: \"2\", checked: true },\n { label: \"Large Urban (50,000-199,999)\", id: \"3\", checked: true },\n { label: \"Urbanized (200,000+)\", id: \"4\", checked: true },\n ],\n\n functionalClassFilters: [\n { label: \"Interstate\", id: \"1\", checked: true },\n { label: \"Other Freeway and Expressway\", id: \"2\", checked: true },\n { label: \"Other Principal Arterial\", id: \"3\", checked: true },\n { label: \"Minor Arterial\", id: \"4\", checked: true },\n { label: \"Major Collector\", id: \"5\", checked: true },\n { label: \"Minor Collector\", id: \"6\", checked: true },\n { label: \"Local\", id: \"7\", checked: true },\n ],\n //geographic_options_COUNTY\n countyFilters: geographic_options_COUNTY.map((item) => {\n const updatedItem = {\n ...item,\n label: item.name,\n checked: true,\n };\n return updatedItem;\n }),\n districtFilters: geographic_options_TXDOTdist.map((item) => {\n const updatedItem = {\n ...item,\n label: item.text,\n id: item.mapped,\n checked: true,\n };\n return updatedItem;\n }),\n mpoFilters: geographic_options_MPO.map((item) => {\n const updatedItem = {\n ...item,\n label: item.name,\n checked: true,\n };\n return updatedItem;\n }),\n nhsFilters: [\n { label: \"Not on NHS\", id: \"0\", checked: true },\n { label: \"Non-connector NHS\", id: \"1\", checked: true },\n { label: \"Major Airport\", id: \"2\", checked: true },\n { label: \"Major Port Facility\", id: \"3\", checked: true },\n { label: \"Major Amtrak Station\", id: \"4\", checked: true },\n { label: \"Major Rail/Truck Terminal\", id: \"5\", checked: true },\n { label: \"Major Inner City Bus Terminal\", id: \"6\", checked: true },\n {\n label: \"Major Public Transportation or Multi-Modal Passenger Terminal\",\n id: \"7\",\n checked: true,\n },\n { label: \"Major Pipeline Terminal\", id: \"8\", checked: true },\n { label: \"Major Ferry Terminal\", id: \"9\", checked: true },\n ],\n\n estimatedFilters: [\n { label: \"Yes\", id: \"YES\", checked: true },\n { label: \"No\", id: \"NO\", checked: true },\n ],\n frghtNtwkTxFilters: [\n { label: \"Texas Freight Network\", id: 1, checked: true },\n { label: \"Not on Texas Freight Network\", id: 0, checked: true },\n ],\n frghtNtwkNationFilters: [\n { label: \"National Freight Network\", id: 1, checked: true },\n { label: \"Not on National Freight Network\", id: 0, checked: true },\n ],\n TrkTop100ODSelLnkMap: {\n odVisibility: false,\n showLayer: true,\n trank: 0,\n title: \"none\",\n },\n};\n// function handleToggleComplete(id) {\n// const newList = list.map((item) => {\n// if (item.id === id) {\n// const updatedItem = {\n// ...item,\n// isComplete: !item.isComplete,\n// };\n\n// return updatedItem;\n// }\n\n// return item;\n// });\n\n// setList(newList);\n// }\n\nconst RhinoQueryContext = createContext(null);\n\nconst queryReducer = (state, action) => {\n switch (action.type) {\n case \"enablePopUp\":\n return {\n ...state,\n popUpEnabled: true,\n };\n case \"disablePopUp\":\n return {\n ...state,\n popUpEnabled: false,\n };\n case \"setHighlightQuery\":\n return {\n ...state,\n highlightQuery: action.query,\n };\n case \"setUserSelection\":\n return {\n ...state,\n userSelection: action.selection,\n };\n case \"setUserSelectionTX100\":\n return {\n ...state,\n userSelectionTX100: action.selection,\n };\n case \"setFeatures\":\n return { ...state, features: action.payload.map((x) => x.properties) };\n case \"setutpMapLayersVisibility\":\n return {\n ...state,\n utpMapLayersVisibility: action.selection,\n };\n case \"setutpMapLayersCount\":\n return {\n ...state,\n utpMapLayersCount: action.selection,\n };\n case \"setroadSegmentCategoryIndex\":\n return {\n ...state,\n roadSegmentCategoryIndex: action.selection,\n };\n case \"setroadSegmentCategory\":\n return {\n ...state,\n roadSegmentCategory: action.selection,\n };\n case \"setselectedBaselayer\":\n return {\n ...state,\n selectedBaselayer: action.selection,\n };\n case \"setYearSelection\":\n return {\n ...state,\n yearSelection: action.selection,\n };\n case \"setContextLayersVisibility\":\n return {\n ...state,\n contextLayersVisibility: action.selection,\n };\n // contextLayersNumbFeatures: { odessaDistSandMines: 0, disposalWells: 0 },\n case \"setContextLayersNumbFeatures\":\n return {\n ...state,\n contextLayersNumbFeatures: action.selection,\n };\n case \"setTableColumns\":\n return {\n ...state,\n tableColumns: action.selection,\n };\n case \"setTrkTop100ODSelLnkMap\":\n return {\n ...state,\n TrkTop100ODSelLnkMap: action.selection,\n };\n\n default:\n throw new Error();\n }\n};\n\nconst RhinoQueryProvider = (props) => {\n const [state, dispatch] = useReducer(queryReducer, initialState);\n return (\n \n {props.children}\n \n );\n};\n\nexport { RhinoQueryContext, RhinoQueryProvider };\n","import rgbToHex from '../utils/rgbtohex'\nimport { scaleLinear } from \"d3-scale\";\nimport { interpolateTurbo } from \"d3-scale-chromatic\";\nimport { color as colorF } from \"d3-color\";\n\nexport default function colorScale(height, minValue, maxValue) {\n //const color = d3.color(d3.interpolateRdYlGn(linearScale(height)));\n //const color = d3.color(d3.interpolatePuRd(linearScale(height)));\n //const color = d3.color(d3.interpolateOrRd(linearScale(height)));\n\n const linearScale = scaleLinear()\n //.domain([minTempTPTI, maxTempTPTI])\n .domain([minValue, maxValue])\n .range([0, 1]);\n\n const color = colorF(interpolateTurbo(linearScale(height)));\n\n if (color) return rgbToHex(color.r, color.g, color.b);\n}\n","export default function rgbToHex(r, g, b) {\n return \"#\" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n}\n","import React, { useState, useContext, useEffect } from \"react\";\n\nimport { lighten, makeStyles } from \"@material-ui/core/styles\";\n\nimport List from \"@material-ui/core/List\";\nimport ListItem from \"@material-ui/core/ListItem\";\nimport ListItemText from \"@material-ui/core/ListItemText\";\n\nimport { RhinoQueryContext } from \"../map/RhinoQueryContext\";\n\nimport Typography from \"@material-ui/core/Typography\";\n\nimport colorScale from \"../utils/colorScale\";\n\nconst useStyles = makeStyles((theme) => ({\n roadSegmentSelector: {\n backgroundColor: theme.palette.background.paper,\n },\n wrapIcon: {\n //verticalAlign: 'middle',\n display: \"flex\",\n alignItems: \"center\",\n },\n roadwayLegendLine: {\n width: \"100%\",\n height: \"5px\",\n background: \"#4d4dff\",\n //float: 'left',\n marginLeft: \"5px\",\n marginRight: \"5px\",\n marginBottom: \"10px\",\n },\n\n roadwayLegendLine2: {\n width: \"100%\",\n height: \"20px\",\n //background: '#4d4dff',\n //float: 'left',\n marginLeft: \"5px\",\n marginRight: \"5px\",\n marginBottom: \"10px\",\n },\n roadwayLegendLine2Text: {\n //width: \"100%\",\n //height: '20px',\n //background: '#4d4dff',\n //float: 'left',\n //marginLeft: '5px',\n //marginRight: '5px',\n marginTop: \"10px\",\n },\n roadwayLegendDiv: {\n borderBottomStyle: \"solid\",\n borderWidth: \"1px\",\n borderColor: \"grey\",\n marginBottom: \"5px\",\n },\n}));\n\nexport default function RoadSegmentLegend(props) {\n const classes = useStyles();\n const [query, dispatch] = useContext(RhinoQueryContext);\n\n const [roadSegmentCategory, setroadSegmentCategory] = useState(\n //\"none\"\n query.roadSegmentCategory\n );\n\n const [anchorEl, setAnchorEl] = React.useState(null);\n\n const handleClickListItem = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const optionRHINO = [\n \"None (all single color)\",\n \"Annual Person-Hours of Truck Delay\",\n \"Truck Planning Time Index 95\",\n \"Truck Planning Time Index 80\",\n \"Truck Travel Time Index\",\n \"Truck Reference Speed\",\n \"Truck Congested Speed\",\n \"Truck AADT\",\n \"Daily Truck VMT\",\n ];\n const optionsAbbrevRHINO = [\n \"none\",\n \"tdly\",\n \"tpti95\",\n \"tpti80\",\n \"ttti\",\n \"trefspd\",\n \"tcongspd\",\n \"taadt\",\n \"tvmt\",\n ];\n\n const optionsTX100 = [\n \"None (all single color)\",\n \"Truck Top 100 Ranking\",\n \"Annual Person-Hours of Truck Delay\",\n \"Truck Delay per Mile\",\n \"Truck Travel Time Index\",\n \"Truck Planning Time Index\",\n \"Truck Congested Costs\",\n ];\n const optionsAbbrevTX100 = [\n \"none\",\n \"trank\",\n \"tdly\",\n \"tdmile\",\n \"ttci\",\n \"tpti\",\n \"tcost\",\n ];\n\n let options = [];\n // let optionsAbbrev = [];\n let featureType = \"tx100\";\n if (!query.features[0].top100id) featureType = \"rhino\";\n else featureType = \"tx100\";\n if (featureType === \"rhino\") {\n // if (props.type === \"rhino\") {\n options = optionRHINO;\n // optionsAbbrev = optionsAbbrevRHINO;\n } else {\n options = optionsTX100;\n // optionsAbbrev = optionsAbbrevTX100;\n }\n\n function LegendNone(props) {\n return (\n //
    \n // \n // \n // \n //
    \n \n \n \n );\n }\n\n function LegendOther(props) {\n return (\n //
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n {minValueText}\n \n \n {maxValueText}\n \n \n //
    \n );\n }\n\n function Legend(props) {\n // console.log(\"query.roadSegmentCategory\", query.roadSegmentCategory);\n if (query.roadSegmentCategory === \"none\") {\n // if (props.type === \"none\") {\n\n return ;\n } else {\n return ;\n }\n }\n\n const rdSettingsHdr = `Roadway Settings (${props.numFeatures} features) `;\n let minValueText = `${props.minValue}`;\n let maxValueText = `${props.maxValue}`;\n let maxValueOffset = `${100 -\n Math.round(props.maxValue.toString().length * 2.5)}%`;\n\n if (\n // optionsAbbrev[selectedIndex] === \"trank\" ||\n // optionsAbbrev[selectedIndex] === \"trefspd\" ||\n // optionsAbbrev[selectedIndex] === \"tcongspd\"\n query.roadSegmentCategory === \"trank\" ||\n query.roadSegmentCategory === \"trefspd\" ||\n query.roadSegmentCategory === \"tcongspd\"\n ) {\n minValueText = `${props.maxValue}`;\n maxValueText = `${props.minValue}`;\n maxValueOffset = `${100 -\n Math.round(props.minValue.toString().length * 2.5)}%`;\n }\n\n return (\n
    \n \n \n {/* const rdSettingsHdr = `Roadway Settings (${props.numFeatures}{\" \"}\n features) `; */}\n \n }\n // secondary={options[query.roadSegmentCategoryIndex]}\n style={{\n marginTop: \"1px\",\n paddingTop: \"1px\",\n marginBottom: \"1px\",\n paddingBottom: \"1px\",\n }}\n />\n \n \n\n \n
    \n );\n}\n","var _path, _path2;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgFlightYellow24Dp = function SvgFlightYellow24Dp(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n width: \"24px\",\n fill: \"#FFFF00\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h24v24H0V0z\",\n fill: \"#000000\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21 16v-2l-8-5V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5z\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgFlightYellow24Dp, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/flight_yellow_24dp.40a72523.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgFlightWhite24Dp = function SvgFlightWhite24Dp(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n width: \"24px\",\n fill: \"#FFFFFF\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h24v24H0V0z\",\n fill: \"#A9A9A9\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21 16v-2l-8-5V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5z\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgFlightWhite24Dp, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/flight_white_24dp.53549d9f.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgAnchorWhite24Dp = function SvgAnchorWhite24Dp(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n enableBackground: \"new 0 0 24 24\",\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n width: \"24px\",\n fill: \"#ffffff\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"rect\", {\n fill: \"#0000ff\",\n height: 24,\n width: 24\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17,15l1.55,1.55c-0.96,1.69-3.33,3.04-5.55,3.37V11h3V9h-3V7.82C14.16,7.4,15,6.3,15,5c0-1.65-1.35-3-3-3S9,3.35,9,5 c0,1.3,0.84,2.4,2,2.82V9H8v2h3v8.92c-2.22-0.33-4.59-1.68-5.55-3.37L7,15l-4-3v3c0,3.88,4.92,7,9,7s9-3.12,9-7v-3L17,15z M12,4 c0.55,0,1,0.45,1,1s-0.45,1-1,1s-1-0.45-1-1S11.45,4,12,4z\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgAnchorWhite24Dp, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/anchor_white_24dp.41782915.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _g2;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgConstructionWhiteOnRed24Dp = function SvgConstructionWhiteOnRed24Dp(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n enableBackground: \"new 0 0 24 24\",\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n width: \"24px\",\n fill: \"#FFFFFF\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"rect\", {\n fill: \"#7F0000\",\n height: 24,\n width: 24\n }))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"rect\", {\n height: 8.48,\n transform: \"matrix(0.7071 -0.7071 0.7071 0.7071 -6.8717 17.6255)\",\n width: 3,\n x: 16.34,\n y: 12.87\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.5,10c1.93,0,3.5-1.57,3.5-3.5c0-0.58-0.16-1.12-0.41-1.6l-2.7,2.7L16.4,6.11l2.7-2.7C18.62,3.16,18.08,3,17.5,3 C15.57,3,14,4.57,14,6.5c0,0.41,0.08,0.8,0.21,1.16l-1.85,1.85l-1.78-1.78l0.71-0.71L9.88,5.61L12,3.49 c-1.17-1.17-3.07-1.17-4.24,0L4.22,7.03l1.41,1.41H2.81L2.1,9.15l3.54,3.54l0.71-0.71V9.15l1.41,1.41l0.71-0.71l1.78,1.78 l-7.41,7.41l2.12,2.12L16.34,9.79C16.7,9.92,17.09,10,17.5,10z\"\n })))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgConstructionWhiteOnRed24Dp, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/construction_white_on_red_24dp.0c4db332.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _g2;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgConstructionWhiteOnPurple24Dp = function SvgConstructionWhiteOnPurple24Dp(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n enableBackground: \"new 0 0 24 24\",\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n width: \"24px\",\n fill: \"#FFFFFF\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"rect\", {\n fill: \"#6f00ff\",\n height: 24,\n width: 24\n }))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"rect\", {\n height: 8.48,\n transform: \"matrix(0.7071 -0.7071 0.7071 0.7071 -6.8717 17.6255)\",\n width: 3,\n x: 16.34,\n y: 12.87\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.5,10c1.93,0,3.5-1.57,3.5-3.5c0-0.58-0.16-1.12-0.41-1.6l-2.7,2.7L16.4,6.11l2.7-2.7C18.62,3.16,18.08,3,17.5,3 C15.57,3,14,4.57,14,6.5c0,0.41,0.08,0.8,0.21,1.16l-1.85,1.85l-1.78-1.78l0.71-0.71L9.88,5.61L12,3.49 c-1.17-1.17-3.07-1.17-4.24,0L4.22,7.03l1.41,1.41H2.81L2.1,9.15l3.54,3.54l0.71-0.71V9.15l1.41,1.41l0.71-0.71l1.78,1.78 l-7.41,7.41l2.12,2.12L16.34,9.79C16.7,9.92,17.09,10,17.5,10z\"\n })))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgConstructionWhiteOnPurple24Dp, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/construction_white_on_purple_24dp.1d7a6129.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _g2;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgConstructionWhiteOnGreen24Dp = function SvgConstructionWhiteOnGreen24Dp(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n enableBackground: \"new 0 0 24 24\",\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n width: \"24px\",\n fill: \"#FFFFFF\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"rect\", {\n fill: \"#009a00\",\n height: 24,\n width: 24\n }))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"rect\", {\n height: 8.48,\n transform: \"matrix(0.7071 -0.7071 0.7071 0.7071 -6.8717 17.6255)\",\n width: 3,\n x: 16.34,\n y: 12.87\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.5,10c1.93,0,3.5-1.57,3.5-3.5c0-0.58-0.16-1.12-0.41-1.6l-2.7,2.7L16.4,6.11l2.7-2.7C18.62,3.16,18.08,3,17.5,3 C15.57,3,14,4.57,14,6.5c0,0.41,0.08,0.8,0.21,1.16l-1.85,1.85l-1.78-1.78l0.71-0.71L9.88,5.61L12,3.49 c-1.17-1.17-3.07-1.17-4.24,0L4.22,7.03l1.41,1.41H2.81L2.1,9.15l3.54,3.54l0.71-0.71V9.15l1.41,1.41l0.71-0.71l1.78,1.78 l-7.41,7.41l2.12,2.12L16.34,9.79C16.7,9.92,17.09,10,17.5,10z\"\n })))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgConstructionWhiteOnGreen24Dp, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/construction_white_on_green_24dp.aee239b9.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _g2;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgConstructionWhiteOnBlue24Dp = function SvgConstructionWhiteOnBlue24Dp(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n enableBackground: \"new 0 0 24 24\",\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n width: \"24px\",\n fill: \"#FFFFFF\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"rect\", {\n fill: \"#4040ff\",\n height: 24,\n width: 24\n }))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"rect\", {\n height: 8.48,\n transform: \"matrix(0.7071 -0.7071 0.7071 0.7071 -6.8717 17.6255)\",\n width: 3,\n x: 16.34,\n y: 12.87\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.5,10c1.93,0,3.5-1.57,3.5-3.5c0-0.58-0.16-1.12-0.41-1.6l-2.7,2.7L16.4,6.11l2.7-2.7C18.62,3.16,18.08,3,17.5,3 C15.57,3,14,4.57,14,6.5c0,0.41,0.08,0.8,0.21,1.16l-1.85,1.85l-1.78-1.78l0.71-0.71L9.88,5.61L12,3.49 c-1.17-1.17-3.07-1.17-4.24,0L4.22,7.03l1.41,1.41H2.81L2.1,9.15l3.54,3.54l0.71-0.71V9.15l1.41,1.41l0.71-0.71l1.78,1.78 l-7.41,7.41l2.12,2.12L16.34,9.79C16.7,9.92,17.09,10,17.5,10z\"\n })))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgConstructionWhiteOnBlue24Dp, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/construction_white_on_blue_24dp.b95a2ddd.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgGreenBox24Dp = function SvgGreenBox24Dp(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n width: \"24px\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h24v24H0V0z\",\n fill: \"#11b461\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgGreenBox24Dp, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/green_box_24dp.a914347f.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgVioletBox24Dp = function SvgVioletBox24Dp(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n width: \"24px\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h24v24H0V0z\",\n fill: \"#8565c4\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgVioletBox24Dp, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/violet_box_24dp.0a519ce2.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgPinkBox24Dp = function SvgPinkBox24Dp(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n width: \"24px\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h24v24H0V0z\",\n fill: \"#c465a4\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgPinkBox24Dp, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/pink_box_24dp.237028c2.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgCircleBlack24Dp = function SvgCircleBlack24Dp(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n width: \"24px\",\n fill: \"#000000\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h24v24H0z\",\n fill: \"none\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2z\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgCircleBlack24Dp, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/circle_black_24dp.a9edd266.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgLocalParkingWhiteOnGreen24Dp = function SvgLocalParkingWhiteOnGreen24Dp(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n width: \"24px\",\n fill: \"#FFFFFF\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h24v24H0V0z\",\n fill: \"#009a00\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13 3H6v18h4v-6h3c3.31 0 6-2.69 6-6s-2.69-6-6-6zm.2 8H10V7h3.2c1.1 0 2 .9 2 2s-.9 2-2 2z\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgLocalParkingWhiteOnGreen24Dp, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/local_parking_white_on_green_24dp.29837c09.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState, useContext } from \"react\";\n\nimport { utpCategoryLookups, colorContextlayers } from \"../common/constants\";\n\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nimport Typography from \"@material-ui/core/Typography\";\n\n//import ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\nimport ExpandLessIcon from \"@material-ui/icons/ExpandLess\";\n\nimport { RhinoQueryContext } from \"./RhinoQueryContext\";\n\nimport {\n Accordion,\n AccordionSummary,\n AccordionDetails,\n} from \"@material-ui/core\";\n\nimport Tabs from \"@material-ui/core/Tabs\";\nimport Tab from \"@material-ui/core/Tab\";\n\nimport PropTypes from \"prop-types\";\nimport Box from \"@material-ui/core/Box\";\n\nimport SettingsIcon from \"@material-ui/icons/Settings\";\nimport InfoIcon from \"@material-ui/icons/Info\";\n\nimport RoadSegmentLegend from \"./RoadSegmentLegend\";\n\n// Year selection moved to \"Settings/Input Tab\"\n// import YearSelection from \"./rhinoYearSelection\";\n\n// import FiberManualRecordIcon from \"@material-ui/icons/FiberManualRecord\";\n\n// import Icon from \"@material-ui/core/Icon\";\n\nimport SvgIcon from \"@material-ui/core/SvgIcon\";\n\nimport { ReactComponent as CargoAirportIconSVG } from \"../assets/icons/flight_yellow_24dp.svg\";\nimport { ReactComponent as OtherAirportIconSVG } from \"../assets/icons/flight_white_24dp.svg\";\nimport { ReactComponent as PortsIconSVG } from \"../assets/icons/anchor_white_24dp.svg\";\nimport { ReactComponent as UtpIconSVG1 } from \"../assets/icons/construction_white_on_red_24dp.svg\";\nimport { ReactComponent as UtpIconSVG2 } from \"../assets/icons/construction_white_on_purple_24dp.svg\";\nimport { ReactComponent as UtpIconSVG3 } from \"../assets/icons/construction_white_on_green_24dp.svg\";\nimport { ReactComponent as UtpIconSVG4 } from \"../assets/icons/construction_white_on_blue_24dp.svg\";\nimport { ReactComponent as CommercialBorderCrossingIconSVG } from \"../assets/icons/green_box_24dp.svg\";\nimport { ReactComponent as NonCommercialBorderCrossingIconSVG } from \"../assets/icons/violet_box_24dp.svg\";\nimport { ReactComponent as RailBorderCrossingIconSVG } from \"../assets/icons/pink_box_24dp.svg\";\nimport { ReactComponent as SandMinesIconSVG } from \"../assets/icons/circle_black_24dp.svg\";\nimport { ReactComponent as DisposalWellsIconSVG } from \"../assets/icons/circle_black_24dp.svg\";\nimport { ReactComponent as TruckParkingIconSVG } from \"../assets/icons/local_parking_white_on_green_24dp.svg\";\n\nfunction TabPanel(props) {\n const { children, value, index, ...other } = props;\n\n return (\n
    \n );\n}\n\nTabPanel.propTypes = {\n children: PropTypes.node,\n index: PropTypes.any.isRequired,\n value: PropTypes.any.isRequired,\n};\n\nfunction a11yProps(index) {\n return {\n id: `scrollable-prevent-tab-${index}`,\n \"aria-controls\": `scrollable-prevent-tabpanel-${index}`,\n };\n}\n\nconst useStyles = makeStyles((theme) => ({\n roadSegmentSelector: {\n backgroundColor: theme.palette.background.paper,\n },\n wrapIcon: {\n //verticalAlign: 'middle',\n display: \"flex\",\n alignItems: \"center\",\n },\n roadwayLegendLine: {\n width: \"100%\",\n height: \"5px\",\n background: \"#4d4dff\",\n //float: 'left',\n marginLeft: \"5px\",\n marginRight: \"5px\",\n marginBottom: \"10px\",\n },\n\n roadwayLegendLine2: {\n width: \"100%\",\n height: \"20px\",\n //background: '#4d4dff',\n //float: 'left',\n marginLeft: \"5px\",\n marginRight: \"5px\",\n marginBottom: \"10px\",\n },\n roadwayLegendLine1Text: {\n marginBottom: \"2px\",\n paddingBottom: \"2px\",\n height: \"20px\",\n },\n roadwayLegendLine2Text: {\n //width: \"100%\",\n //height: '20px',\n //background: '#4d4dff',\n //float: 'left',\n //marginLeft: '5px',\n //marginRight: '5px',\n marginTop: \"0.1px\",\n paddingTop: \"0.1px\",\n marginLeft: \"25px\",\n },\n roadwayLegendDiv: {\n borderBottomStyle: \"solid\",\n borderWidth: \"1px\",\n borderColor: \"grey\",\n marginBottom: \"5px\",\n },\n tabHeader: {\n borderBottomStyle: \"solid\",\n borderWidth: \"1px\",\n borderColor: \"grey\",\n marginBottom: \"5px\",\n display: \"block\",\n },\n icon1: {\n backgroundColor: \"#7F0000\",\n width: \"1.25rem\",\n height: \"1.25rem\",\n display: \"block\",\n // left: \"-0.25rem\",\n // top: \"-0.25rem\",\n // position: \"relative\",\n // borderRadius: \"3rem 3rem 0\",\n // transform: \"rotate(45deg)\",\n // border: \"1px solid #FFFFFF\",\n },\n icon2: {\n backgroundColor: \"#6f00ff\",\n width: \"1.25rem\",\n height: \"1.25rem\",\n display: \"block\",\n // left: \"-0.25rem\",\n // top: \"-0.25rem\",\n position: \"relative\",\n // borderRadius: \"3rem 3rem 0\",\n // transform: \"rotate(45deg)\",\n // border: \"1px solid #FFFFFF\",\n },\n icon3: {\n backgroundColor: \"#009a00\",\n width: \"1.25rem\",\n height: \"1.25rem\",\n display: \"block\",\n // left: \"-0.25rem\",\n // top: \"-0.25rem\",\n position: \"relative\",\n // borderRadius: \"3rem 3rem 0\",\n // transform: \"rotate(45deg)\",\n // border: \"1px solid #FFFFFF\",\n },\n icon4: {\n backgroundColor: \"#4040ff\",\n width: \"1.25rem\",\n height: \"1.25rem\",\n display: \"block\",\n // left: \"-0.25rem\",\n // top: \"-0.25rem\",\n position: \"relative\",\n // borderRadius: \"3rem 3rem 0\",\n // transform: \"rotate(45deg)\",\n // border: \"1px solid #FFFFFF\",\n },\n iconCommercialBorderCrossing: {\n backgroundColor: \"#11b461\",\n width: \"0.75rem\",\n height: \"0.755rem\",\n display: \"block\",\n // left: \"-0.25rem\",\n // top: \"-0.25rem\",\n position: \"relative\",\n // borderRadius: \"3rem 3rem 0\",\n // transform: \"rotate(45deg)\",\n // border: \"1px solid #FFFFFF\",\n },\n iconNonCommercialBorderCrossing: {\n backgroundColor: \"#8565c4\",\n width: \"0.75rem\",\n height: \"0.755rem\",\n display: \"block\",\n // left: \"-0.25rem\",\n // top: \"-0.25rem\",\n position: \"relative\",\n // borderRadius: \"3rem 3rem 0\",\n // transform: \"rotate(45deg)\",\n // border: \"1px solid #FFFFFF\",\n },\n iconRailBorderCrossing: {\n backgroundColor: \"#c465a4\",\n width: \"0.75rem\",\n height: \"0.755rem\",\n display: \"block\",\n // left: \"-0.25rem\",\n // top: \"-0.25rem\",\n position: \"relative\",\n // borderRadius: \"3rem 3rem 0\",\n // transform: \"rotate(45deg)\",\n // border: \"1px solid #FFFFFF\",\n },\n iconPorts: {\n backgroundColor: \"#0000ff\",\n width: \"1.25rem\",\n height: \"1.25rem\",\n display: \"block\",\n // left: \"-0.25rem\",\n // top: \"-0.25rem\",\n position: \"relative\",\n // borderRadius: \"3rem 3rem 0\",\n // transform: \"rotate(45deg)\",\n // border: \"1px solid #FFFFFF\",\n },\n iconCargoAirports: {\n backgroundColor: \"#000000\",\n width: \"1.25rem\",\n height: \"1.25rem\",\n display: \"block\",\n //left: \"-0.25rem\",\n //top: \"-0.25rem\",\n position: \"relative\",\n // borderRadius: \"3rem 3rem 0\",\n // transform: \"rotate(45deg)\",\n // border: \"1px solid #FFFFFF\",\n },\n iconAirports: {\n backgroundColor: \"#A9A9A9\",\n width: \"1.25rem\",\n height: \"1.25rem\",\n display: \"block\",\n //left: \"-0.25rem\",\n //top: \"-0.25rem\",\n position: \"relative\",\n // borderRadius: \"3rem 3rem 0\",\n // transform: \"rotate(45deg)\",\n // border: \"1px solid #FFFFFF\",\n },\n container: {\n width: \"475px\",\n },\n titleRow: {\n width: \"100%\",\n // height: \"20px\",\n marginTop: \"10px\",\n },\n titleLine: {\n marginTop: \"5px\",\n flexGrow: 1,\n textAlign: \"center\",\n },\n}));\n\nexport default function MapTabs(props) {\n const classes = useStyles();\n const [query] = useContext(RhinoQueryContext);\n const { utpMapLayersCount } = props;\n\n const [tabValue, settabValue] = React.useState(0);\n const [expanded, setExpanded] = useState(false);\n const handleChangeAccordion = (event) => {\n setExpanded(!expanded);\n };\n\n const handleClickTab = (Event) => {\n if (expanded === true) {\n Event.stopPropagation();\n } else {\n setExpanded(true);\n }\n };\n\n const handleChangeTabs = (event, newValue) => {\n event.stopPropagation();\n settabValue(newValue);\n setExpanded(true);\n };\n\n // const iconAirports = (\n // \n // \n // {\"flight\"}\n // \n // \n\n // // \n // // {\"construction\"}\n // // \n // );\n\n // const iconCargoAirports = (\n // \n // \n // {\"flight\"}\n // \n // \n\n // // \n // // {\"construction\"}\n // // \n // );\n\n // const iconMarkupPorts = (\n // \n // \n // {\"anchor\"}\n // \n // \n\n // // \n // // {\"construction\"}\n // // \n // );\n\n // const iconMarkupRailBorderCrossing = (\n // \n // \n // {\"\"}\n // \n // \n\n // // \n // // {\"construction\"}\n // // \n // );\n\n // const iconMarkupNonCommercialBorderCrossing = (\n // \n // \n // {\"\"}\n // \n // \n\n // // \n // // {\"construction\"}\n // // \n // );\n\n // const iconMarkupCommercialBorderCrossing = (\n // \n // \n // {\"\"}\n // \n // \n\n // // \n // // {\"construction\"}\n // // \n // );\n\n // const iconMarkup1 = (\n // \n // \n // {\"construction\"}\n // \n // \n\n // // \n // // {\"construction\"}\n // // \n // );\n // const iconMarkup2 = (\n // \n // \n // {\"construction\"}\n // \n // \n // // \n // // {\"construction\"}\n // // \n // );\n // const iconMarkup3 = (\n // \n // \n // {\"construction\"}\n // \n // \n // // \n // // {\"construction\"}\n // // \n // );\n // const iconMarkup4 = (\n // \n // \n // {\"construction\"}\n // \n // \n // // \n // // {\"construction\"}\n // // \n // );\n\n const addLegendUtp = (props) => {\n let checkedVariable = utpCategoryLookups.find(\n (x) => x[\"category\"] === props.name\n )[\"checkedVariable\"];\n let checked = query.utpMapLayersVisibility[checkedVariable]; //utpLayersChecked[checkedVariable];\n // let markerIcon = utpCategoryLookups.find(\n // (x) => x[\"category\"] === props.name\n // )[\"markerIcon\"];\n let nameDesc = utpCategoryLookups.find((x) => x[\"category\"] === props.name)[\n \"nameDesc\"\n ];\n // let numrecs = utpMapLayersCount[checkedVariable];\n let numrecs = query.utpMapLayersCount[checkedVariable];\n //if (utpData.data[props.name] !== undefined) numrecs = utpData.data[props.name].features.length\n let newMarkerIcon =\n props.name === \"category0\"\n ? UtpIconSVG1\n : props.name === \"category1\"\n ? UtpIconSVG2\n : props.name === \"category2\"\n ? UtpIconSVG3\n : UtpIconSVG4;\n if (checked === true) {\n return (\n \n {/* {\" \"}\n {nameDesc} ({numrecs.toLocaleString()} features) */}\n {/* \n {\"construction\"}\n */}\n {/* {newMarkerIcon} */}\n \n {nameDesc} ({numrecs.toLocaleString()} features)\n \n );\n }\n return \"\";\n };\n\n return (\n
    \n \n {/*} className={classes.accordSummary}>*/}\n }\n className={classes.accordSummary}\n >\n {\" \"}\n \n {props.type !== \"tx100\" && (\n
    \n \n Layer: {props.statusGuide[1]}\n \n
    \n \n Reporting Year:{\" \"}\n {query.yearSelection +\n \" (\" +\n (query.yearSelection - 1) +\n \" data)\"}\n \n
    \n {query.yearSelection === 2021 && (\n // \n // Note: 2021 reporting year (2020 data) was impacted by the\n // COVID-19 pandemic and is not reflective of a typical year.\n // \n \n Note: This year of data was impacted by the\n COVID-19 pandemic and is not reflective of a typical year.\n \n )}\n
    \n )}\n {props.type === \"tx100\" && (\n
    \n \n Layer: Texas 100 - {props.statusGuide[1]}\n \n
    \n \n Reporting Year:{\" \"}\n {query.yearSelection +\n \" (\" +\n (query.yearSelection - 1) +\n \" data)\"}\n \n
    \n {query.yearSelection === 2021 && (\n // \n // Note: 2021 reporting year (2020 data) was impacted by the\n // COVID-19 pandemic and is not reflective of a typical year.\n // \n \n Note: This year of data was impacted by the\n COVID-19 pandemic and is not reflective of a typical year.\n \n )}\n
    \n )}\n {/* \n Click on a road segment to add to road segment table.\n */}\n
    \n \n }\n className={classes.accordSummary}\n >\n handleClickTab(event)} //event.stopPropagation()}\n TabIndicatorProps={{\n style: {\n backgroundColor: \"#CC7B29\",\n height: \"0.5vh\",\n },\n }}\n >\n \n }\n label={\n \n Quick Info/Hover\n \n }\n aria-label=\"info\"\n {...a11yProps(0)}\n onClick={(event) => handleClickTab(event)}\n style={{ paddingTop: \"0px\", marginTop: \"0px\" }}\n />\n \n }\n label={\n \n Legend\n \n }\n aria-label=\"settings\"\n {...a11yProps(1)}\n onClick={(event) => handleClickTab(event)}\n style={{ paddingTop: \"0px\", marginTop: \"0px\" }}\n />\n \n \n \n \n
    \n \n \n {/* // Year selection moved to \"Settings/Input Tab\"\n {props.type !== \"tx100\" && (\n
    \n \n
    \n )} */}\n {/*
    */}\n \n {/*numFeatures={rhino.features.length.toLocaleString()} minValue={minTrkCatValue} maxValue={maxTrkCatValue} />*/}\n {/* \n {[\"category0\", \"category1\", \"category2\", \"category3\"].map(\n (name) => {\n return addLegendUtp({ name: name });\n }\n )}\n */}\n {[\"category0\", \"category1\", \"category2\", \"category3\"].map(\n (name) => {\n return addLegendUtp({ name: name });\n }\n )}\n {query.contextLayersVisibility.odessaDistSandMines && (\n \n {/* */}\n \n {\"Odessa District Sand Mines\"} (\n {query.contextLayersNumbFeatures.odessaDistSandMines} features)\n \n )}\n {query.contextLayersVisibility.disposalWells && (\n \n {/* */}\n \n {\"Disposal Wells\"} (\n {query.contextLayersNumbFeatures.disposalWells} features)\n \n )}\n {query.contextLayersVisibility.commercialBorderCrossings && (\n \n {/* {iconMarkupCommercialBorderCrossing} */}\n \n {\"Border Crossings - Commercial\"} (\n {query.contextLayersNumbFeatures.commercialBorderCrossings}{\" \"}\n features)\n \n )}\n {query.contextLayersVisibility.nonCommercialBorderCrossings && (\n \n {/* {iconMarkupNonCommercialBorderCrossing} */}\n \n {\"Border Crossings - Non-Commercial\"} (\n {query.contextLayersNumbFeatures.nonCommercialBorderCrossings}{\" \"}\n features)\n \n )}{\" \"}\n {query.contextLayersVisibility.railBorderCrossings && (\n \n {/* {iconMarkupRailBorderCrossing} */}\n \n {\"Border Crossings - Rail Only\"} (\n {query.contextLayersNumbFeatures.railBorderCrossings} features)\n \n )}{\" \"}\n {query.contextLayersVisibility.portsLayer && (\n
    \n \n {/* {iconMarkupPorts} */}\n \n {/* {\"Maritime Ports, Inland ports, International Ports of Entry\"} ( */}\n {\"Maritime Ports, Inland ports\"}\n \n \n {/* */}\n {\"International Ports of Entry\"} (\n {query.contextLayersNumbFeatures.portsLayer} features)\n \n
    \n )}{\" \"}\n {query.contextLayersVisibility.cargoAirports && (\n \n {/* {iconCargoAirports} */}\n \n {\"Cargo Airports\"} (\n {query.contextLayersNumbFeatures.cargoAirports} features)\n \n )}{\" \"}\n {query.contextLayersVisibility.airports && (\n \n {/* {iconAirports} */}\n \n {\"Other Major Airports\"} (\n {query.contextLayersNumbFeatures.airports} features)\n \n )}{\" \"}\n {query.contextLayersVisibility.truckParkingLayer && (\n \n {/* {iconAirports} */}\n \n {\"Truck Parking\"} (\n {query.contextLayersNumbFeatures.truckParkingLayer} features)\n \n )}{\" \"}\n \n \n \n
    \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport axios from \"axios\";\nimport { GeoJSON, Tooltip, LayerGroup } from \"react-leaflet\";\nimport { RhinoQueryContext } from \"../RhinoQueryContext\";\nimport {\n API_ROOT,\n COLOR_RHINO,\n colorContextlayers,\n} from \"../../common/constants\";\nimport L from \"leaflet\";\n\nfunction SandMinesLayer(props) {\n const [query, dispatch] = useContext(RhinoQueryContext);\n\n const [sandMinesData, setSandMinesData] = useState({\n type: \"FeatureCollection\",\n features: [],\n });\n\n useEffect(() => {\n const fetchMapData = async () => {\n try {\n if (\n query.contextLayersVisibility.odessaDistSandMines &&\n sandMinesData.features.length === 0\n ) {\n //if (query.contextLayersVisibility.odessaDistSandMines) {\n // const response = await axios.get(\n // `${API_ROOT}` + \"/odessa_dist_sand_mines/\"\n // );\n const response = await axios.get(\n `${API_ROOT}` + \"/poi/getOdessaDistSandMines/\"\n );\n let f = response.data.features;\n let fc = f.map((obj) => {\n obj.color = colorContextlayers.sandMines;\n return obj;\n });\n setSandMinesData({ type: \"FeatureCollection\", features: fc });\n\n let numFeaturesContext = query.contextLayersNumbFeatures;\n numFeaturesContext.odessaDistSandMines = fc.length;\n dispatch({\n type: \"setContextLayersNumbFeatures\",\n selection: numFeaturesContext,\n });\n }\n } catch (e) {\n console.log(e);\n }\n };\n fetchMapData();\n }, [query.contextLayersVisibility]);\n\n const pointToLayer = (feature, latlng) => {\n return L.circleMarker(latlng, null);\n };\n\n /* @see See https://jsfiddle.net/thbh99nu/2/ */\n const onEachFeature = (feature, layer) => {\n layer.on({\n mouseover: handleMouseOver.bind(null, feature),\n mouseout: handleMouseOut.bind(null, feature),\n //click: handleClick.bind(null, feature, layer)\n });\n };\n\n /* Highlights on mouseOver */\n const handleMouseOver = (feature, e) => {\n const layer = e.target;\n feature.color = COLOR_RHINO.selected;\n layer.setStyle({\n //radius: 5,\n fillColor: feature.color, //\"#ff7800\",\n color: feature.color, //\"#000\",\n });\n };\n\n /* Reset default style on mouseOut */\n const handleMouseOut = (feature, e) => {\n const layer = e.target;\n feature.color = colorContextlayers.sandMines;\n layer.setStyle({\n fillColor: feature.color, //\"#ff7800\",\n color: feature.color, //\"#000\",\n });\n };\n\n return (\n \n {query.contextLayersVisibility.odessaDistSandMines &&\n sandMinesData.features.length > 0 && ( //sandMinesData.features.length > 0 && (\n \n {\"Sand Mine\"}\n \n )}\n \n );\n}\n\nexport default SandMinesLayer;\n","import React, { useState, useEffect, useContext } from \"react\";\nimport axios from \"axios\";\nimport { GeoJSON, Tooltip, LayerGroup } from \"react-leaflet\";\nimport { RhinoQueryContext } from \"../RhinoQueryContext\";\nimport {\n API_ROOT,\n COLOR_RHINO,\n colorContextlayers,\n} from \"../../common/constants\";\nimport L from \"leaflet\";\n\nfunction DisposalWellsLayer(props) {\n const [query, dispatch] = useContext(RhinoQueryContext);\n\n const [disposalWellsData, setdisposalWellsData] = useState({\n type: \"FeatureCollection\",\n features: [],\n });\n\n useEffect(() => {\n const fetchMapData = async () => {\n try {\n if (\n query.contextLayersVisibility.disposalWells &&\n disposalWellsData.features.length === 0\n ) {\n //if (query.contextLayersVisibility.disposalWells) {\n // const response = await axios.get(`${API_ROOT}` + \"/disposal_wells/\");\n const response = await axios.get(\n `${API_ROOT}` + \"/poi/getOilDisposalWells\"\n );\n let f = response.data.features;\n let fc = f.map((obj) => {\n obj.color = colorContextlayers.disposalWells; //COLOR_RHINO.bucket6;\n return obj;\n });\n setdisposalWellsData({ type: \"FeatureCollection\", features: fc });\n\n let numFeaturesContext = query.contextLayersNumbFeatures;\n numFeaturesContext.disposalWells = fc.length;\n dispatch({\n type: \"setContextLayersNumbFeatures\",\n selection: numFeaturesContext,\n });\n }\n } catch (e) {\n console.log(e);\n }\n };\n fetchMapData();\n }, [query.contextLayersVisibility]);\n\n const pointToLayer = (feature, latlng) => {\n return L.circleMarker(latlng, null);\n };\n\n /* @see See https://jsfiddle.net/thbh99nu/2/ */\n const onEachFeature = (feature, layer) => {\n layer.on({\n mouseover: handleMouseOver.bind(null, feature),\n mouseout: handleMouseOut.bind(null, feature),\n //click: handleClick.bind(null, feature, layer)\n });\n };\n\n /* Highlights on mouseOver */\n const handleMouseOver = (feature, e) => {\n const layer = e.target;\n feature.color = COLOR_RHINO.selected;\n layer.setStyle({\n //radius: 5,\n fillColor: feature.color, //\"#ff7800\",\n color: feature.color, //\"#000\",\n });\n };\n\n /* Reset default style on mouseOut */\n const handleMouseOut = (feature, e) => {\n const layer = e.target;\n feature.color = colorContextlayers.disposalWells;\n layer.setStyle({\n fillColor: feature.color, //\"#ff7800\",\n color: feature.color, //\"#000\",\n });\n };\n\n return (\n \n {query.contextLayersVisibility.disposalWells &&\n disposalWellsData.features.length > 0 && ( //disposalWellsData.features.length > 0 && (\n \n {\"Disposal Well\"}\n \n )}\n \n );\n}\n\nexport default DisposalWellsLayer;\n","import React, { useState, useEffect, useContext } from \"react\";\nimport axios from \"axios\";\nimport { GeoJSON, LayerGroup } from \"react-leaflet\";\nimport { RhinoQueryContext } from \"../RhinoQueryContext\";\nimport { API_ROOT, COLOR_RHINO } from \"../../common/constants\";\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nimport { LineLayer, GeoJsonLayer } from \"@deck.gl/layers\";\n\nconst useStyles = makeStyles((theme) => ({\n heading: {\n fontSize: theme.typography.pxToRem(15),\n fontWeight: theme.typography.fontWeightBold,\n },\n legendContainer: {\n background: \"white\",\n padding: \"5px\",\n },\n legendIcon: {\n //height: \"5%\",\n //width: \"auto\",\n //border: \"1px\",\n marginRight: \"5px\",\n },\n wrapIcon: {\n //verticalAlign: 'middle',\n display: \"flex\",\n alignItems: \"center\",\n },\n roadwayLegendLine: {\n width: \"25px\",\n height: \"5px\",\n background: \"#4d4dff\",\n //float: 'left',\n marginRight: \"5px\",\n },\n}));\n\n//props.route\n\nexport default function CountyBoundaryLayer(props) {\n const [query, dispatch] = useContext(RhinoQueryContext);\n const classes = useStyles();\n //const { utpData, utpCategoryLookups } = props;\n const { countyList, layerRef, mapType } = props;\n\n const [countyBoundaries, setCountyBoundaries] = useState({\n type: \"FeatureCollection\",\n features: [],\n });\n\n //useEffect(() => {\n // const fetchCountyBoundaries = async () => {\n // try {\n // if (props.counties.length > 0) {\n // const dataUrl = `${API_ROOT}/counties/${props.counties.join(\n // \",\"\n // )}/boundary/`;\n // const response = await axios.get(dataUrl);\n // setCountyBoundaries(response.data);\n // /* console.log(response.data);*/\n // }\n // } catch (e) {\n // console.log(e);\n // }\n // };\n // fetchCountyBoundaries();\n //}, [props.counties]);\n\n useEffect(() => {\n const fetchCountyBoundaries = async () => {\n try {\n //http://localhost:5000/api/tcat_boundaries/findCountyBoundariesByCountyNumber/10,11,23\n // const dataUrlCnty = `${API_ROOT}/tcat_boundaries/findCountyBoundariesByCountyNumber/${countyList.join(\n // \",\"\n // )}`;\n // const responseCnty = await axios.get(dataUrlCnty);\n // setCountyBoundaries(responseCnty.data.jsonb_build_object);\n const dataUrl = `${API_ROOT}/boundaries/findByCounty?counties=${countyList.join(\n \",\"\n )}`;\n const responseCnty = await axios.get(dataUrl);\n setCountyBoundaries(responseCnty.data);\n } catch (e) {\n console.log(e);\n }\n };\n fetchCountyBoundaries();\n }, [countyList]);\n useEffect(() => {\n if (layerRef.current) {\n layerRef.current.leafletElement.clearLayers().addData(countyBoundaries);\n }\n }, [countyList]);\n if (mapType === \"leaflet\") {\n const onEachFeature = (feature, layer) => {\n // let tooltipText = `\n //
    \n //

    ${feature.properties.cnty_nm} County

    \n //

    FIPS: ${feature.properties.cnty_fips}

    \n //
    \n // `;\n let tooltipText = `\n
    \n
    \n
    Counties Layer
    \n
    \n

    ${feature.properties.cnty_nm} County

    \n

    County Code: ${feature.properties.cnty_nbr}

    \n

    County FIPS: ${feature.properties.cnty_fips}

    \n

    TxDOT District: ${feature.properties.dist_nm}

    \n
    \n `;\n return layer.bindTooltip(tooltipText);\n // let popupText = `\n //
    \n //
    \n //

    Counties

    \n //
    \n //

    Name: ${feature.properties.COUNTY}

    \n //

    County Code: ${feature.properties.COUNTYNUM}

    \n //

    County FIPS: ${feature.properties.COUNTY_FIP}

    \n //

    District: ${feature.properties.DISTRICT}

    \n //
    \n // `;\n // return layer.bindTooltip(tooltipText).bindPopup(popupText);\n };\n\n return (\n \n {query.contextLayersVisibility.countyBoundaries &&\n countyBoundaries.features.length > 0 && (\n // \n \n // \n )}\n \n );\n }\n if (mapType === \"deckGL\") {\n return (\n {\n // setActivePopup(true);\n // setSelectedPoint(d);\n // }}\n // onHover={(d, event) => {\n // if (d.object !== undefined && statusGuide[0] === \"TX100\")\n // setInfo(tx100Info(d.object.properties));\n // if (d.object !== undefined && statusGuide[0] !== \"TX100\")\n // setInfo(rhinoInfo(d.object.properties));\n // }}\n autoHighlight={true}\n highlightColor={COLOR_RHINO.selected\n .match(/[0-9a-f]{2}/g)\n .map((x) => parseInt(x, 16))}\n getLineColor={\"#ffa305\".selected\n .match(/[0-9a-f]{2}/g)\n .map((x) => parseInt(x, 16))}\n getFillColor={\"#ffa305\".selected\n .match(/[0-9a-f]{2}/g)\n .map((x) => parseInt(x, 16))}\n // getFillColor={(d) => {\n // if (\n // selectedPoint &&\n // d.properties.top100id === selectedPoint.object.properties.top100id\n // )\n // return COLOR_RHINO.selected\n // .match(/[0-9a-f]{2}/g)\n // .map((x) => parseInt(x, 16));\n\n // return COLOR_RHINO.normal\n // .match(/[0-9a-f]{2}/g)\n // .map((x) => parseInt(x, 16));\n // }}\n />\n );\n }\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport axios from \"axios\";\nimport { GeoJSON, LayerGroup } from \"react-leaflet\";\nimport { RhinoQueryContext } from \"../RhinoQueryContext\";\n\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n heading: {\n fontSize: theme.typography.pxToRem(15),\n fontWeight: theme.typography.fontWeightBold,\n },\n legendContainer: {\n background: \"white\",\n padding: \"5px\",\n },\n legendIcon: {\n //height: \"5%\",\n //width: \"auto\",\n //border: \"1px\",\n marginRight: \"5px\",\n },\n wrapIcon: {\n //verticalAlign: 'middle',\n display: \"flex\",\n alignItems: \"center\",\n },\n roadwayLegendLine: {\n width: \"25px\",\n height: \"5px\",\n background: \"#4d4dff\",\n //float: 'left',\n marginRight: \"5px\",\n },\n}));\n\n//props.route\n\nexport default function DistrictBoundaryLayer(props) {\n const [query, dispatch] = useContext(RhinoQueryContext);\n const classes = useStyles();\n //const { utpData, utpCategoryLookups } = props;\n const { layerRef } = props;\n\n const [districtBoundaries, setDistrictBoundaries] = useState({\n type: \"FeatureCollection\",\n features: [],\n });\n\n //useEffect(() => {\n // const fetchCountyBoundaries = async () => {\n // try {\n // if (props.counties.length > 0) {\n // const dataUrl = `${API_ROOT}/counties/${props.counties.join(\n // \",\"\n // )}/boundary/`;\n // const response = await axios.get(dataUrl);\n // setCountyBoundaries(response.data);\n // /* console.log(response.data);*/\n // }\n // } catch (e) {\n // console.log(e);\n // }\n // };\n // fetchCountyBoundaries();\n //}, [props.counties]);\n\n useEffect(() => {\n const fetchDistrictBoundaries = async () => {\n try {\n //http://localhost:5000/api/tcat_boundaries/findCountyBoundariesByCountyNumber/10,11,23\n // const dataUrlCnty = `${API_ROOT}/tcat_boundaries/findCountyBoundariesByCountyNumber/${countyList.join(\n // \",\"\n // )}`;\n // const responseCnty = await axios.get(dataUrlCnty);\n // setCountyBoundaries(responseCnty.data.jsonb_build_object);\n if (\n query.contextLayersVisibility.districtBoundaries &&\n districtBoundaries.features.length === 0\n ) {\n const dataUrl =\n \"https://services.arcgis.com/KTcxiTD9dsQw4r7Z/arcgis/rest/services/TxDOT_Districts/FeatureServer/0/query?where=1%3D1&outFields=OBJECTID,DIST_ABRVN,DIST_NBR,DIST_NM&outSR=4326&f=geojson\";\n const response = await axios.get(dataUrl);\n setDistrictBoundaries(response.data);\n }\n } catch (e) {\n console.log(e);\n }\n };\n fetchDistrictBoundaries();\n }, [query.contextLayersVisibility.districtBoundaries]);\n\n const onEachFeature = (feature, layer) => {\n // let tooltipText = `\n //
    \n //

    ${feature.properties.cnty_nm} County

    \n //

    FIPS: ${feature.properties.cnty_fips}

    \n //
    \n // `;\n let tooltipText = `\n
    \n
    \n
    TxDOT Districts Layer
    \n
    \n

    ${feature.properties.DIST_NM} District

    \n

    District Number: ${feature.properties.DIST_NBR}

    \n

    District Abbreviation: ${feature.properties.DIST_ABRVN}

    \n
    \n `;\n return layer.bindTooltip(tooltipText);\n // let popupText = `\n //
    \n //
    \n //

    Counties

    \n //
    \n //

    Name: ${feature.properties.COUNTY}

    \n //

    County Code: ${feature.properties.COUNTYNUM}

    \n //

    County FIPS: ${feature.properties.COUNTY_FIP}

    \n //

    District: ${feature.properties.DISTRICT}

    \n //
    \n // `;\n // return layer.bindTooltip(tooltipText).bindPopup(popupText);\n };\n\n useEffect(() => {\n if (layerRef.current) {\n layerRef.current.leafletElement.clearLayers().addData(districtBoundaries);\n }\n }, [districtBoundaries]);\n\n return (\n \n {query.contextLayersVisibility.districtBoundaries &&\n districtBoundaries.features.length > 0 && (\n // \n \n // \n )}\n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport axios from \"axios\";\nimport { GeoJSON, LayerGroup } from \"react-leaflet\";\nimport { RhinoQueryContext } from \"../RhinoQueryContext\";\n\nimport L from \"leaflet\";\nimport { makeStyles } from \"@material-ui/core/styles\";\n// import Icon from \"@material-ui/core/Icon\";\n// import { renderToStaticMarkup } from \"react-dom/server\";\n// import { divIcon } from \"leaflet\";\n\nimport customMarkerIconSvg from \"../../assets/icons/green_box_24dp.svg\";\n\nconst useStyles = makeStyles((theme) => ({\n heading: {\n fontSize: theme.typography.pxToRem(15),\n fontWeight: theme.typography.fontWeightBold,\n },\n legendContainer: {\n background: \"white\",\n padding: \"5px\",\n },\n legendIcon: {\n //height: \"5%\",\n //width: \"auto\",\n //border: \"1px\",\n marginRight: \"5px\",\n },\n wrapIcon: {\n //verticalAlign: 'middle',\n display: \"flex\",\n alignItems: \"center\",\n },\n roadwayLegendLine: {\n width: \"25px\",\n height: \"5px\",\n background: \"#4d4dff\",\n //float: 'left',\n marginRight: \"5px\",\n },\n icon: {\n backgroundColor: \"#11b461\",\n width: \"0.75rem\",\n height: \"0.755rem\",\n display: \"block\",\n // left: \"-0.25rem\",\n // top: \"-0.25rem\",\n position: \"relative\",\n // borderRadius: \"3rem 3rem 0\",\n // transform: \"rotate(45deg)\",\n // border: \"1px solid #FFFFFF\",\n },\n}));\n\nexport default function CommercialBorderCrossingLayer(props) {\n const [query, dispatch] = useContext(RhinoQueryContext);\n const classes = useStyles();\n const { layerRef } = props;\n\n // const iconMarkup = renderToStaticMarkup(\n // \n // \n // {/* change_history */}\n // \n // \n // );\n // const customMarkerIcon = divIcon({\n // html: iconMarkup,\n // });\n\n const customMarkerIcon = new L.icon({\n iconUrl: customMarkerIconSvg,\n iconRetinaUrl: customMarkerIconSvg,\n //iconAnchor: [20, 40],\n //popupAnchor: [0, -35],\n iconSize: [10, 10],\n //className: classes.icon,\n });\n\n const [featureData, setFeatureData] = useState({\n type: \"FeatureCollection\",\n features: [],\n });\n\n useEffect(() => {\n const fetchFeatureData = async () => {\n try {\n if (\n query.contextLayersVisibility.commercialBorderCrossings &&\n featureData.features.length === 0\n ) {\n const dataUrl =\n \"https://services.arcgis.com/KTcxiTD9dsQw4r7Z/arcgis/rest/services/TxDOT_Border_Crossings/FeatureServer/0/query?where=VEH_COML%20=%201&outFields=*&outSR=4326&f=geojson\";\n const response = await axios.get(dataUrl);\n setFeatureData(response.data);\n\n let numFeaturesContext = query.contextLayersNumbFeatures;\n numFeaturesContext.commercialBorderCrossings =\n response.data.features.length;\n dispatch({\n type: \"setContextLayersNumbFeatures\",\n selection: numFeaturesContext,\n });\n }\n } catch (e) {\n console.log(e);\n }\n };\n fetchFeatureData();\n }, [query.contextLayersVisibility.commercialBorderCrossings]);\n\n const pointToLayer = (feature, latlng) => {\n let commercialAccess = feature.properties.VEH_COML === 1 ? \"Yes\" : \"No\";\n let noncommercialAccess = feature.properties.VEH_CAR === 1 ? \"Yes\" : \"No\";\n let railAccess = feature.properties.RR_BRDGE === 1 ? \"Yes\" : \"No\";\n let pedestrianAccess = feature.properties.PED === 1 ? \"Yes\" : \"No\";\n let tooltipText = `\n
    \n
    \n
    Border Crossings - Commercial Layer
    \n
    \n

    Name: ${feature.properties.CROSS_NM}

    \n

    Type: ${feature.properties.CRS_TYPE}

    \n

    Owner: ${feature.properties.OWNER}

    \n

    Operator: ${feature.properties.OPRTR}

    \n

    Jurisdiction Type: ${feature.properties.JURIS_TYPE}

    \n

    Commercial: ${commercialAccess}

    \n

    Non-Commercial: ${noncommercialAccess}

    \n

    Rail: ${railAccess}

    \n

    Pedestrian: ${pedestrianAccess}

    \n
    \n `;\n return L.marker(latlng, {\n icon: customMarkerIcon,\n }).bindTooltip(tooltipText);\n // let popupText = `\n //
    \n //
    \n //

    Counties

    \n //
    \n //

    Name: ${feature.properties.COUNTY}

    \n //

    County Code: ${feature.properties.COUNTYNUM}

    \n //

    County FIPS: ${feature.properties.COUNTY_FIP}

    \n //

    District: ${feature.properties.DISTRICT}

    \n //
    \n // `;\n // return layer.bindTooltip(tooltipText).bindPopup(popupText);\n };\n\n useEffect(() => {\n if (layerRef.current) {\n layerRef.current.leafletElement.clearLayers().addData(featureData);\n }\n }, [featureData]);\n\n return (\n \n {query.contextLayersVisibility.commercialBorderCrossings &&\n featureData.features.length > 0 && (\n \n )}\n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport axios from \"axios\";\nimport { GeoJSON, LayerGroup } from \"react-leaflet\";\nimport { RhinoQueryContext } from \"../RhinoQueryContext\";\nimport L from \"leaflet\";\nimport { makeStyles } from \"@material-ui/core/styles\";\n// import Icon from \"@material-ui/core/Icon\";\n// import { renderToStaticMarkup } from \"react-dom/server\";\n// import { divIcon } from \"leaflet\";\n\nimport customMarkerIconSvg from \"../../assets/icons/violet_box_24dp.svg\";\n\nconst useStyles = makeStyles((theme) => ({\n heading: {\n fontSize: theme.typography.pxToRem(15),\n fontWeight: theme.typography.fontWeightBold,\n },\n legendContainer: {\n background: \"white\",\n padding: \"5px\",\n },\n legendIcon: {\n //height: \"5%\",\n //width: \"auto\",\n //border: \"1px\",\n marginRight: \"5px\",\n },\n wrapIcon: {\n //verticalAlign: 'middle',\n display: \"flex\",\n alignItems: \"center\",\n },\n roadwayLegendLine: {\n width: \"25px\",\n height: \"5px\",\n background: \"#4d4dff\",\n //float: 'left',\n marginRight: \"5px\",\n },\n icon: {\n backgroundColor: \"#8565c4\",\n width: \"0.75rem\",\n height: \"0.755rem\",\n display: \"block\",\n // left: \"-0.25rem\",\n // top: \"-0.25rem\",\n position: \"relative\",\n // borderRadius: \"3rem 3rem 0\",\n // transform: \"rotate(45deg)\",\n // border: \"1px solid #FFFFFF\",\n },\n}));\n\n//props.route\n\nexport default function NonCommercialBorderCrossingLayer(props) {\n const [query, dispatch] = useContext(RhinoQueryContext);\n const classes = useStyles();\n const { layerRef } = props;\n\n // const iconMarkup = renderToStaticMarkup(\n // \n // \n // {/* change_history */}\n // \n // \n // );\n // const customMarkerIcon = divIcon({\n // html: iconMarkup,\n // });\n\n const customMarkerIcon = new L.icon({\n iconUrl: customMarkerIconSvg,\n iconRetinaUrl: customMarkerIconSvg,\n //iconAnchor: [20, 40],\n //popupAnchor: [0, -35],\n iconSize: [10, 10],\n //className: classes.icon,\n });\n\n const [featureData, setFeatureData] = useState({\n type: \"FeatureCollection\",\n features: [],\n });\n\n useEffect(() => {\n const fetchFeatureData = async () => {\n try {\n if (\n query.contextLayersVisibility.nonCommercialBorderCrossings &&\n featureData.features.length === 0\n ) {\n const dataUrl =\n \"https://services.arcgis.com/KTcxiTD9dsQw4r7Z/arcgis/rest/services/TxDOT_Border_Crossings/FeatureServer/0/query?where=VEH_COML%20%3C%3E%201%20AND%20VEH_CAR%20=%201&outFields=*&outSR=4326&f=geojson\";\n const response = await axios.get(dataUrl);\n setFeatureData(response.data);\n\n let numFeaturesContext = query.contextLayersNumbFeatures;\n numFeaturesContext.nonCommercialBorderCrossings =\n response.data.features.length;\n dispatch({\n type: \"setContextLayersNumbFeatures\",\n selection: numFeaturesContext,\n });\n }\n } catch (e) {\n console.log(e);\n }\n };\n fetchFeatureData();\n }, [query.contextLayersVisibility.nonCommercialBorderCrossings]);\n\n const pointToLayer = (feature, latlng) => {\n let commercialAccess = feature.properties.VEH_COML === 1 ? \"Yes\" : \"No\";\n let noncommercialAccess = feature.properties.VEH_CAR === 1 ? \"Yes\" : \"No\";\n let railAccess = feature.properties.RR_BRDGE === 1 ? \"Yes\" : \"No\";\n let pedestrianAccess = feature.properties.PED === 1 ? \"Yes\" : \"No\";\n let tooltipText = `\n
    \n
    \n
    Border Crossings - Non-Commercial Layer
    \n
    \n

    Name: ${feature.properties.CROSS_NM}

    \n

    Type: ${feature.properties.CRS_TYPE}

    \n

    Owner: ${feature.properties.OWNER}

    \n

    Operator: ${feature.properties.OPRTR}

    \n

    Jurisdiction Type: ${feature.properties.JURIS_TYPE}

    \n

    Commercial: ${commercialAccess}

    \n

    Non-Commercial: ${noncommercialAccess}

    \n

    Rail: ${railAccess}

    \n

    Pedestrian: ${pedestrianAccess}

    \n
    \n `;\n return L.marker(latlng, {\n icon: customMarkerIcon,\n }).bindTooltip(tooltipText);\n // let popupText = `\n //
    \n //
    \n //

    Counties

    \n //
    \n //

    Name: ${feature.properties.COUNTY}

    \n //

    County Code: ${feature.properties.COUNTYNUM}

    \n //

    County FIPS: ${feature.properties.COUNTY_FIP}

    \n //

    District: ${feature.properties.DISTRICT}

    \n //
    \n // `;\n // return layer.bindTooltip(tooltipText).bindPopup(popupText);\n };\n\n useEffect(() => {\n if (layerRef.current) {\n layerRef.current.leafletElement.clearLayers().addData(featureData);\n }\n }, [featureData]);\n\n return (\n \n {query.contextLayersVisibility.nonCommercialBorderCrossings &&\n featureData.features.length > 0 && (\n \n )}\n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport axios from \"axios\";\nimport {\n GeoJSON,\n LayerGroup,\n // Tooltip,\n // Popup,\n // Marker,\n} from \"react-leaflet\";\nimport { RhinoQueryContext } from \"../RhinoQueryContext\";\nimport L from \"leaflet\";\n// import { makeStyles } from \"@material-ui/core/styles\";\n// import Icon from \"@material-ui/core/Icon\";\n// import { renderToStaticMarkup } from \"react-dom/server\";\n// import { divIcon } from \"leaflet\";\n\nimport customMarkerIconSvg from \"../../assets/icons/pink_box_24dp.svg\";\n\n// const useStyles = makeStyles((theme) => ({\n// heading: {\n// fontSize: theme.typography.pxToRem(15),\n// fontWeight: theme.typography.fontWeightBold,\n// },\n// legendContainer: {\n// background: \"white\",\n// padding: \"5px\",\n// },\n// legendIcon: {\n// //height: \"5%\",\n// //width: \"auto\",\n// //border: \"1px\",\n// marginRight: \"5px\",\n// },\n// wrapIcon: {\n// //verticalAlign: 'middle',\n// display: \"flex\",\n// alignItems: \"center\",\n// },\n// roadwayLegendLine: {\n// width: \"25px\",\n// height: \"5px\",\n// background: \"#4d4dff\",\n// //float: 'left',\n// marginRight: \"5px\",\n// },\n// icon: {\n// backgroundColor: \"#c465a4\",\n// width: \"0.75rem\",\n// height: \"0.755rem\",\n// display: \"block\",\n// // left: \"-0.25rem\",\n// // top: \"-0.25rem\",\n// position: \"relative\",\n// // borderRadius: \"3rem 3rem 0\",\n// // transform: \"rotate(45deg)\",\n// // border: \"1px solid #FFFFFF\",\n// },\n// }));\n\n//props.route\n\nexport default function RailBorderCrossingLayer(props) {\n const [query, dispatch] = useContext(RhinoQueryContext);\n //const classes = useStyles();\n const { layerRef } = props;\n\n // const iconMarkup = renderToStaticMarkup(\n // \n // \n // {/* change_history */}\n // \n // \n // );\n // const customMarkerIcon = divIcon({\n // html: iconMarkup,\n // });\n\n const customMarkerIcon = new L.icon({\n iconUrl: customMarkerIconSvg,\n iconRetinaUrl: customMarkerIconSvg,\n //iconAnchor: [20, 40],\n //popupAnchor: [0, -35],\n iconSize: [10, 10],\n //className: classes.icon,\n });\n\n const [featureData, setFeatureData] = useState({\n type: \"FeatureCollection\",\n features: [],\n });\n\n useEffect(() => {\n const fetchFeatureData = async () => {\n try {\n if (\n query.contextLayersVisibility.railBorderCrossings &&\n featureData.features.length === 0\n ) {\n const dataUrl =\n \"https://services.arcgis.com/KTcxiTD9dsQw4r7Z/arcgis/rest/services/TxDOT_Border_Crossings/FeatureServer/0/query?where=VEH_COML%20%3C%3E%201%20AND%20VEH_CAR%20%3C%3E%201%20AND%20RR_BRDGE%20=%201&outFields=*&outSR=4326&f=geojson\";\n const response = await axios.get(dataUrl);\n setFeatureData(response.data);\n\n let numFeaturesContext = query.contextLayersNumbFeatures;\n numFeaturesContext.railBorderCrossings =\n response.data.features.length;\n dispatch({\n type: \"setContextLayersNumbFeatures\",\n selection: numFeaturesContext,\n });\n }\n } catch (e) {\n console.log(e);\n }\n };\n fetchFeatureData();\n }, [query.contextLayersVisibility.railBorderCrossings]);\n\n const pointToLayer = (feature, latlng) => {\n let commercialAccess = feature.properties.VEH_COML === 1 ? \"Yes\" : \"No\";\n let noncommercialAccess = feature.properties.VEH_CAR === 1 ? \"Yes\" : \"No\";\n let railAccess = feature.properties.RR_BRDGE === 1 ? \"Yes\" : \"No\";\n let pedestrianAccess = feature.properties.PED === 1 ? \"Yes\" : \"No\";\n let tooltipText = `\n
    \n
    \n
    Border Crossings - Rail Only Layer
    \n
    \n

    Name: ${feature.properties.CROSS_NM}

    \n

    Type: ${feature.properties.CRS_TYPE}

    \n

    Owner: ${feature.properties.OWNER}

    \n

    Operator: ${feature.properties.OPRTR}

    \n

    Jurisdiction Type: ${feature.properties.JURIS_TYPE}

    \n

    Commercial: ${commercialAccess}

    \n

    Non-Commercial: ${noncommercialAccess}

    \n

    Rail: ${railAccess}

    \n

    Pedestrian: ${pedestrianAccess}

    \n
    \n `;\n return L.marker(latlng, {\n icon: customMarkerIcon,\n }).bindTooltip(tooltipText);\n // let popupText = `\n //
    \n //
    \n //

    Counties

    \n //
    \n //

    Name: ${feature.properties.COUNTY}

    \n //

    County Code: ${feature.properties.COUNTYNUM}

    \n //

    County FIPS: ${feature.properties.COUNTY_FIP}

    \n //

    District: ${feature.properties.DISTRICT}

    \n //
    \n // `;\n // return layer.bindTooltip(tooltipText).bindPopup(popupText);\n };\n\n useEffect(() => {\n if (layerRef.current) {\n layerRef.current.leafletElement.clearLayers().addData(featureData);\n }\n }, [featureData]);\n\n return (\n \n {query.contextLayersVisibility.railBorderCrossings &&\n featureData.features.length > 0 && (\n \n )}\n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport axios from \"axios\";\nimport { GeoJSON, LayerGroup } from \"react-leaflet\";\nimport { RhinoQueryContext } from \"../RhinoQueryContext\";\n\nimport L from \"leaflet\";\nimport { makeStyles } from \"@material-ui/core/styles\";\n// import Icon from \"@material-ui/core/Icon\";\n// import { renderToStaticMarkup } from \"react-dom/server\";\n// import { divIcon } from \"leaflet\";\n\nimport customMarkerIconSvg from \"../../assets/icons/anchor_white_24dp.svg\";\n\nconst useStyles = makeStyles((theme) => ({\n heading: {\n fontSize: theme.typography.pxToRem(15),\n fontWeight: theme.typography.fontWeightBold,\n },\n legendContainer: {\n background: \"white\",\n padding: \"5px\",\n },\n legendIcon: {\n //height: \"5%\",\n //width: \"auto\",\n //border: \"1px\",\n marginRight: \"5px\",\n },\n wrapIcon: {\n //verticalAlign: 'middle',\n display: \"flex\",\n alignItems: \"center\",\n },\n roadwayLegendLine: {\n width: \"25px\",\n height: \"5px\",\n background: \"#4d4dff\",\n //float: 'left',\n marginRight: \"5px\",\n },\n icon: {\n backgroundColor: \"#0000ff\",\n width: \"1.25rem\",\n height: \"1.25rem\",\n display: \"block\",\n //left: \"-0.25rem\",\n //top: \"-0.25rem\",\n // position: \"relative\",\n // borderRadius: \"3rem 3rem 0\",\n // transform: \"rotate(45deg)\",\n // border: \"1px solid #FFFFFF\",\n path: { fill: \"red\" },\n },\n}));\n\n//props.route\n\nexport default function PortsLayer(props) {\n const [query, dispatch] = useContext(RhinoQueryContext);\n const classes = useStyles();\n //const { utpData, utpCategoryLookups } = props;\n const { layerRef } = props;\n\n // const iconMarkup = renderToStaticMarkup(\n // \n // \n // {\"anchor\"}\n // \n // \n // );\n\n // const customMarkerIcon = divIcon({\n // className: classes.icon,\n // html: iconMarkup,\n // });\n\n const customMarkerIcon = new L.icon({\n iconUrl: customMarkerIconSvg,\n iconRetinaUrl: customMarkerIconSvg,\n //iconAnchor: [20, 40],\n //popupAnchor: [0, -35],\n iconSize: [15, 15],\n //className: classes.icon,\n });\n\n const [featureData, setFeatureData] = useState({\n type: \"FeatureCollection\",\n features: [],\n });\n\n //useEffect(() => {\n // const fetchCountyBoundaries = async () => {\n // try {\n // if (props.counties.length > 0) {\n // const dataUrl = `${API_ROOT}/counties/${props.counties.join(\n // \",\"\n // )}/boundary/`;\n // const response = await axios.get(dataUrl);\n // setCountyBoundaries(response.data);\n // /* console.log(response.data);*/\n // }\n // } catch (e) {\n // console.log(e);\n // }\n // };\n // fetchCountyBoundaries();\n //}, [props.counties]);\n\n useEffect(() => {\n const fetchFeatureData = async () => {\n try {\n //http://localhost:5000/api/tcat_boundaries/findCountyBoundariesByCountyNumber/10,11,23\n // const dataUrlCnty = `${API_ROOT}/tcat_boundaries/findCountyBoundariesByCountyNumber/${countyList.join(\n // \",\"\n // )}`;\n // const responseCnty = await axios.get(dataUrlCnty);\n // setCountyBoundaries(responseCnty.data.jsonb_build_object);\n if (\n query.contextLayersVisibility.portsLayer &&\n featureData.features.length === 0\n ) {\n const dataUrl =\n \"https://opendata.arcgis.com/datasets/595556c111e14519be70b955e10aa8ff_0.geojson\";\n const response = await axios.get(dataUrl);\n setFeatureData(response.data);\n\n let numFeaturesContext = query.contextLayersNumbFeatures;\n numFeaturesContext.portsLayer = response.data.features.length;\n dispatch({\n type: \"setContextLayersNumbFeatures\",\n selection: numFeaturesContext,\n });\n }\n } catch (e) {\n console.log(e);\n }\n };\n fetchFeatureData();\n }, [query.contextLayersVisibility.portsLayer]);\n\n const pointToLayer = (feature, latlng) => {\n let tooltipText = `\n
    \n
    \n
    Ports Layer
    \n
    \n

    Name: ${feature.properties.PORT_NM}

    \n

    Type: ${feature.properties.PORT_TYPE}

    \n
    \n `;\n return L.marker(latlng, {\n icon: customMarkerIcon,\n }).bindTooltip(tooltipText);\n // let popupText = `\n //
    \n //
    \n //

    Counties

    \n //
    \n //

    Name: ${feature.properties.COUNTY}

    \n //

    County Code: ${feature.properties.COUNTYNUM}

    \n //

    County FIPS: ${feature.properties.COUNTY_FIP}

    \n //

    District: ${feature.properties.DISTRICT}

    \n //
    \n // `;\n // return layer.bindTooltip(tooltipText).bindPopup(popupText);\n };\n\n useEffect(() => {\n if (layerRef.current) {\n layerRef.current.leafletElement.clearLayers().addData(featureData);\n }\n }, [featureData, layerRef]);\n\n return (\n \n {query.contextLayersVisibility.portsLayer &&\n featureData.features.length > 0 && (\n // \n \n // \n )}\n \n );\n}\n","import React, { useState, useEffect, useContext, useRef } from \"react\";\nimport axios from \"axios\";\nimport { GeoJSON, Tooltip, LayerGroup, Popup, Marker } from \"react-leaflet\";\nimport { RhinoQueryContext } from \"../RhinoQueryContext\";\nimport {\n // API_ROOT,\n // COLOR_RHINO,\n // colorContextlayers,\n utpCategoryLookups,\n // tx100_monitored_counties,\n} from \"../../common/constants\";\nimport L from \"leaflet\";\n// import { makeStyles } from \"@material-ui/core/styles\";\n// import { icon } from \"leaflet\";\n// import Icon from \"@material-ui/core/Icon\";\n// import { renderToStaticMarkup } from \"react-dom/server\";\n// import { divIcon } from \"leaflet\";\n\n//import customMarkerIconSvg from \"../../assets/icons/construction_white_24dp.svg\";\nimport UtpIconSVG1 from \"../../assets/icons/construction_white_on_red_24dp.svg\";\nimport UtpIconSVG2 from \"../../assets/icons/construction_white_on_purple_24dp.svg\";\nimport UtpIconSVG3 from \"../../assets/icons/construction_white_on_green_24dp.svg\";\nimport UtpIconSVG4 from \"../../assets/icons/construction_white_on_blue_24dp.svg\";\n\n// const useStyles = makeStyles((theme) => ({\n// heading: {\n// fontSize: theme.typography.pxToRem(15),\n// fontWeight: theme.typography.fontWeightBold,\n// },\n// legendContainer: {\n// background: \"white\",\n// padding: \"5px\",\n// },\n// legendIcon: {\n// //height: \"5%\",\n// //width: \"auto\",\n// //border: \"1px\",\n// marginRight: \"5px\",\n// },\n// wrapIcon: {\n// //verticalAlign: 'middle',\n// display: \"flex\",\n// alignItems: \"center\",\n// },\n// roadwayLegendLine: {\n// width: \"25px\",\n// height: \"5px\",\n// background: \"#4d4dff\",\n// //float: 'left',\n// marginRight: \"5px\",\n// },\n// icon1: {\n// backgroundColor: \"#7F0000\",\n// width: \"1.25rem\",\n// height: \"1.25rem\",\n// display: \"block\",\n// // left: \"-0.25rem\",\n// // top: \"-0.25rem\",\n// // position: \"relative\",\n// // borderRadius: \"3rem 3rem 0\",\n// // transform: \"rotate(45deg)\",\n// // border: \"1px solid #FFFFFF\",\n// },\n// icon2: {\n// backgroundColor: \"#6f00ff\",\n// width: \"1.25rem\",\n// height: \"1.25rem\",\n// display: \"block\",\n// // left: \"-0.25rem\",\n// // top: \"-0.25rem\",\n// //position: \"relative\",\n// // borderRadius: \"3rem 3rem 0\",\n// // transform: \"rotate(45deg)\",\n// // border: \"1px solid #FFFFFF\",\n// },\n// icon3: {\n// backgroundColor: \"#009a00\",\n// width: \"1.25rem\",\n// height: \"1.25rem\",\n// display: \"block\",\n// // left: \"-0.25rem\",\n// // top: \"-0.25rem\",\n// //position: \"relative\",\n// // borderRadius: \"3rem 3rem 0\",\n// // transform: \"rotate(45deg)\",\n// // border: \"1px solid #FFFFFF\",\n// },\n// icon4: {\n// backgroundColor: \"#4040ff\",\n// width: \"1.25rem\",\n// height: \"1.25rem\",\n// display: \"block\",\n// // left: \"-0.25rem\",\n// // top: \"-0.25rem\",\n// //position: \"relative\",\n// // borderRadius: \"3rem 3rem 0\",\n// // transform: \"rotate(45deg)\",\n// // border: \"1px solid #FFFFFF\",\n// },\n// }));\n\nexport default function UTPLayer(props) {\n const [query, dispatch] = useContext(RhinoQueryContext);\n // const classes = useStyles();\n //const { utpData, utpCategoryLookups } = props;\n const {\n countyList,\n // utpMapLayersCount,\n setutpMapLayersCount,\n } = props;\n\n // const iconMarkup1 = renderToStaticMarkup(\n // \n // \n // {\"construction\"}\n // \n // \n // );\n // const customMarkerIcon1 = divIcon({\n // html: iconMarkup1,\n // className: \"dummy\", // Specify something to get rid of the default class.\n // });\n\n const customMarkerIcon1 = new L.icon({\n iconUrl: UtpIconSVG1,\n iconRetinaUrl: UtpIconSVG1,\n //iconAnchor: [20, 40],\n //popupAnchor: [0, -35],\n iconSize: [15, 15],\n //className: classes.icon1,\n });\n\n // const iconMarkup2 = renderToStaticMarkup(\n // \n // \n // {\"construction\"}\n // \n // \n // );\n // const customMarkerIcon2 = divIcon({\n // html: iconMarkup2,\n // className: \"dummy\", // Specify something to get rid of the default class.\n // });\n\n const customMarkerIcon2 = new L.icon({\n iconUrl: UtpIconSVG2,\n iconRetinaUrl: UtpIconSVG2,\n //iconAnchor: [20, 40],\n //popupAnchor: [0, -35],\n iconSize: [15, 15],\n //className: classes.icon2,\n });\n\n // const iconMarkup3 = renderToStaticMarkup(\n // \n // \n // {\"construction\"}\n // \n // \n // );\n // const customMarkerIcon3 = divIcon({\n // html: iconMarkup3,\n // className: \"dummy\", // Specify something to get rid of the default class.\n // });\n\n const customMarkerIcon3 = new L.icon({\n iconUrl: UtpIconSVG3,\n iconRetinaUrl: UtpIconSVG3,\n //iconAnchor: [20, 40],\n //popupAnchor: [0, -35],\n iconSize: [15, 15],\n //className: classes.icon3,\n });\n\n // const iconMarkup4 = renderToStaticMarkup(\n // \n // \n // {\"construction\"}\n // \n // \n // );\n // const customMarkerIcon4 = divIcon({\n // html: iconMarkup4,\n // className: \"dummy\", // Specify something to get rid of the default class.\n // });\n\n const customMarkerIcon4 = new L.icon({\n iconUrl: UtpIconSVG4,\n iconRetinaUrl: UtpIconSVG4,\n //iconAnchor: [20, 40],\n //popupAnchor: [0, -35],\n iconSize: [15, 15],\n //className: classes.icon4,\n });\n\n /* UTP projects data in GeoJSON format */\n const [utpData, setUTPData] = useState({\n data: {},\n route: \"\",\n });\n\n /*Fetch the UTP projects data*/\n useEffect(() => {\n const fetchUTP = async () => {\n try {\n if (\n (query.utpMapLayersVisibility.underwayorsoon ||\n query.utpMapLayersVisibility.within4years ||\n query.utpMapLayersVisibility.fivetotenyears ||\n query.utpMapLayersVisibility.tenplusyears) &&\n !utpData.data.all\n ) {\n const filterPhases = [\n \"begins soon\",\n \"4 years\",\n \"5 to 10 years\",\n \"10+ years\",\n ].map((val) => {\n return (fc) => fc.properties.PT_PHASE.includes(val);\n });\n\n const dataUrl =\n \"https://services.arcgis.com/KTcxiTD9dsQw4r7Z/arcgis/rest/services/TxDOT_Projects/FeatureServer/0/query?where=COUNTY_NUMBER IN (\" +\n countyList.toString() +\n //\") AND Shape__Length IS NOT NULL &outFields=*&outSR=4326&f=geojson\";\n \") AND Shape__Length IS NOT NULL AND PRJ_UTP IS NOT NULL &outFields=*&outSR=4326&f=geojson\";\n const response = await axios.get(dataUrl);\n\n let f = response.data.features;\n if (f.length > 0) {\n let data = {\n all: {\n type: \"FeatureCollection\",\n features: f,\n },\n category0: {\n name: \"UTP-Underway or begins soon\",\n type: \"FeatureCollection\",\n features: f.filter(filterPhases[0]), //f.properties.PT_PHASE.includes(\"begins soon\"),\n },\n category1: {\n name: \"UTP-Begins in 4 years\",\n type: \"FeatureCollection\",\n features: f.filter(filterPhases[1]),\n },\n category2: {\n name: \"UTP-Begins in 5-10 years\",\n type: \"FeatureCollection\",\n features: f.filter(filterPhases[2]),\n },\n category3: {\n name: \"UTP-Begins in 10+ years\",\n type: \"FeatureCollection\",\n features: f.filter(filterPhases[3]),\n },\n };\n\n // dispatch({\n // type: \"setutpMapLayersCount\",\n // selection: {\n // underwayorsoon: f.filter(filterPhases[0]).length,\n // within4years: f.filter(filterPhases[1]).length,\n // fivetotenyears: f.filter(filterPhases[2]).length,\n // tenplusyears: f.filter(filterPhases[3]).length,\n // }, //fs //tableDataUTPvalues.concat(fs) //fs\n // });\n\n const featureCount = {\n underwayorsoon: f.filter(filterPhases[0]).length,\n within4years: f.filter(filterPhases[1]).length,\n fivetotenyears: f.filter(filterPhases[2]).length,\n tenplusyears: f.filter(filterPhases[3]).length,\n };\n dispatch({\n type: \"setutpMapLayersCount\",\n selection: featureCount, //fs //tableDataUTPvalues.concat(fs) //fs\n });\n\n // setutpMapLayersCount(featureCount);\n\n setUTPData({ data: data });\n }\n }\n } catch (e) {\n console.log(e);\n }\n };\n fetchUTP();\n });\n\n /*Create the marker cluster overlay*/\n const [utpLayersChecked, setutpLayersChecked] = useState(\n query.utpMapLayersVisibility\n );\n\n useEffect(() => {\n setutpLayersChecked(query.utpMapLayersVisibility);\n }, [query.utpMapLayersVisibility]);\n const [selected, setSelected] = useState(false);\n const selectedMarker = useRef({\n type: \"FeatureCollection\",\n features: [],\n });\n const createMarkersLayer2 = (props) => {\n let checkedVariable = utpCategoryLookups.find(\n (x) => x[\"nameDesc\"] === props.data.name\n )[\"checkedVariable\"];\n let checked = utpLayersChecked[checkedVariable];\n // let markerIcon = utpCategoryLookups.find(\n // (x) => x[\"nameDesc\"] === props.data.name\n // )[\"markerIcon\"];\n\n if (checked) {\n if (props.data.features.length <= 0) return
    ;\n\n const getFirstCoordinates = (g) => {\n switch (g.type) {\n case \"LineString\":\n return [g.coordinates[0][1], g.coordinates[0][0]];\n case \"MultiLineString\":\n return [g.coordinates[0][0][1], g.coordinates[0][0][0]];\n default:\n return null;\n }\n };\n\n // let markerIcon2 = icon({\n // //iconUrl: 'https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-2x-green.png',\n // //shadowUrl: 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/images/marker-shadow.png',\n // iconUrl: markerIcon,\n // iconSize: [25, 41],\n // iconAnchor: [12, 41],\n // //popupAnchor: [1, -34],\n // //shadowSize: [41, 41]\n // });\n //\"category0\", \"category1\", \"category2\", \"category3\"\n let customMarkerIcon =\n props.name === \"category0\"\n ? customMarkerIcon1\n : props.name === \"category1\"\n ? customMarkerIcon2\n : props.name === \"category2\"\n ? customMarkerIcon3\n : customMarkerIcon4;\n\n if (checked)\n return (\n \n {props.data.features.map((val, idx) => (\n \n \n Control Section Job: {val.properties.CONTROL_SECT_JOB}\n
    \n Road: {val.properties.HIGHWAY_NUMBER}\n
    \n From: {val.properties.LIMITS_FROM}\n
    \n To: {val.properties.LIMITS_TO}\n
    \n Type of Work: {val.properties.TYPE_OF_WORK}\n
    \n Layman Description:{\" \"}\n {val.properties.LAYMAN_DESCRIPTION1}\n
    \n Phase: {val.properties.PT_PHASE}\n
    \n Freight Element: {val.properties.FREIGHT}\n
    \n \n
    (Click on marker for more information)
    \n
    \n
    \n
    \n {\n selectedMarker.current = {\n type: \"FeatureCollection\",\n features: [val],\n };\n setSelected(true);\n }}\n onClose={(e) => {\n selectedMarker.current = {\n type: \"FeatureCollection\",\n features: [],\n };\n setSelected(false);\n }}\n >\n Control Section Job: {val.properties.CONTROL_SECT_JOB}\n
    \n Road: {val.properties.HIGHWAY_NUMBER}\n
    \n From: {val.properties.LIMITS_FROM}\n
    \n To: {val.properties.LIMITS_TO}\n
    \n Type of Work: {val.properties.TYPE_OF_WORK}\n
    \n Layman Description:{\" \"}\n {val.properties.LAYMAN_DESCRIPTION1}\n
    \n Phase: {val.properties.PT_PHASE}\n
    \n UTP Project Tier: {val.properties.PRJ_TIER}\n
    \n UTP Level of Authority: {val.properties.PRIORITY_CODE}\n
    \n Freight Element: {val.properties.FREIGHT}\n
    \n Project Let Date: {val.properties.ACTUAL_LET_DATE}\n
    \n Month of Estimated Project Let Date:{\" \"}\n {val.properties.NBR_LET_MONTH}\n
    \n Year of Estimated Project Let Date:{\" \"}\n {val.properties.NBR_LET_YEAR}\n
    \n \n TxDOT Open Data Portal - Projects Overview\n \n
    \n \n TxDOT Open Data Portal - Projects Data Dictionary\n \n
    \n \n TxDOT Open Data Portal - Project\n \n
    \n \n TxDOT Open Data Portal - GeoService Query\n \n
    \n \n \n ))}\n\n {selected && selectedMarker.current.features.length > 0 && (\n \n )}\n
    \n );\n }\n };\n\n return (\n \n {[\"category0\", \"category1\", \"category2\", \"category3\"].map((name) => {\n return (\n typeof utpData.data[name] !== \"undefined\" &&\n createMarkersLayer2({\n data: utpData.data[name],\n name: name,\n })\n );\n })}\n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport axios from \"axios\";\nimport { GeoJSON, LayerGroup } from \"react-leaflet\";\nimport { RhinoQueryContext } from \"../RhinoQueryContext\";\n\nimport L from \"leaflet\";\nimport { makeStyles } from \"@material-ui/core/styles\";\n// import Icon from \"@material-ui/core/Icon\";\n// import { renderToStaticMarkup } from \"react-dom/server\";\n// import { divIcon } from \"leaflet\";\n\nimport customMarkerIconSvg from \"../../assets/icons/flight_yellow_24dp.svg\";\n\nconst useStyles = makeStyles((theme) => ({\n heading: {\n fontSize: theme.typography.pxToRem(15),\n fontWeight: theme.typography.fontWeightBold,\n },\n legendContainer: {\n background: \"white\",\n padding: \"5px\",\n },\n legendIcon: {\n //height: \"5%\",\n //width: \"auto\",\n //border: \"1px\",\n marginRight: \"5px\",\n },\n wrapIcon: {\n //verticalAlign: 'middle',\n display: \"flex\",\n alignItems: \"center\",\n },\n roadwayLegendLine: {\n width: \"25px\",\n height: \"5px\",\n background: \"#4d4dff\",\n //float: 'left',\n marginRight: \"5px\",\n },\n icon2: {\n backgroundColor: \"#11b461\",\n width: \"0.75rem\",\n height: \"0.755rem\",\n display: \"block\",\n // left: \"-0.25rem\",\n // top: \"-0.25rem\",\n //position: \"relative\",\n // borderRadius: \"3rem 3rem 0\",\n // transform: \"rotate(45deg)\",\n // border: \"1px solid #FFFFFF\",\n },\n icon: {\n backgroundColor: \"#000000\",\n width: \"1.25rem\",\n height: \"1.25rem\",\n display: \"block\",\n //left: \"-0.25rem\",\n //top: \"-0.25rem\",\n //position: \"relative\",\n // borderRadius: \"3rem 3rem 0\",\n // transform: \"rotate(45deg)\",\n // border: \"1px solid #FFFFFF\",\n },\n}));\n\nexport default function CargoAirportsLayer(props) {\n const [query, dispatch] = useContext(RhinoQueryContext);\n const classes = useStyles();\n const { layerRef } = props;\n\n // const iconMarkup = renderToStaticMarkup(\n // \n // \n // {\"flight\"}\n // \n // \n // );\n // const customMarkerIcon = divIcon({\n // html: iconMarkup,\n // });\n\n const customMarkerIcon = new L.icon({\n iconUrl: customMarkerIconSvg,\n iconRetinaUrl: customMarkerIconSvg,\n //iconAnchor: [20, 40],\n //popupAnchor: [0, -35],\n iconSize: [15, 15],\n //className: classes.icon,\n });\n\n const [featureData, setFeatureData] = useState({\n type: \"FeatureCollection\",\n features: [],\n });\n\n useEffect(() => {\n const fetchFeatureData = async () => {\n try {\n if (\n query.contextLayersVisibility.cargoAirports &&\n featureData.features.length === 0\n ) {\n //NOTE: the % in ' ' is a wildcard identifier\n const dataUrl =\n \"https://geo.dot.gov/mapping/rest/services/NTAD/Airports/MapServer/0/query?where=State_Post_Office_Code+%3D+%27TX%27+AND+Other_Services+LIKE+%27%25CARGO%25%27&text=&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&distance=&units=esriSRUnit_Foot&relationParam=&outFields=*&returnGeometry=true&returnTrueCurves=false&maxAllowableOffset=&geometryPrecision=&outSR=&havingClause=&returnIdsOnly=false&returnCountOnly=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&returnZ=false&returnM=false&gdbVersion=&historicMoment=&returnDistinctValues=false&resultOffset=&resultRecordCount=&returnExtentOnly=false&datumTransformation=¶meterValues=&rangeValues=&quantizationParameters=&featureEncoding=esriDefault&f=geojson\";\n const response = await axios.get(dataUrl);\n setFeatureData(response.data);\n\n let numFeaturesContext = query.contextLayersNumbFeatures;\n numFeaturesContext.cargoAirports = response.data.features.length;\n dispatch({\n type: \"setContextLayersNumbFeatures\",\n selection: numFeaturesContext,\n });\n }\n } catch (e) {\n console.log(e);\n }\n };\n fetchFeatureData();\n }, [query.contextLayersVisibility.cargoAirports]);\n\n const pointToLayer = (feature, latlng) => {\n //Fac_Name, City, Commercial_Ops, Commuter_Ops, Other_Services\n let tooltipText = `\n
    \n
    \n
    Cargo Airports Layer
    \n
    \n

    Facitlity Name: ${feature.properties.Fac_Name}

    \n

    Location: ${feature.properties.City}, TX

    \n

    Commercial Ops: ${feature.properties.Commercial_Ops}

    \n

    Commuter Ops: ${feature.properties.Commuter_Ops}

    \n

    Other Services: ${feature.properties.Other_Services}

    \n
    \n `;\n return L.marker(latlng, {\n icon: customMarkerIcon,\n }).bindTooltip(tooltipText);\n // let popupText = `\n //
    \n //
    \n //

    Counties

    \n //
    \n //

    Name: ${feature.properties.COUNTY}

    \n //

    County Code: ${feature.properties.COUNTYNUM}

    \n //

    County FIPS: ${feature.properties.COUNTY_FIP}

    \n //

    District: ${feature.properties.DISTRICT}

    \n //
    \n // `;\n // return layer.bindTooltip(tooltipText).bindPopup(popupText);\n };\n\n useEffect(() => {\n if (layerRef.current) {\n layerRef.current.leafletElement.clearLayers().addData(featureData);\n }\n }, [featureData]);\n\n return (\n \n {query.contextLayersVisibility.cargoAirports &&\n featureData.features.length > 0 && (\n \n )}\n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport axios from \"axios\";\nimport { GeoJSON, LayerGroup } from \"react-leaflet\";\nimport { RhinoQueryContext } from \"../RhinoQueryContext\";\n\nimport L from \"leaflet\";\nimport { makeStyles } from \"@material-ui/core/styles\";\n// import Icon from \"@material-ui/core/Icon\";\n// import { renderToStaticMarkup } from \"react-dom/server\";\n// import { divIcon } from \"leaflet\";\n\nimport customMarkerIconSvg from \"../../assets/icons/flight_white_24dp.svg\";\n\nconst useStyles = makeStyles((theme) => ({\n heading: {\n fontSize: theme.typography.pxToRem(15),\n fontWeight: theme.typography.fontWeightBold,\n },\n legendContainer: {\n background: \"white\",\n padding: \"5px\",\n },\n legendIcon: {\n //height: \"5%\",\n //width: \"auto\",\n //border: \"1px\",\n marginRight: \"5px\",\n },\n wrapIcon: {\n //verticalAlign: 'middle',\n display: \"flex\",\n alignItems: \"center\",\n },\n roadwayLegendLine: {\n width: \"25px\",\n height: \"5px\",\n background: \"#4d4dff\",\n //float: 'left',\n marginRight: \"5px\",\n },\n icon2: {\n backgroundColor: \"#11b461\",\n width: \"0.75rem\",\n height: \"0.755rem\",\n display: \"block\",\n // left: \"-0.25rem\",\n // top: \"-0.25rem\",\n position: \"relative\",\n // borderRadius: \"3rem 3rem 0\",\n // transform: \"rotate(45deg)\",\n // border: \"1px solid #FFFFFF\",\n },\n icon: {\n backgroundColor: \"#A9A9A9\",\n width: \"1.25rem\",\n height: \"1.25rem\",\n display: \"block\",\n //left: \"-0.25rem\",\n //top: \"-0.25rem\",\n //position: \"relative\",\n // borderRadius: \"3rem 3rem 0\",\n // transform: \"rotate(45deg)\",\n // border: \"1px solid #FFFFFF\",\n },\n}));\n\nexport default function AirportsLayer(props) {\n const [query, dispatch] = useContext(RhinoQueryContext);\n const classes = useStyles();\n const { layerRef } = props;\n\n // const iconMarkup = renderToStaticMarkup(\n // \n // \n // {\"flight\"}\n // \n // \n // );\n // const customMarkerIcon = divIcon({\n // html: iconMarkup,\n // });\n\n const customMarkerIcon = new L.icon({\n iconUrl: customMarkerIconSvg,\n iconRetinaUrl: customMarkerIconSvg,\n //iconAnchor: [20, 40],\n //popupAnchor: [0, -35],\n iconSize: [15, 15],\n //className: classes.icon,\n });\n\n const [featureData, setFeatureData] = useState({\n type: \"FeatureCollection\",\n features: [],\n });\n\n useEffect(() => {\n const fetchFeatureData = async () => {\n try {\n if (\n query.contextLayersVisibility.airports &&\n featureData.features.length === 0\n ) {\n //NOTE: the % in ' ' is a wildcard identifier\n const dataUrl =\n \"https://geo.dot.gov/mapping/rest/services/NTAD/Airports/MapServer/0/query?where=State_Post_Office_Code+%3D+%27TX%27+AND+Commercial_Ops+IS+NOT+NULL+AND+Other_Services+NOT+LIKE+%27%25CARGO%25%27&text=&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&distance=&units=esriSRUnit_Foot&relationParam=&outFields=*&returnGeometry=true&returnTrueCurves=false&maxAllowableOffset=&geometryPrecision=&outSR=&havingClause=&returnIdsOnly=false&returnCountOnly=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&returnZ=false&returnM=false&gdbVersion=&historicMoment=&returnDistinctValues=false&resultOffset=&resultRecordCount=&returnExtentOnly=false&datumTransformation=¶meterValues=&rangeValues=&quantizationParameters=&featureEncoding=esriDefault&f=geojson\";\n const response = await axios.get(dataUrl);\n setFeatureData(response.data);\n\n let numFeaturesContext = query.contextLayersNumbFeatures;\n numFeaturesContext.airports = response.data.features.length;\n dispatch({\n type: \"setContextLayersNumbFeatures\",\n selection: numFeaturesContext,\n });\n }\n } catch (e) {\n console.log(e);\n }\n };\n fetchFeatureData();\n }, [query.contextLayersVisibility.airports]);\n\n const pointToLayer = (feature, latlng) => {\n //Fac_Name, City, Commercial_Ops, Commuter_Ops, Other_Services\n let tooltipText = `\n
    \n
    \n
    Other Major Airports Layer
    \n
    \n

    Facitlity Name: ${feature.properties.Fac_Name}

    \n

    Location: ${feature.properties.City}, TX

    \n

    Commercial Ops: ${feature.properties.Commercial_Ops}

    \n

    Commuter Ops: ${feature.properties.Commuter_Ops}

    \n

    Other Services: ${feature.properties.Other_Services}

    \n
    \n `;\n return L.marker(latlng, {\n icon: customMarkerIcon,\n }).bindTooltip(tooltipText);\n // let popupText = `\n //
    \n //
    \n //

    Counties

    \n //
    \n //

    Name: ${feature.properties.COUNTY}

    \n //

    County Code: ${feature.properties.COUNTYNUM}

    \n //

    County FIPS: ${feature.properties.COUNTY_FIP}

    \n //

    District: ${feature.properties.DISTRICT}

    \n //
    \n // `;\n // return layer.bindTooltip(tooltipText).bindPopup(popupText);\n };\n\n useEffect(() => {\n if (layerRef.current) {\n layerRef.current.leafletElement.clearLayers().addData(featureData);\n }\n }, [featureData]);\n\n return (\n \n {query.contextLayersVisibility.airports &&\n featureData.features.length > 0 && (\n \n )}\n \n );\n}\n","import React, { useState, useEffect, useContext, useRef } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport axios from \"axios\";\nimport { GeoJSON, Tooltip, LayerGroup, Popup, Marker } from \"react-leaflet\";\nimport { RhinoQueryContext } from \"../RhinoQueryContext\";\nimport {\n API_ROOT,\n // COLOR_RHINO,\n // colorContextlayers,\n // tx100_monitored_counties,\n colorContextlayers,\n} from \"../../common/constants\";\nimport L from \"leaflet\";\n\nimport customMarkerIconSvg from \"../../assets/icons/local_parking_white_on_green_24dp.svg\";\n\nconst useStyles = makeStyles((theme) => ({\n heading: {\n fontSize: theme.typography.pxToRem(15),\n fontWeight: theme.typography.fontWeightBold,\n },\n legendContainer: {\n background: \"white\",\n padding: \"5px\",\n },\n legendIcon: {\n //height: \"5%\",\n //width: \"auto\",\n //border: \"1px\",\n marginRight: \"5px\",\n },\n wrapIcon: {\n //verticalAlign: 'middle',\n display: \"flex\",\n alignItems: \"center\",\n },\n roadwayLegendLine: {\n width: \"25px\",\n height: \"5px\",\n background: \"#4d4dff\",\n //float: 'left',\n marginRight: \"5px\",\n },\n icon: {\n backgroundColor: \"#0000ff\",\n width: \"1.25rem\",\n height: \"1.25rem\",\n display: \"block\",\n //left: \"-0.25rem\",\n //top: \"-0.25rem\",\n // position: \"relative\",\n // borderRadius: \"3rem 3rem 0\",\n // transform: \"rotate(45deg)\",\n // border: \"1px solid #FFFFFF\",\n path: { fill: \"red\" },\n },\n}));\n\nexport default function TruckParkingLayer(props) {\n const [query, dispatch] = useContext(RhinoQueryContext);\n const classes = useStyles();\n //const { utpData, utpCategoryLookups } = props;\n const { layerRef, countyList } = props;\n\n const customMarkerIcon = new L.icon({\n iconUrl: customMarkerIconSvg,\n iconRetinaUrl: customMarkerIconSvg,\n //iconAnchor: [20, 40],\n //popupAnchor: [0, -35],\n iconSize: [15, 15],\n //className: classes.icon,\n });\n\n const [featureData, setFeatureData] = useState({\n type: \"FeatureCollection\",\n features: [],\n });\n\n useEffect(() => {\n const fetchFeatureData = async () => {\n try {\n //http://localhost:5000/api/tcat_boundaries/findCountyBoundariesByCountyNumber/10,11,23\n // const dataUrlCnty = `${API_ROOT}/tcat_boundaries/findCountyBoundariesByCountyNumber/${countyList.join(\n // \",\"\n // )}`;\n // const responseCnty = await axios.get(dataUrlCnty);\n // setCountyBoundaries(responseCnty.data.jsonb_build_object);\n if (\n query.contextLayersVisibility.truckParkingLayer &&\n featureData.features.length === 0\n ) {\n //countyList.toString()\n // const response = await axios.get(\n // `${API_ROOT}` + \"/truck_parking_centroids/countyfips/48001,48003/\"\n // );\n // const response = await axios.get(\n // `${API_ROOT}` +\n // \"/truck_parking_centroids/county/\" +\n // countyList.toString() +\n // \"/\"\n // );\n const dataUrl = `${API_ROOT}/poi/getTruckParkingLocations?counties=${countyList.join(\n \",\"\n )}`;\n const response = await axios.get(dataUrl);\n let f = response.data.features;\n let fc = f.map((obj) => {\n obj.color = colorContextlayers.sandMines;\n return obj;\n });\n setFeatureData({ type: \"FeatureCollection\", features: fc });\n\n let numFeaturesContext = query.contextLayersNumbFeatures;\n numFeaturesContext.truckParkingLayer = fc.length;\n dispatch({\n type: \"setContextLayersNumbFeatures\",\n selection: numFeaturesContext,\n });\n // const dataUrl =\n // \"https://opendata.arcgis.com/datasets/595556c111e14519be70b955e10aa8ff_0.geojson\";\n // const response = await axios.get(dataUrl);\n // setFeatureData(response.data);\n\n // let numFeaturesContext = query.contextLayersNumbFeatures;\n // numFeaturesContext.portsLayer = response.data.features.length;\n // dispatch({\n // type: \"setContextLayersNumbFeatures\",\n // selection: numFeaturesContext,\n // });\n }\n } catch (e) {\n console.log(e);\n }\n };\n fetchFeatureData();\n }, [query.contextLayersVisibility.truckParkingLayer]);\n\n const pointToLayer = (feature, latlng) => {\n // let tooltipText = `\n //
    \n //
    \n //
    Ports Layer
    \n //
    \n //

    Name: ${feature.properties.PORT_NM}

    \n //

    Type: ${feature.properties.PORT_TYPE}

    \n //
    \n // `;\n // return L.marker(latlng, {\n // icon: customMarkerIcon,\n // }).bindTooltip(tooltipText);\n return L.marker(latlng, {\n icon: customMarkerIcon,\n });\n // let popupText = `\n //
    \n //
    \n //

    Counties

    \n //
    \n //

    Name: ${feature.properties.COUNTY}

    \n //

    County Code: ${feature.properties.COUNTYNUM}

    \n //

    County FIPS: ${feature.properties.COUNTY_FIP}

    \n //

    District: ${feature.properties.DISTRICT}

    \n //
    \n // `;\n // return layer.bindTooltip(tooltipText).bindPopup(popupText);\n };\n\n useEffect(() => {\n if (layerRef.current) {\n layerRef.current.leafletElement.clearLayers().addData(featureData);\n }\n }, [featureData, layerRef]);\n\n return (\n \n {query.contextLayersVisibility.truckParkingLayer &&\n featureData.features.length > 0 && (\n // \n \n {\"Truck Parking Location\"}\n \n\n // \n )}\n \n );\n}\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, {\n useState,\n useEffect,\n useRef,\n useContext,\n // useCallback\n} from \"react\";\nimport axios from \"axios\";\nimport {\n Map,\n TileLayer,\n GeoJSON,\n LayersControl,\n ScaleControl,\n withLeaflet,\n Popup,\n} from \"react-leaflet\";\n\nimport Control from \"react-leaflet-control\";\nimport {\n API_ROOT,\n COLOR_RHINO,\n MAPBOX_ACCESSTOKEN,\n MAPBOX_ATTRIBUTION,\n tx100_monitored_counties,\n baseLayers,\n} from \"../common/constants\";\nimport { RhinoQueryContext } from \"./RhinoQueryContext\";\n//import { TX100QueryContext } from \"./TX100QueryContext\";\n\n// import LoadingOverlay from \"react-loading-overlay\";\n// import BounceLoader from \"react-spinners/BounceLoader\";\n\n// import { makeStyles } from \"@material-ui/core/styles\";\n\nimport { scaleLinear } from \"d3-scale\";\nimport { interpolateTurbo } from \"d3-scale-chromatic\";\nimport { color as colorF } from \"d3-color\";\n\nimport HomeIcon from \"@material-ui/icons/Home\";\n\nimport MapTabs from \"./mapTabs\";\n//require('react-leaflet-markercluster/dist/styles.min.css');\n\nimport SandMinesLayer from \"./layers/SandMinesLayer\";\nimport DisposalWellsLayer from \"./layers/DisposalWellsLayer\";\nimport CountyBoundaryLayer from \"./layers/CountyBoundaryLayer\";\nimport DistrictBoundaryLayer from \"./layers/DistrictBoundaryLayer\";\nimport CommercialBorderCrossingLayer from \"./layers/CommercialBorderCrossingLayer\";\nimport NonCommercialBorderCrossingLayer from \"./layers/NonCommercialBorderCrossingLayer\";\nimport RailBorderCrossingLayer from \"./layers/RailBorderCrossingLayer\";\nimport PortsLayer from \"./layers/PortsLayer\";\nimport UTPLayer from \"./layers/UTPLayer\";\nimport CargoAirportsLayer from \"./layers/CargoAirportsLayer\";\nimport AirportsLayer from \"./layers/AirportsLayer\";\nimport TruckParkingLayer from \"./layers/TruckParkingLayer\";\n\nimport { latLngBounds, latLng } from \"leaflet\";\n\nimport bbox from \"@turf/bbox\";\n\nimport PrintControlDefault from \"react-leaflet-easyprint\";\nconst PrintControl = withLeaflet(PrintControlDefault);\n\n// const useStyles = makeStyles((theme) => ({\n// heading: {\n// fontSize: theme.typography.pxToRem(15),\n// fontWeight: theme.typography.fontWeightBold,\n// },\n// legendContainer: {\n// background: \"white\",\n// padding: \"5px\",\n// },\n// legendIcon: {\n// //height: \"5%\",\n// //width: \"auto\",\n// //border: \"1px\",\n// marginRight: \"5px\",\n// },\n// wrapIcon: {\n// //verticalAlign: 'middle',\n// display: \"flex\",\n// alignItems: \"center\",\n// },\n// roadwayLegendLine: {\n// width: \"25px\",\n// height: \"5px\",\n// background: \"#4d4dff\",\n// //float: 'left',\n// marginRight: \"5px\",\n// },\n// roadSegmentSelector: {\n// backgroundColor: theme.palette.background.paper,\n// },\n// }));\n\n/**\n * Renders the Leaflet map with the Rhino road segments\n *\n * @param {*} props React props\n */\nfunction TX100LeafletMap(props) {\n // const classes = useStyles();\n\n const [bounds, setBounds] = useState(\n latLngBounds(\n latLng(36.704958, -106.980078),\n latLng(25.78985, -93.45912),\n latLng(25.78985, -106.980078),\n latLng(36.704958, -93.45912)\n )\n );\n const [mapBounds, setmapBounds] = useState(\n latLngBounds(\n latLng(36.704958, -106.980078),\n latLng(25.78985, -93.45912),\n latLng(25.78985, -106.980078),\n latLng(36.704958, -93.45912)\n )\n );\n const [homeMapBounds, setHomeMapBounds] = useState(\n latLngBounds(\n latLng(36.704958, -106.980078),\n latLng(25.78985, -93.45912),\n latLng(25.78985, -106.980078),\n latLng(36.704958, -93.45912)\n )\n );\n\n /* County boundaries in GeoJSON format */\n // const [countyBoundaries, setCountyBoundaries] = useState({\n // type: \"FeatureCollection\",\n // features: [],\n // });\n /* Rhino road segments in GeoJSON format */\n const [rhino, setRhino] = useState({\n type: \"FeatureCollection\",\n features: [],\n });\n\n /*loading overlay status to display spinner*/\n // const [isLoading, setIsLoading] = useState(true);\n\n const [geoJsonKey, setGeoJsonKey] = useState(Date.now());\n\n const [info, setInfo] = useState(

    Hover over a road

    );\n\n /* const [rhinoColor, setRhinoColor] = useState(\"#ffffff\"); */\n const rhinoColorContainer = useRef(\"#ffffff\");\n const rhinoWeightContainer = useRef(3);\n\n /* the queries set by selecting the summary table rows */\n const [query, dispatch] = useContext(RhinoQueryContext);\n // const [query, dispatch] = useContext(TX100QueryContext);\n const [countyList, setCountyList] = useState([]);\n\n const {\n statusGuide,\n mapType,\n roadGeomFeatures,\n // setRoadGeomFeatures,\n // isLoading,\n // setIsLoading,\n } = props;\n\n //useEffect(() => {\n // const fetchCountyBoundaries = async () => {\n // try {\n // if (props.counties.length > 0) {\n // const dataUrl = `${API_ROOT}/counties/${props.counties.join(\n // \",\"\n // )}/boundary/`;\n // const response = await axios.get(dataUrl);\n // setCountyBoundaries(response.data);\n // /* console.log(response.data);*/\n // }\n // } catch (e) {\n // console.log(e);\n // }\n // };\n // fetchCountyBoundaries();\n //}, [props.counties]);\n\n // change fetchRhinoNetwork\n //useEffect(() => {\n // console.log(props.layerID)\n // const fetchRhinoNetwork = async () => {\n // try {\n // if (props.quads.length > 0) {\n // setIsLoading(true);\n // var promises;\n // var layerIDtemp = [props.layerID];\n // let routes = [props.route];\n // promises = routes.map(route => {\n // var dataUrl = `${API_ROOT}`+route;\n // //console.log(dataUrl)\n // return axios.get(dataUrl);\n // });\n // //var promises = axios.get(dataUrl)\n // //console.log(promises)\n // axios.all(promises).then(\n // //axios.get(promises).then(\n // axios.spread((...responses) => {\n // let f = [];\n // responses.map(r => {\n // f = f.concat(r.data.features);\n // });\n // let fc = f.map(obj => {\n // obj.color = COLOR_RHINO.normal;\n // return obj;\n // });\n // // without waiting (timeout), the geojson layer rendering\n // // finished before the data is copied to rhino state.\n // // this is a workaround. This should be fixed in different way.\n // setRhino({ type: \"FeatureCollection\", features: fc });\n // /* setTimeout(function() {\n // setRhino({ type: \"FeatureCollection\", features: fc });\n // }, 500);\n // */\n // setGeoJsonKey(Date.now());\n // setIsLoading(false);\n // })\n // );\n // }\n // } catch (e) {\n // console.log(e);\n // }\n // };\n // fetchRhinoNetwork();\n //}, [props.quads, props.year]);\n\n useEffect(() => {\n const fetchRhinoNetwork = async () => {\n try {\n //if (props.quads.length > 0) {\n if (props.layerID) {\n // setIsLoading(true);\n\n // const response = await axios.get(\n // `${API_ROOT}` +\n // props.route +\n // (props.route.includes(\"?\") ? \"&\" : \"?\") +\n // \"year=\" +\n // query.yearSelection\n // );\n // let f = response.data.features;\n let f = roadGeomFeatures.features;\n\n let fc = f.map((obj) => {\n obj.color = COLOR_RHINO.normal;\n obj.color_base = COLOR_RHINO.normal;\n obj.weight = 5;\n obj.weight_base = 5;\n return obj;\n });\n //.log(fc);\n //console.log(\"Test f end\");\n setRhino({\n type: \"FeatureCollection\",\n features: fc,\n });\n const layer = roadsLayerRef.current;\n if (layer) {\n layer.leafletElement.clearLayers().addData({\n type: \"FeatureCollection\",\n features: fc,\n });\n }\n\n dispatch({\n type: \"setFeatures\",\n payload: fc,\n });\n\n // setRoadGeomFeatures({\n // features: fc,\n // // features: roadGeomFeatures.features,\n // numFeatures: fc.length,\n // type: \"tx100\",\n // minValue: roadGeomFeatures.minValue,\n // maxValue: roadGeomFeatures.maxValue,\n // });\n\n setGeoJsonKey(Date.now());\n // setIsLoading(false);\n\n dispatch({\n type: \"setroadSegmentCategoryIndex\",\n selection: 0,\n });\n\n const findUnique = (array, key) => {\n var unique = array\n .map((p) => p.properties[key])\n .filter((key, index, arr) => arr.indexOf(key) === index);\n return unique;\n };\n // const response = await axios.get(process.env.PUBLIC_URL + `/TxDOT_Projects.geojson`);\n let cntyList = findUnique(fc, \"co\");\n //type={props.layerID === \"statewide\" ? \"rhino\" : \"tx100\"}\n if (statusGuide[0] === \"TX100\") {\n //if (props.layerID !== \"statewide\") {\n cntyList = tx100_monitored_counties.map((f) => {\n var nbr = f.cnty_nbr;\n return nbr;\n });\n }\n setCountyList(cntyList);\n }\n } catch (e) {\n console.log(e);\n }\n };\n fetchRhinoNetwork();\n\n setInfo(

    Hover over a road

    );\n }, [roadGeomFeatures]);\n //}, [props.layerID, props.year]);\n\n /* Highlights selected Rhino */\n\n useEffect(() => {\n /* I am cloning the rhino data.\n * Is it the best way to refresh the map\n * with highlights?\n */\n // let newRhino = { ...rhino };\n const isSelected = query.highlightQuery;\n if (typeof isSelected === \"function\") {\n if (rhino.features.filter((f) => isSelected(f.properties)).length > 0) {\n rhino.features\n .filter((f) => isSelected(f.properties))\n .forEach((f) => {\n // f.color = COLOR_RHINO.selected;\n f.color = f.color_base;\n f.weight = f.weight_base;\n });\n rhino.features\n .filter((f) => !isSelected(f.properties))\n //.forEach(f => (f.color = COLOR_RHINO.normal));\n .forEach((f) => {\n // f.color = f.color_base;\n f.color = COLOR_RHINO.notSelected;\n f.weight = 2;\n });\n // setTimeout(() => setRhino(newRhino), 100);\n } else {\n rhino.features\n // .filter((f) => isSelected(f.properties))\n .forEach((f) => {\n // f.color = COLOR_RHINO.selected;\n f.color = f.color_base;\n f.weight = f.weight_base;\n });\n }\n\n if (rhino.features.filter((f) => isSelected(f.properties)).length > 0) {\n const mapBounds_bbox = bbox(\n {\n type: \"FeatureCollection\",\n features: rhino.features.filter((f) => isSelected(f.properties)),\n }\n //{ rhino }\n );\n\n mapRef.current.leafletElement.flyToBounds([\n [mapBounds_bbox[1] * 0.999, mapBounds_bbox[0] * 1.001],\n [mapBounds_bbox[3] * 1.001, mapBounds_bbox[2] * 0.999],\n ]);\n } else {\n mapRef.current.leafletElement.flyToBounds([homeMapBounds]);\n }\n\n setGeoJsonKey(Date.now());\n }\n }, [query.highlightQuery]);\n\n const [minTrkCatValue, setminTrkCatValue] = useState(0);\n const [maxTrkCatValue, setmaxTrkCatValue] = useState(1000000);\n // const [\n // roadSegmentCategorySelected,\n // setroadSegmentCategorySelected,\n // ] = useState(\"none\");\n useEffect(() => {\n /* I am cloning the rhino data.\n * Is it the best way to refresh the map\n * with highlights?\n */\n // let newRhino = { ...rhino };\n\n // setroadSegmentCategorySelected(query.roadSegmentCategory);\n\n const isSelected = query.highlightQuery;\n if (typeof isSelected === \"function\") {\n let rdSeqCat = \"none\";\n //if (query.roadSegmentCategory === \"none\") return f.color_normal\n if (query.roadSegmentCategory === \"tdly\") rdSeqCat = \"tdly\";\n if (query.roadSegmentCategory === \"trank\") rdSeqCat = \"trank\";\n if (query.roadSegmentCategory === \"tdmile\") rdSeqCat = \"tdmile\";\n if (query.roadSegmentCategory === \"ttci\") rdSeqCat = \"ttci\";\n if (query.roadSegmentCategory === \"tpti\") rdSeqCat = \"tpti\";\n if (query.roadSegmentCategory === \"tcost\") rdSeqCat = \"tcost\";\n\n function rgbToHex(r, g, b) {\n return (\n \"#\" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)\n );\n }\n\n function colorScale(height, minValue, maxValue) {\n //const color = d3.color(d3.interpolateRdYlGn(linearScale(height)));\n //const color = d3.color(d3.interpolatePuRd(linearScale(height)));\n //const color = d3.color(d3.interpolateOrRd(linearScale(height)));\n\n const linearScale = scaleLinear()\n .domain([minValue, maxValue])\n .range([0, 1]);\n\n //const color = colorF(interpolateTurbo(linearScale(height)));\n let color = colorF(interpolateTurbo(linearScale(height)));\n if (height === null)\n color = colorF(interpolateTurbo(linearScale(minValue)));\n\n return rgbToHex(color.r, color.g, color.b);\n }\n function colorScaleInv(height, minValue, maxValue) {\n //const color = d3.color(d3.interpolateRdYlGn(linearScale(height)));\n //const color = d3.color(d3.interpolatePuRd(linearScale(height)));\n //const color = d3.color(d3.interpolateOrRd(linearScale(height)));\n\n const linearScale = scaleLinear()\n .domain([minValue, maxValue])\n .range([1, 0]);\n\n //const color = colorF(interpolateTurbo(linearScale(height)));\n let color = colorF(interpolateTurbo(linearScale(height)));\n if (height === null)\n color = colorF(interpolateTurbo(linearScale(maxValue)));\n\n return rgbToHex(color.r, color.g, color.b);\n }\n\n function weightScale(height, minValue, maxValue) {\n const linearScale = scaleLinear()\n .domain([minValue, maxValue])\n .range([0.1, 3]);\n\n const weight = linearScale(height);\n\n return weight;\n }\n function weightScaleInv(height, minValue, maxValue) {\n const linearScale = scaleLinear()\n .domain([minValue, maxValue])\n .range([3, 0.1]);\n\n const weight = linearScale(height);\n\n return weight;\n }\n\n let minValue = 10000000;\n let maxValue = 0;\n function maxCalc(compVal, value) {\n if (value !== null) {\n return Math.max(compVal, value);\n } else {\n return compVal;\n }\n }\n function minCalc(compVal, value) {\n if (value !== null) {\n return Math.min(compVal, value);\n } else {\n return compVal;\n }\n }\n rhino.features.forEach(\n (f) => (\n (maxValue = maxCalc(maxValue, f.properties[rdSeqCat])),\n (minValue = minCalc(minValue, f.properties[rdSeqCat]))\n )\n );\n\n // rhino.features.forEach(\n // (f) => (\n // (maxValue = Math.max(maxValue, f.properties[rdSeqCat])),\n // (minValue = Math.min(minValue, f.properties[rdSeqCat]))\n // )\n // );\n\n if (query.roadSegmentCategory === \"tdly\")\n setminTrkCatValue(minValue.toFixed(0));\n if (query.roadSegmentCategory === \"trank\")\n setminTrkCatValue(minValue.toFixed(0));\n if (query.roadSegmentCategory === \"tdmile\")\n setminTrkCatValue(minValue.toFixed(2));\n if (query.roadSegmentCategory === \"ttci\")\n setminTrkCatValue(minValue.toFixed(2));\n if (query.roadSegmentCategory === \"tpti\")\n setminTrkCatValue(minValue.toFixed(2));\n if (query.roadSegmentCategory === \"tcost\")\n setminTrkCatValue(minValue.toFixed(2));\n\n if (query.roadSegmentCategory === \"tdly\")\n setmaxTrkCatValue(maxValue.toFixed(0));\n if (query.roadSegmentCategory === \"trank\")\n setmaxTrkCatValue(maxValue.toFixed(0));\n if (query.roadSegmentCategory === \"tdmile\")\n setmaxTrkCatValue(maxValue.toFixed(2));\n if (query.roadSegmentCategory === \"ttci\")\n setmaxTrkCatValue(maxValue.toFixed(2));\n if (query.roadSegmentCategory === \"tpti\")\n setmaxTrkCatValue(maxValue.toFixed(2));\n if (query.roadSegmentCategory === \"tcost\")\n setmaxTrkCatValue(maxValue.toFixed(2));\n\n rhino.features\n .filter((f) => isSelected(f.properties))\n .forEach((f) => (f.color = COLOR_RHINO.selected));\n if (query.roadSegmentCategory === \"none\") {\n rhino.features\n .filter((f) => !isSelected(f.properties))\n .forEach(\n (f) => (\n (f.color_base = COLOR_RHINO.normal),\n (f.color = f.color_base),\n (f.weight_base = 3),\n (f.weight = f.weight_base)\n )\n );\n } else {\n if (query.roadSegmentCategory === \"trank\") {\n rhino.features\n .filter((f) => !isSelected(f.properties))\n .forEach(\n (f) => (\n (f.color_base = colorScaleInv(\n f.properties[rdSeqCat],\n minValue,\n maxValue\n )),\n (f.color = f.color_base),\n (f.weight_base = Math.max(\n 0.25,\n weightScaleInv(f.properties[rdSeqCat], minValue, maxValue) * 5\n )),\n (f.weight = f.weight_base)\n )\n );\n } else {\n rhino.features\n .filter((f) => !isSelected(f.properties))\n .forEach(\n (f) => (\n (f.color_base = colorScale(\n f.properties[rdSeqCat],\n minValue,\n maxValue\n )),\n (f.color = f.color_base),\n (f.weight_base = Math.max(\n 0.25,\n weightScale(f.properties[rdSeqCat], minValue, maxValue) * 5\n )),\n (f.weight = f.weight_base)\n )\n );\n }\n }\n\n setGeoJsonKey(Date.now());\n }\n }, [query.roadSegmentCategory]);\n\n /* Build a list of property as an unordered list in jsx\n * @param {*} rprops Rhino road segment properties\n */\n const stylesHoverBox = {\n h6Header: {\n textAlign: \"left\",\n },\n leftText: {\n textAlign: \"left\",\n marginBottom: \"0.5em\",\n },\n leftBullet: {\n textAlign: \"left\",\n marginLeft: \"-25px\",\n },\n rightBullet: {\n textAlign: \"left\",\n marginLeft: \"20px\",\n },\n leftHeader: {\n textAlign: \"left\",\n marginLeft: \"-35px\",\n },\n rightHeader: {\n textAlign: \"left\",\n marginLeft: \"10px\",\n },\n };\n const rhinoInfo = (rprops) => {\n return (\n
    \n

    \n {/* {rprops.highway_name} ({rprops.frm_dfo} - {rprops.to_dfo}) */}\n {/* {rprops.ria_rte_id} ({rprops.frm_dfo} - {rprops.to_dfo}) */}\n {rprops.road}\n

    \n {/*
    {rprops.from_rd} to {rprops.to_rd}
    */}\n
    From: {rprops.from_road}
    \n
    To: {rprops.to_road}
    \n {/*

    From/To DFO: {rprops.frm_dfo.toLocaleString()} to {rprops.to_dfo.toLocaleString()}

    */}\n

    TX100 ID: {rprops.top100id}

    \n {/*

    \n Congestion Stats Year: {rprops.year}{\" \"}\n

    */}\n {/*

    Length of Segment: {rprops.leng.toLocaleString()}

    */}\n
      \n
      \n
      \n Truck\n
    • \n Top 100 Rank: {rprops.trank.toLocaleString()}{\" \"}\n
    • \n
    • \n Hours of Delay: {rprops.tdly.toLocaleString()}{\" \"}\n
    • \n
    • \n Delay Per Mile: {rprops.tdmile.toLocaleString()}{\" \"}\n
    • \n
    • \n Congestion Cost: ${rprops.tcost.toLocaleString()}{\" \"}\n
    • \n
      \n
      \n All Vehicles\n
    • \n Top 100 Rank: {rprops.arank.toLocaleString()}{\" \"}\n
    • \n
    • \n Hours of Delay: {rprops.dly.toLocaleString()}{\" \"}\n
    • \n
    • \n Delay Per Mile: {rprops.dmile.toLocaleString()}{\" \"}\n
    • \n
    • \n Congestion Cost: ${rprops.cost.toLocaleString()}{\" \"}\n
    • \n
      \n
      \n
    \n
    \n );\n };\n const getRhinoStyle = (feature) => {\n //return { color: feature.color };\n\n return {\n color: feature.color,\n weight: feature.weight,\n fillOpacity: 0.6,\n opacity: 0.6,\n };\n };\n\n /* Highlights on mouseOver */\n const handleMouseOver = (feature, e) => {\n const layer = e.target;\n rhinoColorContainer.current = feature.color;\n rhinoWeightContainer.current = feature.weight;\n feature.color = COLOR_RHINO.selected;\n feature.weight = 5;\n layer.setStyle({\n weight: feature.weight,\n color: feature.color,\n dashArray: \"\",\n fillOpacity: 0.7,\n });\n setInfo(rhinoInfo(feature.properties));\n };\n\n /* Reset default style on mouseOut */\n const handleMouseOut = (feature, e) => {\n const layer = e.target;\n feature.color = rhinoColorContainer.current;\n feature.weight = rhinoWeightContainer.current;\n layer.setStyle({\n weight: feature.weight,\n color: feature.color,\n dashArray: \"\",\n fillOpacity: 0.6,\n opacity: 0.6,\n });\n };\n\n /* inside handleClick query.popUpEnabled doesn't work since it has created\n * at the time of creation and not changed. So I am using useRef and useEffect\n * to reflect the changed value of query.popUpEnabled variable.\n * see https://stackoverflow.com/questions/53845595/wrong-react-hooks-behaviour-with-event-listener\n * */\n const popUp = useRef(false);\n useEffect(() => {\n popUp.current = query.popUpEnabled;\n }, [query.popUpEnabled]);\n\n /* leaflet's layer work only with text not HTML element created by jsx */\n const formatPopUp = (rprops) => {\n /*\n const id = `${rprops.ria_rte_id}_${rprops.frm_dfo\n .toString()\n .replace(\".\", \"d\")}`;\n */\n const id = `${rprops.top100id}`;\n //const fromHereTooltip = \"Starting segment\";\n return [\n /*`\n
    \n
    ${rprops.road}
    \n
    ${rprops.from_road} to ${rprops.to_road}
    \n
    TX100 ID: ${rprops.top100id}
    \n \n Add to data table:\n From here\n To here\n \n \n
    \n`\n*/\n `\n
    \n
    ${rprops.road}
    \n
    ${rprops.from_road} to ${rprops.to_road}
    \n
    TX100 ID: ${rprops.top100id}
    \n
    \n Add segment to data table:\n \n
    \n
    \n`,\n id,\n ];\n };\n\n /* Tracks user road selection process*/\n const defaultUserSelection = {\n /* \n from_ria_rte_id: \"\",\n from_frm_dfo: Number.Nan,\n from_to_dfo: Number.NaN,\n to_frm_dfo: Number.NaN,\n to_to_dfo: Number.NaN\n */\n\n top100id: \"\",\n from_road: \"\",\n to_road: \"\",\n };\n const userSelection = useRef(defaultUserSelection);\n /* Resets the previous user selection highlights */\n /*\n const resetUserSelection = ria_rte_id => {\n // let newRhino = { ...rhino };\n rhino.features\n .filter(f => f.properties.ria_rte_id === ria_rte_id)\n .forEach(f => (f.color = COLOR_RHINO.normal));\n // setRhino(newRhino);\n setGeoJsonKey(Date.now());\n userSelection.current = defaultUserSelection;\n };\n */\n const resetUserSelection = (top100id) => {\n // let newRhino = { ...rhino };\n rhino.features\n .filter((f) => f.properties.top100id === top100id)\n .forEach((f) => (f.color = f.color_base)); //COLOR_RHINO.normal));\n // setRhino(newRhino);\n setGeoJsonKey(Date.now());\n userSelection.current = defaultUserSelection;\n };\n\n // const highlightUserSelection = () => {\n // // let newRhino = { ...rhino };\n // const selection = userSelection.current;\n // rhino.features\n // .filter(f => f.properties.ria_rte_id === selection.from_ria_rte_id)\n // .forEach(f => (f.color = COLOR_RHINO.selected));\n // rhino.features\n // .filter(f => f.properties.ria_rte_id !== selection.from_ria_rte_id)\n // .forEach(f => (f.color = COLOR_RHINO.notSelected));\n // if (!isNaN(selection.to_to_dfo)) {\n // const fromDfo = Math.min(selection.from_frm_dfo, selection.to_frm_dfo);\n // const toDfo = Math.max(selection.from_to_dfo, selection.to_to_dfo);\n // rhino.features\n // .filter(\n // f =>\n // f.properties.ria_rte_id === selection.from_ria_rte_id &&\n // (f.properties.frm_dfo >= fromDfo && f.properties.to_dfo <= toDfo)\n // )\n // .forEach(f => (f.color = COLOR_RHINO.selectedSection));\n // } else {\n // /* if toHere is not selected */\n // rhino.features.filter(\n // f =>\n // f.properties.ria_rte_id === selection.from_ria_rte_id &&\n // f.properties.frm_dfo === selection.from_frm_dfo\n // )[0].color = COLOR_RHINO.selectedSection;\n // }\n // // setRhino(newRhino);\n // setGeoJsonKey(Date.now());\n // };\n\n const highlightUserSelectionTX100 = () => {\n // let newRhino = { ...rhino };\n const selection = userSelection.current;\n rhino.features\n .filter(\n (f) =>\n f.properties.top100id === selection.top100id &&\n f.properties.from_road === selection.from_road &&\n f.properties.to_road === selection.to_road\n )\n .forEach((f) => (f.color = COLOR_RHINO.selected));\n rhino.features\n .filter((f) => f.properties.top100id !== selection.top100id)\n .forEach((f) => (f.color = f.color_base)); //COLOR_RHINO.normal));\n\n setGeoJsonKey(Date.now());\n };\n\n /*\n const handleFromHereClick = (rprops, e) => {\n e.preventDefault();\n resetUserSelection(userSelection.current.from_ria_rte_id);\n userSelection.current = {\n from_ria_rte_id: rprops.ria_rte_id,\n from_frm_dfo: rprops.frm_dfo,\n from_to_dfo: rprops.to_dfo\n };\n highlightUserSelection();\n };\n const handleToHereClick = (rprops, e) => {\n e.preventDefault();\n let newSelection = { ...userSelection.current };\n newSelection.to_frm_dfo = rprops.frm_dfo;\n newSelection.to_to_dfo = rprops.to_dfo;\n userSelection.current = newSelection;\n const fromDfo = Math.min(\n newSelection.from_frm_dfo,\n newSelection.to_frm_dfo\n );\n const toDfo = Math.max(newSelection.from_to_dfo, newSelection.to_to_dfo);\n dispatch({\n type: \"setUserSelection\",\n selection: {\n ria_rte_id: newSelection.from_ria_rte_id,\n frm_dfo: fromDfo,\n to_dfo: toDfo\n }\n });\n highlightUserSelection();\n };\n */\n const handleAddToTableClick = (rprops, e) => {\n e.preventDefault();\n /*\n let newSelection = { ...userSelection.current };\n newSelection.to_frm_dfo = rprops.frm_dfo;\n newSelection.to_to_dfo = rprops.to_dfo;\n userSelection.current = newSelection;\n const fromDfo = Math.min(\n newSelection.from_frm_dfo,\n newSelection.to_frm_dfo\n );\n const toDfo = Math.max(newSelection.from_to_dfo, newSelection.to_to_dfo);\n dispatch({\n type: \"setUserSelection\",\n selection: {\n ria_rte_id: newSelection.from_ria_rte_id,\n frm_dfo: fromDfo,\n to_dfo: toDfo\n }\n });\n */\n\n //console.log(rprops.top100id);\n resetUserSelection(userSelection.current.top100id);\n userSelection.current = {\n top100id: rprops.top100id,\n from_road: rprops.from_road,\n to_road: rprops.to_road,\n road: rprops.road,\n };\n dispatch({\n type: \"setUserSelectionTX100\",\n selection: {\n top100id: rprops.top100id,\n from_road: rprops.from_road,\n to_road: rprops.to_road,\n road: rprops.road,\n },\n });\n\n highlightUserSelectionTX100();\n };\n\n /* Binds a popup with the clicked rhino segment and registers event listeners'\n * for \"From here\" and \"To here\" links inside the popup.\n * Event listener registerd with classical Javascript way since the popup content\n * was created by Leaflet's bindPopup method not by jsx */\n const handleClick = (feature, layer, e) => {\n if (popUp.current) {\n /* if popUp enabled by selecting the \"My Roads\" tab*/\n const props = feature.properties;\n const [text, id] = formatPopUp(props);\n layer.bindPopup(text).openPopup();\n /* \n const fromHere = document.querySelector(`#from-here-${id}`);\n const toHere = document.querySelector(`#to-here-${id}`);\n fromHere.addEventListener(\"click\", handleFromHereClick.bind(null, props));\n toHere.addEventListener(\"click\", handleToHereClick.bind(null, props));\n */\n\n const addSegment = document.querySelector(`#add-to-table-${id}`);\n addSegment.addEventListener(\n \"click\",\n handleAddToTableClick.bind(null, props)\n );\n }\n };\n\n /* @see See https://jsfiddle.net/thbh99nu/2/ */\n const onEachFeature = (feature, layer) => {\n layer.on({\n mouseover: handleMouseOver.bind(null, feature),\n mouseout: handleMouseOut.bind(null, feature),\n // click: handleClick.bind(null, feature, layer),\n });\n };\n\n /* have to pass a unique key to Map to re-render leaflet map\n * when the road data is changed. Since the road data\n * changed based on regionId and year, this pass the combination of both\n * as a key. This is a bug in react-leaflet.\n * See https://stackoverflow.com/questions/44155385/rendering-geojson-with-react-leaflet\n */\n const { BaseLayer, Overlay } = LayersControl;\n\n const [mapZoom, setMapZoom] = useState(props.Zoom);\n\n const [selectedBaselayer, setselectedBaselayer] = useState(\n query.selectedBaselayer\n );\n\n useEffect(() => {\n if (query.roadSegmentCategory === \"none\") {\n setselectedBaselayer(\"Streets\");\n } else {\n setselectedBaselayer(query.selectedBaselayer);\n }\n }, [query.roadSegmentCategory]);\n useEffect(() => {\n dispatch({\n type: \"setroadSegmentCategory\",\n selection: \"none\",\n });\n }, [props.route]);\n\n const createBaseLayer = (props) => {\n if (selectedBaselayer === props.name) {\n return (\n \n \n \n );\n } else {\n return (\n \n \n \n );\n }\n };\n\n const countyBoundariesRef = useRef(null);\n const mapRef = useRef(null);\n const districtBoundariesRef = useRef(null);\n const commercialBorderCrossingsRef = useRef(null);\n const nonCommercialBorderCrossingsRef = useRef(null);\n const railBorderCrossingsRef = useRef(null);\n const portsLayerRef = useRef(null);\n const utpLayerRef = useRef(null);\n const CargoAirportsLayerRef = useRef(null);\n const airportsLayerRef = useRef(null);\n const truckParkingLayerRef = useRef(null);\n const roadsLayerRef = useRef(null);\n\n const printControlRef = useRef();\n const exportControlRef = useRef();\n\n var a3Size = {\n //width: 1045,\n //height: 715,\n width: 1500,\n height: 715,\n className: \"a3CssClass\",\n tooltip: \"A custom A3 size\",\n name: \"Cropped Size\",\n };\n\n const [utpMapLayersCount, setutpMapLayersCount] = useState({\n underwayorsoon: 0,\n within4years: 0,\n fivetotenyears: 0,\n tenplusyears: 0,\n });\n //console.log(\"utpMapLayersCount\", utpMapLayersCount);\n\n function setmapDownloadName(type) {\n const date = new Date();\n const mapDownloadName =\n \"tx100-\" +\n statusGuide[1].split(\" \").join(\"-\") +\n \"-\" +\n date\n .toLocaleDateString()\n .split(\"/\")\n .join(\"-\") +\n \"-\" +\n date\n .toLocaleTimeString()\n .split(\" \")\n .join(\"-\")\n .split(\":\")\n .join(\"-\");\n\n return mapDownloadName;\n }\n\n const popupRef = useRef(false);\n window.popupRef = popupRef;\n function handlePopupOpen(a, b, c) {\n let featureProps =\n popupRef.current.leafletElement._source.feature.properties;\n setPopupTitle(`${featureProps.road}`);\n setPopupTitle2(`${featureProps.from_road} to ${featureProps.to_road}`);\n }\n const [popupTitle, setPopupTitle] = useState(\"untitled\");\n const [popupTitle2, setPopupTitle2] = useState(\"untitled\");\n\n console.log(\"statusGuide-Check\", statusGuide, props.route);\n function handleAddSegment() {\n let rprops = popupRef.current.leafletElement._source.feature.properties;\n\n resetUserSelection(userSelection.current.top100id);\n userSelection.current = {\n top100id: rprops.top100id,\n from_road: rprops.from_road,\n to_road: rprops.to_road,\n road: rprops.road,\n };\n dispatch({\n type: \"setUserSelectionTX100\",\n selection: {\n top100id: rprops.top100id,\n from_road: rprops.from_road,\n to_road: rprops.to_road,\n road: rprops.road,\n },\n });\n\n highlightUserSelectionTX100();\n\n popupRef.current.leafletElement.remove(); //closes the popup\n }\n\n return (\n \n {/**/}\n\n {/* }\n text={\n props.layerID\n ? \"Loading stats layer...\"\n : \"Please select a layer from the menu on the left...\"\n }\n styles={{\n overlay: (base) => ({\n ...base,\n height: \"650px\",\n }),\n }}\n > */}\n {}\n {}\n {countyList.length > 0 && (\n \n )}\n {}\n {\n \n }\n {\n \n }\n {}\n {}\n {\n \n }\n {}\n {}\n {countyList.length > 0 && (\n \n )}\n\n \n {baseLayers.map((obj) => createBaseLayer(obj))}\n\n {rhino.features.length > 0 && (\n \n \n \n
    \n

    \n Layer ID: {props.layerID}\n

    \n
    {popupTitle}
    \n

    {popupTitle2}

    \n
    \n

    \n To add road segment to the data table, click{\" \"}\n Add segment below.\n

    \n

    \n \n Add segment\n \n

    \n
    \n
    \n
    \n \n
    \n )}\n
    \n {/* */}\n\n \n setMapZoom(mapZoom - 1)}\n className={\"home-button\"}\n >\n {\" \"}\n {/*Increment of -1 used to trigger state change*/}\n \n \n \n\n \n\n \n \n \n\n \n \n
    \n );\n}\n\nexport default TX100LeafletMap;\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, {\n useState,\n useEffect,\n useRef,\n useContext,\n // useCallback,\n} from \"react\";\nimport axios from \"axios\";\nimport {\n Map,\n TileLayer,\n GeoJSON,\n LayersControl,\n ScaleControl,\n // AttributionControl,\n // Popup,\n // Tooltip,\n // Marker,\n // LayerGroup,\n withLeaflet,\n Popup,\n Marker,\n} from \"react-leaflet\";\n\nimport Control from \"react-leaflet-control\";\nimport {\n API_ROOT,\n COLOR_RHINO,\n MAPBOX_ACCESSTOKEN,\n MAPBOX_ATTRIBUTION,\n // MAPBOX_URL,\n // MAPBOX_STREETS_V10_URL,\n tx100_monitored_counties,\n baseLayers,\n} from \"../common/constants\";\nimport { RhinoQueryContext } from \"./RhinoQueryContext\";\n\n// import LoadingOverlay from \"react-loading-overlay\";\n// import BounceLoader from \"react-spinners/BounceLoader\";\n\nimport bbox from \"@turf/bbox\";\n//import LayerMarkers from \"../components/map-layer-markers\";\n// import { icon } from \"leaflet\";\n//import MarkerClusterGroup from \"react-leaflet-markercluster\";\n\n// import { makeStyles } from \"@material-ui/core/styles\";\n// import Typography from \"@material-ui/core/Typography\";\n//import Utils from \"../common/utils\";\n\nimport { scaleLinear } from \"d3-scale\";\nimport { interpolateTurbo } from \"d3-scale-chromatic\";\nimport { color as colorF } from \"d3-color\";\n//d3.color(d3.interpolateTurbo\n\nimport MapTabs from \"./mapTabs\";\n\nimport HomeIcon from \"@material-ui/icons/Home\";\n\nimport SandMinesLayer from \"./layers/SandMinesLayer\";\nimport DisposalWellsLayer from \"./layers/DisposalWellsLayer\";\nimport CountyBoundaryLayer from \"./layers/CountyBoundaryLayer\";\nimport DistrictBoundaryLayer from \"./layers/DistrictBoundaryLayer\";\nimport CommercialBorderCrossingLayer from \"./layers/CommercialBorderCrossingLayer\";\nimport NonCommercialBorderCrossingLayer from \"./layers/NonCommercialBorderCrossingLayer\";\nimport RailBorderCrossingLayer from \"./layers/RailBorderCrossingLayer\";\nimport PortsLayer from \"./layers/PortsLayer\";\n//import UTPLayer from \"./layers/UTPLayer\";\nimport UTPLayer from \"./layers/UTPLayer\";\nimport CargoAirportsLayer from \"./layers/CargoAirportsLayer\";\nimport AirportsLayer from \"./layers/AirportsLayer\";\nimport TruckParkingLayer from \"./layers/TruckParkingLayer\";\n\nimport { latLngBounds, latLng } from \"leaflet\";\n\n//require('react-leaflet-markercluster/dist/styles.min.css');\n\nimport PrintControlDefault from \"react-leaflet-easyprint\";\nconst PrintControl = withLeaflet(PrintControlDefault);\n\n// const useStyles = makeStyles((theme) => ({\n// heading: {\n// fontSize: theme.typography.pxToRem(15),\n// fontWeight: theme.typography.fontWeightBold,\n// },\n// legendContainer: {\n// background: \"white\",\n// padding: \"5px\",\n// },\n// legendIcon: {\n// //height: \"5%\",\n// //width: \"auto\",\n// //border: \"1px\",\n// marginRight: \"5px\",\n// },\n// wrapIcon: {\n// //verticalAlign: 'middle',\n// display: \"flex\",\n// alignItems: \"center\",\n// },\n// roadwayLegendLine: {\n// width: \"25px\",\n// height: \"5px\",\n// background: \"#4d4dff\",\n// //float: 'left',\n// marginRight: \"5px\",\n// },\n// }));\n\n/**\n * Renders the Leaflet map with the Rhino road segments\n *\n * @param {*} props React props\n */\nfunction RhinoLeafletMap(props) {\n // const classes = useStyles();\n /* County boundaries in GeoJSON format */\n\n const mapRef = useRef(null);\n const [countyBoundaries, setCountyBoundaries] = useState({\n type: \"FeatureCollection\",\n features: [],\n });\n /* Rhino road segments in GeoJSON format */\n const [rhino, setRhino] = useState({\n type: \"FeatureCollection\",\n features: [],\n });\n\n /*loading overlay status to display spinner*/\n // const [isLoading, setIsLoading] = useState(true);\n\n const [geoJsonKey, setGeoJsonKey] = useState(Date.now());\n\n const [info, setInfo] = useState(

    Hover over a road

    );\n /* const [rhinoColor, setRhinoColor] = useState(\"#ffffff\"); */\n const rhinoColorContainer = useRef(\"#ffffff\");\n const rhinoWeightContainer = useRef(3);\n\n /* the queries set by selecting the summary table rows */\n const [query, dispatch] = useContext(RhinoQueryContext);\n\n // const [mapBounds, setmapBounds] = useState();\n const [homeMapBounds, setHomeMapBounds] = useState(null);\n const [countyList, setCountyList] = useState([]);\n\n const { statusGuide, mapType, roadGeomFeatures, setRoadGeomFeatures } = props;\n\n // useEffect(() => {\n // const fetchCountyBoundaries = async () => {\n // try {\n // if (props.counties.length > 0) {\n // const dataUrl = `${API_ROOT}/counties/${props.counties.join(\n // \",\"\n // )}/boundary/`;\n // const response = await axios.get(dataUrl);\n // setCountyBoundaries(response.data);\n // /* console.log(response.data);*/\n // }\n // } catch (e) {\n // console.log(e);\n // }\n // };\n // fetchCountyBoundaries();\n // }, [props.counties]);\n\n // change fetchRhinoNetwork\n // useEffect(() => {\n // //console.log(props.layerID)\n // const fetchRhinoNetwork = async () => {\n // try {\n // if (props.quads.length > 0) {\n // setIsLoading(true);\n // var promises;\n // let routes = [props.route];\n //\n // promises = routes.map(route => {\n // const dataUrl = `${API_ROOT}`+route+'/year/'+props.year;\n // console.log(dataUrl)\n // return axios.get(dataUrl);\n // });\n // //console.log(promises)\n // axios.all(promises).then(\n // axios.spread((...responses) => {\n // let f = [];\n // responses.map(r => {\n // f = f.concat(r.data.features);\n // });\n // let fc = f.map(obj => {\n // obj.color = COLOR_RHINO.normal;\n // return obj;\n // });\n // // without waiting (timeout), the geojson layer rendering\n // // finished before the data is copied to rhino state.\n // // this is a workaround. This should be fixed in different way.\n // setRhino({ type: \"FeatureCollection\", features: fc });\n // /* setTimeout(function() {\n // setRhino({ type: \"FeatureCollection\", features: fc });\n // }, 500);\n // */\n // setGeoJsonKey(Date.now());\n // setIsLoading(false);\n // })\n // );\n // }\n // } catch (e) {\n // console.log(e);\n // }\n // };\n // fetchRhinoNetwork();\n // console.log(props.quads);\n // }, [props.quads, props.year]);\n\n // console.log(\"render-check\");\n useEffect(() => {\n //console.log(props.layerID)\n const fetchRhinoNetwork = async () => {\n try {\n //if (props.quads.length > 0) {\n if (props.layerID) {\n // setIsLoading(true);\n\n // const response = await axios.get(\n // `${API_ROOT}` + props.route + \"&year=\" + props.year\n // );\n // //console.log(response);\n // //console.log(response.data);\n // let f = response.data.features;\n let f = roadGeomFeatures.features;\n\n let fc = f.map((obj) => {\n obj.color = COLOR_RHINO.normal;\n obj.color_base = COLOR_RHINO.normal;\n obj.weight = 4;\n obj.weight_base = 4;\n return obj;\n });\n setRhino({\n type: \"FeatureCollection\",\n features: fc,\n });\n dispatch({\n type: \"setFeatures\",\n payload: fc,\n });\n\n // setRoadGeomFeatures({\n // features: fc,\n // // features: roadGeomFeatures.features,\n // numFeatures: fc.length,\n // type: \"rhino\",\n // minValue: roadGeomFeatures.minValue,\n // maxValue: roadGeomFeatures.maxValue,\n // });\n\n const layer = roadsLayerRef.current;\n if (layer) {\n layer.leafletElement.clearLayers().addData({\n type: \"FeatureCollection\",\n features: fc,\n });\n }\n\n setGeoJsonKey(Date.now());\n // setIsLoading(false);\n\n const mapBounds_bbox = bbox(\n { type: \"FeatureCollection\", features: fc }\n //{ rhino }\n );\n\n // setmapBounds([\n // // [mapBounds_bbox[1], mapBounds_bbox[0]],\n // // [mapBounds_bbox[3], mapBounds_bbox[2]],\n // [mapBounds_bbox[1] * 0.999, mapBounds_bbox[0] * 1.001],\n // [mapBounds_bbox[3] * 1.001, mapBounds_bbox[2] * 0.99],\n // ]);\n setHomeMapBounds(\n latLngBounds(\n [mapBounds_bbox[1] * 0.999, mapBounds_bbox[0] * 1.001],\n [mapBounds_bbox[3] * 1.001, mapBounds_bbox[2] * 0.99]\n )\n );\n\n dispatch({\n type: \"setroadSegmentCategoryIndex\",\n selection: 0,\n });\n\n const findUnique = (array, key) => {\n var unique = array\n .map((p) => p.properties[key])\n .filter((key, index, arr) => arr.indexOf(key) === index);\n return unique;\n };\n // const response = await axios.get(process.env.PUBLIC_URL + `/TxDOT_Projects.geojson`);\n let cntyList = findUnique(fc, \"co\");\n //type={props.layerID === \"statewide\" ? \"rhino\" : \"tx100\"}\n if (statusGuide[0] === \"TX100\") {\n //if (props.layerID !== \"statewide\") {\n cntyList = tx100_monitored_counties.map((f) => {\n var nbr = f.cnty_nbr;\n return nbr;\n });\n }\n setCountyList(cntyList);\n }\n } catch (e) {\n console.log(e);\n }\n };\n fetchRhinoNetwork();\n\n setInfo(

    Hover over a road

    );\n // }, [props.layerID, props.year]);\n }, [roadGeomFeatures]);\n\n /* Highlights selected Rhino */\n useEffect(() => {\n /* I am cloning the rhino data.\n * Is it the best way to refresh the map\n * with highlights?\n */\n // let newRhino = { ...rhino };\n const isSelected = query.highlightQuery;\n if (typeof isSelected === \"function\") {\n if (rhino.features.filter((f) => isSelected(f.properties)).length > 0) {\n rhino.features\n .filter((f) => isSelected(f.properties))\n .forEach((f) => {\n // f.color = COLOR_RHINO.selected;\n // f.weight = 5;\n f.color = f.color_base;\n f.weight = f.weight_base;\n });\n rhino.features\n .filter((f) => !isSelected(f.properties))\n //.forEach(f => (f.color = COLOR_RHINO.normal));\n //.forEach(f => (f.color = setColor(f)));\n .forEach((f) => {\n // f.color = f.color_base;\n // f.weight = f.weight_base;\n f.color = COLOR_RHINO.notSelected;\n f.weight = 2;\n });\n } else {\n rhino.features\n // .filter((f) => isSelected(f.properties))\n .forEach((f) => {\n // f.color = COLOR_RHINO.selected;\n f.color = f.color_base;\n f.weight = f.weight_base;\n });\n }\n\n // setTimeout(() => setRhino(newRhino), 100); .color_tdly color_tdly2\n\n if (rhino.features.filter((f) => isSelected(f.properties)).length > 0) {\n const mapBounds_bbox = bbox(\n {\n type: \"FeatureCollection\",\n features: rhino.features.filter((f) => isSelected(f.properties)),\n }\n //{ rhino }\n );\n\n // setmapBounds([\n // [mapBounds_bbox[1] * 0.999, mapBounds_bbox[0] * 1.001],\n // [mapBounds_bbox[3] * 1.001, mapBounds_bbox[2] * 0.999],\n // ]);\n\n mapRef.current.leafletElement.flyToBounds([\n [mapBounds_bbox[1] * 0.999, mapBounds_bbox[0] * 1.001],\n [mapBounds_bbox[3] * 1.001, mapBounds_bbox[2] * 0.999],\n ]);\n } else {\n // setmapBounds(homeMapBounds);\n if (homeMapBounds)\n mapRef.current.leafletElement.flyToBounds([homeMapBounds]);\n }\n\n setGeoJsonKey(Date.now());\n }\n }, [query.highlightQuery]);\n\n const [minTrkCatValue, setminTrkCatValue] = useState(0);\n const [maxTrkCatValue, setmaxTrkCatValue] = useState(1000000);\n useEffect(() => {\n /* I am cloning the rhino data.\n * Is it the best way to refresh the map\n * with highlights?\n */\n // let newRhino = { ...rhino };\n const isSelected = query.highlightQuery;\n if (typeof isSelected === \"function\") {\n let rdSeqCat = \"none\";\n //if (query.roadSegmentCategory === \"none\") return f.color_normal\n if (query.roadSegmentCategory === \"tdly\") rdSeqCat = \"trkdelay\";\n if (query.roadSegmentCategory === \"tpti95\") rdSeqCat = \"trkpti95\";\n if (query.roadSegmentCategory === \"tpti80\") rdSeqCat = \"trkpti80\";\n if (query.roadSegmentCategory === \"ttti\") rdSeqCat = \"trktti\";\n if (query.roadSegmentCategory === \"trefspd\") rdSeqCat = \"trkrefspee\";\n if (query.roadSegmentCategory === \"tcongspd\") rdSeqCat = \"trkspeed\";\n if (query.roadSegmentCategory === \"taadt\") rdSeqCat = \"tottrk\";\n if (query.roadSegmentCategory === \"tvmt\") rdSeqCat = \"trkttivmt\";\n\n function rgbToHex(r, g, b) {\n return (\n \"#\" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)\n );\n }\n\n function colorScale(height, minValue, maxValue) {\n //const color = d3.color(d3.interpolateRdYlGn(linearScale(height)));\n //const color = d3.color(d3.interpolatePuRd(linearScale(height)));\n //const color = d3.color(d3.interpolateOrRd(linearScale(height)));\n\n const linearScale = scaleLinear()\n .domain([minValue, maxValue])\n .range([0, 1]);\n\n //const color = colorF(interpolateTurbo(linearScale(height)));\n let color = colorF(interpolateTurbo(linearScale(height)));\n if (height === null)\n color = colorF(interpolateTurbo(linearScale(minValue)));\n return rgbToHex(color.r, color.g, color.b);\n }\n function colorScaleInv(height, minValue, maxValue) {\n //const color = d3.color(d3.interpolateRdYlGn(linearScale(height)));\n //const color = d3.color(d3.interpolatePuRd(linearScale(height)));\n //const color = d3.color(d3.interpolateOrRd(linearScale(height)));\n\n const linearScale = scaleLinear()\n .domain([minValue, maxValue])\n .range([1, 0]);\n\n //const color = colorF(interpolateTurbo(linearScale(height)));\n let color = colorF(interpolateTurbo(linearScale(height)));\n if (height === null)\n color = colorF(interpolateTurbo(linearScale(maxValue)));\n\n return rgbToHex(color.r, color.g, color.b);\n }\n\n function weightScale(height, minValue, maxValue) {\n const linearScale = scaleLinear()\n .domain([minValue, maxValue])\n .range([0.1, 2]);\n\n const weight = linearScale(height);\n\n return weight;\n }\n function weightScaleInv(height, minValue, maxValue) {\n const linearScale = scaleLinear()\n .domain([minValue, maxValue])\n .range([2, 0.1]);\n\n const weight = linearScale(height);\n\n return weight;\n }\n\n let minValue = 10000000;\n let maxValue = 0;\n function maxCalc(compVal, value) {\n if (value !== null) {\n return Math.max(compVal, value);\n } else {\n return compVal;\n }\n }\n function minCalc(compVal, value) {\n if (value !== null) {\n return Math.min(compVal, value);\n } else {\n return compVal;\n }\n }\n rhino.features.forEach(\n (f) => (\n (maxValue = maxCalc(maxValue, f.properties[rdSeqCat])),\n (minValue = minCalc(minValue, f.properties[rdSeqCat]))\n )\n );\n // rhino.features.forEach(\n // (f) => (\n // (maxValue = Math.max(maxValue, f.properties[rdSeqCat])),\n // (minValue = Math.min(minValue, f.properties[rdSeqCat]))\n // )\n // );\n\n if (query.roadSegmentCategory === \"tdly\")\n setminTrkCatValue(minValue.toFixed(0));\n if (query.roadSegmentCategory === \"tpti95\")\n setminTrkCatValue(minValue.toFixed(2));\n if (query.roadSegmentCategory === \"tpti80\")\n setminTrkCatValue(minValue.toFixed(2));\n if (query.roadSegmentCategory === \"ttti\")\n setminTrkCatValue(minValue.toFixed(2));\n if (query.roadSegmentCategory === \"trefspd\")\n setminTrkCatValue(minValue.toFixed(2));\n if (query.roadSegmentCategory === \"tcongspd\")\n setminTrkCatValue(minValue.toFixed(2));\n if (query.roadSegmentCategory === \"taadt\")\n setminTrkCatValue(minValue.toFixed(0));\n if (query.roadSegmentCategory === \"tvmt\")\n setminTrkCatValue(minValue.toFixed(0));\n\n if (query.roadSegmentCategory === \"tdly\")\n setmaxTrkCatValue(maxValue.toFixed(0));\n if (query.roadSegmentCategory === \"tpti95\")\n setmaxTrkCatValue(maxValue.toFixed(2));\n if (query.roadSegmentCategory === \"tpti80\")\n setmaxTrkCatValue(maxValue.toFixed(2));\n if (query.roadSegmentCategory === \"ttti\")\n setmaxTrkCatValue(maxValue.toFixed(2));\n if (query.roadSegmentCategory === \"trefspd\")\n setmaxTrkCatValue(maxValue.toFixed(2));\n if (query.roadSegmentCategory === \"tcongspd\")\n setmaxTrkCatValue(maxValue.toFixed(2));\n if (query.roadSegmentCategory === \"taadt\")\n setmaxTrkCatValue(maxValue.toFixed(0));\n if (query.roadSegmentCategory === \"tvmt\")\n setmaxTrkCatValue(maxValue.toFixed(0));\n\n rhino.features\n .filter((f) => isSelected(f.properties))\n .forEach((f) => (f.color = COLOR_RHINO.selected));\n if (query.roadSegmentCategory === \"none\") {\n rhino.features\n .filter((f) => !isSelected(f.properties))\n .forEach(\n (f) => (\n (f.color_base = COLOR_RHINO.normal),\n (f.color = f.color_base),\n (f.weight_base = 3),\n (f.weight = f.weight_base)\n )\n );\n } else {\n if (query.roadSegmentCategory !== \"tcongspd\")\n rhino.features\n .filter((f) => !isSelected(f.properties))\n .forEach(\n (f) => (\n (f.color_base = colorScale(\n f.properties[rdSeqCat],\n minValue,\n maxValue\n )),\n (f.color = f.color_base),\n (f.weight_base = Math.max(\n 0.25,\n weightScale(f.properties[rdSeqCat], minValue, maxValue) * 7\n )),\n (f.weight = f.weight_base)\n )\n );\n if (\n query.roadSegmentCategory === \"tcongspd\" ||\n query.roadSegmentCategory === \"trefspd\"\n )\n rhino.features\n .filter((f) => !isSelected(f.properties))\n .forEach(\n (f) => (\n (f.color_base = colorScaleInv(\n f.properties[rdSeqCat],\n minValue,\n maxValue\n )),\n (f.color = f.color_base),\n (f.weight_base = Math.max(\n 0.25,\n weightScaleInv(f.properties[rdSeqCat], minValue, maxValue) * 5\n )),\n (f.weight = f.weight_base)\n )\n );\n }\n\n setGeoJsonKey(Date.now());\n }\n }, [query.roadSegmentCategory]);\n\n /* Build a list of property as an unordered list in jsx\n * @param {*} rprops Rhino road segment properties\n */\n const stylesHoverBox = {\n h6Header: {\n textAlign: \"left\",\n },\n leftText: {\n textAlign: \"left\",\n marginBottom: \"0\",\n paddingBottom: \"0\",\n },\n leftBullet: {\n textAlign: \"left\",\n marginLeft: \"-25px\",\n },\n rightBullet: {\n textAlign: \"left\",\n marginLeft: \"20px\",\n },\n leftHeader: {\n textAlign: \"left\",\n marginLeft: \"-35px\",\n },\n rightHeader: {\n textAlign: \"left\",\n marginLeft: \"10px\",\n },\n };\n const rhinoInfo2 = (rprops) => {\n return (\n \n

    \n {/* {rprops.highway_name} ({rprops.frm_dfo} - {rprops.to_dfo}) */}\n {/* {rprops.ria_rte_id} ({rprops.frm_dfo} - {rprops.to_dfo}) */}\n Route ID: {rprops.ria_rte_id}\n

    \n
    \n From/To DFO: \n {rprops.frm_dfo.toLocaleString()} to {rprops.to_dfo.toLocaleString()}\n
    \n {/*

    \n Congestion Stats Year: {rprops.year}{\" \"}\n

    */}\n

    \n Length of Segment: {rprops.len_sec.toLocaleString()}\n

    \n

    Estimated: {rprops.estimated}

    \n
      \n
      \n
      \n
    • \n Adjusted current ADT: {rprops.adt_cur.toLocaleString()}{\" \"}\n
    • \n
    • \n Truck AADT: {rprops.tottrk.toLocaleString()}{\" \"}\n
    • \n
    • \n Daily Truck VMT: {rprops.trkttivmt.toLocaleString()}{\" \"}\n
    • \n
    • \n % of single unit trucks in ADT: {rprops.pct_sadt.toFixed(2)}{\" \"}\n
    • \n
    • \n Truck Delay: {rprops.trkdelay.toLocaleString()}{\" \"}\n
    • \n
      \n
      \n
    • \n Truck Travel Time Index: {rprops.trktti}{\" \"}\n
    • \n
    • \n Truck Planning Time Index 80: {rprops.trkpti80}{\" \"}\n
    • \n
    • \n Truck Planning Time Index 95: {rprops.trkpti95}{\" \"}\n
    • \n
    • \n % of combo unit trucks in ADT: {rprops.pct_cadt.toFixed(2)}{\" \"}\n
    • \n
      \n
      \n
    \n
    \n );\n };\n const rhinoInfo = (rprops) => {\n return (\n
    \n

    \n {/* {rprops.highway_name} ({rprops.frm_dfo} - {rprops.to_dfo}) */}\n {/* {rprops.ria_rte_id} ({rprops.frm_dfo} - {rprops.to_dfo}) */}\n Route ID: {rprops.ria_rte_id}\n

    \n
    \n From/To DFO: \n {rprops.frm_dfo.toLocaleString()} to {rprops.to_dfo.toLocaleString()}\n
    \n {/*

    \n Congestion Stats Year: {rprops.year}{\" \"}\n

    */}\n

    \n Length of Segment: {rprops.len_sec.toLocaleString()}{\" \"}\n

    \n

    Estimated: {rprops.estimated}

    \n
      \n
      \n
      \n
    • \n Adjusted current ADT: {rprops.adt_cur.toLocaleString()}{\" \"}\n
    • \n
    • \n Truck AADT: {rprops.tottrk.toLocaleString()}{\" \"}\n
    • \n
    • \n Daily Truck VMT: {rprops.trkttivmt.toLocaleString()}{\" \"}\n
    • \n
    • \n % of single unit trucks in ADT: {rprops.pct_sadt.toFixed(2)}{\" \"}\n
    • \n
    • \n Truck Delay: {rprops.trkdelay.toLocaleString()}{\" \"}\n
    • \n
      \n
      \n
    • \n Truck Travel Time Index: {rprops.trktti}{\" \"}\n
    • \n
    • \n Truck Planning Time Index 80: {rprops.trkpti80}{\" \"}\n
    • \n
    • \n Truck Planning Time Index 95: {rprops.trkpti95}{\" \"}\n
    • \n
    • \n % of combo unit trucks in ADT: {rprops.pct_cadt.toFixed(2)}{\" \"}\n
    • \n
      \n
      \n
    \n
    \n );\n };\n const getRhinoStyle = (feature) => {\n //return { color: feature.color };\n\n return {\n color: feature.color,\n weight: feature.weight,\n opacity: 0.6,\n fillOpacity: 0.6,\n };\n };\n\n /* Highlights on mouseOver */\n const handleMouseOver = (feature, e) => {\n const layer = e.target;\n rhinoColorContainer.current = feature.color;\n rhinoWeightContainer.current = feature.weight;\n feature.color = COLOR_RHINO.selected;\n feature.weight = 5;\n layer.setStyle({\n weight: feature.weight,\n color: feature.color,\n dashArray: \"\",\n fillOpacity: 0.1,\n });\n setInfo(rhinoInfo(feature.properties));\n };\n\n /* Reset default style on mouseOut */\n const handleMouseOut = (feature, e) => {\n const layer = e.target;\n feature.color = rhinoColorContainer.current;\n feature.weight = rhinoWeightContainer.current;\n layer.setStyle({\n weight: feature.weight,\n color: feature.color,\n dashArray: \"\",\n fillOpacity: 0.6,\n opacity: 0.6,\n });\n };\n\n /* inside handleClick query.popUpEnabled doesn't work since it has created\n * at the time of creation and not changed. So I am using useRef and useEffect\n * to reflect the changed value of query.popUpEnabled variable.\n * see https://stackoverflow.com/questions/53845595/wrong-react-hooks-behaviour-with-event-listener\n * */\n const popUp = useRef(false);\n useEffect(() => {\n popUp.current = query.popUpEnabled;\n }, [query.popUpEnabled]);\n\n /* leaflet's layer work only with text not HTML element created by jsx */\n const formatPopUp = (rprops) => {\n const id = `${rprops.ria_rte_id}_${rprops.frm_dfo\n .toString()\n .replace(\".\", \"d\")}`;\n // const fromHereTooltip = \"Starting segment\";\n return [\n `\n
    \n
    Route ID: ${rprops.ria_rte_id}
    \n
    From/To DFO: ${rprops.frm_dfo.toLocaleString()} to ${rprops.to_dfo.toLocaleString()}
    \n
    \n Add corridor to data table:\n \n \n
    \n
    \n Add segment to data table:\n \n
    \n
    \n `,\n id,\n ];\n };\n\n /* Tracks user road selection process*/\n const defaultUserSelection = {\n from_ria_rte_id: \"\",\n from_frm_dfo: Number.Nan,\n from_to_dfo: Number.NaN,\n to_frm_dfo: Number.NaN,\n to_to_dfo: Number.NaN,\n };\n const userSelection = useRef(defaultUserSelection);\n /* Resets the previous user selection highlights */\n const resetUserSelection = (ria_rte_id) => {\n rhino.features\n // .filter((f) => f.properties.ria_rte_id === ria_rte_id)\n .forEach((f) => {\n f.color = f.color_base;\n f.weight = f.weight_base;\n });\n setGeoJsonKey(Date.now());\n userSelection.current = defaultUserSelection;\n };\n\n const highlightUserSelection = () => {\n const selection = userSelection.current;\n // rhino.features\n // .filter(\n // (f) =>\n // f.properties.ria_rte_id === selection.from_ria_rte_id &&\n // f.properties.frm_dfo >= selection.from_frm_dfo &&\n // f.properties.to_dfo <= selection.from_to_dfo\n // )\n // .forEach((f) => {\n // f.color = COLOR_RHINO.selectedSection;\n // f.weight = 5;\n // });\n rhino.features\n .filter(\n (f) =>\n f.properties.ria_rte_id === selection.from_ria_rte_id &&\n f.properties.frm_dfo === selection.from_frm_dfo &&\n f.properties.to_dfo === selection.from_to_dfo\n )\n .forEach((f) => {\n f.color = COLOR_RHINO.selectedSection;\n f.weight = 5;\n });\n rhino.features\n .filter((f) => f.properties.ria_rte_id !== selection.from_ria_rte_id)\n .forEach((f) => {\n // f.color = f.color_base;\n f.color = COLOR_RHINO.notSelected;\n f.weight = f.weight_base;\n });\n if (!isNaN(selection.to_to_dfo)) {\n const fromDfo = Math.min(selection.from_frm_dfo, selection.to_frm_dfo);\n const toDfo = Math.max(selection.from_to_dfo, selection.to_to_dfo);\n rhino.features\n .filter(\n (f) =>\n f.properties.ria_rte_id === selection.from_ria_rte_id &&\n f.properties.frm_dfo >= fromDfo &&\n f.properties.to_dfo <= toDfo\n )\n .forEach((f) => {\n f.color = COLOR_RHINO.selectedSection;\n f.weight = 5;\n });\n } else {\n /* if toHere is not selected */\n rhino.features.filter(\n (f) =>\n f.properties.ria_rte_id === selection.from_ria_rte_id &&\n f.properties.frm_dfo === selection.from_frm_dfo\n )[0].color = COLOR_RHINO.selectedSection;\n }\n // setRhino(newRhino);\n setGeoJsonKey(Date.now());\n };\n\n const handleFromHereClick = (rprops, e) => {\n e.preventDefault();\n resetUserSelection(userSelection.current.from_ria_rte_id);\n userSelection.current = {\n from_ria_rte_id: rprops.ria_rte_id,\n from_frm_dfo: rprops.frm_dfo,\n from_to_dfo: rprops.to_dfo,\n };\n highlightUserSelection();\n };\n const handleToHereClick = (rprops, e) => {\n e.preventDefault();\n let newSelection = { ...userSelection.current };\n newSelection.to_frm_dfo = rprops.frm_dfo;\n newSelection.to_to_dfo = rprops.to_dfo;\n userSelection.current = newSelection;\n const fromDfo = Math.min(\n newSelection.from_frm_dfo,\n newSelection.to_frm_dfo\n );\n const toDfo = Math.max(newSelection.from_to_dfo, newSelection.to_to_dfo);\n dispatch({\n type: \"setUserSelection\",\n selection: {\n ria_rte_id: newSelection.from_ria_rte_id,\n frm_dfo: fromDfo,\n to_dfo: toDfo,\n },\n });\n highlightUserSelection();\n };\n const handleAddToTableClick = (rprops, e) => {\n e.preventDefault();\n //resetUserSelection(userSelection.current.top100id);\n dispatch({\n type: \"setUserSelection\",\n selection: {\n ria_rte_id: rprops.ria_rte_id,\n frm_dfo: rprops.frm_dfo,\n to_dfo: rprops.to_dfo,\n },\n });\n };\n\n /* Binds a popup with the clicked rhino segment and registers event listeners'\n * for \"From here\" and \"To here\" links inside the popup.\n * Event listener registerd with classical Javascript way since the popup content\n * was created by Leaflet's bindPopup method not by jsx */\n const [mapClickLatLng, setMapClickLatLng] = useState();\n const [fromPointLocation, setFromPointLocation] = useState([]);\n\n const handleClick = (feature, layer, e) => {\n setMapClickLatLng(e.latlng);\n // if (popUp.current) {\n // /* if popUp enabled by selecting the \"My Roads\" tab*/\n // const props = feature.properties;\n // const [text, id] = formatPopUp(props);\n // layer.bindPopup(text).openPopup();\n // const fromHere = document.querySelector(`#from-here-${id}`);\n // const toHere = document.querySelector(`#to-here-${id}`);\n // fromHere.addEventListener(\"click\", handleFromHereClick.bind(null, props));\n // toHere.addEventListener(\"click\", handleToHereClick.bind(null, props));\n // const addSegment = document.querySelector(`#add-to-table-${id}`);\n // addSegment.addEventListener(\n // \"click\",\n // handleAddToTableClick.bind(null, props)\n // );\n // }\n };\n\n /* @see See https://jsfiddle.net/thbh99nu/2/ */\n const onEachFeature = (feature, layer) => {\n layer.on({\n mouseover: handleMouseOver.bind(null, feature),\n mouseout: handleMouseOut.bind(null, feature),\n click: handleClick.bind(null, feature, layer),\n });\n };\n\n /* have to pass a unique key to Map to re-render leaflet map\n * when the road data is changed. Since the road data\n * changed based on regionId and year, this pass the combination of both\n * as a key. This is a bug in react-leaflet.\n * See https://stackoverflow.com/questions/44155385/rendering-geojson-with-react-leaflet\n */\n const { BaseLayer, Overlay } = LayersControl;\n\n const [mapZoom, setMapZoom] = useState(props.Zoom);\n // moved year selection to mapTabs, \"Filters/Legend\"\n // const handleYearSelector = (event) => {\n // dispatch({\n // type: \"setUserSelection\",\n // selection: {\n // ria_rte_id: \"\",\n // frm_dfo: NaN,\n // to_dfo: NaN\n // }\n // });\n //\n // props.setYear(event.target.value);\n // }\n useEffect(() => {\n dispatch({\n type: \"setUserSelection\",\n selection: {\n ria_rte_id: \"\",\n frm_dfo: NaN,\n to_dfo: NaN,\n },\n });\n\n props.setYear(query.yearSelection);\n }, [query.yearSelection]);\n\n const [selectedBaselayer, setselectedBaselayer] = useState(\n query.selectedBaselayer\n );\n\n useEffect(() => {\n if (query.roadSegmentCategory === \"none\") {\n setselectedBaselayer(\"Streets\");\n } else {\n setselectedBaselayer(query.selectedBaselayer);\n }\n }, [query.roadSegmentCategory]);\n useEffect(() => {\n dispatch({\n type: \"setroadSegmentCategory\",\n selection: \"none\",\n });\n }, [props.route]);\n\n const createBaseLayer = (props) => {\n if (selectedBaselayer === props.name) {\n return (\n \n \n \n );\n } else {\n return (\n \n \n \n );\n }\n };\n\n const countyBoundariesRef = useRef(null);\n const districtBoundariesRef = useRef(null);\n const commercialBorderCrossingsRef = useRef(null);\n const nonCommercialBorderCrossingsRef = useRef(null);\n const railBorderCrossingsRef = useRef(null);\n const portsLayerRef = useRef(null);\n const utpLayerRef = useRef(null);\n const CargoAirportsLayerRef = useRef(null);\n const airportsLayerRef = useRef(null);\n const truckParkingLayerRef = useRef(null);\n const roadsLayerRef = useRef(null);\n\n const printControlRef = useRef();\n const exportControlRef = useRef();\n\n const a3Size = {\n //width: 1045,\n //height: 715,\n width: 1500,\n height: 715,\n className: \"a3CssClass\",\n tooltip: \"A custom A3 size\",\n name: \"Cropped Size\",\n };\n\n const [utpMapLayersCount, setutpMapLayersCount] = useState({\n underwayorsoon: 0,\n within4years: 0,\n fivetotenyears: 0,\n tenplusyears: 0,\n });\n\n function setmapDownloadName(type) {\n const date = new Date();\n const mapDownloadName =\n // \"tx100-\" +\n statusGuide[1].split(\" \").join(\"-\") +\n \"-\" +\n date\n .toLocaleDateString()\n .split(\"/\")\n .join(\"-\") +\n \"-\" +\n date\n .toLocaleTimeString()\n .split(\" \")\n .join(\"-\")\n .split(\":\")\n .join(\"-\");\n\n return mapDownloadName;\n }\n\n const popupRef = useRef(false);\n window.popupRef = popupRef;\n function handlePopupOpen(a, b, c) {\n let featureProps =\n popupRef.current.leafletElement._source.feature.properties;\n setPopupTitle(`Route ID: ${featureProps.ria_rte_id}`);\n setPopupTitle2(\n `From/To DFO: ${featureProps.frm_dfo} to ${featureProps.to_dfo}`\n );\n }\n const [popupTitle, setPopupTitle] = useState(\"untitled\");\n const [popupTitle2, setPopupTitle2] = useState(\"untitled\");\n\n function handleAddSegment() {\n let rprops = popupRef.current.leafletElement._source.feature.properties;\n\n // resetUserSelection(userSelection.current.top100id);\n dispatch({\n type: \"setUserSelection\",\n selection: {\n ria_rte_id: rprops.ria_rte_id,\n frm_dfo: rprops.frm_dfo,\n to_dfo: rprops.to_dfo,\n },\n });\n\n popupRef.current.leafletElement.remove(); //closes the popup\n }\n\n function handleFrom() {\n let featureProps =\n popupRef.current.leafletElement._source.feature.properties;\n\n resetUserSelection(userSelection.current.from_ria_rte_id);\n userSelection.current = {\n from_ria_rte_id: featureProps.ria_rte_id,\n from_frm_dfo: featureProps.frm_dfo,\n from_to_dfo: featureProps.to_dfo,\n };\n\n highlightUserSelection();\n\n popupRef.current.leafletElement.remove(); //closes the popup\n\n setFromToClearButtonDisabled({\n fromButton: true,\n toButton: false,\n clearButton: false,\n });\n\n setFromPointLocation([mapClickLatLng.lat, mapClickLatLng.lng]);\n }\n\n function handleTo() {\n let rprops = popupRef.current.leafletElement._source.feature.properties;\n\n let newSelection = { ...userSelection.current };\n newSelection.to_frm_dfo = rprops.frm_dfo;\n newSelection.to_to_dfo = rprops.to_dfo;\n userSelection.current = newSelection;\n const fromDfo = Math.min(\n newSelection.from_frm_dfo,\n newSelection.to_frm_dfo\n );\n const toDfo = Math.max(newSelection.from_to_dfo, newSelection.to_to_dfo);\n dispatch({\n type: \"setUserSelection\",\n selection: {\n ria_rte_id: newSelection.from_ria_rte_id,\n frm_dfo: fromDfo,\n to_dfo: toDfo,\n },\n });\n highlightUserSelection();\n\n resetUserSelection(userSelection.current.from_ria_rte_id);\n popupRef.current.leafletElement.remove(); //closes the popup\n\n setFromToClearButtonDisabled({\n fromButton: false,\n toButton: true,\n clearButton: true,\n });\n setFromPointLocation([]);\n }\n\n function handleClearSelection() {\n let featureProps =\n popupRef.current.leafletElement._source.feature.properties;\n\n resetUserSelection(userSelection.current.from_ria_rte_id);\n\n setFromToClearButtonDisabled({\n fromButton: false,\n toButton: true,\n clearButton: true,\n });\n setFromPointLocation([]);\n }\n\n const [fromToCleasrButtonDisabled, setFromToClearButtonDisabled] = useState({\n fromButton: false,\n toButton: true,\n clearButton: true,\n });\n\n // \n return (\n \n {/* }\n text={\n props.layerID\n ? \"Loading stats layer...\"\n : \"Please select a layer from the menu on the left...\"\n }\n styles={{\n overlay: (base) => ({\n ...base,\n height: \"650px\",\n }),\n }}\n > */}\n {}\n {}\n {countyList.length > 0 && (\n \n )}\n {}\n {\n \n }\n {\n \n }\n {}\n {}\n {\n \n }\n {}\n {}\n {countyList.length > 0 && (\n \n )}\n \n {baseLayers.map((obj) => createBaseLayer(obj))}\n\n {countyBoundaries.features.length > 0 && (\n \n \n \n )}\n {rhino.features.length > 0 && (\n \n \n \n
    \n

    \n Layer ID: {props.layerID}\n

    \n
    {popupTitle}
    \n

    {popupTitle2}

    \n
    \n

    \n To add road segment to the data table, click{\" \"}\n Add segment below.\n

    \n

    \n \n Add segment\n \n

    \n
    \n
    \n
    \n

    To add a corridor to the data table:

    \n
      \n
    1. \n Click From Here on first segment\n
    2. \n
    3. \n Click To Here on final segment to add\n corridor to data table.\n
    4. \n
    \n
    \n

    \n \n From here\n \n \n To here\n \n \n Clear prior selection\n \n

    \n
    \n
    \n
    \n \n
    \n )}\n
    \n {fromPointLocation.length > 0 && (\n \n {/* \n A pretty CSS3 popup.
    Easily customizable.\n
    */}\n
    \n )}\n {/* */}\n {/*\n \n }>\n Quick Info/Hover\n \n \n
    \n \n \n */}\n \n setMapZoom(mapZoom - 1)}\n className={\"home-button\"}\n >\n {\" \"}\n {/*Increment of -1 used to trigger state change*/}\n \n \n \n \n \n \n \n \n {\" \"}\n \n );\n}\n\nexport default RhinoLeafletMap;\n","import React, { useState, useContext } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport LayersIcon from \"@material-ui/icons/Layers\";\nimport Menu from \"@material-ui/core/Menu\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport PropTypes from \"prop-types\";\n// import { QueryContext } from \"./QueryContext\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport ClickAwayListener from \"@material-ui/core/ClickAwayListener\";\nimport { Typography } from \"@material-ui/core\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Box from \"@material-ui/core/Box\";\nimport { createMuiTheme, ThemeProvider } from \"@material-ui/core/styles\";\nimport Radio from \"@mui/material/Radio\";\nimport RadioGroup from \"@mui/material/RadioGroup\";\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\nimport FormControl from \"@mui/material/FormControl\";\nimport FormLabel from \"@mui/material/FormLabel\";\nimport FormGroup from \"@mui/material/FormGroup\";\n\nimport { baseLayers } from \"../../common/constants\";\nimport { NavItem } from \"react-bootstrap\";\nimport Checkbox from \"@mui/material/Checkbox\";\n\n// import FormControl from \"@material-ui/core/FormControl\";\n// import FormControlLabel from \"@material-ui/core/FormControlLabel\";\n// import FormLabel from \"@material-ui/core/FormLabel\";\n// import Radio from \"@material-ui/core/FormLabel\";\n// import RadioGroup from \"@material-ui/core/FormLabel\";\n\nconst theme = createMuiTheme({});\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n \"& > *\": {\n margin: theme.spacing(1),\n },\n },\n formGroup: {\n paddingLeft: 15,\n textAlign: \"left\",\n fontSize: theme.typography.pxToRem(8),\n },\n formLabel: {\n padding: 0,\n margin: 0,\n fontSize: theme.typography.pxToRem(8),\n },\n input: {\n display: \"none\",\n },\n colselectColumn1: {\n paddingLeft: 5,\n textAlign: \"left\",\n },\n colselectColumn2: {\n paddingLeft: 15,\n textAlign: \"left\",\n fontSize: theme.typography.pxToRem(8),\n },\n customWidth: {\n \"& div\": {\n width: \"21vw\",\n },\n height: \"70vh\",\n },\n filterIcon: {\n background: theme.palette.background.paper,\n backgroundColor: \"#ffffff\",\n },\n selectedFeaturesLabel: {\n paddingLeft: 15,\n fontWeight: 500,\n },\n}));\n\nconst LayerControls = (props) => {\n const { baseMap, setBaseMap, showRoads, setShowRoads } = props;\n\n const classes = useStyles();\n\n const [anchorEl, setAnchorEl] = React.useState(null);\n\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = (e) => {\n if (e.currentTarget.localName !== \"ul\") {\n const menu = document.getElementById(\"simple-menu\").children[2];\n const menuBoundary = {\n left: menu.offsetLeft,\n top: e.currentTarget.offsetTop + e.currentTarget.offsetHeight,\n right: menu.offsetLeft + menu.offsetHeight,\n bottom: menu.offsetTop + menu.offsetHeight,\n };\n if (\n e.clientX >= menuBoundary.left &&\n e.clientX <= menuBoundary.right &&\n e.clientY <= menuBoundary.bottom &&\n e.clientY >= menuBoundary.top\n ) {\n return;\n }\n }\n\n setAnchorEl(null);\n };\n\n theme.props = {\n MuiList: {\n onMouseLeave: (e) => {\n handleClose(e);\n },\n },\n };\n\n const handleChangeBasemap = (event) => {\n setBaseMap(event.target.value);\n };\n\n const handleChangeShowRoads = (event) => {\n setShowRoads(event.target.checked);\n };\n\n return (\n \n {/* */}\n
    \n \n \n \n \n \n \n \n Basemaps\n \n \n {baseLayers.map((item, index) => (\n }\n label={item.name}\n key={`basemap-option-${index}`}\n className={classes.formLabel}\n />\n ))}\n \n \n \n\n \n \n \n Data\n \n \n \n }\n label={\"Roads\"}\n key={`roads-layer-data`}\n className={classes.formLabel}\n />\n \n \n \n \n
    \n {/* */}\n
    \n );\n};\n\nLayerControls.propTypes = {\n style: PropTypes.object,\n};\n\nexport default LayerControls;\n","import { API_ROOT, COLOR_RHINO } from \"../common/constants\";\nimport axios from \"axios\";\n\nexport const fetchCountyBoundaryData = async (countyList) => {\n try {\n const dataUrl = `${API_ROOT}/boundaries/findByCounty?counties=${countyList.join(\n \",\"\n )}`;\n // console.log(\"dataUrl-check\", dataUrl);\n const response = await axios.get(dataUrl);\n if (response.status === 200) {\n // response - object, eg { status: 200, message: 'OK' }\n // console.log(\"success stuff\", response.data);\n return response;\n }\n return false;\n } catch (err) {\n console.error(err);\n return false;\n }\n};\n\nexport const fetchDistrictBoundariesData = async () => {\n try {\n const dataUrl =\n \"https://services.arcgis.com/KTcxiTD9dsQw4r7Z/arcgis/rest/services/TxDOT_Districts/FeatureServer/0/query?where=1%3D1&outFields=OBJECTID,DIST_ABRVN,DIST_NBR,DIST_NM&outSR=4326&f=geojson\";\n // console.log(\"dataUrl-check\", dataUrl);\n const response = await axios.get(dataUrl);\n if (response.status === 200) {\n // response - object, eg { status: 200, message: 'OK' }\n // console.log(\"success stuff\", response.data);\n return response;\n }\n return false;\n } catch (err) {\n console.error(err);\n return false;\n }\n};\n\nexport const fetchSandMinesData = async () => {\n try {\n const dataUrl = `${API_ROOT}` + \"/poi/getOdessaDistSandMines\";\n // console.log(\"dataUrl-check\", dataUrl);\n const response = await axios.get(dataUrl);\n if (response.status === 200) {\n // response - object, eg { status: 200, message: 'OK' }\n // console.log(\"success stuff\", response.data);\n return response;\n }\n return false;\n } catch (err) {\n console.error(err);\n return false;\n }\n};\n\nexport const fetchDisposalWellsData = async () => {\n try {\n const dataUrl = `${API_ROOT}` + \"/poi/getOilDisposalWells\";\n // console.log(\"dataUrl-check\", dataUrl);\n const response = await axios.get(dataUrl);\n if (response.status === 200) {\n // response - object, eg { status: 200, message: 'OK' }\n // console.log(\"success stuff\", response.data);\n return response;\n }\n return false;\n } catch (err) {\n console.error(err);\n return false;\n }\n};\n\nexport const fetchCommercialBorderCrossingData = async () => {\n try {\n const dataUrl =\n \"https://services.arcgis.com/KTcxiTD9dsQw4r7Z/arcgis/rest/services/TxDOT_Border_Crossings/FeatureServer/0/query?where=VEH_COML%20=%201&outFields=*&outSR=4326&f=geojson\";\n // console.log(\"dataUrl-check\", dataUrl);\n const response = await axios.get(dataUrl);\n if (response.status === 200) {\n // response - object, eg { status: 200, message: 'OK' }\n // console.log(\"success stuff\", response.data);\n return response;\n }\n return false;\n } catch (err) {\n console.error(err);\n return false;\n }\n};\n\nexport const fetchNonCommercialBorderCrossingData = async () => {\n try {\n const dataUrl =\n \"https://services.arcgis.com/KTcxiTD9dsQw4r7Z/arcgis/rest/services/TxDOT_Border_Crossings/FeatureServer/0/query?where=VEH_COML%20%3C%3E%201%20AND%20VEH_CAR%20=%201&outFields=*&outSR=4326&f=geojson\";\n // console.log(\"dataUrl-check\", dataUrl);\n const response = await axios.get(dataUrl);\n if (response.status === 200) {\n // response - object, eg { status: 200, message: 'OK' }\n // console.log(\"success stuff\", response.data);\n return response;\n }\n return false;\n } catch (err) {\n console.error(err);\n return false;\n }\n};\n\nexport const fetchRailBorderCrossingData = async () => {\n try {\n const dataUrl =\n \"https://services.arcgis.com/KTcxiTD9dsQw4r7Z/arcgis/rest/services/TxDOT_Border_Crossings/FeatureServer/0/query?where=VEH_COML%20%3C%3E%201%20AND%20VEH_CAR%20%3C%3E%201%20AND%20RR_BRDGE%20=%201&outFields=*&outSR=4326&f=geojson\";\n // console.log(\"dataUrl-check\", dataUrl);\n const response = await axios.get(dataUrl);\n if (response.status === 200) {\n // response - object, eg { status: 200, message: 'OK' }\n // console.log(\"success stuff\", response.data);\n return response;\n }\n return false;\n } catch (err) {\n console.error(err);\n return false;\n }\n};\n\nexport const fetchTruckParkingData = async (countyList) => {\n try {\n const dataUrl = `${API_ROOT}/poi/getTruckParkingLocations?counties=${countyList.join(\n \",\"\n )}`;\n // console.log(\"dataUrl-check\", dataUrl);\n const response = await axios.get(dataUrl);\n if (response.status === 200) {\n // response - object, eg { status: 200, message: 'OK' }\n // console.log(\"success stuff\", response.data);\n return response;\n }\n return false;\n } catch (err) {\n console.error(err);\n return false;\n }\n};\n\nexport const fetchPortsData = async () => {\n try {\n const dataUrl =\n \"https://opendata.arcgis.com/datasets/595556c111e14519be70b955e10aa8ff_0.geojson\";\n const response = await axios.get(dataUrl);\n if (response.status === 200) {\n // response - object, eg { status: 200, message: 'OK' }\n //console.log(\"success stuff\", response.data);\n return response;\n }\n return false;\n } catch (err) {\n console.error(err);\n return false;\n }\n};\n\nexport const fetchCargoAirportsData = async () => {\n try {\n const dataUrl =\n \"https://geo.dot.gov/mapping/rest/services/NTAD/Airports/MapServer/0/query?where=State_Post_Office_Code+%3D+%27TX%27+AND+Other_Services+LIKE+%27%25CARGO%25%27&text=&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&distance=&units=esriSRUnit_Foot&relationParam=&outFields=*&returnGeometry=true&returnTrueCurves=false&maxAllowableOffset=&geometryPrecision=&outSR=&havingClause=&returnIdsOnly=false&returnCountOnly=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&returnZ=false&returnM=false&gdbVersion=&historicMoment=&returnDistinctValues=false&resultOffset=&resultRecordCount=&returnExtentOnly=false&datumTransformation=¶meterValues=&rangeValues=&quantizationParameters=&featureEncoding=esriDefault&f=geojson\";\n const response = await axios.get(dataUrl);\n if (response.status === 200) {\n // response - object, eg { status: 200, message: 'OK' }\n //console.log(\"success stuff\", response.data);\n return response;\n }\n return false;\n } catch (err) {\n console.error(err);\n return false;\n }\n};\n\nexport const fetchAirportsData = async () => {\n try {\n const dataUrl =\n \"https://geo.dot.gov/mapping/rest/services/NTAD/Airports/MapServer/0/query?where=State_Post_Office_Code+%3D+%27TX%27+AND+Commercial_Ops+IS+NOT+NULL+AND+Other_Services+NOT+LIKE+%27%25CARGO%25%27&text=&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&distance=&units=esriSRUnit_Foot&relationParam=&outFields=*&returnGeometry=true&returnTrueCurves=false&maxAllowableOffset=&geometryPrecision=&outSR=&havingClause=&returnIdsOnly=false&returnCountOnly=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&returnZ=false&returnM=false&gdbVersion=&historicMoment=&returnDistinctValues=false&resultOffset=&resultRecordCount=&returnExtentOnly=false&datumTransformation=¶meterValues=&rangeValues=&quantizationParameters=&featureEncoding=esriDefault&f=geojson\";\n const response = await axios.get(dataUrl);\n if (response.status === 200) {\n // response - object, eg { status: 200, message: 'OK' }\n //console.log(\"success stuff\", response.data);\n return response;\n return true;\n }\n return false;\n } catch (err) {\n console.error(err);\n return false;\n }\n};\n\nexport const fetchUtpData = async (countyList) => {\n try {\n const dataUrl =\n \"https://services.arcgis.com/KTcxiTD9dsQw4r7Z/arcgis/rest/services/TxDOT_Projects/FeatureServer/0/query?where=COUNTY_NUMBER IN (\" +\n countyList.toString() +\n //\") AND Shape__Length IS NOT NULL &outFields=*&outSR=4326&f=geojson\";\n \") AND Shape__Length IS NOT NULL AND PRJ_UTP IS NOT NULL &outFields=*&outSR=4326&f=geojson\";\n // console.log(\"dataUrl-check\", dataUrl);\n const response = await axios.get(dataUrl);\n if (response.status === 200) {\n // response - object, eg { status: 200, message: 'OK' }\n // console.log(\"success stuff\", response.data);\n return response;\n }\n return false;\n } catch (err) {\n console.error(err);\n return false;\n }\n};\n\nexport const fetchRoadData = async (props) => {\n const { type, route, year } = props;\n try {\n if (type.toLowerCase() === \"tx100\") {\n const response = await axios.get(\n `${API_ROOT}` +\n route +\n (route.includes(\"?\") ? \"&\" : \"?\") +\n \"year=\" +\n year\n );\n\n if (response.status === 200) {\n // response - object, eg { status: 200, message: 'OK' }\n // console.log(\"success stuff\", response.data);\n return response;\n }\n } else {\n const response = await axios.get(`${API_ROOT}` + route + \"&year=\" + year);\n\n if (response.status === 200) {\n // response - object, eg { status: 200, message: 'OK' }\n // console.log(\"success stuff\", response.data);\n return response;\n }\n }\n return false;\n } catch (err) {\n console.error(err);\n return false;\n }\n};\n\nexport const fetchMonitoredRoads = async (countyList) => {\n try {\n const dataUrl = `${API_ROOT}` + \"/roads/getTcatMonitoredRoads\";\n\n const response = await axios.get(dataUrl);\n if (response.status === 200) {\n // response - object, eg { status: 200, message: 'OK' }\n // console.log(\"success stuff\", response.data);\n // console.log(\"response-check\", response);\n return response;\n }\n return false;\n } catch (err) {\n console.error(err);\n return false;\n }\n};\n\nexport const fetchRoadTrendsSummary = async (years, roads) => {\n try {\n let yearroad = [];\n for (var j = 0; j < years.length; j++) {\n yearroad.push([years[j], roads]);\n }\n let promises = yearroad.map((r) => {\n return axios.get(\n `${API_ROOT}/metrics/findByRouteIdYear?year=${r[0]}&route_id=${r[1].ria_rte_id}&min_dfo=${r[1].frm_dfo}&max_dfo=${r[1].to_dfo}`\n );\n });\n return promises;\n } catch (e) {\n console.log(e);\n }\n};\n\nexport const fetchODByTrank = async (year, trank) => {\n try {\n const dataUrl = `${API_ROOT}/roads_tx100/fetchODByTrank?year=${year}&trank=${trank}`;\n // console.log(\"dataUrl-check\", dataUrl);\n const response = await axios.get(dataUrl);\n if (response.status === 200) {\n // response - object, eg { status: 200, message: 'OK' }\n // console.log(\"success stuff\", response.data);\n return response;\n }\n return false;\n } catch (err) {\n console.error(err);\n return false;\n }\n};\n","import React, {\n useState,\n useEffect,\n useRef,\n useContext,\n useMemo,\n // useCallback\n} from \"react\";\nimport axios from \"axios\";\nimport { RhinoQueryContext } from \"./RhinoQueryContext\";\nimport DeckGL from \"@deck.gl/react\";\n// import { FlyToInterpolator } from \"@deck.gl/core\";\n// import { LineLayer, GeoJsonLayer, IconLayer } from \"@deck.gl/layers\";\nimport { GeoJsonLayer, IconLayer } from \"@deck.gl/layers\";\nimport {\n StaticMap,\n MapContext,\n NavigationControl,\n Popup,\n ScaleControl,\n WebMercatorViewport,\n} from \"react-map-gl\";\nimport {\n API_ROOT,\n COLOR_RHINO,\n MAPBOX_ACCESSTOKEN,\n MAPBOX_ATTRIBUTION,\n // MAPBOX_URL,\n // MAPBOX_STREETS_V10_URL,\n tx100_monitored_counties,\n baseLayers,\n colorContextlayers,\n} from \"../common/constants\";\n\nimport * as d3 from \"d3\";\n\nimport MapTabs from \"./mapTabs\";\nimport { makeStyles, Dialog } from \"@material-ui/core\";\n\nimport LayerControls from \"./contols/LayerControls\";\n\nimport CircularProgress from \"@mui/material/CircularProgress\";\n\nimport bbox from \"@turf/bbox\";\nimport buffer from \"@turf/buffer\";\n\nimport {\n fetchCountyBoundaryData,\n fetchDistrictBoundariesData,\n fetchSandMinesData,\n fetchDisposalWellsData,\n fetchCommercialBorderCrossingData,\n fetchNonCommercialBorderCrossingData,\n fetchRailBorderCrossingData,\n fetchTruckParkingData,\n fetchPortsData,\n fetchCargoAirportsData,\n fetchAirportsData,\n fetchUtpData,\n} from \"../data-loaders/DataLoaders\";\n\nimport commercialBorderCrossingIconSvg from \"../assets/icons/green_box_24dp.svg\";\nimport nonCommercialBorderCrossingIconSvg from \"../assets/icons/violet_box_24dp.svg\";\nimport railBorderCrossingIconSvg from \"../assets/icons/pink_box_24dp.svg\";\nimport truckParkingIconSvg from \"../assets/icons/local_parking_white_on_green_24dp.svg\";\nimport portsIconSvg from \"../assets/icons/anchor_white_24dp.svg\";\nimport cargoAirportsIconSvg from \"../assets/icons/flight_yellow_24dp.svg\";\nimport airportsIconSvg from \"../assets/icons/flight_white_24dp.svg\";\nimport UtpIconSVG1 from \"../assets/icons/construction_white_on_red_24dp.svg\";\nimport UtpIconSVG2 from \"../assets/icons/construction_white_on_purple_24dp.svg\";\nimport UtpIconSVG3 from \"../assets/icons/construction_white_on_green_24dp.svg\";\nimport UtpIconSVG4 from \"../assets/icons/construction_white_on_blue_24dp.svg\";\n\nimport { scaleLinear } from \"d3-scale\";\nimport { interpolateTurbo } from \"d3-scale-chromatic\";\nimport { color as colorF } from \"d3-color\";\n//d3.color(d3.interpolateTurbo\n\nconst useStyles = makeStyles({\n deckglMap: {\n position: \"relative\",\n },\n dialog: {\n // position: \"absolute\",\n // left: \"92%\",\n // top: \"50%\",\n // transform: \"translate(-75%,-50%)\",\n position: \"absolute\",\n // position: \"relative\",\n // left: \"60%\",\n top: \"0%\",\n // transform: \"translate(-75%,-50%)\",\n // left: \"1000px\",\n right: \"5px\",\n },\n dialog2: {\n position: \"absolute\",\n left: \"69vw\",\n top: \"27vh\",\n },\n});\n\nfunction DeckglMap(props) {\n const classes = useStyles();\n\n /*loading overlay status to display spinner*/\n const [isLoading, setIsLoading] = useState(false);\n\n const viewport = {\n // height: \"500px\",\n //height: \"65vh\",\n // height: \"65%\",\n // width: \"100%\",\n //initViewport\n width: \"100%\",\n height: \"100%\",\n };\n\n // const initialViewState = {\n // longitude: -99.458333,\n // latitude: 31.243333,\n // // longitude: -122.41669,\n // // latitude: 37.7833,\n // zoom: 4.85,\n // pitch: 0,\n // bearing: 0,\n // };\n // const MAP_STYLE =\n // \"https://basemaps.cartocdn.com/gl/positron-nolabels-gl-style/style.json\";\n\n const NAV_CONTROL_STYLE = {\n // position: \"absolute\",\n // top: 5,\n // left: 5,\n position: \"absolute\",\n // position: \"relative\",\n top: \"2%\",\n left: \"10px\",\n width: 30,\n };\n const ScaleControl_STYLE = {\n // position: \"absolute\",\n // top: 350,\n // left: 5,\n position: \"absolute\",\n // position: \"relative\",\n top: \"87%\",\n left: \"10px\",\n };\n const layers_CONTROL_STYLE = {\n // position: \"absolute\",\n // top: 90,\n // left: 5,\n position: \"absolute\",\n // position: \"relative\",\n top: \"22%\",\n // left: \"0.5%\",\n };\n\n const [rhino, setRhino] = useState({\n type: \"FeatureCollection\",\n features: [],\n });\n const [rhinoPolygon, setRhinoPolygon] = useState(null);\n const [rhinoLineColorsWeight, setRhinoLineColorsWeight] = useState(null);\n\n /* the queries set by selecting the summary table rows */\n const [query, dispatch] = useContext(RhinoQueryContext);\n // const [query, dispatch] = useContext(TX100QueryContext);\n const [countyList, setCountyList] = useState([]);\n\n const {\n statusGuide,\n // deckglMapType,\n roadGeomFeatures,\n setRoadGeomFeatures,\n mapType,\n } = props;\n // console.log(\"mapType-check\", mapType);\n const [homeMapBounds, setHomeMapBounds] = useState({\n longitude: -99.458333,\n latitude: 31.243333,\n zoom: 4.85,\n });\n const [countyBoundaries, setCountyBoundaries] = useState(null);\n const [districtBoundaries, setDistrictBoundaries] = useState(null);\n const [sandMinesData, setSandMinesData] = useState(null);\n const [disposalWellsData, setdisposalWellsData] = useState(null);\n const [\n commercialBorderCrossingsData,\n setCommercialBorderCrossingData,\n ] = useState(null);\n const [\n nonCommercialBorderCrossingsData,\n setNonCommercialBorderCrossingData,\n ] = useState(null);\n const [railBorderCrossingsData, setRailBorderCrossingData] = useState(null);\n const [truckParkingData, setTruckParkingData] = useState(null);\n const [portsData, setPortsData] = useState(null);\n const [cargoAirportsData, setCargoAirportsData] = useState(null);\n const [airportsData, setAirportsData] = useState({\n type: \"FeatureCollection\",\n features: [],\n });\n const [utpData, setUTPData] = useState({\n type: \"FeatureCollection\",\n features: [],\n });\n\n const [showRoads, setShowRoads] = useState(true);\n\n const [fromPoints, setFromPoints] = useState([]);\n\n //useMemo(() => {\n useEffect(() => {\n // console.log(\"fetchRhinoData-check\");\n const fetchTX100Network = async () => {\n try {\n if (props.layerID) {\n // setIsLoading(true);\n // const response = await axios.get(\n // `${API_ROOT}` +\n // props.route +\n // (props.route.includes(\"?\") ? \"&\" : \"?\") +\n // \"year=\" +\n // query.yearSelection\n // );\n\n // let fc = response.data.features;\n let fc = roadGeomFeatures.features;\n\n let fc_colors_weight = [];\n let colorTemp = COLOR_RHINO.normal\n .match(/[0-9a-f]{2}/g)\n .map((x) => parseInt(x, 16));\n fc.map((obj) => {\n fc_colors_weight.push({\n rte_id: obj.properties.top100id,\n top100id: obj.properties.top100id,\n ogc_fid: \"\",\n frm_dfo: obj.properties.from_road,\n to_dfo: obj.properties.to_road,\n color: colorTemp,\n color_base: colorTemp,\n weight: 1,\n weight_base: 1,\n elevScale: 1,\n });\n });\n\n //.log(fc);\n //console.log(\"Test f end\");\n setRhino({\n type: \"FeatureCollection\",\n features: fc,\n });\n dispatch({\n type: \"setFeatures\",\n payload: fc,\n });\n setRhinoLineColorsWeight(fc_colors_weight);\n\n // setRoadGeomFeatures({\n // features: fc,\n // // features: roadGeomFeatures.features,\n // numFeatures: fc.length,\n // type: \"tx100\",\n // minValue: roadGeomFeatures.minValue,\n // maxValue: roadGeomFeatures.maxValue,\n // });\n // setGeoJsonKey(Date.now());\n // setIsLoading(false);\n\n // var pointG = point([-90.54863, 14.616599]);\n // var buffered = buffer(\n // {\n // type: \"FeatureCollection\",\n // features: fc,\n // },\n // 0.05,\n // { units: \"miles\" }\n // );\n // let polygon = buffer(rhino, 500, { units: \"miles\" });\n // console.log(\"polygon-check\", buffered);\n // setRhinoPolygon(\n // buffer(\n // {\n // type: \"FeatureCollection\",\n // features: fc,\n // },\n // 0.05,\n // { units: \"miles\" }\n // )\n // );\n\n dispatch({\n type: \"setroadSegmentCategoryIndex\",\n selection: 0,\n });\n dispatch({\n type: \"setroadSegmentCategory\",\n selection: \"none\",\n });\n\n const findUnique = (array, key) => {\n var unique = array\n .map((p) => p.properties[key])\n .filter((key, index, arr) => arr.indexOf(key) === index);\n return unique;\n };\n // const response = await axios.get(process.env.PUBLIC_URL + `/TxDOT_Projects.geojson`);\n let cntyList = findUnique(fc, \"co\");\n //type={props.layerID === \"statewide\" ? \"rhino\" : \"tx100\"}\n if (statusGuide[0] === \"TX100\") {\n //if (props.layerID !== \"statewide\") {\n cntyList = tx100_monitored_counties.map((f) => {\n var nbr = f.cnty_nbr;\n return nbr;\n });\n }\n setCountyList(cntyList);\n }\n } catch (e) {\n console.log(e);\n }\n };\n\n const fetchRhinoNetwork = async () => {\n try {\n //if (props.quads.length > 0) {\n if (props.layerID) {\n // setIsLoading(true);\n // const response = await axios.get(\n // `${API_ROOT}` + props.route + \"&year=\" + query.yearSelection\n // );\n // let fc = response.data.features;\n let fc = roadGeomFeatures.features;\n\n let fc_colors_weight = [];\n let colorTemp = COLOR_RHINO.normal\n .match(/[0-9a-f]{2}/g)\n .map((x) => parseInt(x, 16));\n fc.map((obj) => {\n fc_colors_weight.push({\n rte_id: obj.properties.ria_rte_id,\n top100id: \"\",\n ogc_fid: obj.properties.ogc_fid,\n frm_dfo: obj.properties.frm_dfo,\n to_dfo: obj.properties.to_dfo,\n color: colorTemp,\n color_base: colorTemp,\n weight: 1,\n weight_base: 1,\n elevScale: 1,\n });\n });\n // let fc = f.map((obj) => {\n // obj.color = COLOR_RHINO.normal;\n // obj.color_base = COLOR_RHINO.normal;\n // obj.properties.color = COLOR_RHINO.normal;\n // obj.properties.color_base = COLOR_RHINO.normal;\n // obj.weight = 1;\n // obj.weight_base = 1;\n // fc_colors_weight.push({\n // rte_id: obj.properties.ria_rte_id,\n // frm_dfo: obj.properties.frm_dfo,\n // to_dfo: obj.properties.to_dfo,\n // color: COLOR_RHINO.normal,\n // color_base: COLOR_RHINO.normal,\n // weight: 1,\n // weight_base: 1,\n // });\n // return obj;\n // });\n setRhino({\n type: \"FeatureCollection\",\n features: fc,\n });\n dispatch({\n type: \"setFeatures\",\n payload: fc,\n });\n setRhinoLineColorsWeight(fc_colors_weight);\n // setRoadGeomFeatures({\n // features: fc,\n // // features: roadGeomFeatures.features,\n // numFeatures: fc.length,\n // type: \"rhino\",\n // minValue: roadGeomFeatures.minValue,\n // maxValue: roadGeomFeatures.maxValue,\n // });\n\n // setGeoJsonKey(Date.now());\n // setIsLoading(false);\n\n const mapBounds_bbox = bbox(\n {\n type: \"FeatureCollection\",\n features: fc,\n }\n //{ rhino }\n );\n setHomeMapBounds(getBoundsForRoads(mapBounds_bbox));\n\n dispatch({\n type: \"setroadSegmentCategoryIndex\",\n selection: 0,\n });\n dispatch({\n type: \"setroadSegmentCategory\",\n selection: \"none\",\n });\n\n const findUnique = (array, key) => {\n var unique = array\n .map((p) => p.properties[key])\n .filter((key, index, arr) => arr.indexOf(key) === index);\n return unique;\n };\n // const response = await axios.get(process.env.PUBLIC_URL + `/TxDOT_Projects.geojson`);\n let cntyList = findUnique(fc, \"co\");\n //type={props.layerID === \"statewide\" ? \"rhino\" : \"tx100\"}\n if (statusGuide[0] === \"TX100\") {\n //if (props.layerID !== \"statewide\") {\n cntyList = tx100_monitored_counties.map((f) => {\n var nbr = f.cnty_nbr;\n return nbr;\n });\n }\n setCountyList(cntyList);\n }\n } catch (e) {\n console.log(e);\n }\n };\n if (statusGuide[0] === \"TX100\") {\n fetchTX100Network();\n setUTPData({\n type: \"FeatureCollection\",\n features: [],\n });\n } else {\n fetchRhinoNetwork();\n setUTPData({\n type: \"FeatureCollection\",\n features: [],\n });\n }\n\n // Re-set county dependent context data.\n // setCountyBoundaries(null);\n // setDistrictBoundaries(null);\n // setSandMinesData(null);\n // setdisposalWellsData(null);\n // setCommercialBorderCrossingData(null);\n // setNonCommercialBorderCrossingData(null);\n // setRailBorderCrossingData(null);\n setTruckParkingData(null);\n // setPortsData(null);\n // setCargoAirportsData(null);\n // setAirportsData(null);\n setInfo(

    Hover over a road

    );\n // }, [props.layerID, props.year, statusGuide[0], query.yearSelection]);\n }, [roadGeomFeatures]);\n // console.log(\"roadGeomFeatures-check\", roadGeomFeatures);\n\n // useMemo(() => {\n // if (deckglMapType === \"lines\") setRhinoPolygon(rhino);\n // else setRhinoPolygon(buffer(rhino, 0.05, { units: \"miles\" }));\n // }, [rhino, deckglMapType]);\n useMemo(() => {\n if (rhino && mapType === \"deckGL-polygons\") {\n setRhinoPolygon(buffer(rhino, 0.05, { units: \"miles\" }));\n }\n }, [rhino, mapType]);\n\n const [roadLayerVisibility, setRoadLayerVisibility] = useState({\n lines: true,\n polygons: false,\n });\n useMemo(() => {\n if (showRoads === false)\n setRoadLayerVisibility({\n lines: false,\n polygons: false,\n });\n else {\n if (mapType === \"deckGL-lines\")\n setRoadLayerVisibility({\n lines: true,\n polygons: false,\n });\n else\n setRoadLayerVisibility({\n lines: false,\n polygons: true,\n });\n }\n }, [mapType, showRoads]);\n\n useMemo(() => {\n if (airportsData === null && query.contextLayersVisibility.airports) {\n fetchAirportsData()\n .then((res) => {\n // console.log(\"succesfull stuff to be done here\", res.data);\n setAirportsData(res.data);\n let numFeaturesContext = query.contextLayersNumbFeatures;\n numFeaturesContext.airports = res.data.features.length;\n dispatch({\n type: \"setContextLayersNumbFeatures\",\n selection: numFeaturesContext,\n });\n })\n .catch((err) => console.error(err)); // promise\n }\n }, [query.contextLayersVisibility.airports]);\n useMemo(() => {\n if (\n cargoAirportsData === null &&\n query.contextLayersVisibility.cargoAirports\n ) {\n fetchCargoAirportsData()\n .then((res) => {\n // console.log(\"succesfull stuff to be done here\", res.data);\n setCargoAirportsData(res.data);\n let numFeaturesContext = query.contextLayersNumbFeatures;\n numFeaturesContext.cargoAirports = res.data.features.length;\n dispatch({\n type: \"setContextLayersNumbFeatures\",\n selection: numFeaturesContext,\n });\n })\n .catch((err) => console.error(err)); // promise\n }\n }, [query.contextLayersVisibility.cargoAirports]);\n useMemo(() => {\n if (portsData === null && query.contextLayersVisibility.portsLayer) {\n fetchPortsData()\n .then((res) => {\n // console.log(\"succesfull stuff to be done here\", res.data);\n setPortsData(res.data);\n let numFeaturesContext = query.contextLayersNumbFeatures;\n numFeaturesContext.portsLayer = res.data.features.length;\n dispatch({\n type: \"setContextLayersNumbFeatures\",\n selection: numFeaturesContext,\n });\n })\n .catch((err) => console.error(err)); // promise\n }\n }, [query.contextLayersVisibility.portsLayer]);\n useMemo(() => {\n if (\n truckParkingData === null &&\n countyList.length > 0 &&\n query.contextLayersVisibility.truckParkingLayer\n ) {\n //setIsLoading(true);\n\n fetchTruckParkingData(countyList)\n .then((res) => {\n // console.log(\"succesfull stuff to be done here\", res.data);\n setTruckParkingData(res.data);\n let numFeaturesContext = query.contextLayersNumbFeatures;\n numFeaturesContext.truckParkingLayer = res.data.features.length;\n dispatch({\n type: \"setContextLayersNumbFeatures\",\n selection: numFeaturesContext,\n });\n })\n .catch((err) => console.error(err)); // promise\n }\n }, [countyList, query.contextLayersVisibility.truckParkingLayer]);\n useMemo(() => {\n if (\n railBorderCrossingsData === null &&\n query.contextLayersVisibility.railBorderCrossings\n ) {\n fetchRailBorderCrossingData()\n .then((res) => {\n // console.log(\"succesfull stuff to be done here\", res.data);\n setRailBorderCrossingData(res.data);\n let numFeaturesContext = query.contextLayersNumbFeatures;\n numFeaturesContext.railBorderCrossings = res.data.features.length;\n dispatch({\n type: \"setContextLayersNumbFeatures\",\n selection: numFeaturesContext,\n });\n })\n .catch((err) => console.error(err)); // promise\n }\n }, [query.contextLayersVisibility.railBorderCrossings]);\n useMemo(() => {\n if (\n nonCommercialBorderCrossingsData === null &&\n query.contextLayersVisibility.nonCommercialBorderCrossings\n ) {\n fetchNonCommercialBorderCrossingData()\n .then((res) => {\n // console.log(\"succesfull stuff to be done here\", res.data);\n setNonCommercialBorderCrossingData(res.data);\n let numFeaturesContext = query.contextLayersNumbFeatures;\n numFeaturesContext.nonCommercialBorderCrossings =\n res.data.features.length;\n dispatch({\n type: \"setContextLayersNumbFeatures\",\n selection: numFeaturesContext,\n });\n })\n .catch((err) => console.error(err)); // promise\n }\n }, [query.contextLayersVisibility.nonCommercialBorderCrossings]);\n useMemo(() => {\n if (\n commercialBorderCrossingsData === null &&\n query.contextLayersVisibility.commercialBorderCrossings\n ) {\n fetchCommercialBorderCrossingData()\n .then((res) => {\n // console.log(\"succesfull stuff to be done here\", res.data);\n setCommercialBorderCrossingData(res.data);\n let numFeaturesContext = query.contextLayersNumbFeatures;\n numFeaturesContext.commercialBorderCrossings =\n res.data.features.length;\n dispatch({\n type: \"setContextLayersNumbFeatures\",\n selection: numFeaturesContext,\n });\n })\n .catch((err) => console.error(err)); // promise\n }\n }, [query.contextLayersVisibility.commercialBorderCrossings]);\n useMemo(() => {\n if (\n disposalWellsData === null &&\n query.contextLayersVisibility.disposalWells\n ) {\n fetchDisposalWellsData()\n .then((res) => {\n // console.log(\"succesfull stuff to be done here\", res.data);\n setdisposalWellsData(res.data);\n let numFeaturesContext = query.contextLayersNumbFeatures;\n numFeaturesContext.disposalWells = res.data.features.length;\n dispatch({\n type: \"setContextLayersNumbFeatures\",\n selection: numFeaturesContext,\n });\n })\n .catch((err) => console.error(err)); // promise\n }\n }, [query.contextLayersVisibility.disposalWells]);\n useMemo(() => {\n if (\n sandMinesData === null &&\n query.contextLayersVisibility.odessaDistSandMines\n ) {\n fetchSandMinesData()\n .then((res) => {\n // console.log(\"succesfull stuff to be done here\", res.data);\n setSandMinesData(res.data);\n let numFeaturesContext = query.contextLayersNumbFeatures;\n numFeaturesContext.odessaDistSandMines = res.data.features.length;\n dispatch({\n type: \"setContextLayersNumbFeatures\",\n selection: numFeaturesContext,\n });\n })\n .catch((err) => console.error(err)); // promise\n }\n }, [query.contextLayersVisibility.odessaDistSandMines]);\n useMemo(() => {\n if (\n districtBoundaries === null &&\n query.contextLayersVisibility.districtBoundaries\n ) {\n fetchDistrictBoundariesData()\n .then((res) => {\n // console.log(\"succesfull stuff to be done here\", res.data);\n setDistrictBoundaries(res.data);\n })\n .catch((err) => console.error(err)); // promise\n }\n }, [query.contextLayersVisibility.districtBoundaries]);\n useMemo(() => {\n setIsLoading(true);\n if (\n countyBoundaries === null &&\n countyList.length > 0 &&\n query.contextLayersVisibility.countyBoundaries\n ) {\n fetchCountyBoundaryData(countyList, setIsLoading)\n .then((res) => {\n // console.log(\"succesfull stuff to be done here\", res.data);\n setCountyBoundaries(res.data);\n })\n .catch((err) => console.error(err)); // promise\n }\n setIsLoading(false);\n }, [countyList, query.contextLayersVisibility.countyBoundaries]);\n\n /* UTP projects data in GeoJSON format */\n // const [utpData, setUTPData] = useState({\n // type: \"FeatureCollection\",\n // features: [],\n // });\n const [utpPointsData, setUtpPointsData] = useState({\n type: \"FeatureCollection\",\n features: [],\n });\n const [selectedUtpData, setSelectedUTPData] = useState(null);\n useMemo(() => {\n if (\n utpData.features.length === 0 &&\n countyList.length > 0 &&\n (query.utpMapLayersVisibility.underwayorsoon ||\n query.utpMapLayersVisibility.within4years ||\n query.utpMapLayersVisibility.fivetotenyears ||\n query.utpMapLayersVisibility.tenplusyears)\n ) {\n //setIsLoading(true);\n\n fetchUtpData(countyList)\n .then((res) => {\n // console.log(\"res.data-check\", res.data);\n\n const getFirstCoordinates = (g) => {\n switch (g.type) {\n case \"LineString\":\n return [g.coordinates[0][1], g.coordinates[0][0]];\n case \"MultiLineString\":\n return [g.coordinates[0][0][1], g.coordinates[0][0][0]];\n default:\n return null;\n }\n };\n let dataTemp = res.data.features;\n let fcTemp = [];\n // console.log(\"res.data-check\", dataTemp);\n dataTemp.map((d) => {\n // console.log(\"res.data-check\", d);\n // fcTemp.push({ ...d, geomPoint: \"test\" });\n // fcTemp.push({\n // ...d,\n // geometry: getFirstCoordinates(d.geometry),\n // });\n let geomTemp = getFirstCoordinates(d.geometry);\n fcTemp.push({\n ...d,\n geometry: {\n type: \"Point\",\n coordinates: [geomTemp[1], geomTemp[0]],\n },\n });\n });\n //{type: 'Point', coordinates: Array(2)}\n // res.data.features.forEach((d) => {\n // let geomPoint = { geomPoint: \"test\" };\n // d.push(geomPoint);\n // });\n // console.log(\"res.data-check\", fcTemp);\n\n setUTPData(res.data);\n setUtpPointsData({\n type: res.data.type,\n crs: res.data.crs,\n features: fcTemp,\n });\n\n const featureCount = {\n underwayorsoon: res.data.features.filter(filterPhases[0]).length,\n within4years: res.data.features.filter(filterPhases[1]).length,\n fivetotenyears: res.data.features.filter(filterPhases[2]).length,\n tenplusyears: res.data.features.filter(filterPhases[3]).length,\n };\n dispatch({\n type: \"setutpMapLayersCount\",\n selection: featureCount, //fs //tableDataUTPvalues.concat(fs) //fs\n });\n\n // setutpMapLayersCount(featureCount);\n })\n .catch((err) => console.error(err)); // promise\n // fetchUtpData(countyList)\n // .then((res) => {\n // const filterPhases = [\n // \"begins soon\",\n // \"4 years\",\n // \"5 to 10 years\",\n // \"10+ years\",\n // ].map((val) => {\n // return (fc) => fc.properties.PT_PHASE.includes(val);\n // });\n\n // // console.log(\"succesfull stuff to be done here\", res.data);\n // let f = res.data.features;\n // // console.log(\"f-check\", f);\n\n // let data = {\n // all: {\n // type: \"FeatureCollection\",\n // features: f,\n // },\n // category0: {\n // name: \"UTP-Underway or begins soon\",\n // type: \"FeatureCollection\",\n // features: f.filter(filterPhases[0]), //f.properties.PT_PHASE.includes(\"begins soon\"),\n // },\n // category1: {\n // name: \"UTP-Begins in 4 years\",\n // type: \"FeatureCollection\",\n // features: f.filter(filterPhases[1]),\n // },\n // category2: {\n // name: \"UTP-Begins in 5-10 years\",\n // type: \"FeatureCollection\",\n // features: f.filter(filterPhases[2]),\n // },\n // category3: {\n // name: \"UTP-Begins in 10+ years\",\n // type: \"FeatureCollection\",\n // features: f.filter(filterPhases[3]),\n // },\n // };\n // console.log(\"data-check\", data.category0);\n // setUTPData({ data: data });\n\n // const featureCount = {\n // underwayorsoon: f.filter(filterPhases[0]).length,\n // within4years: f.filter(filterPhases[1]).length,\n // fivetotenyears: f.filter(filterPhases[2]).length,\n // tenplusyears: f.filter(filterPhases[3]).length,\n // };\n // // setutpMapLayersCount(featureCount);\n // // dispatch({\n // // type: \"setContextLayersNumbFeatures\",\n // // selection: numFeaturesContext,\n // // });\n\n // // old Code\n // // setTruckParkingData(res.data);\n // // let numFeaturesContext = query.contextLayersNumbFeatures;\n // // numFeaturesContext.truckParkingLayer = res.data.features.length;\n // // dispatch({\n // // type: \"setContextLayersNumbFeatures\",\n // // selection: numFeaturesContext,\n // // });\n // })\n // .catch((err) => console.error(err)); // promise\n }\n }, [\n countyList,\n query.utpMapLayersVisibility.underwayorsoon,\n query.utpMapLayersVisibility.within4years,\n query.utpMapLayersVisibility.fivetotenyears,\n query.utpMapLayersVisibility.tenplusyears,\n ]);\n // }, [countyList, query.utpMapLayersVisibility]);\n\n //props.layerID, props.year, statusGuide[0]\n const getFirstCoordinates = (g) => {\n switch (g.type) {\n case \"LineString\":\n return [g.coordinates[0][1], g.coordinates[0][0]];\n case \"MultiLineString\":\n return [g.coordinates[0][0][1], g.coordinates[0][0][0]];\n default:\n return null;\n }\n };\n\n function getBoundsForRoads(mapBounds_bbox) {\n // Calculate corner values of bounds\n // const pointsLong = points.map((point) => point.coordinates._long);\n // const pointsLat = points.map((point) => point.coordinates._lat);\n // const cornersLongLat = [\n // [applyToArray(Math.min, pointsLong), applyToArray(Math.min, pointsLat)],\n // [applyToArray(Math.max, pointsLong), applyToArray(Math.max, pointsLat)],\n // ];\n const cornersLongLat = [\n [mapBounds_bbox[0], mapBounds_bbox[1]],\n [mapBounds_bbox[2], mapBounds_bbox[3]],\n ];\n // Use WebMercatorViewport to get center longitude/latitude and zoom\n const viewport = new WebMercatorViewport({\n width: 800,\n height: 600,\n }).fitBounds(cornersLongLat, { padding: 100 }); // Can also use option: offset: [0, -100]\n // const viewport = new WebMercatorViewport({\n // width: 800,\n // height: 600,\n // }).fitBounds(mapBounds_bbox, { padding: 200 }); // Can also use option: offset: [0, -100]\n const { longitude, latitude, zoom } = viewport;\n return { longitude, latitude, zoom };\n }\n\n // const [geoJsonKey, setGeoJsonKey] = useState(Date.now());\n\n // const getLineColor = (d) => {\n // const hex = d.color;\n // // convert to RGB\n // return hex.match(/[0-9a-f]{2}/g).map((x) => parseInt(x, 16));\n // };\n\n // const getLineColor2 = (d) => {\n // if (zoomLevel < 6) {\n // return COLOR_RHINO.normal\n // .match(/[0-9a-f]{2}/g)\n // .map((x) => parseInt(x, 16));\n // } else {\n // return COLOR_RHINO.selected\n // .match(/[0-9a-f]{2}/g)\n // .map((x) => parseInt(x, 16));\n // }\n // };\n\n // function colorScale2(height) {\n // const linearScale = d3\n // .scaleLinear()\n // // .domain([0, dataCategoryMax])\n // // .domain([0, 2000])\n // // .range([0, 1]);\n // .domain([100, 0])\n // .range([0, 1]);\n\n // const color = d3.color(d3.interpolateTurbo(linearScale(height)));\n // //const color = d3.color(d3.interpolateOrRd(linearScale(height)));\n // //const color = d3.color(d3.interpolateBlues(linearScale(height)));\n\n // //const linearScale = d3.scaleLinear().domain([0, dataCategoryMax]).range([1, 0]);\n // //const color = d3.color(d3.interpolateCubehelixDefault(linearScale(height)));\n\n // return [color.r, color.g, color.b];\n // }\n const [selectedPoint, setSelectedPoint] = useState(null);\n const [activePopup, setActivePopup] = useState(false);\n const renderPopup = (obj) => {\n if (selectedPoint !== null && selectedPoint !== undefined) {\n // return (\n // \n //
    {selectedPoint?.properties?.name}
    \n // \n // );\n // }\n if (activePopup) {\n if (activePopup && statusGuide[0] === \"TX100\") {\n return (\n setSelectedPoint(null)}\n >\n {/*
    ${selectedPoint.object.properties.road}
    \n
    \n {selectedPoint.object.properties.from_road} to{\" \"}\n {selectedPoint.object.properties.to_road}\n
    \n
    TX100 ID: {selectedPoint.object.properties.top100id}
    */}\n\n
    \n

    \n Layer ID: {props.layerID}\n

    \n
    \n {selectedPoint.object.properties.road}\n
    {\" \"}\n
    \n

    \n {selectedPoint.object.properties.from_road} to\n {selectedPoint.object.properties.to_road}\n

    \n
    \n
    \n

    \n To add road segment to the data table, click
    \n Add segment below.
    \n

    \n
    \n

    \n \n Add segment\n \n

    \n
    \n
    \n \n );\n } else {\n return (\n setSelectedPoint(null)}\n >\n
    \n

    \n Layer ID: {props.layerID}\n

    \n
    \n Route ID: {selectedPoint.object.properties.ria_rte_id}\n
    \n
    \n

    \n From/To DFO: {selectedPoint.object.properties.frm_dfo} to{\" \"}\n {selectedPoint.object.properties.to_dfo}\n

    \n
    \n
    \n {/*

    \n To add road segment to the data table, click
    \n Add segment below.\n

    */}\n

    \n To add road segment to the data table:
    \n

    \n
    \n

    \n \n Add segment\n \n

    \n
    \n
    \n
    \n

    To add a corridor to the data table:

    \n {/*
      \n
    1. \n Click From Here on first segment\n
    2. \n
    3. \n Click To Here on final segment to{\" \"}\n
      \n add corridor to data table.\n
    4. \n
    */}\n
    \n

    \n \n From here\n \n \n To here\n \n \n Clear prior selection\n \n

    \n
    \n
    \n \n );\n }\n }\n }\n };\n\n const [fromToCleasrButtonDisabled, setFromToClearButtonDisabled] = useState({\n fromButton: false,\n toButton: true,\n clearButton: true,\n });\n\n function handleAddSegment() {\n setActivePopup(false);\n setSelectedPoint(null);\n let rprops = selectedPoint.object.properties;\n if (statusGuide[0] === \"TX100\") {\n resetUserSelectionTX100(userSelectionTX100.current.top100id);\n // userSelection.current = {\n // top100id: rprops.top100id,\n // from_road: rprops.from_road,\n // to_road: rprops.to_road,\n // road: rprops.road,\n // };\n dispatch({\n type: \"setUserSelectionTX100\",\n selection: {\n top100id: rprops.top100id,\n from_road: rprops.from_road,\n to_road: rprops.to_road,\n road: rprops.road,\n },\n });\n // highlightUserSelectionTX100();\n } else {\n resetUserSelection(userSelection.current.ria_rte_id);\n dispatch({\n type: \"setUserSelection\",\n selection: {\n ria_rte_id: rprops.ria_rte_id,\n frm_dfo: rprops.frm_dfo,\n to_dfo: rprops.to_dfo,\n },\n });\n }\n }\n const defaultUserSelectionTX100 = {\n /* \n from_ria_rte_id: \"\",\n from_frm_dfo: Number.Nan,\n from_to_dfo: Number.NaN,\n to_frm_dfo: Number.NaN,\n to_to_dfo: Number.NaN\n */\n\n top100id: \"\",\n from_road: \"\",\n to_road: \"\",\n };\n const defaultUserSelection = {\n from_ria_rte_id: \"\",\n from_frm_dfo: Number.Nan,\n from_to_dfo: Number.NaN,\n to_frm_dfo: Number.NaN,\n to_to_dfo: Number.NaN,\n };\n const userSelection = useRef(defaultUserSelection);\n const userSelectionTX100 = useRef(defaultUserSelectionTX100);\n\n // function highlightUserSelection(selectionType) {\n // const selection = userSelection.current;\n // if (selectionType === \"from\") {\n // console.log(\n // \"BUTTON FROM TEST GOOD\",\n // rhino.features.filter(\n // (f) => f.properties.ria_rte_id !== selection.from_ria_rte_id\n // )\n // );\n // rhino.features\n // .filter((f) => f.properties.ria_rte_id === selection.from_ria_rte_id)\n // .forEach((f) => {\n // f.color = COLOR_RHINO.selected;\n // f.weight = 5;\n // });\n // rhino.features\n // .filter((f) => f.properties.ria_rte_id !== selection.from_ria_rte_id)\n // .forEach((f) => {\n // f.color = COLOR_RHINO.notSelected;\n // f.weight = 1;\n // });\n // } else {\n // rhino.features\n // .filter((f) => f.properties.ria_rte_id === selection.from_ria_rte_id)\n // .forEach((f) => {\n // f.color = COLOR_RHINO.selected;\n // f.weight = 5;\n // });\n // rhino.features\n // .filter((f) => f.properties.ria_rte_id !== selection.from_ria_rte_id)\n // .forEach((f) => {\n // f.color = f.color_base;\n // f.weight = f.weight_base;\n // });\n // if (!isNaN(selection.to_to_dfo)) {\n // const fromDfo = Math.min(selection.from_frm_dfo, selection.to_frm_dfo);\n // const toDfo = Math.max(selection.from_to_dfo, selection.to_to_dfo);\n // rhino.features\n // .filter(\n // (f) =>\n // f.properties.ria_rte_id === selection.from_ria_rte_id &&\n // f.properties.frm_dfo >= fromDfo &&\n // f.properties.to_dfo <= toDfo\n // )\n // .forEach((f) => {\n // f.color = COLOR_RHINO.selectedSection;\n // f.weight = 5;\n // });\n // // rhino.features\n // // .filter(\n // // (f) =>\n // // f.properties.ria_rte_id !== selection.from_ria_rte_id ||\n // // f.properties.frm_dfo < fromDfo ||\n // // f.properties.to_dfo > toDfo\n // // )\n // // .forEach((f) => {\n // // f.color = COLOR_RHINO.notSelected;\n // // f.weight = 5;\n // // });\n // } else {\n // /* if toHere is not selected */\n // rhino.features.filter(\n // (f) =>\n // f.properties.ria_rte_id === selection.from_ria_rte_id &&\n // f.properties.frm_dfo === selection.from_frm_dfo\n // )[0].color = COLOR_RHINO.selectedSection;\n // }\n // // setRhino(newRhino);\n // // setGeoJsonKey(Date.now());\n // // console.log(\n // // \"selectedTest\",\n // // rhino.features.filter((f) => f.color === COLOR_RHINO.selected)\n // // );\n // // console.log(\"selectionTest\", selection);\n // }\n // }\n\n function handleFrom() {\n let featureProps = selectedPoint.object.properties;\n // console.log(\"selectedPoint-check\", selectedPoint);\n\n resetUserSelection(userSelection.current.from_ria_rte_id);\n userSelection.current = {\n from_ria_rte_id: featureProps.ria_rte_id,\n from_frm_dfo: featureProps.frm_dfo,\n from_to_dfo: featureProps.to_dfo,\n };\n\n // highlightUserSelection(\"from\");\n\n setFromToClearButtonDisabled({\n fromButton: true,\n toButton: false,\n clearButton: false,\n });\n\n // let verticeIndex = Math.floor(\n // selectedPoint.object.geometry.coordinates[0].length / 2\n // );\n\n // setFromPoints([\n // {\n // type: \"From\",\n // // coordinates: selectedPoint.coordinate,\n // coordinates: selectedPoint.object.geometry.coordinates[0][verticeIndex],\n // },\n // ]);\n setFromPoints([\n {\n type: \"From\",\n // coordinates: selectedPoint.coordinate,\n coordinates: selectedPoint.coordinate,\n },\n ]);\n\n // console.log(\n // \"rhinoTest\",\n // rhino.features.filter(\n // (f) => f.properties.ria_rte_id === featureProps.ria_rte_id\n // )\n // );\n setActivePopup(false);\n // setSelectedPoint(null);\n }\n\n function handleTo() {\n let rprops = selectedPoint.object.properties;\n\n let newSelection = { ...userSelection.current };\n newSelection.to_frm_dfo = rprops.frm_dfo;\n newSelection.to_to_dfo = rprops.to_dfo;\n userSelection.current = newSelection;\n const fromDfo = Math.min(\n newSelection.from_frm_dfo,\n newSelection.to_frm_dfo\n );\n const toDfo = Math.max(newSelection.from_to_dfo, newSelection.to_to_dfo);\n dispatch({\n type: \"setUserSelection\",\n selection: {\n ria_rte_id: newSelection.from_ria_rte_id,\n frm_dfo: fromDfo,\n to_dfo: toDfo,\n },\n });\n // highlightUserSelection();\n\n resetUserSelection(userSelection.current.from_ria_rte_id);\n\n setFromToClearButtonDisabled({\n fromButton: false,\n toButton: true,\n clearButton: true,\n });\n setActivePopup(false);\n setSelectedPoint(null);\n // console.log(\"userSelection.current\", userSelection.current);\n\n setFromPoints([]);\n }\n\n function handleClearSelection() {\n resetUserSelection(userSelection.current.from_ria_rte_id);\n setFromToClearButtonDisabled({\n fromButton: false,\n toButton: true,\n clearButton: true,\n });\n setFromPoints([]);\n }\n\n function resetUserSelectionTX100(ria_rte_id) {\n // rhino.features\n // .filter((f) => f.properties.ria_rte_id === ria_rte_id)\n // .forEach((f) => {\n // f.color = f.color_base;\n // f.weight = f.weight_base;\n // });\n // setGeoJsonKey(Date.now());\n userSelectionTX100.current = defaultUserSelectionTX100;\n }\n function resetUserSelection(ria_rte_id) {\n // rhino.features\n // .filter((f) => f.properties.ria_rte_id === ria_rte_id)\n // .forEach((f) => {\n // f.color = f.color_base;\n // f.weight = f.weight_base;\n // });\n // setGeoJsonKey(Date.now());\n // userSelection.current = defaultUserSelection;\n\n // rhino.features.forEach((f) => {\n // f.color = f.color_base;\n // f.weight = f.weight_base;\n // });\n\n userSelection.current = defaultUserSelection;\n }\n\n const [info, setInfo] = useState(\n \n Hover over a road\n \n );\n\n const [minTrkCatValue, setminTrkCatValue] = useState(0);\n const [maxTrkCatValue, setmaxTrkCatValue] = useState(1000000);\n\n const [utpMapLayersCount, setutpMapLayersCount] = useState({\n underwayorsoon: 0,\n within4years: 0,\n fivetotenyears: 0,\n tenplusyears: 0,\n });\n\n /* Build a list of property as an unordered list in jsx\n * @param {*} rprops Rhino road segment properties\n */\n const stylesHoverBox = {\n h6Header: {\n textAlign: \"left\",\n },\n leftText: {\n textAlign: \"left\",\n marginBottom: \"0\",\n paddingBottom: \"0\",\n },\n leftBullet: {\n textAlign: \"left\",\n marginLeft: \"-25px\",\n },\n rightBullet: {\n textAlign: \"left\",\n marginLeft: \"20px\",\n },\n leftHeader: {\n textAlign: \"left\",\n marginLeft: \"-35px\",\n },\n rightHeader: {\n textAlign: \"left\",\n marginLeft: \"10px\",\n },\n };\n const tx100Info = (rprops) => {\n return (\n
    \n \n {/* {rprops.highway_name} ({rprops.frm_dfo} - {rprops.to_dfo}) */}\n {/* {rprops.ria_rte_id} ({rprops.frm_dfo} - {rprops.to_dfo}) */}\n {rprops.road}\n \n {/*
    {rprops.from_rd} to {rprops.to_rd}
    */}\n \n From: {rprops.from_road}\n \n \n To: {rprops.to_road}\n \n {/*

    From/To DFO: {rprops.frm_dfo.toLocaleString()} to {rprops.to_dfo.toLocaleString()}

    */}\n

    TX100 ID: {rprops.top100id}

    \n {/* \n Congestion Stats Year: {props.year}{\" \"}\n

    */}\n {/*

    Length of Segment: {rprops.leng.toLocaleString()}

    */}\n
      \n
      \n
      \n Truck\n
    • \n Top 100 Rank: {rprops.trank.toLocaleString()}{\" \"}\n
    • \n
    • \n Hours of Delay: {rprops.tdly.toLocaleString()}{\" \"}\n
    • \n
    • \n Delay Per Mile: {rprops.tdmile.toLocaleString()}{\" \"}\n
    • \n
    • \n Congestion Cost: ${rprops.tcost.toLocaleString()}{\" \"}\n
    • \n
      \n
      \n All Vehicles\n
    • \n Top 100 Rank: {rprops.arank.toLocaleString()}{\" \"}\n
    • \n
    • \n Hours of Delay: {rprops.dly.toLocaleString()}{\" \"}\n
    • \n
    • \n Delay Per Mile: {rprops.dmile.toLocaleString()}{\" \"}\n
    • \n
    • \n Congestion Cost: ${rprops.cost.toLocaleString()}{\" \"}\n
    • \n
      \n
      \n
    \n
    \n );\n };\n const rhinoInfo = (rprops) => {\n return (\n
    \n

    \n {/* {rprops.highway_name} ({rprops.frm_dfo} - {rprops.to_dfo}) */}\n {/* {rprops.ria_rte_id} ({rprops.frm_dfo} - {rprops.to_dfo}) */}\n Route ID: {rprops.ria_rte_id}\n

    \n
    \n From/To DFO: \n {rprops.frm_dfo.toLocaleString()} to {rprops.to_dfo.toLocaleString()}\n
    \n {/*

    \n Congestion Stats Year: {rprops.year}{\" \"}\n

    */}\n

    \n Length of Segment: {rprops.len_sec.toLocaleString()}{\" \"}\n

    \n

    Estimated: {rprops.estimated}

    \n
      \n
      \n
      \n
    • \n Adjusted current ADT: {rprops.adt_cur.toLocaleString()}{\" \"}\n
    • \n
    • \n Truck AADT: {rprops.tottrk.toLocaleString()}{\" \"}\n
    • \n
    • \n Daily Truck VMT: {rprops.trkttivmt.toLocaleString()}{\" \"}\n
    • \n
    • \n % of single unit trucks in ADT: {rprops.pct_sadt.toFixed(2)}{\" \"}\n
    • \n
    • \n Truck Delay: {rprops.trkdelay.toLocaleString()}{\" \"}\n
    • \n
      \n
      \n
    • \n Truck Travel Time Index: {rprops.trktti}{\" \"}\n
    • \n
    • \n Truck Planning Time Index 80: {rprops.trkpti80}{\" \"}\n
    • \n
    • \n Truck Planning Time Index 95: {rprops.trkpti95}{\" \"}\n
    • \n
    • \n % of combo unit trucks in ADT: {rprops.pct_cadt.toFixed(2)}{\" \"}\n
    • \n
      \n
      \n
    \n
    \n );\n };\n\n const [baseMap, setBaseMap] = useState(\"mapbox://styles/mapbox/streets-v11\");\n\n const [zoomLevel, setZoomLevel] = useState({\n zoomLevel: 4.85,\n zoomScale: 1,\n });\n\n // /* Highlights selected Rhino */\n // useEffect(() => {\n // /* I am cloning the rhino data.\n // * Is it the best way to refresh the map\n // * with highlights?\n // */\n // // let newRhino = { ...rhino };\n // const isSelected = query.highlightQuery;\n // if (typeof isSelected === \"function\") {\n // rhino.features\n // .filter((f) => isSelected(f))\n // .forEach((f) => {\n // f.color = COLOR_RHINO.selected;\n // f.weight = 5;\n // });\n // rhino.features\n // .filter((f) => !isSelected(f))\n // //.forEach(f => (f.color = COLOR_RHINO.normal));\n // .forEach((f) => {\n // f.color = f.color_base;\n // f.weight = f.weight_base;\n // });\n // // setTimeout(() => setRhino(newRhino), 100);\n\n // // if (rhino.features.filter((f) => isSelected(f)).length > 0) {\n // // const mapBounds_bbox = bbox(\n // // {\n // // type: \"FeatureCollection\",\n // // features: rhino.features.filter((f) => isSelected(f)),\n // // }\n // // //{ rhino }\n // // );\n\n // // mapRef.current.leafletElement.flyToBounds([\n // // [mapBounds_bbox[1] * 0.999, mapBounds_bbox[0] * 1.001],\n // // [mapBounds_bbox[3] * 1.001, mapBounds_bbox[2] * 0.999],\n // // ]);\n // // } else {\n // // mapRef.current.leafletElement.flyToBounds([homeMapBounds]);\n // // }\n\n // // setGeoJsonKey(Date.now());\n // setSelectedPoint(null);\n // }\n // }, [query.highlightQuery]);\n\n const applyToArray = (func, array) => func.apply(Math, array);\n\n const getBoundsForPoints = (points) => {\n // Calculate corner values of bounds\n const pointsLong = points.map((point) => point.coordinates._long);\n const pointsLat = points.map((point) => point.coordinates._lat);\n const cornersLongLat = [\n [applyToArray(Math.min, pointsLong), applyToArray(Math.min, pointsLat)],\n [applyToArray(Math.max, pointsLong), applyToArray(Math.max, pointsLat)],\n ];\n // Use WebMercatorViewport to get center longitude/latitude and zoom\n const viewport = new WebMercatorViewport({\n width: 800,\n height: 600,\n }).fitBounds(cornersLongLat, { padding: 200 }); // Can also use option: offset: [0, -100]\n const { longitude, latitude, zoom } = viewport;\n return { longitude, latitude, zoom };\n };\n\n const ICON_MAPPING = {\n marker: {\n x: 0,\n y: 0,\n width: 128,\n height: 128,\n mask: true,\n },\n };\n\n function deckGlTooltip(layer, object) {\n let toolTipStyle = {\n backgroundColor: \"#e1e7ed\",\n color: \"#000000\",\n fontSize: \"1.0em\",\n };\n // if (layer.id === \"roads\")\n // return {\n // html: `
    ${object.properties.road}
    From: ${object.properties.from_road}
    \n //
    To: ${object.properties.to_road}
    \n //
    arank: ${object.properties.arank}
    \n //
    trank: ${object.properties.trank}
    `,\n // style: {\n // backgroundColor: \"#e1e7ed\",\n // color: \"000000\",\n // fontSize: \"1.0em\",\n // },\n // };\n if (layer.id === \"sandMines\")\n return {\n html: `Sand Mine`,\n style: toolTipStyle,\n };\n if (layer.id === \"disposalWells\")\n return {\n html: `Disposal Well`,\n style: toolTipStyle,\n };\n if (\n layer.id === \"commercialBorderCrossings\" ||\n layer.id === \"nonCommercialBorderCrossings\" ||\n layer.id === \"railBorderCrossings\"\n ) {\n let borderCrossingCategory = \"Commercial\";\n if (layer.id === \"nonCommercialBorderCrossings\")\n borderCrossingCategory = \"Non-Commercial\";\n if (layer.id === \"railBorderCrossings\") borderCrossingCategory = \"Rail\";\n let commercialAccess = object.properties.VEH_COML === 1 ? \"Yes\" : \"No\";\n let noncommercialAccess = object.properties.VEH_CAR === 1 ? \"Yes\" : \"No\";\n let railAccess = object.properties.RR_BRDGE === 1 ? \"Yes\" : \"No\";\n let pedestrianAccess = object.properties.PED === 1 ? \"Yes\" : \"No\";\n\n return {\n html: `
    \n
    \n
    Border Crossings - ${borderCrossingCategory} Layer
    \n
    \n

    Name: ${object.properties.CROSS_NM}

    \n

    Type: ${object.properties.CRS_TYPE}

    \n

    Owner: ${object.properties.OWNER}

    \n

    Operator: ${object.properties.OPRTR}

    \n

    Jurisdiction Type: ${object.properties.JURIS_TYPE}

    \n

    Commercial: ${commercialAccess}

    \n

    Non-Commercial: ${noncommercialAccess}

    \n

    Rail: ${railAccess}

    \n

    Pedestrian: ${pedestrianAccess}

    \n
    `,\n style: toolTipStyle,\n };\n }\n if (layer.id === \"truckParking\")\n return {\n html: `Truck Parking Location`,\n style: toolTipStyle,\n };\n if (layer.id === \"ports\")\n return {\n html: `
    \n
    \n
    Ports Layer
    \n
    \n

    Name: ${object.properties.PORT_NM}

    \n

    Type: ${object.properties.PORT_TYPE}

    \n
    `,\n style: toolTipStyle,\n };\n if (layer.id === \"cargoAirports\" || layer.id === \"airports\") {\n let airportCategory = \"Cargo Airports\";\n if (layer.id === \"airports\")\n airportCategory = \"Other Major Airports Airports\";\n return {\n html: `
    \n
    \n
    ${airportCategory} Layer
    \n
    \n

    Facitlity Name: ${object.properties.Fac_Name}

    \n

    Location: ${object.properties.City}, TX

    \n

    Commercial Ops: ${object.properties.Commercial_Ops}

    \n

    Commuter Ops: ${object.properties.Commuter_Ops}

    \n

    Other Services: ${object.properties.Other_Services}

    \n
    `,\n style: toolTipStyle,\n };\n }\n if (layer.id === \"countyBoundaries\")\n return {\n html: `
    \n
    \n
    Counties Layer
    \n
    \n

    ${object.properties.cnty_nm} County

    \n

    County Code: ${object.properties.cnty_nbr}

    \n

    County FIPS: ${object.properties.cnty_fips}

    \n

    TxDOT District: ${object.properties.dist_nm}

    \n
    `,\n style: toolTipStyle,\n };\n if (layer.id === \"districtBoundaries\")\n return {\n html: `
    \n
    \n
    TxDOT Districts Layer
    \n
    \n

    ${object.properties.DIST_NM} District

    \n

    District Number: ${object.properties.DIST_NBR}

    \n

    District Abbreviation: ${object.properties.DIST_ABRVN}

    \n
    `,\n style: toolTipStyle,\n };\n if (\n layer.id === \"utp-points-1\" ||\n layer.id === \"utp-points-2\" ||\n layer.id === \"utp-points-3\" ||\n layer.id === \"utp-points-4\"\n ) {\n let category = \"UTP\";\n // if (layer.id === \"airports\")\n // airportCategory = \"Other Major Airports Airports\";\n return {\n html: `
    \n
    \n
    ${category} Layer
    \n
    \n Control Section Job: ${object.properties.CONTROL_SECT_JOB}\n
    \n Road: ${object.properties.HIGHWAY_NUMBER}\n
    \n From: ${object.properties.LIMITS_FROM}\n
    \n To: ${object.properties.LIMITS_TO}\n
    \n Type of Work: ${object.properties.TYPE_OF_WORK}\n
    \n Layman Description:\n ${object.properties.LAYMAN_DESCRIPTION1}\n
    \n Phase: ${object.properties.PT_PHASE}\n
    \n Freight Element: ${object.properties.FREIGHT}\n
    \n \n
    (Click on marker for more information)
    \n
    \n
    \n
    `,\n style: toolTipStyle,\n };\n }\n\n return;\n }\n\n // /* Highlights selected Rhino */\n // useEffect(() => {\n // /* I am cloning the rhino data.\n // * Is it the best way to refresh the map\n // * with highlights?\n // */\n // // let newRhino = { ...rhino };\n // const isSelected = query.highlightQuery;\n // if (typeof isSelected === \"function\") {\n // rhino.features\n // .filter((f) => isSelected(f))\n // .forEach((f) => {\n // f.color = COLOR_RHINO.selected;\n // f.weight = 5;\n // });\n // rhino.features\n // .filter((f) => !isSelected(f))\n // //.forEach(f => (f.color = COLOR_RHINO.normal));\n // //.forEach(f => (f.color = setColor(f)));\n // .forEach((f) => {\n // f.color = f.color_base;\n // f.weight = f.weight_base;\n // });\n // // setTimeout(() => setRhino(newRhino), 100); .color_tdly color_tdly2\n\n // if (rhino.features.filter((f) => isSelected(f)).length > 0) {\n // const mapBounds_bbox = bbox(\n // {\n // type: \"FeatureCollection\",\n // features: rhino.features.filter((f) => isSelected(f)),\n // }\n // //{ rhino }\n // );\n\n // // setmapBounds([\n // // [mapBounds_bbox[1] * 0.999, mapBounds_bbox[0] * 1.001],\n // // [mapBounds_bbox[3] * 1.001, mapBounds_bbox[2] * 0.999],\n // // ]);\n\n // // mapRef.current.leafletElement.flyToBounds([\n // // [mapBounds_bbox[1] * 0.999, mapBounds_bbox[0] * 1.001],\n // // [mapBounds_bbox[3] * 1.001, mapBounds_bbox[2] * 0.999],\n // // ]);\n // } else {\n // // setmapBounds(homeMapBounds);\n // // if (homeMapBounds)\n // // mapRef.current.leafletElement.flyToBounds([homeMapBounds]);\n // }\n\n // // setGeoJsonKey(Date.now());\n // }\n // }, [query.highlightQuery]);\n\n // Functions for colors, line widths\n function rgbToHex(r, g, b) {\n return \"#\" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n }\n\n function colorScale(height, minValue, maxValue) {\n //const color = d3.color(d3.interpolateRdYlGn(linearScale(height)));\n //const color = d3.color(d3.interpolatePuRd(linearScale(height)));\n //const color = d3.color(d3.interpolateOrRd(linearScale(height)));\n\n const linearScale = scaleLinear()\n .domain([minValue, maxValue])\n .range([0, 1]);\n\n //const color = colorF(interpolateTurbo(linearScale(height)));\n let color = colorF(interpolateTurbo(linearScale(height)));\n if (height === null)\n color = colorF(interpolateTurbo(linearScale(minValue)));\n return rgbToHex(color.r, color.g, color.b);\n }\n function colorScaleInv(height, minValue, maxValue) {\n //const color = d3.color(d3.interpolateRdYlGn(linearScale(height)));\n //const color = d3.color(d3.interpolatePuRd(linearScale(height)));\n //const color = d3.color(d3.interpolateOrRd(linearScale(height)));\n\n const linearScale = scaleLinear()\n .domain([minValue, maxValue])\n .range([1, 0]);\n\n //const color = colorF(interpolateTurbo(linearScale(height)));\n let color = colorF(interpolateTurbo(linearScale(height)));\n if (height === null)\n color = colorF(interpolateTurbo(linearScale(maxValue)));\n\n return rgbToHex(color.r, color.g, color.b);\n }\n\n function weightScale(height, minValue, maxValue) {\n const linearScale = scaleLinear()\n .domain([minValue, maxValue])\n .range([0, 1]);\n\n const weight = linearScale(height);\n\n return weight;\n }\n function weightScaleInv(height, minValue, maxValue) {\n const linearScale = scaleLinear()\n .domain([minValue, maxValue])\n .range([1, 0]);\n\n const weight = linearScale(height);\n\n return weight;\n }\n function maxCalc(compVal, value) {\n if (value !== null) {\n return Math.max(compVal, value);\n } else {\n return compVal;\n }\n }\n function minCalc(compVal, value) {\n if (value !== null) {\n return Math.min(compVal, value);\n } else {\n return compVal;\n }\n }\n function elevScaleF(height, minValue, maxValue) {\n const linearScaleElev = scaleLinear()\n .domain([minValue, maxValue])\n .range([0.001, 5]);\n // .range([5, 0.001]);\n\n const elevation = linearScaleElev(height);\n\n return elevation;\n }\n function elevScaleInvF(height, minValue, maxValue) {\n const linearScaleElevInv = scaleLinear()\n .domain([minValue, maxValue])\n .range([5, 0.001]);\n\n const elevation = linearScaleElevInv(height);\n\n return elevation;\n }\n\n useMemo(() => {\n if (rhino.features.length) {\n let geomType = setRoadGeomFeaturesType(rhino.features[0].properties);\n\n let rdSeqCat = \"none\";\n\n let minValue = 10000000;\n let maxValue = 0;\n\n let tempLineColorsWeight = rhinoLineColorsWeight;\n if (geomType === \"rhino\") {\n //if (query.roadSegmentCategory === \"none\") return f.color_normal\n if (query.roadSegmentCategory === \"tdly\") rdSeqCat = \"trkdelay\";\n if (query.roadSegmentCategory === \"tpti95\") rdSeqCat = \"trkpti95\";\n if (query.roadSegmentCategory === \"tpti80\") rdSeqCat = \"trkpti80\";\n if (query.roadSegmentCategory === \"ttti\") rdSeqCat = \"trktti\";\n if (query.roadSegmentCategory === \"trefspd\") rdSeqCat = \"trkrefspee\";\n if (query.roadSegmentCategory === \"tcongspd\") rdSeqCat = \"trkspeed\";\n if (query.roadSegmentCategory === \"taadt\") rdSeqCat = \"tottrk\";\n if (query.roadSegmentCategory === \"tvmt\") rdSeqCat = \"trkttivmt\";\n\n rhino.features.forEach((f) => {\n maxValue = maxCalc(maxValue, f.properties[rdSeqCat]);\n minValue = minCalc(minValue, f.properties[rdSeqCat]);\n });\n\n if (query.roadSegmentCategory === \"tdly\")\n setminTrkCatValue(minValue.toFixed(0));\n if (query.roadSegmentCategory === \"tpti95\")\n setminTrkCatValue(minValue.toFixed(2));\n if (query.roadSegmentCategory === \"tpti80\")\n setminTrkCatValue(minValue.toFixed(2));\n if (query.roadSegmentCategory === \"ttti\")\n setminTrkCatValue(minValue.toFixed(2));\n if (query.roadSegmentCategory === \"trefspd\")\n setminTrkCatValue(minValue.toFixed(2));\n if (query.roadSegmentCategory === \"tcongspd\")\n setminTrkCatValue(minValue.toFixed(2));\n if (query.roadSegmentCategory === \"taadt\")\n setminTrkCatValue(minValue.toFixed(0));\n if (query.roadSegmentCategory === \"tvmt\")\n setminTrkCatValue(minValue.toFixed(0));\n\n if (query.roadSegmentCategory === \"tdly\")\n setmaxTrkCatValue(maxValue.toFixed(0));\n if (query.roadSegmentCategory === \"tpti95\")\n setmaxTrkCatValue(maxValue.toFixed(2));\n if (query.roadSegmentCategory === \"tpti80\")\n setmaxTrkCatValue(maxValue.toFixed(2));\n if (query.roadSegmentCategory === \"ttti\")\n setmaxTrkCatValue(maxValue.toFixed(2));\n if (query.roadSegmentCategory === \"trefspd\")\n setmaxTrkCatValue(maxValue.toFixed(2));\n if (query.roadSegmentCategory === \"tcongspd\")\n setmaxTrkCatValue(maxValue.toFixed(2));\n if (query.roadSegmentCategory === \"taadt\")\n setmaxTrkCatValue(maxValue.toFixed(0));\n if (query.roadSegmentCategory === \"tvmt\")\n setmaxTrkCatValue(maxValue.toFixed(0));\n\n tempLineColorsWeight\n // .filter(\n // (f) =>\n // // !isSelected(f) &&\n // f.rte_id !== userSelection.current.from_ria_rte_id\n // )\n // .forEach((f) => (f.color = COLOR_RHINO.selected))\n .forEach((f) => {\n if (query.roadSegmentCategory === \"none\") {\n f.color_base = COLOR_RHINO.normal\n .match(/[0-9a-f]{2}/g)\n .map((x) => parseInt(x, 16));\n f.color = f.color_base;\n f.weight_base = 1;\n f.weight = 1;\n f.elevScale = 1;\n } else {\n let tempValues = rhino.features.filter(\n (rf) =>\n f.rte_id === rf.properties.ria_rte_id &&\n f.frm_dfo === rf.properties.frm_dfo &&\n f.to_dfo === rf.properties.to_dfo\n )[0].properties;\n if (\n query.roadSegmentCategory !== \"tcongspd\" &&\n query.roadSegmentCategory !== \"trefspd\"\n ) {\n f.color_base = colorScale(\n tempValues[rdSeqCat],\n minValue,\n maxValue\n )\n .match(/[0-9a-f]{2}/g)\n .map((x) => parseInt(x, 16));\n f.weight_base = Math.max(\n 1,\n weightScale(tempValues[rdSeqCat], minValue, maxValue) * 5\n );\n f.elevScale_base = elevScaleF(\n tempValues[rdSeqCat],\n minValue,\n maxValue\n );\n } else {\n f.color_base = colorScaleInv(\n tempValues[rdSeqCat],\n minValue,\n maxValue\n )\n .match(/[0-9a-f]{2}/g)\n .map((x) => parseInt(x, 16));\n f.weight_base = Math.max(\n 1,\n weightScaleInv(tempValues[rdSeqCat], minValue, maxValue) * 5\n );\n f.elevScale_base = elevScaleInvF(\n tempValues[rdSeqCat],\n minValue,\n maxValue\n );\n }\n f.color = f.color_base;\n f.weight = f.weight_base;\n f.elevScale = f.elevScale_base;\n }\n });\n } else {\n if (query.roadSegmentCategory === \"tdly\") rdSeqCat = \"tdly\";\n if (query.roadSegmentCategory === \"trank\") rdSeqCat = \"trank\";\n if (query.roadSegmentCategory === \"tdmile\") rdSeqCat = \"tdmile\";\n if (query.roadSegmentCategory === \"ttci\") rdSeqCat = \"ttci\";\n if (query.roadSegmentCategory === \"tpti\") rdSeqCat = \"tpti\";\n if (query.roadSegmentCategory === \"tcost\") rdSeqCat = \"tcost\";\n\n rhino.features.forEach((f) => {\n maxValue = maxCalc(maxValue, f.properties[rdSeqCat]);\n minValue = minCalc(minValue, f.properties[rdSeqCat]);\n });\n\n if (query.roadSegmentCategory === \"tdly\")\n setminTrkCatValue(minValue.toFixed(0));\n if (query.roadSegmentCategory === \"trank\")\n setminTrkCatValue(minValue.toFixed(0));\n if (query.roadSegmentCategory === \"tdmile\")\n setminTrkCatValue(minValue.toFixed(2));\n if (query.roadSegmentCategory === \"ttci\")\n setminTrkCatValue(minValue.toFixed(2));\n if (query.roadSegmentCategory === \"tpti\")\n setminTrkCatValue(minValue.toFixed(2));\n if (query.roadSegmentCategory === \"tcost\")\n setminTrkCatValue(minValue.toFixed(2));\n\n if (query.roadSegmentCategory === \"tdly\")\n setmaxTrkCatValue(maxValue.toFixed(0));\n if (query.roadSegmentCategory === \"trank\")\n setmaxTrkCatValue(maxValue.toFixed(0));\n if (query.roadSegmentCategory === \"tdmile\")\n setmaxTrkCatValue(maxValue.toFixed(2));\n if (query.roadSegmentCategory === \"ttci\")\n setmaxTrkCatValue(maxValue.toFixed(2));\n if (query.roadSegmentCategory === \"tpti\")\n setmaxTrkCatValue(maxValue.toFixed(2));\n if (query.roadSegmentCategory === \"tcost\")\n setmaxTrkCatValue(maxValue.toFixed(2));\n\n tempLineColorsWeight\n // .filter((f) => !isSelected(f))\n .forEach((f) => {\n if (query.roadSegmentCategory === \"none\") {\n f.color_base = COLOR_RHINO.normal\n .match(/[0-9a-f]{2}/g)\n .map((x) => parseInt(x, 16));\n f.color = f.color_base;\n f.weight_base = 1;\n f.weight = 1;\n f.elevScale = 1;\n } else {\n let tempValues = rhino.features.filter(\n (rf) =>\n f.rte_id === rf.properties.top100id &&\n f.frm_dfo === rf.properties.from_road &&\n f.to_dfo === rf.properties.to_road\n )[0].properties;\n if (query.roadSegmentCategory !== \"trank\") {\n f.color_base = colorScale(\n tempValues[rdSeqCat],\n minValue,\n maxValue\n )\n .match(/[0-9a-f]{2}/g)\n .map((x) => parseInt(x, 16));\n f.weight_base = Math.max(\n 1,\n weightScale(tempValues[rdSeqCat], minValue, maxValue) * 5\n );\n f.elevScale_base = elevScaleF(\n tempValues[rdSeqCat],\n minValue,\n maxValue\n );\n } else {\n f.color_base = colorScaleInv(\n tempValues[rdSeqCat],\n minValue,\n maxValue\n )\n .match(/[0-9a-f]{2}/g)\n .map((x) => parseInt(x, 16));\n f.weight_base = Math.max(\n 1,\n weightScaleInv(tempValues[rdSeqCat], minValue, maxValue) * 5\n );\n\n f.elevScale_base = elevScaleInvF(\n tempValues[rdSeqCat],\n minValue,\n maxValue\n );\n }\n f.color = f.color_base;\n f.weight = f.weight_base;\n f.elevScale = f.elevScale_base;\n // f.elevScale = 1000;\n }\n });\n }\n }\n }, [query.roadSegmentCategory]);\n\n useEffect(() => {\n if (rhino.features.length) {\n let tempLineColorsWeight = rhinoLineColorsWeight;\n if (userSelection.current.from_ria_rte_id !== \"\") {\n // tempLineColorsWeight\n // .filter((f) => f.rte_id === userSelection.current.from_ria_rte_id)\n // .forEach((f) => {\n // f.color = COLOR_RHINO.selectedSection\n // .match(/[0-9a-f]{2}/g)\n // .map((x) => parseInt(x, 16));\n // f.weight = f.weight;\n // f.elevScale = f.elevScale;\n // });\n tempLineColorsWeight\n .filter((f) => f.rte_id !== userSelection.current.from_ria_rte_id)\n .forEach((f) => {\n f.color = COLOR_RHINO.notSelected\n .match(/[0-9a-f]{2}/g)\n .map((x) => parseInt(x, 16));\n f.weight = 0.01;\n f.elevScale = 0.01;\n });\n } else {\n tempLineColorsWeight\n // .filter((f) => f.rte_id === featureProps.ria_rte_id)\n .forEach((f) => {\n f.color = f.color_base;\n f.weight = f.weight_base;\n f.elevScale = f.elevScale_base;\n });\n }\n setRhinoLineColorsWeight(tempLineColorsWeight);\n }\n }, [userSelection.current]);\n\n useEffect(() => {\n if (rhino.features.length) {\n const isSelected = query.highlightQuery;\n let tempLineColorsWeight = rhinoLineColorsWeight;\n let visibleFeatures = [];\n let colorTemp = [];\n if (tempLineColorsWeight.filter((f) => isSelected(f)).length > 0) {\n tempLineColorsWeight\n .filter((f) => isSelected(f))\n .forEach((f) => {\n f.color = f.color_base;\n f.weight = 5;\n f.elevScale = f.elevScale_base;\n });\n tempLineColorsWeight\n .filter((f) => !isSelected(f))\n .forEach((f) => {\n // colorTemp = COLOR_RHINO.notSelected\n // .match(/[0-9a-f]{2}/g)\n // .map((x) => parseInt(x, 16));\n // colorTemp.push(200);\n f.color = COLOR_RHINO.notSelected\n .match(/[0-9a-f]{2}/g)\n .map((x) => parseInt(x, 16));\n f.weight = 0.001;\n f.elevScale = 0.001;\n });\n\n rhino.features\n .filter((f) => isSelected(f.properties))\n .forEach((obj) => {\n visibleFeatures.push(obj);\n });\n } else {\n tempLineColorsWeight\n // .filter((f) => f.rte_id === featureProps.ria_rte_id)\n .forEach((f) => {\n f.color = f.color_base;\n f.weight = f.weight_base;\n f.elevScale = f.elevScale_base;\n });\n\n visibleFeatures = rhino.features;\n }\n setRhinoLineColorsWeight(tempLineColorsWeight);\n\n const mapBounds_bbox = bbox({\n type: \"FeatureCollection\",\n features: visibleFeatures,\n });\n setHomeMapBounds(getBoundsForRoads(mapBounds_bbox));\n }\n }, [query.highlightQuery]);\n\n // useMemo(() => {\n // if (rhino.features.length) {\n // const isSelected = query.highlightQuery;\n // if (typeof isSelected === \"function\") {\n // let geomType = setRoadGeomFeaturesType(rhino.features[0].properties);\n\n // let rdSeqCat = \"none\";\n\n // if (geomType === \"rhino\") {\n // //if (query.roadSegmentCategory === \"none\") return f.color_normal\n // if (query.roadSegmentCategory === \"tdly\") rdSeqCat = \"trkdelay\";\n // if (query.roadSegmentCategory === \"tpti95\") rdSeqCat = \"trkpti95\";\n // if (query.roadSegmentCategory === \"tpti80\") rdSeqCat = \"trkpti80\";\n // if (query.roadSegmentCategory === \"ttti\") rdSeqCat = \"trktti\";\n // if (query.roadSegmentCategory === \"trefspd\")\n // rdSeqCat = \"trkrefspee\";\n // if (query.roadSegmentCategory === \"tcongspd\") rdSeqCat = \"trkspeed\";\n // if (query.roadSegmentCategory === \"taadt\") rdSeqCat = \"tottrk\";\n // if (query.roadSegmentCategory === \"tvmt\") rdSeqCat = \"trkttivmt\";\n // } else {\n // if (query.roadSegmentCategory === \"tdly\") rdSeqCat = \"tdly\";\n // if (query.roadSegmentCategory === \"trank\") rdSeqCat = \"trank\";\n // if (query.roadSegmentCategory === \"tdmile\") rdSeqCat = \"tdmile\";\n // if (query.roadSegmentCategory === \"ttci\") rdSeqCat = \"ttci\";\n // if (query.roadSegmentCategory === \"tpti\") rdSeqCat = \"tpti\";\n // if (query.roadSegmentCategory === \"tcost\") rdSeqCat = \"tcost\";\n // }\n\n // function rgbToHex(r, g, b) {\n // return (\n // \"#\" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)\n // );\n // }\n\n // function colorScale(height, minValue, maxValue) {\n // //const color = d3.color(d3.interpolateRdYlGn(linearScale(height)));\n // //const color = d3.color(d3.interpolatePuRd(linearScale(height)));\n // //const color = d3.color(d3.interpolateOrRd(linearScale(height)));\n\n // const linearScale = scaleLinear()\n // .domain([minValue, maxValue])\n // .range([0, 1]);\n\n // //const color = colorF(interpolateTurbo(linearScale(height)));\n // let color = colorF(interpolateTurbo(linearScale(height)));\n // if (height === null)\n // color = colorF(interpolateTurbo(linearScale(minValue)));\n // return rgbToHex(color.r, color.g, color.b);\n // }\n // function colorScaleInv(height, minValue, maxValue) {\n // //const color = d3.color(d3.interpolateRdYlGn(linearScale(height)));\n // //const color = d3.color(d3.interpolatePuRd(linearScale(height)));\n // //const color = d3.color(d3.interpolateOrRd(linearScale(height)));\n\n // const linearScale = scaleLinear()\n // .domain([minValue, maxValue])\n // .range([1, 0]);\n\n // //const color = colorF(interpolateTurbo(linearScale(height)));\n // let color = colorF(interpolateTurbo(linearScale(height)));\n // if (height === null)\n // color = colorF(interpolateTurbo(linearScale(maxValue)));\n\n // return rgbToHex(color.r, color.g, color.b);\n // }\n\n // function weightScale(height, minValue, maxValue) {\n // const linearScale = scaleLinear()\n // .domain([minValue, maxValue])\n // .range([0, 1]);\n\n // const weight = linearScale(height);\n\n // return weight;\n // }\n // function weightScaleInv(height, minValue, maxValue) {\n // const linearScale = scaleLinear()\n // .domain([minValue, maxValue])\n // .range([1, 0]);\n\n // const weight = linearScale(height);\n\n // return weight;\n // }\n\n // let minValue = 10000000;\n // let maxValue = 0;\n // function maxCalc(compVal, value) {\n // if (value !== null) {\n // return Math.max(compVal, value);\n // } else {\n // return compVal;\n // }\n // }\n // function minCalc(compVal, value) {\n // if (value !== null) {\n // return Math.min(compVal, value);\n // } else {\n // return compVal;\n // }\n // }\n // rhino.features.forEach(\n // (f) => (\n // (maxValue = maxCalc(maxValue, f.properties[rdSeqCat])),\n // (minValue = minCalc(minValue, f.properties[rdSeqCat]))\n // )\n // );\n // // rhino.features.forEach(\n // // (f) => (\n // // (maxValue = Math.max(maxValue, f.properties[rdSeqCat])),\n // // (minValue = Math.min(minValue, f.properties[rdSeqCat]))\n // // )\n // // );\n\n // if (geomType === \"rhino\") {\n // if (query.roadSegmentCategory === \"tdly\")\n // setminTrkCatValue(minValue.toFixed(0));\n // if (query.roadSegmentCategory === \"tpti95\")\n // setminTrkCatValue(minValue.toFixed(2));\n // if (query.roadSegmentCategory === \"tpti80\")\n // setminTrkCatValue(minValue.toFixed(2));\n // if (query.roadSegmentCategory === \"ttti\")\n // setminTrkCatValue(minValue.toFixed(2));\n // if (query.roadSegmentCategory === \"trefspd\")\n // setminTrkCatValue(minValue.toFixed(2));\n // if (query.roadSegmentCategory === \"tcongspd\")\n // setminTrkCatValue(minValue.toFixed(2));\n // if (query.roadSegmentCategory === \"taadt\")\n // setminTrkCatValue(minValue.toFixed(0));\n // if (query.roadSegmentCategory === \"tvmt\")\n // setminTrkCatValue(minValue.toFixed(0));\n\n // if (query.roadSegmentCategory === \"tdly\")\n // setmaxTrkCatValue(maxValue.toFixed(0));\n // if (query.roadSegmentCategory === \"tpti95\")\n // setmaxTrkCatValue(maxValue.toFixed(2));\n // if (query.roadSegmentCategory === \"tpti80\")\n // setmaxTrkCatValue(maxValue.toFixed(2));\n // if (query.roadSegmentCategory === \"ttti\")\n // setmaxTrkCatValue(maxValue.toFixed(2));\n // if (query.roadSegmentCategory === \"trefspd\")\n // setmaxTrkCatValue(maxValue.toFixed(2));\n // if (query.roadSegmentCategory === \"tcongspd\")\n // setmaxTrkCatValue(maxValue.toFixed(2));\n // if (query.roadSegmentCategory === \"taadt\")\n // setmaxTrkCatValue(maxValue.toFixed(0));\n // if (query.roadSegmentCategory === \"tvmt\")\n // setmaxTrkCatValue(maxValue.toFixed(0));\n // } else {\n // if (query.roadSegmentCategory === \"tdly\")\n // setminTrkCatValue(minValue.toFixed(0));\n // if (query.roadSegmentCategory === \"trank\")\n // setminTrkCatValue(minValue.toFixed(0));\n // if (query.roadSegmentCategory === \"tdmile\")\n // setminTrkCatValue(minValue.toFixed(2));\n // if (query.roadSegmentCategory === \"ttci\")\n // setminTrkCatValue(minValue.toFixed(2));\n // if (query.roadSegmentCategory === \"tpti\")\n // setminTrkCatValue(minValue.toFixed(2));\n // if (query.roadSegmentCategory === \"tcost\")\n // setminTrkCatValue(minValue.toFixed(2));\n\n // if (query.roadSegmentCategory === \"tdly\")\n // setmaxTrkCatValue(maxValue.toFixed(0));\n // if (query.roadSegmentCategory === \"trank\")\n // setmaxTrkCatValue(maxValue.toFixed(0));\n // if (query.roadSegmentCategory === \"tdmile\")\n // setmaxTrkCatValue(maxValue.toFixed(2));\n // if (query.roadSegmentCategory === \"ttci\")\n // setmaxTrkCatValue(maxValue.toFixed(2));\n // if (query.roadSegmentCategory === \"tpti\")\n // setmaxTrkCatValue(maxValue.toFixed(2));\n // if (query.roadSegmentCategory === \"tcost\")\n // setmaxTrkCatValue(maxValue.toFixed(2));\n // }\n\n // function elevScaleF(height, minValue, maxValue) {\n // const linearScaleElev = scaleLinear()\n // .domain([minValue, maxValue])\n // .range([0.001, 5]);\n // // .range([5, 0.001]);\n\n // const elevation = linearScaleElev(height);\n\n // return elevation;\n // }\n // function elevScaleInvF(height, minValue, maxValue) {\n // const linearScaleElevInv = scaleLinear()\n // .domain([minValue, maxValue])\n // .range([5, 0.001]);\n\n // const elevation = linearScaleElevInv(height);\n\n // return elevation;\n // }\n\n // let tempLineColorsWeight = rhinoLineColorsWeight;\n // // rhino.features\n // // .filter((f) => isSelected(f))\n // // // .forEach((f) => (f.color = COLOR_RHINO.selected))\n // // .forEach((f) => {\n // // f.color = COLOR_RHINO.selected;\n // // f.properties.color = COLOR_RHINO.selected;\n // // });\n\n // // tempLineColorsWeight\n // // .filter((f) => isSelected(f))\n // // .forEach((f) => {\n // // f.color = COLOR_RHINO.selected\n // // .match(/[0-9a-f]{2}/g)\n // // .map((x) => parseInt(x, 16));\n // // });\n\n // if (geomType === \"rhino\") {\n // // if (userSelection.current.from_ria_rte_id !== \"\") {\n // // console.log(\"userSelection.current-check-good\");\n // // tempLineColorsWeight\n // // .filter((f) => f.rte_id === userSelection.current.from_ria_rte_id)\n // // .forEach((f) => {\n // // f.color = COLOR_RHINO.selectedSection\n // // .match(/[0-9a-f]{2}/g)\n // // .map((x) => parseInt(x, 16));\n // // });\n // // }\n\n // tempLineColorsWeight\n // .filter(\n // (f) =>\n // // !isSelected(f) &&\n // f.rte_id !== userSelection.current.from_ria_rte_id\n // )\n // // .forEach((f) => (f.color = COLOR_RHINO.selected))\n // .forEach((f) => {\n // if (query.roadSegmentCategory === \"none\") {\n // f.color_base = COLOR_RHINO.normal\n // .match(/[0-9a-f]{2}/g)\n // .map((x) => parseInt(x, 16));\n // f.color = f.color_base;\n // f.weight_base = 1;\n // f.weight = 1;\n // f.elevScale = 1;\n // } else {\n // let tempValues = rhino.features.filter(\n // (rf) =>\n // f.rte_id === rf.properties.ria_rte_id &&\n // f.frm_dfo === rf.properties.frm_dfo &&\n // f.to_dfo === rf.properties.to_dfo\n // )[0].properties;\n // if (\n // query.roadSegmentCategory !== \"tcongspd\" &&\n // query.roadSegmentCategory !== \"trefspd\"\n // ) {\n // f.color_base = colorScale(\n // tempValues[rdSeqCat],\n // minValue,\n // maxValue\n // )\n // .match(/[0-9a-f]{2}/g)\n // .map((x) => parseInt(x, 16));\n // f.weight_base = Math.max(\n // 1,\n // weightScale(tempValues[rdSeqCat], minValue, maxValue) * 5\n // );\n // f.elevScale = elevScaleF(\n // tempValues[rdSeqCat],\n // minValue,\n // maxValue\n // );\n // } else {\n // f.color_base = colorScaleInv(\n // tempValues[rdSeqCat],\n // minValue,\n // maxValue\n // )\n // .match(/[0-9a-f]{2}/g)\n // .map((x) => parseInt(x, 16));\n // f.weight_base = Math.max(\n // 1,\n // weightScaleInv(tempValues[rdSeqCat], minValue, maxValue) *\n // 5\n // );\n // f.elevScale = elevScaleInvF(\n // tempValues[rdSeqCat],\n // minValue,\n // maxValue\n // );\n // }\n // f.color = f.color_base;\n // f.weight = f.weight_base;\n // }\n // });\n // } else {\n // tempLineColorsWeight\n // // .filter((f) => !isSelected(f))\n // .forEach((f) => {\n // if (query.roadSegmentCategory === \"none\") {\n // f.color_base = COLOR_RHINO.normal\n // .match(/[0-9a-f]{2}/g)\n // .map((x) => parseInt(x, 16));\n // f.color = f.color_base;\n // f.weight_base = 1;\n // f.weight = 1;\n // f.elevScale = 1;\n // } else {\n // let tempValues = rhino.features.filter(\n // (rf) =>\n // f.rte_id === rf.properties.top100id &&\n // f.frm_dfo === rf.properties.from_road &&\n // f.to_dfo === rf.properties.to_road\n // )[0].properties;\n // if (query.roadSegmentCategory !== \"trank\") {\n // f.color_base = colorScale(\n // tempValues[rdSeqCat],\n // minValue,\n // maxValue\n // )\n // .match(/[0-9a-f]{2}/g)\n // .map((x) => parseInt(x, 16));\n // f.weight_base = Math.max(\n // 1,\n // weightScale(tempValues[rdSeqCat], minValue, maxValue) * 5\n // );\n // f.elevScale = elevScaleF(\n // tempValues[rdSeqCat],\n // minValue,\n // maxValue\n // );\n // } else {\n // f.color_base = colorScaleInv(\n // tempValues[rdSeqCat],\n // minValue,\n // maxValue\n // )\n // .match(/[0-9a-f]{2}/g)\n // .map((x) => parseInt(x, 16));\n // f.weight_base = Math.max(\n // 1,\n // weightScaleInv(tempValues[rdSeqCat], minValue, maxValue) *\n // 5\n // );\n\n // f.elevScale = elevScaleInvF(\n // tempValues[rdSeqCat],\n // minValue,\n // maxValue\n // );\n // }\n // f.color = f.color_base;\n // f.weight = f.weight_base;\n // // f.elevScale = 1000;\n // }\n // });\n // }\n\n // if (tempLineColorsWeight.filter((f) => isSelected(f)).length > 0) {\n // // console.log(\n // // \"TEST GOOD\",\n // // tempLineColorsWeight.filter((f) => !isSelected(f))\n // // );\n // tempLineColorsWeight\n // .filter((f) => !isSelected(f))\n // .forEach((f) => {\n // f.color = COLOR_RHINO.notSelected\n // .match(/[0-9a-f]{2}/g)\n // .map((x) => parseInt(x, 16));\n // f.weight = 0.01;\n // f.elevScale = 0.01;\n // });\n // }\n // setRhinoLineColorsWeight(tempLineColorsWeight);\n\n // setRoadGeomFeatures({\n // features: rhino.features,\n // // features: roadGeomFeatures.features,\n // numFeatures: rhino.features.length,\n // type: setRoadGeomFeaturesType(rhino.features[0].properties),\n // minValue: minValue,\n // maxValue: maxValue,\n // });\n\n // let testFC = [];\n // console.log(\"rhino.features-check\", rhino.features);\n // if (geomType === \"rhino\") {\n // rhino.features\n // .filter((f) => isSelected(f.properties))\n // .forEach((obj) => {\n // testFC.push(obj);\n // });\n // } else {\n // rhino.features\n // .filter((f) => isSelected(f.properties))\n // .forEach((obj) => {\n // testFC.push(obj);\n // });\n // }\n\n // if (testFC.length > 0) {\n // const mapBounds_bbox = bbox(\n // {\n // type: \"FeatureCollection\",\n // features: testFC,\n // }\n // //{ rhino }\n // );\n // setHomeMapBounds(getBoundsForRoads(mapBounds_bbox));\n // } else {\n // const mapBounds_bbox = bbox(\n // {\n // type: \"FeatureCollection\",\n // features: rhino.features,\n // }\n // //{ rhino }\n // );\n // setHomeMapBounds(getBoundsForRoads(mapBounds_bbox));\n // }\n\n // // setGeoJsonKey(Date.now());\n // }\n // }\n // }, [\n // query.roadSegmentCategory,\n // query.highlightQuery,\n // userSelection.current,\n // ]);\n\n function setRoadGeomFeaturesType(obj) {\n if (obj.top100id) return \"tx100\";\n return \"rhino\";\n }\n\n const filterPhases = [\n \"begins soon\",\n \"4 years\",\n \"5 to 10 years\",\n \"10+ years\",\n ].map((val) => {\n return (fc) => fc.properties.PT_PHASE.includes(val);\n });\n\n const [activePopupUtp, setActivePopupUtp] = useState(false);\n const renderPopupUtp = (d) => {\n // function renderPopupUtp(obj) {\n if (activePopupUtp) {\n if (d)\n return (\n setActivePopupUtp(false)}\n // tipSize={25}\n // anchor={\"top\"}\n // dynamicPosition={false}\n >\n Control Section Job: {d.object.properties.CONTROL_SECT_JOB} \n
    \n Road: {d.object.properties.HIGHWAY_NUMBER}\n
    \n From: {d.object.properties.LIMITS_FROM}\n
    \n To: {d.object.properties.LIMITS_TO}\n
    \n Type of Work: {d.object.properties.TYPE_OF_WORK}\n
    \n Layman Description: {d.object.properties.LAYMAN_DESCRIPTION1}\n
    \n Phase: {d.object.properties.PT_PHASE}\n
    \n UTP Project Tier: {d.object.properties.PRJ_TIER}\n
    \n UTP Level of Authority: {d.object.properties.PRIORITY_CODE}\n
    \n Freight Element: {d.object.properties.FREIGHT}\n
    \n Project Let Date: {d.object.properties.ACTUAL_LET_DATE}\n
    \n Month of Estimated Project Let Date:{\" \"}\n {d.object.properties.NBR_LET_MONTH}\n
    \n Year of Estimated Project Let Date:{\" \"}\n {d.object.properties.NBR_LET_YEAR}\n
    \n \n TxDOT Open Data Portal - Project\n \n \n );\n }\n return;\n };\n\n let currentContentHeight = 1;\n try {\n currentContentHeight = document.querySelector(`#map`).offsetHeight;\n } catch {\n currentContentHeight = 1;\n }\n\n return (\n //
    e.preventDefault()}... />\n e.preventDefault()}\n >\n \n // object &&\n // (object.properties.road ||\n // \"
    \" ||\n // object.properties.from_road ||\n // object.properties.to_road)\n // }\n getTooltip={\n ({ layer, object }) => object && deckGlTooltip(layer, object)\n // html: `
    ${object.properties.road}
    From: ${object.properties.from_road}
    \n //
    To: ${object.properties.to_road}
    \n //
    arank: ${object.properties.arank}
    \n //
    trank: ${object.properties.trank}
    `,\n // style: {\n // backgroundColor: \"#e1e7ed\",\n // color: \"000000\",\n // fontSize: \"1.0em\",\n // },\n // }\n }\n onViewStateChange={({ viewState }) => {\n // console.log(\"viewState-change\", viewState);\n // setZoomLevel(viewState.zoom);\n\n let zoomScaleTemp = 1;\n if (viewState.zoom > 4.85)\n zoomScaleTemp = 4.85 / (viewState.zoom * viewState.zoom);\n setZoomLevel({\n zoomLevel: viewState.zoom,\n zoomScale: zoomScaleTemp,\n // pitch: viewState.pitch,\n });\n\n // buildGeoJsonLayer();\n }}\n >\n \n {renderPopup()}\n {renderPopupUtp(selectedUtpData)}\n {isLoading && (\n \n )}\n {/* */}\n {/* \n d.path}\n getPath={(d) => d.geometry.coordinates}\n // getColor={(d) => colorToRGBArray(d.color)}\n getColor={(d, index) => {\n let colorWeightTemp = rhinoLineColorsWeight[index.index];\n let opacityTemp = 125 * colorWeightTemp.weight;\n if (query.roadSegmentCategory === \"none\") opacityTemp = 200;\n let colorTemp = colorWeightTemp.color;\n\n return [colorTemp[0], colorTemp[1], colorTemp[2], opacityTemp];\n }}\n getWidth={(d) => 5}\n /> */}\n {roadLayerVisibility.lines && (\n {\n let colorWeightTemp = rhinoLineColorsWeight[index.index];\n\n // if (\n // selectedPoint &&\n // statusGuide[0] === \"TX100\" &&\n // d.properties.gid === selectedPoint.object.properties.gid\n // )\n // // if (selectedPoint)\n // return colorWeightTemp[0].weight * 5;\n // if (\n // selectedPoint &&\n // statusGuide[0] !== \"TX100\" &&\n // d.properties.ogc_fid_new ===\n // selectedPoint.object.properties.ogc_fid_new\n // )\n // return colorWeightTemp[0].weight * 5;\n // if (\n // userSelection.current.from_ria_rte_id &&\n // statusGuide[0] !== \"TX100\" &&\n // d.properties.ria_rte_id === userSelection.current.from_ria_rte_id\n // )\n // return colorWeightTemp[0].weight * 5;\n // if (d.color === COLOR_RHINO.selected)\n // return colorWeightTemp[0].weight * (5 / zoomLevel);\n\n return colorWeightTemp.weight * 3;\n }}\n // getElevation={(d, index) => {\n // // if (d.properties.trank < 100)\n // // return 2500 * (100 / d.properties.arank);\n // // return 2500;\n // let colorWeightTemp = rhinoLineColorsWeight[index.index];\n // // if (statusGuide[0] === \"TX100\")\n // // return 2500 * (100 / d.properties.trank);\n // return 1500 * colorWeightTemp.weight;\n // }}\n onClick={(d, event) => {\n setActivePopup(true);\n setSelectedPoint(d);\n }}\n onHover={(d, event) => {\n if (d.object !== undefined && statusGuide[0] === \"TX100\")\n setInfo(tx100Info(d.object.properties));\n if (d.object !== undefined && statusGuide[0] !== \"TX100\")\n setInfo(rhinoInfo(d.object.properties));\n }}\n autoHighlight={true}\n highlightColor={COLOR_RHINO.selected\n .match(/[0-9a-f]{2}/g)\n .map((x) => parseInt(x, 16))}\n getLineColor={(d, index) => {\n // let opacityTemp = 125 * d.properties.weight;\n // if (query.roadSegmentCategory === \"none\") opacityTemp = 200;\n // let colorWeightTemp = rhinoLineColorsWeight.filter(\n // (obj) =>\n // obj.rte_id ===\n // d.properties.ria_rte_id &&\n // obj.frm_dfo ===\n // d.properties.frm_dfo &&\n // obj.to_dfo === d.properties.to_dfo\n // );\n // let opacityTemp =\n // 125 * colorWeightTemp[0].weight;\n // if (\n // query.roadSegmentCategory === \"none\"\n // )\n // opacityTemp = 200;\n // let colorTemp = colorWeightTemp[0].color\n // .match(/[0-9a-f]{2}/g)\n // .map((x) => parseInt(x, 16));\n\n // // let colorWeightTemp = rhinoLineColorsWeight[index];\n // console.log(\n // \"colorWeightTemp - check\",\n // index.index\n // );\n let colorWeightTemp = rhinoLineColorsWeight[index.index];\n let opacityTemp = 125 * colorWeightTemp.weight;\n if (query.roadSegmentCategory === \"none\") opacityTemp = 200;\n let colorTemp = colorWeightTemp.color;\n // if (\n // selectedPoint &&\n // statusGuide[0] === \"TX100\" &&\n // d.properties.gid === selectedPoint.object.properties.gid\n // ) {\n // colorTemp = COLOR_RHINO.selected\n // .match(/[0-9a-f]{2}/g)\n // .map((x) => parseInt(x, 16));\n // return [colorTemp[0], colorTemp[1], colorTemp[2], opacityTemp];\n // }\n\n // if (\n // selectedPoint &&\n // statusGuide[0] !== \"TX100\" &&\n // d.properties.ogc_fid_new ===\n // selectedPoint.object.properties.ogc_fid_new\n // ) {\n // colorTemp = COLOR_RHINO.selected\n // .match(/[0-9a-f]{2}/g)\n // .map((x) => parseInt(x, 16));\n // return [colorTemp[0], colorTemp[1], colorTemp[2], opacityTemp];\n // }\n // if (\n // userSelection.current.from_ria_rte_id !== \"\" &&\n // statusGuide[0] !== \"TX100\" &&\n // d.properties.ria_rte_id === userSelection.current.from_ria_rte_id\n // ) {\n // colorTemp = COLOR_RHINO.selectedSection\n // .match(/[0-9a-f]{2}/g)\n // .map((x) => parseInt(x, 16));\n // return [colorTemp[0], colorTemp[1], colorTemp[2], opacityTemp];\n // }\n\n return [colorTemp[0], colorTemp[1], colorTemp[2], opacityTemp];\n }}\n // getFillColor={(d, index) => {\n // // let opacityTemp = 125 * d.properties.weight;\n // // if (query.roadSegmentCategory === \"none\") opacityTemp = 200;\n // // let colorTemp = d.properties.color\n // // .match(/[0-9a-f]{2}/g)\n // // .map((x) => parseInt(x, 16));\n // // let colorWeightTemp = rhinoLineColorsWeight.filter(\n // // (obj) =>\n // // obj.rte_id === d.properties.ria_rte_id &&\n // // obj.frm_dfo === d.properties.frm_dfo &&\n // // obj.to_dfo === d.properties.to_dfo\n // // );\n // // let opacityTemp = 125 * colorWeightTemp[0].weight;\n // // if (query.roadSegmentCategory === \"none\") opacityTemp = 200;\n // // let colorTemp = colorWeightTemp[0].color\n // // .match(/[0-9a-f]{2}/g)\n // // .map((x) => parseInt(x, 16));\n\n // let colorWeightTemp = rhinoLineColorsWeight[index.index];\n // let opacityTemp = 125 * colorWeightTemp.weight;\n // if (query.roadSegmentCategory === \"none\") opacityTemp = 200;\n // let colorTemp = colorWeightTemp.color;\n\n // // if (\n // // selectedPoint &&\n // // statusGuide[0] === \"TX100\" &&\n // // d.properties.gid === selectedPoint.object.properties.gid\n // // ) {\n // // colorTemp = COLOR_RHINO.selected\n // // .match(/[0-9a-f]{2}/g)\n // // .map((x) => parseInt(x, 16));\n // // return [colorTemp[0], colorTemp[1], colorTemp[2], opacityTemp];\n // // }\n\n // // if (\n // // selectedPoint &&\n // // statusGuide[0] !== \"TX100\" &&\n // // d.properties.ogc_fid_new ===\n // // selectedPoint.object.properties.ogc_fid_new\n // // ) {\n // // colorTemp = COLOR_RHINO.selected\n // // .match(/[0-9a-f]{2}/g)\n // // .map((x) => parseInt(x, 16));\n // // return [colorTemp[0], colorTemp[1], colorTemp[2], opacityTemp];\n // // }\n // // if (\n // // userSelection.current.from_ria_rte_id !== \"\" &&\n // // statusGuide[0] !== \"TX100\" &&\n // // d.properties.ria_rte_id === userSelection.current.from_ria_rte_id\n // // ) {\n // // // if (selectedPoint)\n // // colorTemp = COLOR_RHINO.selectedSection\n // // .match(/[0-9a-f]{2}/g)\n // // .map((x) => parseInt(x, 16));\n // // return [colorTemp[0], colorTemp[1], colorTemp[2], opacityTemp];\n // // }\n\n // return [colorTemp[0], colorTemp[1], colorTemp[2], opacityTemp];\n // }}\n updateTriggers={{\n getLineColor: [\n // selectedPoint,\n userSelection.current,\n query.highlightQuery,\n query.roadSegmentCategory,\n rhinoLineColorsWeight,\n ],\n // getFillColor: [\n // // selectedPoint,\n // // userSelection.current,\n // // query.highlightQuery,\n // query.roadSegmentCategory,\n // // rhinoLineColorsWeight,\n // ],\n // // getFillColor: [\n // // selectedPoint ? selectedPoint.object.properties.top100id : null,\n // // ],\n getLineWidth: [\n // selectedPoint,\n userSelection.current,\n query.highlightQuery,\n query.roadSegmentCategory,\n // rhinoLineColorsWeight,\n ],\n // getElevation: [\n // // selectedPoint,\n // // userSelection.current,\n // // query.highlightQuery,\n // query.roadSegmentCategory,\n // // rhinoLineColorsWeight,\n // ],\n }}\n // transitions={{\n // getLineColor: 500,\n // getLineWidth: 500,\n // }}\n />\n )}\n {roadLayerVisibility.polygons && (\n {\n let colorWeightTemp = rhinoLineColorsWeight[index.index];\n\n // if (\n // selectedPoint &&\n // statusGuide[0] === \"TX100\" &&\n // d.properties.gid === selectedPoint.object.properties.gid\n // )\n // // if (selectedPoint)\n // return colorWeightTemp[0].weight * 5;\n // if (\n // selectedPoint &&\n // statusGuide[0] !== \"TX100\" &&\n // d.properties.ogc_fid_new ===\n // selectedPoint.object.properties.ogc_fid_new\n // )\n // return colorWeightTemp[0].weight * 5;\n // if (\n // userSelection.current.from_ria_rte_id &&\n // statusGuide[0] !== \"TX100\" &&\n // d.properties.ria_rte_id === userSelection.current.from_ria_rte_id\n // )\n // return colorWeightTemp[0].weight * 5;\n // if (d.color === COLOR_RHINO.selected)\n // return colorWeightTemp[0].weight * (5 / zoomLevel);\n\n return colorWeightTemp.weight * 5;\n }}\n getElevation={(d, index) => {\n // let zoomScale = 1;\n // if (zoomLevel > 4.85) zoomScale = 4.85 / (zoomLevel * zoomLevel);\n let zoomScale = zoomLevel.zoomScale;\n let elevationTemp = rhinoLineColorsWeight[index.index].elevScale;\n // if (rhinoLineColorsWeight[index.index].top100id === 2500500)\n // console.log(\n // \"rhinoLineColorsWeight[index.index]-check\",\n // rhinoLineColorsWeight[index.index]\n // );\n\n return (\n 20000 * (currentContentHeight / 421) * zoomScale * elevationTemp\n );\n }}\n onClick={(d, event) => {\n setActivePopup(true);\n setSelectedPoint(d);\n }}\n onHover={(d, event) => {\n if (d.object !== undefined && statusGuide[0] === \"TX100\")\n setInfo(tx100Info(d.object.properties));\n if (d.object !== undefined && statusGuide[0] !== \"TX100\")\n setInfo(rhinoInfo(d.object.properties));\n }}\n autoHighlight={true}\n highlightColor={COLOR_RHINO.selected\n .match(/[0-9a-f]{2}/g)\n .map((x) => parseInt(x, 16))}\n getLineColor={(d, index) => {\n // let opacityTemp = 125 * d.properties.weight;\n // if (query.roadSegmentCategory === \"none\") opacityTemp = 200;\n // let colorWeightTemp = rhinoLineColorsWeight.filter(\n // (obj) =>\n // obj.rte_id ===\n // d.properties.ria_rte_id &&\n // obj.frm_dfo ===\n // d.properties.frm_dfo &&\n // obj.to_dfo === d.properties.to_dfo\n // );\n // let opacityTemp =\n // 125 * colorWeightTemp[0].weight;\n // if (\n // query.roadSegmentCategory === \"none\"\n // )\n // opacityTemp = 200;\n // let colorTemp = colorWeightTemp[0].color\n // .match(/[0-9a-f]{2}/g)\n // .map((x) => parseInt(x, 16));\n\n // // let colorWeightTemp = rhinoLineColorsWeight[index];\n // console.log(\n // \"colorWeightTemp - check\",\n // index.index\n // );\n let colorWeightTemp = rhinoLineColorsWeight[index.index];\n let opacityTemp = 125 * colorWeightTemp.weight;\n if (query.roadSegmentCategory === \"none\") opacityTemp = 200;\n else\n opacityTemp =\n colorWeightTemp.weight *\n colorWeightTemp.weight *\n colorWeightTemp.weight;\n let colorTemp = colorWeightTemp.color;\n // if (\n // selectedPoint &&\n // statusGuide[0] === \"TX100\" &&\n // d.properties.gid === selectedPoint.object.properties.gid\n // ) {\n // colorTemp = COLOR_RHINO.selected\n // .match(/[0-9a-f]{2}/g)\n // .map((x) => parseInt(x, 16));\n // return [colorTemp[0], colorTemp[1], colorTemp[2], opacityTemp];\n // }\n\n // if (\n // selectedPoint &&\n // statusGuide[0] !== \"TX100\" &&\n // d.properties.ogc_fid_new ===\n // selectedPoint.object.properties.ogc_fid_new\n // ) {\n // colorTemp = COLOR_RHINO.selected\n // .match(/[0-9a-f]{2}/g)\n // .map((x) => parseInt(x, 16));\n // return [colorTemp[0], colorTemp[1], colorTemp[2], opacityTemp];\n // }\n // if (\n // userSelection.current.from_ria_rte_id !== \"\" &&\n // statusGuide[0] !== \"TX100\" &&\n // d.properties.ria_rte_id === userSelection.current.from_ria_rte_id\n // ) {\n // colorTemp = COLOR_RHINO.selectedSection\n // .match(/[0-9a-f]{2}/g)\n // .map((x) => parseInt(x, 16));\n // return [colorTemp[0], colorTemp[1], colorTemp[2], opacityTemp];\n // }\n\n return [colorTemp[0], colorTemp[1], colorTemp[2], opacityTemp];\n }}\n getFillColor={(d, index) => {\n // let opacityTemp = 125 * d.properties.weight;\n // if (query.roadSegmentCategory === \"none\") opacityTemp = 200;\n // let colorTemp = d.properties.color\n // .match(/[0-9a-f]{2}/g)\n // .map((x) => parseInt(x, 16));\n // let colorWeightTemp = rhinoLineColorsWeight.filter(\n // (obj) =>\n // obj.rte_id === d.properties.ria_rte_id &&\n // obj.frm_dfo === d.properties.frm_dfo &&\n // obj.to_dfo === d.properties.to_dfo\n // );\n // let opacityTemp = 125 * colorWeightTemp[0].weight;\n // if (query.roadSegmentCategory === \"none\") opacityTemp = 200;\n // let colorTemp = colorWeightTemp[0].color\n // .match(/[0-9a-f]{2}/g)\n // .map((x) => parseInt(x, 16));\n\n let colorWeightTemp = rhinoLineColorsWeight[index.index];\n // let opacityTemp = 125 * colorWeightTemp.weight;\n // if (query.roadSegmentCategory === \"none\") opacityTemp = 200;\n let colorTemp = colorWeightTemp.color;\n\n let rdSeqCat = \"none\";\n if (statusGuide[0] !== \"TX100\") {\n //if (query.roadSegmentCategory === \"none\") return f.color_normal\n if (query.roadSegmentCategory === \"tdly\") rdSeqCat = \"trkdelay\";\n if (query.roadSegmentCategory === \"tpti95\")\n rdSeqCat = \"trkpti95\";\n if (query.roadSegmentCategory === \"tpti80\")\n rdSeqCat = \"trkpti80\";\n if (query.roadSegmentCategory === \"ttti\") rdSeqCat = \"trktti\";\n if (query.roadSegmentCategory === \"trefspd\")\n rdSeqCat = \"trkrefspee\";\n if (query.roadSegmentCategory === \"tcongspd\")\n rdSeqCat = \"trkspeed\";\n if (query.roadSegmentCategory === \"taadt\") rdSeqCat = \"tottrk\";\n if (query.roadSegmentCategory === \"tvmt\")\n rdSeqCat = \"trkttivmt\";\n } else {\n if (query.roadSegmentCategory === \"tdly\") rdSeqCat = \"tdly\";\n if (query.roadSegmentCategory === \"trank\") rdSeqCat = \"trank\";\n if (query.roadSegmentCategory === \"tdmile\") rdSeqCat = \"tdmile\";\n if (query.roadSegmentCategory === \"ttci\") rdSeqCat = \"ttci\";\n if (query.roadSegmentCategory === \"tpti\") rdSeqCat = \"tpti\";\n if (query.roadSegmentCategory === \"tcost\") rdSeqCat = \"tcost\";\n }\n const linearScale = d3\n .scaleLinear()\n // .domain([0, dataCategoryMax])\n // .domain([0, 2000])\n // .range([0, 1]);\n .domain([minTrkCatValue, maxTrkCatValue])\n .range([0, 5000]);\n const linearScaleInv = d3\n .scaleLinear()\n // .domain([0, dataCategoryMax])\n // .domain([0, 2000])\n // .range([0, 1]);\n .domain([minTrkCatValue, maxTrkCatValue])\n .range([5000, 0]);\n let opacityTemp = 200;\n // if (rdSeqCat !== \"TX100\")\n // opacityTemp = linearScale(d.properties[rdSeqCat]);\n if (rdSeqCat !== \"none\") {\n if (\n query.roadSegmentCategory !== \"trank\" &&\n query.roadSegmentCategory !== \"tcongspd\" &&\n query.roadSegmentCategory !== \"trefspd\"\n )\n opacityTemp = linearScale(d.properties[rdSeqCat]);\n else opacityTemp = linearScaleInv(d.properties[rdSeqCat]);\n }\n\n // if (\n // selectedPoint &&\n // statusGuide[0] === \"TX100\" &&\n // d.properties.gid === selectedPoint.object.properties.gid\n // ) {\n // colorTemp = COLOR_RHINO.selected\n // .match(/[0-9a-f]{2}/g)\n // .map((x) => parseInt(x, 16));\n // return [colorTemp[0], colorTemp[1], colorTemp[2], opacityTemp];\n // }\n\n // if (\n // selectedPoint &&\n // statusGuide[0] !== \"TX100\" &&\n // d.properties.ogc_fid_new ===\n // selectedPoint.object.properties.ogc_fid_new\n // ) {\n // colorTemp = COLOR_RHINO.selected\n // .match(/[0-9a-f]{2}/g)\n // .map((x) => parseInt(x, 16));\n // return [colorTemp[0], colorTemp[1], colorTemp[2], opacityTemp];\n // }\n // if (\n // userSelection.current.from_ria_rte_id !== \"\" &&\n // statusGuide[0] !== \"TX100\" &&\n // d.properties.ria_rte_id === userSelection.current.from_ria_rte_id\n // ) {\n // // if (selectedPoint)\n // colorTemp = COLOR_RHINO.selectedSection\n // .match(/[0-9a-f]{2}/g)\n // .map((x) => parseInt(x, 16));\n // return [colorTemp[0], colorTemp[1], colorTemp[2], opacityTemp];\n // }\n\n return [colorTemp[0], colorTemp[1], colorTemp[2], opacityTemp];\n }}\n updateTriggers={{\n getLineColor: [\n // selectedPoint,\n userSelection.current,\n query.highlightQuery,\n query.roadSegmentCategory,\n // rhinoLineColorsWeight,\n ],\n getFillColor: [\n // selectedPoint,\n userSelection.current,\n query.highlightQuery,\n query.roadSegmentCategory,\n // rhinoLineColorsWeight,\n ],\n // getFillColor: [\n // selectedPoint ? selectedPoint.object.properties.top100id : null,\n // ],\n getLineWidth: [\n // selectedPoint,\n userSelection.current,\n query.highlightQuery,\n query.roadSegmentCategory,\n // rhinoLineColorsWeight,\n ],\n getElevation: [\n userSelection.current,\n query.highlightQuery,\n query.roadSegmentCategory,\n zoomLevel,\n ],\n }}\n // transitions={{\n // getLineColor: 500,\n // getLineWidth: 500,\n // }}\n />\n )}\n\n 0 ? true : false}\n // pickable={true}\n // pickingRadius={5}\n // stroked={false}\n // filled={false}\n // extruded={false}\n // pointType={\"icon\"}\n // getIconSize={1}\n // getIconColor={(d) => [Math.sqrt(d.exits), 140, 0]}\n // getIconAngle={0}\n // getIconPixelOffset={[0, 0]}\n // iconSizeUnits={\"pixels\"}\n // iconSizeScale={15}\n // getIcon={() => ({\n // url: UtpIconSVG1,\n // width: 24,\n // height: 24,\n // })}\n // getPosition={(d) => d.coordinates}\n // onClick={(d, event) => {\n // // console.log(\"d-check\", d);\n // setActivePopupUtp(true);\n // setSelectedUTPData(d);\n // // renderPopupUtp(d);\n // }}\n pickable={true}\n // iconAtlas and iconMapping are required\n // getIcon: return a string\n iconAtlas={\n \"https://raw.githubusercontent.com/visgl/deck.gl-data/master/website/icon-atlas.png\"\n }\n iconMapping={{\n marker: {\n x: 0,\n y: 0,\n width: 128,\n height: 128,\n mask: true,\n anchorY: 128,\n // anchorX: 0,\n },\n }}\n getIcon={(d) => \"marker\"}\n sizeScale={3}\n getPosition={(d) => d.coordinates}\n getSize={(d) => 10}\n getColor={(d) => [140, 140, 0]}\n // sizeScale={15}\n updateTriggers={{\n getColor: [\n // selectedPoint,\n userSelection.current,\n query.highlightQuery,\n query.roadSegmentCategory,\n // rhinoLineColorsWeight,\n ],\n }}\n />\n\n {/* {countyBoundaries !== null &&\n query.contextLayersVisibility.countyBoundaries && ( */}\n {\n // setActivePopup(true);\n // setSelectedPoint(d);\n // }}\n // onHover={(d, event) => {\n // if (d.object !== undefined && statusGuide[0] === \"TX100\")\n // setInfo(tx100Info(d.object.properties));\n // if (d.object !== undefined && statusGuide[0] !== \"TX100\")\n // setInfo(rhinoInfo(d.object.properties));\n // }}\n autoHighlight={true}\n highlightColor={[160, 160, 180, 10]}\n getLineColor={[46, 49, 49]}\n getFillColor={\"#ffa305\"\n .match(/[0-9a-f]{2}/g)\n .map((x) => parseInt(x, 16))}\n />\n {/* )} */}\n {/* {districtBoundaries !== null &&\n query.contextLayersVisibility.districtBoundaries && ( */}\n {\n // setActivePopup(true);\n // setSelectedPoint(d);\n // }}\n // onHover={(d, event) => {\n // if (d.object !== undefined && statusGuide[0] === \"TX100\")\n // setInfo(tx100Info(d.object.properties));\n // if (d.object !== undefined && statusGuide[0] !== \"TX100\")\n // setInfo(rhinoInfo(d.object.properties));\n // }}\n autoHighlight={true}\n highlightColor={[160, 160, 180, 10]}\n getLineColor={[46, 49, 49]}\n getFillColor={\"#90ee90\"\n .match(/[0-9a-f]{2}/g)\n .map((x) => parseInt(x, 16))}\n />\n {/* )} */}\n {/* {sandMinesData !== null &&\n query.contextLayersVisibility.odessaDistSandMines && ( */}\n {\n // setActivePopup(true);\n // setSelectedPoint(d);\n // }}\n // onHover={(d, event) => {\n // if (d.object !== undefined && statusGuide[0] === \"TX100\")\n // setInfo(tx100Info(d.object.properties));\n // if (d.object !== undefined && statusGuide[0] !== \"TX100\")\n // setInfo(rhinoInfo(d.object.properties));\n // }}\n autoHighlight={true}\n highlightColor={[160, 160, 180, 10]}\n getLineColor={[46, 49, 49]}\n getFillColor={colorContextlayers.sandMines\n .match(/[0-9a-f]{2}/g)\n .map((x) => parseInt(x, 16))}\n />\n {/* )} */}\n {/* {disposalWellsData !== null &&\n query.contextLayersVisibility.disposalWells && ( */}\n {\n // setActivePopup(true);\n // setSelectedPoint(d);\n // }}\n // onHover={(d, event) => {\n // if (d.object !== undefined && statusGuide[0] === \"TX100\")\n // setInfo(tx100Info(d.object.properties));\n // if (d.object !== undefined && statusGuide[0] !== \"TX100\")\n // setInfo(rhinoInfo(d.object.properties));\n // }}\n autoHighlight={true}\n highlightColor={[160, 160, 180, 10]}\n getLineColor={[46, 49, 49]}\n getFillColor={colorContextlayers.disposalWells\n .match(/[0-9a-f]{2}/g)\n .map((x) => parseInt(x, 16))}\n />\n {/* )} */}\n {/* {commercialBorderCrossingsData !== null &&\n query.contextLayersVisibility.commercialBorderCrossings && ( */}\n {\n // if (d.object !== undefined && statusGuide[0] === \"TX100\")\n // setInfo(tx100Info(d.object.properties));\n // if (d.object !== undefined && statusGuide[0] !== \"TX100\")\n // setInfo(rhinoInfo(d.object.properties));\n // }}\n autoHighlight={true}\n highlightColor={[160, 160, 180, 10]}\n // iconAtlas and iconMapping are required\n // getIcon: return a string\n // iconAtlas={\n // \"https://raw.githubusercontent.com/visgl/deck.gl-data/master/website/icon-atlas.png\"\n // }\n // iconMapping={ICON_MAPPING}\n // getIcon={(d) => \"marker\"}\n getIconSize={1}\n getIconColor={(d) => [Math.sqrt(d.exits), 140, 0]}\n getIconAngle={0}\n getIconPixelOffset={[0, 0]}\n iconSizeUnits={\"pixels\"}\n iconSizeScale={15}\n // iconSizeMinPixels\n // getPosition={(d) => d.coordinates}\n // getSize={(d) => 5}\n // getColor={(d) => [Math.sqrt(d.exits), 140, 0]}\n\n getIcon={() => ({\n url: commercialBorderCrossingIconSvg,\n width: 24,\n height: 24,\n })}\n />\n {/* )} */}\n {/* {nonCommercialBorderCrossingsData !== null &&\n query.contextLayersVisibility.nonCommercialBorderCrossings && ( */}\n {\n // if (d.object !== undefined && statusGuide[0] === \"TX100\")\n // setInfo(tx100Info(d.object.properties));\n // if (d.object !== undefined && statusGuide[0] !== \"TX100\")\n // setInfo(rhinoInfo(d.object.properties));\n // }}\n autoHighlight={true}\n highlightColor={[160, 160, 180, 10]}\n // iconAtlas and iconMapping are required\n // getIcon: return a string\n // iconAtlas={\n // \"https://raw.githubusercontent.com/visgl/deck.gl-data/master/website/icon-atlas.png\"\n // }\n // iconMapping={ICON_MAPPING}\n // getIcon={(d) => \"marker\"}\n getIconSize={1}\n getIconColor={(d) => [Math.sqrt(d.exits), 140, 0]}\n getIconAngle={0}\n getIconPixelOffset={[0, 0]}\n iconSizeUnits={\"pixels\"}\n iconSizeScale={15}\n // iconSizeMinPixels\n // getPosition={(d) => d.coordinates}\n // getSize={(d) => 5}\n // getColor={(d) => [Math.sqrt(d.exits), 140, 0]}\n\n getIcon={() => ({\n url: nonCommercialBorderCrossingIconSvg,\n width: 24,\n height: 24,\n })}\n />\n {/* )} */}\n {/* {railBorderCrossingsData !== null &&\n query.contextLayersVisibility.railBorderCrossings && ( */}\n {\n // if (d.object !== undefined && statusGuide[0] === \"TX100\")\n // setInfo(tx100Info(d.object.properties));\n // if (d.object !== undefined && statusGuide[0] !== \"TX100\")\n // setInfo(rhinoInfo(d.object.properties));\n // }}\n autoHighlight={true}\n highlightColor={[160, 160, 180, 10]}\n // iconAtlas and iconMapping are required\n // getIcon: return a string\n // iconAtlas={\n // \"https://raw.githubusercontent.com/visgl/deck.gl-data/master/website/icon-atlas.png\"\n // }\n // iconMapping={ICON_MAPPING}\n // getIcon={(d) => \"marker\"}\n getIconSize={1}\n getIconColor={(d) => [Math.sqrt(d.exits), 140, 0]}\n getIconAngle={0}\n getIconPixelOffset={[0, 0]}\n iconSizeUnits={\"pixels\"}\n iconSizeScale={15}\n // iconSizeMinPixels\n // getPosition={(d) => d.coordinates}\n // getSize={(d) => 5}\n // getColor={(d) => [Math.sqrt(d.exits), 140, 0]}\n\n getIcon={() => ({\n url: railBorderCrossingIconSvg,\n width: 24,\n height: 24,\n })}\n />\n {/* )} */}\n {/* {truckParkingData !== null &&\n query.contextLayersVisibility.truckParkingLayer && ( */}\n {\n // if (d.object !== undefined && statusGuide[0] === \"TX100\")\n // setInfo(tx100Info(d.object.properties));\n // if (d.object !== undefined && statusGuide[0] !== \"TX100\")\n // setInfo(rhinoInfo(d.object.properties));\n // }}\n autoHighlight={true}\n highlightColor={[160, 160, 180, 10]}\n // iconAtlas and iconMapping are required\n // getIcon: return a string\n // iconAtlas={\n // \"https://raw.githubusercontent.com/visgl/deck.gl-data/master/website/icon-atlas.png\"\n // }\n // iconMapping={ICON_MAPPING}\n // getIcon={(d) => \"marker\"}\n getIconSize={1}\n getIconColor={(d) => [Math.sqrt(d.exits), 140, 0]}\n getIconAngle={0}\n getIconPixelOffset={[0, 0]}\n iconSizeUnits={\"pixels\"}\n iconSizeScale={15}\n // iconSizeMinPixels\n // getPosition={(d) => d.coordinates}\n // getSize={(d) => 5}\n // getColor={(d) => [Math.sqrt(d.exits), 140, 0]}\n\n getIcon={() => ({\n url: truckParkingIconSvg,\n width: 24,\n height: 24,\n })}\n />\n {/* )} */}\n {/* {portsData !== null && query.contextLayersVisibility.portsLayer && ( */}\n {\n // if (d.object !== undefined && statusGuide[0] === \"TX100\")\n // setInfo(tx100Info(d.object.properties));\n // if (d.object !== undefined && statusGuide[0] !== \"TX100\")\n // setInfo(rhinoInfo(d.object.properties));\n // }}\n autoHighlight={true}\n highlightColor={[160, 160, 180, 10]}\n // iconAtlas and iconMapping are required\n // getIcon: return a string\n // iconAtlas={\n // \"https://raw.githubusercontent.com/visgl/deck.gl-data/master/website/icon-atlas.png\"\n // }\n // iconMapping={ICON_MAPPING}\n // getIcon={(d) => \"marker\"}\n getIconSize={1}\n getIconColor={(d) => [Math.sqrt(d.exits), 140, 0]}\n getIconAngle={0}\n getIconPixelOffset={[0, 0]}\n iconSizeUnits={\"pixels\"}\n iconSizeScale={15}\n // iconSizeMinPixels\n // getPosition={(d) => d.coordinates}\n // getSize={(d) => 5}\n // getColor={(d) => [Math.sqrt(d.exits), 140, 0]}\n\n getIcon={() => ({\n url: portsIconSvg,\n width: 24,\n height: 24,\n })}\n />\n {/* )} */}\n {/* {cargoAirportsData !== null &&\n query.contextLayersVisibility.cargoAirports && ( */}\n {\n // if (d.object !== undefined && statusGuide[0] === \"TX100\")\n // setInfo(tx100Info(d.object.properties));\n // if (d.object !== undefined && statusGuide[0] !== \"TX100\")\n // setInfo(rhinoInfo(d.object.properties));\n // }}\n autoHighlight={true}\n highlightColor={[160, 160, 180, 10]}\n // iconAtlas and iconMapping are required\n // getIcon: return a string\n // iconAtlas={\n // \"https://raw.githubusercontent.com/visgl/deck.gl-data/master/website/icon-atlas.png\"\n // }\n // iconMapping={ICON_MAPPING}\n // getIcon={(d) => \"marker\"}\n getIconSize={1}\n getIconColor={(d) => [Math.sqrt(d.exits), 140, 0]}\n getIconAngle={0}\n getIconPixelOffset={[0, 0]}\n iconSizeUnits={\"pixels\"}\n iconSizeScale={15}\n // iconSizeMinPixels\n // getPosition={(d) => d.coordinates}\n // getSize={(d) => 5}\n // getColor={(d) => [Math.sqrt(d.exits), 140, 0]}\n\n getIcon={() => ({\n url: cargoAirportsIconSvg,\n width: 24,\n height: 24,\n })}\n />\n {/* )} */}\n {/* {airportsData !== null && query.contextLayersVisibility.airports && ( */}\n {\n // if (d.object !== undefined && statusGuide[0] === \"TX100\")\n // setInfo(tx100Info(d.object.properties));\n // if (d.object !== undefined && statusGuide[0] !== \"TX100\")\n // setInfo(rhinoInfo(d.object.properties));\n // }}\n autoHighlight={true}\n highlightColor={[160, 160, 180, 10]}\n // iconAtlas and iconMapping are required\n // getIcon: return a string\n // iconAtlas={\n // \"https://raw.githubusercontent.com/visgl/deck.gl-data/master/website/icon-atlas.png\"\n // }\n // iconMapping={ICON_MAPPING}\n // getIcon={(d) => \"marker\"}\n getPosition={(d) => d.geomPoint}\n getIconSize={1}\n getIconColor={(d) => [Math.sqrt(d.exits), 140, 0]}\n getIconAngle={0}\n getIconPixelOffset={[0, 0]}\n iconSizeUnits={\"pixels\"}\n iconSizeScale={15}\n // iconSizeMinPixels\n // getPosition={(d) => d.coordinates}\n // getSize={(d) => 5}\n // getColor={(d) => [Math.sqrt(d.exits), 140, 0]}\n\n getIcon={() => ({\n url: airportsIconSvg,\n width: 24,\n height: 24,\n })}\n />\n\n {/* )} */}\n\n {query.utpMapLayersVisibility.underwayorsoon &&\n utpData.features.length > 1 && (\n [Math.sqrt(d.exits), 140, 0]}\n getIconAngle={0}\n getIconPixelOffset={[0, 0]}\n iconSizeUnits={\"pixels\"}\n iconSizeScale={15}\n getIcon={() => ({\n url: UtpIconSVG1,\n width: 24,\n height: 24,\n })}\n onClick={(d, event) => {\n // console.log(\"d-check\", d);\n setActivePopupUtp(true);\n setSelectedUTPData(d);\n // renderPopupUtp(d);\n }}\n />\n )}\n\n {query.utpMapLayersVisibility.within4years &&\n utpData.features.length > 1 && (\n [Math.sqrt(d.exits), 140, 0]}\n getIconAngle={0}\n getIconPixelOffset={[0, 0]}\n iconSizeUnits={\"pixels\"}\n iconSizeScale={15}\n getIcon={() => ({\n url: UtpIconSVG2,\n width: 24,\n height: 24,\n })}\n onClick={(d, event) => {\n // console.log(\"d-check\", d);\n setActivePopupUtp(true);\n setSelectedUTPData(d);\n // renderPopupUtp(d);\n }}\n />\n )}\n\n {query.utpMapLayersVisibility.fivetotenyears &&\n utpData.features.length > 1 && (\n [Math.sqrt(d.exits), 140, 0]}\n getIconAngle={0}\n getIconPixelOffset={[0, 0]}\n iconSizeUnits={\"pixels\"}\n iconSizeScale={15}\n getIcon={() => ({\n url: UtpIconSVG3,\n width: 24,\n height: 24,\n })}\n onClick={(d, event) => {\n // console.log(\"d-check\", d);\n setActivePopupUtp(true);\n setSelectedUTPData(d);\n // renderPopupUtp(d);\n }}\n />\n )}\n\n {query.utpMapLayersVisibility.tenplusyears &&\n utpData.features.length > 1 && (\n [Math.sqrt(d.exits), 140, 0]}\n getIconAngle={0}\n getIconPixelOffset={[0, 0]}\n iconSizeUnits={\"pixels\"}\n iconSizeScale={15}\n getIcon={() => ({\n url: UtpIconSVG4,\n width: 24,\n height: 24,\n })}\n onClick={(d, event) => {\n // console.log(\"d-check\", d);\n setActivePopupUtp(true);\n setSelectedUTPData(d);\n // renderPopupUtp(d);\n }}\n />\n )}\n {selectedUtpData && (\n \n f.properties.OBJECTID ===\n selectedUtpData.object.properties.OBJECTID\n )}\n visible={activePopupUtp}\n pickable={false}\n pickingRadius={5}\n stroked={false}\n filled={false}\n extruded={false}\n lineWidthMinPixels={4}\n getLineWidth={10}\n autoHighlight={true}\n highlightColor={COLOR_RHINO.selected\n .match(/[0-9a-f]{2}/g)\n .map((x) => parseInt(x, 16))}\n getLineColor={\"#00FF00\"\n .match(/[0-9a-f]{2}/g)\n .map((x) => parseInt(x, 16))}\n />\n )}\n\n {/* */}\n \n \n
    \n {/* {!isLoading && }\n {!isLoading && }\n {!isLoading && (\n
    \n \n
    \n )} */}\n \n \n
    \n \n
    \n \n
    \n );\n}\n\nexport default DeckglMap;\n","import React, { useState, useContext, useEffect } from \"react\";\n\nimport { lighten, withStyles, makeStyles } from \"@material-ui/core/styles\";\nimport FormGroup from \"@material-ui/core/FormGroup\";\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\nimport Switch from \"@material-ui/core/Switch\";\n//import Icon from '@material-ui/core/Icon';\nimport Paper from \"@material-ui/core/Paper\";\n\n//import Image from 'material-ui-image';\n\nimport { RhinoQueryContext } from \"../map/RhinoQueryContext\";\n\n// import {\n// Accordion,\n// AccordionSummary,\n// AccordionDetails,\n// } from \"@material-ui/core\";\n// import ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\nimport Typography from \"@material-ui/core/Typography\";\n\nimport Tooltip from \"@material-ui/core/Tooltip\";\n\nimport Card from \"@material-ui/core/Card\";\nimport CardActions from \"@material-ui/core/CardActions\";\nimport CardContent from \"@material-ui/core/CardContent\";\nimport CardHeader from \"@material-ui/core/CardHeader\";\nimport Button from \"@material-ui/core/Button\";\n\nimport InfoIcon from \"@material-ui/icons/Info\";\n\nimport { Grid } from \"@material-ui/core/\";\nimport Divider from \"@material-ui/core/Divider\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: \"100%\",\n },\n paper: {\n width: \"100%\",\n marginBottom: theme.spacing(2),\n },\n card: {\n borderRadius: 0,\n // backgroundColor: theme.palette.primary.light,\n // color: theme.palette.primary.contrastText,\n boxShadow: \"none\",\n },\n table: {\n minWidth: 750,\n },\n visuallyHidden: {\n border: 0,\n clip: \"rect(0 0 0 0)\",\n height: 1,\n margin: -1,\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n top: 20,\n width: 1,\n },\n heading: {\n fontSize: theme.typography.pxToRem(15),\n fontWeight: theme.typography.fontWeightBold,\n },\n bullet: {\n display: \"inline-block\",\n margin: \"0 2px\",\n transform: \"scale(0.8)\",\n },\n cardcontent: {\n paddingTop: 0,\n \"&:last-child\": {\n paddingBottom: 0,\n },\n },\n cardActions: {\n color: \"#5945cc\",\n },\n title: {\n flexGrow: 1,\n textAlign: \"center\",\n marginTop: 5,\n },\n}));\n\nexport default function OtherMapLayers(props) {\n const classes = useStyles();\n const [query, dispatch] = useContext(RhinoQueryContext);\n //const [queryOtherLayers, dispatchOtherLayers] = useContext(OtherLayersQueryContext);\n\n // const [utpLayersChecked, setutpLayersChecked] = useState({\n // underwayorsoon: false,\n // within4years: false,\n // fivetotenyears: false,\n // tenplusyears: false,\n // });\n const {\n utpLayersChecked,\n setutpLayersChecked,\n contextLayersChecked,\n setContextLayersChecked,\n } = props;\n\n const handleCheckChange = (event) => {\n setutpLayersChecked({\n ...utpLayersChecked,\n [event.target.name]: event.target.checked,\n });\n };\n\n useEffect(() => {\n dispatch({\n type: \"setutpMapLayersVisibility\",\n selection: {\n underwayorsoon: utpLayersChecked.underwayorsoon,\n within4years: utpLayersChecked.within4years,\n fivetotenyears: utpLayersChecked.fivetotenyears,\n tenplusyears: utpLayersChecked.tenplusyears,\n }, //fs //tableDataUTPvalues.concat(fs) //fs\n });\n }, [utpLayersChecked]);\n\n // const [contextLayersChecked, setContextLayersChecked] = useState({\n // countyBoundaries: false,\n // districtBoundaries: false,\n // odessaDistSandMines: false,\n // disposalWells: false,\n // commercialBorderCrossings: false,\n // nonCommercialBorderCrossings: false,\n // railBorderCrossings: false,\n // portsLayer: false,\n // cargoAirports: false,\n // airports: false,\n // });\n\n const handleContextLayersCheckChange = (event) => {\n setContextLayersChecked({\n ...contextLayersChecked,\n [event.target.name]: event.target.checked,\n });\n };\n\n useEffect(() => {\n dispatch({\n type: \"setContextLayersVisibility\",\n selection: {\n countyBoundaries: contextLayersChecked.countyBoundaries,\n districtBoundaries: contextLayersChecked.districtBoundaries,\n odessaDistSandMines: contextLayersChecked.odessaDistSandMines,\n disposalWells: contextLayersChecked.disposalWells,\n commercialBorderCrossings:\n contextLayersChecked.commercialBorderCrossings,\n nonCommercialBorderCrossings:\n contextLayersChecked.nonCommercialBorderCrossings,\n railBorderCrossings: contextLayersChecked.railBorderCrossings,\n portsLayer: contextLayersChecked.portsLayer,\n cargoAirports: contextLayersChecked.cargoAirports,\n airports: contextLayersChecked.airports,\n truckParkingLayer: contextLayersChecked.truckParkingLayer,\n }, //fs //tableDataUTPvalues.concat(fs) //fs\n });\n }, [contextLayersChecked]);\n\n // const HtmlTooltip = withStyles((theme) => ({\n // tooltip: {\n // //backgroundColor: '#f5f5f9',\n // //color: 'rgba(0, 0, 0, 0.87)',\n // maxWidth: 300,\n // fontSize: theme.typography.pxToRem(14),\n // border: \"1px solid #dadde9\",\n // },\n // }))(Tooltip);\n\n return (\n
    \n \n \n \n \n Geographies\n \n \n \n \n {/* \n Geographies\n */}\n \n \n }\n label={\"Road Segments\"}\n disabled\n />\n \n }\n label={\"County Boundaries\"}\n />\n \n }\n label={\"TxDOT Districts\"}\n />\n {/* \n \n \n More Information - TxDOT Open Data Portal\n \n */}\n \n \n \n \n \n More Information - TxDOT Open Data Portal\n \n \n \n \n \n UTP Projects\n \n \n \n \n \n \n \n \n }\n label={\"Construction underway or begins soon\"}\n //labelPlacement=\"start\"\n />\n \n }\n label={\"Construction begins within 4 years\"}\n //labelPlacement=\"start\"\n />\n \n \n \n \n \n \n \n \n \n \n \n }\n label={\"Construction begins in 5 to 10 years\"}\n //labelPlacement=\"start\"\n />\n \n }\n label={\"Corridor Studies, construction in 10+ years\"}\n //labelPlacement=\"start\"\n />\n {/* \n \n \n More Information - TxDOT Open Data Portal\n \n */}\n \n \n {\" \"}\n \n \n \n More Information - TxDOT Open Data Portal\n \n \n \n \n \n \n Truck Trip Generators\n \n \n \n \n \n \n \n \n }\n label={\"Odessa District Sand Mines\"}\n //labelPlacement=\"start\"\n />\n \n }\n label={\"Disposal Wells\"}\n //labelPlacement=\"start\"\n />\n \n \n \n \n \n \n \n \n \n }\n label={\"Truck Parking\"}\n //labelPlacement=\"start\"\n />\n \n \n \n \n \n \n \n \n \n \n \n }\n // label={\"Border Crossings - Commercial Travel\"}\n label={\"Commercial Travel\"}\n />\n \n }\n // label={\"Border Crossings - No Commercial Travel\"}\n label={\"No Commercial Travel\"}\n />\n \n }\n // label={\"Border Crossings - Rail Only\"}\n label={\"Rail Only\"}\n />\n \n \n \n \n More Information - TxDOT Open Data Portal\n \n \n \n \n \n \n \n \n \n \n Freight Infrastructure\n \n \n \n \n \n \n \n \n }\n label={\"Ports\"}\n //labelPlacement=\"start\"\n />\n \n \n \n \n More Information - TxDOT Open Data Portal\n \n {\" \"}\n \n \n \n \n \n \n \n \n }\n label={\"Intermodal Facilities\"}\n //labelPlacement=\"start\"\n disabled\n />\n \n \n \n \n \n \n \n \n \n \n \n }\n label={\"Cargo Airports\"}\n //labelPlacement=\"start\"\n //disabled\n />\n \n }\n label={\"Other Major Airports\"}\n //labelPlacement=\"start\"\n //disabled\n />\n \n \n \n \n More Information - Bureau of Transportation Statistics\n (BTS) Open Data Catalog\n \n {\" \"}\n \n \n \n {\" \"}\n \n \n \n
    \n );\n}\n","import React, { useState, useContext, useEffect } from \"react\";\n\nimport { withStyles, makeStyles } from \"@material-ui/core/styles\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport FormGroup from \"@material-ui/core/FormGroup\";\n// import IconButton from \"@material-ui/core/IconButton\";\nimport Checkbox from \"@material-ui/core/Checkbox\";\nimport Button from \"@material-ui/core/Button\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport DialogActions from \"@material-ui/core/DialogActions\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\nimport ViewColumnIcon from \"@material-ui/icons/ViewColumn\";\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\nimport FormLabel from \"@material-ui/core/FormLabel\";\nimport Divider from \"@material-ui/core/Divider\";\nimport Grid from \"@material-ui/core/Grid\";\n\n//import { QueryContext } from \"../map/QueryContext\";\nimport { RhinoQueryContext } from \"../map/RhinoQueryContext\";\n\nconst HtmlTooltip = withStyles((theme) => ({\n tooltip: {\n maxWidth: 400,\n fontSize: theme.typography.pxToRem(12),\n border: \"1px solid #dadde9\",\n },\n}))(Tooltip);\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: \"100%\",\n },\n paper: {\n width: \"100%\",\n marginBottom: theme.spacing(2),\n },\n colselectLabel: {\n paddingRight: 15,\n },\n colselectColumn2: {\n paddingLeft: 15,\n },\n buttonClass: {\n position: \"relative\",\n top: \"-2px\",\n },\n}));\n\nexport default function TableColumnSelector(props) {\n const classes = useStyles();\n const [query, dispatch] = useContext(RhinoQueryContext);\n const columns = props.columns;\n const [open, setOpen] = React.useState(false);\n const handleClickOpen = () => {\n setOpen(true);\n };\n const handleClose = () => {\n setOpen(false);\n };\n\n const [columnsState, setColumnsState] = useState(query.tableColumns);\n useEffect(() => {\n setColumnsState(query.tableColumns);\n }, [query.tableColumns]); //query.roadLayerType\n\n const handleChange = (event) => {\n // NOTE: TRUCK % MUST HAVE AADT AND TRUCK AADT.\n if (event.target.name === \"trkvolper\" && event.target.checked) {\n columnsState.aadt = true;\n columnsState.trkaadt = true;\n }\n\n dispatch({\n type: \"setTableColumns\",\n selection: { ...columnsState, [event.target.name]: event.target.checked },\n });\n };\n\n const handleUnselectAllColumnsAll = (event) => {\n let cols = {};\n\n cols = buildColsState(cols, \"route\", \"keep\");\n cols = buildColsState(cols, \"all\", false);\n cols = buildColsState(cols, \"truck\", \"keep\");\n\n dispatch({\n type: \"setTableColumns\",\n selection: cols,\n });\n };\n\n const handleSelectAllColumnsAll = (event) => {\n let cols = {};\n\n cols = buildColsState(cols, \"route\", \"keep\");\n cols = buildColsState(cols, \"all\", true);\n cols = buildColsState(cols, \"truck\", \"keep\");\n\n dispatch({\n type: \"setTableColumns\",\n selection: cols,\n });\n };\n\n const handleUnselectAllColumnsTruck = (event) => {\n let cols = {};\n\n cols = buildColsState(cols, \"route\", \"keep\");\n cols = buildColsState(cols, \"all\", \"keep\");\n cols = buildColsState(cols, \"truck\", false);\n\n dispatch({\n type: \"setTableColumns\",\n selection: cols,\n });\n };\n\n const handleSelectAllColumnsTruck = (event) => {\n let cols = {};\n\n cols = buildColsState(cols, \"route\", \"keep\");\n cols = buildColsState(cols, \"all\", \"keep\");\n cols = buildColsState(cols, \"truck\", true);\n\n dispatch({\n type: \"setTableColumns\",\n selection: cols,\n });\n };\n\n function buildColsState(cols, category, state) {\n columns\n .filter((item) => item.category === category)\n .map(\n (col, index) =>\n (cols = {\n ...cols,\n [col.id]: state === \"keep\" ? columnsState[col.id] : state,\n })\n );\n\n return cols;\n }\n\n function DialogColumn(props) {\n return (\n
    \n \n \n {props.categoryLabel}\n \n {columns\n .filter((item) => item.category === props.category)\n .map((col, index) => (\n \n } //{}\n label={col.label}\n key={`check-rdsegment-col-fgl-${index}`}\n />\n ))}\n \n {props.selectAllButton !== \"none\" && (\n \n \n \n )}\n {props.unselectAllButton !== \"none\" && (\n \n \n \n )}\n \n \n
    \n );\n }\n\n return (\n
    \n \n {/* \n \n */}\n \n \n \n Select table columns below:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n );\n}\n","import React, { useState, useContext, useEffect } from \"react\";\nimport Button from \"@material-ui/core/Button\";\nimport TextField from \"@material-ui/core/TextField\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport DialogActions from \"@material-ui/core/DialogActions\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\nimport ExportCsv from \"@material-table/exporters/csv\";\nimport ExportPdf from \"@material-table/exporters/pdf\";\n\nexport default function ExportFileNameDialog(props) {\n const {\n openExportDialog,\n setOpenExportDialog,\n csvFileNameTest,\n setCsvFileNameTest,\n exportCols,\n exportData,\n } = props;\n const handleClose = () => {\n setOpenExportDialog(false);\n };\n\n const handleTextFieldChange = (e) => {\n setCsvFileNameTest(e.target.value);\n };\n\n const handleDownloadPDF = () => {\n setOpenExportDialog(false);\n ExportPdf(exportCols, exportData, csvFileNameTest);\n };\n\n const handleDownloadCSV = () => {\n setOpenExportDialog(false);\n ExportCsv(exportCols, exportData, csvFileNameTest);\n };\n\n // const setExportButtonColor = () => {\n // if (\n // window.matchMedia &&\n // window.matchMedia(\"(prefers-color-scheme: dark)\").matches\n // ) {\n // // dark mode\n // return \"secondary\";\n // } else {\n // return \"primary\";\n // }\n // };\n function fetchExportButtonColor() {\n if (\n window.matchMedia &&\n window.matchMedia(\"(prefers-color-scheme: dark)\").matches\n ) {\n // dark mode\n return \"secondary\";\n } else {\n return \"primary\";\n }\n }\n const exportButtonColor = fetchExportButtonColor();\n\n return (\n
    \n \n Download\n \n \n Please enter the filename here (no file extension, i.e. csv).\n \n \n The file will be saved in user's downloads folder.\n \n \n \n \n \n \n \n \n \n
    \n );\n}\n","import React, { useState, useContext, useEffect } from \"react\";\n\nimport {\n SUMMARY_VARIABLES_RHINO,\n databaseVariablesHPMS,\n SUMMARY_VARIABLES_TX100,\n SUMMARY_VARIABLES_ROUTE_100,\n SUMMARY_VARIABLES_ROUTE,\n tx100_plot_vars,\n} from \"../common/constants\";\n\nimport { RhinoQueryContext } from \"../map/RhinoQueryContext\";\n\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Typography from \"@material-ui/core/Typography\";\nimport Paper from \"@material-ui/core/Paper\";\n\nimport TableColumnSelector from \"./TableColumnSelector\";\n\nimport MaterialTable from \"@material-table/core\";\n\nimport Button from \"@material-ui/core/Button\";\n\nimport axios from \"axios\";\n\nimport { API_ROOT } from \"../common/constants\";\n\n/* plotly.js has an memory issue with node 10 and 11.\n * We can't use Plot from plotly.js or plotly.js-dist.\n * see https://github.com/plotly/react-plotly.js/issues/135 */\nimport Plotly from \"plotly.js-basic-dist\";\nimport createPlotlyComponent from \"react-plotly.js/factory\";\n\nimport { render } from \"react-dom\";\nimport Highcharts from \"highcharts\";\nimport HC_exporting from \"highcharts/modules/exporting\";\nimport HighchartsReact from \"highcharts-react-official\";\n\nimport SaveAlt from \"@material-ui/icons/SaveAlt\";\n\nimport ExportFileNameDialog from \"./ExportFileNameDialog\";\n\nHC_exporting(Highcharts);\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: \"100%\",\n },\n paper: {\n width: \"100%\",\n marginBottom: theme.spacing(2),\n },\n}));\n\nexport default function RoadSegmentTable(props) {\n const classes = useStyles();\n const keyField = \"label\";\n const [query, dispatch] = useContext(RhinoQueryContext);\n const {\n year,\n statusGuide,\n roads,\n setRoads,\n roadsID,\n setRoadsID,\n roadsData,\n setRoadsData,\n rows,\n setRows,\n } = props;\n\n const Plot = createPlotlyComponent(Plotly);\n\n const [roadLayerType, setRoadLayerType] = useState(statusGuide[0]);\n\n const [selectedRows, setSelectedRows] = useState([]);\n\n const [summary, setSummary] = useState([]);\n\n useEffect(() => {\n setRoadLayerType(statusGuide[0]);\n }, [statusGuide[0]]);\n\n const getRoad = (roadLabel) => {\n return roads.find((r) => r.label === roadLabel);\n };\n\n const isRoadSelected = (selectedRows, feature) => {\n return selectedRows.some(function(rowIndex) {\n const road = getRoad(rowIndex);\n if (road.top100id) {\n //if (roadLayerType === \"TX100\") {\n return (\n // feature.properties.road === road.road &&\n // feature.properties.from_road === road.from_road &&\n // feature.properties.to_road === road.to_road\n // //feature.properties.top100id === road.top100id\n\n (feature.rte_id === road.top100id &&\n feature.frm_dfo === road.from_road &&\n feature.to_dfo === road.to_road) ||\n (feature.top100id === road.top100id &&\n feature.from_road === road.from_road &&\n feature.to_road === road.to_road)\n );\n } else {\n return (\n // feature.rte_id === road.ria_rte_id &&\n (feature.ria_rte_id === road.ria_rte_id ||\n feature.rte_id === road.ria_rte_id) &&\n feature.frm_dfo >= road.frm_dfo &&\n feature.to_dfo <= road.to_dfo\n );\n }\n });\n };\n\n // const updateSelectedRows = (rows) => {\n // dispatch({\n // type: \"setHighlightQuery\",\n // query: isRoadSelected.bind(null, rows),\n // });\n // };\n function updateSelectedRows(rows) {\n return dispatch({\n type: \"setHighlightQuery\",\n query: isRoadSelected.bind(null, rows),\n });\n }\n\n const fetchSummary = async (roads, keyField) => {\n try {\n if (roadLayerType !== \"TX100\") {\n let years = [2017, 2018, 2019, 2020, 2021];\n let yearroad = [];\n for (var j = 0; j < years.length; j++) {\n yearroad.push([years[j], roads]);\n }\n let promises = yearroad.map((r) => {\n return axios.get(\n `${API_ROOT}/metrics/findByRouteIdYear?year=${r[0]}&route_id=${r[1].ria_rte_id}&min_dfo=${r[1].frm_dfo}&max_dfo=${r[1].to_dfo}`\n );\n });\n axios.all(promises).then((responses) => {\n // console.log(\"roads.id-check\", roads.id);\n let label = 1;\n let id = roads.id;\n let fields = SUMMARY_VARIABLES_RHINO.map((v) => {\n return v.variable;\n });\n let temp = {};\n temp[keyField] = label;\n temp.id = roads.id;\n for (var i = 0; i < years.length; i++) {\n if (years[i] === props.year) {\n temp = {\n ...temp,\n ...responses[(label - 1) * years.length + i].data,\n };\n }\n for (var j = 0; j < fields.length; j++) {\n temp[fields[j].concat(years[i])] =\n responses[(label - 1) * years.length + i].data[fields[j]];\n }\n }\n ++label;\n\n let summaryTemp = summary;\n summaryTemp.push(temp);\n setSummary(summaryTemp);\n });\n } else {\n let promise = `${API_ROOT}/metric/getTX100Rankings?roadid=${roads.top100id}`;\n let response = await axios.get(promise);\n setSummary([response.data, ...summary]);\n // let promises = roads.map((r) => {\n // return axios.get(\n // `${API_ROOT}/metric/getTX100Rankings?roadid=${r.top100id}`\n // );\n // });\n // axios.all(promises).then((responses) => {\n // let label = 1;\n // const reducer = (acc, curr, index) => {\n // let currData = { ...curr.data };\n // currData[keyField] = label;\n // ++label;\n // return [...acc, currData];\n // };\n // const data = responses.reduce(reducer, []);\n // setSummary(data);\n // });\n }\n } catch (e) {\n console.log(e);\n }\n };\n\n useEffect(() => {\n if (\n !isNaN(query.userSelection.to_dfo) ||\n query.userSelectionTX100.top100id !== \"\"\n ) {\n let newRoads = [...roads];\n let newSelection = [];\n if (!isNaN(query.userSelection.to_dfo)) {\n let add = false;\n newSelection = query.userSelection;\n\n if (roads.length === 0) {\n setRoadsID(roadsID + 1);\n newSelection[keyField] = roadsID;\n newSelection.id = roadsID;\n newRoads.push(newSelection);\n setRoads(newRoads);\n\n fetchSummary(newSelection, keyField);\n\n add = true;\n } else {\n if (\n roads.filter(\n (f) =>\n f.ria_rte_id === newSelection.ria_rte_id &&\n f.frm_dfo === newSelection.frm_dfo &&\n f.to_dfo === newSelection.to_dfo\n ).length === 0\n ) {\n add = true;\n }\n\n if (add) {\n setRoadsID(roadsID + 1);\n newSelection[keyField] = roadsID;\n newSelection.id = roadsID;\n newRoads.push(newSelection);\n setRoads(newRoads);\n\n fetchSummary(newSelection, keyField);\n }\n }\n\n const roadsDataTemp = [...roadsData];\n if (add) {\n for (var ii = newRoads.length - 1; ii >= 0; ii--) {\n let roadsDataFilter = roadsData.filter(\n (obj) =>\n obj.ria_rte_id === newRoads[ii].ria_rte_id &&\n obj.frm_dfo === newRoads[ii].frm_dfo &&\n obj.to_dfo === newRoads[ii].to_dfo\n );\n if (roadsDataFilter.length === 0) {\n let my_filter = query.features.filter(\n (obj) =>\n obj.ria_rte_id === newRoads[ii].ria_rte_id &&\n obj.frm_dfo >= newRoads[ii].frm_dfo &&\n obj.to_dfo <= newRoads[ii].to_dfo\n );\n\n //Calculate sums for corridor\n let totalNames = [];\n databaseVariablesHPMS\n .filter((obj) => obj.condition === \"sum\")\n .map((slt) => totalNames.push([slt.variable]));\n let statsTotals = sumNames(my_filter, totalNames);\n\n // Calculate weighted values\n let weightValues = [\n \"trkttivmt\",\n \"trkttivmt1\",\n \"trkttivmt2\",\n \"ttivmt\",\n \"ttivmt1\",\n \"ttivmt2\",\n ];\n let weightValuesTotals = sumNames(my_filter, weightValues);\n\n for (var jjj = weightValues.length - 1; jjj >= 0; jjj--) {\n totalNames = [];\n databaseVariablesHPMS\n .filter(\n (obj) =>\n obj.condition === \"normalized\" &&\n obj.normalizedBy === weightValues[jjj]\n )\n .map((slt) => totalNames.push([slt.variable]));\n\n let statsTotalsTemp = weightedSumByNames(\n my_filter,\n totalNames,\n weightValues[jjj]\n );\n\n for (var iiii = totalNames.length - 1; iiii >= 0; iiii--) {\n statsTotals[totalNames[iiii][0]] =\n statsTotalsTemp[totalNames[iiii][0]] /\n weightValuesTotals[weightValues[jjj]];\n }\n }\n\n roadsDataTemp.push({\n ria_rte_id: newRoads[ii].ria_rte_id,\n frm_dfo: newRoads[ii].frm_dfo,\n to_dfo: newRoads[ii].to_dfo,\n id: newRoads[ii].id,\n trkvolper: (statsTotals.trkaadt / statsTotals.aadt) * 100,\n ...statsTotals,\n });\n }\n }\n }\n setRoadsData(roadsDataTemp);\n } else {\n let add = false;\n newSelection = query.userSelectionTX100;\n let roadsIDtemp = roadsID;\n if (roads.length === 0) {\n setRoadsID(roadsIDtemp + 1);\n newSelection[keyField] = roadsIDtemp + 1;\n newSelection.id = roadsIDtemp + 1;\n newRoads.push(newSelection);\n setRoads(newRoads);\n\n fetchSummary(newSelection, keyField);\n\n add = true;\n } else {\n if (\n roads.filter(\n (f) =>\n // f.ria_rte_id === newSelection.ria_rte_id &&\n // f.frm_dfo === newSelection.frm_dfo &&\n // f.to_dfo === newSelection.to_dfo\n f.top100id === newSelection.top100id\n ).length === 0\n ) {\n add = true;\n }\n\n if (add) {\n setRoadsID(roadsIDtemp + 1);\n newSelection[keyField] = roadsIDtemp + 1;\n newSelection.id = roadsIDtemp + 1;\n newRoads.push(newSelection);\n setRoads(newRoads);\n\n fetchSummary(newSelection, keyField);\n }\n }\n\n const roadsDataTemp = [...roadsData];\n if (add) {\n let queryRow = query.features.filter(\n (obj) =>\n // obj.seg_name === newSelection.ria_rte_id &&\n // obj.seg_from === newSelection.frm_dfo &&\n // obj.seg_to === newSelection.to_dfo\n obj.top100id === newSelection.top100id\n )[0];\n queryRow.roads_id = roadsIDtemp + 1;\n queryRow.id = newSelection.id;\n roadsDataTemp.push({\n ria_rte_id: newSelection.road,\n frm_dfo: newSelection.from_road,\n to_dfo: newSelection.to_road,\n top100id: newSelection.top100id,\n id: newSelection.id,\n trkvolper: (queryRow.trkaadt / queryRow.aadt) * 100,\n tableData: {\n checked: false,\n },\n ...queryRow,\n });\n }\n setRoadsData(roadsDataTemp);\n }\n }\n }, [query.userSelection, query.userSelectionTX100]);\n\n function filterHPMSVariables(category) {\n let results = [];\n let SUMMARY_VARIABLES_layer;\n if (roadLayerType !== \"TX100\") {\n SUMMARY_VARIABLES_layer = SUMMARY_VARIABLES_RHINO;\n } else {\n SUMMARY_VARIABLES_layer = SUMMARY_VARIABLES_TX100;\n }\n\n for (var i = SUMMARY_VARIABLES_layer.length - 1; i >= 0; i--) {\n if (category === SUMMARY_VARIABLES_layer[i].category) {\n results.push(SUMMARY_VARIABLES_layer[i]);\n }\n }\n\n return results;\n }\n\n const [headCells, setHeadCells] = React.useState([]);\n\n function buildCols() {\n let cols = [];\n let colVars = [];\n // let colVars = SUMMARY_VARIABLES_ROUTE;\n // if (roadLayerType === \"TX100\") colVars = SUMMARY_VARIABLES_ROUTE_100;\n // for (var i = colVars.length - 1; i >= 0; i--) {\n // cols.push(colVars[i]);\n // }\n\n colVars = filterHPMSVariables(\"all\");\n for (var i = colVars.length - 1; i >= 0; i--) {\n cols.push({\n id: colVars[i].variable,\n numeric: true,\n disablePadding: false,\n label: colVars[i].summaryName,\n tooltip: colVars[i].tooltip,\n checked: false,\n category: colVars[i].category,\n });\n }\n\n colVars = filterHPMSVariables(\"truck\");\n for (var i = colVars.length - 1; i >= 0; i--) {\n cols.push({\n id: colVars[i].variable,\n numeric: true,\n disablePadding: false,\n label: colVars[i].summaryName,\n tooltip: colVars[i].tooltip,\n checked: true,\n category: colVars[i].category,\n });\n }\n\n return cols;\n }\n let columns = buildCols();\n\n function checkExists(rows, newRow) {\n for (var i = rows.length - 1; i >= 0; i--) {\n if (rows[i].id === newRow.id) {\n return true;\n }\n }\n\n return false;\n }\n\n const sumByName = (data, name) => {\n return data.reduce(function(a, b) {\n return a + b[name];\n }, 0);\n };\n\n const sumNames = (data, totalNames) => {\n let total = {};\n\n totalNames.forEach((name) => {\n total[name] = sumByName(data, name);\n });\n return total;\n };\n\n const weightedSumByName = (data, name, weightString) => {\n return data.reduce(function(a, b) {\n return a + b[name] * b[weightString];\n }, 0);\n };\n\n const weightedSumByNames = (data, totalNames, weightString) => {\n let total = {};\n\n totalNames.forEach((name) => {\n total[name] = weightedSumByName(data, name, weightString);\n });\n return total;\n };\n\n // function buildColsState(cols, category, state) {\n // columns\n // .filter((item) => item.category === category)\n // .map(\n // (col, index) =>\n // (cols = {\n // ...cols,\n // [col.id]: state === \"keep\" ? columnsState[col.id] : state,\n // })\n // );\n\n // return cols;\n // }\n\n // const [columnsState, setColumnsState] = useState(query.tableColumns);\n // useEffect(() => {\n // let cols = {};\n\n // cols = buildColsState(cols, \"route\", true);\n // cols = buildColsState(cols, \"all\", false);\n // cols = buildColsState(cols, \"truck\", true);\n\n // dispatch({\n // type: \"setTableColumns\",\n // selection: cols,\n // });\n\n // setSelectedRows([]);\n // }, [roadLayerType]);\n useEffect(() => {\n // setColumnsState(query.tableColumns);\n\n let SUMMARY_VARIABLES_layer = (SUMMARY_VARIABLES_layer = SUMMARY_VARIABLES_RHINO);\n if (roadLayerType === \"TX100\") {\n SUMMARY_VARIABLES_layer = SUMMARY_VARIABLES_layer;\n }\n\n SUMMARY_VARIABLES_layer.map(\n (svar) =>\n // colsTemp.push(\n (svar.status =\n query.tableColumns[svar.variable] === true ? \"keep\" : \"drop\")\n // )\n );\n let colsTemp = SUMMARY_VARIABLES_layer.filter(\n (svar) => svar.status === \"keep\"\n );\n setHeadCells(colsTemp);\n }, [query.tableColumns]);\n\n function buildColsNew(type) {\n let cols = [];\n let columnsTemp = columns;\n\n if (type === \"detailed_panel\" || roadLayerType === \"TX100\") {\n columnsTemp = columnsTemp.filter(\n (headCell) => headCell.id !== \"ria_rte_id\" //(headCell) => headCell.id !== \"ria_rte_id\"\n );\n }\n\n let SUMMARY_VARIABLES_ROUTE_Temp = SUMMARY_VARIABLES_ROUTE;\n if (roadLayerType === \"TX100\")\n SUMMARY_VARIABLES_ROUTE_Temp = SUMMARY_VARIABLES_ROUTE_100;\n // for (var i = colVars.length - 1; i >= 0; i--) {\n // cols.push(colVars[i]);\n // }\n SUMMARY_VARIABLES_ROUTE_Temp.map((obj) => {\n cols.push({\n title: obj.label,\n field: obj.id,\n cellStyle: {\n borderTopWidth: 0,\n borderBottomWidth: 1,\n borderLeftWidth: 0,\n borderRightWidth: 2,\n borderColor: \"rgba(224, 224, 224, 0.5)\", //borderColor: 'grey',\n borderStyle: \"solid\",\n },\n headerStyle: {\n borderTopWidth: 0,\n borderBottomWidth: 1,\n borderLeftWidth: 0,\n borderRightWidth: 2,\n borderColor: \"rgba(224, 224, 224, 0.5)\", //borderColor: 'grey',\n borderStyle: \"solid\",\n },\n tooltip: obj.tooltip,\n tooltipStyle: {\n fontSize: 12,\n },\n render: (rowData) =>\n rowData[obj.id] !== null &&\n typeof rowData[obj.id] !== \"undefined\" &&\n rowData[obj.id] !== \"undefined\"\n ? rowData[obj.id].toLocaleString(\"en-US\", obj.formatOptions)\n : \"\",\n });\n });\n\n columnsTemp.map(\n (headCell) =>\n query.tableColumns[headCell.id] &&\n cols.push({\n title: headCell.label,\n field: headCell.id,\n cellStyle: {\n borderTopWidth: 0,\n borderBottomWidth: 1,\n borderLeftWidth: 0,\n borderRightWidth: 2,\n borderColor: \"rgba(224, 224, 224, 0.5)\", //borderColor: 'grey',\n borderStyle: \"solid\",\n },\n headerStyle: {\n borderTopWidth: 0,\n borderBottomWidth: 1,\n borderLeftWidth: 0,\n borderRightWidth: 2,\n borderColor: \"rgba(224, 224, 224, 0.5)\", //borderColor: 'grey',\n borderStyle: \"solid\",\n },\n tooltip: headCell.tooltip,\n tooltipStyle: {\n fontSize: 12,\n },\n render: (rowData) =>\n rowData[headCell.id] !== null &&\n typeof rowData[headCell.id] !== \"undefined\" &&\n rowData[headCell.id] !== \"undefined\"\n ? rowData[headCell.id].toLocaleString(\n \"en-US\",\n headCell.formatOptions\n )\n : \"\",\n })\n );\n\n return cols;\n }\n\n const handleRemoveSelected = (data) => {\n let roadsTemp = roads;\n let roadsDataTemp = roadsData;\n\n if (roadLayerType === \"TX100\") {\n for (var ii = data.length - 1; ii >= 0; ii--) {\n let selectedRoad = roads.filter(\n (match) =>\n match.road === data[ii].road &&\n match.from_road === data[ii].from_road &&\n match.to_road === data[ii].to_road\n );\n let selectedRoadID = selectedRoad[0].id;\n\n roadsTemp = roadsTemp.filter((match) => match.id !== selectedRoadID);\n roadsDataTemp = roadsDataTemp.filter(\n (match) => match.id !== selectedRoadID\n );\n }\n } else {\n for (var ii = data.length - 1; ii >= 0; ii--) {\n let selectedRoad = roads.filter(\n (match) =>\n match.ria_rte_id === data[ii].ria_rte_id &&\n match.frm_dfo === data[ii].frm_dfo &&\n match.to_dfo === data[ii].to_dfo\n );\n let selectedRoadID = selectedRoad[0].id;\n\n roadsTemp = roadsTemp.filter((match) => match.id !== selectedRoadID);\n roadsDataTemp = roadsDataTemp.filter(\n (match) => match.id !== selectedRoadID\n );\n }\n }\n\n setRoads(roadsTemp);\n setRoadsData(roadsDataTemp);\n updateSelectedRows([]);\n setSelectedRows([]);\n };\n\n const handleClick = (data) => {\n setSelectedRows(data);\n\n if (data.length > 0) {\n let roadsDataTemp = roadsData.map((row) =>\n data.find((selected) => selected.id === row.id)\n ? {\n ...row,\n tableData: {\n checked: true,\n },\n }\n : {\n ...row,\n tableData: {\n checked: false,\n },\n }\n );\n setRoadsData(roadsDataTemp);\n\n const newSelecteds = data.map((n) => n.id);\n updateSelectedRows(newSelecteds);\n\n return;\n }\n\n let roadsDataTemp = roadsData.map((row) =>\n selectedRows.find((selected) => selected.id === row.id)\n ? {\n ...row,\n tableData: {\n checked: !row.tableData.checked,\n },\n }\n : row\n );\n setRoadsData(roadsDataTemp);\n\n updateSelectedRows([]);\n };\n\n //set data for Texas 100 plots\n let tx_100_plot_years = [];\n tx100_plot_vars.forEach((item, i) => tx_100_plot_years.push(item.year));\n function setTx100PlotData(type, row) {\n // console.log(\"row-check\", row);\n let yData = [];\n //tx100_plot_vars.forEach((item, i) => yData.push(row[item.trank]));\n tx100_plot_vars.forEach((item, i) => yData.push(row[item[type]]));\n return yData;\n }\n\n const [TX100chartOptions, setTX100ChartOptions] = useState({\n title: {\n text: \"\",\n },\n chart: {\n type: \"line\",\n margin: [60, 130, 70, 70],\n },\n legend: {\n align: \"right\",\n verticalAlign: \"top\",\n layout: \"vertical\",\n x: 15,\n y: 30,\n },\n xAxis: {\n categories: tx_100_plot_years,\n title: {\n text:\n \"Congestion Reporting Year (data is for prior year)\" +\n \"
    \" +\n \"2021 reporting year (2020 data) was impacted by the COVID-19 pandemic and is not reflective of a typical year.\",\n },\n },\n yAxis: {\n title: { text: \"Ranking\" },\n reversed: true,\n },\n credits: {\n enabled: false,\n },\n });\n\n const [RhinochartOptions, setRhinoChartOptions] = useState({\n title: {\n text: \"\",\n },\n chart: {\n type: \"line\",\n margin: [60, 240, 70, 70],\n },\n legend: {\n align: \"right\",\n verticalAlign: \"top\",\n layout: \"vertical\",\n x: 15,\n y: 30,\n },\n xAxis: {\n categories: [\"2017\", \"2018\", \"2019\", \"2020\", \"2021\"],\n title: {\n text:\n \"Congestion Reporting Year (data is for prior year)\" +\n \"
    \" +\n \"2021 reporting year (2020 data) was impacted by the COVID-19 pandemic and is not reflective of a typical year.\",\n },\n },\n credits: {\n enabled: false,\n },\n });\n\n //Clear out selections as roads layer changes\n useEffect(() => {\n //handleRemoveSelected(roadsData);\n updateSelectedRows([]);\n setSelectedRows([]);\n }, [statusGuide]);\n\n const materialTableDetailPanel = (data) => {\n if (roadLayerType === \"TX100\") {\n // console.log(\"data-check\", data);\n let row = summary.find((sline) => sline.top100id === data.top100id);\n // console.log(\"row-check\", row, summary, data);\n return (\n \n \n
    \n );\n } else {\n let row = summary.filter((sline) => sline.id === data.id);\n return (\n \n {\n return {\n name: v.summaryName,\n data: [\n row[0][v.variable + (props.year === 2017 ? \"\" : \"2017\")],\n row[0][v.variable + (props.year === 2018 ? \"\" : \"2018\")],\n row[0][v.variable + (props.year === 2019 ? \"\" : \"2019\")],\n row[0][v.variable + (props.year === 2020 ? \"\" : \"2020\")],\n row[0][v.variable + (props.year === 2021 ? \"\" : \"2021\")],\n ],\n };\n }),\n title: { text: data.ria_rte_id },\n subtitle: {\n text: \"From DFO \" + data.frm_dfo + \" to To DFO \" + data.to_dfo,\n },\n legend: {\n enabled: true,\n layout: \"vertical\",\n align: \"right\",\n verticalAlign: \"middle\",\n itemMarginTop: 2,\n itemMarginTop: 2,\n itemMarginLeft: 2,\n symbolWidth: 20,\n itemStyle: {\n fontSize: \"10px\",\n textOverflow: \"ellipsis\",\n },\n },\n exporting: {\n sourceWidth: 1000,\n sourceHeight: 400,\n scale: 1,\n },\n })}\n />\n \n );\n }\n };\n\n const [openExportDialog, setOpenExportDialog] = useState(false);\n const [csvFileNameTest, setCsvFileNameTest] = useState(\"myTable\");\n const [exportCols, setExportCols] = useState();\n const [exportData, setExportData] = useState();\n\n return (\n
    \n \n \n Note: 2021 reporting year (2020 data) was impacted by\n the COVID-19 pandemic and is not reflective of a typical year.\n \n \n {roadsData.length > 0 && (\n \n \n // ExportPdf(cols, datas, \"myPdfFileName\"),\n // },\n // {\n // label: \"Export CSV\",\n // exportFunc: (cols, datas) =>\n // ExportCsv(cols, datas, \"myCsvFileName\"),\n // },\n {\n label: \"Export Table\",\n exportFunc: (cols, data) => {\n setOpenExportDialog(true);\n setExportCols(cols);\n setExportData(data);\n },\n },\n ],\n toolbarButtonAlignment:\n selectedRows.length > 0 ? \"left\" : \"right\", // here is the option to change toolbar buttons' alignment\n }}\n icons={{\n Export: () => (\n //
    \n \n //
    \n ),\n }}\n actions={[\n {\n tooltip: \"Remove Selected Roads\",\n icon: \"delete\",\n onClick: (evt, data) => handleRemoveSelected(data),\n },\n {\n tooltip: \"\",\n icon: () => {\n return (\n
    \n \n
    \n );\n },\n onClick: () => {},\n isFreeAction: true,\n },\n {\n tooltip: \"\",\n icon: () => {\n return (\n
    \n \n
    \n );\n },\n onClick: () => {\n let roadsDataTemp = roadsData.map((row) =>\n selectedRows.find((selected) => selected.id === row.id)\n ? {\n ...row,\n tableData: {\n checked: false,\n },\n }\n : row\n );\n setRoadsData(roadsDataTemp);\n\n updateSelectedRows([]);\n setSelectedRows([]);\n },\n isFreeAction: false,\n },\n ]}\n onSelectionChange={(rows) => handleClick(rows)}\n detailPanel={[\n {\n icon: \"timeline\",\n tooltip: \"Show Timeline\",\n render: (rowLine) => {\n let rowData = rowLine.rowData;\n return (\n \n {materialTableDetailPanel(rowData)}\n
    \n );\n },\n },\n ]}\n />\n \n \n )}\n {roadsData.length === 0 && (\n \n \n Please select a segment or custom corridor using the map above.\n \n \n )}\n \n );\n}\n","import React, { useState, useContext, useEffect, useRef } from \"react\";\n\nimport {\n SUMMARY_VARIABLES_RHINO,\n SUMMARY_VARIABLES_ROUTE,\n} from \"../common/constants\";\n\nimport { RhinoQueryContext } from \"../map/RhinoQueryContext\";\n\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Typography from \"@material-ui/core/Typography\";\nimport Paper from \"@material-ui/core/Paper\";\n\nimport TableColumnSelector from \"./TableColumnSelector\";\n\nimport MaterialTable from \"@material-table/core\";\n\nimport axios from \"axios\";\n\nimport { API_ROOT } from \"../common/constants\";\n\nimport Highcharts from \"highcharts\";\nimport HC_exporting from \"highcharts/modules/exporting\";\nimport HighchartsReact from \"highcharts-react-official\";\n\nimport SaveAlt from \"@material-ui/icons/SaveAlt\";\n\nimport ExportFileNameDialog from \"./ExportFileNameDialog\";\n\n// import EditIcon from \"@material-ui/icons/EditLocation\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\nimport TimelineIcon from \"@material-ui/icons/Timeline\";\nimport MapIcon from \"@material-ui/icons/Map\";\n\nimport LinearProgress from \"@mui/material/LinearProgress\";\nimport Box from \"@mui/material/Box\";\n\nHC_exporting(Highcharts);\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: \"100%\",\n },\n paper: {\n width: \"100%\",\n marginBottom: theme.spacing(2),\n },\n}));\n\nexport default function MonitoredRoadsTable(props) {\n const classes = useStyles();\n const keyField = \"label\";\n const [query, dispatch] = useContext(RhinoQueryContext);\n const { year, monitoredRoads, monitoredRoadsData } = props;\n\n const getRoad = (roadLabel) => {\n return monitoredRoads.find((r) => r.id === roadLabel);\n };\n\n const isRoadSelected = (selectedRows, feature) => {\n return selectedRows.some(function(rowIndex) {\n const road = getRoad(rowIndex);\n\n return (\n (feature.ria_rte_id === road.ria_rte_id ||\n feature.rte_id === road.ria_rte_id) &&\n feature.frm_dfo >= road.frm_dfo &&\n feature.to_dfo <= road.to_dfo\n );\n });\n };\n\n function filterHPMSVariables(category) {\n let results = [];\n let SUMMARY_VARIABLES_layer = SUMMARY_VARIABLES_RHINO;\n\n for (var i = SUMMARY_VARIABLES_layer.length - 1; i >= 0; i--) {\n if (category === SUMMARY_VARIABLES_layer[i].category) {\n results.push(SUMMARY_VARIABLES_layer[i]);\n }\n }\n\n return results;\n }\n\n function buildCols() {\n let cols = [];\n let colVars = [];\n // let colVars = SUMMARY_VARIABLES_ROUTE;\n // for (var i = colVars.length - 1; i >= 0; i--) {\n // cols.push(colVars[i]);\n // }\n\n colVars = filterHPMSVariables(\"route\");\n for (var ii = colVars.length - 1; ii >= 0; ii--) {\n cols.push({\n id: colVars[ii].variable,\n numeric: true,\n disablePadding: false,\n label: colVars[ii].summaryName,\n tooltip: colVars[ii].tooltip,\n checked: true,\n category: colVars[ii].category,\n normalizedBy:\n typeof colVars[ii].normalizedBy !== \"undefined\"\n ? colVars[ii].normalizedBy\n : false,\n });\n }\n\n colVars = filterHPMSVariables(\"all\");\n for (var i = colVars.length - 1; i >= 0; i--) {\n cols.push({\n id: colVars[i].variable,\n numeric: true,\n disablePadding: false,\n label: colVars[i].summaryName,\n tooltip: colVars[i].tooltip,\n checked: false,\n category: colVars[i].category,\n });\n }\n\n colVars = filterHPMSVariables(\"truck\");\n for (var i = colVars.length - 1; i >= 0; i--) {\n cols.push({\n id: colVars[i].variable,\n numeric: true,\n disablePadding: false,\n label: colVars[i].summaryName,\n tooltip: colVars[i].tooltip,\n checked: true,\n category: colVars[i].category,\n });\n }\n\n return cols;\n }\n let columns = buildCols();\n\n function buildColsNew(type) {\n let cols = [];\n let columnsTemp = columns;\n\n if (type === \"detailed_panel\") {\n columnsTemp = columnsTemp.filter(\n (headCell) => headCell.id !== \"ria_rte_id\" //(headCell) => headCell.id !== \"ria_rte_id\"\n );\n }\n SUMMARY_VARIABLES_ROUTE.map((obj) => {\n cols.push({\n title: obj.label,\n field: obj.id,\n cellStyle: {\n borderTopWidth: 0,\n borderBottomWidth: 1,\n borderLeftWidth: 0,\n borderRightWidth: 2,\n borderColor: \"rgba(224, 224, 224, 0.5)\", //borderColor: 'grey',\n borderStyle: \"solid\",\n },\n headerStyle: {\n borderTopWidth: 0,\n borderBottomWidth: 1,\n borderLeftWidth: 0,\n borderRightWidth: 2,\n borderColor: \"rgba(224, 224, 224, 0.5)\", //borderColor: 'grey',\n borderStyle: \"solid\",\n },\n tooltip: obj.tooltip,\n tooltipStyle: {\n fontSize: 12,\n },\n render: (rowData) =>\n rowData[obj.id] !== null &&\n typeof rowData[obj.id] !== \"undefined\" &&\n rowData[obj.id] !== \"undefined\"\n ? rowData[obj.id].toLocaleString(\"en-US\", obj.formatOptions)\n : \"\",\n });\n });\n columnsTemp.map(\n (headCell) =>\n query.tableColumns[headCell.id] &&\n cols.push({\n title: headCell.label,\n field: headCell.id,\n cellStyle: {\n borderTopWidth: 0,\n borderBottomWidth: 1,\n borderLeftWidth: 0,\n borderRightWidth: 2,\n borderColor: \"rgba(224, 224, 224, 0.5)\", //borderColor: 'grey',\n borderStyle: \"solid\",\n },\n headerStyle: {\n borderTopWidth: 0,\n borderBottomWidth: 1,\n borderLeftWidth: 0,\n borderRightWidth: 2,\n borderColor: \"rgba(224, 224, 224, 0.5)\", //borderColor: 'grey',\n borderStyle: \"solid\",\n },\n tooltip: headCell.tooltip,\n tooltipStyle: {\n fontSize: 12,\n },\n render: (rowData) =>\n rowData[headCell.id] !== null &&\n typeof rowData[headCell.id] !== \"undefined\" &&\n rowData[headCell.id] !== \"undefined\"\n ? rowData[headCell.id].toLocaleString(\n \"en-US\",\n headCell.formatOptions\n )\n : \"\",\n })\n );\n\n return cols;\n }\n\n const [openExportDialog, setOpenExportDialog] = useState(false);\n const [csvFileNameTest, setCsvFileNameTest] = useState(\"myTable\");\n const [exportCols, setExportCols] = useState();\n const [exportData, setExportData] = useState();\n\n const tableRef = useRef();\n\n const [RhinochartOptions, setRhinoChartOptions] = useState({\n title: {\n text: \"\",\n },\n chart: {\n type: \"line\",\n margin: [60, 240, 70, 70],\n },\n legend: {\n align: \"right\",\n verticalAlign: \"top\",\n layout: \"vertical\",\n x: 15,\n y: 30,\n },\n xAxis: {\n categories: [\"2017\", \"2018\", \"2019\", \"2020\", \"2021\"],\n title: {\n text:\n \"Congestion Reporting Year (data is for prior year)\" +\n \"
    \" +\n \"2021 reporting year (2020 data) was impacted by the COVID-19 pandemic and is not reflective of a typical year.\",\n },\n },\n credits: {\n enabled: false,\n },\n });\n\n function setHeadCellsTest() {\n let SUMMARY_VARIABLES_layer = SUMMARY_VARIABLES_RHINO;\n SUMMARY_VARIABLES_layer.map(\n (svar) =>\n // colsTemp.push(\n (svar.status =\n query.tableColumns[svar.variable] === true ? \"keep\" : \"drop\")\n // )\n );\n let colsTemp = SUMMARY_VARIABLES_layer.filter(\n (svar) => svar.status === \"keep\"\n );\n return colsTemp;\n }\n\n const [selectedRows, setSelectedRows] = useState([]);\n const [summary, setSummary] = useState([]);\n\n const fetchRoadMetrics = async (year, id, ria_rte_id, frm_dfo, to_dfo) => {\n try {\n const dataUrl = `${API_ROOT}/metrics/findByRouteIdYear?year=${year}&route_id=${ria_rte_id}&min_dfo=${frm_dfo}&max_dfo=${to_dfo}`;\n\n const response = await axios.get(dataUrl);\n if (response.status === 200) {\n return {\n year,\n response,\n };\n }\n return false;\n } catch (err) {\n console.error(err);\n return false;\n }\n };\n\n async function getRoadSummary(data) {\n let years = [2017, 2018, 2019, 2020, 2021];\n let temp = {};\n for (var i = 0; i < years.length; i++) {\n setIsLoading({\n current: i + 1,\n total: years.length,\n progress: ((i + 1) / years.length) * 100,\n });\n\n let responses = await fetchRoadMetrics(\n years[i],\n data.id,\n data.ria_rte_id,\n data.frm_dfo,\n data.to_dfo\n );\n\n let response = responses.response;\n if (response) {\n let label = 1;\n let id = data.id;\n let fields = SUMMARY_VARIABLES_RHINO.map((v) => {\n return v.variable;\n });\n\n temp[keyField] = label;\n temp.id = data.id;\n if (responses.year === year) {\n for (var j = 0; j < fields.length; j++) {\n temp[fields[j]] = response.data[fields[j]];\n }\n } else {\n for (var j = 0; j < fields.length; j++) {\n temp[fields[j].concat(responses.year)] = response.data[fields[j]];\n }\n }\n ++label;\n }\n }\n setIsLoading({\n current: 0,\n total: years.length,\n progress: 0,\n });\n\n return temp;\n }\n\n const [id, setId] = useState({ id: -1 });\n useEffect(() => {\n if (id.id !== -1) {\n const fetchData = async () => {\n const result = await getRoadSummary(id);\n\n let summaryTemp = summary;\n summaryTemp.push(result);\n setSummary(summaryTemp);\n };\n\n fetchData();\n }\n }, [id]);\n\n const materialTableDetailPanel = (data) => {\n let row = {};\n\n row = summary.filter((sline) => sline.id === data.id);\n let headCells = setHeadCellsTest();\n\n // catch for data not ready for chart\n try {\n headCells.map((v) => {\n return {\n name: v.summaryName,\n data: [\n row[0][v.variable + (year === 2017 ? \"\" : \"2017\")],\n row[0][v.variable + (year === 2018 ? \"\" : \"2018\")],\n row[0][v.variable + (year === 2019 ? \"\" : \"2019\")],\n row[0][v.variable + (year === 2020 ? \"\" : \"2020\")],\n row[0][v.variable + (year === 2021 ? \"\" : \"2021\")],\n ],\n };\n });\n } catch (e) {\n console.log(e);\n return false;\n }\n\n let chartOptions = Object.assign({}, RhinochartOptions, {\n series: headCells.map((v) => {\n return {\n name: v.summaryName,\n data: [\n row[0][v.variable + (year === 2017 ? \"\" : \"2017\")],\n row[0][v.variable + (year === 2018 ? \"\" : \"2018\")],\n row[0][v.variable + (year === 2019 ? \"\" : \"2019\")],\n row[0][v.variable + (year === 2020 ? \"\" : \"2020\")],\n row[0][v.variable + (year === 2021 ? \"\" : \"2021\")],\n ],\n };\n }),\n title: {\n text: data.ria_rte_id,\n },\n subtitle: {\n text: data.frm_dfo + \" to \" + data.to_dfo,\n },\n legend: {\n enabled: true,\n layout: \"vertical\",\n align: \"right\",\n verticalAlign: \"middle\",\n itemMarginTop: 2,\n itemMarginBottom: 2,\n symbolWidth: 40,\n itemStyle: {\n fontSize: \"10px\",\n },\n },\n exporting: {\n sourceWidth: 1000,\n sourceHeight: 400,\n scale: 1,\n },\n });\n\n return (\n \n \n \n );\n };\n\n function updateSelectedRows(rows) {\n return dispatch({\n type: \"setHighlightQuery\",\n query: isRoadSelected.bind(null, rows),\n });\n }\n\n useEffect(() => {\n updateSelectedRows(selectedRows);\n }, [selectedRows]);\n\n const handleClick = (data) => {\n setSelectedRows(data);\n\n return;\n };\n\n function setMaterialTableData() {\n // if (tableRef.current && monitoredRoadsData.length) {\n if (selectedRows.length > 0) {\n const { detailPanel } = tableRef.current.props;\n\n return monitoredRoadsData.map((row) =>\n selectedRows.find((selected) => selected.id === row.id)\n ? {\n ...row,\n tableData: {\n checked: true,\n // showDetailPanel:\n // typeof detailPanel === \"function\"\n // ? detailPanel\n // : detailPanel[0].render,\n // showDetailPanel: detailPanel[0].render,\n },\n }\n : row\n );\n } else return monitoredRoadsData;\n }\n\n const [isLoading, setIsLoading] = useState({\n current: 0,\n total: 0,\n progress: 0,\n });\n\n function setMonitoredRoadSegments(road) {\n let roadSegments = query.features\n .filter(\n (obj) =>\n obj.ria_rte_id === road.ria_rte_id &&\n obj.frm_dfo >= road.frm_dfo &&\n obj.to_dfo <= road.to_dfo\n )\n .sort((a, b) => (a.frm_dfo > b.frm_dfo ? 1 : -1));\n return roadSegments;\n }\n\n return (\n
    \n {isLoading.current > 0 && (\n \n Loading:\n \n \n )}\n\n \n \n Note: 2021 reporting year (2020 data) was impacted by\n the COVID-19 pandemic and is not reflective of a typical year.\n \n \n\n {monitoredRoadsData.length > 0 && (\n \n {\n setOpenExportDialog(true);\n setExportCols(cols);\n setExportData(data);\n },\n },\n ],\n // toolbarButtonAlignment:\n // selectedRows.length > 0 ? \"left\" : \"right\", // here is the option to change toolbar buttons' alignment\n }}\n icons={{\n Export: () => (\n \n ),\n }}\n actions={[\n {\n tooltip: \"\",\n icon: () => {\n return (\n
    \n \n
    \n );\n },\n onClick: () => {},\n isFreeAction: true,\n },\n (rowData) => {\n let index = selectedRows.indexOf(rowData.id);\n\n return {\n icon:\n index !== -1\n ? () => (\n
    \n

    Hide

    \n \n
    \n )\n : () => (\n
    \n

    Show

    \n \n
    \n ),\n tooltip: index !== -1 ? \"Hide Map\" : \"Show Map\",\n onClick: (event, rowData) => {\n let index = selectedRows.indexOf(rowData.id);\n\n if (index === -1) {\n setSelectedRows([...selectedRows, rowData.id]);\n } else {\n let tempSelectedRows = selectedRows.filter(\n (item) => item !== rowData.id\n );\n setSelectedRows(tempSelectedRows);\n }\n },\n };\n },\n ]}\n onSelectionChange={(rows) => {\n // console.log(\"rows-check\", rows);\n handleClick(rows);\n // rows.map((rowData) =>\n // tableRef.current.onToggleDetailPanel(\n // [\n // tableRef.current.dataManager.sortedData.findIndex(\n // (item) => item.id === rowData.id\n // ),\n // ],\n // tableRef.current.props.detailPanel[0].render\n // )\n // );\n }}\n onRowClick={(event, rowData) => {\n // console.log(\"rowData-Check\", rowData);\n // tableRef.current.onToggleDetailPanel(\n // [\n // tableRef.current.dataManager.sortedData.findIndex(\n // (item) => item.id === rowData.id\n // ),\n // ],\n // tableRef.current.props.detailPanel[0].render\n // );\n }}\n icons={{\n // Add: () => ,\n Timeline: () => ,\n Delete: () => ,\n }}\n detailPanel={[\n {\n icon: \"info\",\n tooltip: \"Show Segments\",\n render: (rowLine) => {\n let rowData = rowLine.rowData;\n return (\n \n {\n setOpenExportDialog(true);\n setExportCols(cols);\n setExportData(data);\n },\n },\n ],\n }}\n icons={{\n Export: () => (\n \n ),\n }}\n />\n
    \n );\n },\n },\n\n (rowData) => ({\n icon:\n rowData.id === id.id ||\n summary.filter((sline) => sline.id === rowData.id).length !==\n 0\n ? () => (\n
    \n

    Show

    \n \n
    \n )\n : () => (\n
    \n

    Load

    \n \n
    \n ),\n\n tooltip:\n rowData.id === id.id ||\n summary.filter((sline) => sline.id === rowData.id).length !==\n 0\n ? \"Show Timeline\"\n : \"Load TImeline\",\n render: (rowLine) => {\n let rowData = rowLine.rowData;\n if (\n rowData.id !== id.id &&\n summary.filter((sline) => sline.id === rowData.id)\n .length === 0\n ) {\n // setSelectedRows(rowData);\n setId(rowData);\n return;\n }\n return (\n \n {/*

    THIS IS A TEST

    */}\n {materialTableDetailPanel(rowData)}\n \n );\n },\n }),\n ]}\n />\n \n \n )}\n {monitoredRoadsData.length === 0 && (\n \n \n Please select a segment or custom corridor using the map above.\n \n \n )}\n \n );\n}\n","import React from 'react'\nimport { TXDOTdist_VARIABLES, COUNTY_LIST, MPO_LIST, FUNCTION_CLASS2014, RURAL_URBAN_CODE } from '../common/constants'\nconst formatNumber = (num, digits) => {\n let n = (typeof digits !== 'undefined') ? digits : 0;\n if(num===null) return \"NULL\";\n let fixed = num.toFixed(n);\n let num_parts = fixed.toString().split(\".\");\n num_parts[0] = num_parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n return num_parts.join(\".\");\n};\n\nconst findLabel = (dict, name, value, label) => {\n //console.log('mpo id '+value + ' stands for ' + label);\n var labelText = 'Unknown';\n var labelItem = [];\n if (!(typeof value === undefined || value === '' || value === null)) {\n labelItem = dict.filter(x => x[name] === value);\n if (typeof labelItem[0] !== undefined) labelText = labelItem[0][label];\n }\n return labelText;\n};\n\n\nexport const DICTIONARY_COLUMNS = [\n {\n \"name\": \"ogc_fid\",\n \"label\": \"Unique Id\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"rec\",\n \"label\": \"Record Type\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"di\",\n \"label\": \"District\",\n \"options\": { customBodyRender: value => {findLabel(TXDOTdist_VARIABLES, 'mapped', value, 'definition')} },\n \"weight\": null\n },\n {\n \"name\": \"co\",\n \"label\": \"County\",\n \"options\": { customBodyRender: value => {findLabel(COUNTY_LIST, 'id', value, 'name')} },\n \"weight\": null\n },\n {\n \"name\": \"hsys\",\n \"label\": \"Highway System\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"rdbd_id\",\n \"label\": \"Roadbed\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"len_sec\",\n \"label\": \"Length Of Section\",\n \"options\": { customBodyRender: value => {formatNumber(value, 2)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"hwy_stat\",\n \"label\": \"Highway Status\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"f_system\",\n \"label\": \"Functional System\",\n \"options\": { customBodyRender: value => {findLabel(FUNCTION_CLASS2014, 'id', value, 'label')} },\n \"weight\": null\n },\n {\n \"name\": \"sec_nhs\",\n \"label\": \"Section Rte Nhs\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"ru\",\n \"label\": \"Rural Urban Code\",\n \"options\": { customBodyRender: value => {findLabel(RURAL_URBAN_CODE, 'id', value, 'label')} },\n \"weight\": null\n },\n {\n \"name\": \"mpa\",\n \"label\": \"Metro Planning Area\",\n \"options\": { customBodyRender: value => {findLabel(MPO_LIST, 'id', value, 'name')} },\n \"weight\": null\n },\n {\n \"name\": \"from_dfo\",\n \"label\": \"From Dfo\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"to_dfo\",\n \"label\": \"To Dfo\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"ria_rte_id\",\n \"label\": \"Ria Rte Id\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"shape_leng\",\n \"label\": \"Length Of Shape\",\n \"options\": { customBodyRender: value => {formatNumber(value, 3)} },\n \"weight\": null\n },\n {\n \"name\": \"fun_sys\",\n \"label\": \"Alternative Functional System\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"adt_cur\",\n \"label\": \"AADT\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"len_sec\"\n },\n {\n \"name\": \"num_lanes\",\n \"label\": \"Number Of Lines\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"aadt_singl\",\n \"label\": \"AADT-Single Unit Truck\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"len_sec\"\n },\n {\n \"name\": \"aadt_combi\",\n \"label\": \"AADT-Combination Truck\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"len_sec\"\n },\n {\n \"name\": \"estimated\",\n \"label\": \"Stats Estimated?\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"tti\",\n \"label\": \"Travel Time Index\",\n \"options\": { customBodyRender: value => {formatNumber(value, 2)} },\n \"weight\": \"ttivmt\"\n },\n {\n \"name\": \"ttivmt\",\n \"label\": \"VMT Associated With The TTI\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"trktti\",\n \"label\": \"Truck Travel Time Index\",\n \"options\": { customBodyRender: value => {formatNumber(value, 2)} },\n \"weight\": \"trkttivmt\"\n },\n {\n \"name\": \"trkttivmt\",\n \"label\": \"Truck VMT Associated With Truck Tti\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"allspeed\",\n \"label\": \"Congested Speed\",\n \"options\": { customBodyRender: value => {formatNumber(value, 2)} },\n \"weight\": null\n },\n {\n \"name\": \"trkspeed\",\n \"label\": \"Truck Congested Speed\",\n \"options\": { customBodyRender: value => {formatNumber(value, 2)} },\n \"weight\": null\n },\n {\n \"name\": \"allrefspee\",\n \"label\": \"Reference Speed\",\n \"options\": { customBodyRender: value => {formatNumber(value, 2)} },\n \"weight\": null\n },\n {\n \"name\": \"trkrefspee\",\n \"label\": \"Truck Reference Speed\",\n \"options\": { customBodyRender: value => {formatNumber(value, 2)} },\n \"weight\": null\n },\n {\n \"name\": \"delay\",\n \"label\": \"Person Hours Of Delay\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"trkdelay\",\n \"label\": \"Truck Vehicle Hours Of Delay\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"ghg\",\n \"label\": \"Congested CO2 lbs\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"ghgbase\",\n \"label\": \"Normal CO2 lbs\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"congcost\",\n \"label\": \"Congested Cost\",\n \"options\": { customBodyRender: value => ${formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"pti95\",\n \"label\": \"Planning Time Index 95\",\n \"options\": { customBodyRender: value => {formatNumber(value, 2)} },\n \"weight\": \"vmt\"\n },\n {\n \"name\": \"pti80\",\n \"label\": \"Planning Time Index 80\",\n \"options\": { customBodyRender: value => {formatNumber(value, 2)} },\n \"weight\": \"vmt\"\n },\n {\n \"name\": \"trkpti95\",\n \"label\": \"Truck Planning Time Index 95\",\n \"options\": { customBodyRender: value => {formatNumber(value, 2)} },\n \"weight\": \"trkvmt\"\n },\n {\n \"name\": \"trkpti80\",\n \"label\": \"Truck Planning Time Index 80\",\n \"options\": { customBodyRender: value => {formatNumber(value, 2)} },\n \"weight\": \"trkvmt\"\n },\n {\n \"name\": \"lanemiles\",\n \"label\": \"Lane Length In Miles\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"vmt\",\n \"label\": \"VMT\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"pct_sadt\",\n \"label\": \"AADT Percentage Of Single Truck\",\n \"options\": { customBodyRender: value => {formatNumber(value,2)}% },\n \"weight\": \"simple\"\n },\n {\n \"name\": \"pct_cadt\",\n \"label\": \"AADT Percentage Of Combination Truck\",\n \"options\": { customBodyRender: value => {formatNumber(value,2)}% },\n \"weight\": \"simple\"\n },\n {\n \"name\": \"pct_trk\",\n \"label\": \"AADT Percentage Of All Truck\",\n \"options\": { customBodyRender: value => {formatNumber(value,2)}% },\n \"weight\": \"simple\"\n },\n {\n \"name\": \"tottrk\",\n \"label\": \"Total Number Of Truck\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"trkvmt\",\n \"label\": \"Truck VMT\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"year\",\n \"label\": \"Year\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"cnty_name\",\n \"label\": \"County Name\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"county_num\",\n \"label\": \"County Number\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"triangle_region\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"border_region\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"permian_basin\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"hou_area\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"dfw_area\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"rio_grande_val\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"interstate_r\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"state_loop\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"inters_connect_loop\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"connect_loop\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"port_to_pl\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"center_line\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"sum_distance\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"sum_trkvmt\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"trucknumber\",\n \"label\": \"Truck Number\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"ranks\",\n \"label\": \"Ranks\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"mpa_2018\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"mpa_2019\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"tx100seg_length\",\n \"label\": \"Tx100 Segmentation Length\",\n \"options\": null,\n \"weight\": \"none\"\n },\n {\n \"name\": \"aadt_tx100\",\n \"label\": \"Tx100 Segmentation AADT\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"trkaadt_tx100\",\n \"label\": \"Tx100 Segmentation Truck Aadt\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"tx100id\",\n \"label\": \"Id For Tx100 Segmentation\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"rank\",\n \"label\": \"2019 Rank -- All Delay\",\n \"options\": null,\n \"weight\": \"simple\"\n },\n {\n \"name\": \"trank\",\n \"label\": \"2019 Rank -- Truck Delay\",\n \"options\": null,\n \"weight\": \"simple\"\n },\n {\n \"name\": \"dmile\",\n \"label\": \"Person Hours of Delay Per Mile\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"tdmile\",\n \"label\": \"Truck Person Hours of Delay Per Mile\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"tci\",\n \"label\": \"Travel Time Index\",\n \"options\": { customBodyRender: value => {formatNumber(value, 2)} },\n \"weight\": \"vmt\"\n },\n {\n \"name\": \"pti\",\n \"label\": \"Planning Time Index\",\n \"options\": { customBodyRender: value => {formatNumber(value, 2)} },\n \"weight\": \"vmt\"\n },\n {\n \"name\": \"csi\",\n \"label\": \"Commuter Stress Index\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"vmt\"\n },\n {\n \"name\": \"spd\",\n \"label\": \"Average Peak Period Speed (Based On 6-9am, 4-7pm)\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": null\n },\n {\n \"name\": \"tspd\",\n \"label\": \"Average Truck Peak Period Speed (Based On 6-9am, 4-7pm)\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": null\n },\n {\n \"name\": \"rspd\",\n \"label\": \"Freeflow Speed For All Vehicles\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": null\n },\n {\n \"name\": \"trspd\",\n \"label\": \"Freeflow Speed For Trucks\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": null\n },\n {\n \"name\": \"vmt\",\n \"label\": \"VMT\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"pkdly\",\n \"label\": \"Peak Period Annual Hours Of Delay (Person-hours)\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"opdly\",\n \"label\": \"Off-peak Annual Hours Of Delay (Person-hours)\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"wedly\",\n \"label\": \"Weekend Annual Hours Of Delay (Person-hours)\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"pktdly\",\n \"label\": \"Peak Period Annual Hours Of Truck Delay (Person-hours)\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"optdly\",\n \"label\": \"Off-peak Annual Hours Of Truck Delay (Person-hours)\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"wetdly\",\n \"label\": \"Weekend Person Hours Of Truck Delay (Person-hours)\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"dly\",\n \"label\": \"Person Hours Of Delay\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"tdly\",\n \"label\": \"Truck Person Hours Of Delay\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"ttci\",\n \"label\": \"Truck Congestion Index\",\n \"options\": { customBodyRender: value => {formatNumber(value, 2)} },\n \"weight\": \"vmt\"\n },\n {\n \"name\": \"tpti\",\n \"label\": \"Truck Planning Time Index\",\n \"options\": { customBodyRender: value => {formatNumber(value, 2)} },\n \"weight\": \"vmt\"\n },\n {\n \"name\": \"cost\",\n \"label\": \"Congested Cost\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"tcost\",\n \"label\": \"Truck Congested Cost\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"fuel\",\n \"label\": \"Annual Excess Fuel Used Due To Congestion (Gallons)\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"tfuel\",\n \"label\": \"Annual Excess Fuel Used Due To Truck Congestion (Gallons)\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"co2\",\n \"label\": \"Annual Excess Co2 Produced Due To Congestion (Pounds)\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"tco2\",\n \"label\": \"Annual Excess Co2 Produced Due To Truck Congestion (Pounds)\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"fc\",\n \"label\": \"Functional System\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"data\",\n \"label\": \"Data Availability\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"urb\",\n \"label\": \"Urban Area\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"rank2018\",\n \"label\": \"Delay Rank -Year\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"rank2017\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"rank2016\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"rank2015\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"rank2014\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"rank2013\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"rank2012\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"rank2011\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"rank2010\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"trank2018\",\n \"label\": \"Truck Delay Rank - Year\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"trank2017\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"trank2016\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"trank2015\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"trank2014\",\n \"label\": \"\",\n \"options\": null,\n \"weight\": null\n },\n {\n \"name\": \"vmt_tx100seg\",\n \"label\": \"VMT\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"trkvmt_tx100seg\",\n \"label\": \"Truck VMT\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"cost\",\n \"label\": \"Congested Cost\",\n \"options\": { customBodyRender: value => {formatNumber(value)} },\n \"weight\": \"none\"\n },\n {\n \"name\": \"length_tx100\",\n \"label\": \"Length\",\n \"options\": { customBodyRender: value => {formatNumber(value, 2)} },\n \"weight\": \"none\"\n },\n];","import React, { useState, useEffect, useContext } from \"react\";\nimport { RhinoQueryContext } from \"../map/RhinoQueryContext\";\nimport { DICTIONARY_COLUMNS } from \"../common/dictionary\";\nimport PivotTableUI from \"react-pivottable/PivotTableUI\";\nimport \"react-pivottable/pivottable.css\";\n//import TableRenderers from \"react-pivottable/TableRenderers\";\n// import Plot from \"plotly.js-basic-dist\";\n// import createPlotlyRenderers from \"react-pivottable/PlotlyRenderers\";\nimport { aggregators } from \"react-pivottable/Utilities\";\nimport {\n RURAL_URBAN_CODE,\n MPO_LIST,\n FUNCTION_CLASS2014,\n COUNTY_LIST,\n TXDOTdist_VARIABLES,\n} from \"../common/constants\";\n\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nimport Typography from \"@material-ui/core/Typography\";\nimport Paper from \"@material-ui/core/Paper\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: \"100%\",\n },\n paper: {\n width: \"100%\",\n marginBottom: theme.spacing(5),\n },\n note: {\n textAlign: \"center\",\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n },\n}));\n\nconst CustomSummary = (props) => {\n const classes = useStyles();\n //const PlotlyRenderers = createPlotlyRenderers(Plot);\n const [roads, setRoads] = useState();\n const query = useContext(RhinoQueryContext);\n const dict = DICTIONARY_COLUMNS;\n const TX100cols = [\n \"delay\",\n \"dly\",\n \"pti\",\n \"tti\",\n \"tci\",\n \"vmt\",\n \"leng\",\n \"tdly\",\n \"tpti\",\n \"ttci\",\n \"congcost\",\n \"cost\",\n \"acost\",\n \"dmile\",\n \"tcost\",\n \"tdmile\",\n ];\n const statewidecols = [\n \"year\",\n \"trkdelay\",\n \"trktti\",\n \"trkpti80\",\n \"trkpti95\",\n \"ghg\",\n \"tti\",\n \"vmt\",\n \"delay\",\n \"dly\",\n \"pti80\",\n \"pti95\",\n \"tottrk\",\n \"trkvmt\",\n \"ttivmt\",\n \"adt_cur\",\n \"ghgbase\",\n \"len_sec\",\n \"pct_trk\",\n \"congcost\",\n \"cost\",\n \"acost\",\n ];\n const customaggregators = [\"hsys\", \"di\", \"co\", \"f_system\", \"mpa\", \"ru\"];\n const filteredFuncs = [\n \"Sum\",\n \"Average\",\n \"Count\",\n \"First\",\n \"Last\",\n \"Integer Sum\",\n \"Maximum\",\n \"Minimum\",\n \"Median\",\n ];\n const updateRoads = async () => {\n let neededcols = customaggregators.concat(\n props.layerID === \"statewide\" ? statewidecols : TX100cols\n );\n let labeldict = {\n co: COUNTY_LIST.reduce((acc, x) => ({ ...acc, [x.id]: x.name }), {}),\n di: TXDOTdist_VARIABLES.reduce(\n (acc, x) => ({ ...acc, [x.mapped]: x.definition }),\n {}\n ),\n f_system: FUNCTION_CLASS2014.reduce(\n (acc, x) => ({ ...acc, [x.id]: x.label }),\n {}\n ),\n mpa: MPO_LIST.reduce((acc, x) => ({ ...acc, [x.id]: x.name }), {}),\n ru: RURAL_URBAN_CODE.reduce(\n (acc, x) => ({ ...acc, [x.id]: x.label }),\n {}\n ),\n };\n ////////////////////// PRE-PROCESSING\n let f = query[0].features;\n let roadsdata = f.map((ir) => {\n let row = {};\n for (let key in ir) {\n if (neededcols.includes(key)) {\n row[\n dict.find((x) => x.name === key) === undefined\n ? key\n : dict.find((x) => x.name === key).label\n ] = customaggregators.slice(1).includes(key)\n ? ir[key] in labeldict[key]\n ? labeldict[key][ir[key]]\n : \"Unknown\"\n : ir[key];\n }\n }\n return row;\n });\n //////////////////////\n setRoads(roadsdata);\n };\n useEffect(() => {\n updateRoads();\n }, [query]);\n\n return (\n
    \n \n \n Note: 2021 reporting year (2020 data) was impacted by\n the COVID-19 pandemic and is not reflective of a typical year.\n \n \n \n Drag variables from above the table to the side or top of the table.\n \n {/*

    \n Drag variables from above the table to the side or top of the table.\n

    */}\n {roads && (\n filteredFuncs.includes(key))\n .reduce((obj, key) => {\n return { ...obj, [key]: aggregators[key] };\n }, {})}\n hiddenFromDragDrop={(props.layerID === \"statewide\"\n ? statewidecols\n : TX100cols\n ).map((y) =>\n dict.find((x) => x.name === y) === undefined\n ? y\n : dict.find((x) => x.name === y).label\n )}\n hiddenFromAggregators={customaggregators.map((y) =>\n dict.find((x) => x.name === y) === undefined\n ? y\n : dict.find((x) => x.name === y).label\n )}\n onChange={(s) => setRoads(s)}\n // renderers={Object.assign({}, TableRenderers, PlotlyRenderers)}\n {...roads}\n />\n )}\n
    \n );\n};\n\nexport default CustomSummary;\n","import React, { useState, useContext, useEffect } from \"react\";\n\nimport {\n SUMMARY_VARIABLES_RHINO,\n SUMMARY_VARIABLES_TX100,\n SUMMARY_VARIABLES_ROUTE,\n SUMMARY_VARIABLES_ROUTE_100,\n SUMMARY_VARIABLES_GROUPING,\n} from \"../common/constants\";\n// import { QueryContext } from \"../map/QueryContext\";\nimport { RhinoQueryContext } from \"../map/RhinoQueryContext\";\n\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Paper from \"@material-ui/core/Paper\";\nimport InputLabel from \"@material-ui/core/InputLabel\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport FormControl from \"@material-ui/core/FormControl\";\nimport Select from \"@material-ui/core/Select\";\nimport TableColumnSelector from \"./TableColumnSelector\";\nimport MaterialTable from \"@material-table/core\";\nimport Button from \"@material-ui/core/Button\";\n\nimport SaveAlt from \"@material-ui/icons/SaveAlt\";\n\nimport ExportFileNameDialog from \"./ExportFileNameDialog\";\n\nimport Typography from \"@material-ui/core/Typography\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: \"100%\",\n },\n paper: {\n width: \"100%\",\n marginBottom: theme.spacing(5),\n },\n}));\n\nexport default function SummaryTable(props) {\n const classes = useStyles();\n const [query, dispatch] = useContext(RhinoQueryContext);\n const [grouping, setGrouping] = useState(\"ria_rte_id\");\n const [selectedRows, setSelectedRows] = useState([]);\n const tableRef = React.createRef();\n const { theme, layerID, year, statusGuide, roadSegmentTable } = props;\n\n // const [roadLayerType] = useState(query.roadLayerType);\n const roadLayerType = statusGuide[0];\n\n function groupBy(xs, key) {\n return xs.reduce(function(rv, x) {\n (rv[x[key]] = rv[x[key]] || []).push(x);\n return rv;\n }, {});\n }\n\n // if (statusGuide[0] === \"TX100\") {\n function filterHPMSVariables(category) {\n let results = [];\n let SUMMARY_VARIABLES_layer;\n if (roadLayerType !== \"TX100\") {\n // if (roadLayerType === \"HPMS\") {\n SUMMARY_VARIABLES_layer = SUMMARY_VARIABLES_RHINO;\n } else {\n SUMMARY_VARIABLES_layer = SUMMARY_VARIABLES_TX100;\n }\n\n for (var i = SUMMARY_VARIABLES_layer.length - 1; i >= 0; i--) {\n if (category === SUMMARY_VARIABLES_layer[i].category) {\n results.push(SUMMARY_VARIABLES_layer[i]);\n }\n }\n\n return results;\n }\n\n function buildCols() {\n let cols = [];\n let colVars = [];\n\n // if (roadLayerType === \"TX100\") {\n // colVars = SUMMARY_VARIABLES_ROUTE_100;\n // } else if (grouping === \"ria_rte_id\") {\n // colVars = SUMMARY_VARIABLES_ROUTE;\n // } else {\n // colVars.push(\n // SUMMARY_VARIABLES_GROUPING.find((value) => {\n // return value.id === grouping;\n // })\n // );\n // }\n\n // for (var i = colVars.length - 1; i >= 0; i--) {\n // cols.push(colVars[i]);\n // }\n\n colVars = filterHPMSVariables(\"route\");\n for (var ii = colVars.length - 1; ii >= 0; ii--) {\n cols.push({\n id: colVars[ii].variable,\n numeric: true,\n disablePadding: false,\n label: colVars[ii].summaryName,\n tooltip: colVars[ii].tooltip,\n checked: true,\n category: colVars[ii].category,\n normalizedBy:\n typeof colVars[ii].normalizedBy !== \"undefined\"\n ? colVars[ii].normalizedBy\n : false,\n });\n }\n\n colVars = filterHPMSVariables(\"all\");\n for (var ii = colVars.length - 1; ii >= 0; ii--) {\n cols.push({\n id: colVars[ii].variable,\n numeric: true,\n disablePadding: false,\n label: colVars[ii].summaryName,\n tooltip: colVars[ii].tooltip,\n checked: true,\n category: colVars[ii].category,\n normalizedBy:\n typeof colVars[ii].normalizedBy !== \"undefined\"\n ? colVars[ii].normalizedBy\n : false,\n });\n }\n\n colVars = filterHPMSVariables(\"truck\");\n for (var iii = colVars.length - 1; iii >= 0; iii--) {\n cols.push({\n id: colVars[iii].variable,\n numeric: true,\n disablePadding: false,\n label: colVars[iii].summaryName,\n tooltip: colVars[iii].tooltip,\n checked: true,\n category: colVars[iii].category,\n normalizedBy:\n typeof colVars[iii].normalizedBy !== \"undefined\"\n ? colVars[iii].normalizedBy\n : false,\n });\n }\n\n return cols;\n }\n let columns = buildCols();\n\n function buildColsState(cols, category, state) {\n columns\n .filter((item) => item.category === category)\n .map(\n (col, index) =>\n (cols = {\n ...cols,\n [col.id]: state === \"keep\" ? columnsState[col.id] : state,\n })\n );\n\n return cols;\n }\n\n const [columnsState, setColumnsState] = useState(query.tableColumns);\n useEffect(() => {\n let cols = {};\n\n cols = buildColsState(cols, \"route\", true);\n cols = buildColsState(cols, \"all\", false);\n cols = buildColsState(cols, \"truck\", true);\n\n // dispatch({\n // type: \"setTableColumns\",\n // selection: cols,\n // });\n }, [roadLayerType, grouping]);\n\n useEffect(() => {\n setColumnsState(query.tableColumns);\n }, [query.tableColumns, grouping]);\n\n useEffect(() => {\n setSelectedRows([]);\n }, [props.statusGuide]);\n\n function buildColsNew(type) {\n let cols = [];\n let columnsTemp = columns;\n\n if (type === \"detailed_panel\" || roadLayerType === \"TX100\") {\n columnsTemp = columnsTemp.filter(\n (headCell) => headCell.id !== \"ria_rte_id\" //(headCell) => headCell.id !== \"ria_rte_id\"\n );\n }\n\n let SUMMARY_VARIABLES_ROUTE_Temp = [];\n if (roadLayerType === \"TX100\") {\n SUMMARY_VARIABLES_ROUTE_Temp = SUMMARY_VARIABLES_ROUTE_100;\n } else if (grouping === \"ria_rte_id\") {\n SUMMARY_VARIABLES_ROUTE_Temp = SUMMARY_VARIABLES_ROUTE;\n } else {\n SUMMARY_VARIABLES_ROUTE_Temp.push(\n SUMMARY_VARIABLES_GROUPING.find((value) => {\n return value.id === grouping;\n })\n );\n }\n SUMMARY_VARIABLES_ROUTE_Temp.map((obj) => {\n cols.push({\n title: obj.label,\n field: obj.id,\n cellStyle: {\n borderTopWidth: 0,\n borderBottomWidth: 1,\n borderLeftWidth: 0,\n borderRightWidth: 2,\n borderColor: \"rgba(224, 224, 224, 0.5)\", //borderColor: 'grey',\n borderStyle: \"solid\",\n },\n headerStyle: {\n borderTopWidth: 0,\n borderBottomWidth: 1,\n borderLeftWidth: 0,\n borderRightWidth: 2,\n borderColor: \"rgba(224, 224, 224, 0.5)\", //borderColor: 'grey',\n borderStyle: \"solid\",\n },\n tooltip: obj.tooltip,\n tooltipStyle: {\n fontSize: 12,\n },\n render: (rowData) =>\n rowData[obj.id] !== null &&\n typeof rowData[obj.id] !== \"undefined\" &&\n rowData[obj.id] !== \"undefined\"\n ? rowData[obj.id].toLocaleString(\"en-US\", obj.formatOptions)\n : \"\",\n });\n });\n\n columnsTemp.map(\n (headCell) =>\n columnsState[headCell.id] &&\n cols.push({\n title: headCell.label,\n field: headCell.id,\n cellStyle: {\n borderTopWidth: 0,\n borderBottomWidth: 1,\n borderLeftWidth: 0,\n borderRightWidth: 2,\n borderColor: \"rgba(224, 224, 224, 0.5)\", //borderColor: 'grey',\n borderStyle: \"solid\",\n },\n headerStyle: {\n borderTopWidth: 0,\n borderBottomWidth: 1,\n borderLeftWidth: 0,\n borderRightWidth: 2,\n borderColor: \"rgba(224, 224, 224, 0.5)\", //borderColor: 'grey',\n borderStyle: \"solid\",\n },\n tooltip: headCell.tooltip,\n tooltipStyle: {\n fontSize: 12,\n },\n render: (rowData) =>\n rowData[headCell.id] !== null &&\n typeof rowData[headCell.id] !== \"undefined\" &&\n rowData[headCell.id] !== \"undefined\"\n ? rowData[headCell.id].toLocaleString(\n \"en-US\",\n headCell.formatOptions\n )\n : \"\",\n })\n );\n\n return cols;\n }\n\n function aggrigateRow(rawRow) {\n let row = {};\n\n for (const column in columnsState) {\n let colVars = columns.find((obj) => {\n return obj.id === column;\n });\n\n // check to see if normalization is needed.\n if (\n columnsState[column] &&\n typeof colVars !== \"undefined\" &&\n typeof colVars.normalizedBy !== \"undefined\" &&\n colVars.normalizedBy\n ) {\n let sum = 0;\n let normSum = 0;\n\n for (var i = rawRow.length - 1; i >= 0; i--) {\n sum += rawRow[i][column] * rawRow[i][colVars.normalizedBy];\n normSum += rawRow[i][colVars.normalizedBy];\n }\n\n row[column] = sum / normSum;\n // standard aggregate.\n } else if (\n columnsState[column] &&\n typeof colVars !== \"undefined\" &&\n colVars.numeric &&\n column !== \"beg_point\" &&\n column !== \"end_point\"\n ) {\n row[column] = rawRow.reduce(function(prev, cur) {\n return prev + cur[column];\n }, 0);\n // Text only.\n } else if (columnsState[column]) {\n let label = false;\n let col = columns.find((c) => column === c.id);\n\n if (\n typeof col !== \"undefined\" &&\n typeof col.queryVariable !== \"undefined\"\n ) {\n label = query[col.queryVariable].find(\n (value) => value.id == rawRow[0][column]\n );\n }\n\n if (label) {\n row[column] = label.label;\n } else {\n row[column] = rawRow[0][column];\n }\n }\n }\n\n return row;\n }\n\n function buildRow(rawRow) {\n let row = {};\n for (const column in columnsState) {\n if (columnsState[column]) {\n if (column === \"trkvolper\") {\n row[column] = (rawRow[\"tottrk\"] / rawRow[\"adt_cur\"]) * 100;\n } else {\n row[column] = rawRow[column];\n }\n }\n }\n\n //row.id = rawRow.id;\n if (roadLayerType === \"TX100\") {\n row.id = rawRow.top100id;\n row.top100id = rawRow.top100id;\n } else {\n row.id = rawRow.ogc_fid;\n row.ria_rte_id = rawRow.ria_rte_id;\n row.frm_dfo = rawRow.frm_dfo;\n row.to_dfo = rawRow.to_dfo;\n }\n return row;\n }\n\n function buildRows() {\n let rows = [];\n if (roadLayerType !== \"TX100\") {\n if (grouping === \"total\") {\n let row = aggrigateRow(query.features);\n row.trkvolper = (row.tottrk / row.adt_cur) * 100;\n row[grouping] = \"Total\";\n rows.push(row);\n } else {\n let rowsGroup = groupBy(query.features, grouping);\n for (const group in rowsGroup) {\n let row = aggrigateRow(rowsGroup[group]);\n row.segments = rowsGroup[group];\n row.id = row.segments[0].ogc_fid;\n row.trkvolper = (row.tottrk / row.adt_cur) * 100;\n if (grouping === \"ria_rte_id\") {\n row.end_point = row.segments[row.segments.length - 1].end_point;\n }\n if (row[grouping] === null) row[grouping] = \"None/Other\";\n\n if (grouping === \"ria_rte_id\") {\n SUMMARY_VARIABLES_ROUTE.map((obj) => {\n let tempData = row.segments[0];\n row[obj.id] = tempData[obj.id];\n });\n } else {\n let tempData = row.segments[0][grouping];\n\n let filterGrouping = SUMMARY_VARIABLES_GROUPING.find((value) => {\n return value.id === grouping;\n }).queryVariable;\n\n row[grouping] = query[filterGrouping].find((value) => {\n if (value.id === tempData.toString())\n return value.id === tempData.toString();\n return value.id === tempData;\n }).label;\n }\n rows.push(row);\n }\n }\n } else {\n let rawRows = query.features;\n\n for (var i = rawRows.length - 1; i >= 0; i--) {\n let row = buildRow(rawRows[i]);\n if (row[\"road\"] === \"\") row[\"road\"] = \"Unknown\";\n if (row[\"from_road\"] === \"\") row[\"from_road\"] = \"Unknown\";\n if (row[\"to_road\"] === \"\") row[\"to_road\"] = \"Unknown\";\n\n SUMMARY_VARIABLES_ROUTE_100.map((obj) => {\n row[obj.id] = rawRows[i][obj.id];\n });\n\n rows.push(row);\n // rows.push(buildRow(rawRows[i]));\n }\n }\n\n return rows;\n }\n let rows = buildRows();\n\n function handleChange(e) {\n setGrouping(e.target.value);\n }\n\n const isRoadSelected = (selectedRows, feature) => {\n if (roadLayerType === \"TX100\") {\n // return selectedRows.includes(feature.properties.top100id);\n return selectedRows.includes(feature.top100id);\n } else {\n return selectedRows.includes(feature.ogc_fid);\n // return selectedRows.includes(feature.properties.ogc_fid);\n }\n };\n\n const updateSelectedRows = (srows) => {\n dispatch({\n type: \"setHighlightQuery\",\n query: isRoadSelected.bind(null, srows),\n });\n };\n\n const handleClick = (data) => {\n setSelectedRows(data);\n if (data.length > 0) {\n if (roadLayerType === \"TX100\") {\n const newSelecteds = data.map((n) => n.top100id);\n updateSelectedRows(newSelecteds);\n } else {\n let segmentIds = [];\n for (var d = data.length - 1; d >= 0; d--) {\n for (var ds = data[d].segments.length - 1; ds >= 0; ds--) {\n //segmentIds.push(data[d].segments[ds].id);\n segmentIds.push(data[d].segments[ds].ogc_fid);\n }\n }\n\n updateSelectedRows(segmentIds);\n }\n\n return;\n }\n\n updateSelectedRows([]);\n };\n\n const [openExportDialog, setOpenExportDialog] = useState(false);\n const [csvFileNameTest, setCsvFileNameTest] = useState(\"myTable\");\n const [exportCols, setExportCols] = useState();\n const [exportData, setExportData] = useState();\n\n return (\n
    \n \n \n Note: 2021 reporting year (2020 data) was impacted by\n the COVID-19 pandemic and is not reflective of a typical year.\n \n \n {rows.length !== null && (\n \n \n selectedRows.find((selected) => selected.id === row.id)\n ? { ...row, tableData: { checked: true } }\n : row\n )}\n // data={rows.map((row) => row)}\n tableRef={tableRef}\n options={{\n pageSize: 10,\n pageSizeOptions: [10, 25, 50, 100],\n exportButton: true,\n exportAllData: true,\n exportMenu: [\n // {\n // label: \"Export PDF\",\n // exportFunc: (cols, datas) =>\n // ExportPdf(cols, datas, \"myPdfFileName\"),\n // },\n // {\n // label: \"Export CSV\",\n // exportFunc: (cols, datas) =>\n // ExportCsv(cols, datas, \"myCsvFileName\"),\n // },\n {\n label: \"Export Table\",\n exportFunc: (cols, data) => {\n setOpenExportDialog(true);\n setExportCols(cols);\n setExportData(data);\n },\n },\n ],\n //code below is for selectable rows - commented out pending more debugging\n selection: grouping === \"total\" ? false : true,\n // selection: false,\n exportAllData: true,\n // exportFileName: () => new Date().toLocaleDateString(),\n exportFileName: \"testfile\",\n actionsColumnIndex: -1,\n toolbarButtonAlignment:\n selectedRows.length > 0 ? \"left\" : \"right\", // here is the option to change toolbar buttons' alignment\n }}\n icons={{\n Export: () => (\n //
    \n \n //
    \n ),\n }}\n actions={[\n {\n tooltip: \"Select Grouping\",\n hidden: roadLayerType === \"TX100\",\n icon: () => {\n return (\n \n Group By\n \n Route ID\n {/* \n Highway System Designation\n */}\n \n Texas Freight Network\n \n \n National Freight Network\n \n \n Highway System Designation\n \n Rural/Urban Code\n \n Functional Classification\n \n County\n TxDOT District\n MPO\n NHS\n Estimated\n {/* Ownership\n Functional System\n Urban Code\n \n National Highway System (NHS)\n \n \n Strategic Highway Network (STRAHNET)\n \n \n National Truck Network (NN)\n \n County */}\n Total\n \n \n );\n },\n onClick: () => {},\n isFreeAction: true,\n },\n {\n tooltip: \"\",\n icon: () => {\n return (\n
    \n \n
    \n );\n },\n onClick: () => {\n updateSelectedRows([]);\n setSelectedRows([]);\n },\n isFreeAction: grouping === \"total\" ? true : false,\n disable: grouping === \"total\" ? true : false,\n hidden: grouping === \"total\" ? true : false,\n },\n {\n tooltip: \"\",\n icon: () => {\n return (\n
    \n \n
    \n );\n },\n onClick: () => {},\n isFreeAction: true,\n },\n ]}\n onSelectionChange={(srows) => handleClick(srows)}\n // detailPanel={[\n // {\n // tooltip: \"Show Detailed Information\",\n // render: (rowData) => {\n // return (\n // \n // {materialTableDetailPanel(rowData)}\n //
    \n // );\n // },\n // },\n // ]}\n />\n \n \n )}\n \n );\n}\n","import React, {\n // useState,\n useContext,\n // useEffect\n} from \"react\";\n\nimport { lighten, makeStyles } from \"@material-ui/core/styles\";\n\nimport List from \"@material-ui/core/List\";\nimport ListItem from \"@material-ui/core/ListItem\";\nimport ListItemText from \"@material-ui/core/ListItemText\";\nimport ListItemIcon from \"@material-ui/core/ListItemIcon\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport Menu from \"@material-ui/core/Menu\";\n\nimport { RhinoQueryContext } from \"../map/RhinoQueryContext\";\n\n// import Typography from '@material-ui/core/Typography';\n\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\n\n// import colorScale from '../utils/colorScale'\n\nimport { ListSubheader } from \"@material-ui/core\";\n\nconst useStyles = makeStyles((theme) => ({\n roadSegmentSelector: {\n backgroundColor: theme.palette.background.paper,\n },\n wrapIcon: {\n //verticalAlign: 'middle',\n display: \"flex\",\n alignItems: \"center\",\n },\n roadwayLegendLine: {\n width: \"100%\",\n height: \"5px\",\n background: \"#4d4dff\",\n //float: 'left',\n marginLeft: \"5px\",\n marginRight: \"5px\",\n marginBottom: \"10px\",\n },\n\n roadwayLegendLine2: {\n width: \"100%\",\n height: \"20px\",\n //background: '#4d4dff',\n //float: 'left',\n marginLeft: \"5px\",\n marginRight: \"5px\",\n marginBottom: \"10px\",\n },\n roadwayLegendLine2Text: {\n //width: \"100%\",\n //height: '20px',\n //background: '#4d4dff',\n //float: 'left',\n //marginLeft: '5px',\n //marginRight: '5px',\n marginTop: \"10px\",\n },\n roadwayLegendDiv: {\n borderBottomStyle: \"solid\",\n borderWidth: \"1px\",\n borderColor: \"grey\",\n marginBottom: \"5px\",\n },\n}));\n\n//function rgbToHex(r, g, b) {\n// return \"#\" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n//}\n\n//function colorScale(height, minValue, maxValue) {\n// //const color = d3.color(d3.interpolateRdYlGn(linearScale(height)));\n// //const color = d3.color(d3.interpolatePuRd(linearScale(height)));\n// //const color = d3.color(d3.interpolateOrRd(linearScale(height)));\n//\n// const linearScale = scaleLinear()\n// //.domain([minTempTPTI, maxTempTPTI])\n// .domain([minValue, maxValue])\n// .range([0, 1]);\n//\n// const color = colorF(interpolateTurbo(linearScale(height)));\n//\n// if (color) return rgbToHex(color.r, color.g, color.b);\n//}\n\nexport default function YearSelection(props) {\n const classes = useStyles();\n const [query, dispatch] = useContext(RhinoQueryContext);\n const { year, setYear } = props;\n\n const [anchorEl, setAnchorEl] = React.useState(null);\n const [selectedIndex, setSelectedIndex] = React.useState(0);\n\n const handleClickListItem = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const options = [2021, 2020, 2019, 2018, 2017];\n\n const handleMenuItemClick = (event, index, value) => {\n //console.log(\"event\", event);\n setSelectedIndex(index);\n setAnchorEl(null);\n\n dispatch({\n type: \"setUserSelection\",\n selection: {\n ria_rte_id: \"\",\n frm_dfo: NaN,\n to_dfo: NaN,\n },\n });\n\n dispatch({\n type: \"setUserSelectionTX100\",\n selection: {\n top100id: \"\",\n from_road: NaN,\n to_road: \"\",\n road: \"\",\n },\n });\n\n dispatch({\n type: \"setYearSelection\",\n //selection: event.target.value\n selection: options[index],\n });\n setYear(options[index]);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n return (\n
    \n \n \n \n // }\n // secondary={query.yearSelection}\n secondary={\n \n }\n style={{\n marginTop: \"1px\",\n paddingTop: \"1px\",\n marginBottom: \"1px\",\n paddingBottom: \"1px\",\n }}\n />\n
    \n \n {\" \"}\n {/*alignItemsFlexStart>*/}\n \n \n
    \n \n \n \n {options.map((option, index) => (\n handleMenuItemClick(event, index)}\n >\n {option}\n \n ))}\n \n
    \n );\n}\n","import React, { useState, useContext, useEffect } from \"react\";\n\nimport { lighten, makeStyles } from \"@material-ui/core/styles\";\n\nimport List from \"@material-ui/core/List\";\nimport ListItem from \"@material-ui/core/ListItem\";\nimport ListItemText from \"@material-ui/core/ListItemText\";\nimport ListItemIcon from \"@material-ui/core/ListItemIcon\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport Menu from \"@material-ui/core/Menu\";\n\nimport { RhinoQueryContext } from \"../map/RhinoQueryContext\";\n\nimport Typography from \"@material-ui/core/Typography\";\n\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\n\nimport colorScale from \"../utils/colorScale\";\n\nconst useStyles = makeStyles((theme) => ({\n roadSegmentSelector: {\n backgroundColor: theme.palette.background.paper,\n },\n wrapIcon: {\n //verticalAlign: 'middle',\n display: \"flex\",\n alignItems: \"center\",\n },\n roadwayLegendLine: {\n width: \"100%\",\n height: \"5px\",\n background: \"#4d4dff\",\n //float: 'left',\n marginLeft: \"5px\",\n marginRight: \"5px\",\n marginBottom: \"10px\",\n },\n\n roadwayLegendLine2: {\n width: \"100%\",\n height: \"20px\",\n //background: '#4d4dff',\n //float: 'left',\n marginLeft: \"5px\",\n marginRight: \"5px\",\n marginBottom: \"10px\",\n },\n roadwayLegendLine2Text: {\n //width: \"100%\",\n //height: '20px',\n //background: '#4d4dff',\n //float: 'left',\n //marginLeft: '5px',\n //marginRight: '5px',\n marginTop: \"10px\",\n },\n roadwayLegendDiv: {\n borderBottomStyle: \"solid\",\n borderWidth: \"1px\",\n borderColor: \"grey\",\n marginBottom: \"5px\",\n },\n}));\n\n//function rgbToHex(r, g, b) {\n// return \"#\" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n//}\n\n//function colorScale(height, minValue, maxValue) {\n// //const color = d3.color(d3.interpolateRdYlGn(linearScale(height)));\n// //const color = d3.color(d3.interpolatePuRd(linearScale(height)));\n// //const color = d3.color(d3.interpolateOrRd(linearScale(height)));\n//\n// const linearScale = scaleLinear()\n// //.domain([minTempTPTI, maxTempTPTI])\n// .domain([minValue, maxValue])\n// .range([0, 1]);\n//\n// const color = colorF(interpolateTurbo(linearScale(height)));\n//\n// if (color) return rgbToHex(color.r, color.g, color.b);\n//}\n\nexport default function RoadSegmentHue(props) {\n const classes = useStyles();\n const [query, dispatch] = useContext(RhinoQueryContext);\n\n const [roadSegmentCategory, setroadSegmentCategory] = useState(\n //\"none\"\n query.roadSegmentCategory\n );\n\n const [anchorEl, setAnchorEl] = React.useState(null);\n const [selectedIndex, setSelectedIndex] = React.useState(0);\n\n const handleClickListItem = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleMenuItemClick = (event, index) => {\n setSelectedIndex(index);\n setAnchorEl(null);\n\n setroadSegmentCategory(optionsAbbrev[index]);\n\n //query.roadSegmentCategoryIndex\n dispatch({\n type: \"setroadSegmentCategoryIndex\",\n selection: index,\n });\n };\n useEffect(() => {\n dispatch({\n type: \"setroadSegmentCategory\",\n selection: roadSegmentCategory,\n });\n\n if (roadSegmentCategory === \"none\") {\n dispatch({\n type: \"setselectedBaselayer\",\n selection: \"Streets\",\n });\n } else {\n dispatch({\n type: \"setselectedBaselayer\",\n selection: \"Dark\",\n });\n }\n }, [roadSegmentCategory]);\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const optionRHINO = [\n \"None (all single color)\",\n \"Annual Person-Hours of Truck Delay\",\n \"Truck Planning Time Index 95\",\n \"Truck Planning Time Index 80\",\n \"Truck Travel Time Index\",\n \"Truck Reference Speed\",\n \"Truck Congested Speed\",\n \"Truck AADT\",\n \"Daily Truck VMT\",\n ];\n const optionsAbbrevRHINO = [\n \"none\",\n \"tdly\",\n \"tpti95\",\n \"tpti80\",\n \"ttti\",\n \"trefspd\",\n \"tcongspd\",\n \"taadt\",\n \"tvmt\",\n ];\n\n const optionsTX100 = [\n \"None (all single color)\",\n \"Truck Top 100 Ranking\",\n \"Annual Person-Hours of Truck Delay\",\n \"Truck Delay per Mile\",\n \"Truck Travel Time Index\",\n \"Truck Planning Time Index\",\n \"Truck Congested Costs\",\n ];\n const optionsAbbrevTX100 = [\n \"none\",\n \"trank\",\n \"tdly\",\n \"tdmile\",\n \"ttci\",\n \"tpti\",\n \"tcost\",\n ];\n\n let options = [];\n let optionsAbbrev = [];\n let featureType = \"tx100\";\n if (query.features.length > 0) {\n if (!query.features[0].top100id) featureType = \"rhino\";\n else featureType = \"tx100\";\n }\n\n if (featureType === \"rhino\") {\n options = optionRHINO;\n optionsAbbrev = optionsAbbrevRHINO;\n } else {\n options = optionsTX100;\n optionsAbbrev = optionsAbbrevTX100;\n }\n\n function LegendNone(props) {\n return (\n //
    \n // \n // \n // \n //
    \n \n \n \n );\n }\n\n function LegendOther(props) {\n return (\n //
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n {minValueText}\n \n \n {maxValueText}\n \n \n //
    \n );\n }\n\n function Legend(props) {\n if (props.type === \"none\") {\n return ;\n } else {\n return ;\n }\n }\n\n const rdSettingsHdr = `Roadway Settings (${props.numFeatures} features) `;\n let minValueText = `${props.minValue}`;\n let maxValueText = `${props.maxValue}`;\n let maxValueOffset = `${100 -\n Math.round(props.maxValue.toString().length * 2.5)}%`;\n\n if (\n optionsAbbrev[selectedIndex] === \"trank\" ||\n optionsAbbrev[selectedIndex] === \"trefspd\" ||\n optionsAbbrev[selectedIndex] === \"tcongspd\"\n ) {\n minValueText = `${props.maxValue}`;\n maxValueText = `${props.minValue}`;\n maxValueOffset = `${100 -\n Math.round(props.minValue.toString().length * 2.5)}%`;\n }\n\n return (\n
    \n \n \n {/* const rdSettingsHdr = `Roadway Settings (${props.numFeatures}{\" \"}\n features) `; */}\n \n }\n secondary={options[query.roadSegmentCategoryIndex]}\n style={{\n marginTop: \"1px\",\n paddingTop: \"1px\",\n marginBottom: \"1px\",\n paddingBottom: \"1px\",\n }}\n />\n
    \n \n {\" \"}\n {/*alignItemsFlexStart>*/}\n \n \n
    \n \n \n \n {options.map((option, index) => (\n handleMenuItemClick(event, index)}\n >\n {option}\n \n ))}\n \n {/* */}\n
    \n );\n}\n","import React, { useState, useContext, useEffect } from \"react\";\n\nimport { lighten, withStyles, makeStyles } from \"@material-ui/core/styles\";\nimport Switch from \"@material-ui/core/Switch\";\n//import Icon from '@material-ui/core/Icon';\nimport Paper from \"@material-ui/core/Paper\";\n\n//import Image from 'material-ui-image';\n\nimport { RhinoQueryContext } from \"../map/RhinoQueryContext\";\n\n// import {\n// Accordion,\n// AccordionSummary,\n// AccordionDetails,\n// } from \"@material-ui/core\";\n// import ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\nimport Typography from \"@material-ui/core/Typography\";\n\nimport Tooltip from \"@material-ui/core/Tooltip\";\n\nimport Card from \"@material-ui/core/Card\";\nimport CardActions from \"@material-ui/core/CardActions\";\nimport CardContent from \"@material-ui/core/CardContent\";\nimport CardHeader from \"@material-ui/core/CardHeader\";\nimport Button from \"@material-ui/core/Button\";\n\nimport InfoIcon from \"@material-ui/icons/Info\";\n\nimport { Grid } from \"@material-ui/core/\";\nimport Divider from \"@material-ui/core/Divider\";\n\nimport Radio from \"@mui/material/Radio\";\nimport RadioGroup from \"@mui/material/RadioGroup\";\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\nimport FormControl from \"@mui/material/FormControl\";\nimport FormLabel from \"@mui/material/FormLabel\";\nimport FormGroup from \"@mui/material/FormGroup\";\n\nimport YearSelection from \"../map/rhinoYearSelection\";\n\nimport RoadSegmentHue from \"../map/roadSegmentHue\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: \"100%\",\n },\n paper: {\n width: \"100%\",\n marginBottom: theme.spacing(2),\n },\n card: {\n borderRadius: 0,\n // backgroundColor: theme.palette.primary.light,\n // color: theme.palette.primary.contrastText,\n boxShadow: \"none\",\n },\n table: {\n minWidth: 750,\n },\n visuallyHidden: {\n border: 0,\n clip: \"rect(0 0 0 0)\",\n height: 1,\n margin: -1,\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n top: 20,\n width: 1,\n },\n heading: {\n fontSize: theme.typography.pxToRem(15),\n fontWeight: theme.typography.fontWeightBold,\n },\n bullet: {\n display: \"inline-block\",\n margin: \"0 2px\",\n transform: \"scale(0.8)\",\n },\n cardcontent: {\n paddingTop: 0,\n \"&:last-child\": {\n paddingBottom: 0,\n },\n },\n cardActions: {\n color: \"#5945cc\",\n },\n title: {\n flexGrow: 1,\n textAlign: \"left\",\n marginTop: 5,\n marginLeft: 20,\n },\n formLabel2: {\n paddingLeft: \"25px\",\n },\n note: {\n textAlign: \"left\",\n // marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n },\n}));\n\nexport default function OtherMapLayers(props) {\n const classes = useStyles();\n const [query, dispatch] = useContext(RhinoQueryContext);\n const {\n mapType,\n setMapType,\n // deckglMapType,\n // setDeckglMapType,\n roadGeomFeatures,\n year,\n setYear,\n } = props;\n const [\n deckGlMapTypeOptionsEnabled,\n setDeckGlMapTypeOptionsEnabled,\n ] = useState(true);\n\n const handleChangeMapType = (event) => {\n setMapType(event.target.value);\n if (event.target.value === \"leaflet\") setDeckGlMapTypeOptionsEnabled(true);\n else setDeckGlMapTypeOptionsEnabled(false);\n };\n const handleChangeDeckglMapType = (event) => {\n // setDeckglMapType(event.target.value);\n setMapType(event.target.value);\n };\n\n return (\n
    \n \n \n \n {/* \n Map Type\n */}\n \n 10,000 features default to Deck.GL.)\"\n style={{ marginBottom: \"none\" }}\n />\n \n \n \n \n }\n label={\"Leaflet Map (2-D)\"}\n key={`map-type-leaflet`}\n className={classes.formLabel}\n />\n {/* }\n label={\"Deck.GL (3-D)\"}\n key={`map-type-deckGL`}\n className={classes.formLabel}\n /> */}\n {/* Deck.GL (3-D) */}\n Deck.GL (3-D)\n }\n label={\"Roadways as Lines\"}\n key={`map-type-deckGL-lines`}\n className={classes.formLabel2}\n // disabled={deckGlMapTypeOptionsEnabled}\n />\n }\n label={\"Roads as polygons\"}\n key={`map-type-deckGL-polygons`}\n className={classes.formLabel2}\n // disabled={deckGlMapTypeOptionsEnabled}\n />\n \n {/* \n }\n label={\"Roadways as Lines\"}\n key={`map-type-deckGL-lines`}\n className={classes.formLabel2}\n disabled={deckGlMapTypeOptionsEnabled}\n />\n }\n label={\"Roads as polygons\"}\n key={`map-type-deckGL-polygons`}\n className={classes.formLabel2}\n disabled={deckGlMapTypeOptionsEnabled}\n />\n {\" \"} */}\n
    \n \n Tilt and rotation for Deck.gl map are changed by holding\n down the right mouse button and moving left/right\n (rotate) or up/down (tilt).{\" \"}\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n {/* */}\n \n Note: 2021 reporting year (2020 data) was\n impacted by the COVID-19 pandemic and is not reflective of a\n typical year.\n \n {/* */}\n \n {\" \"}\n \n
    \n
    \n );\n}\n","import React, { useState, useEffect, useContext, useMemo } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport AppBar from \"@material-ui/core/AppBar\";\nimport Tabs from \"@material-ui/core/Tabs\";\nimport Tab from \"@material-ui/core/Tab\";\nimport Box from \"@material-ui/core/Box\";\n\n// import RoadSegmentTable from \"./RoadSegmentTable\";\n// import SummaryTable from \"./SummaryTable\";\n\nimport OtherMapLayers from \"../map/OtherMapLayers.js\";\n\nimport { RhinoQueryContext } from \"../map/RhinoQueryContext\";\n\n// import RoadSegmentTable from \"./RoadSegmentTable.js\";\n// import TX100RoadSegmentTable from \"./TX100RoadSegmentTable.js\";\n\nimport RoadSegmentTableMui from \"./RoadSegmentTable-mui.js\";\nimport MonitoredRoadsTable from \"./MonitoredRoadsTable.js\";\n\n// import TableWrapper from \"../components/table-wrapper\";\n//import TableControl from \"./components/table-control\";\n// import TableSummary from \"../components/table-summary\";\n\nimport CustomSummary from \"./CustomSummary.js\";\n\nimport SummaryTable from \"./SummaryTable\";\n\nimport SettingsTab from \"../tabs/SettingsTab\";\n\nimport {\n SUMMARY_VARIABLES_RHINO,\n SUMMARY_VARIABLES_ROUTE,\n} from \"../common/constants\";\n\nfunction TabPanel(props) {\n const { children, value, index, ...other } = props;\n\n return (\n