All Downloads are FREE. Search and download functionalities are using the official Maven repository.

web-interface.assets.16.746b58959a350aa1ebcf.js.map Maven / Gradle / Ivy

There is a newer version: 6.0.6
Show newest version
{"version":3,"sources":["webpack:///16.746b58959a350aa1ebcf.js","webpack:///./src/components/indexers/IndexerClusterHealth.jsx","webpack:///./src/components/indexers/IndexerClusterHealthSummary.jsx","webpack:///./src/components/indexers/IndexerFailure.jsx","webpack:///./src/components/indexers/IndexerFailuresComponent.jsx","webpack:///./src/components/indexers/IndexerFailuresList.jsx","webpack:///./src/components/systemjobs/index.jsx","webpack:///./src/components/systemmessages/index.jsx","webpack:///./src/components/notifications/Notification.jsx","webpack:///./src/pages/SystemOverviewPage.jsx","webpack:///./src/components/notifications/index.jsx","webpack:///./src/logic/notifications/NotificationsFactory.js","webpack:///./src/components/notifications/NotificationsList.jsx","webpack:///./src/components/systemjobs/SystemJob.jsx","webpack:///./src/components/systemjobs/SystemJobsComponent.jsx","webpack:///./src/components/systemjobs/SystemJobsList.jsx","webpack:///./src/components/systemmessages/SystemMessage.jsx","webpack:///./src/components/systemmessages/SystemMessagesComponent.jsx","webpack:///./src/components/systemmessages/SystemMessagesList.jsx","webpack:///./src/components/times/index.jsx","webpack:///./src/components/times/TimesList.jsx","webpack:///./src/components/cluster/index.js","webpack:///./src/components/cluster/GraylogClusterOverview.jsx","webpack:///./src/components/cluster/TrafficGraph.jsx","webpack:///./src/components/indexers/index.jsx"],"names":["webpackJsonp","1027","module","exports","__webpack_require__","_interopRequireDefault","obj","__esModule","default","Object","defineProperty","value","_react","_react2","_reflux","_reflux2","_reactBootstrap","_StoreProvider","_StoreProvider2","_common","_support","_DocsHelper","_DocsHelper2","_indexers","IndexerClusterStore","getStore","IndexerClusterHealth","createClass","displayName","mixins","connect","componentDidMount","update","render","health","this","state","content","createElement","IndexerClusterHealthSummary","Spinner","Row","className","Col","md","SmallSupportLink","DocumentationLink","page","PAGES","CONFIGURING_ES","text","1028","_propTypes","_propTypes2","propTypes","object","isRequired","_alertClassForHealth","status","_formatTextForHealth","_iconNameForHealth","props","Alert","bsStyle","shards","active","initializing","relocating","unassigned","CLUSTER_STATUS_EXPLAINED","1029","IndexerFailure","failure","title","timestamp","Timestamp","dateTime","relative","index","letter_id","message","1030","_reactRouterBootstrap","_numeral","_numeral2","_moment","_moment2","_Routes","_Routes2","IndexerFailuresStore","IndexerFailuresComponent","getInitialState","_this","since","subtract","count","then","response","setState","total","_formatFailuresSummary","_iconForFailureCount","_formatTextForFailureCount","LinkContainer","to","SYSTEM","INDICES","FAILURES","Button","bsSize","format","undefined","INDEXER_FAILURES","1031","IndexerFailuresList","failures","arrayOf","length","Table","striped","hover","condensed","style","width","map","key","1144","_SystemJob","enumerable","get","_SystemJobsComponent","_SystemJobsList","1145","_SystemMessage","_SystemMessagesComponent","_SystemMessagesList","1186","_NotificationsFactory","_NotificationsFactory2","_ActionsProvider","_ActionsProvider2","NotificationsActions","getActions","Notification","notification","_onClose","window","confirm","delete","type","notificationView","getForNotification","onClick","description","1435","_notifications","_systemjobs","_systemmessages","_times","_cluster","SystemOverviewPage","DocumentTitle","IfPermitted","permissions","NotificationsList","SystemJobsComponent","GraylogClusterOverview","TimesList","SystemMessagesComponent","1436","_Notification","_NotificationsList","1437","_classCallCheck","instance","Constructor","TypeError","_createClass","defineProperties","target","i","descriptor","configurable","writable","protoProps","staticProps","prototype","_reactRouter","_DocumentationLink","_DocumentationLink2","NotificationsFactory","details","exception","ES_CLUSTER_STATUS_RED","max_file_descriptors","hostname","ES_OPEN_FILE_LIMITS","ES_CLUSTER_UNAVAILABLE","node_id","gc_duration_ms","gc_threshold_ms","index_sets","input_id","reason","Link","INPUTS","current_version","href","outputId","streamTitle","streamId","faultPenaltySeconds","faultCount","faultCountThreshold","stream_id","fault_count","STREAM_PROCESSING_RUNTIME_LIMITS","1438","_Notification2","NotificationsStore","_formatNotificationCount","notifications","1439","SystemJobsActions","SystemJob","_onCancel","job","e","preventDefault","info","cancelJob","id","progress","percent_complete","ProgressBar","now","cancel","is_cancelable","lineHeight","marginBottom","data-toggle","name","LinkToNode","nodeId","started_at","1440","SystemJobsStore","list","interval","setInterval","componentWillUnmount","clearInterval","jobs","keys","reduce","a","b","concat","SystemJobsList","1441","_formatSystemJob","1442","SystemMessage","1443","SystemMessagesStore","currentPage","loadMessages","PER_PAGE","_this2","all","_onSelected","selectedPage","messages","numberPages","Math","ceil","SystemMessagesList","textAlign","Pagination","items","activePage","onSelect","prev","next","first","last","maxButtons","min","1444","random","toString","substring","1445","_TimesList","1446","_DateTime","_DateTime2","CurrentUserStore","SystemStore","time","system","timeFormat","Formats","DATETIME_TZ","currentUser","serverTimezone","timezone","username","tz","1447","_GraylogClusterOverview","1448","_reactDom","_reactDom2","_NumberUtils","_NumberUtils2","_lodash","_lodash2","_EventHandlersThrottler","_EventHandlersThrottler2","_TrafficGraph","_TrafficGraph2","ClusterTrafficStore","ClusterTrafficActions","NodesStore","graphWidth","traffic","addEventListener","_onResize","_resizeGraphs","removeEventListener","eventThrottler","throttle","domNode","findDOMNode","_container","clientWidth","_isClusterLoading","nodes","clusterId","nodeCount","sumOutput","bytesOut","output","result","formatBytes","ref","container","from","1449","_HistogramVisualization","_HistogramVisualization2","_crossfilter","_crossfilter2","TrafficGraph","string","number","config","xAxis","yAxis","timerange","range","ndx","ts","bytes","dailyTraffic","dimension","d","dailySums","group","reduceSum","t","mapKeys","entry","utc","unix","unixTraffic","mapValues","val","data","interactive","keyTitleRenderer","x","DATE","valueTitleRenderer","y","computationTimeRange","934","_IndexerClusterHealth","_IndexerClusterHealthSummary","_IndexerFailure","_IndexerFailuresComponent","_IndexerFailuresList"],"mappings":"AAAAA,cAAc,KAERC,KACA,SAAUC,EAAQC,QAASC,GAEjC,YA+BA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GA5BvFG,OAAOC,eAAeP,QAAS,cAC7BQ,OAAO,GCTT,IAAAC,GAAAR,EAAA,GDcIS,EAAUR,EAAuBO,GCbrCE,EAAAV,EAAA,GDiBIW,EAAWV,EAAuBS,GChBtCE,EAAAZ,EAAA,IAEAa,EAAAb,EAAA,IDoBIc,EAAkBb,EAAuBY,GCjB7CE,EAAAf,EAAA,IACAgB,EAAAhB,EAAA,KACAiB,EAAAjB,EAAA,KDuBIkB,EAAejB,EAAuBgB,GCtB1CE,EAAAnB,EAAA,KALMoB,EAAsBN,EAAAV,QAAciB,SAAS,kBAO7CC,EAAuBb,EAAAL,QAAMmB,aAAYC,YAAA,uBAC7CC,QAASd,EAAAP,QAAOsB,QAAQN,IAExBO,kBAH6C,WAI3CP,EAAoBQ,UAGtBC,OAP6C,WAQ3C,GAAMC,GAASC,KAAKC,MAAMF,OAEtBG,QAOJ,OALEA,GADEH,EACQrB,EAAAL,QAAA8B,cAAAf,EAAAgB,6BAA6BL,OAAQA,IAErCrB,EAAAL,QAAA8B,cAAAnB,EAAAqB,QAAA,MAIV3B,EAAAL,QAAA8B,cAAAtB,EAAAyB,KAAKC,UAAU,WACb7B,EAAAL,QAAA8B,cAAAtB,EAAA2B,KAAKC,GAAI,IACP/B,EAAAL,QAAA8B,cAAA,mCAEAzB,EAAAL,QAAA8B,cAAAlB,EAAAyB,iBAAA,kGAC6F,IAC3FhC,EAAAL,QAAA8B,cAAAlB,EAAA0B,mBAAmBC,KAAMzB,EAAAd,QAAWwC,MAAMC,eAAgBC,KAAK,0BAFjE,KAKCb,MD4CXlC,SAAQK,QCrCOkB,EDsCfxB,EAAOC,QAAUA,QAAiB,SAI5BgD,KACA,SAAUjD,EAAQC,QAASC,GAEjC,YAuBA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GApBvFG,OAAOC,eAAeP,QAAS,cAC7BQ,OAAO,GE/FT,IAAAyC,GAAAhD,EAAA,GFoGIiD,EAAchD,EAAuB+C,GEnGzCxC,EAAAR,EAAA,GFuGIS,EAAUR,EAAuBO,GEtGrCI,EAAAZ,EAAA,IAEAgB,EAAAhB,EAAA,KACAiB,EAAAjB,EAAA,KF2GIkB,EAAejB,EAAuBgB,GEzGpCkB,EAA8B1B,EAAAL,QAAMmB,aAAYC,YAAA,8BACpD0B,WACEpB,OAAQmB,EAAA7C,QAAU+C,OAAOC,YAE3BC,qBAJoD,SAI/BvB,GACnB,OAAQA,EAAOwB,QACb,IAAK,QAAS,MAAO,SACrB,KAAK,SAAU,MAAO,SACtB,KAAK,MAAO,MAAO,QACnB,SAAS,MAAO,YAGpBC,qBAZoD,SAY/BzB,GACnB,GAAMgB,+BAAmChB,EAAOwB,OAA1C,GACN,QAAQxB,EAAOwB,QACb,IAAK,QAAS,MAAOR,EACrB,KAAK,SACL,IAAK,MAAO,MAAOrC,GAAAL,QAAA8B,cAAA,cAASY,EAC5B,SAAS,MAAOA,KAGpBU,mBArBoD,SAqBjC1B,GACjB,OAAQA,EAAOwB,QACb,IAAK,QAAS,MAAO,cACrB,KAAK,SAAU,MAAO,SACtB,KAAK,MAAO,MAAO,WACnB,SAAS,MAAO,iBAGpBzB,OA7BoD,WA6B3C,GACCC,GAAWC,KAAK0B,MAAhB3B,MACR,OACErB,GAAAL,QAAA8B,cAAAtB,EAAA8C,OAAOC,QAAS5B,KAAKsB,qBAAqBvB,GAASQ,UAAU,qBAC3D7B,EAAAL,QAAA8B,cAAA,KAAGI,UAAA,SAAoBP,KAAKyB,mBAAmB1B,KADjD,KACsEC,KAAKwB,qBAAqBzB,GAAS,IADzG,UAEU,IACPA,EAAO8B,OAAOC,OAHjB,WAGiC,IAC9B/B,EAAO8B,OAAOE,aAJjB,iBAI6C,IAC1ChC,EAAO8B,OAAOG,WALjB,eAKyC,IACtCjC,EAAO8B,OAAOI,WANjB,eAMyC,IACvCvD,EAAAL,QAAA8B,cAAAlB,EAAA0B,mBAAmBC,KAAMzB,EAAAd,QAAWwC,MAAMqB,yBAA0BnB,KAAK,4BFiJjF/C,SAAQK,QE3IO+B,EF4IfrC,EAAOC,QAAUA,QAAiB,SAI5BmE,KACA,SAAUpE,EAAQC,QAASC,GAEjC,YAiBA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAdvFG,OAAOC,eAAeP,QAAS,cAC7BQ,OAAO,GG3MT,IAAAyC,GAAAhD,EAAA,GHgNIiD,EAAchD,EAAuB+C,GG/MzCxC,EAAAR,EAAA,GHmNIS,EAAUR,EAAuBO,GGlNrCO,EAAAf,EAAA,IAEMmE,EAAiB1D,EAAAL,QAAMmB,aAAYC,YAAA,iBACvC0B,WACEkB,QAASnB,EAAA7C,QAAU+C,OAAOC,YAE5BvB,OAJuC,WAKrC,GAAMuC,GAAUrC,KAAK0B,MAAMW,OAC3B,OACE3D,GAAAL,QAAA8B,cAAA,UACEzB,EAAAL,QAAA8B,cAAA,MAAImC,MAAOD,EAAQE,WAAW7D,EAAAL,QAAA8B,cAAAnB,EAAAwD,WAAWC,SAAUJ,EAAQE,UAAWG,UAAA,KACtEhE,EAAAL,QAAA8B,cAAA,UAAKkC,EAAQM,OACbjE,EAAAL,QAAA8B,cAAA,UAAKkC,EAAQO,WACblE,EAAAL,QAAA8B,cAAA,UAAKkC,EAAQQ,YH8OrB7E,SAAQK,QGxOO+D,EHyOfrE,EAAOC,QAAUA,QAAiB,SAI5B8E,KACA,SAAU/E,EAAQC,QAASC,GAEjC,YAuCA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GApCvFG,OAAOC,eAAeP,QAAS,cAC7BQ,OAAO,GIzQT,IAAAC,GAAAR,EAAA,GJ8QIS,EAAUR,EAAuBO,GI7QrCI,EAAAZ,EAAA,IACA8E,EAAA9E,EAAA,KACA+E,EAAA/E,EAAA,KJmRIgF,EAAY/E,EAAuB8E,GIlRvCE,EAAAjF,EAAA,IJsRIkF,EAAWjF,EAAuBgF,GIpRtCpE,EAAAb,EAAA,IJwRIc,EAAkBb,EAAuBY,GIrR7CI,EAAAjB,EAAA,KJyRIkB,EAAejB,EAAuBgB,GIxR1CkE,EAAAnF,EAAA,IJ4RIoF,EAAWnF,EAAuBkF,GI1RtCpE,EAAAf,EAAA,IACAgB,EAAAhB,EAAA,KANMqF,EAAuBvE,EAAAV,QAAciB,SAAS,mBAQ9CiE,EAA2B7E,EAAAL,QAAMmB,aAAYC,YAAA,2BACjD+D,gBADiD,WAE/C,UAEF5D,kBAJiD,WAI7B,GAAA6D,GAAAzD,KACZ0D,GAAQ,EAAAP,EAAA9E,WAASsF,SAAS,GAAI,QAEpCL,GAAqBM,MAAMF,GAAOG,KAAK,SAACC,GACtCL,EAAKM,UAAWC,MAAOF,EAASF,WAGpCK,uBAXiD,WAY/C,MACEvF,GAAAL,QAAA8B,cAAAtB,EAAA8C,OAAOC,QAA8B,IAArB5B,KAAKC,MAAM+D,MAAc,UAAY,UACnDtF,EAAAL,QAAA8B,cAAA,KAAGI,UAAA,SAAoBP,KAAKkE,qBAAqBlE,KAAKC,MAAM+D,SAD9D,IAC4EhE,KAAKmE,2BAA2BnE,KAAKC,MAAM+D,OAErHtF,EAAAL,QAAA8B,cAAA4C,EAAAqB,eAAeC,GAAIhB,EAAAhF,QAAOiG,OAAOC,QAAQC,UACvC9F,EAAAL,QAAA8B,cAAAtB,EAAA4F,QAAQ7C,QAAQ,OAAO8C,OAAO,KAAKnE,UAAU,cAA7C,kBAOR4D,2BAxBiD,SAwBtBP,GACzB,MAAc,KAAVA,EACK,oDAEFlF,EAAAL,QAAA8B,cAAA,6BAAoB,EAAA8C,EAAA5E,SAAQuF,GAAOe,OAAO,OAA1C,oDAETT,qBA9BiD,SA8B5BN,GACnB,MAAc,KAAVA,EACK,eAEF,aAET9D,OApCiD,WAqC/C,GAAII,SAOJ,OALEA,OADuB0E,KAArB5E,KAAKC,MAAM+D,MACHtF,EAAAL,QAAA8B,cAAAnB,EAAAqB,QAAA,MAEAL,KAAKiE,yBAIfvF,EAAAL,QAAA8B,cAAAtB,EAAAyB,KAAKC,UAAU,WACb7B,EAAAL,QAAA8B,cAAAtB,EAAA2B,KAAKC,GAAI,IACP/B,EAAAL,QAAA8B,cAAA,8BAEAzB,EAAAL,QAAA8B,cAAAlB,EAAAyB,iBAAA,0IACqI,IACnIhC,EAAAL,QAAA8B,cAAAlB,EAAA0B,mBAAmBC,KAAMzB,EAAAd,QAAWwC,MAAMgE,iBAAkB9D,KAAK,0BAFnE,KAKCb,MJ8TXlC,SAAQK,QIvTOkF,EJwTfxF,EAAOC,QAAUA,QAAiB,SAI5B8G,KACA,SAAU/G,EAAQC,QAASC,GAEjC,YAmBA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAhBvFG,OAAOC,eAAeP,QAAS,cAC7BQ,OAAO,GK/YT,IAAAyC,GAAAhD,EAAA,GLoZIiD,EAAchD,EAAuB+C,GKnZzCxC,EAAAR,EAAA,GLuZIS,EAAUR,EAAuBO,GKtZrCI,EAAAZ,EAAA,IAEAmB,EAAAnB,EAAA,KAEM8G,EAAsBrG,EAAAL,QAAMmB,aAAYC,YAAA,sBAC5C0B,WACE6D,SAAU9D,EAAA7C,QAAU4G,QAAQ/D,EAAA7C,QAAU+C,QAAQC,YAEhDvB,OAJ4C,WAK1C,MAAmC,KAA/BE,KAAK0B,MAAMsD,SAASE,OAEpBxG,EAAAL,QAAA8B,cAAAtB,EAAA8C,OAAOC,QAAQ,WAAUlD,EAAAL,QAAA8B,cAAA,KAAGI,UAAU,uBAAtC,gDAKF7B,EAAAL,QAAA8B,cAAA,OAAKI,UAAU,oBACb7B,EAAAL,QAAA8B,cAAAtB,EAAAsG,OAAO5E,UAAU,mBAAmB6E,SAAA,EAAQC,OAAA,EAAMC,WAAA,GAChD5G,EAAAL,QAAA8B,cAAA,aACEzB,EAAAL,QAAA8B,cAAA,UACEzB,EAAAL,QAAA8B,cAAA,MAAIoF,OAASC,MAAO,MAApB,aACA9G,EAAAL,QAAA8B,cAAA,mBACAzB,EAAAL,QAAA8B,cAAA,uBACAzB,EAAAL,QAAA8B,cAAA,6BAGJzB,EAAAL,QAAA8B,cAAA,aACGH,KAAK0B,MAAMsD,SAASS,IAAI,SAAApD,GAAA,MAAW3D,GAAAL,QAAA8B,cAAAf,EAAAgD,gBAAgBsD,IAAA,mBAAwBrD,EAAQO,UAAaP,QAASA,WLictHrE,SAAQK,QKzbO0G,EL0bfhH,EAAOC,QAAUA,QAAiB,SAI5B2H,KACA,SAAU5H,EAAQC,QAASC,GAEjC,YAkCA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GA/BvFG,OAAOC,eAAeP,QAAS,cAC7BQ,OAAO,GAGT,IAAIoH,GAAa3H,EAAoB,KAErCK,QAAOC,eAAeP,QAAS,aAC7B6H,YAAY,EACZC,IAAK,WACH,MAAO5H,GAAuB0H,GMlfzBvH,UNsfT,IAAI0H,GAAuB9H,EAAoB,KAE/CK,QAAOC,eAAeP,QAAS,uBAC7B6H,YAAY,EACZC,IAAK,WACH,MAAO5H,GAAuB6H,GM1fzB1H,UN8fT,IAAI2H,GAAkB/H,EAAoB,KAE1CK,QAAOC,eAAeP,QAAS,kBAC7B6H,YAAY,EACZC,IAAK,WACH,MAAO5H,GAAuB8H,GMlgBzB3H,YN0gBH4H,KACA,SAAUlI,EAAQC,QAASC,GAEjC,YAkCA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GA/BvFG,OAAOC,eAAeP,QAAS,cAC7BQ,OAAO,GAGT,IAAI0H,GAAiBjI,EAAoB,KAEzCK,QAAOC,eAAeP,QAAS,iBAC7B6H,YAAY,EACZC,IAAK,WACH,MAAO5H,GAAuBgI,GO3hBzB7H,UP+hBT,IAAI8H,GAA2BlI,EAAoB,KAEnDK,QAAOC,eAAeP,QAAS,2BAC7B6H,YAAY,EACZC,IAAK,WACH,MAAO5H,GAAuBiI,GOniBzB9H,UPuiBT,IAAI+H,GAAsBnI,EAAoB,KAE9CK,QAAOC,eAAeP,QAAS,sBAC7B6H,YAAY,EACZC,IAAK,WACH,MAAO5H,GAAuBkI,GO3iBzB/H,YPmjBHgI,KACA,SAAUtI,EAAQC,QAASC,GAEjC,YA2BA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAxBvFG,OAAOC,eAAeP,QAAS,cAC7BQ,OAAO,GQ5jBT,IAAAyC,GAAAhD,EAAA,GRikBIiD,EAAchD,EAAuB+C,GQhkBzCxC,EAAAR,EAAA,GRokBIS,EAAUR,EAAuBO,GQnkBrCI,EAAAZ,EAAA,IACAe,EAAAf,EAAA,IAEAqI,EAAArI,EAAA,MRwkBIsI,EAAyBrI,EAAuBoI,GQtkBpDE,EAAAvI,EAAA,GR0kBIwI,EAAoBvI,EAAuBsI,GQzkBzCE,EAAuBD,EAAApI,QAAgBsI,WAAW,iBAElDC,EAAelI,EAAAL,QAAMmB,aAAYC,YAAA,eACrC0B,WACE0F,aAAc3F,EAAA7C,QAAU+C,OAAOC,YAEjCyF,SAJqC,WAK/BC,OAAOC,QAAQ,qCACjBN,EAAqBO,OAAOjH,KAAK0B,MAAMmF,aAAaK,OAGxDpH,OATqC,WAUnC,GAAM+G,GAAe7G,KAAK0B,MAAMmF,aAC1BM,EAAmBZ,EAAAlI,QAAqB+I,mBAAmBP,EACjE,OACEnI,GAAAL,QAAA8B,cAAAtB,EAAA8C,OAAOC,QAAQ,SAASrB,UAAU,gBAChC7B,EAAAL,QAAA8B,cAAAtB,EAAA4F,QAAQlE,UAAU,4BAA4B8G,QAASrH,KAAK8G,UAA5D,KAEApI,EAAAL,QAAA8B,cAAA,MAAII,UAAU,qBACZ7B,EAAAL,QAAA8B,cAAA,KAAGI,UAAU,eAAgB,IAC5B4G,EAAiB7E,MAAO,IAEzB5D,EAAAL,QAAA8B,cAAA,QAAMI,UAAU,0BAAhB,cACa7B,EAAAL,QAAA8B,cAAAnB,EAAAwD,WAAWC,SAAUoE,EAAatE,UAAWG,UAAA,IAD1D,MAIFhE,EAAAL,QAAA8B,cAAA,OAAKI,UAAU,4BACZ4G,EAAiBG,gBRkmB5BtJ,SAAQK,QQ3lBOuI,ER4lBf7I,EAAOC,QAAUA,QAAiB,SAI5BuJ,KACA,SAAUxJ,EAAQC,QAASC,GAEjC,YAGAK,QAAOC,eAAeP,QAAS,cAC7BQ,OAAO,GSjpBT,IAAAC,GAAAR,EAAA,GTspBIS,EAgBJ,SAAgCP,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,IAhBlDM,GSppBrCO,EAAAf,EAAA,IACAmB,EAAAnB,EAAA,KACAuJ,EAAAvJ,EAAA,MACAwJ,EAAAxJ,EAAA,MACAyJ,EAAAzJ,EAAA,MACA0J,EAAA1J,EAAA,MACA2J,EAAA3J,EAAA,MAEM4J,EAAqBnJ,EAAAL,QAAMmB,aAAYC,YAAA,qBAC3CK,OAD2C,WAEzC,MACEpB,GAAAL,QAAA8B,cAAAnB,EAAA8I,eAAexF,MAAM,mBACnB5D,EAAAL,QAAA8B,cAAA,YACEzB,EAAAL,QAAA8B,cAAAnB,EAAA+I,aAAaC,YAAY,sBACvBtJ,EAAAL,QAAA8B,cAAAqH,EAAAS,kBAAA,OAGFvJ,EAAAL,QAAA8B,cAAAnB,EAAA+I,aAAaC,YAAY,mBACvBtJ,EAAAL,QAAA8B,cAAAsH,EAAAS,oBAAA,OAGFxJ,EAAAL,QAAA8B,cAAAyH,EAAAO,uBAAA,MAEAzJ,EAAAL,QAAA8B,cAAAnB,EAAA+I,aAAaC,YAAY,uBACvBtJ,EAAAL,QAAA8B,cAAAf,EAAAG,qBAAA,OAGFb,EAAAL,QAAA8B,cAAAnB,EAAA+I,aAAaC,YAAY,oBACvBtJ,EAAAL,QAAA8B,cAAAf,EAAAmE,yBAAA,OAGF7E,EAAAL,QAAA8B,cAAAwH,EAAAS,UAAA,MAEA1J,EAAAL,QAAA8B,cAAAnB,EAAA+I,aAAaC,YAAY,uBACvBtJ,EAAAL,QAAA8B,cAAAuH,EAAAW,wBAAA,WT6qBZrK,SAAQK,QSrqBOwJ,ETsqBf9J,EAAOC,QAAUA,QAAiB,SAI5BsK,KACA,SAAUvK,EAAQC,QAASC,GAEjC,YAyBA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAtBvFG,OAAOC,eAAeP,QAAS,cAC7BQ,OAAO,GAGT,IAAI+J,GAAgBtK,EAAoB,KAExCK,QAAOC,eAAeP,QAAS,gBAC7B6H,YAAY,EACZC,IAAK,WACH,MAAO5H,GAAuBqK,GUruBzBlK,UVyuBT,IAAImK,GAAqBvK,EAAoB,KAE7CK,QAAOC,eAAeP,QAAS,qBAC7B6H,YAAY,EACZC,IAAK,WACH,MAAO5H,GAAuBsK,GU7uBzBnK,YVqvBHoK,KACA,SAAU1K,EAAQC,QAASC,GAEjC,YA2BA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASuK,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCA1BhHvK,OAAOC,eAAeP,QAAS,cAC7BQ,OAAO,GAGT,IAAIsK,GAAe,WAAc,QAASC,GAAiBC,EAAQtH,GAAS,IAAK,GAAIuH,GAAI,EAAGA,EAAIvH,EAAMwD,OAAQ+D,IAAK,CAAE,GAAIC,GAAaxH,EAAMuH,EAAIC,GAAWrD,WAAaqD,EAAWrD,aAAc,EAAOqD,EAAWC,cAAe,EAAU,SAAWD,KAAYA,EAAWE,UAAW,GAAM9K,OAAOC,eAAeyK,EAAQE,EAAWxD,IAAKwD,IAAiB,MAAO,UAAUN,EAAaS,EAAYC,GAAiJ,MAA9HD,IAAYN,EAAiBH,EAAYW,UAAWF,GAAiBC,GAAaP,EAAiBH,EAAaU,GAAqBV,MWhwBhiBnK,EAAAR,EAAA,GXowBIS,EAAUR,EAAuBO,GWnwBrC+K,EAAAvL,EAAA,KAEAmF,EAAAnF,EAAA,IXuwBIoF,EAAWnF,EAAuBkF,GWtwBtClE,EAAAjB,EAAA,KX0wBIkB,EAAejB,EAAuBgB,GWzwB1CuK,EAAAxL,EAAA,KX6wBIyL,EAAsBxL,EAAuBuL,GW3wB3CE,EXixBqB,WACzB,QAASA,KACPjB,EAAgB1I,KAAM2J,GAmTxB,MAhTAb,GAAaa,EAAsB,OACjCjE,IAAK,qBACLlH,MAAO,SWvxBiBqI,GACxB,OAAQA,EAAaK,MACnB,IAAK,sBACH,OACE5E,MAAO,wDACPgF,YACE5I,EAAAL,QAAA8B,cAAA,gXAON,KAAK,4BACH,OACEmC,MAAO,oDACPgF,YACE5I,EAAAL,QAAA8B,cAAA,6SAON,KAAK,wCACH,OACEmC,MAAO,uDACPgF,YACE5I,EAAAL,QAAA8B,cAAA,uNAGuC0G,EAAa+C,QAAQC,WAIlE,KAAK,yBACH,OACEvH,MAAO,mDACPgF,YACE5I,EAAAL,QAAA8B,cAAA,0HAEuC0G,EAAa+C,QAAQC,WAIlE,KAAK,iBACH,OACEvH,MAAO,wCACPgF,YACE5I,EAAAL,QAAA8B,cAAA,oPAGwD,IACtDzB,EAAAL,QAAA8B,cAAAuJ,EAAArL,SAAmBuC,KAAMzB,EAAAd,QAAWwC,MAAMiJ,sBAAuB/I,KAAK,4CAI9E,KAAK,gBACH,OACEuB,MAAO,mDACPgF,YACE5I,EAAAL,QAAA8B,cAAA,+GACmG,IACjGzB,EAAAL,QAAA8B,cAAA,UAAK0G,EAAa+C,QAAQG,sBAF5B,OAE0DrL,EAAAL,QAAA8B,cAAA,UAAK0G,EAAa+C,QAAQI,UAFpF,iJAIuF,IACrFtL,EAAAL,QAAA8B,cAAAuJ,EAAArL,SAAmBuC,KAAMzB,EAAAd,QAAWwC,MAAMoJ,oBAAqBlJ,KAAK,0CALtE,KASN,KAAK,iBACH,OACEuB,MAAO,oCACPgF,YACE5I,EAAAL,QAAA8B,cAAA,2QAGuC,IACrCzB,EAAAL,QAAA8B,cAAAuJ,EAAArL,SAAmBuC,KAAMzB,EAAAd,QAAWwC,MAAMqJ,uBACvBnJ,KAAK,4CAIhC,KAAK,cACH,OACEuB,MAAO,gCACPgF,YACE5I,EAAAL,QAAA8B,cAAA,kMAGSzB,EAAAL,QAAA8B,cAAA,UAAK0G,EAAasD,SAH3B,kBAGuDzL,EAAAL,QAAA8B,cAAA,UAAK0G,EAAa+C,QAAQQ,eAA1B,OAHvD,mBAIgB1L,EAAAL,QAAA8B,cAAA,UAAK0G,EAAa+C,QAAQS,gBAA1B,OAJhB,KAQN,KAAK,UACH,OACE/H,MAAOuE,EAAa+C,QAAQtH,MAC5BgF,YAAaT,EAAa+C,QAAQtC,YAEtC,KAAK,6BACH,OACEhF,MAAO,sCACPgF,YACE5I,EAAAL,QAAA8B,cAAA,kJAE2B0G,EAAa+C,QAAQU,WAArB,6BAAgEzD,EAAa+C,QAAQU,WAAgB,kBAItI,KAAK,wBACH,OACEhI,MAAO,+BACPgF,YACE5I,EAAAL,QAAA8B,cAAA,qBACS0G,EAAa+C,QAAQW,SAD9B,gCACqE1D,EAAasD,QADlF,sBAEItD,EAAa+C,QAAQY,OAFzB,6JAGkF,IAChF9L,EAAAL,QAAA8B,cAAAqJ,EAAAiB,MAAMpG,GAAIhB,EAAAhF,QAAOiG,OAAOoG,QAAxB,QAJF,mBAQN,KAAK,uCACH,OACEpI,MAAO,2CACPgF,YACE5I,EAAAL,QAAA8B,cAAA,qRAGkDzB,EAAAL,QAAA8B,cAAA,UAAK0G,EAAasD,SAHpE,KAON,KAAK,+BACH,OACE7H,MAAO,kCACPgF,YACE5I,EAAAL,QAAA8B,cAAA,kPAGSzB,EAAAL,QAAA8B,cAAA,UAAK0G,EAAasD,SAH3B,KAON,KAAK,eACH,OACE7H,MAAO,iDACPgF,YACE5I,EAAAL,QAAA8B,cAAA,+cAQN,KAAK,mBACH,OACEmC,MAAO,8CACPgF,YACE5I,EAAAL,QAAA8B,cAAA,uOAGgBzB,EAAAL,QAAA8B,cAAAqJ,EAAAiB,MAAMpG,GAAIhB,EAAAhF,QAAOiG,OAAOoG,QAAxB,QAHhB,mBAON,KAAK,YACH,OACEpI,MAAO,mEACPgF,YACE5I,EAAAL,QAAA8B,cAAA,oMAE2EzB,EAAAL,QAAA8B,cAAA,gCAF3E,kUASN,KAAK,mBACH,OACEmC,MAAO,+CACPgF,YACE5I,EAAAL,QAAA8B,cAAA,yDAC4CzB,EAAAL,QAAA8B,cAAA,UAAK0G,EAAa+C,QAAQe,iBADtE,iBAEcjM,EAAAL,QAAA8B,cAAA,KAAGyK,KAAK,2BAA2B5B,OAAO,UAA1C,4BAFd,KAMN,KAAK,kBACH,OACE1G,MAAO,kBACPgF,YACE5I,EAAAL,QAAA8B,cAAA,sCAC0B0G,EAAa+C,QAAQiB,SAD/C,eACqEhE,EAAa+C,QAAQkB,YAD1F,UAEQjE,EAAa+C,QAAQmB,SAF7B,2BAE+DlE,EAAa+C,QAAQoB,oBAFpF,8BAG8BnE,EAAa+C,QAAQqB,WAHnD,qBAISvM,EAAAL,QAAA8B,cAAA,UAAK0G,EAAasD,SAJ3B,sBAI2DzL,EAAAL,QAAA8B,cAAA,UAAK0G,EAAa+C,QAAQsB,qBAJrF,KAQN,KAAK,6BACH,OACE5I,MAAO,6EACPgF,YACE5I,EAAAL,QAAA8B,cAAA,wCAC2BzB,EAAAL,QAAA8B,cAAA,UAAK0G,EAAa+C,QAAQuB,WADrD,0BAC4F,IACzFtE,EAAa+C,QAAQwB,YAFxB,yJAIQ1M,EAAAL,QAAA8B,cAAAuJ,EAAArL,SAAmBuC,KAAMzB,EAAAd,QAAWwC,MAAMwK,iCAAkCtK,KAAK,sBAAuB,IAJhH,qBASN,SACE,OAASuB,kBAAmBuE,EAAaK,KAAhC,IAAyCI,YAAa,gBX62B9DqC,IAGT3L,SAAQK,QW32BOsL,EX42Bf5L,EAAOC,QAAUA,QAAiB,SAI5BsN,KACA,SAAUvN,EAAQC,QAASC,GAEjC,YA2BA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAxBvFG,OAAOC,eAAeP,QAAS,cAC7BQ,OAAO,GY5lCT,IAAAC,GAAAR,EAAA,GZimCIS,EAAUR,EAAuBO,GYhmCrCE,EAAAV,EAAA,GZomCIW,EAAWV,EAAuBS,GYnmCtCE,EAAAZ,EAAA,IAEAa,EAAAb,EAAA,IZumCIc,EAAkBb,EAAuBY,GYpmC7CE,EAAAf,EAAA,IACAsK,EAAAtK,EAAA,MZymCIsN,EAAiBrN,EAAuBqK,GY5mCtCiD,EAAqBzM,EAAAV,QAAciB,SAAS,iBAK5C2I,EAAoBvJ,EAAAL,QAAMmB,aAAYC,YAAA,oBAC1CC,QAASd,EAAAP,QAAOsB,QAAQ6L,IACxBC,yBAF0C,SAEjB7H,GACvB,MAAc,KAAVA,EACK,qBAEK,IAAVA,EACK,sBAGT,OAAcA,EAAd,kBAEF9D,OAZ0C,WAaxC,IAAKE,KAAKC,MAAMyL,cACd,MAAOhN,GAAAL,QAAA8B,cAAAnB,EAAAqB,QAAA,KAGT,IAAMuD,GAAQ5D,KAAKC,MAAM+D,MAErB1B,SACApC,QAiBJ,OAfc,KAAV0D,GACFtB,EAAQ,mBACRpC,EACExB,EAAAL,QAAA8B,cAAAtB,EAAA8C,OAAOC,QAAQ,UAAUrB,UAAU,sBACjC7B,EAAAL,QAAA8B,cAAA,KAAGI,UAAU,uBAAwB,IADvC,uBAMF+B,WAAiBtC,KAAKyL,yBAAyB7H,GAC/C1D,EAAUF,KAAKC,MAAMyL,cAAcjG,IAAI,SAACoB,GACtC,MAAOnI,GAAAL,QAAA8B,cAAAoL,EAAAlN,SAAcqH,IAAQmB,EAAaK,KAArB,IAA6BL,EAAatE,UAAasE,aAAcA,OAK5FnI,EAAAL,QAAA8B,cAAAtB,EAAAyB,KAAKC,UAAU,WACb7B,EAAAL,QAAA8B,cAAAtB,EAAA2B,KAAKC,GAAI,IACP/B,EAAAL,QAAA8B,cAAA,UAAKmC,GACL5D,EAAAL,QAAA8B,cAAA,KAAGI,UAAU,eAAb,kNAKCL,MZ6nCXlC,SAAQK,QYtnCO4J,EZunCflK,EAAOC,QAAUA,QAAiB,SAI5B2N,KACA,SAAU5N,EAAQC,QAASC,GAEjC,YAmBA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAhBvFG,OAAOC,eAAeP,QAAS,cAC7BQ,OAAO,GajsCT,IAAAC,GAAAR,EAAA,GbssCIS,EAAUR,EAAuBO,GarsCrCI,EAAAZ,EAAA,IAEAe,EAAAf,EAAA,IAEAuI,EAAAvI,EAAA,GbysCIwI,EAAoBvI,EAAuBsI,GaxsCzCoF,EAAoBnF,EAAApI,QAAgBsI,WAAW,cAE/CkF,EAAYnN,EAAAL,QAAMmB,aAAYC,YAAA,YAClCqM,UADkC,SACxBC,GACR,MAAO,UAACC,GACNA,EAAEC,iBACElF,OAAOC,QAAP,+CAA8D+E,EAAIG,KAAlE,OACFN,EAAkBO,UAAUJ,EAAIK,MAItCtM,OATkC,WAUhC,GAAMiM,GAAM/L,KAAK0B,MAAMqK,IACjBM,EAAWN,EAAIO,iBAAmB,IACrC5N,EAAAL,QAAA8B,cAAAtB,EAAA0N,aAAa3K,QAAQ,OAAOE,QAAA,EAAO0K,IAAKT,EAAIO,mBAAwB5N,EAAAL,QAAA8B,cAAA,QAAMI,UAAU,gCAAhB,aACjEkM,EAASV,EAAIW,cAChBhO,EAAAL,QAAA8B,cAAA,UAAQ+G,KAAK,SAAS3G,UAAU,oCAAoC8G,QAASrH,KAAK8L,UAAUC,IAA5F,cAAyH,IAE5H,OACErN,GAAAL,QAAA8B,cAAA,WACEzB,EAAAL,QAAA8B,cAAA,OAAKoF,OAASoH,WAAY,IAAKC,aAAc,IAC3ClO,EAAAL,QAAA8B,cAAA,KAAGI,UAAU,cAAe,IAC5B7B,EAAAL,QAAA8B,cAAA,QAAM0M,cAAY,UAAUvK,MAAOyJ,EAAIe,MAAOf,EAAIG,MAAa,IAFjE,gBAGexN,EAAAL,QAAA8B,cAAAnB,EAAA+N,YAAYC,OAAQjB,EAAI5B,UAAY,IACjDzL,EAAAL,QAAA8B,cAAAnB,EAAAwD,WAAWC,SAAUsJ,EAAIkB,WAAYvK,UAAA,IAAY,IAChD+J,GAGFJ,KbmuCTrO,SAAQK,Qa7tCOwN,Eb8tCf9N,EAAOC,QAAUA,QAAiB,SAI5BkP,KACA,SAAUnP,EAAQC,QAASC,GAEjC,YA6BA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GA1BvFG,OAAOC,eAAeP,QAAS,cAC7BQ,OAAO,GcjxCT,IAAAC,GAAAR,EAAA,GdsxCIS,EAAUR,EAAuBO,GcrxCrCE,EAAAV,EAAA,GdyxCIW,EAAWV,EAAuBS,GcxxCtCE,EAAAZ,EAAA,IAEAa,EAAAb,EAAA,Id4xCIc,EAAkBb,EAAuBY,GczxC7C0H,EAAAvI,EAAA,Gd6xCIwI,EAAoBvI,EAAuBsI,Gc1xC/CxH,EAAAf,EAAA,IACAwJ,EAAAxJ,EAAA,MANMkP,EAAkBpO,EAAAV,QAAciB,SAAS,cAGzCsM,EAAoBnF,EAAApI,QAAgBsI,WAAW,cAK/CuB,EAAsBxJ,EAAAL,QAAMmB,aAAYC,YAAA,sBAC5CC,QAASd,EAAAP,QAAOsB,QAAQwN,IACxBvN,kBAF4C,WAG1CgM,EAAkBwB,OAElBpN,KAAKqN,SAAWC,YAAY1B,EAAkBwB,KAAM,MAEtDG,qBAP4C,WAQ1CC,cAAcxN,KAAKqN,WAErBvN,OAV4C,WAUnC,GAAA2D,GAAAzD,IACP,KAAKA,KAAKC,MAAMwN,KACd,MAAO/O,GAAAL,QAAA8B,cAAAnB,EAAAqB,QAAA,KAET,IAAMoN,GAAOnP,OAAOoP,KAAK1N,KAAKC,MAAMwN,MACjChI,IAAI,SAAAuH,GAAA,MAAUvJ,GAAKxD,MAAMwN,KAAKT,GAAUvJ,EAAKxD,MAAMwN,KAAKT,GAAQS,UAChEE,OAAO,SAACC,EAAGC,GAAJ,MAAUD,GAAEE,OAAOD,IAC7B,OACEnP,GAAAL,QAAA8B,cAAAtB,EAAAyB,KAAKC,UAAU,WACb7B,EAAAL,QAAA8B,cAAAtB,EAAA2B,KAAKC,GAAI,IACP/B,EAAAL,QAAA8B,cAAA,yBACAzB,EAAAL,QAAA8B,cAAA,KAAGI,UAAU,eAAb,yJAKA7B,EAAAL,QAAA8B,cAAAsH,EAAAsG,gBAAgBN,KAAMA,QdszChCzP,SAAQK,Qc/yCO6J,EdgzCfnK,EAAOC,QAAUA,QAAiB,SAI5BgQ,KACA,SAAUjQ,EAAQC,QAASC,GAEjC,YAmBA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAhBvFG,OAAOC,eAAeP,QAAS,cAC7BQ,OAAO,Gez2CT,IAAAyC,GAAAhD,EAAA,Gf82CIiD,EAAchD,EAAuB+C,Ge72CzCxC,EAAAR,EAAA,Gfi3CIS,EAAUR,EAAuBO,Geh3CrCI,EAAAZ,EAAA,IAEAwJ,EAAAxJ,EAAA,MAEM8P,EAAiBrP,EAAAL,QAAMmB,aAAYC,YAAA,iBACvC0B,WACEsM,KAAMvM,EAAA7C,QAAU4G,QAAQ/D,EAAA7C,QAAU+C,QAAQC,YAE5C4M,iBAJuC,SAItBlC,GACf,MACErN,GAAAL,QAAA8B,cAAA,OAAKI,UAAU,gDAAgDmF,IAAA,OAAYqG,EAAIK,IAC7E1N,EAAAL,QAAA8B,cAAAsH,EAAAoE,WAAWE,IAAKA,MAItBjM,OAXuC,WAYrC,GAAM2N,GAAOzN,KAAK0B,MAAM+L,KAAKhI,IAAIzF,KAAKiO,iBACtC,OAAoB,KAAhBR,EAAKvI,OAELxG,EAAAL,QAAA8B,cAAAtB,EAAA8C,OAAOC,QAAQ,OAAOrB,UAAU,mBAC9B7B,EAAAL,QAAA8B,cAAA,KAAGI,UAAU,sBAAuB,IADtC,2BAOF7B,EAAAL,QAAA8B,cAAA,YACGsN,Kf63CTzP,SAAQK,Qev3CO0P,Efw3CfhQ,EAAOC,QAAUA,QAAiB,SAI5BkQ,KACA,SAAUnQ,EAAQC,QAASC,GAEjC,YAqBA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAlBvFG,OAAOC,eAAeP,QAAS,cAC7BQ,OAAO,GgBt6CT,IAAAyC,GAAAhD,EAAA,GhB26CIiD,EAAchD,EAAuB+C,GgB16CzCxC,EAAAR,EAAA,GhB86CIS,EAAUR,EAAuBO,GgB76CrCyE,EAAAjF,EAAA,IhBi7CIkF,EAAWjF,EAAuBgF,GgB/6CtClE,EAAAf,EAAA,IAEMkQ,EAAgBzP,EAAAL,QAAMmB,aAAYC,YAAA,gBACtC0B,WACE0B,QAAS3B,EAAA7C,QAAU+C,OAAOC,YAE5BvB,OAJsC,WAKpC,GAAM+C,GAAU7C,KAAK0B,MAAMmB,OAC3B,OACEnE,GAAAL,QAAA8B,cAAA,UACEzB,EAAAL,QAAA8B,cAAA,WAAK,EAAAgD,EAAA9E,SAAOwE,EAAQN,WAAWoC,UAC/BjG,EAAAL,QAAA8B,cAAA,UACEzB,EAAAL,QAAA8B,cAAAnB,EAAA+N,YAAYC,OAAQnK,EAAQsH,WAE9BzL,EAAAL,QAAA8B,cAAA,UAAK0C,EAAQ3C,YhBq8CrBlC,SAAQK,QgB/7CO8P,EhBg8CfpQ,EAAOC,QAAUA,QAAiB,SAI5BoQ,KACA,SAAUrQ,EAAQC,QAASC,GAEjC,YAqBA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAlBvFG,OAAOC,eAAeP,QAAS,cAC7BQ,OAAO,GiBn+CT,IAAAC,GAAAR,EAAA,GjBw+CIS,EAAUR,EAAuBO,GiBv+CrCI,EAAAZ,EAAA,IAEAa,EAAAb,EAAA,IjB2+CIc,EAAkBb,EAAuBY,GiBx+C7CE,EAAAf,EAAA,IACAyJ,EAAAzJ,EAAA,MAHMoQ,EAAsBtP,EAAAV,QAAciB,SAAS,kBAK7C+I,EAA0B3J,EAAAL,QAAMmB,aAAYC,YAAA,0BAChD+D,gBADgD,WAE9C,OAAS8K,YAAa,IAExB1O,kBAJgD,WAI5B,GAAA6D,GAAAzD,IAClBA,MAAKuO,aAAavO,KAAKC,MAAMqO,aAC7BtO,KAAKqN,SAAWC,YAAY,WAAQ7J,EAAK8K,aAAa9K,EAAKxD,MAAMqO,cAAiB,MAEpFf,qBARgD,WAS9CC,cAAcxN,KAAKqN,WAErBmB,SAAU,GACVD,aAZgD,SAYnC3N,GAAM,GAAA6N,GAAAzO,IACjBqO,GAAoBK,IAAI9N,GAAMiD,KAAK,SAACC,GAClC2K,EAAK1K,SAASD,MAGlB6K,YAjBgD,SAiBpCC,GACV5O,KAAK+D,UAAWuK,YAAaM,IAC7B5O,KAAKuO,aAAaK,IAEpB9O,OArBgD,WAsB9C,GAAII,SACJ,IAAIF,KAAKC,MAAM+D,OAAShE,KAAKC,MAAM4O,SAAU,CAC3C,GAAMC,GAAcC,KAAKC,KAAKhP,KAAKC,MAAM+D,MAAQhE,KAAKwO,SAGtDtO,GACExB,EAAAL,QAAA8B,cAAA,WACEzB,EAAAL,QAAA8B,cAAAuH,EAAAuH,oBAAoBJ,SAAU7O,KAAKC,MAAM4O,WAEzCnQ,EAAAL,QAAA8B,cAAA,OAAKoF,OAAS2J,UAAW,WACvBxQ,EAAAL,QAAA8B,cAAAtB,EAAAsQ,YAAYzK,OAAO,QAAQ0K,MAAON,EACtBO,WAAYrP,KAAKC,MAAMqO,YACvBgB,SAAUtP,KAAK2O,YACfY,MAAA,EAAKC,MAAA,EAAKC,OAAA,EAAMC,MAAA,EAChBC,WAAYZ,KAAKa,IAXb,GAWgCd,WAKtD5O,GAAUxB,EAAAL,QAAA8B,cAAAnB,EAAAqB,QAAA,KAGZ,OACE3B,GAAAL,QAAA8B,cAAAtB,EAAAyB,KAAKC,UAAU,WACb7B,EAAAL,QAAA8B,cAAAtB,EAAA2B,KAAKC,GAAI,IACP/B,EAAAL,QAAA8B,cAAA,6BAEAzB,EAAAL,QAAA8B,cAAA,KAAGI,UAAU,eAAb,qQAMCL,MjBmgDXlC,SAAQK,QiB5/COgK,EjB6/CftK,EAAOC,QAAUA,QAAiB,SAI5B6R,KACA,SAAU9R,EAAQC,QAASC,GAEjC,YAmBA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAhBvFG,OAAOC,eAAeP,QAAS,cAC7BQ,OAAO,GkB/kDT,IAAAyC,GAAAhD,EAAA,GlBolDIiD,EAAchD,EAAuB+C,GkBnlDzCxC,EAAAR,EAAA,GlBulDIS,EAAUR,EAAuBO,GkBtlDrCI,EAAAZ,EAAA,IAEAyJ,EAAAzJ,EAAA,MAEMgR,EAAqBvQ,EAAAL,QAAMmB,aAAYC,YAAA,qBAC3C0B,WACE0N,SAAU3N,EAAA7C,QAAU4G,QAAQ/D,EAAA7C,QAAU+C,QAAQC,YAEhDvB,OAJ2C,WAKzC,MACEpB,GAAAL,QAAA8B,cAAAtB,EAAAsG,OAAO5E,UAAU,kBAAkB6E,SAAA,EAAQC,OAAA,EAAMC,WAAA,GAC/C5G,EAAAL,QAAA8B,cAAA,aACEzB,EAAAL,QAAA8B,cAAA,UACEzB,EAAAL,QAAA8B,cAAA,MAAIoF,OAASC,MAAO,UAApB,aACA9G,EAAAL,QAAA8B,cAAA,kBACAzB,EAAAL,QAAA8B,cAAA,uBAIJzB,EAAAL,QAAA8B,cAAA,aACGH,KAAK0B,MAAMmN,SAASpJ,IAAI,SAAA5C,GAAA,MAAWnE,GAAAL,QAAA8B,cAAAuH,EAAAyG,eAAezI,IAAA,WAAgBqJ,KAAKe,SAASC,SAAS,IAAIC,UAAU,GAAMnN,QAASA,UlBsnDjI7E,SAAQK,QkB/mDO4Q,ElBgnDflR,EAAOC,QAAUA,QAAiB,SAI5BiS,KACA,SAAUlS,EAAQC,QAASC,GAEjC,YAgBA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAbvFG,OAAOC,eAAeP,QAAS,cAC7BQ,OAAO,GAGT,IAAI0R,GAAajS,EAAoB,KAErCK,QAAOC,eAAeP,QAAS,aAC7B6H,YAAY,EACZC,IAAK,WACH,MAAO5H,GAAuBgS,GmBhqDzB7R,YnBwqDH8R,KACA,SAAUpS,EAAQC,QAASC,GAEjC,YA+BA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GA5BvFG,OAAOC,eAAeP,QAAS,cAC7BQ,OAAO,GoB/qDT,IAAAC,GAAAR,EAAA,GpBorDIS,EAAUR,EAAuBO,GoBnrDrCE,EAAAV,EAAA,GpBurDIW,EAAWV,EAAuBS,GoBtrDtCE,EAAAZ,EAAA,IACAiF,EAAAjF,EAAA,IpB2rDIkF,EAAWjF,EAAuBgF,GoB1rDtCkN,EAAAnS,EAAA,IpB8rDIoS,EAAanS,EAAuBkS,GoB5rDxCtR,EAAAb,EAAA,IpBgsDIc,EAAkBb,EAAuBY,GoB5rD7CE,EAAAf,EAAA,IAHMqS,EAAmBvR,EAAAV,QAAciB,SAAS,eAC1CiR,EAAcxR,EAAAV,QAAciB,SAAS,UAIrC8I,EAAY1J,EAAAL,QAAMmB,aAAYC,YAAA,YAClCC,QAASd,EAAAP,QAAOsB,QAAQ2Q,GAAmB1R,EAAAP,QAAOsB,QAAQ4Q,IAC1D/M,gBAFkC,WAGhC,OAASgN,MAAM,EAAArN,EAAA9E,aAEjBuB,kBALkC,WAKd,GAAA6D,GAAAzD,IAClBA,MAAKqN,SAAWC,YAAY,iBAAM7J,GAAKM,SAASN,EAAKD,oBAAoB,MAE3E+J,qBARkC,WAShCC,cAAcxN,KAAKqN,WAErBvN,OAXkC,WAYhC,IAAKE,KAAKC,MAAMwQ,OACd,MAAO/R,GAAAL,QAAA8B,cAAAnB,EAAAqB,QAAA,KAET,IAAMmQ,GAAOxQ,KAAKC,MAAMuQ,KAClBE,EAAaL,EAAAhS,QAASsS,QAAQC,YAC9BC,EAAc7Q,KAAKC,MAAM4Q,YACzBC,EAAiB9Q,KAAKC,MAAMwQ,OAAOM,QACzC,OACErS,GAAAL,QAAA8B,cAAAtB,EAAAyB,KAAKC,UAAU,WACb7B,EAAAL,QAAA8B,cAAAtB,EAAA2B,KAAKC,GAAI,IACP/B,EAAAL,QAAA8B,cAAA,gCAEAzB,EAAAL,QAAA8B,cAAA,KAAGI,UAAU,eAAb,4NAKA7B,EAAAL,QAAA8B,cAAA,MAAII,UAAU,aACZ7B,EAAAL,QAAA8B,cAAA,kBAASzB,EAAAL,QAAA8B,cAAA,UAAK0Q,EAAYG,UAA1B,KACAtS,EAAAL,QAAA8B,cAAA,UAAIzB,EAAAL,QAAA8B,cAAAnB,EAAAwD,WAAWC,SAAU+N,EAAM7L,OAAQ+L,KACvChS,EAAAL,QAAA8B,cAAA,+BACAzB,EAAAL,QAAA8B,cAAA,UAAIzB,EAAAL,QAAA8B,cAAAnB,EAAAwD,WAAWC,SAAU+N,EAAM7L,OAAQ+L,EAAYO,GAAI,aACvDvS,EAAAL,QAAA8B,cAAA,6BACAzB,EAAAL,QAAA8B,cAAA,UAAIzB,EAAAL,QAAA8B,cAAAnB,EAAAwD,WAAWC,SAAU+N,EAAM7L,OAAQ+L,EAAYO,GAAIH,UpBsvDnE9S,SAAQK,QoB9uDO+J,EpB+uDfrK,EAAOC,QAAUA,QAAiB,SAI5BkT,KACA,SAAUnT,EAAQC,QAASC,GAEjC,YAgBA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAbvFG,OAAOC,eAAeP,QAAS,cAC7BQ,OAAO,GAGT,IAAI2S,GAA0BlT,EAAoB,KAElDK,QAAOC,eAAeP,QAAS,0BAC7B6H,YAAY,EACZC,IAAK,WACH,MAAO5H,GAAuBiT,GqBzzDzB9S,YrBi0DH+S,KACA,SAAUrT,EAAQC,QAASC,GAEjC,YA+CA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GA5CvFG,OAAOC,eAAeP,QAAS,cAC7BQ,OAAO,GsBt0DT,IAAAC,GAAAR,EAAA,GtB20DIS,EAAUR,EAAuBO,GsB10DrC4S,EAAApT,EAAA,ItB80DIqT,EAAapT,EAAuBmT,GsB70DxC1S,EAAAV,EAAA,GtBi1DIW,EAAWV,EAAuBS,GsBh1DtCE,EAAAZ,EAAA,IAEAe,EAAAf,EAAA,IACAa,EAAAb,EAAA,ItBq1DIc,EAAkBb,EAAuBY,GsBp1D7C0H,EAAAvI,EAAA,GtBw1DIwI,EAAoBvI,EAAuBsI,GsBv1D/C+K,EAAAtT,EAAA,KtB21DIuT,EAAgBtT,EAAuBqT,GsB11D3CE,EAAAxT,EAAA,ItB81DIyT,EAAWxT,EAAuBuT,GsB71DtCE,EAAA1T,EAAA,KtBi2DI2T,EAA2B1T,EAAuByT,GsB/1DtDE,EAAA5T,EAAA,MtBm2DI6T,EAAiB5T,EAAuB2T,GsBj2DtCE,EAAsBhT,EAAAV,QAAciB,SAAS,kBAC7C0S,EAAwBvL,EAAApI,QAAgBsI,WAAW,kBACnDsL,EAAalT,EAAAV,QAAciB,SAAS,SAEpC6I,EAAyBzJ,EAAAL,QAAMmB,aAAYC,YAAA,yBAC/CC,QAASd,EAAAP,QAAOsB,QAAQsS,EAAY,SAAUrT,EAAAP,QAAOsB,QAAQoS,EAAqB,YAElFvO,gBAH+C,WAI7C,OACE0O,WAAY,MAIhBtS,kBAT+C,WAU7CoS,EAAsBG,UACtBpL,OAAOqL,iBAAiB,SAAUpS,KAAKqS,WACvCrS,KAAKsS,iBAGP/E,qBAf+C,WAgB7CxG,OAAOwL,oBAAoB,SAAUvS,KAAKqS,YAG5CG,eAAgB,GAAAZ,GAAAvT,QAEhBgU,UArB+C,WAqBnC,GAAA5O,GAAAzD,IACVA,MAAKwS,eAAeC,SAAS,iBAAMhP,GAAK6O,mBAG1CA,cAzB+C,WA0B7C,GAAMI,GAAUpB,EAAAjT,QAASsU,YAAY3S,KAAK4S,WAC1C5S,MAAK+D,UAAWmO,WAAYQ,EAAQG,eAGtCC,kBA9B+C,WA+B7C,OAAQ9S,KAAKC,MAAM8S,OAGrBjT,OAlC+C,WAkCtC,GAAA2O,GAAAzO,KACHE,EAAUxB,EAAAL,QAAA8B,cAAAnB,EAAAqB,QAAA,KAETL,MAAK8S,sBACR5S,EACExB,EAAAL,QAAA8B,cAAA,MAAII,UAAU,YAAYgF,OAASqH,aAAc,IAC/ClO,EAAAL,QAAA8B,cAAA,yBACAzB,EAAAL,QAAA8B,cAAA,UAAKH,KAAKC,MAAM8S,MAAMC,WAAa,iBACnCtU,EAAAL,QAAA8B,cAAA,8BACAzB,EAAAL,QAAA8B,cAAA,UAAKH,KAAKC,MAAM8S,MAAME,YAI5B,IAAIC,GAAY,IAChB,IAAIlT,KAAKC,MAAMkS,QAAS,CACtB,GAAMgB,GAAWzB,EAAArT,QAAEsP,OAAO3N,KAAKC,MAAMkS,QAAQiB,OAAQ,SAACC,EAAQ7U,GAAT,MAAmB6U,GAAS7U,GACjF0U,GAAYxU,EAAAL,QAAA8B,cAAA,8BAAsBqR,EAAAnT,QAAYiV,YAAYH,IAE5D,MACEzU,GAAAL,QAAA8B,cAAAtB,EAAAyB,KAAKC,UAAU,WACb7B,EAAAL,QAAA8B,cAAAtB,EAAA2B,KAAKC,GAAI,IACP/B,EAAAL,QAAA8B,cAAA,MAAIoF,OAASqH,aAAc,KAA3B,mBACC1M,EACDxB,EAAAL,QAAA8B,cAAA,WACAzB,EAAAL,QAAA8B,cAAAtB,EAAAyB,IAAA,KACE5B,EAAAL,QAAA8B,cAAAtB,EAAA2B,KAAKC,GAAI,IACP/B,EAAAL,QAAA8B,cAAA,MAAIoT,IAAK,SAACC,GAAgB/E,EAAKmE,WAAaY,GAAcjO,OAASqH,aAAc,KAAjF,oBAAyGsG,GACvGlT,KAAKC,MAAMkS,QAAwBzT,EAAAL,QAAA8B,cAAA2R,EAAAzT,SAAc8T,QAASnS,KAAKC,MAAMkS,QAAQiB,OAC5BK,KAAMzT,KAAKC,MAAMkS,QAAQsB,KACzBpP,GAAIrE,KAAKC,MAAMkS,QAAQ9N,GACvBmB,MAAOxF,KAAKC,MAAMiS,aAH9CxT,EAAAL,QAAA8B,cAAAnB,EAAAqB,QAAA,YtB+5DrCrC,SAAQK,QsBl5DO8J,EtBm5DfpK,EAAOC,QAAUA,QAAiB,SAI5B0V,KACA,SAAU3V,EAAQC,QAASC,GAEjC,YAyCA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAtCvFG,OAAOC,eAAeP,QAAS,cAC7BQ,OAAO,GuB5/DT,IAAAC,GAAAR,EAAA,GvBigEIS,EAAUR,EAAuBO,GuBhgErCwC,EAAAhD,EAAA,GvBogEIiD,EAAchD,EAAuB+C,GuBngEzCjC,EAAAf,EAAA,IACA0V,EAAA1V,EAAA,MvBwgEI2V,EAA2B1V,EAAuByV,GuBvgEtDlC,EAAAxT,EAAA,IvB2gEIyT,EAAWxT,EAAuBuT,GuB1gEtCvO,EAAAjF,EAAA,IvB8gEIkF,EAAWjF,EAAuBgF,GuB7gEtC2Q,EAAA5V,EAAA,KvBihEI6V,EAAgB5V,EAAuB2V,GuBhhE3C7Q,EAAA/E,EAAA,KvBohEIgF,EAAY/E,EAAuB8E,GuBnhEvCoN,EAAAnS,EAAA,IvBuhEIoS,EAAanS,EAAuBkS,GuBrhElC2D,EAAerV,EAAAL,QAAMmB,aAAYC,YAAA,eAErC0B,WACEsS,KAAMvS,EAAA7C,QAAU2V,OAAO3S,WACvBgD,GAAInD,EAAA7C,QAAU2V,OAAO3S,WACrB8Q,QAASjR,EAAA7C,QAAU+C,OAAOC,WAC1BmE,MAAOtE,EAAA7C,QAAU4V,OAAO5S,YAG1BvB,OATqC,WAUnC,IAAKE,KAAK0B,MAAMyQ,QACd,MAAOzT,GAAAL,QAAA8B,cAAAnB,EAAAqB,QAAA,KAGT,IAAM6T,IACJC,MAAO,OACPC,MAAO,QACP/G,SAAU,OACVgH,WACEnN,KAAM,WACNoN,MAAO,QAILC,GAAM,EAAAT,EAAAzV,SAAYqT,EAAArT,QAAEoH,IAAIzF,KAAK0B,MAAMyQ,QAAS,SAAC3T,EAAOkH,GACxD,OAAS8O,GAAI9O,EAAK+O,MAAOjW,MAErBkW,EAAeH,EAAII,UAAU,SAACC,GAClC,OAAO,EAAAzR,EAAA9E,SAAOuW,EAAEJ,IAAI7P,OAAO,gBAEvBkQ,EAAYH,EAAaI,QAAQC,UAAU,SAAAH,GAAA,MAAKA,GAAEH,QAClDO,EAAItD,EAAArT,QAAE4W,QAAQJ,EAAUnG,MAAO,SAAAwG,GAAA,MAAS/R,GAAA9E,QAAO8W,IAAID,EAAMxP,IAAK,cAAc0P,SAC5EC,EAAc3D,EAAArT,QAAEiX,UAAUN,EAAG,SAAAO,GAAA,MAAOA,GAAI/W,OAE9C,OACEE,GAAAL,QAAA8B,cAAAyT,EAAAvV,SAAwB+N,GAAG,oBACHoJ,KAAMH,EACNnB,OAAQA,EACR1O,MAAOxF,KAAK0B,MAAM8D,MAClBiQ,aAAA,EACAC,iBAAkB,SAAAd,GAAA,4BAA2B,GAAAvE,GAAAhS,QAAauW,EAAEe,GAAG5F,SAASM,EAAAhS,QAASsS,QAAQiF,MAAvE,WAClBC,mBAAoB,SAAAjB,GAAA,UAAQ,EAAA3R,EAAA5E,SAAQuW,EAAEkB,GAAGnR,OAAO,UAChDoR,sBAAwBtC,KAAMzT,KAAK0B,MAAM+R,KAAMpP,GAAIrE,KAAK0B,MAAM2C,QvBwiE5FrG,SAAQK,QuBniEO0V,EvBoiEfhW,EAAOC,QAAUA,QAAiB,SAI5BgY,IACA,SAAUjY,EAAQC,QAASC,GAEjC,YAoDA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAjDvFG,OAAOC,eAAeP,QAAS,cAC7BQ,OAAO,GAGT,IAAIyX,GAAwBhY,EAAoB,KAEhDK,QAAOC,eAAeP,QAAS,wBAC7B6H,YAAY,EACZC,IAAK,WACH,MAAO5H,GAAuB+X,GwBhnEzB5X,UxBonET,IAAI6X,GAA+BjY,EAAoB,KAEvDK,QAAOC,eAAeP,QAAS,+BAC7B6H,YAAY,EACZC,IAAK,WACH,MAAO5H,GAAuBgY,GwBxnEzB7X,UxB4nET,IAAI8X,GAAkBlY,EAAoB,KAE1CK,QAAOC,eAAeP,QAAS,kBAC7B6H,YAAY,EACZC,IAAK,WACH,MAAO5H,GAAuBiY,GwBhoEzB9X,UxBooET,IAAI+X,GAA4BnY,EAAoB,KAEpDK,QAAOC,eAAeP,QAAS,4BAC7B6H,YAAY,EACZC,IAAK,WACH,MAAO5H,GAAuBkY,GwBxoEzB/X,UxB4oET,IAAIgY,GAAuBpY,EAAoB,KAE/CK,QAAOC,eAAeP,QAAS,uBAC7B6H,YAAY,EACZC,IAAK,WACH,MAAO5H,GAAuBmY,GwBhpEzBhY","file":"16.746b58959a350aa1ebcf.js","sourcesContent":["webpackJsonp([16],{\n\n/***/ 1027:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reflux = __webpack_require__(1);\n\nvar _reflux2 = _interopRequireDefault(_reflux);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _StoreProvider = __webpack_require__(23);\n\nvar _StoreProvider2 = _interopRequireDefault(_StoreProvider);\n\nvar _common = __webpack_require__(46);\n\nvar _support = __webpack_require__(926);\n\nvar _DocsHelper = __webpack_require__(918);\n\nvar _DocsHelper2 = _interopRequireDefault(_DocsHelper);\n\nvar _indexers = __webpack_require__(934);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar IndexerClusterStore = _StoreProvider2.default.getStore('IndexerCluster');\n\nvar IndexerClusterHealth = _react2.default.createClass({\n  displayName: 'IndexerClusterHealth',\n\n  mixins: [_reflux2.default.connect(IndexerClusterStore)],\n\n  componentDidMount: function componentDidMount() {\n    IndexerClusterStore.update();\n  },\n  render: function render() {\n    var health = this.state.health;\n\n    var content = void 0;\n    if (health) {\n      content = _react2.default.createElement(_indexers.IndexerClusterHealthSummary, { health: health });\n    } else {\n      content = _react2.default.createElement(_common.Spinner, null);\n    }\n\n    return _react2.default.createElement(\n      _reactBootstrap.Row,\n      { className: 'content' },\n      _react2.default.createElement(\n        _reactBootstrap.Col,\n        { md: 12 },\n        _react2.default.createElement(\n          'h2',\n          null,\n          'Elasticsearch cluster'\n        ),\n        _react2.default.createElement(\n          _support.SmallSupportLink,\n          null,\n          'The possible Elasticsearch cluster states and more related information is available in the',\n          ' ',\n          _react2.default.createElement(_support.DocumentationLink, { page: _DocsHelper2.default.PAGES.CONFIGURING_ES, text: 'Graylog documentation' }),\n          '.'\n        ),\n        content\n      )\n    );\n  }\n});\n\nexports.default = IndexerClusterHealth;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1028:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _support = __webpack_require__(926);\n\nvar _DocsHelper = __webpack_require__(918);\n\nvar _DocsHelper2 = _interopRequireDefault(_DocsHelper);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar IndexerClusterHealthSummary = _react2.default.createClass({\n  displayName: 'IndexerClusterHealthSummary',\n\n  propTypes: {\n    health: _propTypes2.default.object.isRequired\n  },\n  _alertClassForHealth: function _alertClassForHealth(health) {\n    switch (health.status) {\n      case 'green':\n        return 'success';\n      case 'yellow':\n        return 'warning';\n      case 'red':\n        return 'danger';\n      default:\n        return 'success';\n    }\n  },\n  _formatTextForHealth: function _formatTextForHealth(health) {\n    var text = 'Elasticsearch cluster is ' + health.status + '.';\n    switch (health.status) {\n      case 'green':\n        return text;\n      case 'yellow':\n      case 'red':\n        return _react2.default.createElement(\n          'strong',\n          null,\n          text\n        );\n      default:\n        return text;\n    }\n  },\n  _iconNameForHealth: function _iconNameForHealth(health) {\n    switch (health.status) {\n      case 'green':\n        return 'check-circle';\n      case 'yellow':\n        return 'warning';\n      case 'red':\n        return 'ambulance';\n      default:\n        return 'check-circle';\n    }\n  },\n  render: function render() {\n    var health = this.props.health;\n\n    return _react2.default.createElement(\n      _reactBootstrap.Alert,\n      { bsStyle: this._alertClassForHealth(health), className: 'es-cluster-status' },\n      _react2.default.createElement('i', { className: 'fa fa-' + this._iconNameForHealth(health) }),\n      ' \\xA0',\n      this._formatTextForHealth(health),\n      ' ',\n      'Shards:',\n      ' ',\n      health.shards.active,\n      ' active,',\n      ' ',\n      health.shards.initializing,\n      ' initializing,',\n      ' ',\n      health.shards.relocating,\n      ' relocating,',\n      ' ',\n      health.shards.unassigned,\n      ' unassigned,',\n      ' ',\n      _react2.default.createElement(_support.DocumentationLink, { page: _DocsHelper2.default.PAGES.CLUSTER_STATUS_EXPLAINED, text: 'What does this mean?' })\n    );\n  }\n});\n\nexports.default = IndexerClusterHealthSummary;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1029:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _common = __webpack_require__(46);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar IndexerFailure = _react2.default.createClass({\n  displayName: 'IndexerFailure',\n\n  propTypes: {\n    failure: _propTypes2.default.object.isRequired\n  },\n  render: function render() {\n    var failure = this.props.failure;\n    return _react2.default.createElement(\n      'tr',\n      null,\n      _react2.default.createElement(\n        'td',\n        { title: failure.timestamp },\n        _react2.default.createElement(_common.Timestamp, { dateTime: failure.timestamp, relative: true })\n      ),\n      _react2.default.createElement(\n        'td',\n        null,\n        failure.index\n      ),\n      _react2.default.createElement(\n        'td',\n        null,\n        failure.letter_id\n      ),\n      _react2.default.createElement(\n        'td',\n        null,\n        failure.message\n      )\n    );\n  }\n});\n\nexports.default = IndexerFailure;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1030:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _reactRouterBootstrap = __webpack_require__(915);\n\nvar _numeral = __webpack_require__(118);\n\nvar _numeral2 = _interopRequireDefault(_numeral);\n\nvar _moment = __webpack_require__(35);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _StoreProvider = __webpack_require__(23);\n\nvar _StoreProvider2 = _interopRequireDefault(_StoreProvider);\n\nvar _DocsHelper = __webpack_require__(918);\n\nvar _DocsHelper2 = _interopRequireDefault(_DocsHelper);\n\nvar _Routes = __webpack_require__(76);\n\nvar _Routes2 = _interopRequireDefault(_Routes);\n\nvar _common = __webpack_require__(46);\n\nvar _support = __webpack_require__(926);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar IndexerFailuresStore = _StoreProvider2.default.getStore('IndexerFailures');\n\nvar IndexerFailuresComponent = _react2.default.createClass({\n  displayName: 'IndexerFailuresComponent',\n  getInitialState: function getInitialState() {\n    return {};\n  },\n  componentDidMount: function componentDidMount() {\n    var _this = this;\n\n    var since = (0, _moment2.default)().subtract(24, 'hours');\n\n    IndexerFailuresStore.count(since).then(function (response) {\n      _this.setState({ total: response.count });\n    });\n  },\n  _formatFailuresSummary: function _formatFailuresSummary() {\n    return _react2.default.createElement(\n      _reactBootstrap.Alert,\n      { bsStyle: this.state.total === 0 ? 'success' : 'danger' },\n      _react2.default.createElement('i', { className: 'fa fa-' + this._iconForFailureCount(this.state.total) }),\n      ' ',\n      this._formatTextForFailureCount(this.state.total),\n      _react2.default.createElement(\n        _reactRouterBootstrap.LinkContainer,\n        { to: _Routes2.default.SYSTEM.INDICES.FAILURES },\n        _react2.default.createElement(\n          _reactBootstrap.Button,\n          { bsStyle: 'info', bsSize: 'xs', className: 'pull-right' },\n          'Show errors'\n        )\n      )\n    );\n  },\n  _formatTextForFailureCount: function _formatTextForFailureCount(count) {\n    if (count === 0) {\n      return 'No failed indexing attempts in the last 24 hours.';\n    }\n    return _react2.default.createElement(\n      'strong',\n      null,\n      'There were ',\n      (0, _numeral2.default)(count).format('0,0'),\n      ' failed indexing attempts in the last 24 hours.'\n    );\n  },\n  _iconForFailureCount: function _iconForFailureCount(count) {\n    if (count === 0) {\n      return 'check-circle';\n    }\n    return 'ambulance';\n  },\n  render: function render() {\n    var content = void 0;\n    if (this.state.total === undefined) {\n      content = _react2.default.createElement(_common.Spinner, null);\n    } else {\n      content = this._formatFailuresSummary();\n    }\n\n    return _react2.default.createElement(\n      _reactBootstrap.Row,\n      { className: 'content' },\n      _react2.default.createElement(\n        _reactBootstrap.Col,\n        { md: 12 },\n        _react2.default.createElement(\n          'h2',\n          null,\n          'Indexer failures'\n        ),\n        _react2.default.createElement(\n          _support.SmallSupportLink,\n          null,\n          'Every message that was not successfully indexed will be logged as an indexer failure. You can learn more about this feature in the',\n          ' ',\n          _react2.default.createElement(_support.DocumentationLink, { page: _DocsHelper2.default.PAGES.INDEXER_FAILURES, text: 'Graylog documentation' }),\n          '.'\n        ),\n        content\n      )\n    );\n  }\n});\n\nexports.default = IndexerFailuresComponent;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1031:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _indexers = __webpack_require__(934);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar IndexerFailuresList = _react2.default.createClass({\n  displayName: 'IndexerFailuresList',\n\n  propTypes: {\n    failures: _propTypes2.default.arrayOf(_propTypes2.default.object).isRequired\n  },\n  render: function render() {\n    if (this.props.failures.length === 0) {\n      return _react2.default.createElement(\n        _reactBootstrap.Alert,\n        { bsStyle: 'success' },\n        _react2.default.createElement('i', { className: 'fa fa-check-circle' }),\n        ' Hurray! There are not any indexer failures.'\n      );\n    }\n\n    return _react2.default.createElement(\n      'div',\n      { className: 'scrollable-table' },\n      _react2.default.createElement(\n        _reactBootstrap.Table,\n        { className: 'indexer-failures', striped: true, hover: true, condensed: true },\n        _react2.default.createElement(\n          'thead',\n          null,\n          _react2.default.createElement(\n            'tr',\n            null,\n            _react2.default.createElement(\n              'th',\n              { style: { width: 200 } },\n              'Timestamp'\n            ),\n            _react2.default.createElement(\n              'th',\n              null,\n              'Index'\n            ),\n            _react2.default.createElement(\n              'th',\n              null,\n              'Letter ID'\n            ),\n            _react2.default.createElement(\n              'th',\n              null,\n              'Error message'\n            )\n          )\n        ),\n        _react2.default.createElement(\n          'tbody',\n          null,\n          this.props.failures.map(function (failure) {\n            return _react2.default.createElement(_indexers.IndexerFailure, { key: 'indexer-failure-' + failure.letter_id, failure: failure });\n          })\n        )\n      )\n    );\n  }\n});\n\nexports.default = IndexerFailuresList;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1144:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _SystemJob = __webpack_require__(1439);\n\nObject.defineProperty(exports, 'SystemJob', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_SystemJob).default;\n  }\n});\n\nvar _SystemJobsComponent = __webpack_require__(1440);\n\nObject.defineProperty(exports, 'SystemJobsComponent', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_SystemJobsComponent).default;\n  }\n});\n\nvar _SystemJobsList = __webpack_require__(1441);\n\nObject.defineProperty(exports, 'SystemJobsList', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_SystemJobsList).default;\n  }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ 1145:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _SystemMessage = __webpack_require__(1442);\n\nObject.defineProperty(exports, 'SystemMessage', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_SystemMessage).default;\n  }\n});\n\nvar _SystemMessagesComponent = __webpack_require__(1443);\n\nObject.defineProperty(exports, 'SystemMessagesComponent', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_SystemMessagesComponent).default;\n  }\n});\n\nvar _SystemMessagesList = __webpack_require__(1444);\n\nObject.defineProperty(exports, 'SystemMessagesList', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_SystemMessagesList).default;\n  }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ 1186:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _common = __webpack_require__(46);\n\nvar _NotificationsFactory = __webpack_require__(1437);\n\nvar _NotificationsFactory2 = _interopRequireDefault(_NotificationsFactory);\n\nvar _ActionsProvider = __webpack_require__(8);\n\nvar _ActionsProvider2 = _interopRequireDefault(_ActionsProvider);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar NotificationsActions = _ActionsProvider2.default.getActions('Notifications');\n\nvar Notification = _react2.default.createClass({\n  displayName: 'Notification',\n\n  propTypes: {\n    notification: _propTypes2.default.object.isRequired\n  },\n  _onClose: function _onClose() {\n    if (window.confirm('Really delete this notification?')) {\n      NotificationsActions.delete(this.props.notification.type);\n    }\n  },\n  render: function render() {\n    var notification = this.props.notification;\n    var notificationView = _NotificationsFactory2.default.getForNotification(notification);\n    return _react2.default.createElement(\n      _reactBootstrap.Alert,\n      { bsStyle: 'danger', className: 'notification' },\n      _react2.default.createElement(\n        _reactBootstrap.Button,\n        { className: 'close delete-notification', onClick: this._onClose },\n        '\\xD7'\n      ),\n      _react2.default.createElement(\n        'h3',\n        { className: 'notification-head' },\n        _react2.default.createElement('i', { className: 'fa fa-bolt' }),\n        ' ',\n        notificationView.title,\n        ' ',\n        _react2.default.createElement(\n          'span',\n          { className: 'notification-timestamp' },\n          '(triggered ',\n          _react2.default.createElement(_common.Timestamp, { dateTime: notification.timestamp, relative: true }),\n          ')'\n        )\n      ),\n      _react2.default.createElement(\n        'div',\n        { className: 'notification-description' },\n        notificationView.description\n      )\n    );\n  }\n});\n\nexports.default = Notification;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1435:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _common = __webpack_require__(46);\n\nvar _indexers = __webpack_require__(934);\n\nvar _notifications = __webpack_require__(1436);\n\nvar _systemjobs = __webpack_require__(1144);\n\nvar _systemmessages = __webpack_require__(1145);\n\nvar _times = __webpack_require__(1445);\n\nvar _cluster = __webpack_require__(1447);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SystemOverviewPage = _react2.default.createClass({\n  displayName: 'SystemOverviewPage',\n  render: function render() {\n    return _react2.default.createElement(\n      _common.DocumentTitle,\n      { title: 'System overview' },\n      _react2.default.createElement(\n        'span',\n        null,\n        _react2.default.createElement(\n          _common.IfPermitted,\n          { permissions: 'notifications:read' },\n          _react2.default.createElement(_notifications.NotificationsList, null)\n        ),\n        _react2.default.createElement(\n          _common.IfPermitted,\n          { permissions: 'systemjobs:read' },\n          _react2.default.createElement(_systemjobs.SystemJobsComponent, null)\n        ),\n        _react2.default.createElement(_cluster.GraylogClusterOverview, null),\n        _react2.default.createElement(\n          _common.IfPermitted,\n          { permissions: 'indexercluster:read' },\n          _react2.default.createElement(_indexers.IndexerClusterHealth, null)\n        ),\n        _react2.default.createElement(\n          _common.IfPermitted,\n          { permissions: 'indices:failures' },\n          _react2.default.createElement(_indexers.IndexerFailuresComponent, null)\n        ),\n        _react2.default.createElement(_times.TimesList, null),\n        _react2.default.createElement(\n          _common.IfPermitted,\n          { permissions: 'systemmessages:read' },\n          _react2.default.createElement(_systemmessages.SystemMessagesComponent, null)\n        )\n      )\n    );\n  }\n});\n\nexports.default = SystemOverviewPage;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1436:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _Notification = __webpack_require__(1186);\n\nObject.defineProperty(exports, 'Notification', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_Notification).default;\n  }\n});\n\nvar _NotificationsList = __webpack_require__(1438);\n\nObject.defineProperty(exports, 'NotificationsList', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_NotificationsList).default;\n  }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ 1437:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRouter = __webpack_require__(277);\n\nvar _Routes = __webpack_require__(76);\n\nvar _Routes2 = _interopRequireDefault(_Routes);\n\nvar _DocsHelper = __webpack_require__(918);\n\nvar _DocsHelper2 = _interopRequireDefault(_DocsHelper);\n\nvar _DocumentationLink = __webpack_require__(922);\n\nvar _DocumentationLink2 = _interopRequireDefault(_DocumentationLink);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar NotificationsFactory = function () {\n  function NotificationsFactory() {\n    _classCallCheck(this, NotificationsFactory);\n  }\n\n  _createClass(NotificationsFactory, null, [{\n    key: 'getForNotification',\n    value: function getForNotification(notification) {\n      switch (notification.type) {\n        case 'check_server_clocks':\n          return {\n            title: 'Check the system clocks of your Graylog server nodes.',\n            description: _react2.default.createElement(\n              'span',\n              null,\n              'A Graylog server node detected a condition where it was deemed to be inactive immediately after being active. This usually indicates either a significant jump in system time, e.g. via NTP, or that a second Graylog server node is active on a system that has a different system time. Please make sure that the clocks of graylog2 systems are synchronized.'\n            )\n          };\n        case 'deflector_exists_as_index':\n          return {\n            title: 'Deflector exists as an index and is not an alias.',\n            description: _react2.default.createElement(\n              'span',\n              null,\n              'The deflector is meant to be an alias but exists as an index. Multiple failures of infrastructure can lead to this. Your messages are still indexed but searches and all maintenance tasks will fail or produce incorrect results. It is strongly recommend that you act as soon as possible.'\n            )\n          };\n        case 'email_transport_configuration_invalid':\n          return {\n            title: 'Email Transport Configuration is missing or invalid!',\n            description: _react2.default.createElement(\n              'span',\n              null,\n              'The configuration for the email transport subsystem has shown to be missing or invalid. Please check the related section of your Graylog server configuration file. This is the detailed error message: ',\n              notification.details.exception\n            )\n          };\n        case 'email_transport_failed':\n          return {\n            title: 'An error occurred while trying to send an email!',\n            description: _react2.default.createElement(\n              'span',\n              null,\n              'The Graylog server encountered an error while trying to send an email. This is the detailed error message: ',\n              notification.details.exception\n            )\n          };\n        case 'es_cluster_red':\n          return {\n            title: 'Elasticsearch cluster unhealthy (RED)',\n            description: _react2.default.createElement(\n              'span',\n              null,\n              'The Elasticsearch cluster state is RED which means shards are unassigned. This usually indicates a crashed and corrupt cluster and needs to be investigated. Graylog will write into the local disk journal. Read how to fix this in ',\n              ' ',\n              _react2.default.createElement(_DocumentationLink2.default, { page: _DocsHelper2.default.PAGES.ES_CLUSTER_STATUS_RED, text: 'the Elasticsearch setup documentation.' })\n            )\n          };\n        case 'es_open_files':\n          return {\n            title: 'Elasticsearch nodes with too low open file limit',\n            description: _react2.default.createElement(\n              'span',\n              null,\n              'There are Elasticsearch nodes in the cluster that have a too low open file limit (current limit:',\n              ' ',\n              _react2.default.createElement(\n                'em',\n                null,\n                notification.details.max_file_descriptors\n              ),\n              ' on ',\n              _react2.default.createElement(\n                'em',\n                null,\n                notification.details.hostname\n              ),\n              '; should be at least 64000) This will be causing problems that can be hard to diagnose. Read how to raise the maximum number of open files in ',\n              ' ',\n              _react2.default.createElement(_DocumentationLink2.default, { page: _DocsHelper2.default.PAGES.ES_OPEN_FILE_LIMITS, text: 'the Elasticsearch setup documentation' }),\n              '.'\n            )\n          };\n        case 'es_unavailable':\n          return {\n            title: 'Elasticsearch cluster unavailable',\n            description: _react2.default.createElement(\n              'span',\n              null,\n              'Graylog could not successfully connect to the Elasticsearch cluster. If you\\'re using multicast, check that it is working in your network and that Elasticsearch is accessible. Also check that the cluster name setting is correct. Read how to fix this in ',\n              ' ',\n              _react2.default.createElement(_DocumentationLink2.default, { page: _DocsHelper2.default.PAGES.ES_CLUSTER_UNAVAILABLE,\n                text: 'the Elasticsearch setup documentation.' })\n            )\n          };\n        case 'gc_too_long':\n          return {\n            title: 'Nodes with too long GC pauses',\n            description: _react2.default.createElement(\n              'span',\n              null,\n              'There are Graylog nodes on which the garbage collector runs too long. Garbage collection runs should be as short as possible. Please check whether those nodes are healthy. (Node: ',\n              _react2.default.createElement(\n                'em',\n                null,\n                notification.node_id\n              ),\n              ', GC duration: ',\n              _react2.default.createElement(\n                'em',\n                null,\n                notification.details.gc_duration_ms,\n                ' ms'\n              ),\n              ', GC threshold: ',\n              _react2.default.createElement(\n                'em',\n                null,\n                notification.details.gc_threshold_ms,\n                ' ms'\n              ),\n              ')'\n            )\n          };\n        case 'generic':\n          return {\n            title: notification.details.title,\n            description: notification.details.description\n          };\n        case 'index_ranges_recalculation':\n          return {\n            title: 'Index ranges recalculation required',\n            description: _react2.default.createElement(\n              'span',\n              null,\n              'The index ranges are out of sync. Please go to System/Indices and trigger a index range recalculation from the Maintenance menu of ',\n              notification.details.index_sets ? 'the following index sets: ' + notification.details.index_sets : 'all index sets'\n            )\n          };\n        case 'input_failed_to_start':\n          return {\n            title: 'An input has failed to start',\n            description: _react2.default.createElement(\n              'span',\n              null,\n              'Input ',\n              notification.details.input_id,\n              ' has failed to start on node ',\n              notification.node_id,\n              ' for this reason: \\xBB',\n              notification.details.reason,\n              '\\xAB. This means that you are unable to receive any messages from this input. This is mostly an indication for a misconfiguration or an error. You can click ',\n              ' ',\n              _react2.default.createElement(\n                _reactRouter.Link,\n                { to: _Routes2.default.SYSTEM.INPUTS },\n                'here'\n              ),\n              ' to solve this.'\n            )\n          };\n        case 'journal_uncommitted_messages_deleted':\n          return {\n            title: 'Uncommited messages deleted from journal',\n            description: _react2.default.createElement(\n              'span',\n              null,\n              'Some messages were deleted from the Graylog journal before they could be written to Elasticsearch. Please verify that your Elasticsearch cluster is healthy and fast enough. You may also want to review your Graylog journal settings and set a higher limit. (Node: ',\n              _react2.default.createElement(\n                'em',\n                null,\n                notification.node_id\n              ),\n              ')'\n            )\n          };\n        case 'journal_utilization_too_high':\n          return {\n            title: 'Journal utilization is too high',\n            description: _react2.default.createElement(\n              'span',\n              null,\n              'Journal utilization is too high and may go over the limit soon. Please verify that your Elasticsearch cluster is healthy and fast enough. You may also want to review your Graylog journal settings and set a higher limit. (Node: ',\n              _react2.default.createElement(\n                'em',\n                null,\n                notification.node_id\n              ),\n              ')'\n            )\n          };\n        case 'multi_master':\n          return {\n            title: 'Multiple Graylog server masters in the cluster',\n            description: _react2.default.createElement(\n              'span',\n              null,\n              'There were multiple Graylog server instances configured as master in your Graylog cluster. The cluster handles this automatically by launching new nodes as slaves if there already is a master but you should still fix this. Check the graylog.conf of every node and make sure that only one instance has is_master set to true. Close this notification if you think you resolved the problem. It will pop back up if you start a second master node again.'\n            )\n          };\n        case 'no_input_running':\n          return {\n            title: 'There is a node without any running inputs.',\n            description: _react2.default.createElement(\n              'span',\n              null,\n              'There is a node without any running inputs. This means that you are not receiving any messages from this node at this point in time. This is most probably an indication of an error or misconfiguration. You can click ',\n              _react2.default.createElement(\n                _reactRouter.Link,\n                { to: _Routes2.default.SYSTEM.INPUTS },\n                'here'\n              ),\n              ' to solve this.'\n            )\n          };\n        case 'no_master':\n          return {\n            title: 'There was no master Graylog server node detected in the cluster.',\n            description: _react2.default.createElement(\n              'span',\n              null,\n              'Certain operations of Graylog server require the presence of a master node, but no such master was started. Please ensure that one of your Graylog server nodes contains the setting ',\n              _react2.default.createElement(\n                'code',\n                null,\n                'is_master = true'\n              ),\n              ' in its configuration and that it is running. Until this is resolved index cycling will not be able to run, which means that the index retention mechanism is also not running, leading to increased index sizes. Certain maintenance functions as well as a variety of web interface pages (e.g. Dashboards) are unavailable.'\n            )\n          };\n        case 'outdated_version':\n          return {\n            title: 'You are running an outdated Graylog version.',\n            description: _react2.default.createElement(\n              'span',\n              null,\n              'The most recent stable Graylog version is ',\n              _react2.default.createElement(\n                'em',\n                null,\n                notification.details.current_version\n              ),\n              '. Get it from ',\n              _react2.default.createElement(\n                'a',\n                { href: 'https://www.graylog.org/', target: '_blank' },\n                'https://www.graylog.org/'\n              ),\n              '.'\n            )\n          };\n        case 'output_disabled':\n          return {\n            title: 'Output disabled',\n            description: _react2.default.createElement(\n              'span',\n              null,\n              'The output with the id ',\n              notification.details.outputId,\n              ' in stream \"',\n              notification.details.streamTitle,\n              '\" (id: ',\n              notification.details.streamId,\n              ') has been disabled for ',\n              notification.details.faultPenaltySeconds,\n              'seconds because there were ',\n              notification.details.faultCount,\n              ' failures. (Node: ',\n              _react2.default.createElement(\n                'em',\n                null,\n                notification.node_id\n              ),\n              ', Fault threshold: ',\n              _react2.default.createElement(\n                'em',\n                null,\n                notification.details.faultCountThreshold\n              ),\n              ')'\n            )\n          };\n        case 'stream_processing_disabled':\n          return {\n            title: 'Processing of a stream has been disabled due to excessive processing time.',\n            description: _react2.default.createElement(\n              'span',\n              null,\n              'The processing of stream ',\n              _react2.default.createElement(\n                'em',\n                null,\n                notification.details.stream_id\n              ),\n              ' has taken too long for',\n              ' ',\n              notification.details.fault_count,\n              ' times. To protect the stability of message processing, this stream has been disabled. Please correct the stream rules and reenable the stream. Check ',\n              _react2.default.createElement(_DocumentationLink2.default, { page: _DocsHelper2.default.PAGES.STREAM_PROCESSING_RUNTIME_LIMITS, text: 'the documentation' }),\n              ' ',\n              'for more details.'\n            )\n          };\n        default:\n          return { title: 'unknown (' + notification.type + ')', description: 'unknown' };\n      }\n    }\n  }]);\n\n  return NotificationsFactory;\n}();\n\nexports.default = NotificationsFactory;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1438:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reflux = __webpack_require__(1);\n\nvar _reflux2 = _interopRequireDefault(_reflux);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _StoreProvider = __webpack_require__(23);\n\nvar _StoreProvider2 = _interopRequireDefault(_StoreProvider);\n\nvar _common = __webpack_require__(46);\n\nvar _Notification = __webpack_require__(1186);\n\nvar _Notification2 = _interopRequireDefault(_Notification);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar NotificationsStore = _StoreProvider2.default.getStore('Notifications');\n\nvar NotificationsList = _react2.default.createClass({\n  displayName: 'NotificationsList',\n\n  mixins: [_reflux2.default.connect(NotificationsStore)],\n  _formatNotificationCount: function _formatNotificationCount(count) {\n    if (count === 0) {\n      return 'is no notification';\n    }\n    if (count === 1) {\n      return 'is one notification';\n    }\n\n    return 'are ' + count + ' notifications';\n  },\n  render: function render() {\n    if (!this.state.notifications) {\n      return _react2.default.createElement(_common.Spinner, null);\n    }\n\n    var count = this.state.total;\n\n    var title = void 0;\n    var content = void 0;\n\n    if (count === 0) {\n      title = 'No notifications';\n      content = _react2.default.createElement(\n        _reactBootstrap.Alert,\n        { bsStyle: 'success', className: 'notifications-none' },\n        _react2.default.createElement('i', { className: 'fa fa-check-circle' }),\n        ' ',\n        '\\xA0No notifications'\n      );\n    } else {\n      title = 'There ' + this._formatNotificationCount(count);\n      content = this.state.notifications.map(function (notification) {\n        return _react2.default.createElement(_Notification2.default, { key: notification.type + '-' + notification.timestamp, notification: notification });\n      });\n    }\n\n    return _react2.default.createElement(\n      _reactBootstrap.Row,\n      { className: 'content' },\n      _react2.default.createElement(\n        _reactBootstrap.Col,\n        { md: 12 },\n        _react2.default.createElement(\n          'h2',\n          null,\n          title\n        ),\n        _react2.default.createElement(\n          'p',\n          { className: 'description' },\n          'Notifications are triggered by Graylog and indicate a situation you should act upon. Many notification types will also provide a link to the Graylog documentation if you need more information or assistance.'\n        ),\n        content\n      )\n    );\n  }\n});\n\nexports.default = NotificationsList;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1439:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _common = __webpack_require__(46);\n\nvar _ActionsProvider = __webpack_require__(8);\n\nvar _ActionsProvider2 = _interopRequireDefault(_ActionsProvider);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SystemJobsActions = _ActionsProvider2.default.getActions('SystemJobs');\n\nvar SystemJob = _react2.default.createClass({\n  displayName: 'SystemJob',\n  _onCancel: function _onCancel(job) {\n    return function (e) {\n      e.preventDefault();\n      if (window.confirm('Are you sure you want to cancel system job \"' + job.info + '\"?')) {\n        SystemJobsActions.cancelJob(job.id);\n      }\n    };\n  },\n  render: function render() {\n    var job = this.props.job;\n    var progress = job.percent_complete < 100 ? _react2.default.createElement(_reactBootstrap.ProgressBar, { bsStyle: 'info', active: true, now: job.percent_complete }) : _react2.default.createElement(\n      'span',\n      { className: 'label label-success finished' },\n      'Finished!'\n    );\n    var cancel = job.is_cancelable ? _react2.default.createElement(\n      'button',\n      { type: 'button', className: 'btn btn-primary btn-xs pull-right', onClick: this._onCancel(job) },\n      'Cancel Job'\n    ) : null;\n\n    return _react2.default.createElement(\n      'div',\n      null,\n      _react2.default.createElement(\n        'div',\n        { style: { lineHeight: 1.5, marginBottom: 5 } },\n        _react2.default.createElement('i', { className: 'fa fa-cog' }),\n        ' ',\n        _react2.default.createElement(\n          'span',\n          { 'data-toggle': 'tooltip', title: job.name },\n          job.info\n        ),\n        ' ',\n        '- Started on ',\n        _react2.default.createElement(_common.LinkToNode, { nodeId: job.node_id }),\n        ' ',\n        _react2.default.createElement(_common.Timestamp, { dateTime: job.started_at, relative: true }),\n        ' ',\n        cancel\n      ),\n      progress\n    );\n  }\n});\n\nexports.default = SystemJob;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1440:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reflux = __webpack_require__(1);\n\nvar _reflux2 = _interopRequireDefault(_reflux);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _StoreProvider = __webpack_require__(23);\n\nvar _StoreProvider2 = _interopRequireDefault(_StoreProvider);\n\nvar _ActionsProvider = __webpack_require__(8);\n\nvar _ActionsProvider2 = _interopRequireDefault(_ActionsProvider);\n\nvar _common = __webpack_require__(46);\n\nvar _systemjobs = __webpack_require__(1144);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SystemJobsStore = _StoreProvider2.default.getStore('SystemJobs');\n\nvar SystemJobsActions = _ActionsProvider2.default.getActions('SystemJobs');\n\nvar SystemJobsComponent = _react2.default.createClass({\n  displayName: 'SystemJobsComponent',\n\n  mixins: [_reflux2.default.connect(SystemJobsStore)],\n  componentDidMount: function componentDidMount() {\n    SystemJobsActions.list();\n\n    this.interval = setInterval(SystemJobsActions.list, 2000);\n  },\n  componentWillUnmount: function componentWillUnmount() {\n    clearInterval(this.interval);\n  },\n  render: function render() {\n    var _this = this;\n\n    if (!this.state.jobs) {\n      return _react2.default.createElement(_common.Spinner, null);\n    }\n    var jobs = Object.keys(this.state.jobs).map(function (nodeId) {\n      return _this.state.jobs[nodeId] ? _this.state.jobs[nodeId].jobs : [];\n    }).reduce(function (a, b) {\n      return a.concat(b);\n    });\n    return _react2.default.createElement(\n      _reactBootstrap.Row,\n      { className: 'content' },\n      _react2.default.createElement(\n        _reactBootstrap.Col,\n        { md: 12 },\n        _react2.default.createElement(\n          'h2',\n          null,\n          'System jobs'\n        ),\n        _react2.default.createElement(\n          'p',\n          { className: 'description' },\n          'A system job is a long-running task a graylog-server node executes for maintenance reasons. Some jobs provide progress information or can be stopped.'\n        ),\n        _react2.default.createElement(_systemjobs.SystemJobsList, { jobs: jobs })\n      )\n    );\n  }\n});\n\nexports.default = SystemJobsComponent;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1441:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _systemjobs = __webpack_require__(1144);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SystemJobsList = _react2.default.createClass({\n  displayName: 'SystemJobsList',\n\n  propTypes: {\n    jobs: _propTypes2.default.arrayOf(_propTypes2.default.object).isRequired\n  },\n  _formatSystemJob: function _formatSystemJob(job) {\n    return _react2.default.createElement(\n      'div',\n      { className: 'systemjob systemjob-progress systemjob-active', key: 'job-' + job.id },\n      _react2.default.createElement(_systemjobs.SystemJob, { job: job })\n    );\n  },\n  render: function render() {\n    var jobs = this.props.jobs.map(this._formatSystemJob);\n    if (jobs.length === 0) {\n      return _react2.default.createElement(\n        _reactBootstrap.Alert,\n        { bsStyle: 'info', className: 'systemjobs-none' },\n        _react2.default.createElement('i', { className: 'fa fa-info-circle' }),\n        ' ',\n        '\\xA0No active system jobs.'\n      );\n    }\n    return _react2.default.createElement(\n      'span',\n      null,\n      jobs\n    );\n  }\n});\n\nexports.default = SystemJobsList;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1442:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _moment = __webpack_require__(35);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _common = __webpack_require__(46);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SystemMessage = _react2.default.createClass({\n  displayName: 'SystemMessage',\n\n  propTypes: {\n    message: _propTypes2.default.object.isRequired\n  },\n  render: function render() {\n    var message = this.props.message;\n    return _react2.default.createElement(\n      'tr',\n      null,\n      _react2.default.createElement(\n        'td',\n        null,\n        (0, _moment2.default)(message.timestamp).format()\n      ),\n      _react2.default.createElement(\n        'td',\n        null,\n        _react2.default.createElement(_common.LinkToNode, { nodeId: message.node_id })\n      ),\n      _react2.default.createElement(\n        'td',\n        null,\n        message.content\n      )\n    );\n  }\n});\n\nexports.default = SystemMessage;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1443:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _StoreProvider = __webpack_require__(23);\n\nvar _StoreProvider2 = _interopRequireDefault(_StoreProvider);\n\nvar _common = __webpack_require__(46);\n\nvar _systemmessages = __webpack_require__(1145);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SystemMessagesStore = _StoreProvider2.default.getStore('SystemMessages');\n\nvar SystemMessagesComponent = _react2.default.createClass({\n  displayName: 'SystemMessagesComponent',\n  getInitialState: function getInitialState() {\n    return { currentPage: 1 };\n  },\n  componentDidMount: function componentDidMount() {\n    var _this = this;\n\n    this.loadMessages(this.state.currentPage);\n    this.interval = setInterval(function () {\n      _this.loadMessages(_this.state.currentPage);\n    }, 1000);\n  },\n  componentWillUnmount: function componentWillUnmount() {\n    clearInterval(this.interval);\n  },\n\n  PER_PAGE: 30,\n  loadMessages: function loadMessages(page) {\n    var _this2 = this;\n\n    SystemMessagesStore.all(page).then(function (response) {\n      _this2.setState(response);\n    });\n  },\n  _onSelected: function _onSelected(selectedPage) {\n    this.setState({ currentPage: selectedPage });\n    this.loadMessages(selectedPage);\n  },\n  render: function render() {\n    var content = void 0;\n    if (this.state.total && this.state.messages) {\n      var numberPages = Math.ceil(this.state.total / this.PER_PAGE);\n      var paginatorSize = 10;\n\n      content = _react2.default.createElement(\n        'div',\n        null,\n        _react2.default.createElement(_systemmessages.SystemMessagesList, { messages: this.state.messages }),\n        _react2.default.createElement(\n          'nav',\n          { style: { textAlign: 'center' } },\n          _react2.default.createElement(_reactBootstrap.Pagination, { bsSize: 'small', items: numberPages,\n            activePage: this.state.currentPage,\n            onSelect: this._onSelected,\n            prev: true, next: true, first: true, last: true,\n            maxButtons: Math.min(paginatorSize, numberPages) })\n        )\n      );\n    } else {\n      content = _react2.default.createElement(_common.Spinner, null);\n    }\n\n    return _react2.default.createElement(\n      _reactBootstrap.Row,\n      { className: 'content' },\n      _react2.default.createElement(\n        _reactBootstrap.Col,\n        { md: 12 },\n        _react2.default.createElement(\n          'h2',\n          null,\n          'System messages'\n        ),\n        _react2.default.createElement(\n          'p',\n          { className: 'description' },\n          'System messages are generated by graylog-server nodes on certain events that may be interesting for the Graylog administrators. You don\\'t need to actively act upon any message in here because notifications will be raised for any events that required action.'\n        ),\n        content\n      )\n    );\n  }\n});\n\nexports.default = SystemMessagesComponent;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1444:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _systemmessages = __webpack_require__(1145);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SystemMessagesList = _react2.default.createClass({\n  displayName: 'SystemMessagesList',\n\n  propTypes: {\n    messages: _propTypes2.default.arrayOf(_propTypes2.default.object).isRequired\n  },\n  render: function render() {\n    return _react2.default.createElement(\n      _reactBootstrap.Table,\n      { className: 'system-messages', striped: true, hover: true, condensed: true },\n      _react2.default.createElement(\n        'thead',\n        null,\n        _react2.default.createElement(\n          'tr',\n          null,\n          _react2.default.createElement(\n            'th',\n            { style: { width: '200px' } },\n            'Timestamp'\n          ),\n          _react2.default.createElement(\n            'th',\n            null,\n            'Node'\n          ),\n          _react2.default.createElement(\n            'th',\n            null,\n            'Message'\n          )\n        )\n      ),\n      _react2.default.createElement(\n        'tbody',\n        null,\n        this.props.messages.map(function (message) {\n          return _react2.default.createElement(_systemmessages.SystemMessage, { key: 'message-' + Math.random().toString(36).substring(7), message: message });\n        })\n      )\n    );\n  }\n});\n\nexports.default = SystemMessagesList;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1445:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _TimesList = __webpack_require__(1446);\n\nObject.defineProperty(exports, 'TimesList', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_TimesList).default;\n  }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ 1446:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reflux = __webpack_require__(1);\n\nvar _reflux2 = _interopRequireDefault(_reflux);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _moment = __webpack_require__(35);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _DateTime = __webpack_require__(50);\n\nvar _DateTime2 = _interopRequireDefault(_DateTime);\n\nvar _StoreProvider = __webpack_require__(23);\n\nvar _StoreProvider2 = _interopRequireDefault(_StoreProvider);\n\nvar _common = __webpack_require__(46);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar CurrentUserStore = _StoreProvider2.default.getStore('CurrentUser');\nvar SystemStore = _StoreProvider2.default.getStore('System');\n\nvar TimesList = _react2.default.createClass({\n  displayName: 'TimesList',\n\n  mixins: [_reflux2.default.connect(CurrentUserStore), _reflux2.default.connect(SystemStore)],\n  getInitialState: function getInitialState() {\n    return { time: (0, _moment2.default)() };\n  },\n  componentDidMount: function componentDidMount() {\n    var _this = this;\n\n    this.interval = setInterval(function () {\n      return _this.setState(_this.getInitialState());\n    }, 1000);\n  },\n  componentWillUnmount: function componentWillUnmount() {\n    clearInterval(this.interval);\n  },\n  render: function render() {\n    if (!this.state.system) {\n      return _react2.default.createElement(_common.Spinner, null);\n    }\n    var time = this.state.time;\n    var timeFormat = _DateTime2.default.Formats.DATETIME_TZ;\n    var currentUser = this.state.currentUser;\n    var serverTimezone = this.state.system.timezone;\n    return _react2.default.createElement(\n      _reactBootstrap.Row,\n      { className: 'content' },\n      _react2.default.createElement(\n        _reactBootstrap.Col,\n        { md: 12 },\n        _react2.default.createElement(\n          'h2',\n          null,\n          'Time configuration'\n        ),\n        _react2.default.createElement(\n          'p',\n          { className: 'description' },\n          'Dealing with timezones can be confusing. Here you can see the timezone applied to different components of your system. You can check timezone settings of specific graylog-server nodes on their respective detail page.'\n        ),\n        _react2.default.createElement(\n          'dl',\n          { className: 'system-dl' },\n          _react2.default.createElement(\n            'dt',\n            null,\n            'User ',\n            _react2.default.createElement(\n              'em',\n              null,\n              currentUser.username\n            ),\n            ':'\n          ),\n          _react2.default.createElement(\n            'dd',\n            null,\n            _react2.default.createElement(_common.Timestamp, { dateTime: time, format: timeFormat })\n          ),\n          _react2.default.createElement(\n            'dt',\n            null,\n            'Your web browser:'\n          ),\n          _react2.default.createElement(\n            'dd',\n            null,\n            _react2.default.createElement(_common.Timestamp, { dateTime: time, format: timeFormat, tz: 'browser' })\n          ),\n          _react2.default.createElement(\n            'dt',\n            null,\n            'Graylog server:'\n          ),\n          _react2.default.createElement(\n            'dd',\n            null,\n            _react2.default.createElement(_common.Timestamp, { dateTime: time, format: timeFormat, tz: serverTimezone })\n          )\n        )\n      )\n    );\n  }\n});\n\nexports.default = TimesList;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1447:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _GraylogClusterOverview = __webpack_require__(1448);\n\nObject.defineProperty(exports, 'GraylogClusterOverview', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_GraylogClusterOverview).default;\n  }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ 1448:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(39);\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _reflux = __webpack_require__(1);\n\nvar _reflux2 = _interopRequireDefault(_reflux);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _common = __webpack_require__(46);\n\nvar _StoreProvider = __webpack_require__(23);\n\nvar _StoreProvider2 = _interopRequireDefault(_StoreProvider);\n\nvar _ActionsProvider = __webpack_require__(8);\n\nvar _ActionsProvider2 = _interopRequireDefault(_ActionsProvider);\n\nvar _NumberUtils = __webpack_require__(120);\n\nvar _NumberUtils2 = _interopRequireDefault(_NumberUtils);\n\nvar _lodash = __webpack_require__(69);\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _EventHandlersThrottler = __webpack_require__(274);\n\nvar _EventHandlersThrottler2 = _interopRequireDefault(_EventHandlersThrottler);\n\nvar _TrafficGraph = __webpack_require__(1449);\n\nvar _TrafficGraph2 = _interopRequireDefault(_TrafficGraph);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ClusterTrafficStore = _StoreProvider2.default.getStore('ClusterTraffic'); /* eslint-disable react/no-find-dom-node */\n/* global window */\n\nvar ClusterTrafficActions = _ActionsProvider2.default.getActions('ClusterTraffic');\nvar NodesStore = _StoreProvider2.default.getStore('Nodes');\n\nvar GraylogClusterOverview = _react2.default.createClass({\n  displayName: 'GraylogClusterOverview',\n\n  mixins: [_reflux2.default.connect(NodesStore, 'nodes'), _reflux2.default.connect(ClusterTrafficStore, 'traffic')],\n\n  getInitialState: function getInitialState() {\n    return {\n      graphWidth: 600\n    };\n  },\n  componentDidMount: function componentDidMount() {\n    ClusterTrafficActions.traffic();\n    window.addEventListener('resize', this._onResize);\n    this._resizeGraphs();\n  },\n  componentWillUnmount: function componentWillUnmount() {\n    window.removeEventListener('resize', this._onResize);\n  },\n\n\n  eventThrottler: new _EventHandlersThrottler2.default(),\n\n  _onResize: function _onResize() {\n    var _this = this;\n\n    this.eventThrottler.throttle(function () {\n      return _this._resizeGraphs();\n    });\n  },\n  _resizeGraphs: function _resizeGraphs() {\n    var domNode = _reactDom2.default.findDOMNode(this._container);\n    this.setState({ graphWidth: domNode.clientWidth });\n  },\n  _isClusterLoading: function _isClusterLoading() {\n    return !this.state.nodes;\n  },\n  render: function render() {\n    var _this2 = this;\n\n    var content = _react2.default.createElement(_common.Spinner, null);\n\n    if (!this._isClusterLoading()) {\n      content = _react2.default.createElement(\n        'dl',\n        { className: 'system-dl', style: { marginBottom: 0 } },\n        _react2.default.createElement(\n          'dt',\n          null,\n          'Cluster ID:'\n        ),\n        _react2.default.createElement(\n          'dd',\n          null,\n          this.state.nodes.clusterId || 'Not available'\n        ),\n        _react2.default.createElement(\n          'dt',\n          null,\n          'Number of nodes:'\n        ),\n        _react2.default.createElement(\n          'dd',\n          null,\n          this.state.nodes.nodeCount\n        )\n      );\n    }\n    var sumOutput = null;\n    if (this.state.traffic) {\n      var bytesOut = _lodash2.default.reduce(this.state.traffic.output, function (result, value) {\n        return result + value;\n      });\n      sumOutput = _react2.default.createElement(\n        'small',\n        null,\n        'Last 30 days: ',\n        _NumberUtils2.default.formatBytes(bytesOut)\n      );\n    }\n    return _react2.default.createElement(\n      _reactBootstrap.Row,\n      { className: 'content' },\n      _react2.default.createElement(\n        _reactBootstrap.Col,\n        { md: 12 },\n        _react2.default.createElement(\n          'h2',\n          { style: { marginBottom: 10 } },\n          'Graylog cluster'\n        ),\n        content,\n        _react2.default.createElement('hr', null),\n        _react2.default.createElement(\n          _reactBootstrap.Row,\n          null,\n          _react2.default.createElement(\n            _reactBootstrap.Col,\n            { md: 12 },\n            _react2.default.createElement(\n              'h3',\n              { ref: function ref(container) {\n                  _this2._container = container;\n                }, style: { marginBottom: 10 } },\n              'Outgoing traffic ',\n              sumOutput\n            ),\n            !this.state.traffic ? _react2.default.createElement(_common.Spinner, null) : _react2.default.createElement(_TrafficGraph2.default, { traffic: this.state.traffic.output,\n              from: this.state.traffic.from,\n              to: this.state.traffic.to,\n              width: this.state.graphWidth })\n          )\n        )\n      )\n    );\n  }\n});\n\nexports.default = GraylogClusterOverview;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1449:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _common = __webpack_require__(46);\n\nvar _HistogramVisualization = __webpack_require__(1164);\n\nvar _HistogramVisualization2 = _interopRequireDefault(_HistogramVisualization);\n\nvar _lodash = __webpack_require__(69);\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _moment = __webpack_require__(35);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _crossfilter = __webpack_require__(271);\n\nvar _crossfilter2 = _interopRequireDefault(_crossfilter);\n\nvar _numeral = __webpack_require__(118);\n\nvar _numeral2 = _interopRequireDefault(_numeral);\n\nvar _DateTime = __webpack_require__(50);\n\nvar _DateTime2 = _interopRequireDefault(_DateTime);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar TrafficGraph = _react2.default.createClass({\n  displayName: 'TrafficGraph',\n\n\n  propTypes: {\n    from: _propTypes2.default.string.isRequired,\n    to: _propTypes2.default.string.isRequired,\n    traffic: _propTypes2.default.object.isRequired, // traffic is: {\"2017-11-15T15:00:00.000Z\": 68287229, ...}\n    width: _propTypes2.default.number.isRequired\n  },\n\n  render: function render() {\n    if (!this.props.traffic) {\n      return _react2.default.createElement(_common.Spinner, null);\n    }\n\n    var config = {\n      xAxis: 'Time',\n      yAxis: 'Bytes',\n      interval: 'days',\n      timerange: {\n        type: 'relative',\n        range: 60 * 24 * 30 // 30 days, value is irrelevant but it must not be 0\n      }\n    };\n\n    var ndx = (0, _crossfilter2.default)(_lodash2.default.map(this.props.traffic, function (value, key) {\n      return { ts: key, bytes: value };\n    }));\n    var dailyTraffic = ndx.dimension(function (d) {\n      return (0, _moment2.default)(d.ts).format('YYYY-MM-DD');\n    });\n    var dailySums = dailyTraffic.group().reduceSum(function (d) {\n      return d.bytes;\n    });\n    var t = _lodash2.default.mapKeys(dailySums.all(), function (entry) {\n      return _moment2.default.utc(entry.key, 'YYYY-MM-DD').unix();\n    });\n    var unixTraffic = _lodash2.default.mapValues(t, function (val) {\n      return val.value;\n    });\n\n    return _react2.default.createElement(_HistogramVisualization2.default, { id: 'traffic-histogram',\n      data: unixTraffic,\n      config: config,\n      width: this.props.width,\n      interactive: true,\n      keyTitleRenderer: function keyTitleRenderer(d) {\n        return '' + new _DateTime2.default(d.x).toString(_DateTime2.default.Formats.DATE) + '';\n      },\n      valueTitleRenderer: function valueTitleRenderer(d) {\n        return '' + (0, _numeral2.default)(d.y).format('0.00b');\n      },\n      computationTimeRange: { from: this.props.from, to: this.props.to } });\n  }\n});\n\nexports.default = TrafficGraph;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 934:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _IndexerClusterHealth = __webpack_require__(1027);\n\nObject.defineProperty(exports, 'IndexerClusterHealth', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_IndexerClusterHealth).default;\n  }\n});\n\nvar _IndexerClusterHealthSummary = __webpack_require__(1028);\n\nObject.defineProperty(exports, 'IndexerClusterHealthSummary', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_IndexerClusterHealthSummary).default;\n  }\n});\n\nvar _IndexerFailure = __webpack_require__(1029);\n\nObject.defineProperty(exports, 'IndexerFailure', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_IndexerFailure).default;\n  }\n});\n\nvar _IndexerFailuresComponent = __webpack_require__(1030);\n\nObject.defineProperty(exports, 'IndexerFailuresComponent', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_IndexerFailuresComponent).default;\n  }\n});\n\nvar _IndexerFailuresList = __webpack_require__(1031);\n\nObject.defineProperty(exports, 'IndexerFailuresList', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_IndexerFailuresList).default;\n  }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// 16.746b58959a350aa1ebcf.js","import React from 'react';\nimport Reflux from 'reflux';\nimport { Row, Col } from 'react-bootstrap';\n\nimport StoreProvider from 'injection/StoreProvider';\nconst IndexerClusterStore = StoreProvider.getStore('IndexerCluster');\n\nimport { Spinner } from 'components/common';\nimport { DocumentationLink, SmallSupportLink } from 'components/support';\nimport DocsHelper from 'util/DocsHelper';\nimport { IndexerClusterHealthSummary } from 'components/indexers';\n\nconst IndexerClusterHealth = React.createClass({\n  mixins: [Reflux.connect(IndexerClusterStore)],\n\n  componentDidMount() {\n    IndexerClusterStore.update();\n  },\n\n  render() {\n    const health = this.state.health;\n\n    let content;\n    if (health) {\n      content = ;\n    } else {\n      content = ;\n    }\n\n    return (\n      \n        \n          

Elasticsearch cluster

\n\n \n The possible Elasticsearch cluster states and more related information is available in the{' '}\n .\n \n\n {content}\n \n
\n );\n },\n});\n\nexport default IndexerClusterHealth;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indexers/IndexerClusterHealth.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Alert } from 'react-bootstrap';\n\nimport { DocumentationLink } from 'components/support';\nimport DocsHelper from 'util/DocsHelper';\n\nconst IndexerClusterHealthSummary = React.createClass({\n propTypes: {\n health: PropTypes.object.isRequired,\n },\n _alertClassForHealth(health) {\n switch (health.status) {\n case 'green': return 'success';\n case 'yellow': return 'warning';\n case 'red': return 'danger';\n default: return 'success';\n }\n },\n _formatTextForHealth(health) {\n const text = `Elasticsearch cluster is ${health.status}.`;\n switch (health.status) {\n case 'green': return text;\n case 'yellow':\n case 'red': return {text};\n default: return text;\n }\n },\n _iconNameForHealth(health) {\n switch (health.status) {\n case 'green': return 'check-circle';\n case 'yellow': return 'warning';\n case 'red': return 'ambulance';\n default: return 'check-circle';\n }\n },\n render() {\n const { health } = this.props;\n return (\n \n  {this._formatTextForHealth(health)}{' '}\n Shards:{' '}\n {health.shards.active} active,{' '}\n {health.shards.initializing} initializing,{' '}\n {health.shards.relocating} relocating,{' '}\n {health.shards.unassigned} unassigned,{' '}\n \n \n );\n },\n});\n\nexport default IndexerClusterHealthSummary;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indexers/IndexerClusterHealthSummary.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Timestamp } from 'components/common';\n\nconst IndexerFailure = React.createClass({\n propTypes: {\n failure: PropTypes.object.isRequired,\n },\n render() {\n const failure = this.props.failure;\n return (\n \n \n {failure.index}\n {failure.letter_id}\n {failure.message}\n \n );\n },\n});\n\nexport default IndexerFailure;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indexers/IndexerFailure.jsx","import React from 'react';\nimport { Alert, Button, Col, Row } from 'react-bootstrap';\nimport { LinkContainer } from 'react-router-bootstrap';\nimport numeral from 'numeral';\nimport moment from 'moment';\n\nimport StoreProvider from 'injection/StoreProvider';\nconst IndexerFailuresStore = StoreProvider.getStore('IndexerFailures');\n\nimport DocsHelper from 'util/DocsHelper';\nimport Routes from 'routing/Routes';\n\nimport { Spinner } from 'components/common';\nimport { SmallSupportLink, DocumentationLink } from 'components/support';\n\nconst IndexerFailuresComponent = React.createClass({\n getInitialState() {\n return {};\n },\n componentDidMount() {\n const since = moment().subtract(24, 'hours');\n\n IndexerFailuresStore.count(since).then((response) => {\n this.setState({ total: response.count });\n });\n },\n _formatFailuresSummary() {\n return (\n \n {this._formatTextForFailureCount(this.state.total)}\n\n \n \n \n \n );\n },\n _formatTextForFailureCount(count) {\n if (count === 0) {\n return 'No failed indexing attempts in the last 24 hours.';\n }\n return There were {numeral(count).format('0,0')} failed indexing attempts in the last 24 hours.;\n },\n _iconForFailureCount(count) {\n if (count === 0) {\n return 'check-circle';\n }\n return 'ambulance';\n },\n render() {\n let content;\n if (this.state.total === undefined) {\n content = ;\n } else {\n content = this._formatFailuresSummary();\n }\n\n return (\n \n \n

Indexer failures

\n\n \n Every message that was not successfully indexed will be logged as an indexer failure. You can learn more about this feature in the{' '}\n .\n \n\n {content}\n \n
\n );\n },\n});\n\nexport default IndexerFailuresComponent;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indexers/IndexerFailuresComponent.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Alert, Table } from 'react-bootstrap';\n\nimport { IndexerFailure } from 'components/indexers';\n\nconst IndexerFailuresList = React.createClass({\n propTypes: {\n failures: PropTypes.arrayOf(PropTypes.object).isRequired,\n },\n render() {\n if (this.props.failures.length === 0) {\n return (\n Hurray! There are not any indexer failures.\n );\n }\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n {this.props.failures.map(failure => )}\n \n
TimestampIndexLetter IDError message
\n
\n );\n },\n});\n\nexport default IndexerFailuresList;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indexers/IndexerFailuresList.jsx","export { default as SystemJob } from './SystemJob';\nexport { default as SystemJobsComponent } from './SystemJobsComponent';\nexport { default as SystemJobsList } from './SystemJobsList';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/systemjobs/index.jsx","export { default as SystemMessage } from './SystemMessage';\nexport { default as SystemMessagesComponent } from './SystemMessagesComponent';\nexport { default as SystemMessagesList } from './SystemMessagesList';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/systemmessages/index.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Alert, Button } from 'react-bootstrap';\nimport { Timestamp } from 'components/common';\n\nimport NotificationsFactory from 'logic/notifications/NotificationsFactory';\n\nimport ActionsProvider from 'injection/ActionsProvider';\nconst NotificationsActions = ActionsProvider.getActions('Notifications');\n\nconst Notification = React.createClass({\n propTypes: {\n notification: PropTypes.object.isRequired,\n },\n _onClose() {\n if (window.confirm('Really delete this notification?')) {\n NotificationsActions.delete(this.props.notification.type);\n }\n },\n render() {\n const notification = this.props.notification;\n const notificationView = NotificationsFactory.getForNotification(notification);\n return (\n \n \n\n

\n {' '}\n {notificationView.title}{' '}\n\n \n (triggered )\n \n

\n
\n {notificationView.description}\n
\n
\n );\n },\n});\n\nexport default Notification;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/notifications/Notification.jsx","import React from 'react';\n\nimport { DocumentTitle, IfPermitted } from 'components/common';\nimport { IndexerClusterHealth, IndexerFailuresComponent } from 'components/indexers';\nimport { NotificationsList } from 'components/notifications';\nimport { SystemJobsComponent } from 'components/systemjobs';\nimport { SystemMessagesComponent } from 'components/systemmessages';\nimport { TimesList } from 'components/times';\nimport { GraylogClusterOverview } from 'components/cluster';\n\nconst SystemOverviewPage = React.createClass({\n render() {\n return (\n \n \n \n \n \n\n \n \n \n\n \n\n \n \n \n\n \n \n \n\n \n\n \n \n \n \n \n );\n },\n});\n\nexport default SystemOverviewPage;\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/SystemOverviewPage.jsx","export { default as Notification } from './Notification';\nexport { default as NotificationsList } from './NotificationsList';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/notifications/index.jsx","import React from 'react';\nimport { Link } from 'react-router';\n\nimport Routes from 'routing/Routes';\nimport DocsHelper from 'util/DocsHelper';\nimport DocumentationLink from 'components/support/DocumentationLink';\n\nclass NotificationsFactory {\n static getForNotification(notification) {\n switch (notification.type) {\n case 'check_server_clocks':\n return {\n title: 'Check the system clocks of your Graylog server nodes.',\n description: (\n \n A Graylog server node detected a condition where it was deemed to be inactive immediately after being active.\n This usually indicates either a significant jump in system time, e.g. via NTP, or that a second Graylog server node\n is active on a system that has a different system time. Please make sure that the clocks of graylog2 systems are synchronized.\n \n ),\n };\n case 'deflector_exists_as_index':\n return {\n title: 'Deflector exists as an index and is not an alias.',\n description: (\n \n The deflector is meant to be an alias but exists as an index. Multiple failures of infrastructure can lead\n to this. Your messages are still indexed but searches and all maintenance tasks will fail or produce incorrect\n results. It is strongly recommend that you act as soon as possible.\n \n ),\n };\n case 'email_transport_configuration_invalid':\n return {\n title: 'Email Transport Configuration is missing or invalid!',\n description: (\n \n The configuration for the email transport subsystem has shown to be missing or invalid.\n Please check the related section of your Graylog server configuration file.\n This is the detailed error message: {notification.details.exception}\n \n ),\n };\n case 'email_transport_failed':\n return {\n title: 'An error occurred while trying to send an email!',\n description: (\n \n The Graylog server encountered an error while trying to send an email.\n This is the detailed error message: {notification.details.exception}\n \n ),\n };\n case 'es_cluster_red':\n return {\n title: 'Elasticsearch cluster unhealthy (RED)',\n description: (\n \n The Elasticsearch cluster state is RED which means shards are unassigned.\n This usually indicates a crashed and corrupt cluster and needs to be investigated. Graylog will write\n into the local disk journal. Read how to fix this in {' '}\n \n \n ),\n };\n case 'es_open_files':\n return {\n title: 'Elasticsearch nodes with too low open file limit',\n description: (\n \n There are Elasticsearch nodes in the cluster that have a too low open file limit (current limit:{' '}\n {notification.details.max_file_descriptors} on {notification.details.hostname};\n should be at least 64000) This will be causing problems\n that can be hard to diagnose. Read how to raise the maximum number of open files in {' '}\n .\n \n ),\n };\n case 'es_unavailable':\n return {\n title: 'Elasticsearch cluster unavailable',\n description: (\n \n Graylog could not successfully connect to the Elasticsearch cluster. If you're using multicast, check that\n it is working in your network and that Elasticsearch is accessible. Also check that the cluster name setting\n is correct. Read how to fix this in {' '}\n \n \n ),\n };\n case 'gc_too_long':\n return {\n title: 'Nodes with too long GC pauses',\n description: (\n \n There are Graylog nodes on which the garbage collector runs too long.\n Garbage collection runs should be as short as possible. Please check whether those nodes are healthy.\n (Node: {notification.node_id}, GC duration: {notification.details.gc_duration_ms} ms,\n GC threshold: {notification.details.gc_threshold_ms} ms)\n \n ),\n };\n case 'generic':\n return {\n title: notification.details.title,\n description: notification.details.description,\n };\n case 'index_ranges_recalculation':\n return {\n title: 'Index ranges recalculation required',\n description: (\n \n The index ranges are out of sync. Please go to System/Indices and trigger a index range recalculation from\n the Maintenance menu of {notification.details.index_sets ? (`the following index sets: ${notification.details.index_sets}`) : 'all index sets'}\n \n ),\n };\n case 'input_failed_to_start':\n return {\n title: 'An input has failed to start',\n description: (\n \n Input {notification.details.input_id} has failed to start on node {notification.node_id} for this reason:\n »{notification.details.reason}«. This means that you are unable to receive any messages from this input.\n This is mostly an indication for a misconfiguration or an error. You can click {' '}\n here to solve this.\n \n ),\n };\n case 'journal_uncommitted_messages_deleted':\n return {\n title: 'Uncommited messages deleted from journal',\n description: (\n \n Some messages were deleted from the Graylog journal before they could be written to Elasticsearch. Please\n verify that your Elasticsearch cluster is healthy and fast enough. You may also want to review your Graylog\n journal settings and set a higher limit. (Node: {notification.node_id})\n \n ),\n };\n case 'journal_utilization_too_high':\n return {\n title: 'Journal utilization is too high',\n description: (\n \n Journal utilization is too high and may go over the limit soon. Please verify that your Elasticsearch cluster\n is healthy and fast enough. You may also want to review your Graylog journal settings and set a higher limit.\n (Node: {notification.node_id})\n \n ),\n };\n case 'multi_master':\n return {\n title: 'Multiple Graylog server masters in the cluster',\n description: (\n \n There were multiple Graylog server instances configured as master in your Graylog cluster. The cluster handles\n this automatically by launching new nodes as slaves if there already is a master but you should still fix this.\n Check the graylog.conf of every node and make sure that only one instance has is_master set to true. Close this\n notification if you think you resolved the problem. It will pop back up if you start a second master node again.\n \n ),\n };\n case 'no_input_running':\n return {\n title: 'There is a node without any running inputs.',\n description: (\n \n There is a node without any running inputs. This means that you are not receiving any messages from this\n node at this point in time. This is most probably an indication of an error or misconfiguration.\n You can click here to solve this.\n \n ),\n };\n case 'no_master':\n return {\n title: 'There was no master Graylog server node detected in the cluster.',\n description: (\n \n Certain operations of Graylog server require the presence of a master node, but no such master was started.\n Please ensure that one of your Graylog server nodes contains the setting is_master = true in its\n configuration and that it is running. Until this is resolved index cycling will not be able to run, which\n means that the index retention mechanism is also not running, leading to increased index sizes. Certain\n maintenance functions as well as a variety of web interface pages (e.g. Dashboards) are unavailable.\n \n ),\n };\n case 'outdated_version':\n return {\n title: 'You are running an outdated Graylog version.',\n description: (\n \n The most recent stable Graylog version is {notification.details.current_version}.\n Get it from https://www.graylog.org/.\n \n ),\n };\n case 'output_disabled':\n return {\n title: 'Output disabled',\n description: (\n \n The output with the id {notification.details.outputId} in stream \"{notification.details.streamTitle}\"\n (id: {notification.details.streamId}) has been disabled for {notification.details.faultPenaltySeconds}\n seconds because there were {notification.details.faultCount} failures.\n (Node: {notification.node_id}, Fault threshold: {notification.details.faultCountThreshold})\n \n ),\n };\n case 'stream_processing_disabled':\n return {\n title: 'Processing of a stream has been disabled due to excessive processing time.',\n description: (\n \n The processing of stream {notification.details.stream_id} has taken too long for{' '}\n {notification.details.fault_count} times. To protect the stability of message processing,\n this stream has been disabled. Please correct the stream rules and reenable the stream.\n Check {' '}\n for more details.\n \n ),\n };\n default:\n return { title: `unknown (${notification.type})`, description: 'unknown' };\n }\n }\n}\n\nexport default NotificationsFactory;\n\n\n\n// WEBPACK FOOTER //\n// ./src/logic/notifications/NotificationsFactory.js","import React from 'react';\nimport Reflux from 'reflux';\nimport { Alert, Row, Col } from 'react-bootstrap';\n\nimport StoreProvider from 'injection/StoreProvider';\nconst NotificationsStore = StoreProvider.getStore('Notifications');\n\nimport { Spinner } from 'components/common';\nimport Notification from 'components/notifications/Notification';\n\nconst NotificationsList = React.createClass({\n mixins: [Reflux.connect(NotificationsStore)],\n _formatNotificationCount(count) {\n if (count === 0) {\n return 'is no notification';\n }\n if (count === 1) {\n return 'is one notification';\n }\n\n return `are ${count} notifications`;\n },\n render() {\n if (!this.state.notifications) {\n return ;\n }\n\n const count = this.state.total;\n\n let title;\n let content;\n\n if (count === 0) {\n title = 'No notifications';\n content = (\n \n {' '}\n  No notifications\n \n );\n } else {\n title = `There ${this._formatNotificationCount(count)}`;\n content = this.state.notifications.map((notification) => {\n return ;\n });\n }\n\n return (\n \n \n

{title}

\n

\n Notifications are triggered by Graylog and indicate a situation you should act upon. Many notification\n types will also provide a link to the Graylog documentation if you need more information or assistance.\n

\n\n {content}\n \n
\n );\n },\n});\n\nexport default NotificationsList;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/notifications/NotificationsList.jsx","import React from 'react';\nimport { ProgressBar } from 'react-bootstrap';\n\nimport { LinkToNode, Timestamp } from 'components/common';\n\nimport ActionsProvider from 'injection/ActionsProvider';\nconst SystemJobsActions = ActionsProvider.getActions('SystemJobs');\n\nconst SystemJob = React.createClass({\n _onCancel(job) {\n return (e) => {\n e.preventDefault();\n if (window.confirm(`Are you sure you want to cancel system job \"${job.info}\"?`)) {\n SystemJobsActions.cancelJob(job.id);\n }\n };\n },\n render() {\n const job = this.props.job;\n const progress = job.percent_complete < 100 ?\n () : Finished!;\n const cancel = job.is_cancelable ?\n () : null;\n\n return (\n
\n
\n {' '}\n {job.info}{' '}\n - Started on {' '}\n {' '}\n {cancel}\n
\n\n {progress}\n
\n );\n },\n});\n\nexport default SystemJob;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/systemjobs/SystemJob.jsx","import React from 'react';\nimport Reflux from 'reflux';\nimport { Col, Row } from 'react-bootstrap';\n\nimport StoreProvider from 'injection/StoreProvider';\nconst SystemJobsStore = StoreProvider.getStore('SystemJobs');\n\nimport ActionsProvider from 'injection/ActionsProvider';\nconst SystemJobsActions = ActionsProvider.getActions('SystemJobs');\n\nimport { Spinner } from 'components/common';\nimport { SystemJobsList } from 'components/systemjobs';\n\nconst SystemJobsComponent = React.createClass({\n mixins: [Reflux.connect(SystemJobsStore)],\n componentDidMount() {\n SystemJobsActions.list();\n\n this.interval = setInterval(SystemJobsActions.list, 2000);\n },\n componentWillUnmount() {\n clearInterval(this.interval);\n },\n render() {\n if (!this.state.jobs) {\n return ;\n }\n const jobs = Object.keys(this.state.jobs)\n .map(nodeId => this.state.jobs[nodeId] ? this.state.jobs[nodeId].jobs : [])\n .reduce((a, b) => a.concat(b));\n return (\n \n \n

System jobs

\n

\n A system job is a long-running task a graylog-server node executes for maintenance reasons. Some jobs\n provide progress information or can be stopped.\n

\n\n \n \n
\n );\n },\n});\n\nexport default SystemJobsComponent;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/systemjobs/SystemJobsComponent.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Alert } from 'react-bootstrap';\n\nimport { SystemJob } from 'components/systemjobs';\n\nconst SystemJobsList = React.createClass({\n propTypes: {\n jobs: PropTypes.arrayOf(PropTypes.object).isRequired,\n },\n _formatSystemJob(job) {\n return (\n
\n \n
\n );\n },\n render() {\n const jobs = this.props.jobs.map(this._formatSystemJob);\n if (jobs.length === 0) {\n return (\n \n {' '}\n  No active system jobs.\n \n );\n }\n return (\n \n {jobs}\n \n );\n },\n});\n\nexport default SystemJobsList;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/systemjobs/SystemJobsList.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\nimport moment from 'moment';\n\nimport { LinkToNode } from 'components/common';\n\nconst SystemMessage = React.createClass({\n propTypes: {\n message: PropTypes.object.isRequired,\n },\n render() {\n const message = this.props.message;\n return (\n \n {moment(message.timestamp).format()}\n \n \n \n {message.content}\n \n );\n },\n});\n\nexport default SystemMessage;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/systemmessages/SystemMessage.jsx","import React from 'react';\nimport { Col, Pagination, Row } from 'react-bootstrap';\n\nimport StoreProvider from 'injection/StoreProvider';\nconst SystemMessagesStore = StoreProvider.getStore('SystemMessages');\n\nimport { Spinner } from 'components/common';\nimport { SystemMessagesList } from 'components/systemmessages';\n\nconst SystemMessagesComponent = React.createClass({\n getInitialState() {\n return { currentPage: 1 };\n },\n componentDidMount() {\n this.loadMessages(this.state.currentPage);\n this.interval = setInterval(() => { this.loadMessages(this.state.currentPage); }, 1000);\n },\n componentWillUnmount() {\n clearInterval(this.interval);\n },\n PER_PAGE: 30,\n loadMessages(page) {\n SystemMessagesStore.all(page).then((response) => {\n this.setState(response);\n });\n },\n _onSelected(selectedPage) {\n this.setState({ currentPage: selectedPage });\n this.loadMessages(selectedPage);\n },\n render() {\n let content;\n if (this.state.total && this.state.messages) {\n const numberPages = Math.ceil(this.state.total / this.PER_PAGE);\n const paginatorSize = 10;\n\n content = (\n
\n \n\n \n
\n );\n } else {\n content = ;\n }\n\n return (\n \n \n

System messages

\n\n

\n System messages are generated by graylog-server nodes on certain events that may be interesting for\n the Graylog administrators. You don't need to actively act upon any message in here because notifications\n will be raised for any events that required action.\n

\n\n {content}\n \n
\n );\n },\n});\n\nexport default SystemMessagesComponent;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/systemmessages/SystemMessagesComponent.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Table } from 'react-bootstrap';\n\nimport { SystemMessage } from 'components/systemmessages';\n\nconst SystemMessagesList = React.createClass({\n propTypes: {\n messages: PropTypes.arrayOf(PropTypes.object).isRequired,\n },\n render() {\n return (\n \n \n \n \n \n \n \n \n\n \n {this.props.messages.map(message => )}\n \n
TimestampNodeMessage
\n );\n },\n});\n\nexport default SystemMessagesList;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/systemmessages/SystemMessagesList.jsx","export { default as TimesList } from './TimesList';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/times/index.jsx","import React from 'react';\nimport Reflux from 'reflux';\nimport { Col, Row } from 'react-bootstrap';\nimport moment from 'moment';\nimport DateTime from 'logic/datetimes/DateTime';\n\nimport StoreProvider from 'injection/StoreProvider';\nconst CurrentUserStore = StoreProvider.getStore('CurrentUser');\nconst SystemStore = StoreProvider.getStore('System');\n\nimport { Spinner, Timestamp } from 'components/common';\n\nconst TimesList = React.createClass({\n mixins: [Reflux.connect(CurrentUserStore), Reflux.connect(SystemStore)],\n getInitialState() {\n return { time: moment() };\n },\n componentDidMount() {\n this.interval = setInterval(() => this.setState(this.getInitialState()), 1000);\n },\n componentWillUnmount() {\n clearInterval(this.interval);\n },\n render() {\n if (!this.state.system) {\n return ;\n }\n const time = this.state.time;\n const timeFormat = DateTime.Formats.DATETIME_TZ;\n const currentUser = this.state.currentUser;\n const serverTimezone = this.state.system.timezone;\n return (\n \n \n

Time configuration

\n\n

\n Dealing with timezones can be confusing. Here you can see the timezone applied to different components of your system.\n You can check timezone settings of specific graylog-server nodes on their respective detail page.\n

\n\n
\n
User {currentUser.username}:
\n
\n
Your web browser:
\n
\n
Graylog server:
\n
\n
\n \n
\n );\n },\n});\n\nexport default TimesList;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/times/TimesList.jsx","export { default as GraylogClusterOverview } from './GraylogClusterOverview';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/cluster/index.js","/* eslint-disable react/no-find-dom-node */\n/* global window */\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport Reflux from 'reflux';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { Spinner } from 'components/common';\nimport StoreProvider from 'injection/StoreProvider';\nimport ActionsProvider from 'injection/ActionsProvider';\nimport NumberUtils from 'util/NumberUtils';\nimport _ from 'lodash';\nimport EventHandlersThrottler from 'util/EventHandlersThrottler';\n\nimport TrafficGraph from './TrafficGraph';\n\nconst ClusterTrafficStore = StoreProvider.getStore('ClusterTraffic');\nconst ClusterTrafficActions = ActionsProvider.getActions('ClusterTraffic');\nconst NodesStore = StoreProvider.getStore('Nodes');\n\nconst GraylogClusterOverview = React.createClass({\n mixins: [Reflux.connect(NodesStore, 'nodes'), Reflux.connect(ClusterTrafficStore, 'traffic')],\n\n getInitialState() {\n return {\n graphWidth: 600,\n };\n },\n\n componentDidMount() {\n ClusterTrafficActions.traffic();\n window.addEventListener('resize', this._onResize);\n this._resizeGraphs();\n },\n\n componentWillUnmount() {\n window.removeEventListener('resize', this._onResize);\n },\n\n eventThrottler: new EventHandlersThrottler(),\n\n _onResize() {\n this.eventThrottler.throttle(() => this._resizeGraphs());\n },\n\n _resizeGraphs() {\n const domNode = ReactDOM.findDOMNode(this._container);\n this.setState({ graphWidth: domNode.clientWidth });\n },\n\n _isClusterLoading() {\n return !this.state.nodes;\n },\n\n render() {\n let content = ;\n\n if (!this._isClusterLoading()) {\n content = (\n
\n
Cluster ID:
\n
{this.state.nodes.clusterId || 'Not available'}
\n
Number of nodes:
\n
{this.state.nodes.nodeCount}
\n
\n );\n }\n let sumOutput = null;\n if (this.state.traffic) {\n const bytesOut = _.reduce(this.state.traffic.output, (result, value) => result + value);\n sumOutput = Last 30 days: {NumberUtils.formatBytes(bytesOut)};\n }\n return (\n \n \n

Graylog cluster

\n {content}\n
\n \n \n

{ this._container = container; }} style={{ marginBottom: 10 }}>Outgoing traffic {sumOutput}

\n {!this.state.traffic ? : \n }\n \n
\n \n
\n );\n },\n});\n\nexport default GraylogClusterOverview;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/cluster/GraylogClusterOverview.jsx","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Spinner } from 'components/common';\nimport HistogramVisualization from 'components/visualizations/HistogramVisualization';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport crossfilter from 'crossfilter';\nimport numeral from 'numeral';\nimport DateTime from 'logic/datetimes/DateTime';\n\nconst TrafficGraph = React.createClass({\n\n propTypes: {\n from: PropTypes.string.isRequired,\n to: PropTypes.string.isRequired,\n traffic: PropTypes.object.isRequired, // traffic is: {\"2017-11-15T15:00:00.000Z\": 68287229, ...}\n width: PropTypes.number.isRequired,\n },\n\n render() {\n if (!this.props.traffic) {\n return ;\n }\n\n const config = {\n xAxis: 'Time',\n yAxis: 'Bytes',\n interval: 'days',\n timerange: {\n type: 'relative',\n range: 60 * 24 * 30, // 30 days, value is irrelevant but it must not be 0\n },\n };\n\n const ndx = crossfilter(_.map(this.props.traffic, (value, key) => {\n return { ts: key, bytes: value };\n }));\n const dailyTraffic = ndx.dimension((d) => {\n return moment(d.ts).format('YYYY-MM-DD');\n });\n const dailySums = dailyTraffic.group().reduceSum(d => d.bytes);\n const t = _.mapKeys(dailySums.all(), entry => moment.utc(entry.key, 'YYYY-MM-DD').unix());\n const unixTraffic = _.mapValues(t, val => val.value);\n\n return (\n `${new DateTime(d.x).toString(DateTime.Formats.DATE)}`}\n valueTitleRenderer={d => `${numeral(d.y).format('0.00b')}`}\n computationTimeRange={{ from: this.props.from, to: this.props.to }} />\n );\n },\n});\n\nexport default TrafficGraph;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/cluster/TrafficGraph.jsx","export { default as IndexerClusterHealth } from './IndexerClusterHealth';\nexport { default as IndexerClusterHealthSummary } from './IndexerClusterHealthSummary';\nexport { default as IndexerFailure } from './IndexerFailure';\nexport { default as IndexerFailuresComponent } from './IndexerFailuresComponent';\nexport { default as IndexerFailuresList } from './IndexerFailuresList';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indexers/index.jsx"],"sourceRoot":""}