<!--
  Licensed to the Apache Software
	Foundation (ASF) under one or more contributor license agreements. See the
	NOTICE file distributed with this work for additional information regarding
	copyright ownership. The ASF licenses this file to You under the Apache License,
	Version 2.0 (the "License"); you may not use this file except in compliance
	with the License. You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software distributed
	under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
	OR CONDITIONS OF ANY KIND, either express or implied. See the License for
  the specific language governing permissions and limitations under the License.
  -->
<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <title>Metron Configuration</title>
    <!-- The base href is relative so that static assets are properly resolved when behind a reverse proxy -->
  <base href="./">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">

</head>
<body>
  <metron-config-root>
    <div style="position: absolute;top: 45%; left: 50%">
      <i class="fa fa-cog fa-spin fa-3x fa-fw" ></i>
      <div>Loading ... </div>
    </div>
  </metron-config-root>



</body>
</html>
