1
0
xiongzhu 7 лет назад
Родитель
Сommit
30b3246cbd
100 измененных файлов с 11775 добавлено и 1484 удалено
  1. 3 2
      awesome-admin.iml
  2. 0 3
      src/main/java/com/izouma/awesomeadmin/web/UserInfoController.java
  3. 11 31
      src/main/java/com/izouma/awesomeadmin/web/activiti/ModelController.java
  4. 80 0
      src/main/java/com/izouma/awesomeadmin/web/activiti/ProcessController.java
  5. 0 754
      src/main/resources/stencilset.json
  6. 3 2
      src/main/vue/index.html
  7. 84 0
      src/main/vue/src/components/DynamicForm.vue
  8. 115 7
      src/main/vue/src/components/WeatherCard.vue
  9. 18 9
      src/main/vue/src/main.js
  10. 8 1
      src/main/vue/src/pages/App.vue
  11. 2 2
      src/main/vue/src/pages/Dashboard.vue
  12. 94 157
      src/main/vue/src/pages/MyProcesses.vue
  13. 104 175
      src/main/vue/src/pages/MyTasks.vue
  14. 94 180
      src/main/vue/src/pages/ProcessDefinitions.vue
  15. 126 159
      src/main/vue/src/pages/ProcessModels.vue
  16. 1 2
      src/main/vue/src/router/index.js
  17. BIN
      src/main/vue/static/favicon.ico
  18. 5331 0
      src/main/vue/static/weather_icons/css/weather-icons-wind.css
  19. 0 0
      src/main/vue/static/weather_icons/css/weather-icons-wind.min.css
  20. 1838 0
      src/main/vue/static/weather_icons/css/weather-icons.css
  21. 40 0
      src/main/vue/static/weather_icons/css/weather-icons.min.css
  22. BIN
      src/main/vue/static/weather_icons/font/weathericons-regular-webfont.eot
  23. 31 0
      src/main/vue/static/weather_icons/font/weathericons-regular-webfont.svg
  24. BIN
      src/main/vue/static/weather_icons/font/weathericons-regular-webfont.ttf
  25. BIN
      src/main/vue/static/weather_icons/font/weathericons-regular-webfont.woff
  26. BIN
      src/main/vue/static/weather_icons/font/weathericons-regular-webfont.woff2
  27. 13 0
      src/main/vue/static/weather_icons/less/icon-classes/classes-beaufort.less
  28. 26 0
      src/main/vue/static/weather_icons/less/icon-classes/classes-day.less
  29. 8 0
      src/main/vue/static/weather_icons/less/icon-classes/classes-direction.less
  30. 23 0
      src/main/vue/static/weather_icons/less/icon-classes/classes-misc.less
  31. 28 0
      src/main/vue/static/weather_icons/less/icon-classes/classes-moon-aliases.less
  32. 56 0
      src/main/vue/static/weather_icons/less/icon-classes/classes-moon.less
  33. 40 0
      src/main/vue/static/weather_icons/less/icon-classes/classes-neutral.less
  34. 44 0
      src/main/vue/static/weather_icons/less/icon-classes/classes-night.less
  35. 12 0
      src/main/vue/static/weather_icons/less/icon-classes/classes-time.less
  36. 96 0
      src/main/vue/static/weather_icons/less/icon-classes/classes-wind-aliases.less
  37. 724 0
      src/main/vue/static/weather_icons/less/icon-classes/classes-wind-degrees.less
  38. 14 0
      src/main/vue/static/weather_icons/less/icon-classes/classes-wind.less
  39. 13 0
      src/main/vue/static/weather_icons/less/icon-variables/variables-beaufort.less
  40. 26 0
      src/main/vue/static/weather_icons/less/icon-variables/variables-day.less
  41. 8 0
      src/main/vue/static/weather_icons/less/icon-variables/variables-direction.less
  42. 23 0
      src/main/vue/static/weather_icons/less/icon-variables/variables-misc.less
  43. 56 0
      src/main/vue/static/weather_icons/less/icon-variables/variables-moon.less
  44. 40 0
      src/main/vue/static/weather_icons/less/icon-variables/variables-neutral.less
  45. 44 0
      src/main/vue/static/weather_icons/less/icon-variables/variables-night.less
  46. 12 0
      src/main/vue/static/weather_icons/less/icon-variables/variables-time.less
  47. 32 0
      src/main/vue/static/weather_icons/less/icon-variables/variables-wind-names.less
  48. 13 0
      src/main/vue/static/weather_icons/less/mappings/wi-forecast-io.less
  49. 180 0
      src/main/vue/static/weather_icons/less/mappings/wi-owm.less
  50. 85 0
      src/main/vue/static/weather_icons/less/mappings/wi-wmo4680.less
  51. 19 0
      src/main/vue/static/weather_icons/less/mappings/wi-wunderground.less
  52. 49 0
      src/main/vue/static/weather_icons/less/mappings/wi-yahoo.less
  53. 9 0
      src/main/vue/static/weather_icons/less/weather-icons-classes.less
  54. 53 0
      src/main/vue/static/weather_icons/less/weather-icons-core.less
  55. 9 0
      src/main/vue/static/weather_icons/less/weather-icons-variables.less
  56. 5 0
      src/main/vue/static/weather_icons/less/weather-icons-wind.less
  57. 5 0
      src/main/vue/static/weather_icons/less/weather-icons-wind.min.less
  58. 31 0
      src/main/vue/static/weather_icons/less/weather-icons.less
  59. 23 0
      src/main/vue/static/weather_icons/less/weather-icons.min.less
  60. 13 0
      src/main/vue/static/weather_icons/sass/icon-classes/classes-beaufort.scss
  61. 26 0
      src/main/vue/static/weather_icons/sass/icon-classes/classes-day.scss
  62. 8 0
      src/main/vue/static/weather_icons/sass/icon-classes/classes-direction.scss
  63. 23 0
      src/main/vue/static/weather_icons/sass/icon-classes/classes-misc.scss
  64. 28 0
      src/main/vue/static/weather_icons/sass/icon-classes/classes-moon-aliases.scss
  65. 56 0
      src/main/vue/static/weather_icons/sass/icon-classes/classes-moon.scss
  66. 40 0
      src/main/vue/static/weather_icons/sass/icon-classes/classes-neutral.scss
  67. 44 0
      src/main/vue/static/weather_icons/sass/icon-classes/classes-night.scss
  68. 12 0
      src/main/vue/static/weather_icons/sass/icon-classes/classes-time.scss
  69. 104 0
      src/main/vue/static/weather_icons/sass/icon-classes/classes-wind-aliases.scss
  70. 728 0
      src/main/vue/static/weather_icons/sass/icon-classes/classes-wind-degrees.scss
  71. 15 0
      src/main/vue/static/weather_icons/sass/icon-classes/classes-wind.scss
  72. 13 0
      src/main/vue/static/weather_icons/sass/icon-variables/variables-beaufort.scss
  73. 26 0
      src/main/vue/static/weather_icons/sass/icon-variables/variables-day.scss
  74. 8 0
      src/main/vue/static/weather_icons/sass/icon-variables/variables-direction.scss
  75. 23 0
      src/main/vue/static/weather_icons/sass/icon-variables/variables-misc.scss
  76. 56 0
      src/main/vue/static/weather_icons/sass/icon-variables/variables-moon.scss
  77. 40 0
      src/main/vue/static/weather_icons/sass/icon-variables/variables-neutral.scss
  78. 44 0
      src/main/vue/static/weather_icons/sass/icon-variables/variables-night.scss
  79. 12 0
      src/main/vue/static/weather_icons/sass/icon-variables/variables-time.scss
  80. 32 0
      src/main/vue/static/weather_icons/sass/icon-variables/variables-wind-names.scss
  81. 13 0
      src/main/vue/static/weather_icons/sass/mappings/wi-forecast-io.scss
  82. 180 0
      src/main/vue/static/weather_icons/sass/mappings/wi-owm.scss
  83. 85 0
      src/main/vue/static/weather_icons/sass/mappings/wi-wmo4680.scss
  84. 19 0
      src/main/vue/static/weather_icons/sass/mappings/wi-wunderground.scss
  85. 49 0
      src/main/vue/static/weather_icons/sass/mappings/wi-yahoo.scss
  86. 9 0
      src/main/vue/static/weather_icons/sass/weather-icons-classes.scss
  87. 53 0
      src/main/vue/static/weather_icons/sass/weather-icons-core.scss
  88. 9 0
      src/main/vue/static/weather_icons/sass/weather-icons-variables.scss
  89. 5 0
      src/main/vue/static/weather_icons/sass/weather-icons-wind.min.scss
  90. 5 0
      src/main/vue/static/weather_icons/sass/weather-icons-wind.scss
  91. 23 0
      src/main/vue/static/weather_icons/sass/weather-icons.min.scss
  92. 31 0
      src/main/vue/static/weather_icons/sass/weather-icons.scss
  93. 16 0
      src/main/vue/static/weather_icons/svg/wi-alien.svg
  94. 15 0
      src/main/vue/static/weather_icons/svg/wi-barometer.svg
  95. 18 0
      src/main/vue/static/weather_icons/svg/wi-celsius.svg
  96. 18 0
      src/main/vue/static/weather_icons/svg/wi-cloud-down.svg
  97. 21 0
      src/main/vue/static/weather_icons/svg/wi-cloud-refresh.svg
  98. 18 0
      src/main/vue/static/weather_icons/svg/wi-cloud-up.svg
  99. 13 0
      src/main/vue/static/weather_icons/svg/wi-cloud.svg
  100. 22 0
      src/main/vue/static/weather_icons/svg/wi-cloudy-gusts.svg

+ 3 - 2
awesome-admin.iml

@@ -30,6 +30,7 @@
     </content>
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" name="Maven: com.belerweb:pinyin4j:2.5.1" level="project" />
     <orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.5.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.5.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.5.RELEASE" level="project" />
@@ -55,7 +56,7 @@
     <orderEntry type="module-library">
       <library name="Maven: com.alibaba:jconsole:1.8.0">
         <CLASSES>
-          <root url="jar://C:/Program Files/Java/jdk1.8.0_141/lib/jconsole.jar!/" />
+          <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/lib/jconsole.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -64,7 +65,7 @@
     <orderEntry type="module-library">
       <library name="Maven: com.alibaba:tools:1.8.0">
         <CLASSES>
-          <root url="jar://C:/Program Files/Java/jdk1.8.0_141/lib/tools.jar!/" />
+          <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/lib/tools.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />

+ 0 - 3
src/main/java/com/izouma/awesomeadmin/web/UserInfoController.java

@@ -204,7 +204,6 @@ public class UserInfoController extends BaseController {
             //这里会加载自定义的realm
             subject.login(token);//把令牌放到login里面进行查询,如果查询账号和密码时候匹配,如果匹配就把user对象获取出来,失败就抛异常
             UserInfo user = (UserInfo) subject.getPrincipal();//获取登录成功的用户对象(以前是直接去service里面查)
-            identityService.setAuthenticatedUserId(user.getId().toString());
             request.getSession(true).setAttribute("superUserId", String.valueOf(user.getId()));
             if (remember) {
                 HttpSession session = request.getSession();
@@ -229,7 +228,6 @@ public class UserInfoController extends BaseController {
             return new Result(false, e.getMessage());
         }
         UserInfo user = (UserInfo) subject.getPrincipal();
-        identityService.setAuthenticatedUserId(user.getId().toString());
         HttpSession session = request.getSession();
         CookieUtil.addCookie(response, "JSESSIONID", session.getId(), 3 * 24 * 60 * 60);
         return new Result(true, user);
@@ -242,7 +240,6 @@ public class UserInfoController extends BaseController {
 
         Subject subject = SecurityUtils.getSubject();
         subject.logout();
-        identityService.setAuthenticatedUserId(null);
         return new Result(true, "已退出登录");
     }
 

+ 11 - 31
src/main/java/com/izouma/awesomeadmin/web/ActivitiController.java → src/main/java/com/izouma/awesomeadmin/web/activiti/ModelController.java

@@ -1,24 +1,22 @@
-package com.izouma.awesomeadmin.web;
+package com.izouma.awesomeadmin.web.activiti;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.izouma.awesomeadmin.dto.Result;
+import com.izouma.awesomeadmin.web.BaseController;
 import org.activiti.bpmn.converter.BpmnXMLConverter;
 import org.activiti.bpmn.model.BpmnModel;
 import org.activiti.editor.constants.ModelDataJsonConstants;
 import org.activiti.editor.language.json.converter.BpmnJsonConverter;
 import org.activiti.engine.*;
-import org.activiti.engine.form.FormProperty;
 import org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl;
-import org.activiti.engine.impl.form.EnumFormType;
-import org.activiti.engine.impl.form.FormData;
-import org.activiti.engine.impl.form.StartFormDataImpl;
 import org.activiti.engine.repository.Deployment;
-import org.activiti.engine.repository.DeploymentBuilder;
 import org.activiti.engine.repository.Model;
 import org.activiti.engine.repository.ModelQuery;
 import org.activiti.engine.runtime.ProcessInstance;
 import org.apache.commons.lang.StringUtils;
+import org.apache.shiro.authz.annotation.RequiresAuthentication;
+import org.apache.shiro.authz.annotation.RequiresRoles;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;
@@ -30,8 +28,10 @@ import java.util.Map;
 import java.util.Set;
 
 @Controller
-@RequestMapping("/activiti")
-public class ActivitiController {
+@RequestMapping("/activiti/model")
+@RequiresAuthentication
+@RequiresRoles("admin")
+public class ModelController extends BaseController {
     @Autowired
     private IdentityService                identityService;
     @Autowired
@@ -47,7 +47,7 @@ public class ActivitiController {
     @Autowired
     private ProcessEngineConfigurationImpl processEngineConfiguration;
 
-    @RequestMapping(value = "/processList", method = RequestMethod.GET)
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
     @ResponseBody
     public Result processList(String name) {
         ModelQuery query = repositoryService.createModelQuery();
@@ -58,7 +58,7 @@ public class ActivitiController {
         return new Result(true, models);
     }
 
-    @RequestMapping(value = "/createModel", method = RequestMethod.GET)
+    @RequestMapping(value = "/create", method = RequestMethod.GET)
     @ResponseBody
     public Result createModel(String name, String description) {
         Model newModel = repositoryService.newModel();
@@ -87,7 +87,7 @@ public class ActivitiController {
         return new Result(false, "创建失败");
     }
 
-    @RequestMapping(value = "/publishModel", method = RequestMethod.GET)
+    @RequestMapping(value = "/publish", method = RequestMethod.GET)
     @ResponseBody
     public Result publishModel(@RequestParam("id") String id) {
         try {
@@ -107,25 +107,5 @@ public class ActivitiController {
         return new Result(false, "失败");
     }
 
-    @RequestMapping(value = "/startProcess/{processDefinitionId}", method = RequestMethod.POST)
-    @ResponseBody
-    public Result startProcess(@PathVariable("processDefinitionId") String processDefinitionId, HttpServletRequest request) {
-        Map<String, String> formProperties = new HashMap<>();
-
-        // 从request中读取参数然后转换
-        Map<String, String[]> parameterMap = request.getParameterMap();
-        Set<Map.Entry<String, String[]>> entrySet = parameterMap.entrySet();
-        for (Map.Entry<String, String[]> entry : entrySet) {
-            String key = entry.getKey();
-            formProperties.put(key, StringUtils.join(entry.getValue(), ","));
-        }
-        try {
-            ProcessInstance processInstance = formService.submitStartFormData(processDefinitionId, formProperties);
-            return new Result(true, (Object) processInstance.getBusinessKey());
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return new Result(false, "失败");
-    }
 
 }

+ 80 - 0
src/main/java/com/izouma/awesomeadmin/web/activiti/ProcessController.java

@@ -0,0 +1,80 @@
+package com.izouma.awesomeadmin.web.activiti;
+
+import com.izouma.awesomeadmin.dto.Result;
+import com.izouma.awesomeadmin.model.UserInfo;
+import com.izouma.awesomeadmin.web.BaseController;
+import org.activiti.engine.*;
+import org.activiti.engine.history.HistoricProcessInstanceQuery;
+import org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl;
+import org.activiti.engine.runtime.ProcessInstance;
+import org.apache.commons.lang.StringUtils;
+import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.authz.annotation.RequiresAuthentication;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+@Controller
+@RequestMapping("/activiti/process")
+@RequiresAuthentication
+public class ProcessController extends BaseController {
+    @Autowired
+    private IdentityService                identityService;
+    @Autowired
+    private RepositoryService              repositoryService;
+    @Autowired
+    private RuntimeService                 runtimeService;
+    @Autowired
+    private TaskService                    taskService;
+    @Autowired
+    private ManagementService              managementService;
+    @Autowired
+    private FormService                    formService;
+    @Autowired
+    private HistoryService                 historyService;
+    @Autowired
+    private ProcessEngineConfigurationImpl processEngineConfiguration;
+
+    @RequestMapping(value = "/start/{processDefinitionId}", method = RequestMethod.POST)
+    @ResponseBody
+    public Result startProcess(@PathVariable("processDefinitionId") String processDefinitionId, HttpServletRequest request) {
+        Map<String, String> formProperties = new HashMap<>();
+
+        // 从request中读取参数然后转换
+        Map<String, String[]> parameterMap = request.getParameterMap();
+        Set<Map.Entry<String, String[]>> entrySet = parameterMap.entrySet();
+        for (Map.Entry<String, String[]> entry : entrySet) {
+            String key = entry.getKey();
+            formProperties.put(key, StringUtils.join(entry.getValue(), ","));
+        }
+        try {
+            identityService.setAuthenticatedUserId(((UserInfo) SecurityUtils.getSubject().getPrincipal()).getId().toString());
+            ProcessInstance processInstance = formService.submitStartFormData(processDefinitionId, formProperties);
+            return new Result(true, (Object) processInstance.getBusinessKey());
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return new Result(false, "失败");
+    }
+
+
+    @RequestMapping(value = "/history", method = RequestMethod.GET)
+    @ResponseBody
+    public Result list(Date start, Date end) {
+        String userId = ((UserInfo) SecurityUtils.getSubject().getPrincipal()).getId().toString();
+        HistoricProcessInstanceQuery query = historyService.createHistoricProcessInstanceQuery().startedBy(userId);
+        if (start != null) {
+            query.startedAfter(start);
+        }
+        if (end != null) {
+            query.startedBefore(end);
+        }
+        return new Result(true, query.list());
+    }
+}

Разница между файлами не показана из-за своего большого размера
+ 0 - 754
src/main/resources/stencilset.json


+ 3 - 2
src/main/vue/index.html

@@ -4,7 +4,8 @@
 <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width,initial-scale=1.0">
-    <title>admin</title>
+    <title>管理后台</title>
+    <link rel="icon" href="static/favicon.ico" />
     <script defer src="https://use.fontawesome.com/releases/v5.0.10/js/all.js" integrity="sha384-slN8GvtUJGnv6ca26v8EzVaR9DC58QEwsIk9q1QXdCU8Yu8ck/tL/5szYlBbqmS+" crossorigin="anonymous"></script>
 </head>
 
@@ -13,4 +14,4 @@
     <!-- built files will be auto injected -->
 </body>
 
-</html>
+</html>

+ 84 - 0
src/main/vue/src/components/DynamicForm.vue

@@ -0,0 +1,84 @@
+<template>
+    <el-form :model="formData" ref="form" label-position="right" label-width="100px" size="small" :rules="rules">
+        <el-form-item v-for="item in formDef" :prop="item.id" :label="item.name" :key="item.id">
+            <el-input v-if="item.type === 'string'" v-model="formData[item.id]"></el-input>
+            <el-select v-else-if="item.type === 'enum'" v-model="formData[item.id]">
+                <el-option v-for="(option,index) in item.enumValues" :label="option.name" :value="option.id" :key="index">
+                </el-option>
+            </el-select>
+            <el-date-picker v-else-if="item.type === 'date'" v-model="formData[item.id]" type="datetime" :format="item.datePattern" :value-format="item.datePattern">
+            </el-date-picker>
+            <el-switch v-else-if="item.type === 'boolean'" v-model="formData[item.id]">
+            </el-switch>
+        </el-form-item>
+    </el-form>
+</template>
+<script>
+export default {
+    props: {
+        formDef: {
+            type: Array,
+            required: true
+        },
+        value: {
+            type: Object
+        }
+    },
+    created() {
+        this.formData = this.val || {}
+    },
+    data() {
+        return {
+            formData: {}
+        }
+    },
+    computed: {
+        rules() {
+            let rules = {};
+            this.formDef.forEach(item => {
+                rules[item.id] = [{ required: true, message: `请填写${item.name}`, trigger: 'blur' }]
+            });
+            return rules;
+        }
+    },
+    methods: {
+        validate(fn) {
+            this.$refs.form.validate(valid => {
+                if (fn instanceof Function) {
+                    fn(valid)
+                }
+            })
+        },
+        clearValidate() {
+            this.$refs.form.clearValidate()
+        },
+        getData() {
+            let data = [];
+            for (let key in this.formData) {
+                data.push({
+                    id: key,
+                    value: this.formData[key]
+                })
+            }
+            return data;
+        }
+    },
+    watch: {
+        formDef() {
+            this.$refs.form.clearValidate()
+        },
+        value(val) {
+            if (val instanceof Object) {
+                this.formData = val
+            }
+        },
+        formData(val) {
+            this.$emit('input', val)
+        }
+    }
+}
+</script>
+<style lang="less" scoped>
+</style>
+
+

+ 115 - 7
src/main/vue/src/components/WeatherCard.vue

@@ -3,6 +3,13 @@
         <div slot="header" class="date">
             {{date}}
         </div>
+        <div class="weather-wrapper" v-if="weather">
+            <div class="info">
+                <div class="city">{{weather ? weather.basic.location : ''}}&nbsp;&nbsp;&nbsp;{{weather.now.cond_txt}}</div>
+                <div class="temp">{{weather.now.tmp}}°C</div>
+            </div>
+            <i :class="`icon wi ${iconMap[weather.now.cond_code]}`"></i>
+        </div>
     </el-card>
 </template>
 
@@ -13,28 +20,129 @@
 
     export default {
         created() {
-            axios.get('http://api.openweathermap.org/data/2.5/weather', {
+            axios.get('https://free-api.heweather.com/s6/weather/now', {
                 params: {
-                    q: 'nanjing,cn',
-                    appid: 'a3e7bdc246b811691b06aab13ccb0dbb',
-                    lang: 'zh'
+                    location: 'auto_ip',
+                    key: 'cd39b8d532784c5b881ed41eaea72e6d',
                 },
                 withCredentials: false
             }).then(res => {
-                console.log(res)
+                this.weather = res.data.HeWeather6[0]
             })
         },
         data() {
             return {
-                date: format(new Date(), 'YYYY/MM/DD dddd', {locale: zh})
+                date: format(new Date(), 'YYYY/MM/DD dddd', {locale: zh}),
+                weather: null,
+                iconMap: {
+                    '100': 'wi-day-sunny',
+                    '100n': 'wi-night-clear',
+                    '101': 'wi-cloudy',
+                    '102': 'wi-cloud',
+                    '103': 'wi-day-cloudy',
+                    '103n': 'wi-night-alt-cloudy',
+                    '104': 'wi-cloud',
+                    '104n': 'wi-cloud',
+                    '200': 'wi-windy',
+                    '201': 'wi-day-sunny',
+                    '202': 'wi-windy',
+                    '203': 'wi-windy',
+                    '204': 'wi-windy',
+                    '205': 'wi-strong-wind',
+                    '206': 'wi-strong-wind',
+                    '207': 'wi-strong-wind',
+                    '208': 'wi-strong-wind',
+                    '209': 'wi-storm-warning',
+                    '210': 'wi-storm-warning',
+                    '211': 'wi-hurricane',
+                    '212': 'wi-tornado',
+                    '213': 'wi-hurricane',
+                    '300': 'wi-day-showers',
+                    '300n': 'wi-night-alt-showers',
+                    '301': 'wi-day-showers',
+                    '301n': 'wi-night-alt-showers',
+                    '302': 'wi-day-storm-showers',
+                    '302n': 'wi-night-alt-storm-showers',
+                    '303': 'wi-day-storm-showers',
+                    '303n': 'wi-night-alt-storm-showers',
+                    '304': 'wi-day-snow-thunderstorm',
+                    '304n': 'wi-night-alt-snow-thunderstorm',
+                    '305': 'wi-rain',
+                    '306': 'wi-rain',
+                    '307': 'wi-rain',
+                    '308': 'wi-rain',
+                    '309': 'wi-rain',
+                    '310': 'wi-rain',
+                    '311': 'wi-rain',
+                    '312': 'wi-rain',
+                    '313': 'wi-sleet',
+                    '314': 'wi-rain',
+                    '315': 'wi-rain',
+                    '316': 'wi-rain',
+                    '317': 'wi-rain',
+                    '318': 'wi-rain',
+                    '399': 'wi-rain',
+                    '400': 'wi-snow',
+                    '401': 'wi-snow',
+                    '402': 'wi-snow',
+                    '403': 'wi-snow',
+                    '404': 'wi-sleet',
+                    '405': 'wi-rain-mix',
+                    '406': 'wi-rain-mix',
+                    '407': 'wi-day-snow',
+                    '407n': 'wi-night-alt-snow',
+                    '408': 'wi-snow',
+                    '409': 'wi-snow',
+                    '410': 'wi-snow',
+                    '499': 'wi-snow',
+                    '500': 'wi-fog',
+                    '501': 'wi-fog',
+                    '502': 'wi-day-haze',
+                    '503': 'wi-dust',
+                    '504': 'wi-dust',
+                    '507': 'wi-sandstorm',
+                    '509': 'wi-fog',
+                    '510': 'wi-fog',
+                    '511': 'wi-fog',
+                    '512': 'wi-fog',
+                    '513': 'wi-fog',
+                    '514': 'wi-fog',
+                    '515': 'wi-fog',
+                }
             }
         },
         computed: {}
     }
 </script>
-
 <style lang="less" scoped>
+    @import "../../static/weather_icons/less/weather-icons.less";
+
     .date {
         color: #666;
+        font-size: 14px;
+    }
+
+    .weather-wrapper {
+        display: flex;
+        align-items: center;
+        .icon {
+            font-size: 72px;
+            color: #666;
+        }
+        .info {
+            display: flex;
+            flex-direction: column;
+            flex-grow: 1;
+            .city {
+                font-size: 12px;
+                color: #999;
+            }
+            .temp {
+                font-size: 36px;
+                color: #333;
+                margin-top: 8px;
+            }
+        }
     }
+
 </style>

+ 18 - 9
src/main/vue/src/main.js

@@ -12,7 +12,7 @@ import VueAMap from 'vue-amap'
 import 'normalize.css/normalize.css'
 import 'element-ui/lib/theme-chalk/index.css'
 import './main.less'
-import {format} from 'date-fns'
+import { format } from 'date-fns'
 import zh from 'date-fns/locale/zh_cn'
 
 VueAMap.initAMapApiLoader({
@@ -34,7 +34,7 @@ Vue.prototype.$http = {
     get(params) {
         return new Promise((resolve, reject) => {
             if (params instanceof String) {
-                params = {url: params};
+                params = { url: params };
             } else if (!params instanceof Object) {
                 reject('params error');
                 return;
@@ -55,7 +55,7 @@ Vue.prototype.$http = {
             store.commit('updateFetchingData', true);
             axios.get(params.url, {
                 params: params.data
-            }, {withCredentials: true}).then(res => {
+            }, { withCredentials: true }).then(res => {
                 store.commit('updateFetchingData', false);
                 if (res.status === 200) {
                     resolve(res.data);
@@ -82,7 +82,7 @@ Vue.prototype.$http = {
     },
     post(params) {
         if (params instanceof String) {
-            params = {url: params};
+            params = { url: params };
         } else if (!params instanceof Object) {
             reject('params error');
             return;
@@ -105,7 +105,15 @@ Vue.prototype.$http = {
             for (let key in params.data) {
                 if (params.data.hasOwnProperty(key)) {
                     if (params.data[key] instanceof Array) {
-                        data.append(key, params.data[key].join());
+                        let hasObject = false;
+                        params.data[key].forEach(i => {
+                            if (i instanceof Object) {
+                                hasObject = true;
+                            }
+                        });
+                        if (!hasObject) {
+                            data.append(key, params.data[key].join());
+                        }
                     } else if (!(params.data[key] instanceof Object)) {
                         data.append(key, params.data[key]);
                     }
@@ -114,7 +122,7 @@ Vue.prototype.$http = {
         }
         return new Promise((resolve, reject) => {
             store.commit('updateFetchingData', true);
-            axios.post(params.url, data, {withCredentials: true}).then(res => {
+            axios.post(params.url, data, { withCredentials: true }).then(res => {
                 store.commit('updateFetchingData', false);
                 if (res.status === 200) {
                     resolve(res.data);
@@ -143,10 +151,11 @@ Vue.prototype.$http = {
 Vue.mixin({
     methods: {
         timeFormatter(row, column, cellValue, index) {
-            return format(new Date(cellValue), 'HH:mm', {locale: zh})
+            return format(new Date(cellValue), 'HH:mm', { locale: zh })
         },
         datetimeFormatter(row, column, cellValue, index) {
-            return format(new Date(cellValue), 'YYYY/MM/DD HH:mm', {locale: zh})
+            if (!cellValue) return ''
+            return format(new Date(cellValue), 'YYYY/MM/DD HH:mm', { locale: zh })
         }
     }
 });
@@ -170,6 +179,6 @@ new Vue({
     el: '#app',
     router,
     store,
-    components: {Main},
+    components: { Main },
     template: '<Main/>'
 });

+ 8 - 1
src/main/vue/src/pages/App.vue

@@ -1,7 +1,9 @@
 <template>
     <el-container id="app">
         <el-header class="header">
-            <div style="flex-grow: 1">一个很厉害的后台管理</div>
+            <div style="flex-grow: 1">
+                <router-link :to="{name:'dashboard'}">一个很厉害的后台管理</router-link>
+            </div>
             <el-dropdown @command="onCommand">
                 <img :src="userInfo ? userInfo.icon || '' : ''" class="avatar"/>
                 <el-dropdown-menu slot="dropdown">
@@ -148,6 +150,11 @@
             border: 1px solid #ebebeb;
             border-radius: 50%;
         }
+        a {
+            &:visited {
+                color: #D7E5F5;
+            }
+        }
     }
 
     .aside {

+ 2 - 2
src/main/vue/src/pages/Dashboard.vue

@@ -38,8 +38,8 @@
                 </el-card>
             </el-col>
         </el-row>
-        <el-row>
-            <el-col :xs="24" :sm="12" :lg="8">
+        <el-row :gutter="20">
+            <el-col :xs="24" :sm="12" :lg="6">
                 <weather-card></weather-card>
             </el-col>
         </el-row>

+ 94 - 157
src/main/vue/src/pages/MyProcesses.vue

@@ -2,97 +2,27 @@
     <div>
         <div class="filters-container">
             <el-select class="filter-item" v-model="selectedProcessDefinitionId" size="small">
-                <el-option v-for="item in processDefinitions" :label="item.name" :value="item.id"
-                           :key="item.id"></el-option>
+                <el-option v-for="item in processDefinitions" :label="item.name" :value="item.id" :key="item.id"></el-option>
             </el-select>
             <el-button @click="startProcess" type="primary" size="small" class="filter-item">发起
             </el-button>
         </div>
-        <el-table
-            :data="tableData"
-            :height="tableHeight"
-            row-key="id"
-            ref="table">
-            <el-table-column
-                v-if="multipleMode"
-                align="center"
-                type="selection"
-                min-width="50">
+        <el-table :data="tableData" :height="tableHeight" row-key="id" ref="table">
+            <el-table-column v-if="multipleMode" align="center" type="selection" min-width="50">
             </el-table-column>
-            <el-table-column
-                prop="id"
-                label="id"
-                width="150">
+            <el-table-column prop="id" label="id" width="150">
             </el-table-column>
-            <el-table-column
-                prop="name"
-                label="名称">
+            <el-table-column prop="processDefinitionName" label="名称">
             </el-table-column>
-            <el-table-column
-                prop="createTime"
-                label="创建时间"
-                :formatter="datetimeFormatter">
-            </el-table-column>
-            <el-table-column
-                prop="lastUpdateTime"
-                label="更新时间"
-                :formatter="datetimeFormatter">
-            </el-table-column>
-            <el-table-column
-                label="操作"
-                align="center"
-                width="300">
-                <template slot-scope="{row}">
-                    <el-button @click="editRow(row)" type="primary" size="mini" plain>编辑</el-button>
-                    <el-button @click="publishModel(row)" type="success" size="mini" plain>发布</el-button>
-                    <el-button @click="editRow(row)" size="mini" plain>导出</el-button>
-                    <el-button @click="deleteModel(row)" type="danger" size="mini" plain>删除</el-button>
-                </template>
+            <el-table-column prop="startTime" label="创建时间" :formatter="datetimeFormatter">
             </el-table-column>
         </el-table>
         <div class="pagination-wrapper">
-            <el-pagination
-                background
-                @size-change="pageSizeChange"
-                @current-change="currentPageChange"
-                :current-page="currentPage"
-                :page-sizes="[10, 20, 30, 40, 50]"
-                :page-size="pageSize"
-                layout="total, sizes, prev, pager, next, jumper"
-                :total="totalNumber">
+            <el-pagination background @size-change="pageSizeChange" @current-change="currentPageChange" :current-page="currentPage" :page-sizes="[10, 20, 30, 40, 50]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="totalNumber">
             </el-pagination>
         </div>
         <el-dialog :visible.sync="dialogVisible" title="发起流程">
-            <el-form :model="startFormModel" ref="startForm" label-position="right" label-width="100px" size="small"
-                     :rules="rules">
-                <el-form-item
-                    v-for="item in startForm"
-                    :prop="item.id"
-                    :label="item.name"
-                    :key="item.id">
-                    <el-input v-if="item.type === 'string'" v-model="startFormModel[item.id]"></el-input>
-                    <el-select
-                        v-else-if="item.type === 'enum'"
-                        v-model="startFormModel[item.id]">
-                        <el-option
-                            v-for="option in item.enumValues"
-                            :label="option.name"
-                            :value="option.id">
-                        </el-option>
-                    </el-select>
-                    <el-date-picker
-                        v-else-if="item.type === 'date'"
-                        v-model="startFormModel[item.id]"
-                        type="datetime"
-                        :format="item.datePattern"
-                        :value-format="item.datePattern">
-                    </el-date-picker>
-                    <el-switch
-                        v-else-if="item.type === 'boolean'"
-                        v-model="startFormModel[item.id]">
-                    </el-switch>
-                </el-form-item>
-            </el-form>
+            <dynamic-form ref="startForm" :formDef="startForm" v-model="startFormModel"></dynamic-form>
             <div slot="footer">
                 <el-button @click="dialogVisible = false" size="small">取消</el-button>
                 <el-button type="primary" @click="confirmStartProcess" :loading="loading" size="small">确定</el-button>
@@ -101,92 +31,99 @@
     </div>
 </template>
 <script>
-    import {mapState} from 'vuex'
-    import axios from 'axios'
+import { mapState } from 'vuex'
+import DynamicForm from '../components/DynamicForm'
+import axios from 'axios'
 
-    export default {
-        created() {
+export default {
+    created() {
+        this.getData();
+    },
+    data() {
+        return {
+            totalNumber: 0,
+            totalPage: 0,
+            currentPage: 1,
+            pageSize: 20,
+            tableData: [],
+            multipleMode: false,
+            loading: false,
+            processDefinitions: [],
+            selectedProcessDefinitionId: '',
+            dialogVisible: false,
+            startForm: [],
+            startFormModel: {},
+            enumValues: {}
+        }
+    },
+    computed: {
+        ...mapState(['tableHeight', 'userInfo']),
+        selection() {
+            return this.$refs.table.selection.map(i => i.id);
+        }
+    },
+    methods: {
+        pageSizeChange(size) {
+            this.pageSize = size;
             this.getData();
         },
-        data() {
-            return {
-                totalNumber: 0,
-                totalPage: 0,
-                currentPage: 1,
-                pageSize: 20,
-                tableData: [],
-                multipleMode: false,
-                loading: false,
-                processDefinitions: [],
-                selectedProcessDefinitionId: '',
-                dialogVisible: false,
-                startForm: [],
-                startFormModel: {},
-                enumValues: {}
-            }
+        currentPageChange(page) {
+            this.currentPage = page;
+            this.getData();
+        },
+        getData() {
+            this.$http.get({
+                url: '/rest/repository/process-definitions',
+                data: {
+                    suspended: false
+                }
+            }).then(res => {
+                this.processDefinitions = res.data;
+            });
+            this.$http.get({
+                url: `/activiti/process/history`,
+                data: {
+                }
+            }).then(res => {
+                this.tableData = res.data;
+            })
         },
-        computed: {
-            ...mapState(['tableHeight']),
-            selection() {
-                return this.$refs.table.selection.map(i => i.id);
-            },
-            rules() {
-                let rules = {};
-                this.startForm.forEach(item => {
-                    rules[item.id] = [{required: true, message: `请填写${item.name}`, trigger: 'blur'}]
-                });
-                return rules;
-            }
+        startProcess() {
+            this.$http.get({
+                url: '/rest/form/form-data',
+                data: {
+                    processDefinitionId: this.selectedProcessDefinitionId
+                }
+            }).then(res => {
+                this.startForm = res.formProperties;
+                this.startFormModel = {};
+                this.dialogVisible = true;
+                setTimeout(() => {
+                    this.$refs.startForm.clearValidate()
+                }, 50);
+            })
         },
-        methods: {
-            pageSizeChange(size) {
-                this.pageSize = size;
-                this.getData();
-            },
-            currentPageChange(page) {
-                this.currentPage = page;
-                this.getData();
-            },
-            getData() {
-                this.$http.get({
-                    url: '/rest/repository/process-definitions',
-                    data: {
-                        suspended: false
-                    }
-                }).then(res => {
-                    this.processDefinitions = res.data;
-                })
-            },
-            startProcess() {
-                this.$http.get({
-                    url: '/rest/form/form-data',
-                    data: {
-                        processDefinitionId: this.selectedProcessDefinitionId
-                    }
-                }).then(res => {
-                    this.startForm = res.formProperties;
-                    this.startFormModel = {};
-                    this.dialogVisible = true;
-                })
-            },
-            confirmStartProcess() {
-                this.$refs.startForm.validate(valid => {
-                    if (valid) {
-                        this.$http.post({
-                            url: `/activiti/startProcess/${this.selectedProcessDefinitionId}`,
-                            data: this.startFormModel
-                        }).then(res => {
-                            if (res.success) {
-                                this.dialogVisible = false;
-                                this.$message.success('成功');
-                            }
-                        })
-                    }
-                })
-            }
+        confirmStartProcess() {
+            this.$refs.startForm.validate(valid => {
+                if (valid) {
+                    this.$http.post({
+                        url: `/activiti/process/start/${this.selectedProcessDefinitionId}`,
+                        data: this.startFormModel
+                    }).then(res => {
+                        if (res.success) {
+                            this.dialogVisible = false;
+                            this.$message.success('成功');
+                            this.getData()
+                        }
+                    })
+                }
+            })
         }
+    },
+    components: {
+        DynamicForm
     }
+}
 </script>
 <style lang="less" scoped>
-
 </style>

+ 104 - 175
src/main/vue/src/pages/MyTasks.vue

@@ -1,210 +1,139 @@
 <template>
     <div>
         <div class="filters-container">
-            <el-input placeholder="输入关键字" size="small" v-model="name" clearable class="filter-item"></el-input>
-            <el-button @click="getData" type="primary" size="small" icon="el-icon-search" class="filter-item">搜索
-            </el-button>
-            <el-button @click="showCreateModelDialog" type="primary" size="small" icon="el-icon-edit"
-                       class="filter-item">创建
-            </el-button>
         </div>
-        <el-table
-            :data="tableData"
-            :height="tableHeight"
-            row-key="id"
-            ref="table">
-            <el-table-column
-                v-if="multipleMode"
-                align="center"
-                type="selection"
-                min-width="50">
+        <el-table :data="tableData" :height="tableHeight" row-key="id" ref="table">
+            <el-table-column v-if="multipleMode" align="center" type="selection" min-width="50">
             </el-table-column>
-            <el-table-column
-                prop="id"
-                label="id"
-                width="150">
+            <el-table-column prop="id" label="id" width="150">
             </el-table-column>
-            <el-table-column
-                prop="name"
-                label="名称">
+            <el-table-column prop="name" label="名称">
             </el-table-column>
-            <el-table-column
-                prop="createTime"
-                label="创建时间"
-                :formatter="datetimeFormatter">
+            <el-table-column prop="createTime" label="创建时间" :formatter="datetimeFormatter">
             </el-table-column>
-            <el-table-column
-                prop="lastUpdateTime"
-                label="更新时间"
-                :formatter="datetimeFormatter">
-            </el-table-column>
-            <el-table-column
-                label="操作"
-                align="center"
-                width="300">
+            <el-table-column label="操作" align="center" width="100">
                 <template slot-scope="{row}">
-                    <el-button @click="editRow(row)" type="primary" size="mini" plain>编辑</el-button>
-                    <el-button @click="publishModel(row)" type="success" size="mini" plain>发布</el-button>
-                    <el-button @click="editRow(row)" size="mini" plain>导出</el-button>
-                    <el-button @click="deleteModel(row)" type="danger" size="mini" plain>删除</el-button>
+                    <el-button v-if="row.assignee" @click="handle(row)" type="primary" size="mini" plain>办理</el-button>
+                    <el-button v-else @click="claim(row)" type="primary" size="mini" plain>签收</el-button>
                 </template>
             </el-table-column>
         </el-table>
         <div class="pagination-wrapper">
-            <el-pagination
-                background
-                @size-change="pageSizeChange"
-                @current-change="currentPageChange"
-                :current-page="currentPage"
-                :page-sizes="[10, 20, 30, 40, 50]"
-                :page-size="pageSize"
-                layout="total, sizes, prev, pager, next, jumper"
-                :total="totalNumber">
+            <el-pagination background @size-change="pageSizeChange" @current-change="currentPageChange" :current-page="currentPage" :page-sizes="[10, 20, 30, 40, 50]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="totalNumber">
             </el-pagination>
         </div>
-        <el-dialog :visible.sync="dialogVisible" title="创建菜单">
-            <el-form :model="newModel" ref="newModelForm" label-position="top" size="small">
-                <el-form-item label="名称" prop="name" :rules="[{required: true, message: '请填写名称', trigger: 'blur'}]">
-                    <el-input v-model="newModel.name"></el-input>
-                </el-form-item>
-                <el-form-item label="描述" prop="description"
-                              :rules="[{required: true, message: '请填写描述', trigger: 'blur'}]">
-                    <el-input v-model="newModel.description"></el-input>
-                </el-form-item>
-            </el-form>
+        <el-dialog :visible.sync="dialogVisible" title="办理">
+            <dynamic-form ref="taskForm" :formDef="taskForm" v-model="taskFormData"></dynamic-form>
             <div slot="footer">
                 <el-button @click="dialogVisible = false" size="small">取消</el-button>
-                <el-button type="primary" @click="createModel" :loading="loading" size="small">保存</el-button>
+                <el-button type="primary" @click="completeTask" :loading="loading" size="small">确定</el-button>
             </div>
         </el-dialog>
     </div>
 </template>
 <script>
-    import {mapState} from 'vuex'
-    import axios from 'axios'
+import { mapState } from 'vuex'
+import axios from 'axios'
+import DynamicForm from '../components/DynamicForm'
 
-    export default {
-        created() {
+export default {
+    created() {
+        this.getData();
+    },
+    data() {
+        return {
+            totalNumber: 0,
+            totalPage: 0,
+            currentPage: 1,
+            pageSize: 20,
+            tableData: [],
+            name: '',
+            multipleMode: false,
+            loading: false,
+            taskForm: [],
+            taskFormData: {},
+            dialogVisible: false,
+            selectedTaskId: null
+        }
+    },
+    computed: {
+        ...mapState(['tableHeight', 'userInfo']),
+        selection() {
+            return this.$refs.table.selection.map(i => i.id);
+        }
+    },
+    methods: {
+        pageSizeChange(size) {
+            this.pageSize = size;
             this.getData();
         },
-        data() {
-            return {
-                totalNumber: 0,
-                totalPage: 0,
-                currentPage: 1,
-                pageSize: 20,
-                tableData: [],
-                name: '',
-                multipleMode: false,
-                dialogVisible: false,
-                newModel: {
-                    name: '',
-                    description: ''
-                },
-                loading: false
-            }
-        },
-        computed: {
-            ...mapState(['tableHeight']),
-            selection() {
-                return this.$refs.table.selection.map(i => i.id);
-            }
+        currentPageChange(page) {
+            this.currentPage = page;
+            this.getData();
         },
-        methods: {
-            pageSizeChange(size) {
-                this.pageSize = size;
-                this.getData();
-            },
-            currentPageChange(page) {
-                this.currentPage = page;
-                this.getData();
-            },
-            getData() {
-                var data = {};
-                if (this.name) {
-                    data.name = this.name;
+        getData() {
+            this.$http.get({
+                url: '/rest/runtime/tasks',
+                data: {
+                    involvedUser: this.userInfo.id
                 }
-                this.$http.get({
-                    url: '/activiti/processList',
-                    data: data
-                }).then(res => {
-                    if (res.success) {
-                        this.totalNumber = res.data.length;
-                        let i = this.currentPage - 1;
-                        this.tableData = res.data.splice((i < 0 ? 0 : i) * this.pageSize, this.pageSize);
-                    }
-                })
-            },
-            toggleMultipleMode(multipleMode) {
-                this.multipleMode = multipleMode;
-                if (!multipleMode) {
-                    this.$refs.table.clearSelection();
+            }).then(res => {
+                this.tableData = res.data;
+            })
+        },
+        handle(row) {
+            this.$http.get({
+                url: '/rest/form/form-data',
+                data: {
+                    taskId: row.id
                 }
-            },
-            editRow(row) {
-                window.open(`${this.$baseUrl}/modeler.html?modelId=${row.id}`);
-            },
-            operation1() {
-                this.$notify({
-                    title: '提示',
-                    message: this.selection
-                });
-            },
-            operation2() {
-                this.$message('操作2');
-            },
-            showCreateModelDialog() {
-                this.newModel = {
-                    name: '',
-                    description: ''
-                };
+            }).then(res => {
+                this.selectedTaskId = row.id;
+                this.taskForm = res.formProperties;
+                this.taskFormData = {};
                 this.dialogVisible = true;
-            },
-            createModel() {
-                this.$refs.newModelForm.validate(valid => {
-                    if (valid) {
-                        this.loading = true;
-                        this.$http.get({
-                            url: '/activiti/createModel',
-                            data: this.newModel
-                        }).then(res => {
-                            this.loading = false;
-                            if (res.success) {
-                                this.dialogVisible = false;
-                                this.$message.success('创建成功');
-                                this.getData();
-                            }
-                        }).catch(() => {
-                            this.loading = false;
-                        })
-                    }
-                })
-            },
-            publishModel(row) {
-                this.$http.get({
-                    url: '/activiti/publishModel',
-                    data: {
-                        id: row.id
-                    }
-                }).then(res => {
-                    if (res.success) {
-                        this.$message.success('发布成功');
-                    }
-                })
-            },
-            deleteModel(row) {
-                this.$alert('确认删除?', '警告', {type: 'error'}).then(() => {
-                    return axios.delete(`/rest/repository/models/${row.id}`)
-                }).then(() => {
-                    this.$message.success("删除成功");
-                    this.getData();
-                }).catch(() => {
-                    this.$message.error("删除失败");
-                })
+                setTimeout(() => {
+                    this.$refs.taskForm.clearValidate()
+                }, 50);
+            })
+        },
+        claim(row) {
+
+        },
+        completeTask() {
+            this.$refs.taskForm.validate(valid => {
+                if (valid) {
+                    axios.post('rest/form/form-data', {
+                        taskId: this.selectedTaskId,
+                        properties: this.$refs.taskForm.getData()
+                    }).then(res => {
+                        this.dialogVisible = false;
+                        this.$message.success('成功');
+                        this.getData()
+                    })
+                }
+            })
+        },
+        toggleMultipleMode(multipleMode) {
+            this.multipleMode = multipleMode;
+            if (!multipleMode) {
+                this.$refs.table.clearSelection();
             }
+        },
+        operation1() {
+            this.$notify({
+                title: '提示',
+                message: this.selection
+            });
+        },
+        operation2() {
+            this.$message('操作2');
         }
+    },
+    components: {
+        DynamicForm
     }
+}
 </script>
 <style lang="less" scoped>
-
 </style>

+ 94 - 180
src/main/vue/src/pages/ProcessDefinitions.vue

@@ -1,54 +1,24 @@
 <template>
     <div>
-        <div class="filters-container">
-            <el-input placeholder="输入关键字" size="small" v-model="name" clearable class="filter-item"></el-input>
-            <el-button @click="getData" type="primary" size="small" icon="el-icon-search" class="filter-item">搜索
-            </el-button>
-            <el-button @click="showCreateModelDialog" type="primary" size="small" icon="el-icon-edit"
-                       class="filter-item">创建
-            </el-button>
-        </div>
-        <el-table
-            :data="tableData"
-            :height="tableHeight"
-            row-key="id"
-            ref="table">
-            <el-table-column
-                v-if="multipleMode"
-                align="center"
-                type="selection"
-                min-width="50">
+        <div class="filters-container"></div>
+        <el-table :data="tableData" :height="tableHeight" row-key="id" ref="table">
+            <el-table-column v-if="multipleMode" align="center" type="selection" min-width="50">
             </el-table-column>
-            <el-table-column
-                prop="id"
-                label="id"
-                width="150">
+            <el-table-column prop="id" label="id" width="150">
             </el-table-column>
-            <el-table-column
-                prop="name"
-                label="名称">
+            <el-table-column prop="name" label="名称">
             </el-table-column>
-            <el-table-column
-                prop="description"
-                label="描述">
+            <el-table-column prop="description" label="描述">
             </el-table-column>
-            <el-table-column
-                prop="version"
-                label="版本"
-                align="center">
+            <el-table-column prop="version" label="版本" align="center">
             </el-table-column>
-            <el-table-column
-                label="状态"
-                align="center">
+            <el-table-column label="状态" align="center">
                 <template slot-scope="{row}">
                     <el-tag size="mini" type="info" v-if="row.suspended">已挂起</el-tag>
                     <el-tag size="mini" type="success" v-else>已激活</el-tag>
                 </template>
             </el-table-column>
-            <el-table-column
-                label="操作"
-                align="center"
-                width="200">
+            <el-table-column label="操作" align="center" width="200">
                 <template slot-scope="{row}">
                     <el-button @click="changeState(row, true)" type="primary" size="mini" plain v-if="row.suspended">激活
                     </el-button>
@@ -58,163 +28,107 @@
             </el-table-column>
         </el-table>
         <div class="pagination-wrapper">
-            <el-pagination
-                background
-                @size-change="pageSizeChange"
-                @current-change="currentPageChange"
-                :current-page="currentPage"
-                :page-sizes="[10, 20, 30, 40, 50]"
-                :page-size="pageSize"
-                layout="total, sizes, prev, pager, next, jumper"
-                :total="totalNumber">
+            <el-pagination background @size-change="pageSizeChange" @current-change="currentPageChange" :current-page="currentPage" :page-sizes="[10, 20, 30, 40, 50]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="totalNumber">
             </el-pagination>
         </div>
-        <el-dialog :visible.sync="dialogVisible" title="创建流程">
-            <el-form :model="newModel" ref="newModelForm" label-position="top" size="small">
-                <el-form-item label="名称" prop="name" :rules="[{required: true, message: '请填写名称', trigger: 'blur'}]">
-                    <el-input v-model="newModel.name"></el-input>
-                </el-form-item>
-                <el-form-item label="描述" prop="description"
-                              :rules="[{required: true, message: '请填写描述', trigger: 'blur'}]">
-                    <el-input v-model="newModel.description"></el-input>
-                </el-form-item>
-            </el-form>
-            <div slot="footer">
-                <el-button @click="dialogVisible = false" size="small">取消</el-button>
-                <el-button type="primary" @click="createModel" :loading="loading" size="small">保存</el-button>
-            </div>
-        </el-dialog>
     </div>
 </template>
 <script>
-    import {mapState} from 'vuex'
-    import axios from 'axios'
+import { mapState } from 'vuex'
+import axios from 'axios'
 
-    export default {
-        created() {
+export default {
+    created() {
+        this.getData();
+    },
+    data() {
+        return {
+            totalNumber: 0,
+            totalPage: 0,
+            currentPage: 1,
+            pageSize: 20,
+            tableData: [],
+            name: '',
+            multipleMode: false,
+            loading: false
+        }
+    },
+    computed: {
+        ...mapState(['tableHeight']),
+        selection() {
+            return this.$refs.table.selection.map(i => i.id);
+        }
+    },
+    methods: {
+        pageSizeChange(size) {
+            this.pageSize = size;
             this.getData();
         },
-        data() {
-            return {
-                totalNumber: 0,
-                totalPage: 0,
-                currentPage: 1,
-                pageSize: 20,
-                tableData: [],
-                name: '',
-                multipleMode: false,
-                dialogVisible: false,
-                newModel: {
-                    name: '',
-                    description: ''
-                },
-                loading: false
+        currentPageChange(page) {
+            this.currentPage = page;
+            this.getData();
+        },
+        getData() {
+            var data = {};
+            if (this.name) {
+                data.name = this.name;
             }
+            this.$http.get({
+                url: '/rest/repository/process-definitions',
+                data: data
+            }).then(res => {
+                this.totalNumber = res.data.length;
+                let i = this.currentPage - 1;
+                this.tableData = res.data.splice((i < 0 ? 0 : i) * this.pageSize, this.pageSize);
+            })
         },
-        computed: {
-            ...mapState(['tableHeight']),
-            selection() {
-                return this.$refs.table.selection.map(i => i.id);
+        toggleMultipleMode(multipleMode) {
+            this.multipleMode = multipleMode;
+            if (!multipleMode) {
+                this.$refs.table.clearSelection();
             }
         },
-        methods: {
-            pageSizeChange(size) {
-                this.pageSize = size;
-                this.getData();
-            },
-            currentPageChange(page) {
-                this.currentPage = page;
-                this.getData();
-            },
-            getData() {
-                var data = {};
-                if (this.name) {
-                    data.name = this.name;
-                }
-                this.$http.get({
-                    url: '/rest/repository/process-definitions',
-                    data: data
-                }).then(res => {
-                    this.totalNumber = res.data.length;
-                    let i = this.currentPage - 1;
-                    this.tableData = res.data.splice((i < 0 ? 0 : i) * this.pageSize, this.pageSize);
-                })
-            },
-            toggleMultipleMode(multipleMode) {
-                this.multipleMode = multipleMode;
-                if (!multipleMode) {
-                    this.$refs.table.clearSelection();
-                }
-            },
-            editRow(row) {
-                window.open(`${this.$baseUrl}/modeler.html?modelId=${row.id}`);
-            },
-            operation1() {
-                this.$notify({
-                    title: '提示',
-                    message: this.selection
-                });
-            },
-            operation2() {
-                this.$message('操作2');
-            },
-            showCreateModelDialog() {
-                this.newModel = {
-                    name: '',
-                    description: ''
-                };
-                this.dialogVisible = true;
-            },
-            createModel() {
-                this.$refs.newModelForm.validate(valid => {
-                    if (valid) {
-                        this.loading = true;
-                        this.$http.get({
-                            url: 'activiti/createModel',
-                            data: this.newModel
-                        }).then(res => {
-                            this.loading = false;
-                            if (res.success) {
-                                this.dialogVisible = false;
-                                this.$message.success('创建成功');
-                                this.getData();
-                            }
-                        }).catch(() => {
-                            this.loading = false;
-                        })
-                    }
+        editRow(row) {
+            window.open(`${this.$baseUrl}/modeler.html?modelId=${row.id}`);
+        },
+        operation1() {
+            this.$notify({
+                title: '提示',
+                message: this.selection
+            });
+        },
+        operation2() {
+            this.$message('操作2');
+        },
+        changeState(row, state) {
+            this.$alert(`确认${state ? '激活' : '挂起'}?`, '警告', { type: 'warning' }).then(() => {
+                return axios.put(`rest/repository/process-definitions/${row.id}`, {
+                    action: state ? 'activate' : 'suspend',
+                    includeProcessInstances: false
                 })
-            },
-            changeState(row, state) {
-                this.$alert(`确认${state ? '激活' : '挂起'}?`, '警告', {type: 'warning'}).then(() => {
-                    return axios.put(`rest/repository/process-definitions/${row.id}`, {
-                        action: state ? 'activate' : 'suspend',
-                        includeProcessInstances: false
-                    })
-                }).then(() => {
-                    this.$message.success("操作成功");
-                    this.getData();
-                }).catch(res => {
-                    if (res === 'cancel') {
+            }).then(() => {
+                this.$message.success("操作成功");
+                this.getData();
+            }).catch(res => {
+                if (res === 'cancel') {
 
-                    } else {
-                        this.$message.error("操作失败");
-                    }
-                })
-            },
-            deleteDeployment(row) {
-                this.$alert('确认删除?', '警告', {type: 'error'}).then(() => {
-                    return axios.delete(`rest/repository/deployments/${row.deploymentId}`)
-                }).then(() => {
-                    this.$message.success("删除成功");
-                    this.getData();
-                }).catch(() => {
-                    this.$message.error("删除失败");
-                })
-            }
+                } else {
+                    this.$message.error("操作失败");
+                }
+            })
+        },
+        deleteDeployment(row) {
+            this.$alert('确认删除?', '警告', { type: 'error' }).then(() => {
+                return axios.delete(`rest/repository/deployments/${row.deploymentId}`)
+            }).then(() => {
+                this.$message.success("删除成功");
+                this.getData();
+            }).catch(() => {
+                this.$message.error("删除失败");
+            })
         }
     }
+}
 </script>
 <style lang="less" scoped>
-
 </style>

+ 126 - 159
src/main/vue/src/pages/ProcessModels.vue

@@ -4,44 +4,21 @@
             <el-input placeholder="输入关键字" size="small" v-model="name" clearable class="filter-item"></el-input>
             <el-button @click="getData" type="primary" size="small" icon="el-icon-search" class="filter-item">搜索
             </el-button>
-            <el-button @click="showCreateModelDialog" type="primary" size="small" icon="el-icon-edit"
-                       class="filter-item">创建
+            <el-button @click="showCreateModelDialog" type="primary" size="small" icon="el-icon-edit" class="filter-item">创建
             </el-button>
         </div>
-        <el-table
-            :data="tableData"
-            :height="tableHeight"
-            row-key="id"
-            ref="table">
-            <el-table-column
-                v-if="multipleMode"
-                align="center"
-                type="selection"
-                min-width="50">
+        <el-table :data="tableData" :height="tableHeight" row-key="id" ref="table">
+            <el-table-column v-if="multipleMode" align="center" type="selection" min-width="50">
             </el-table-column>
-            <el-table-column
-                prop="id"
-                label="id"
-                width="150">
+            <el-table-column prop="id" label="id" width="150">
             </el-table-column>
-            <el-table-column
-                prop="name"
-                label="名称">
+            <el-table-column prop="name" label="名称">
             </el-table-column>
-            <el-table-column
-                prop="createTime"
-                label="创建时间"
-                :formatter="datetimeFormatter">
+            <el-table-column prop="createTime" label="创建时间" :formatter="datetimeFormatter">
             </el-table-column>
-            <el-table-column
-                prop="lastUpdateTime"
-                label="更新时间"
-                :formatter="datetimeFormatter">
+            <el-table-column prop="lastUpdateTime" label="更新时间" :formatter="datetimeFormatter">
             </el-table-column>
-            <el-table-column
-                label="操作"
-                align="center"
-                width="300">
+            <el-table-column label="操作" align="center" width="300">
                 <template slot-scope="{row}">
                     <el-button @click="editRow(row)" type="primary" size="mini" plain>编辑</el-button>
                     <el-button @click="publishModel(row)" type="success" size="mini" plain>发布</el-button>
@@ -51,15 +28,7 @@
             </el-table-column>
         </el-table>
         <div class="pagination-wrapper">
-            <el-pagination
-                background
-                @size-change="pageSizeChange"
-                @current-change="currentPageChange"
-                :current-page="currentPage"
-                :page-sizes="[10, 20, 30, 40, 50]"
-                :page-size="pageSize"
-                layout="total, sizes, prev, pager, next, jumper"
-                :total="totalNumber">
+            <el-pagination background @size-change="pageSizeChange" @current-change="currentPageChange" :current-page="currentPage" :page-sizes="[10, 20, 30, 40, 50]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="totalNumber">
             </el-pagination>
         </div>
         <el-dialog :visible.sync="dialogVisible" title="创建菜单">
@@ -67,8 +36,7 @@
                 <el-form-item label="名称" prop="name" :rules="[{required: true, message: '请填写名称', trigger: 'blur'}]">
                     <el-input v-model="newModel.name"></el-input>
                 </el-form-item>
-                <el-form-item label="描述" prop="description"
-                              :rules="[{required: true, message: '请填写描述', trigger: 'blur'}]">
+                <el-form-item label="描述" prop="description" :rules="[{required: true, message: '请填写描述', trigger: 'blur'}]">
                     <el-input v-model="newModel.description"></el-input>
                 </el-form-item>
             </el-form>
@@ -80,135 +48,134 @@
     </div>
 </template>
 <script>
-    import {mapState} from 'vuex'
-    import axios from 'axios'
+import { mapState } from 'vuex'
+import axios from 'axios'
 
-    export default {
-        created() {
+export default {
+    created() {
+        this.getData();
+    },
+    data() {
+        return {
+            totalNumber: 0,
+            totalPage: 0,
+            currentPage: 1,
+            pageSize: 20,
+            tableData: [],
+            name: '',
+            multipleMode: false,
+            dialogVisible: false,
+            newModel: {
+                name: '',
+                description: ''
+            },
+            loading: false
+        }
+    },
+    computed: {
+        ...mapState(['tableHeight']),
+        selection() {
+            return this.$refs.table.selection.map(i => i.id);
+        }
+    },
+    methods: {
+        pageSizeChange(size) {
+            this.pageSize = size;
             this.getData();
         },
-        data() {
-            return {
-                totalNumber: 0,
-                totalPage: 0,
-                currentPage: 1,
-                pageSize: 20,
-                tableData: [],
-                name: '',
-                multipleMode: false,
-                dialogVisible: false,
-                newModel: {
-                    name: '',
-                    description: ''
-                },
-                loading: false
+        currentPageChange(page) {
+            this.currentPage = page;
+            this.getData();
+        },
+        getData() {
+            var data = {};
+            if (this.name) {
+                data.name = this.name;
             }
+            this.$http.get({
+                url: '/activiti/model/list',
+                data: data
+            }).then(res => {
+                if (res.success) {
+                    this.totalNumber = res.data.length;
+                    let i = this.currentPage - 1;
+                    this.tableData = res.data.splice((i < 0 ? 0 : i) * this.pageSize, this.pageSize);
+                }
+            })
         },
-        computed: {
-            ...mapState(['tableHeight']),
-            selection() {
-                return this.$refs.table.selection.map(i => i.id);
+        toggleMultipleMode(multipleMode) {
+            this.multipleMode = multipleMode;
+            if (!multipleMode) {
+                this.$refs.table.clearSelection();
             }
         },
-        methods: {
-            pageSizeChange(size) {
-                this.pageSize = size;
-                this.getData();
-            },
-            currentPageChange(page) {
-                this.currentPage = page;
-                this.getData();
-            },
-            getData() {
-                var data = {};
-                if (this.name) {
-                    data.name = this.name;
+        editRow(row) {
+            window.open(`${this.$baseUrl}/modeler.html?modelId=${row.id}`);
+        },
+        operation1() {
+            this.$notify({
+                title: '提示',
+                message: this.selection
+            });
+        },
+        operation2() {
+            this.$message('操作2');
+        },
+        showCreateModelDialog() {
+            this.newModel = {
+                name: '',
+                description: ''
+            };
+            this.dialogVisible = true;
+        },
+        createModel() {
+            this.$refs.newModelForm.validate(valid => {
+                if (valid) {
+                    this.loading = true;
+                    this.$http.get({
+                        url: '/activiti/model/create',
+                        data: this.newModel
+                    }).then(res => {
+                        this.loading = false;
+                        if (res.success) {
+                            this.dialogVisible = false;
+                            this.$message.success('创建成功');
+                            this.getData();
+                        }
+                    }).catch(() => {
+                        this.loading = false;
+                    })
                 }
-                this.$http.get({
-                    url: '/activiti/processList',
-                    data: data
-                }).then(res => {
-                    if (res.success) {
-                        this.totalNumber = res.data.length;
-                        let i = this.currentPage - 1;
-                        this.tableData = res.data.splice((i < 0 ? 0 : i) * this.pageSize, this.pageSize);
-                    }
-                })
-            },
-            toggleMultipleMode(multipleMode) {
-                this.multipleMode = multipleMode;
-                if (!multipleMode) {
-                    this.$refs.table.clearSelection();
+            })
+        },
+        publishModel(row) {
+            this.$http.get({
+                url: '/activiti/model/publish',
+                data: {
+                    id: row.id
                 }
-            },
-            editRow(row) {
-                window.open(`${this.$baseUrl}/modeler.html?modelId=${row.id}`);
-            },
-            operation1() {
-                this.$notify({
-                    title: '提示',
-                    message: this.selection
-                });
-            },
-            operation2() {
-                this.$message('操作2');
-            },
-            showCreateModelDialog() {
-                this.newModel = {
-                    name: '',
-                    description: ''
-                };
-                this.dialogVisible = true;
-            },
-            createModel() {
-                this.$refs.newModelForm.validate(valid => {
-                    if (valid) {
-                        this.loading = true;
-                        this.$http.get({
-                            url: '/activiti/createModel',
-                            data: this.newModel
-                        }).then(res => {
-                            this.loading = false;
-                            if (res.success) {
-                                this.dialogVisible = false;
-                                this.$message.success('创建成功');
-                                this.getData();
-                            }
-                        }).catch(() => {
-                            this.loading = false;
-                        })
-                    }
-                })
-            },
-            publishModel(row) {
-                this.$http.get({
-                    url: '/activiti/publishModel',
-                    data: {
-                        id: row.id
-                    }
-                }).then(res => {
-                    if (res.success) {
-                        this.$message.success('发布成功');
-                    }
-                })
-            },
-            deleteModel(row) {
-                this.$alert('确认删除?', '警告', {type: 'error'}).then(() => {
-                    return axios.delete(`/rest/repository/models/${row.id}`)
-                }).then(() => {
-                    this.$message.success("删除成功");
-                    this.getData();
-                }).catch(() => {
-                    if (res === 'cancel') {
+            }).then(res => {
+                if (res.success) {
+                    this.$message.success('发布成功');
+                }
+            })
+        },
+        deleteModel(row) {
+            this.$alert('确认删除?', '警告', { type: 'error' }).then(() => {
+                return axios.delete(`/rest/repository/models/${row.id}`)
+            }).then(() => {
+                this.$message.success("删除成功");
+                this.getData();
+            }).catch(() => {
+                if (res === 'cancel') {
 
-                    } else {
-                        this.$message.error("删除失败");
-                    }
-                })
-            }
+                } else {
+                    this.$message.error("删除失败");
+                }
+            })
         }
     }
+}
 </script>
 <style lang="less" scoped>
-
 </style>

+ 1 - 2
src/main/vue/src/router/index.js

@@ -9,7 +9,6 @@ const router = new Router({
     routes: [
         {
             path: '/',
-            name: 'admin',
             component: () => import('../pages/App'),
             children: [
                 {
@@ -143,7 +142,7 @@ const router = new Router({
             name: 'login',
             component: () => import('../pages/Login')
         },
-        
+
         {
             path: '/appLineChart',
             name: 'appLineChart',

BIN
src/main/vue/static/favicon.ico


+ 5331 - 0
src/main/vue/static/weather_icons/css/weather-icons-wind.css

@@ -0,0 +1,5331 @@
+@font-face {
+  font-family: 'weathericons';
+  src: url('../font/weathericons-regular-webfont.eot');
+  src: url('../font/weathericons-regular-webfont.eot?#iefix') format('embedded-opentype'), url('../font/weathericons-regular-webfont.woff2') format('woff2'), url('../font/weathericons-regular-webfont.woff') format('woff'), url('../font/weathericons-regular-webfont.ttf') format('truetype'), url('../font/weathericons-regular-webfont.svg#weather_iconsregular') format('svg');
+  font-weight: normal;
+  font-style: normal;
+}
+.wi {
+  display: inline-block;
+  font-family: 'weathericons';
+  font-style: normal;
+  font-weight: normal;
+  line-height: 1;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+.wi-fw {
+  text-align: center;
+  width: 1.4em;
+}
+.wi-rotate-90 {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
+  -webkit-transform: rotate(90deg);
+  -ms-transform: rotate(90deg);
+  transform: rotate(90deg);
+}
+.wi-rotate-180 {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
+  -webkit-transform: rotate(180deg);
+  -ms-transform: rotate(180deg);
+  transform: rotate(180deg);
+}
+.wi-rotate-270 {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
+  -webkit-transform: rotate(270deg);
+  -ms-transform: rotate(270deg);
+  transform: rotate(270deg);
+}
+.wi-flip-horizontal {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
+  -webkit-transform: scale(-1, 1);
+  -ms-transform: scale(-1, 1);
+  transform: scale(-1, 1);
+}
+.wi-flip-vertical {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
+  -webkit-transform: scale(1, -1);
+  -ms-transform: scale(1, -1);
+  transform: scale(1, -1);
+}
+.wi-wind:before {
+  content: "\f0b1";
+}
+.wi-wind.towards-0-deg {
+  -webkit-transform: rotate(0deg);
+  -moz-transform: rotate(0deg);
+  -ms-transform: rotate(0deg);
+  -o-transform: rotate(0deg);
+  transform: rotate(0deg);
+}
+.wi-wind.towards-1-deg {
+  -webkit-transform: rotate(1deg);
+  -moz-transform: rotate(1deg);
+  -ms-transform: rotate(1deg);
+  -o-transform: rotate(1deg);
+  transform: rotate(1deg);
+}
+.wi-wind.towards-2-deg {
+  -webkit-transform: rotate(2deg);
+  -moz-transform: rotate(2deg);
+  -ms-transform: rotate(2deg);
+  -o-transform: rotate(2deg);
+  transform: rotate(2deg);
+}
+.wi-wind.towards-3-deg {
+  -webkit-transform: rotate(3deg);
+  -moz-transform: rotate(3deg);
+  -ms-transform: rotate(3deg);
+  -o-transform: rotate(3deg);
+  transform: rotate(3deg);
+}
+.wi-wind.towards-4-deg {
+  -webkit-transform: rotate(4deg);
+  -moz-transform: rotate(4deg);
+  -ms-transform: rotate(4deg);
+  -o-transform: rotate(4deg);
+  transform: rotate(4deg);
+}
+.wi-wind.towards-5-deg {
+  -webkit-transform: rotate(5deg);
+  -moz-transform: rotate(5deg);
+  -ms-transform: rotate(5deg);
+  -o-transform: rotate(5deg);
+  transform: rotate(5deg);
+}
+.wi-wind.towards-6-deg {
+  -webkit-transform: rotate(6deg);
+  -moz-transform: rotate(6deg);
+  -ms-transform: rotate(6deg);
+  -o-transform: rotate(6deg);
+  transform: rotate(6deg);
+}
+.wi-wind.towards-7-deg {
+  -webkit-transform: rotate(7deg);
+  -moz-transform: rotate(7deg);
+  -ms-transform: rotate(7deg);
+  -o-transform: rotate(7deg);
+  transform: rotate(7deg);
+}
+.wi-wind.towards-8-deg {
+  -webkit-transform: rotate(8deg);
+  -moz-transform: rotate(8deg);
+  -ms-transform: rotate(8deg);
+  -o-transform: rotate(8deg);
+  transform: rotate(8deg);
+}
+.wi-wind.towards-9-deg {
+  -webkit-transform: rotate(9deg);
+  -moz-transform: rotate(9deg);
+  -ms-transform: rotate(9deg);
+  -o-transform: rotate(9deg);
+  transform: rotate(9deg);
+}
+.wi-wind.towards-10-deg {
+  -webkit-transform: rotate(10deg);
+  -moz-transform: rotate(10deg);
+  -ms-transform: rotate(10deg);
+  -o-transform: rotate(10deg);
+  transform: rotate(10deg);
+}
+.wi-wind.towards-11-deg {
+  -webkit-transform: rotate(11deg);
+  -moz-transform: rotate(11deg);
+  -ms-transform: rotate(11deg);
+  -o-transform: rotate(11deg);
+  transform: rotate(11deg);
+}
+.wi-wind.towards-12-deg {
+  -webkit-transform: rotate(12deg);
+  -moz-transform: rotate(12deg);
+  -ms-transform: rotate(12deg);
+  -o-transform: rotate(12deg);
+  transform: rotate(12deg);
+}
+.wi-wind.towards-13-deg {
+  -webkit-transform: rotate(13deg);
+  -moz-transform: rotate(13deg);
+  -ms-transform: rotate(13deg);
+  -o-transform: rotate(13deg);
+  transform: rotate(13deg);
+}
+.wi-wind.towards-14-deg {
+  -webkit-transform: rotate(14deg);
+  -moz-transform: rotate(14deg);
+  -ms-transform: rotate(14deg);
+  -o-transform: rotate(14deg);
+  transform: rotate(14deg);
+}
+.wi-wind.towards-15-deg {
+  -webkit-transform: rotate(15deg);
+  -moz-transform: rotate(15deg);
+  -ms-transform: rotate(15deg);
+  -o-transform: rotate(15deg);
+  transform: rotate(15deg);
+}
+.wi-wind.towards-16-deg {
+  -webkit-transform: rotate(16deg);
+  -moz-transform: rotate(16deg);
+  -ms-transform: rotate(16deg);
+  -o-transform: rotate(16deg);
+  transform: rotate(16deg);
+}
+.wi-wind.towards-17-deg {
+  -webkit-transform: rotate(17deg);
+  -moz-transform: rotate(17deg);
+  -ms-transform: rotate(17deg);
+  -o-transform: rotate(17deg);
+  transform: rotate(17deg);
+}
+.wi-wind.towards-18-deg {
+  -webkit-transform: rotate(18deg);
+  -moz-transform: rotate(18deg);
+  -ms-transform: rotate(18deg);
+  -o-transform: rotate(18deg);
+  transform: rotate(18deg);
+}
+.wi-wind.towards-19-deg {
+  -webkit-transform: rotate(19deg);
+  -moz-transform: rotate(19deg);
+  -ms-transform: rotate(19deg);
+  -o-transform: rotate(19deg);
+  transform: rotate(19deg);
+}
+.wi-wind.towards-20-deg {
+  -webkit-transform: rotate(20deg);
+  -moz-transform: rotate(20deg);
+  -ms-transform: rotate(20deg);
+  -o-transform: rotate(20deg);
+  transform: rotate(20deg);
+}
+.wi-wind.towards-21-deg {
+  -webkit-transform: rotate(21deg);
+  -moz-transform: rotate(21deg);
+  -ms-transform: rotate(21deg);
+  -o-transform: rotate(21deg);
+  transform: rotate(21deg);
+}
+.wi-wind.towards-22-deg {
+  -webkit-transform: rotate(22deg);
+  -moz-transform: rotate(22deg);
+  -ms-transform: rotate(22deg);
+  -o-transform: rotate(22deg);
+  transform: rotate(22deg);
+}
+.wi-wind.towards-23-deg {
+  -webkit-transform: rotate(23deg);
+  -moz-transform: rotate(23deg);
+  -ms-transform: rotate(23deg);
+  -o-transform: rotate(23deg);
+  transform: rotate(23deg);
+}
+.wi-wind.towards-24-deg {
+  -webkit-transform: rotate(24deg);
+  -moz-transform: rotate(24deg);
+  -ms-transform: rotate(24deg);
+  -o-transform: rotate(24deg);
+  transform: rotate(24deg);
+}
+.wi-wind.towards-25-deg {
+  -webkit-transform: rotate(25deg);
+  -moz-transform: rotate(25deg);
+  -ms-transform: rotate(25deg);
+  -o-transform: rotate(25deg);
+  transform: rotate(25deg);
+}
+.wi-wind.towards-26-deg {
+  -webkit-transform: rotate(26deg);
+  -moz-transform: rotate(26deg);
+  -ms-transform: rotate(26deg);
+  -o-transform: rotate(26deg);
+  transform: rotate(26deg);
+}
+.wi-wind.towards-27-deg {
+  -webkit-transform: rotate(27deg);
+  -moz-transform: rotate(27deg);
+  -ms-transform: rotate(27deg);
+  -o-transform: rotate(27deg);
+  transform: rotate(27deg);
+}
+.wi-wind.towards-28-deg {
+  -webkit-transform: rotate(28deg);
+  -moz-transform: rotate(28deg);
+  -ms-transform: rotate(28deg);
+  -o-transform: rotate(28deg);
+  transform: rotate(28deg);
+}
+.wi-wind.towards-29-deg {
+  -webkit-transform: rotate(29deg);
+  -moz-transform: rotate(29deg);
+  -ms-transform: rotate(29deg);
+  -o-transform: rotate(29deg);
+  transform: rotate(29deg);
+}
+.wi-wind.towards-30-deg {
+  -webkit-transform: rotate(30deg);
+  -moz-transform: rotate(30deg);
+  -ms-transform: rotate(30deg);
+  -o-transform: rotate(30deg);
+  transform: rotate(30deg);
+}
+.wi-wind.towards-31-deg {
+  -webkit-transform: rotate(31deg);
+  -moz-transform: rotate(31deg);
+  -ms-transform: rotate(31deg);
+  -o-transform: rotate(31deg);
+  transform: rotate(31deg);
+}
+.wi-wind.towards-32-deg {
+  -webkit-transform: rotate(32deg);
+  -moz-transform: rotate(32deg);
+  -ms-transform: rotate(32deg);
+  -o-transform: rotate(32deg);
+  transform: rotate(32deg);
+}
+.wi-wind.towards-33-deg {
+  -webkit-transform: rotate(33deg);
+  -moz-transform: rotate(33deg);
+  -ms-transform: rotate(33deg);
+  -o-transform: rotate(33deg);
+  transform: rotate(33deg);
+}
+.wi-wind.towards-34-deg {
+  -webkit-transform: rotate(34deg);
+  -moz-transform: rotate(34deg);
+  -ms-transform: rotate(34deg);
+  -o-transform: rotate(34deg);
+  transform: rotate(34deg);
+}
+.wi-wind.towards-35-deg {
+  -webkit-transform: rotate(35deg);
+  -moz-transform: rotate(35deg);
+  -ms-transform: rotate(35deg);
+  -o-transform: rotate(35deg);
+  transform: rotate(35deg);
+}
+.wi-wind.towards-36-deg {
+  -webkit-transform: rotate(36deg);
+  -moz-transform: rotate(36deg);
+  -ms-transform: rotate(36deg);
+  -o-transform: rotate(36deg);
+  transform: rotate(36deg);
+}
+.wi-wind.towards-37-deg {
+  -webkit-transform: rotate(37deg);
+  -moz-transform: rotate(37deg);
+  -ms-transform: rotate(37deg);
+  -o-transform: rotate(37deg);
+  transform: rotate(37deg);
+}
+.wi-wind.towards-38-deg {
+  -webkit-transform: rotate(38deg);
+  -moz-transform: rotate(38deg);
+  -ms-transform: rotate(38deg);
+  -o-transform: rotate(38deg);
+  transform: rotate(38deg);
+}
+.wi-wind.towards-39-deg {
+  -webkit-transform: rotate(39deg);
+  -moz-transform: rotate(39deg);
+  -ms-transform: rotate(39deg);
+  -o-transform: rotate(39deg);
+  transform: rotate(39deg);
+}
+.wi-wind.towards-40-deg {
+  -webkit-transform: rotate(40deg);
+  -moz-transform: rotate(40deg);
+  -ms-transform: rotate(40deg);
+  -o-transform: rotate(40deg);
+  transform: rotate(40deg);
+}
+.wi-wind.towards-41-deg {
+  -webkit-transform: rotate(41deg);
+  -moz-transform: rotate(41deg);
+  -ms-transform: rotate(41deg);
+  -o-transform: rotate(41deg);
+  transform: rotate(41deg);
+}
+.wi-wind.towards-42-deg {
+  -webkit-transform: rotate(42deg);
+  -moz-transform: rotate(42deg);
+  -ms-transform: rotate(42deg);
+  -o-transform: rotate(42deg);
+  transform: rotate(42deg);
+}
+.wi-wind.towards-43-deg {
+  -webkit-transform: rotate(43deg);
+  -moz-transform: rotate(43deg);
+  -ms-transform: rotate(43deg);
+  -o-transform: rotate(43deg);
+  transform: rotate(43deg);
+}
+.wi-wind.towards-44-deg {
+  -webkit-transform: rotate(44deg);
+  -moz-transform: rotate(44deg);
+  -ms-transform: rotate(44deg);
+  -o-transform: rotate(44deg);
+  transform: rotate(44deg);
+}
+.wi-wind.towards-45-deg {
+  -webkit-transform: rotate(45deg);
+  -moz-transform: rotate(45deg);
+  -ms-transform: rotate(45deg);
+  -o-transform: rotate(45deg);
+  transform: rotate(45deg);
+}
+.wi-wind.towards-46-deg {
+  -webkit-transform: rotate(46deg);
+  -moz-transform: rotate(46deg);
+  -ms-transform: rotate(46deg);
+  -o-transform: rotate(46deg);
+  transform: rotate(46deg);
+}
+.wi-wind.towards-47-deg {
+  -webkit-transform: rotate(47deg);
+  -moz-transform: rotate(47deg);
+  -ms-transform: rotate(47deg);
+  -o-transform: rotate(47deg);
+  transform: rotate(47deg);
+}
+.wi-wind.towards-48-deg {
+  -webkit-transform: rotate(48deg);
+  -moz-transform: rotate(48deg);
+  -ms-transform: rotate(48deg);
+  -o-transform: rotate(48deg);
+  transform: rotate(48deg);
+}
+.wi-wind.towards-49-deg {
+  -webkit-transform: rotate(49deg);
+  -moz-transform: rotate(49deg);
+  -ms-transform: rotate(49deg);
+  -o-transform: rotate(49deg);
+  transform: rotate(49deg);
+}
+.wi-wind.towards-50-deg {
+  -webkit-transform: rotate(50deg);
+  -moz-transform: rotate(50deg);
+  -ms-transform: rotate(50deg);
+  -o-transform: rotate(50deg);
+  transform: rotate(50deg);
+}
+.wi-wind.towards-51-deg {
+  -webkit-transform: rotate(51deg);
+  -moz-transform: rotate(51deg);
+  -ms-transform: rotate(51deg);
+  -o-transform: rotate(51deg);
+  transform: rotate(51deg);
+}
+.wi-wind.towards-52-deg {
+  -webkit-transform: rotate(52deg);
+  -moz-transform: rotate(52deg);
+  -ms-transform: rotate(52deg);
+  -o-transform: rotate(52deg);
+  transform: rotate(52deg);
+}
+.wi-wind.towards-53-deg {
+  -webkit-transform: rotate(53deg);
+  -moz-transform: rotate(53deg);
+  -ms-transform: rotate(53deg);
+  -o-transform: rotate(53deg);
+  transform: rotate(53deg);
+}
+.wi-wind.towards-54-deg {
+  -webkit-transform: rotate(54deg);
+  -moz-transform: rotate(54deg);
+  -ms-transform: rotate(54deg);
+  -o-transform: rotate(54deg);
+  transform: rotate(54deg);
+}
+.wi-wind.towards-55-deg {
+  -webkit-transform: rotate(55deg);
+  -moz-transform: rotate(55deg);
+  -ms-transform: rotate(55deg);
+  -o-transform: rotate(55deg);
+  transform: rotate(55deg);
+}
+.wi-wind.towards-56-deg {
+  -webkit-transform: rotate(56deg);
+  -moz-transform: rotate(56deg);
+  -ms-transform: rotate(56deg);
+  -o-transform: rotate(56deg);
+  transform: rotate(56deg);
+}
+.wi-wind.towards-57-deg {
+  -webkit-transform: rotate(57deg);
+  -moz-transform: rotate(57deg);
+  -ms-transform: rotate(57deg);
+  -o-transform: rotate(57deg);
+  transform: rotate(57deg);
+}
+.wi-wind.towards-58-deg {
+  -webkit-transform: rotate(58deg);
+  -moz-transform: rotate(58deg);
+  -ms-transform: rotate(58deg);
+  -o-transform: rotate(58deg);
+  transform: rotate(58deg);
+}
+.wi-wind.towards-59-deg {
+  -webkit-transform: rotate(59deg);
+  -moz-transform: rotate(59deg);
+  -ms-transform: rotate(59deg);
+  -o-transform: rotate(59deg);
+  transform: rotate(59deg);
+}
+.wi-wind.towards-60-deg {
+  -webkit-transform: rotate(60deg);
+  -moz-transform: rotate(60deg);
+  -ms-transform: rotate(60deg);
+  -o-transform: rotate(60deg);
+  transform: rotate(60deg);
+}
+.wi-wind.towards-61-deg {
+  -webkit-transform: rotate(61deg);
+  -moz-transform: rotate(61deg);
+  -ms-transform: rotate(61deg);
+  -o-transform: rotate(61deg);
+  transform: rotate(61deg);
+}
+.wi-wind.towards-62-deg {
+  -webkit-transform: rotate(62deg);
+  -moz-transform: rotate(62deg);
+  -ms-transform: rotate(62deg);
+  -o-transform: rotate(62deg);
+  transform: rotate(62deg);
+}
+.wi-wind.towards-63-deg {
+  -webkit-transform: rotate(63deg);
+  -moz-transform: rotate(63deg);
+  -ms-transform: rotate(63deg);
+  -o-transform: rotate(63deg);
+  transform: rotate(63deg);
+}
+.wi-wind.towards-64-deg {
+  -webkit-transform: rotate(64deg);
+  -moz-transform: rotate(64deg);
+  -ms-transform: rotate(64deg);
+  -o-transform: rotate(64deg);
+  transform: rotate(64deg);
+}
+.wi-wind.towards-65-deg {
+  -webkit-transform: rotate(65deg);
+  -moz-transform: rotate(65deg);
+  -ms-transform: rotate(65deg);
+  -o-transform: rotate(65deg);
+  transform: rotate(65deg);
+}
+.wi-wind.towards-66-deg {
+  -webkit-transform: rotate(66deg);
+  -moz-transform: rotate(66deg);
+  -ms-transform: rotate(66deg);
+  -o-transform: rotate(66deg);
+  transform: rotate(66deg);
+}
+.wi-wind.towards-67-deg {
+  -webkit-transform: rotate(67deg);
+  -moz-transform: rotate(67deg);
+  -ms-transform: rotate(67deg);
+  -o-transform: rotate(67deg);
+  transform: rotate(67deg);
+}
+.wi-wind.towards-68-deg {
+  -webkit-transform: rotate(68deg);
+  -moz-transform: rotate(68deg);
+  -ms-transform: rotate(68deg);
+  -o-transform: rotate(68deg);
+  transform: rotate(68deg);
+}
+.wi-wind.towards-69-deg {
+  -webkit-transform: rotate(69deg);
+  -moz-transform: rotate(69deg);
+  -ms-transform: rotate(69deg);
+  -o-transform: rotate(69deg);
+  transform: rotate(69deg);
+}
+.wi-wind.towards-70-deg {
+  -webkit-transform: rotate(70deg);
+  -moz-transform: rotate(70deg);
+  -ms-transform: rotate(70deg);
+  -o-transform: rotate(70deg);
+  transform: rotate(70deg);
+}
+.wi-wind.towards-71-deg {
+  -webkit-transform: rotate(71deg);
+  -moz-transform: rotate(71deg);
+  -ms-transform: rotate(71deg);
+  -o-transform: rotate(71deg);
+  transform: rotate(71deg);
+}
+.wi-wind.towards-72-deg {
+  -webkit-transform: rotate(72deg);
+  -moz-transform: rotate(72deg);
+  -ms-transform: rotate(72deg);
+  -o-transform: rotate(72deg);
+  transform: rotate(72deg);
+}
+.wi-wind.towards-73-deg {
+  -webkit-transform: rotate(73deg);
+  -moz-transform: rotate(73deg);
+  -ms-transform: rotate(73deg);
+  -o-transform: rotate(73deg);
+  transform: rotate(73deg);
+}
+.wi-wind.towards-74-deg {
+  -webkit-transform: rotate(74deg);
+  -moz-transform: rotate(74deg);
+  -ms-transform: rotate(74deg);
+  -o-transform: rotate(74deg);
+  transform: rotate(74deg);
+}
+.wi-wind.towards-75-deg {
+  -webkit-transform: rotate(75deg);
+  -moz-transform: rotate(75deg);
+  -ms-transform: rotate(75deg);
+  -o-transform: rotate(75deg);
+  transform: rotate(75deg);
+}
+.wi-wind.towards-76-deg {
+  -webkit-transform: rotate(76deg);
+  -moz-transform: rotate(76deg);
+  -ms-transform: rotate(76deg);
+  -o-transform: rotate(76deg);
+  transform: rotate(76deg);
+}
+.wi-wind.towards-77-deg {
+  -webkit-transform: rotate(77deg);
+  -moz-transform: rotate(77deg);
+  -ms-transform: rotate(77deg);
+  -o-transform: rotate(77deg);
+  transform: rotate(77deg);
+}
+.wi-wind.towards-78-deg {
+  -webkit-transform: rotate(78deg);
+  -moz-transform: rotate(78deg);
+  -ms-transform: rotate(78deg);
+  -o-transform: rotate(78deg);
+  transform: rotate(78deg);
+}
+.wi-wind.towards-79-deg {
+  -webkit-transform: rotate(79deg);
+  -moz-transform: rotate(79deg);
+  -ms-transform: rotate(79deg);
+  -o-transform: rotate(79deg);
+  transform: rotate(79deg);
+}
+.wi-wind.towards-80-deg {
+  -webkit-transform: rotate(80deg);
+  -moz-transform: rotate(80deg);
+  -ms-transform: rotate(80deg);
+  -o-transform: rotate(80deg);
+  transform: rotate(80deg);
+}
+.wi-wind.towards-81-deg {
+  -webkit-transform: rotate(81deg);
+  -moz-transform: rotate(81deg);
+  -ms-transform: rotate(81deg);
+  -o-transform: rotate(81deg);
+  transform: rotate(81deg);
+}
+.wi-wind.towards-82-deg {
+  -webkit-transform: rotate(82deg);
+  -moz-transform: rotate(82deg);
+  -ms-transform: rotate(82deg);
+  -o-transform: rotate(82deg);
+  transform: rotate(82deg);
+}
+.wi-wind.towards-83-deg {
+  -webkit-transform: rotate(83deg);
+  -moz-transform: rotate(83deg);
+  -ms-transform: rotate(83deg);
+  -o-transform: rotate(83deg);
+  transform: rotate(83deg);
+}
+.wi-wind.towards-84-deg {
+  -webkit-transform: rotate(84deg);
+  -moz-transform: rotate(84deg);
+  -ms-transform: rotate(84deg);
+  -o-transform: rotate(84deg);
+  transform: rotate(84deg);
+}
+.wi-wind.towards-85-deg {
+  -webkit-transform: rotate(85deg);
+  -moz-transform: rotate(85deg);
+  -ms-transform: rotate(85deg);
+  -o-transform: rotate(85deg);
+  transform: rotate(85deg);
+}
+.wi-wind.towards-86-deg {
+  -webkit-transform: rotate(86deg);
+  -moz-transform: rotate(86deg);
+  -ms-transform: rotate(86deg);
+  -o-transform: rotate(86deg);
+  transform: rotate(86deg);
+}
+.wi-wind.towards-87-deg {
+  -webkit-transform: rotate(87deg);
+  -moz-transform: rotate(87deg);
+  -ms-transform: rotate(87deg);
+  -o-transform: rotate(87deg);
+  transform: rotate(87deg);
+}
+.wi-wind.towards-88-deg {
+  -webkit-transform: rotate(88deg);
+  -moz-transform: rotate(88deg);
+  -ms-transform: rotate(88deg);
+  -o-transform: rotate(88deg);
+  transform: rotate(88deg);
+}
+.wi-wind.towards-89-deg {
+  -webkit-transform: rotate(89deg);
+  -moz-transform: rotate(89deg);
+  -ms-transform: rotate(89deg);
+  -o-transform: rotate(89deg);
+  transform: rotate(89deg);
+}
+.wi-wind.towards-90-deg {
+  -webkit-transform: rotate(90deg);
+  -moz-transform: rotate(90deg);
+  -ms-transform: rotate(90deg);
+  -o-transform: rotate(90deg);
+  transform: rotate(90deg);
+}
+.wi-wind.towards-91-deg {
+  -webkit-transform: rotate(91deg);
+  -moz-transform: rotate(91deg);
+  -ms-transform: rotate(91deg);
+  -o-transform: rotate(91deg);
+  transform: rotate(91deg);
+}
+.wi-wind.towards-92-deg {
+  -webkit-transform: rotate(92deg);
+  -moz-transform: rotate(92deg);
+  -ms-transform: rotate(92deg);
+  -o-transform: rotate(92deg);
+  transform: rotate(92deg);
+}
+.wi-wind.towards-93-deg {
+  -webkit-transform: rotate(93deg);
+  -moz-transform: rotate(93deg);
+  -ms-transform: rotate(93deg);
+  -o-transform: rotate(93deg);
+  transform: rotate(93deg);
+}
+.wi-wind.towards-94-deg {
+  -webkit-transform: rotate(94deg);
+  -moz-transform: rotate(94deg);
+  -ms-transform: rotate(94deg);
+  -o-transform: rotate(94deg);
+  transform: rotate(94deg);
+}
+.wi-wind.towards-95-deg {
+  -webkit-transform: rotate(95deg);
+  -moz-transform: rotate(95deg);
+  -ms-transform: rotate(95deg);
+  -o-transform: rotate(95deg);
+  transform: rotate(95deg);
+}
+.wi-wind.towards-96-deg {
+  -webkit-transform: rotate(96deg);
+  -moz-transform: rotate(96deg);
+  -ms-transform: rotate(96deg);
+  -o-transform: rotate(96deg);
+  transform: rotate(96deg);
+}
+.wi-wind.towards-97-deg {
+  -webkit-transform: rotate(97deg);
+  -moz-transform: rotate(97deg);
+  -ms-transform: rotate(97deg);
+  -o-transform: rotate(97deg);
+  transform: rotate(97deg);
+}
+.wi-wind.towards-98-deg {
+  -webkit-transform: rotate(98deg);
+  -moz-transform: rotate(98deg);
+  -ms-transform: rotate(98deg);
+  -o-transform: rotate(98deg);
+  transform: rotate(98deg);
+}
+.wi-wind.towards-99-deg {
+  -webkit-transform: rotate(99deg);
+  -moz-transform: rotate(99deg);
+  -ms-transform: rotate(99deg);
+  -o-transform: rotate(99deg);
+  transform: rotate(99deg);
+}
+.wi-wind.towards-100-deg {
+  -webkit-transform: rotate(100deg);
+  -moz-transform: rotate(100deg);
+  -ms-transform: rotate(100deg);
+  -o-transform: rotate(100deg);
+  transform: rotate(100deg);
+}
+.wi-wind.towards-101-deg {
+  -webkit-transform: rotate(101deg);
+  -moz-transform: rotate(101deg);
+  -ms-transform: rotate(101deg);
+  -o-transform: rotate(101deg);
+  transform: rotate(101deg);
+}
+.wi-wind.towards-102-deg {
+  -webkit-transform: rotate(102deg);
+  -moz-transform: rotate(102deg);
+  -ms-transform: rotate(102deg);
+  -o-transform: rotate(102deg);
+  transform: rotate(102deg);
+}
+.wi-wind.towards-103-deg {
+  -webkit-transform: rotate(103deg);
+  -moz-transform: rotate(103deg);
+  -ms-transform: rotate(103deg);
+  -o-transform: rotate(103deg);
+  transform: rotate(103deg);
+}
+.wi-wind.towards-104-deg {
+  -webkit-transform: rotate(104deg);
+  -moz-transform: rotate(104deg);
+  -ms-transform: rotate(104deg);
+  -o-transform: rotate(104deg);
+  transform: rotate(104deg);
+}
+.wi-wind.towards-105-deg {
+  -webkit-transform: rotate(105deg);
+  -moz-transform: rotate(105deg);
+  -ms-transform: rotate(105deg);
+  -o-transform: rotate(105deg);
+  transform: rotate(105deg);
+}
+.wi-wind.towards-106-deg {
+  -webkit-transform: rotate(106deg);
+  -moz-transform: rotate(106deg);
+  -ms-transform: rotate(106deg);
+  -o-transform: rotate(106deg);
+  transform: rotate(106deg);
+}
+.wi-wind.towards-107-deg {
+  -webkit-transform: rotate(107deg);
+  -moz-transform: rotate(107deg);
+  -ms-transform: rotate(107deg);
+  -o-transform: rotate(107deg);
+  transform: rotate(107deg);
+}
+.wi-wind.towards-108-deg {
+  -webkit-transform: rotate(108deg);
+  -moz-transform: rotate(108deg);
+  -ms-transform: rotate(108deg);
+  -o-transform: rotate(108deg);
+  transform: rotate(108deg);
+}
+.wi-wind.towards-109-deg {
+  -webkit-transform: rotate(109deg);
+  -moz-transform: rotate(109deg);
+  -ms-transform: rotate(109deg);
+  -o-transform: rotate(109deg);
+  transform: rotate(109deg);
+}
+.wi-wind.towards-110-deg {
+  -webkit-transform: rotate(110deg);
+  -moz-transform: rotate(110deg);
+  -ms-transform: rotate(110deg);
+  -o-transform: rotate(110deg);
+  transform: rotate(110deg);
+}
+.wi-wind.towards-111-deg {
+  -webkit-transform: rotate(111deg);
+  -moz-transform: rotate(111deg);
+  -ms-transform: rotate(111deg);
+  -o-transform: rotate(111deg);
+  transform: rotate(111deg);
+}
+.wi-wind.towards-112-deg {
+  -webkit-transform: rotate(112deg);
+  -moz-transform: rotate(112deg);
+  -ms-transform: rotate(112deg);
+  -o-transform: rotate(112deg);
+  transform: rotate(112deg);
+}
+.wi-wind.towards-113-deg {
+  -webkit-transform: rotate(113deg);
+  -moz-transform: rotate(113deg);
+  -ms-transform: rotate(113deg);
+  -o-transform: rotate(113deg);
+  transform: rotate(113deg);
+}
+.wi-wind.towards-114-deg {
+  -webkit-transform: rotate(114deg);
+  -moz-transform: rotate(114deg);
+  -ms-transform: rotate(114deg);
+  -o-transform: rotate(114deg);
+  transform: rotate(114deg);
+}
+.wi-wind.towards-115-deg {
+  -webkit-transform: rotate(115deg);
+  -moz-transform: rotate(115deg);
+  -ms-transform: rotate(115deg);
+  -o-transform: rotate(115deg);
+  transform: rotate(115deg);
+}
+.wi-wind.towards-116-deg {
+  -webkit-transform: rotate(116deg);
+  -moz-transform: rotate(116deg);
+  -ms-transform: rotate(116deg);
+  -o-transform: rotate(116deg);
+  transform: rotate(116deg);
+}
+.wi-wind.towards-117-deg {
+  -webkit-transform: rotate(117deg);
+  -moz-transform: rotate(117deg);
+  -ms-transform: rotate(117deg);
+  -o-transform: rotate(117deg);
+  transform: rotate(117deg);
+}
+.wi-wind.towards-118-deg {
+  -webkit-transform: rotate(118deg);
+  -moz-transform: rotate(118deg);
+  -ms-transform: rotate(118deg);
+  -o-transform: rotate(118deg);
+  transform: rotate(118deg);
+}
+.wi-wind.towards-119-deg {
+  -webkit-transform: rotate(119deg);
+  -moz-transform: rotate(119deg);
+  -ms-transform: rotate(119deg);
+  -o-transform: rotate(119deg);
+  transform: rotate(119deg);
+}
+.wi-wind.towards-120-deg {
+  -webkit-transform: rotate(120deg);
+  -moz-transform: rotate(120deg);
+  -ms-transform: rotate(120deg);
+  -o-transform: rotate(120deg);
+  transform: rotate(120deg);
+}
+.wi-wind.towards-121-deg {
+  -webkit-transform: rotate(121deg);
+  -moz-transform: rotate(121deg);
+  -ms-transform: rotate(121deg);
+  -o-transform: rotate(121deg);
+  transform: rotate(121deg);
+}
+.wi-wind.towards-122-deg {
+  -webkit-transform: rotate(122deg);
+  -moz-transform: rotate(122deg);
+  -ms-transform: rotate(122deg);
+  -o-transform: rotate(122deg);
+  transform: rotate(122deg);
+}
+.wi-wind.towards-123-deg {
+  -webkit-transform: rotate(123deg);
+  -moz-transform: rotate(123deg);
+  -ms-transform: rotate(123deg);
+  -o-transform: rotate(123deg);
+  transform: rotate(123deg);
+}
+.wi-wind.towards-124-deg {
+  -webkit-transform: rotate(124deg);
+  -moz-transform: rotate(124deg);
+  -ms-transform: rotate(124deg);
+  -o-transform: rotate(124deg);
+  transform: rotate(124deg);
+}
+.wi-wind.towards-125-deg {
+  -webkit-transform: rotate(125deg);
+  -moz-transform: rotate(125deg);
+  -ms-transform: rotate(125deg);
+  -o-transform: rotate(125deg);
+  transform: rotate(125deg);
+}
+.wi-wind.towards-126-deg {
+  -webkit-transform: rotate(126deg);
+  -moz-transform: rotate(126deg);
+  -ms-transform: rotate(126deg);
+  -o-transform: rotate(126deg);
+  transform: rotate(126deg);
+}
+.wi-wind.towards-127-deg {
+  -webkit-transform: rotate(127deg);
+  -moz-transform: rotate(127deg);
+  -ms-transform: rotate(127deg);
+  -o-transform: rotate(127deg);
+  transform: rotate(127deg);
+}
+.wi-wind.towards-128-deg {
+  -webkit-transform: rotate(128deg);
+  -moz-transform: rotate(128deg);
+  -ms-transform: rotate(128deg);
+  -o-transform: rotate(128deg);
+  transform: rotate(128deg);
+}
+.wi-wind.towards-129-deg {
+  -webkit-transform: rotate(129deg);
+  -moz-transform: rotate(129deg);
+  -ms-transform: rotate(129deg);
+  -o-transform: rotate(129deg);
+  transform: rotate(129deg);
+}
+.wi-wind.towards-130-deg {
+  -webkit-transform: rotate(130deg);
+  -moz-transform: rotate(130deg);
+  -ms-transform: rotate(130deg);
+  -o-transform: rotate(130deg);
+  transform: rotate(130deg);
+}
+.wi-wind.towards-131-deg {
+  -webkit-transform: rotate(131deg);
+  -moz-transform: rotate(131deg);
+  -ms-transform: rotate(131deg);
+  -o-transform: rotate(131deg);
+  transform: rotate(131deg);
+}
+.wi-wind.towards-132-deg {
+  -webkit-transform: rotate(132deg);
+  -moz-transform: rotate(132deg);
+  -ms-transform: rotate(132deg);
+  -o-transform: rotate(132deg);
+  transform: rotate(132deg);
+}
+.wi-wind.towards-133-deg {
+  -webkit-transform: rotate(133deg);
+  -moz-transform: rotate(133deg);
+  -ms-transform: rotate(133deg);
+  -o-transform: rotate(133deg);
+  transform: rotate(133deg);
+}
+.wi-wind.towards-134-deg {
+  -webkit-transform: rotate(134deg);
+  -moz-transform: rotate(134deg);
+  -ms-transform: rotate(134deg);
+  -o-transform: rotate(134deg);
+  transform: rotate(134deg);
+}
+.wi-wind.towards-135-deg {
+  -webkit-transform: rotate(135deg);
+  -moz-transform: rotate(135deg);
+  -ms-transform: rotate(135deg);
+  -o-transform: rotate(135deg);
+  transform: rotate(135deg);
+}
+.wi-wind.towards-136-deg {
+  -webkit-transform: rotate(136deg);
+  -moz-transform: rotate(136deg);
+  -ms-transform: rotate(136deg);
+  -o-transform: rotate(136deg);
+  transform: rotate(136deg);
+}
+.wi-wind.towards-137-deg {
+  -webkit-transform: rotate(137deg);
+  -moz-transform: rotate(137deg);
+  -ms-transform: rotate(137deg);
+  -o-transform: rotate(137deg);
+  transform: rotate(137deg);
+}
+.wi-wind.towards-138-deg {
+  -webkit-transform: rotate(138deg);
+  -moz-transform: rotate(138deg);
+  -ms-transform: rotate(138deg);
+  -o-transform: rotate(138deg);
+  transform: rotate(138deg);
+}
+.wi-wind.towards-139-deg {
+  -webkit-transform: rotate(139deg);
+  -moz-transform: rotate(139deg);
+  -ms-transform: rotate(139deg);
+  -o-transform: rotate(139deg);
+  transform: rotate(139deg);
+}
+.wi-wind.towards-140-deg {
+  -webkit-transform: rotate(140deg);
+  -moz-transform: rotate(140deg);
+  -ms-transform: rotate(140deg);
+  -o-transform: rotate(140deg);
+  transform: rotate(140deg);
+}
+.wi-wind.towards-141-deg {
+  -webkit-transform: rotate(141deg);
+  -moz-transform: rotate(141deg);
+  -ms-transform: rotate(141deg);
+  -o-transform: rotate(141deg);
+  transform: rotate(141deg);
+}
+.wi-wind.towards-142-deg {
+  -webkit-transform: rotate(142deg);
+  -moz-transform: rotate(142deg);
+  -ms-transform: rotate(142deg);
+  -o-transform: rotate(142deg);
+  transform: rotate(142deg);
+}
+.wi-wind.towards-143-deg {
+  -webkit-transform: rotate(143deg);
+  -moz-transform: rotate(143deg);
+  -ms-transform: rotate(143deg);
+  -o-transform: rotate(143deg);
+  transform: rotate(143deg);
+}
+.wi-wind.towards-144-deg {
+  -webkit-transform: rotate(144deg);
+  -moz-transform: rotate(144deg);
+  -ms-transform: rotate(144deg);
+  -o-transform: rotate(144deg);
+  transform: rotate(144deg);
+}
+.wi-wind.towards-145-deg {
+  -webkit-transform: rotate(145deg);
+  -moz-transform: rotate(145deg);
+  -ms-transform: rotate(145deg);
+  -o-transform: rotate(145deg);
+  transform: rotate(145deg);
+}
+.wi-wind.towards-146-deg {
+  -webkit-transform: rotate(146deg);
+  -moz-transform: rotate(146deg);
+  -ms-transform: rotate(146deg);
+  -o-transform: rotate(146deg);
+  transform: rotate(146deg);
+}
+.wi-wind.towards-147-deg {
+  -webkit-transform: rotate(147deg);
+  -moz-transform: rotate(147deg);
+  -ms-transform: rotate(147deg);
+  -o-transform: rotate(147deg);
+  transform: rotate(147deg);
+}
+.wi-wind.towards-148-deg {
+  -webkit-transform: rotate(148deg);
+  -moz-transform: rotate(148deg);
+  -ms-transform: rotate(148deg);
+  -o-transform: rotate(148deg);
+  transform: rotate(148deg);
+}
+.wi-wind.towards-149-deg {
+  -webkit-transform: rotate(149deg);
+  -moz-transform: rotate(149deg);
+  -ms-transform: rotate(149deg);
+  -o-transform: rotate(149deg);
+  transform: rotate(149deg);
+}
+.wi-wind.towards-150-deg {
+  -webkit-transform: rotate(150deg);
+  -moz-transform: rotate(150deg);
+  -ms-transform: rotate(150deg);
+  -o-transform: rotate(150deg);
+  transform: rotate(150deg);
+}
+.wi-wind.towards-151-deg {
+  -webkit-transform: rotate(151deg);
+  -moz-transform: rotate(151deg);
+  -ms-transform: rotate(151deg);
+  -o-transform: rotate(151deg);
+  transform: rotate(151deg);
+}
+.wi-wind.towards-152-deg {
+  -webkit-transform: rotate(152deg);
+  -moz-transform: rotate(152deg);
+  -ms-transform: rotate(152deg);
+  -o-transform: rotate(152deg);
+  transform: rotate(152deg);
+}
+.wi-wind.towards-153-deg {
+  -webkit-transform: rotate(153deg);
+  -moz-transform: rotate(153deg);
+  -ms-transform: rotate(153deg);
+  -o-transform: rotate(153deg);
+  transform: rotate(153deg);
+}
+.wi-wind.towards-154-deg {
+  -webkit-transform: rotate(154deg);
+  -moz-transform: rotate(154deg);
+  -ms-transform: rotate(154deg);
+  -o-transform: rotate(154deg);
+  transform: rotate(154deg);
+}
+.wi-wind.towards-155-deg {
+  -webkit-transform: rotate(155deg);
+  -moz-transform: rotate(155deg);
+  -ms-transform: rotate(155deg);
+  -o-transform: rotate(155deg);
+  transform: rotate(155deg);
+}
+.wi-wind.towards-156-deg {
+  -webkit-transform: rotate(156deg);
+  -moz-transform: rotate(156deg);
+  -ms-transform: rotate(156deg);
+  -o-transform: rotate(156deg);
+  transform: rotate(156deg);
+}
+.wi-wind.towards-157-deg {
+  -webkit-transform: rotate(157deg);
+  -moz-transform: rotate(157deg);
+  -ms-transform: rotate(157deg);
+  -o-transform: rotate(157deg);
+  transform: rotate(157deg);
+}
+.wi-wind.towards-158-deg {
+  -webkit-transform: rotate(158deg);
+  -moz-transform: rotate(158deg);
+  -ms-transform: rotate(158deg);
+  -o-transform: rotate(158deg);
+  transform: rotate(158deg);
+}
+.wi-wind.towards-159-deg {
+  -webkit-transform: rotate(159deg);
+  -moz-transform: rotate(159deg);
+  -ms-transform: rotate(159deg);
+  -o-transform: rotate(159deg);
+  transform: rotate(159deg);
+}
+.wi-wind.towards-160-deg {
+  -webkit-transform: rotate(160deg);
+  -moz-transform: rotate(160deg);
+  -ms-transform: rotate(160deg);
+  -o-transform: rotate(160deg);
+  transform: rotate(160deg);
+}
+.wi-wind.towards-161-deg {
+  -webkit-transform: rotate(161deg);
+  -moz-transform: rotate(161deg);
+  -ms-transform: rotate(161deg);
+  -o-transform: rotate(161deg);
+  transform: rotate(161deg);
+}
+.wi-wind.towards-162-deg {
+  -webkit-transform: rotate(162deg);
+  -moz-transform: rotate(162deg);
+  -ms-transform: rotate(162deg);
+  -o-transform: rotate(162deg);
+  transform: rotate(162deg);
+}
+.wi-wind.towards-163-deg {
+  -webkit-transform: rotate(163deg);
+  -moz-transform: rotate(163deg);
+  -ms-transform: rotate(163deg);
+  -o-transform: rotate(163deg);
+  transform: rotate(163deg);
+}
+.wi-wind.towards-164-deg {
+  -webkit-transform: rotate(164deg);
+  -moz-transform: rotate(164deg);
+  -ms-transform: rotate(164deg);
+  -o-transform: rotate(164deg);
+  transform: rotate(164deg);
+}
+.wi-wind.towards-165-deg {
+  -webkit-transform: rotate(165deg);
+  -moz-transform: rotate(165deg);
+  -ms-transform: rotate(165deg);
+  -o-transform: rotate(165deg);
+  transform: rotate(165deg);
+}
+.wi-wind.towards-166-deg {
+  -webkit-transform: rotate(166deg);
+  -moz-transform: rotate(166deg);
+  -ms-transform: rotate(166deg);
+  -o-transform: rotate(166deg);
+  transform: rotate(166deg);
+}
+.wi-wind.towards-167-deg {
+  -webkit-transform: rotate(167deg);
+  -moz-transform: rotate(167deg);
+  -ms-transform: rotate(167deg);
+  -o-transform: rotate(167deg);
+  transform: rotate(167deg);
+}
+.wi-wind.towards-168-deg {
+  -webkit-transform: rotate(168deg);
+  -moz-transform: rotate(168deg);
+  -ms-transform: rotate(168deg);
+  -o-transform: rotate(168deg);
+  transform: rotate(168deg);
+}
+.wi-wind.towards-169-deg {
+  -webkit-transform: rotate(169deg);
+  -moz-transform: rotate(169deg);
+  -ms-transform: rotate(169deg);
+  -o-transform: rotate(169deg);
+  transform: rotate(169deg);
+}
+.wi-wind.towards-170-deg {
+  -webkit-transform: rotate(170deg);
+  -moz-transform: rotate(170deg);
+  -ms-transform: rotate(170deg);
+  -o-transform: rotate(170deg);
+  transform: rotate(170deg);
+}
+.wi-wind.towards-171-deg {
+  -webkit-transform: rotate(171deg);
+  -moz-transform: rotate(171deg);
+  -ms-transform: rotate(171deg);
+  -o-transform: rotate(171deg);
+  transform: rotate(171deg);
+}
+.wi-wind.towards-172-deg {
+  -webkit-transform: rotate(172deg);
+  -moz-transform: rotate(172deg);
+  -ms-transform: rotate(172deg);
+  -o-transform: rotate(172deg);
+  transform: rotate(172deg);
+}
+.wi-wind.towards-173-deg {
+  -webkit-transform: rotate(173deg);
+  -moz-transform: rotate(173deg);
+  -ms-transform: rotate(173deg);
+  -o-transform: rotate(173deg);
+  transform: rotate(173deg);
+}
+.wi-wind.towards-174-deg {
+  -webkit-transform: rotate(174deg);
+  -moz-transform: rotate(174deg);
+  -ms-transform: rotate(174deg);
+  -o-transform: rotate(174deg);
+  transform: rotate(174deg);
+}
+.wi-wind.towards-175-deg {
+  -webkit-transform: rotate(175deg);
+  -moz-transform: rotate(175deg);
+  -ms-transform: rotate(175deg);
+  -o-transform: rotate(175deg);
+  transform: rotate(175deg);
+}
+.wi-wind.towards-176-deg {
+  -webkit-transform: rotate(176deg);
+  -moz-transform: rotate(176deg);
+  -ms-transform: rotate(176deg);
+  -o-transform: rotate(176deg);
+  transform: rotate(176deg);
+}
+.wi-wind.towards-177-deg {
+  -webkit-transform: rotate(177deg);
+  -moz-transform: rotate(177deg);
+  -ms-transform: rotate(177deg);
+  -o-transform: rotate(177deg);
+  transform: rotate(177deg);
+}
+.wi-wind.towards-178-deg {
+  -webkit-transform: rotate(178deg);
+  -moz-transform: rotate(178deg);
+  -ms-transform: rotate(178deg);
+  -o-transform: rotate(178deg);
+  transform: rotate(178deg);
+}
+.wi-wind.towards-179-deg {
+  -webkit-transform: rotate(179deg);
+  -moz-transform: rotate(179deg);
+  -ms-transform: rotate(179deg);
+  -o-transform: rotate(179deg);
+  transform: rotate(179deg);
+}
+.wi-wind.towards-180-deg {
+  -webkit-transform: rotate(180deg);
+  -moz-transform: rotate(180deg);
+  -ms-transform: rotate(180deg);
+  -o-transform: rotate(180deg);
+  transform: rotate(180deg);
+}
+.wi-wind.towards-181-deg {
+  -webkit-transform: rotate(181deg);
+  -moz-transform: rotate(181deg);
+  -ms-transform: rotate(181deg);
+  -o-transform: rotate(181deg);
+  transform: rotate(181deg);
+}
+.wi-wind.towards-182-deg {
+  -webkit-transform: rotate(182deg);
+  -moz-transform: rotate(182deg);
+  -ms-transform: rotate(182deg);
+  -o-transform: rotate(182deg);
+  transform: rotate(182deg);
+}
+.wi-wind.towards-183-deg {
+  -webkit-transform: rotate(183deg);
+  -moz-transform: rotate(183deg);
+  -ms-transform: rotate(183deg);
+  -o-transform: rotate(183deg);
+  transform: rotate(183deg);
+}
+.wi-wind.towards-184-deg {
+  -webkit-transform: rotate(184deg);
+  -moz-transform: rotate(184deg);
+  -ms-transform: rotate(184deg);
+  -o-transform: rotate(184deg);
+  transform: rotate(184deg);
+}
+.wi-wind.towards-185-deg {
+  -webkit-transform: rotate(185deg);
+  -moz-transform: rotate(185deg);
+  -ms-transform: rotate(185deg);
+  -o-transform: rotate(185deg);
+  transform: rotate(185deg);
+}
+.wi-wind.towards-186-deg {
+  -webkit-transform: rotate(186deg);
+  -moz-transform: rotate(186deg);
+  -ms-transform: rotate(186deg);
+  -o-transform: rotate(186deg);
+  transform: rotate(186deg);
+}
+.wi-wind.towards-187-deg {
+  -webkit-transform: rotate(187deg);
+  -moz-transform: rotate(187deg);
+  -ms-transform: rotate(187deg);
+  -o-transform: rotate(187deg);
+  transform: rotate(187deg);
+}
+.wi-wind.towards-188-deg {
+  -webkit-transform: rotate(188deg);
+  -moz-transform: rotate(188deg);
+  -ms-transform: rotate(188deg);
+  -o-transform: rotate(188deg);
+  transform: rotate(188deg);
+}
+.wi-wind.towards-189-deg {
+  -webkit-transform: rotate(189deg);
+  -moz-transform: rotate(189deg);
+  -ms-transform: rotate(189deg);
+  -o-transform: rotate(189deg);
+  transform: rotate(189deg);
+}
+.wi-wind.towards-190-deg {
+  -webkit-transform: rotate(190deg);
+  -moz-transform: rotate(190deg);
+  -ms-transform: rotate(190deg);
+  -o-transform: rotate(190deg);
+  transform: rotate(190deg);
+}
+.wi-wind.towards-191-deg {
+  -webkit-transform: rotate(191deg);
+  -moz-transform: rotate(191deg);
+  -ms-transform: rotate(191deg);
+  -o-transform: rotate(191deg);
+  transform: rotate(191deg);
+}
+.wi-wind.towards-192-deg {
+  -webkit-transform: rotate(192deg);
+  -moz-transform: rotate(192deg);
+  -ms-transform: rotate(192deg);
+  -o-transform: rotate(192deg);
+  transform: rotate(192deg);
+}
+.wi-wind.towards-193-deg {
+  -webkit-transform: rotate(193deg);
+  -moz-transform: rotate(193deg);
+  -ms-transform: rotate(193deg);
+  -o-transform: rotate(193deg);
+  transform: rotate(193deg);
+}
+.wi-wind.towards-194-deg {
+  -webkit-transform: rotate(194deg);
+  -moz-transform: rotate(194deg);
+  -ms-transform: rotate(194deg);
+  -o-transform: rotate(194deg);
+  transform: rotate(194deg);
+}
+.wi-wind.towards-195-deg {
+  -webkit-transform: rotate(195deg);
+  -moz-transform: rotate(195deg);
+  -ms-transform: rotate(195deg);
+  -o-transform: rotate(195deg);
+  transform: rotate(195deg);
+}
+.wi-wind.towards-196-deg {
+  -webkit-transform: rotate(196deg);
+  -moz-transform: rotate(196deg);
+  -ms-transform: rotate(196deg);
+  -o-transform: rotate(196deg);
+  transform: rotate(196deg);
+}
+.wi-wind.towards-197-deg {
+  -webkit-transform: rotate(197deg);
+  -moz-transform: rotate(197deg);
+  -ms-transform: rotate(197deg);
+  -o-transform: rotate(197deg);
+  transform: rotate(197deg);
+}
+.wi-wind.towards-198-deg {
+  -webkit-transform: rotate(198deg);
+  -moz-transform: rotate(198deg);
+  -ms-transform: rotate(198deg);
+  -o-transform: rotate(198deg);
+  transform: rotate(198deg);
+}
+.wi-wind.towards-199-deg {
+  -webkit-transform: rotate(199deg);
+  -moz-transform: rotate(199deg);
+  -ms-transform: rotate(199deg);
+  -o-transform: rotate(199deg);
+  transform: rotate(199deg);
+}
+.wi-wind.towards-200-deg {
+  -webkit-transform: rotate(200deg);
+  -moz-transform: rotate(200deg);
+  -ms-transform: rotate(200deg);
+  -o-transform: rotate(200deg);
+  transform: rotate(200deg);
+}
+.wi-wind.towards-201-deg {
+  -webkit-transform: rotate(201deg);
+  -moz-transform: rotate(201deg);
+  -ms-transform: rotate(201deg);
+  -o-transform: rotate(201deg);
+  transform: rotate(201deg);
+}
+.wi-wind.towards-202-deg {
+  -webkit-transform: rotate(202deg);
+  -moz-transform: rotate(202deg);
+  -ms-transform: rotate(202deg);
+  -o-transform: rotate(202deg);
+  transform: rotate(202deg);
+}
+.wi-wind.towards-203-deg {
+  -webkit-transform: rotate(203deg);
+  -moz-transform: rotate(203deg);
+  -ms-transform: rotate(203deg);
+  -o-transform: rotate(203deg);
+  transform: rotate(203deg);
+}
+.wi-wind.towards-204-deg {
+  -webkit-transform: rotate(204deg);
+  -moz-transform: rotate(204deg);
+  -ms-transform: rotate(204deg);
+  -o-transform: rotate(204deg);
+  transform: rotate(204deg);
+}
+.wi-wind.towards-205-deg {
+  -webkit-transform: rotate(205deg);
+  -moz-transform: rotate(205deg);
+  -ms-transform: rotate(205deg);
+  -o-transform: rotate(205deg);
+  transform: rotate(205deg);
+}
+.wi-wind.towards-206-deg {
+  -webkit-transform: rotate(206deg);
+  -moz-transform: rotate(206deg);
+  -ms-transform: rotate(206deg);
+  -o-transform: rotate(206deg);
+  transform: rotate(206deg);
+}
+.wi-wind.towards-207-deg {
+  -webkit-transform: rotate(207deg);
+  -moz-transform: rotate(207deg);
+  -ms-transform: rotate(207deg);
+  -o-transform: rotate(207deg);
+  transform: rotate(207deg);
+}
+.wi-wind.towards-208-deg {
+  -webkit-transform: rotate(208deg);
+  -moz-transform: rotate(208deg);
+  -ms-transform: rotate(208deg);
+  -o-transform: rotate(208deg);
+  transform: rotate(208deg);
+}
+.wi-wind.towards-209-deg {
+  -webkit-transform: rotate(209deg);
+  -moz-transform: rotate(209deg);
+  -ms-transform: rotate(209deg);
+  -o-transform: rotate(209deg);
+  transform: rotate(209deg);
+}
+.wi-wind.towards-210-deg {
+  -webkit-transform: rotate(210deg);
+  -moz-transform: rotate(210deg);
+  -ms-transform: rotate(210deg);
+  -o-transform: rotate(210deg);
+  transform: rotate(210deg);
+}
+.wi-wind.towards-211-deg {
+  -webkit-transform: rotate(211deg);
+  -moz-transform: rotate(211deg);
+  -ms-transform: rotate(211deg);
+  -o-transform: rotate(211deg);
+  transform: rotate(211deg);
+}
+.wi-wind.towards-212-deg {
+  -webkit-transform: rotate(212deg);
+  -moz-transform: rotate(212deg);
+  -ms-transform: rotate(212deg);
+  -o-transform: rotate(212deg);
+  transform: rotate(212deg);
+}
+.wi-wind.towards-213-deg {
+  -webkit-transform: rotate(213deg);
+  -moz-transform: rotate(213deg);
+  -ms-transform: rotate(213deg);
+  -o-transform: rotate(213deg);
+  transform: rotate(213deg);
+}
+.wi-wind.towards-214-deg {
+  -webkit-transform: rotate(214deg);
+  -moz-transform: rotate(214deg);
+  -ms-transform: rotate(214deg);
+  -o-transform: rotate(214deg);
+  transform: rotate(214deg);
+}
+.wi-wind.towards-215-deg {
+  -webkit-transform: rotate(215deg);
+  -moz-transform: rotate(215deg);
+  -ms-transform: rotate(215deg);
+  -o-transform: rotate(215deg);
+  transform: rotate(215deg);
+}
+.wi-wind.towards-216-deg {
+  -webkit-transform: rotate(216deg);
+  -moz-transform: rotate(216deg);
+  -ms-transform: rotate(216deg);
+  -o-transform: rotate(216deg);
+  transform: rotate(216deg);
+}
+.wi-wind.towards-217-deg {
+  -webkit-transform: rotate(217deg);
+  -moz-transform: rotate(217deg);
+  -ms-transform: rotate(217deg);
+  -o-transform: rotate(217deg);
+  transform: rotate(217deg);
+}
+.wi-wind.towards-218-deg {
+  -webkit-transform: rotate(218deg);
+  -moz-transform: rotate(218deg);
+  -ms-transform: rotate(218deg);
+  -o-transform: rotate(218deg);
+  transform: rotate(218deg);
+}
+.wi-wind.towards-219-deg {
+  -webkit-transform: rotate(219deg);
+  -moz-transform: rotate(219deg);
+  -ms-transform: rotate(219deg);
+  -o-transform: rotate(219deg);
+  transform: rotate(219deg);
+}
+.wi-wind.towards-220-deg {
+  -webkit-transform: rotate(220deg);
+  -moz-transform: rotate(220deg);
+  -ms-transform: rotate(220deg);
+  -o-transform: rotate(220deg);
+  transform: rotate(220deg);
+}
+.wi-wind.towards-221-deg {
+  -webkit-transform: rotate(221deg);
+  -moz-transform: rotate(221deg);
+  -ms-transform: rotate(221deg);
+  -o-transform: rotate(221deg);
+  transform: rotate(221deg);
+}
+.wi-wind.towards-222-deg {
+  -webkit-transform: rotate(222deg);
+  -moz-transform: rotate(222deg);
+  -ms-transform: rotate(222deg);
+  -o-transform: rotate(222deg);
+  transform: rotate(222deg);
+}
+.wi-wind.towards-223-deg {
+  -webkit-transform: rotate(223deg);
+  -moz-transform: rotate(223deg);
+  -ms-transform: rotate(223deg);
+  -o-transform: rotate(223deg);
+  transform: rotate(223deg);
+}
+.wi-wind.towards-224-deg {
+  -webkit-transform: rotate(224deg);
+  -moz-transform: rotate(224deg);
+  -ms-transform: rotate(224deg);
+  -o-transform: rotate(224deg);
+  transform: rotate(224deg);
+}
+.wi-wind.towards-225-deg {
+  -webkit-transform: rotate(225deg);
+  -moz-transform: rotate(225deg);
+  -ms-transform: rotate(225deg);
+  -o-transform: rotate(225deg);
+  transform: rotate(225deg);
+}
+.wi-wind.towards-226-deg {
+  -webkit-transform: rotate(226deg);
+  -moz-transform: rotate(226deg);
+  -ms-transform: rotate(226deg);
+  -o-transform: rotate(226deg);
+  transform: rotate(226deg);
+}
+.wi-wind.towards-227-deg {
+  -webkit-transform: rotate(227deg);
+  -moz-transform: rotate(227deg);
+  -ms-transform: rotate(227deg);
+  -o-transform: rotate(227deg);
+  transform: rotate(227deg);
+}
+.wi-wind.towards-228-deg {
+  -webkit-transform: rotate(228deg);
+  -moz-transform: rotate(228deg);
+  -ms-transform: rotate(228deg);
+  -o-transform: rotate(228deg);
+  transform: rotate(228deg);
+}
+.wi-wind.towards-229-deg {
+  -webkit-transform: rotate(229deg);
+  -moz-transform: rotate(229deg);
+  -ms-transform: rotate(229deg);
+  -o-transform: rotate(229deg);
+  transform: rotate(229deg);
+}
+.wi-wind.towards-230-deg {
+  -webkit-transform: rotate(230deg);
+  -moz-transform: rotate(230deg);
+  -ms-transform: rotate(230deg);
+  -o-transform: rotate(230deg);
+  transform: rotate(230deg);
+}
+.wi-wind.towards-231-deg {
+  -webkit-transform: rotate(231deg);
+  -moz-transform: rotate(231deg);
+  -ms-transform: rotate(231deg);
+  -o-transform: rotate(231deg);
+  transform: rotate(231deg);
+}
+.wi-wind.towards-232-deg {
+  -webkit-transform: rotate(232deg);
+  -moz-transform: rotate(232deg);
+  -ms-transform: rotate(232deg);
+  -o-transform: rotate(232deg);
+  transform: rotate(232deg);
+}
+.wi-wind.towards-233-deg {
+  -webkit-transform: rotate(233deg);
+  -moz-transform: rotate(233deg);
+  -ms-transform: rotate(233deg);
+  -o-transform: rotate(233deg);
+  transform: rotate(233deg);
+}
+.wi-wind.towards-234-deg {
+  -webkit-transform: rotate(234deg);
+  -moz-transform: rotate(234deg);
+  -ms-transform: rotate(234deg);
+  -o-transform: rotate(234deg);
+  transform: rotate(234deg);
+}
+.wi-wind.towards-235-deg {
+  -webkit-transform: rotate(235deg);
+  -moz-transform: rotate(235deg);
+  -ms-transform: rotate(235deg);
+  -o-transform: rotate(235deg);
+  transform: rotate(235deg);
+}
+.wi-wind.towards-236-deg {
+  -webkit-transform: rotate(236deg);
+  -moz-transform: rotate(236deg);
+  -ms-transform: rotate(236deg);
+  -o-transform: rotate(236deg);
+  transform: rotate(236deg);
+}
+.wi-wind.towards-237-deg {
+  -webkit-transform: rotate(237deg);
+  -moz-transform: rotate(237deg);
+  -ms-transform: rotate(237deg);
+  -o-transform: rotate(237deg);
+  transform: rotate(237deg);
+}
+.wi-wind.towards-238-deg {
+  -webkit-transform: rotate(238deg);
+  -moz-transform: rotate(238deg);
+  -ms-transform: rotate(238deg);
+  -o-transform: rotate(238deg);
+  transform: rotate(238deg);
+}
+.wi-wind.towards-239-deg {
+  -webkit-transform: rotate(239deg);
+  -moz-transform: rotate(239deg);
+  -ms-transform: rotate(239deg);
+  -o-transform: rotate(239deg);
+  transform: rotate(239deg);
+}
+.wi-wind.towards-240-deg {
+  -webkit-transform: rotate(240deg);
+  -moz-transform: rotate(240deg);
+  -ms-transform: rotate(240deg);
+  -o-transform: rotate(240deg);
+  transform: rotate(240deg);
+}
+.wi-wind.towards-241-deg {
+  -webkit-transform: rotate(241deg);
+  -moz-transform: rotate(241deg);
+  -ms-transform: rotate(241deg);
+  -o-transform: rotate(241deg);
+  transform: rotate(241deg);
+}
+.wi-wind.towards-242-deg {
+  -webkit-transform: rotate(242deg);
+  -moz-transform: rotate(242deg);
+  -ms-transform: rotate(242deg);
+  -o-transform: rotate(242deg);
+  transform: rotate(242deg);
+}
+.wi-wind.towards-243-deg {
+  -webkit-transform: rotate(243deg);
+  -moz-transform: rotate(243deg);
+  -ms-transform: rotate(243deg);
+  -o-transform: rotate(243deg);
+  transform: rotate(243deg);
+}
+.wi-wind.towards-244-deg {
+  -webkit-transform: rotate(244deg);
+  -moz-transform: rotate(244deg);
+  -ms-transform: rotate(244deg);
+  -o-transform: rotate(244deg);
+  transform: rotate(244deg);
+}
+.wi-wind.towards-245-deg {
+  -webkit-transform: rotate(245deg);
+  -moz-transform: rotate(245deg);
+  -ms-transform: rotate(245deg);
+  -o-transform: rotate(245deg);
+  transform: rotate(245deg);
+}
+.wi-wind.towards-246-deg {
+  -webkit-transform: rotate(246deg);
+  -moz-transform: rotate(246deg);
+  -ms-transform: rotate(246deg);
+  -o-transform: rotate(246deg);
+  transform: rotate(246deg);
+}
+.wi-wind.towards-247-deg {
+  -webkit-transform: rotate(247deg);
+  -moz-transform: rotate(247deg);
+  -ms-transform: rotate(247deg);
+  -o-transform: rotate(247deg);
+  transform: rotate(247deg);
+}
+.wi-wind.towards-248-deg {
+  -webkit-transform: rotate(248deg);
+  -moz-transform: rotate(248deg);
+  -ms-transform: rotate(248deg);
+  -o-transform: rotate(248deg);
+  transform: rotate(248deg);
+}
+.wi-wind.towards-249-deg {
+  -webkit-transform: rotate(249deg);
+  -moz-transform: rotate(249deg);
+  -ms-transform: rotate(249deg);
+  -o-transform: rotate(249deg);
+  transform: rotate(249deg);
+}
+.wi-wind.towards-250-deg {
+  -webkit-transform: rotate(250deg);
+  -moz-transform: rotate(250deg);
+  -ms-transform: rotate(250deg);
+  -o-transform: rotate(250deg);
+  transform: rotate(250deg);
+}
+.wi-wind.towards-251-deg {
+  -webkit-transform: rotate(251deg);
+  -moz-transform: rotate(251deg);
+  -ms-transform: rotate(251deg);
+  -o-transform: rotate(251deg);
+  transform: rotate(251deg);
+}
+.wi-wind.towards-252-deg {
+  -webkit-transform: rotate(252deg);
+  -moz-transform: rotate(252deg);
+  -ms-transform: rotate(252deg);
+  -o-transform: rotate(252deg);
+  transform: rotate(252deg);
+}
+.wi-wind.towards-253-deg {
+  -webkit-transform: rotate(253deg);
+  -moz-transform: rotate(253deg);
+  -ms-transform: rotate(253deg);
+  -o-transform: rotate(253deg);
+  transform: rotate(253deg);
+}
+.wi-wind.towards-254-deg {
+  -webkit-transform: rotate(254deg);
+  -moz-transform: rotate(254deg);
+  -ms-transform: rotate(254deg);
+  -o-transform: rotate(254deg);
+  transform: rotate(254deg);
+}
+.wi-wind.towards-255-deg {
+  -webkit-transform: rotate(255deg);
+  -moz-transform: rotate(255deg);
+  -ms-transform: rotate(255deg);
+  -o-transform: rotate(255deg);
+  transform: rotate(255deg);
+}
+.wi-wind.towards-256-deg {
+  -webkit-transform: rotate(256deg);
+  -moz-transform: rotate(256deg);
+  -ms-transform: rotate(256deg);
+  -o-transform: rotate(256deg);
+  transform: rotate(256deg);
+}
+.wi-wind.towards-257-deg {
+  -webkit-transform: rotate(257deg);
+  -moz-transform: rotate(257deg);
+  -ms-transform: rotate(257deg);
+  -o-transform: rotate(257deg);
+  transform: rotate(257deg);
+}
+.wi-wind.towards-258-deg {
+  -webkit-transform: rotate(258deg);
+  -moz-transform: rotate(258deg);
+  -ms-transform: rotate(258deg);
+  -o-transform: rotate(258deg);
+  transform: rotate(258deg);
+}
+.wi-wind.towards-259-deg {
+  -webkit-transform: rotate(259deg);
+  -moz-transform: rotate(259deg);
+  -ms-transform: rotate(259deg);
+  -o-transform: rotate(259deg);
+  transform: rotate(259deg);
+}
+.wi-wind.towards-260-deg {
+  -webkit-transform: rotate(260deg);
+  -moz-transform: rotate(260deg);
+  -ms-transform: rotate(260deg);
+  -o-transform: rotate(260deg);
+  transform: rotate(260deg);
+}
+.wi-wind.towards-261-deg {
+  -webkit-transform: rotate(261deg);
+  -moz-transform: rotate(261deg);
+  -ms-transform: rotate(261deg);
+  -o-transform: rotate(261deg);
+  transform: rotate(261deg);
+}
+.wi-wind.towards-262-deg {
+  -webkit-transform: rotate(262deg);
+  -moz-transform: rotate(262deg);
+  -ms-transform: rotate(262deg);
+  -o-transform: rotate(262deg);
+  transform: rotate(262deg);
+}
+.wi-wind.towards-263-deg {
+  -webkit-transform: rotate(263deg);
+  -moz-transform: rotate(263deg);
+  -ms-transform: rotate(263deg);
+  -o-transform: rotate(263deg);
+  transform: rotate(263deg);
+}
+.wi-wind.towards-264-deg {
+  -webkit-transform: rotate(264deg);
+  -moz-transform: rotate(264deg);
+  -ms-transform: rotate(264deg);
+  -o-transform: rotate(264deg);
+  transform: rotate(264deg);
+}
+.wi-wind.towards-265-deg {
+  -webkit-transform: rotate(265deg);
+  -moz-transform: rotate(265deg);
+  -ms-transform: rotate(265deg);
+  -o-transform: rotate(265deg);
+  transform: rotate(265deg);
+}
+.wi-wind.towards-266-deg {
+  -webkit-transform: rotate(266deg);
+  -moz-transform: rotate(266deg);
+  -ms-transform: rotate(266deg);
+  -o-transform: rotate(266deg);
+  transform: rotate(266deg);
+}
+.wi-wind.towards-267-deg {
+  -webkit-transform: rotate(267deg);
+  -moz-transform: rotate(267deg);
+  -ms-transform: rotate(267deg);
+  -o-transform: rotate(267deg);
+  transform: rotate(267deg);
+}
+.wi-wind.towards-268-deg {
+  -webkit-transform: rotate(268deg);
+  -moz-transform: rotate(268deg);
+  -ms-transform: rotate(268deg);
+  -o-transform: rotate(268deg);
+  transform: rotate(268deg);
+}
+.wi-wind.towards-269-deg {
+  -webkit-transform: rotate(269deg);
+  -moz-transform: rotate(269deg);
+  -ms-transform: rotate(269deg);
+  -o-transform: rotate(269deg);
+  transform: rotate(269deg);
+}
+.wi-wind.towards-270-deg {
+  -webkit-transform: rotate(270deg);
+  -moz-transform: rotate(270deg);
+  -ms-transform: rotate(270deg);
+  -o-transform: rotate(270deg);
+  transform: rotate(270deg);
+}
+.wi-wind.towards-271-deg {
+  -webkit-transform: rotate(271deg);
+  -moz-transform: rotate(271deg);
+  -ms-transform: rotate(271deg);
+  -o-transform: rotate(271deg);
+  transform: rotate(271deg);
+}
+.wi-wind.towards-272-deg {
+  -webkit-transform: rotate(272deg);
+  -moz-transform: rotate(272deg);
+  -ms-transform: rotate(272deg);
+  -o-transform: rotate(272deg);
+  transform: rotate(272deg);
+}
+.wi-wind.towards-273-deg {
+  -webkit-transform: rotate(273deg);
+  -moz-transform: rotate(273deg);
+  -ms-transform: rotate(273deg);
+  -o-transform: rotate(273deg);
+  transform: rotate(273deg);
+}
+.wi-wind.towards-274-deg {
+  -webkit-transform: rotate(274deg);
+  -moz-transform: rotate(274deg);
+  -ms-transform: rotate(274deg);
+  -o-transform: rotate(274deg);
+  transform: rotate(274deg);
+}
+.wi-wind.towards-275-deg {
+  -webkit-transform: rotate(275deg);
+  -moz-transform: rotate(275deg);
+  -ms-transform: rotate(275deg);
+  -o-transform: rotate(275deg);
+  transform: rotate(275deg);
+}
+.wi-wind.towards-276-deg {
+  -webkit-transform: rotate(276deg);
+  -moz-transform: rotate(276deg);
+  -ms-transform: rotate(276deg);
+  -o-transform: rotate(276deg);
+  transform: rotate(276deg);
+}
+.wi-wind.towards-277-deg {
+  -webkit-transform: rotate(277deg);
+  -moz-transform: rotate(277deg);
+  -ms-transform: rotate(277deg);
+  -o-transform: rotate(277deg);
+  transform: rotate(277deg);
+}
+.wi-wind.towards-278-deg {
+  -webkit-transform: rotate(278deg);
+  -moz-transform: rotate(278deg);
+  -ms-transform: rotate(278deg);
+  -o-transform: rotate(278deg);
+  transform: rotate(278deg);
+}
+.wi-wind.towards-279-deg {
+  -webkit-transform: rotate(279deg);
+  -moz-transform: rotate(279deg);
+  -ms-transform: rotate(279deg);
+  -o-transform: rotate(279deg);
+  transform: rotate(279deg);
+}
+.wi-wind.towards-280-deg {
+  -webkit-transform: rotate(280deg);
+  -moz-transform: rotate(280deg);
+  -ms-transform: rotate(280deg);
+  -o-transform: rotate(280deg);
+  transform: rotate(280deg);
+}
+.wi-wind.towards-281-deg {
+  -webkit-transform: rotate(281deg);
+  -moz-transform: rotate(281deg);
+  -ms-transform: rotate(281deg);
+  -o-transform: rotate(281deg);
+  transform: rotate(281deg);
+}
+.wi-wind.towards-282-deg {
+  -webkit-transform: rotate(282deg);
+  -moz-transform: rotate(282deg);
+  -ms-transform: rotate(282deg);
+  -o-transform: rotate(282deg);
+  transform: rotate(282deg);
+}
+.wi-wind.towards-283-deg {
+  -webkit-transform: rotate(283deg);
+  -moz-transform: rotate(283deg);
+  -ms-transform: rotate(283deg);
+  -o-transform: rotate(283deg);
+  transform: rotate(283deg);
+}
+.wi-wind.towards-284-deg {
+  -webkit-transform: rotate(284deg);
+  -moz-transform: rotate(284deg);
+  -ms-transform: rotate(284deg);
+  -o-transform: rotate(284deg);
+  transform: rotate(284deg);
+}
+.wi-wind.towards-285-deg {
+  -webkit-transform: rotate(285deg);
+  -moz-transform: rotate(285deg);
+  -ms-transform: rotate(285deg);
+  -o-transform: rotate(285deg);
+  transform: rotate(285deg);
+}
+.wi-wind.towards-286-deg {
+  -webkit-transform: rotate(286deg);
+  -moz-transform: rotate(286deg);
+  -ms-transform: rotate(286deg);
+  -o-transform: rotate(286deg);
+  transform: rotate(286deg);
+}
+.wi-wind.towards-287-deg {
+  -webkit-transform: rotate(287deg);
+  -moz-transform: rotate(287deg);
+  -ms-transform: rotate(287deg);
+  -o-transform: rotate(287deg);
+  transform: rotate(287deg);
+}
+.wi-wind.towards-288-deg {
+  -webkit-transform: rotate(288deg);
+  -moz-transform: rotate(288deg);
+  -ms-transform: rotate(288deg);
+  -o-transform: rotate(288deg);
+  transform: rotate(288deg);
+}
+.wi-wind.towards-289-deg {
+  -webkit-transform: rotate(289deg);
+  -moz-transform: rotate(289deg);
+  -ms-transform: rotate(289deg);
+  -o-transform: rotate(289deg);
+  transform: rotate(289deg);
+}
+.wi-wind.towards-290-deg {
+  -webkit-transform: rotate(290deg);
+  -moz-transform: rotate(290deg);
+  -ms-transform: rotate(290deg);
+  -o-transform: rotate(290deg);
+  transform: rotate(290deg);
+}
+.wi-wind.towards-291-deg {
+  -webkit-transform: rotate(291deg);
+  -moz-transform: rotate(291deg);
+  -ms-transform: rotate(291deg);
+  -o-transform: rotate(291deg);
+  transform: rotate(291deg);
+}
+.wi-wind.towards-292-deg {
+  -webkit-transform: rotate(292deg);
+  -moz-transform: rotate(292deg);
+  -ms-transform: rotate(292deg);
+  -o-transform: rotate(292deg);
+  transform: rotate(292deg);
+}
+.wi-wind.towards-293-deg {
+  -webkit-transform: rotate(293deg);
+  -moz-transform: rotate(293deg);
+  -ms-transform: rotate(293deg);
+  -o-transform: rotate(293deg);
+  transform: rotate(293deg);
+}
+.wi-wind.towards-294-deg {
+  -webkit-transform: rotate(294deg);
+  -moz-transform: rotate(294deg);
+  -ms-transform: rotate(294deg);
+  -o-transform: rotate(294deg);
+  transform: rotate(294deg);
+}
+.wi-wind.towards-295-deg {
+  -webkit-transform: rotate(295deg);
+  -moz-transform: rotate(295deg);
+  -ms-transform: rotate(295deg);
+  -o-transform: rotate(295deg);
+  transform: rotate(295deg);
+}
+.wi-wind.towards-296-deg {
+  -webkit-transform: rotate(296deg);
+  -moz-transform: rotate(296deg);
+  -ms-transform: rotate(296deg);
+  -o-transform: rotate(296deg);
+  transform: rotate(296deg);
+}
+.wi-wind.towards-297-deg {
+  -webkit-transform: rotate(297deg);
+  -moz-transform: rotate(297deg);
+  -ms-transform: rotate(297deg);
+  -o-transform: rotate(297deg);
+  transform: rotate(297deg);
+}
+.wi-wind.towards-298-deg {
+  -webkit-transform: rotate(298deg);
+  -moz-transform: rotate(298deg);
+  -ms-transform: rotate(298deg);
+  -o-transform: rotate(298deg);
+  transform: rotate(298deg);
+}
+.wi-wind.towards-299-deg {
+  -webkit-transform: rotate(299deg);
+  -moz-transform: rotate(299deg);
+  -ms-transform: rotate(299deg);
+  -o-transform: rotate(299deg);
+  transform: rotate(299deg);
+}
+.wi-wind.towards-300-deg {
+  -webkit-transform: rotate(300deg);
+  -moz-transform: rotate(300deg);
+  -ms-transform: rotate(300deg);
+  -o-transform: rotate(300deg);
+  transform: rotate(300deg);
+}
+.wi-wind.towards-301-deg {
+  -webkit-transform: rotate(301deg);
+  -moz-transform: rotate(301deg);
+  -ms-transform: rotate(301deg);
+  -o-transform: rotate(301deg);
+  transform: rotate(301deg);
+}
+.wi-wind.towards-302-deg {
+  -webkit-transform: rotate(302deg);
+  -moz-transform: rotate(302deg);
+  -ms-transform: rotate(302deg);
+  -o-transform: rotate(302deg);
+  transform: rotate(302deg);
+}
+.wi-wind.towards-303-deg {
+  -webkit-transform: rotate(303deg);
+  -moz-transform: rotate(303deg);
+  -ms-transform: rotate(303deg);
+  -o-transform: rotate(303deg);
+  transform: rotate(303deg);
+}
+.wi-wind.towards-304-deg {
+  -webkit-transform: rotate(304deg);
+  -moz-transform: rotate(304deg);
+  -ms-transform: rotate(304deg);
+  -o-transform: rotate(304deg);
+  transform: rotate(304deg);
+}
+.wi-wind.towards-305-deg {
+  -webkit-transform: rotate(305deg);
+  -moz-transform: rotate(305deg);
+  -ms-transform: rotate(305deg);
+  -o-transform: rotate(305deg);
+  transform: rotate(305deg);
+}
+.wi-wind.towards-306-deg {
+  -webkit-transform: rotate(306deg);
+  -moz-transform: rotate(306deg);
+  -ms-transform: rotate(306deg);
+  -o-transform: rotate(306deg);
+  transform: rotate(306deg);
+}
+.wi-wind.towards-307-deg {
+  -webkit-transform: rotate(307deg);
+  -moz-transform: rotate(307deg);
+  -ms-transform: rotate(307deg);
+  -o-transform: rotate(307deg);
+  transform: rotate(307deg);
+}
+.wi-wind.towards-308-deg {
+  -webkit-transform: rotate(308deg);
+  -moz-transform: rotate(308deg);
+  -ms-transform: rotate(308deg);
+  -o-transform: rotate(308deg);
+  transform: rotate(308deg);
+}
+.wi-wind.towards-309-deg {
+  -webkit-transform: rotate(309deg);
+  -moz-transform: rotate(309deg);
+  -ms-transform: rotate(309deg);
+  -o-transform: rotate(309deg);
+  transform: rotate(309deg);
+}
+.wi-wind.towards-310-deg {
+  -webkit-transform: rotate(310deg);
+  -moz-transform: rotate(310deg);
+  -ms-transform: rotate(310deg);
+  -o-transform: rotate(310deg);
+  transform: rotate(310deg);
+}
+.wi-wind.towards-311-deg {
+  -webkit-transform: rotate(311deg);
+  -moz-transform: rotate(311deg);
+  -ms-transform: rotate(311deg);
+  -o-transform: rotate(311deg);
+  transform: rotate(311deg);
+}
+.wi-wind.towards-312-deg {
+  -webkit-transform: rotate(312deg);
+  -moz-transform: rotate(312deg);
+  -ms-transform: rotate(312deg);
+  -o-transform: rotate(312deg);
+  transform: rotate(312deg);
+}
+.wi-wind.towards-313-deg {
+  -webkit-transform: rotate(313deg);
+  -moz-transform: rotate(313deg);
+  -ms-transform: rotate(313deg);
+  -o-transform: rotate(313deg);
+  transform: rotate(313deg);
+}
+.wi-wind.towards-314-deg {
+  -webkit-transform: rotate(314deg);
+  -moz-transform: rotate(314deg);
+  -ms-transform: rotate(314deg);
+  -o-transform: rotate(314deg);
+  transform: rotate(314deg);
+}
+.wi-wind.towards-315-deg {
+  -webkit-transform: rotate(315deg);
+  -moz-transform: rotate(315deg);
+  -ms-transform: rotate(315deg);
+  -o-transform: rotate(315deg);
+  transform: rotate(315deg);
+}
+.wi-wind.towards-316-deg {
+  -webkit-transform: rotate(316deg);
+  -moz-transform: rotate(316deg);
+  -ms-transform: rotate(316deg);
+  -o-transform: rotate(316deg);
+  transform: rotate(316deg);
+}
+.wi-wind.towards-317-deg {
+  -webkit-transform: rotate(317deg);
+  -moz-transform: rotate(317deg);
+  -ms-transform: rotate(317deg);
+  -o-transform: rotate(317deg);
+  transform: rotate(317deg);
+}
+.wi-wind.towards-318-deg {
+  -webkit-transform: rotate(318deg);
+  -moz-transform: rotate(318deg);
+  -ms-transform: rotate(318deg);
+  -o-transform: rotate(318deg);
+  transform: rotate(318deg);
+}
+.wi-wind.towards-319-deg {
+  -webkit-transform: rotate(319deg);
+  -moz-transform: rotate(319deg);
+  -ms-transform: rotate(319deg);
+  -o-transform: rotate(319deg);
+  transform: rotate(319deg);
+}
+.wi-wind.towards-320-deg {
+  -webkit-transform: rotate(320deg);
+  -moz-transform: rotate(320deg);
+  -ms-transform: rotate(320deg);
+  -o-transform: rotate(320deg);
+  transform: rotate(320deg);
+}
+.wi-wind.towards-321-deg {
+  -webkit-transform: rotate(321deg);
+  -moz-transform: rotate(321deg);
+  -ms-transform: rotate(321deg);
+  -o-transform: rotate(321deg);
+  transform: rotate(321deg);
+}
+.wi-wind.towards-322-deg {
+  -webkit-transform: rotate(322deg);
+  -moz-transform: rotate(322deg);
+  -ms-transform: rotate(322deg);
+  -o-transform: rotate(322deg);
+  transform: rotate(322deg);
+}
+.wi-wind.towards-323-deg {
+  -webkit-transform: rotate(323deg);
+  -moz-transform: rotate(323deg);
+  -ms-transform: rotate(323deg);
+  -o-transform: rotate(323deg);
+  transform: rotate(323deg);
+}
+.wi-wind.towards-324-deg {
+  -webkit-transform: rotate(324deg);
+  -moz-transform: rotate(324deg);
+  -ms-transform: rotate(324deg);
+  -o-transform: rotate(324deg);
+  transform: rotate(324deg);
+}
+.wi-wind.towards-325-deg {
+  -webkit-transform: rotate(325deg);
+  -moz-transform: rotate(325deg);
+  -ms-transform: rotate(325deg);
+  -o-transform: rotate(325deg);
+  transform: rotate(325deg);
+}
+.wi-wind.towards-326-deg {
+  -webkit-transform: rotate(326deg);
+  -moz-transform: rotate(326deg);
+  -ms-transform: rotate(326deg);
+  -o-transform: rotate(326deg);
+  transform: rotate(326deg);
+}
+.wi-wind.towards-327-deg {
+  -webkit-transform: rotate(327deg);
+  -moz-transform: rotate(327deg);
+  -ms-transform: rotate(327deg);
+  -o-transform: rotate(327deg);
+  transform: rotate(327deg);
+}
+.wi-wind.towards-328-deg {
+  -webkit-transform: rotate(328deg);
+  -moz-transform: rotate(328deg);
+  -ms-transform: rotate(328deg);
+  -o-transform: rotate(328deg);
+  transform: rotate(328deg);
+}
+.wi-wind.towards-329-deg {
+  -webkit-transform: rotate(329deg);
+  -moz-transform: rotate(329deg);
+  -ms-transform: rotate(329deg);
+  -o-transform: rotate(329deg);
+  transform: rotate(329deg);
+}
+.wi-wind.towards-330-deg {
+  -webkit-transform: rotate(330deg);
+  -moz-transform: rotate(330deg);
+  -ms-transform: rotate(330deg);
+  -o-transform: rotate(330deg);
+  transform: rotate(330deg);
+}
+.wi-wind.towards-331-deg {
+  -webkit-transform: rotate(331deg);
+  -moz-transform: rotate(331deg);
+  -ms-transform: rotate(331deg);
+  -o-transform: rotate(331deg);
+  transform: rotate(331deg);
+}
+.wi-wind.towards-332-deg {
+  -webkit-transform: rotate(332deg);
+  -moz-transform: rotate(332deg);
+  -ms-transform: rotate(332deg);
+  -o-transform: rotate(332deg);
+  transform: rotate(332deg);
+}
+.wi-wind.towards-333-deg {
+  -webkit-transform: rotate(333deg);
+  -moz-transform: rotate(333deg);
+  -ms-transform: rotate(333deg);
+  -o-transform: rotate(333deg);
+  transform: rotate(333deg);
+}
+.wi-wind.towards-334-deg {
+  -webkit-transform: rotate(334deg);
+  -moz-transform: rotate(334deg);
+  -ms-transform: rotate(334deg);
+  -o-transform: rotate(334deg);
+  transform: rotate(334deg);
+}
+.wi-wind.towards-335-deg {
+  -webkit-transform: rotate(335deg);
+  -moz-transform: rotate(335deg);
+  -ms-transform: rotate(335deg);
+  -o-transform: rotate(335deg);
+  transform: rotate(335deg);
+}
+.wi-wind.towards-336-deg {
+  -webkit-transform: rotate(336deg);
+  -moz-transform: rotate(336deg);
+  -ms-transform: rotate(336deg);
+  -o-transform: rotate(336deg);
+  transform: rotate(336deg);
+}
+.wi-wind.towards-337-deg {
+  -webkit-transform: rotate(337deg);
+  -moz-transform: rotate(337deg);
+  -ms-transform: rotate(337deg);
+  -o-transform: rotate(337deg);
+  transform: rotate(337deg);
+}
+.wi-wind.towards-338-deg {
+  -webkit-transform: rotate(338deg);
+  -moz-transform: rotate(338deg);
+  -ms-transform: rotate(338deg);
+  -o-transform: rotate(338deg);
+  transform: rotate(338deg);
+}
+.wi-wind.towards-339-deg {
+  -webkit-transform: rotate(339deg);
+  -moz-transform: rotate(339deg);
+  -ms-transform: rotate(339deg);
+  -o-transform: rotate(339deg);
+  transform: rotate(339deg);
+}
+.wi-wind.towards-340-deg {
+  -webkit-transform: rotate(340deg);
+  -moz-transform: rotate(340deg);
+  -ms-transform: rotate(340deg);
+  -o-transform: rotate(340deg);
+  transform: rotate(340deg);
+}
+.wi-wind.towards-341-deg {
+  -webkit-transform: rotate(341deg);
+  -moz-transform: rotate(341deg);
+  -ms-transform: rotate(341deg);
+  -o-transform: rotate(341deg);
+  transform: rotate(341deg);
+}
+.wi-wind.towards-342-deg {
+  -webkit-transform: rotate(342deg);
+  -moz-transform: rotate(342deg);
+  -ms-transform: rotate(342deg);
+  -o-transform: rotate(342deg);
+  transform: rotate(342deg);
+}
+.wi-wind.towards-343-deg {
+  -webkit-transform: rotate(343deg);
+  -moz-transform: rotate(343deg);
+  -ms-transform: rotate(343deg);
+  -o-transform: rotate(343deg);
+  transform: rotate(343deg);
+}
+.wi-wind.towards-344-deg {
+  -webkit-transform: rotate(344deg);
+  -moz-transform: rotate(344deg);
+  -ms-transform: rotate(344deg);
+  -o-transform: rotate(344deg);
+  transform: rotate(344deg);
+}
+.wi-wind.towards-345-deg {
+  -webkit-transform: rotate(345deg);
+  -moz-transform: rotate(345deg);
+  -ms-transform: rotate(345deg);
+  -o-transform: rotate(345deg);
+  transform: rotate(345deg);
+}
+.wi-wind.towards-346-deg {
+  -webkit-transform: rotate(346deg);
+  -moz-transform: rotate(346deg);
+  -ms-transform: rotate(346deg);
+  -o-transform: rotate(346deg);
+  transform: rotate(346deg);
+}
+.wi-wind.towards-347-deg {
+  -webkit-transform: rotate(347deg);
+  -moz-transform: rotate(347deg);
+  -ms-transform: rotate(347deg);
+  -o-transform: rotate(347deg);
+  transform: rotate(347deg);
+}
+.wi-wind.towards-348-deg {
+  -webkit-transform: rotate(348deg);
+  -moz-transform: rotate(348deg);
+  -ms-transform: rotate(348deg);
+  -o-transform: rotate(348deg);
+  transform: rotate(348deg);
+}
+.wi-wind.towards-349-deg {
+  -webkit-transform: rotate(349deg);
+  -moz-transform: rotate(349deg);
+  -ms-transform: rotate(349deg);
+  -o-transform: rotate(349deg);
+  transform: rotate(349deg);
+}
+.wi-wind.towards-350-deg {
+  -webkit-transform: rotate(350deg);
+  -moz-transform: rotate(350deg);
+  -ms-transform: rotate(350deg);
+  -o-transform: rotate(350deg);
+  transform: rotate(350deg);
+}
+.wi-wind.towards-351-deg {
+  -webkit-transform: rotate(351deg);
+  -moz-transform: rotate(351deg);
+  -ms-transform: rotate(351deg);
+  -o-transform: rotate(351deg);
+  transform: rotate(351deg);
+}
+.wi-wind.towards-352-deg {
+  -webkit-transform: rotate(352deg);
+  -moz-transform: rotate(352deg);
+  -ms-transform: rotate(352deg);
+  -o-transform: rotate(352deg);
+  transform: rotate(352deg);
+}
+.wi-wind.towards-353-deg {
+  -webkit-transform: rotate(353deg);
+  -moz-transform: rotate(353deg);
+  -ms-transform: rotate(353deg);
+  -o-transform: rotate(353deg);
+  transform: rotate(353deg);
+}
+.wi-wind.towards-354-deg {
+  -webkit-transform: rotate(354deg);
+  -moz-transform: rotate(354deg);
+  -ms-transform: rotate(354deg);
+  -o-transform: rotate(354deg);
+  transform: rotate(354deg);
+}
+.wi-wind.towards-355-deg {
+  -webkit-transform: rotate(355deg);
+  -moz-transform: rotate(355deg);
+  -ms-transform: rotate(355deg);
+  -o-transform: rotate(355deg);
+  transform: rotate(355deg);
+}
+.wi-wind.towards-356-deg {
+  -webkit-transform: rotate(356deg);
+  -moz-transform: rotate(356deg);
+  -ms-transform: rotate(356deg);
+  -o-transform: rotate(356deg);
+  transform: rotate(356deg);
+}
+.wi-wind.towards-357-deg {
+  -webkit-transform: rotate(357deg);
+  -moz-transform: rotate(357deg);
+  -ms-transform: rotate(357deg);
+  -o-transform: rotate(357deg);
+  transform: rotate(357deg);
+}
+.wi-wind.towards-358-deg {
+  -webkit-transform: rotate(358deg);
+  -moz-transform: rotate(358deg);
+  -ms-transform: rotate(358deg);
+  -o-transform: rotate(358deg);
+  transform: rotate(358deg);
+}
+.wi-wind.towards-359-deg {
+  -webkit-transform: rotate(359deg);
+  -moz-transform: rotate(359deg);
+  -ms-transform: rotate(359deg);
+  -o-transform: rotate(359deg);
+  transform: rotate(359deg);
+}
+.wi-wind.towards-360-deg {
+  -webkit-transform: rotate(0deg);
+  -moz-transform: rotate(0deg);
+  -ms-transform: rotate(0deg);
+  -o-transform: rotate(0deg);
+  transform: rotate(0deg);
+}
+.wi-wind.from-0-deg {
+  -webkit-transform: rotate(180deg);
+  -moz-transform: rotate(180deg);
+  -ms-transform: rotate(180deg);
+  -o-transform: rotate(180deg);
+  transform: rotate(180deg);
+}
+.wi-wind.from-1-deg {
+  -webkit-transform: rotate(181deg);
+  -moz-transform: rotate(181deg);
+  -ms-transform: rotate(181deg);
+  -o-transform: rotate(181deg);
+  transform: rotate(181deg);
+}
+.wi-wind.from-2-deg {
+  -webkit-transform: rotate(182deg);
+  -moz-transform: rotate(182deg);
+  -ms-transform: rotate(182deg);
+  -o-transform: rotate(182deg);
+  transform: rotate(182deg);
+}
+.wi-wind.from-3-deg {
+  -webkit-transform: rotate(183deg);
+  -moz-transform: rotate(183deg);
+  -ms-transform: rotate(183deg);
+  -o-transform: rotate(183deg);
+  transform: rotate(183deg);
+}
+.wi-wind.from-4-deg {
+  -webkit-transform: rotate(184deg);
+  -moz-transform: rotate(184deg);
+  -ms-transform: rotate(184deg);
+  -o-transform: rotate(184deg);
+  transform: rotate(184deg);
+}
+.wi-wind.from-5-deg {
+  -webkit-transform: rotate(185deg);
+  -moz-transform: rotate(185deg);
+  -ms-transform: rotate(185deg);
+  -o-transform: rotate(185deg);
+  transform: rotate(185deg);
+}
+.wi-wind.from-6-deg {
+  -webkit-transform: rotate(186deg);
+  -moz-transform: rotate(186deg);
+  -ms-transform: rotate(186deg);
+  -o-transform: rotate(186deg);
+  transform: rotate(186deg);
+}
+.wi-wind.from-7-deg {
+  -webkit-transform: rotate(187deg);
+  -moz-transform: rotate(187deg);
+  -ms-transform: rotate(187deg);
+  -o-transform: rotate(187deg);
+  transform: rotate(187deg);
+}
+.wi-wind.from-8-deg {
+  -webkit-transform: rotate(188deg);
+  -moz-transform: rotate(188deg);
+  -ms-transform: rotate(188deg);
+  -o-transform: rotate(188deg);
+  transform: rotate(188deg);
+}
+.wi-wind.from-9-deg {
+  -webkit-transform: rotate(189deg);
+  -moz-transform: rotate(189deg);
+  -ms-transform: rotate(189deg);
+  -o-transform: rotate(189deg);
+  transform: rotate(189deg);
+}
+.wi-wind.from-10-deg {
+  -webkit-transform: rotate(190deg);
+  -moz-transform: rotate(190deg);
+  -ms-transform: rotate(190deg);
+  -o-transform: rotate(190deg);
+  transform: rotate(190deg);
+}
+.wi-wind.from-11-deg {
+  -webkit-transform: rotate(191deg);
+  -moz-transform: rotate(191deg);
+  -ms-transform: rotate(191deg);
+  -o-transform: rotate(191deg);
+  transform: rotate(191deg);
+}
+.wi-wind.from-12-deg {
+  -webkit-transform: rotate(192deg);
+  -moz-transform: rotate(192deg);
+  -ms-transform: rotate(192deg);
+  -o-transform: rotate(192deg);
+  transform: rotate(192deg);
+}
+.wi-wind.from-13-deg {
+  -webkit-transform: rotate(193deg);
+  -moz-transform: rotate(193deg);
+  -ms-transform: rotate(193deg);
+  -o-transform: rotate(193deg);
+  transform: rotate(193deg);
+}
+.wi-wind.from-14-deg {
+  -webkit-transform: rotate(194deg);
+  -moz-transform: rotate(194deg);
+  -ms-transform: rotate(194deg);
+  -o-transform: rotate(194deg);
+  transform: rotate(194deg);
+}
+.wi-wind.from-15-deg {
+  -webkit-transform: rotate(195deg);
+  -moz-transform: rotate(195deg);
+  -ms-transform: rotate(195deg);
+  -o-transform: rotate(195deg);
+  transform: rotate(195deg);
+}
+.wi-wind.from-16-deg {
+  -webkit-transform: rotate(196deg);
+  -moz-transform: rotate(196deg);
+  -ms-transform: rotate(196deg);
+  -o-transform: rotate(196deg);
+  transform: rotate(196deg);
+}
+.wi-wind.from-17-deg {
+  -webkit-transform: rotate(197deg);
+  -moz-transform: rotate(197deg);
+  -ms-transform: rotate(197deg);
+  -o-transform: rotate(197deg);
+  transform: rotate(197deg);
+}
+.wi-wind.from-18-deg {
+  -webkit-transform: rotate(198deg);
+  -moz-transform: rotate(198deg);
+  -ms-transform: rotate(198deg);
+  -o-transform: rotate(198deg);
+  transform: rotate(198deg);
+}
+.wi-wind.from-19-deg {
+  -webkit-transform: rotate(199deg);
+  -moz-transform: rotate(199deg);
+  -ms-transform: rotate(199deg);
+  -o-transform: rotate(199deg);
+  transform: rotate(199deg);
+}
+.wi-wind.from-20-deg {
+  -webkit-transform: rotate(200deg);
+  -moz-transform: rotate(200deg);
+  -ms-transform: rotate(200deg);
+  -o-transform: rotate(200deg);
+  transform: rotate(200deg);
+}
+.wi-wind.from-21-deg {
+  -webkit-transform: rotate(201deg);
+  -moz-transform: rotate(201deg);
+  -ms-transform: rotate(201deg);
+  -o-transform: rotate(201deg);
+  transform: rotate(201deg);
+}
+.wi-wind.from-22-deg {
+  -webkit-transform: rotate(202deg);
+  -moz-transform: rotate(202deg);
+  -ms-transform: rotate(202deg);
+  -o-transform: rotate(202deg);
+  transform: rotate(202deg);
+}
+.wi-wind.from-23-deg {
+  -webkit-transform: rotate(203deg);
+  -moz-transform: rotate(203deg);
+  -ms-transform: rotate(203deg);
+  -o-transform: rotate(203deg);
+  transform: rotate(203deg);
+}
+.wi-wind.from-24-deg {
+  -webkit-transform: rotate(204deg);
+  -moz-transform: rotate(204deg);
+  -ms-transform: rotate(204deg);
+  -o-transform: rotate(204deg);
+  transform: rotate(204deg);
+}
+.wi-wind.from-25-deg {
+  -webkit-transform: rotate(205deg);
+  -moz-transform: rotate(205deg);
+  -ms-transform: rotate(205deg);
+  -o-transform: rotate(205deg);
+  transform: rotate(205deg);
+}
+.wi-wind.from-26-deg {
+  -webkit-transform: rotate(206deg);
+  -moz-transform: rotate(206deg);
+  -ms-transform: rotate(206deg);
+  -o-transform: rotate(206deg);
+  transform: rotate(206deg);
+}
+.wi-wind.from-27-deg {
+  -webkit-transform: rotate(207deg);
+  -moz-transform: rotate(207deg);
+  -ms-transform: rotate(207deg);
+  -o-transform: rotate(207deg);
+  transform: rotate(207deg);
+}
+.wi-wind.from-28-deg {
+  -webkit-transform: rotate(208deg);
+  -moz-transform: rotate(208deg);
+  -ms-transform: rotate(208deg);
+  -o-transform: rotate(208deg);
+  transform: rotate(208deg);
+}
+.wi-wind.from-29-deg {
+  -webkit-transform: rotate(209deg);
+  -moz-transform: rotate(209deg);
+  -ms-transform: rotate(209deg);
+  -o-transform: rotate(209deg);
+  transform: rotate(209deg);
+}
+.wi-wind.from-30-deg {
+  -webkit-transform: rotate(210deg);
+  -moz-transform: rotate(210deg);
+  -ms-transform: rotate(210deg);
+  -o-transform: rotate(210deg);
+  transform: rotate(210deg);
+}
+.wi-wind.from-31-deg {
+  -webkit-transform: rotate(211deg);
+  -moz-transform: rotate(211deg);
+  -ms-transform: rotate(211deg);
+  -o-transform: rotate(211deg);
+  transform: rotate(211deg);
+}
+.wi-wind.from-32-deg {
+  -webkit-transform: rotate(212deg);
+  -moz-transform: rotate(212deg);
+  -ms-transform: rotate(212deg);
+  -o-transform: rotate(212deg);
+  transform: rotate(212deg);
+}
+.wi-wind.from-33-deg {
+  -webkit-transform: rotate(213deg);
+  -moz-transform: rotate(213deg);
+  -ms-transform: rotate(213deg);
+  -o-transform: rotate(213deg);
+  transform: rotate(213deg);
+}
+.wi-wind.from-34-deg {
+  -webkit-transform: rotate(214deg);
+  -moz-transform: rotate(214deg);
+  -ms-transform: rotate(214deg);
+  -o-transform: rotate(214deg);
+  transform: rotate(214deg);
+}
+.wi-wind.from-35-deg {
+  -webkit-transform: rotate(215deg);
+  -moz-transform: rotate(215deg);
+  -ms-transform: rotate(215deg);
+  -o-transform: rotate(215deg);
+  transform: rotate(215deg);
+}
+.wi-wind.from-36-deg {
+  -webkit-transform: rotate(216deg);
+  -moz-transform: rotate(216deg);
+  -ms-transform: rotate(216deg);
+  -o-transform: rotate(216deg);
+  transform: rotate(216deg);
+}
+.wi-wind.from-37-deg {
+  -webkit-transform: rotate(217deg);
+  -moz-transform: rotate(217deg);
+  -ms-transform: rotate(217deg);
+  -o-transform: rotate(217deg);
+  transform: rotate(217deg);
+}
+.wi-wind.from-38-deg {
+  -webkit-transform: rotate(218deg);
+  -moz-transform: rotate(218deg);
+  -ms-transform: rotate(218deg);
+  -o-transform: rotate(218deg);
+  transform: rotate(218deg);
+}
+.wi-wind.from-39-deg {
+  -webkit-transform: rotate(219deg);
+  -moz-transform: rotate(219deg);
+  -ms-transform: rotate(219deg);
+  -o-transform: rotate(219deg);
+  transform: rotate(219deg);
+}
+.wi-wind.from-40-deg {
+  -webkit-transform: rotate(220deg);
+  -moz-transform: rotate(220deg);
+  -ms-transform: rotate(220deg);
+  -o-transform: rotate(220deg);
+  transform: rotate(220deg);
+}
+.wi-wind.from-41-deg {
+  -webkit-transform: rotate(221deg);
+  -moz-transform: rotate(221deg);
+  -ms-transform: rotate(221deg);
+  -o-transform: rotate(221deg);
+  transform: rotate(221deg);
+}
+.wi-wind.from-42-deg {
+  -webkit-transform: rotate(222deg);
+  -moz-transform: rotate(222deg);
+  -ms-transform: rotate(222deg);
+  -o-transform: rotate(222deg);
+  transform: rotate(222deg);
+}
+.wi-wind.from-43-deg {
+  -webkit-transform: rotate(223deg);
+  -moz-transform: rotate(223deg);
+  -ms-transform: rotate(223deg);
+  -o-transform: rotate(223deg);
+  transform: rotate(223deg);
+}
+.wi-wind.from-44-deg {
+  -webkit-transform: rotate(224deg);
+  -moz-transform: rotate(224deg);
+  -ms-transform: rotate(224deg);
+  -o-transform: rotate(224deg);
+  transform: rotate(224deg);
+}
+.wi-wind.from-45-deg {
+  -webkit-transform: rotate(225deg);
+  -moz-transform: rotate(225deg);
+  -ms-transform: rotate(225deg);
+  -o-transform: rotate(225deg);
+  transform: rotate(225deg);
+}
+.wi-wind.from-46-deg {
+  -webkit-transform: rotate(226deg);
+  -moz-transform: rotate(226deg);
+  -ms-transform: rotate(226deg);
+  -o-transform: rotate(226deg);
+  transform: rotate(226deg);
+}
+.wi-wind.from-47-deg {
+  -webkit-transform: rotate(227deg);
+  -moz-transform: rotate(227deg);
+  -ms-transform: rotate(227deg);
+  -o-transform: rotate(227deg);
+  transform: rotate(227deg);
+}
+.wi-wind.from-48-deg {
+  -webkit-transform: rotate(228deg);
+  -moz-transform: rotate(228deg);
+  -ms-transform: rotate(228deg);
+  -o-transform: rotate(228deg);
+  transform: rotate(228deg);
+}
+.wi-wind.from-49-deg {
+  -webkit-transform: rotate(229deg);
+  -moz-transform: rotate(229deg);
+  -ms-transform: rotate(229deg);
+  -o-transform: rotate(229deg);
+  transform: rotate(229deg);
+}
+.wi-wind.from-50-deg {
+  -webkit-transform: rotate(230deg);
+  -moz-transform: rotate(230deg);
+  -ms-transform: rotate(230deg);
+  -o-transform: rotate(230deg);
+  transform: rotate(230deg);
+}
+.wi-wind.from-51-deg {
+  -webkit-transform: rotate(231deg);
+  -moz-transform: rotate(231deg);
+  -ms-transform: rotate(231deg);
+  -o-transform: rotate(231deg);
+  transform: rotate(231deg);
+}
+.wi-wind.from-52-deg {
+  -webkit-transform: rotate(232deg);
+  -moz-transform: rotate(232deg);
+  -ms-transform: rotate(232deg);
+  -o-transform: rotate(232deg);
+  transform: rotate(232deg);
+}
+.wi-wind.from-53-deg {
+  -webkit-transform: rotate(233deg);
+  -moz-transform: rotate(233deg);
+  -ms-transform: rotate(233deg);
+  -o-transform: rotate(233deg);
+  transform: rotate(233deg);
+}
+.wi-wind.from-54-deg {
+  -webkit-transform: rotate(234deg);
+  -moz-transform: rotate(234deg);
+  -ms-transform: rotate(234deg);
+  -o-transform: rotate(234deg);
+  transform: rotate(234deg);
+}
+.wi-wind.from-55-deg {
+  -webkit-transform: rotate(235deg);
+  -moz-transform: rotate(235deg);
+  -ms-transform: rotate(235deg);
+  -o-transform: rotate(235deg);
+  transform: rotate(235deg);
+}
+.wi-wind.from-56-deg {
+  -webkit-transform: rotate(236deg);
+  -moz-transform: rotate(236deg);
+  -ms-transform: rotate(236deg);
+  -o-transform: rotate(236deg);
+  transform: rotate(236deg);
+}
+.wi-wind.from-57-deg {
+  -webkit-transform: rotate(237deg);
+  -moz-transform: rotate(237deg);
+  -ms-transform: rotate(237deg);
+  -o-transform: rotate(237deg);
+  transform: rotate(237deg);
+}
+.wi-wind.from-58-deg {
+  -webkit-transform: rotate(238deg);
+  -moz-transform: rotate(238deg);
+  -ms-transform: rotate(238deg);
+  -o-transform: rotate(238deg);
+  transform: rotate(238deg);
+}
+.wi-wind.from-59-deg {
+  -webkit-transform: rotate(239deg);
+  -moz-transform: rotate(239deg);
+  -ms-transform: rotate(239deg);
+  -o-transform: rotate(239deg);
+  transform: rotate(239deg);
+}
+.wi-wind.from-60-deg {
+  -webkit-transform: rotate(240deg);
+  -moz-transform: rotate(240deg);
+  -ms-transform: rotate(240deg);
+  -o-transform: rotate(240deg);
+  transform: rotate(240deg);
+}
+.wi-wind.from-61-deg {
+  -webkit-transform: rotate(241deg);
+  -moz-transform: rotate(241deg);
+  -ms-transform: rotate(241deg);
+  -o-transform: rotate(241deg);
+  transform: rotate(241deg);
+}
+.wi-wind.from-62-deg {
+  -webkit-transform: rotate(242deg);
+  -moz-transform: rotate(242deg);
+  -ms-transform: rotate(242deg);
+  -o-transform: rotate(242deg);
+  transform: rotate(242deg);
+}
+.wi-wind.from-63-deg {
+  -webkit-transform: rotate(243deg);
+  -moz-transform: rotate(243deg);
+  -ms-transform: rotate(243deg);
+  -o-transform: rotate(243deg);
+  transform: rotate(243deg);
+}
+.wi-wind.from-64-deg {
+  -webkit-transform: rotate(244deg);
+  -moz-transform: rotate(244deg);
+  -ms-transform: rotate(244deg);
+  -o-transform: rotate(244deg);
+  transform: rotate(244deg);
+}
+.wi-wind.from-65-deg {
+  -webkit-transform: rotate(245deg);
+  -moz-transform: rotate(245deg);
+  -ms-transform: rotate(245deg);
+  -o-transform: rotate(245deg);
+  transform: rotate(245deg);
+}
+.wi-wind.from-66-deg {
+  -webkit-transform: rotate(246deg);
+  -moz-transform: rotate(246deg);
+  -ms-transform: rotate(246deg);
+  -o-transform: rotate(246deg);
+  transform: rotate(246deg);
+}
+.wi-wind.from-67-deg {
+  -webkit-transform: rotate(247deg);
+  -moz-transform: rotate(247deg);
+  -ms-transform: rotate(247deg);
+  -o-transform: rotate(247deg);
+  transform: rotate(247deg);
+}
+.wi-wind.from-68-deg {
+  -webkit-transform: rotate(248deg);
+  -moz-transform: rotate(248deg);
+  -ms-transform: rotate(248deg);
+  -o-transform: rotate(248deg);
+  transform: rotate(248deg);
+}
+.wi-wind.from-69-deg {
+  -webkit-transform: rotate(249deg);
+  -moz-transform: rotate(249deg);
+  -ms-transform: rotate(249deg);
+  -o-transform: rotate(249deg);
+  transform: rotate(249deg);
+}
+.wi-wind.from-70-deg {
+  -webkit-transform: rotate(250deg);
+  -moz-transform: rotate(250deg);
+  -ms-transform: rotate(250deg);
+  -o-transform: rotate(250deg);
+  transform: rotate(250deg);
+}
+.wi-wind.from-71-deg {
+  -webkit-transform: rotate(251deg);
+  -moz-transform: rotate(251deg);
+  -ms-transform: rotate(251deg);
+  -o-transform: rotate(251deg);
+  transform: rotate(251deg);
+}
+.wi-wind.from-72-deg {
+  -webkit-transform: rotate(252deg);
+  -moz-transform: rotate(252deg);
+  -ms-transform: rotate(252deg);
+  -o-transform: rotate(252deg);
+  transform: rotate(252deg);
+}
+.wi-wind.from-73-deg {
+  -webkit-transform: rotate(253deg);
+  -moz-transform: rotate(253deg);
+  -ms-transform: rotate(253deg);
+  -o-transform: rotate(253deg);
+  transform: rotate(253deg);
+}
+.wi-wind.from-74-deg {
+  -webkit-transform: rotate(254deg);
+  -moz-transform: rotate(254deg);
+  -ms-transform: rotate(254deg);
+  -o-transform: rotate(254deg);
+  transform: rotate(254deg);
+}
+.wi-wind.from-75-deg {
+  -webkit-transform: rotate(255deg);
+  -moz-transform: rotate(255deg);
+  -ms-transform: rotate(255deg);
+  -o-transform: rotate(255deg);
+  transform: rotate(255deg);
+}
+.wi-wind.from-76-deg {
+  -webkit-transform: rotate(256deg);
+  -moz-transform: rotate(256deg);
+  -ms-transform: rotate(256deg);
+  -o-transform: rotate(256deg);
+  transform: rotate(256deg);
+}
+.wi-wind.from-77-deg {
+  -webkit-transform: rotate(257deg);
+  -moz-transform: rotate(257deg);
+  -ms-transform: rotate(257deg);
+  -o-transform: rotate(257deg);
+  transform: rotate(257deg);
+}
+.wi-wind.from-78-deg {
+  -webkit-transform: rotate(258deg);
+  -moz-transform: rotate(258deg);
+  -ms-transform: rotate(258deg);
+  -o-transform: rotate(258deg);
+  transform: rotate(258deg);
+}
+.wi-wind.from-79-deg {
+  -webkit-transform: rotate(259deg);
+  -moz-transform: rotate(259deg);
+  -ms-transform: rotate(259deg);
+  -o-transform: rotate(259deg);
+  transform: rotate(259deg);
+}
+.wi-wind.from-80-deg {
+  -webkit-transform: rotate(260deg);
+  -moz-transform: rotate(260deg);
+  -ms-transform: rotate(260deg);
+  -o-transform: rotate(260deg);
+  transform: rotate(260deg);
+}
+.wi-wind.from-81-deg {
+  -webkit-transform: rotate(261deg);
+  -moz-transform: rotate(261deg);
+  -ms-transform: rotate(261deg);
+  -o-transform: rotate(261deg);
+  transform: rotate(261deg);
+}
+.wi-wind.from-82-deg {
+  -webkit-transform: rotate(262deg);
+  -moz-transform: rotate(262deg);
+  -ms-transform: rotate(262deg);
+  -o-transform: rotate(262deg);
+  transform: rotate(262deg);
+}
+.wi-wind.from-83-deg {
+  -webkit-transform: rotate(263deg);
+  -moz-transform: rotate(263deg);
+  -ms-transform: rotate(263deg);
+  -o-transform: rotate(263deg);
+  transform: rotate(263deg);
+}
+.wi-wind.from-84-deg {
+  -webkit-transform: rotate(264deg);
+  -moz-transform: rotate(264deg);
+  -ms-transform: rotate(264deg);
+  -o-transform: rotate(264deg);
+  transform: rotate(264deg);
+}
+.wi-wind.from-85-deg {
+  -webkit-transform: rotate(265deg);
+  -moz-transform: rotate(265deg);
+  -ms-transform: rotate(265deg);
+  -o-transform: rotate(265deg);
+  transform: rotate(265deg);
+}
+.wi-wind.from-86-deg {
+  -webkit-transform: rotate(266deg);
+  -moz-transform: rotate(266deg);
+  -ms-transform: rotate(266deg);
+  -o-transform: rotate(266deg);
+  transform: rotate(266deg);
+}
+.wi-wind.from-87-deg {
+  -webkit-transform: rotate(267deg);
+  -moz-transform: rotate(267deg);
+  -ms-transform: rotate(267deg);
+  -o-transform: rotate(267deg);
+  transform: rotate(267deg);
+}
+.wi-wind.from-88-deg {
+  -webkit-transform: rotate(268deg);
+  -moz-transform: rotate(268deg);
+  -ms-transform: rotate(268deg);
+  -o-transform: rotate(268deg);
+  transform: rotate(268deg);
+}
+.wi-wind.from-89-deg {
+  -webkit-transform: rotate(269deg);
+  -moz-transform: rotate(269deg);
+  -ms-transform: rotate(269deg);
+  -o-transform: rotate(269deg);
+  transform: rotate(269deg);
+}
+.wi-wind.from-90-deg {
+  -webkit-transform: rotate(270deg);
+  -moz-transform: rotate(270deg);
+  -ms-transform: rotate(270deg);
+  -o-transform: rotate(270deg);
+  transform: rotate(270deg);
+}
+.wi-wind.from-91-deg {
+  -webkit-transform: rotate(271deg);
+  -moz-transform: rotate(271deg);
+  -ms-transform: rotate(271deg);
+  -o-transform: rotate(271deg);
+  transform: rotate(271deg);
+}
+.wi-wind.from-92-deg {
+  -webkit-transform: rotate(272deg);
+  -moz-transform: rotate(272deg);
+  -ms-transform: rotate(272deg);
+  -o-transform: rotate(272deg);
+  transform: rotate(272deg);
+}
+.wi-wind.from-93-deg {
+  -webkit-transform: rotate(273deg);
+  -moz-transform: rotate(273deg);
+  -ms-transform: rotate(273deg);
+  -o-transform: rotate(273deg);
+  transform: rotate(273deg);
+}
+.wi-wind.from-94-deg {
+  -webkit-transform: rotate(274deg);
+  -moz-transform: rotate(274deg);
+  -ms-transform: rotate(274deg);
+  -o-transform: rotate(274deg);
+  transform: rotate(274deg);
+}
+.wi-wind.from-95-deg {
+  -webkit-transform: rotate(275deg);
+  -moz-transform: rotate(275deg);
+  -ms-transform: rotate(275deg);
+  -o-transform: rotate(275deg);
+  transform: rotate(275deg);
+}
+.wi-wind.from-96-deg {
+  -webkit-transform: rotate(276deg);
+  -moz-transform: rotate(276deg);
+  -ms-transform: rotate(276deg);
+  -o-transform: rotate(276deg);
+  transform: rotate(276deg);
+}
+.wi-wind.from-97-deg {
+  -webkit-transform: rotate(277deg);
+  -moz-transform: rotate(277deg);
+  -ms-transform: rotate(277deg);
+  -o-transform: rotate(277deg);
+  transform: rotate(277deg);
+}
+.wi-wind.from-98-deg {
+  -webkit-transform: rotate(278deg);
+  -moz-transform: rotate(278deg);
+  -ms-transform: rotate(278deg);
+  -o-transform: rotate(278deg);
+  transform: rotate(278deg);
+}
+.wi-wind.from-99-deg {
+  -webkit-transform: rotate(279deg);
+  -moz-transform: rotate(279deg);
+  -ms-transform: rotate(279deg);
+  -o-transform: rotate(279deg);
+  transform: rotate(279deg);
+}
+.wi-wind.from-100-deg {
+  -webkit-transform: rotate(280deg);
+  -moz-transform: rotate(280deg);
+  -ms-transform: rotate(280deg);
+  -o-transform: rotate(280deg);
+  transform: rotate(280deg);
+}
+.wi-wind.from-101-deg {
+  -webkit-transform: rotate(281deg);
+  -moz-transform: rotate(281deg);
+  -ms-transform: rotate(281deg);
+  -o-transform: rotate(281deg);
+  transform: rotate(281deg);
+}
+.wi-wind.from-102-deg {
+  -webkit-transform: rotate(282deg);
+  -moz-transform: rotate(282deg);
+  -ms-transform: rotate(282deg);
+  -o-transform: rotate(282deg);
+  transform: rotate(282deg);
+}
+.wi-wind.from-103-deg {
+  -webkit-transform: rotate(283deg);
+  -moz-transform: rotate(283deg);
+  -ms-transform: rotate(283deg);
+  -o-transform: rotate(283deg);
+  transform: rotate(283deg);
+}
+.wi-wind.from-104-deg {
+  -webkit-transform: rotate(284deg);
+  -moz-transform: rotate(284deg);
+  -ms-transform: rotate(284deg);
+  -o-transform: rotate(284deg);
+  transform: rotate(284deg);
+}
+.wi-wind.from-105-deg {
+  -webkit-transform: rotate(285deg);
+  -moz-transform: rotate(285deg);
+  -ms-transform: rotate(285deg);
+  -o-transform: rotate(285deg);
+  transform: rotate(285deg);
+}
+.wi-wind.from-106-deg {
+  -webkit-transform: rotate(286deg);
+  -moz-transform: rotate(286deg);
+  -ms-transform: rotate(286deg);
+  -o-transform: rotate(286deg);
+  transform: rotate(286deg);
+}
+.wi-wind.from-107-deg {
+  -webkit-transform: rotate(287deg);
+  -moz-transform: rotate(287deg);
+  -ms-transform: rotate(287deg);
+  -o-transform: rotate(287deg);
+  transform: rotate(287deg);
+}
+.wi-wind.from-108-deg {
+  -webkit-transform: rotate(288deg);
+  -moz-transform: rotate(288deg);
+  -ms-transform: rotate(288deg);
+  -o-transform: rotate(288deg);
+  transform: rotate(288deg);
+}
+.wi-wind.from-109-deg {
+  -webkit-transform: rotate(289deg);
+  -moz-transform: rotate(289deg);
+  -ms-transform: rotate(289deg);
+  -o-transform: rotate(289deg);
+  transform: rotate(289deg);
+}
+.wi-wind.from-110-deg {
+  -webkit-transform: rotate(290deg);
+  -moz-transform: rotate(290deg);
+  -ms-transform: rotate(290deg);
+  -o-transform: rotate(290deg);
+  transform: rotate(290deg);
+}
+.wi-wind.from-111-deg {
+  -webkit-transform: rotate(291deg);
+  -moz-transform: rotate(291deg);
+  -ms-transform: rotate(291deg);
+  -o-transform: rotate(291deg);
+  transform: rotate(291deg);
+}
+.wi-wind.from-112-deg {
+  -webkit-transform: rotate(292deg);
+  -moz-transform: rotate(292deg);
+  -ms-transform: rotate(292deg);
+  -o-transform: rotate(292deg);
+  transform: rotate(292deg);
+}
+.wi-wind.from-113-deg {
+  -webkit-transform: rotate(293deg);
+  -moz-transform: rotate(293deg);
+  -ms-transform: rotate(293deg);
+  -o-transform: rotate(293deg);
+  transform: rotate(293deg);
+}
+.wi-wind.from-114-deg {
+  -webkit-transform: rotate(294deg);
+  -moz-transform: rotate(294deg);
+  -ms-transform: rotate(294deg);
+  -o-transform: rotate(294deg);
+  transform: rotate(294deg);
+}
+.wi-wind.from-115-deg {
+  -webkit-transform: rotate(295deg);
+  -moz-transform: rotate(295deg);
+  -ms-transform: rotate(295deg);
+  -o-transform: rotate(295deg);
+  transform: rotate(295deg);
+}
+.wi-wind.from-116-deg {
+  -webkit-transform: rotate(296deg);
+  -moz-transform: rotate(296deg);
+  -ms-transform: rotate(296deg);
+  -o-transform: rotate(296deg);
+  transform: rotate(296deg);
+}
+.wi-wind.from-117-deg {
+  -webkit-transform: rotate(297deg);
+  -moz-transform: rotate(297deg);
+  -ms-transform: rotate(297deg);
+  -o-transform: rotate(297deg);
+  transform: rotate(297deg);
+}
+.wi-wind.from-118-deg {
+  -webkit-transform: rotate(298deg);
+  -moz-transform: rotate(298deg);
+  -ms-transform: rotate(298deg);
+  -o-transform: rotate(298deg);
+  transform: rotate(298deg);
+}
+.wi-wind.from-119-deg {
+  -webkit-transform: rotate(299deg);
+  -moz-transform: rotate(299deg);
+  -ms-transform: rotate(299deg);
+  -o-transform: rotate(299deg);
+  transform: rotate(299deg);
+}
+.wi-wind.from-120-deg {
+  -webkit-transform: rotate(300deg);
+  -moz-transform: rotate(300deg);
+  -ms-transform: rotate(300deg);
+  -o-transform: rotate(300deg);
+  transform: rotate(300deg);
+}
+.wi-wind.from-121-deg {
+  -webkit-transform: rotate(301deg);
+  -moz-transform: rotate(301deg);
+  -ms-transform: rotate(301deg);
+  -o-transform: rotate(301deg);
+  transform: rotate(301deg);
+}
+.wi-wind.from-122-deg {
+  -webkit-transform: rotate(302deg);
+  -moz-transform: rotate(302deg);
+  -ms-transform: rotate(302deg);
+  -o-transform: rotate(302deg);
+  transform: rotate(302deg);
+}
+.wi-wind.from-123-deg {
+  -webkit-transform: rotate(303deg);
+  -moz-transform: rotate(303deg);
+  -ms-transform: rotate(303deg);
+  -o-transform: rotate(303deg);
+  transform: rotate(303deg);
+}
+.wi-wind.from-124-deg {
+  -webkit-transform: rotate(304deg);
+  -moz-transform: rotate(304deg);
+  -ms-transform: rotate(304deg);
+  -o-transform: rotate(304deg);
+  transform: rotate(304deg);
+}
+.wi-wind.from-125-deg {
+  -webkit-transform: rotate(305deg);
+  -moz-transform: rotate(305deg);
+  -ms-transform: rotate(305deg);
+  -o-transform: rotate(305deg);
+  transform: rotate(305deg);
+}
+.wi-wind.from-126-deg {
+  -webkit-transform: rotate(306deg);
+  -moz-transform: rotate(306deg);
+  -ms-transform: rotate(306deg);
+  -o-transform: rotate(306deg);
+  transform: rotate(306deg);
+}
+.wi-wind.from-127-deg {
+  -webkit-transform: rotate(307deg);
+  -moz-transform: rotate(307deg);
+  -ms-transform: rotate(307deg);
+  -o-transform: rotate(307deg);
+  transform: rotate(307deg);
+}
+.wi-wind.from-128-deg {
+  -webkit-transform: rotate(308deg);
+  -moz-transform: rotate(308deg);
+  -ms-transform: rotate(308deg);
+  -o-transform: rotate(308deg);
+  transform: rotate(308deg);
+}
+.wi-wind.from-129-deg {
+  -webkit-transform: rotate(309deg);
+  -moz-transform: rotate(309deg);
+  -ms-transform: rotate(309deg);
+  -o-transform: rotate(309deg);
+  transform: rotate(309deg);
+}
+.wi-wind.from-130-deg {
+  -webkit-transform: rotate(310deg);
+  -moz-transform: rotate(310deg);
+  -ms-transform: rotate(310deg);
+  -o-transform: rotate(310deg);
+  transform: rotate(310deg);
+}
+.wi-wind.from-131-deg {
+  -webkit-transform: rotate(311deg);
+  -moz-transform: rotate(311deg);
+  -ms-transform: rotate(311deg);
+  -o-transform: rotate(311deg);
+  transform: rotate(311deg);
+}
+.wi-wind.from-132-deg {
+  -webkit-transform: rotate(312deg);
+  -moz-transform: rotate(312deg);
+  -ms-transform: rotate(312deg);
+  -o-transform: rotate(312deg);
+  transform: rotate(312deg);
+}
+.wi-wind.from-133-deg {
+  -webkit-transform: rotate(313deg);
+  -moz-transform: rotate(313deg);
+  -ms-transform: rotate(313deg);
+  -o-transform: rotate(313deg);
+  transform: rotate(313deg);
+}
+.wi-wind.from-134-deg {
+  -webkit-transform: rotate(314deg);
+  -moz-transform: rotate(314deg);
+  -ms-transform: rotate(314deg);
+  -o-transform: rotate(314deg);
+  transform: rotate(314deg);
+}
+.wi-wind.from-135-deg {
+  -webkit-transform: rotate(315deg);
+  -moz-transform: rotate(315deg);
+  -ms-transform: rotate(315deg);
+  -o-transform: rotate(315deg);
+  transform: rotate(315deg);
+}
+.wi-wind.from-136-deg {
+  -webkit-transform: rotate(316deg);
+  -moz-transform: rotate(316deg);
+  -ms-transform: rotate(316deg);
+  -o-transform: rotate(316deg);
+  transform: rotate(316deg);
+}
+.wi-wind.from-137-deg {
+  -webkit-transform: rotate(317deg);
+  -moz-transform: rotate(317deg);
+  -ms-transform: rotate(317deg);
+  -o-transform: rotate(317deg);
+  transform: rotate(317deg);
+}
+.wi-wind.from-138-deg {
+  -webkit-transform: rotate(318deg);
+  -moz-transform: rotate(318deg);
+  -ms-transform: rotate(318deg);
+  -o-transform: rotate(318deg);
+  transform: rotate(318deg);
+}
+.wi-wind.from-139-deg {
+  -webkit-transform: rotate(319deg);
+  -moz-transform: rotate(319deg);
+  -ms-transform: rotate(319deg);
+  -o-transform: rotate(319deg);
+  transform: rotate(319deg);
+}
+.wi-wind.from-140-deg {
+  -webkit-transform: rotate(320deg);
+  -moz-transform: rotate(320deg);
+  -ms-transform: rotate(320deg);
+  -o-transform: rotate(320deg);
+  transform: rotate(320deg);
+}
+.wi-wind.from-141-deg {
+  -webkit-transform: rotate(321deg);
+  -moz-transform: rotate(321deg);
+  -ms-transform: rotate(321deg);
+  -o-transform: rotate(321deg);
+  transform: rotate(321deg);
+}
+.wi-wind.from-142-deg {
+  -webkit-transform: rotate(322deg);
+  -moz-transform: rotate(322deg);
+  -ms-transform: rotate(322deg);
+  -o-transform: rotate(322deg);
+  transform: rotate(322deg);
+}
+.wi-wind.from-143-deg {
+  -webkit-transform: rotate(323deg);
+  -moz-transform: rotate(323deg);
+  -ms-transform: rotate(323deg);
+  -o-transform: rotate(323deg);
+  transform: rotate(323deg);
+}
+.wi-wind.from-144-deg {
+  -webkit-transform: rotate(324deg);
+  -moz-transform: rotate(324deg);
+  -ms-transform: rotate(324deg);
+  -o-transform: rotate(324deg);
+  transform: rotate(324deg);
+}
+.wi-wind.from-145-deg {
+  -webkit-transform: rotate(325deg);
+  -moz-transform: rotate(325deg);
+  -ms-transform: rotate(325deg);
+  -o-transform: rotate(325deg);
+  transform: rotate(325deg);
+}
+.wi-wind.from-146-deg {
+  -webkit-transform: rotate(326deg);
+  -moz-transform: rotate(326deg);
+  -ms-transform: rotate(326deg);
+  -o-transform: rotate(326deg);
+  transform: rotate(326deg);
+}
+.wi-wind.from-147-deg {
+  -webkit-transform: rotate(327deg);
+  -moz-transform: rotate(327deg);
+  -ms-transform: rotate(327deg);
+  -o-transform: rotate(327deg);
+  transform: rotate(327deg);
+}
+.wi-wind.from-148-deg {
+  -webkit-transform: rotate(328deg);
+  -moz-transform: rotate(328deg);
+  -ms-transform: rotate(328deg);
+  -o-transform: rotate(328deg);
+  transform: rotate(328deg);
+}
+.wi-wind.from-149-deg {
+  -webkit-transform: rotate(329deg);
+  -moz-transform: rotate(329deg);
+  -ms-transform: rotate(329deg);
+  -o-transform: rotate(329deg);
+  transform: rotate(329deg);
+}
+.wi-wind.from-150-deg {
+  -webkit-transform: rotate(330deg);
+  -moz-transform: rotate(330deg);
+  -ms-transform: rotate(330deg);
+  -o-transform: rotate(330deg);
+  transform: rotate(330deg);
+}
+.wi-wind.from-151-deg {
+  -webkit-transform: rotate(331deg);
+  -moz-transform: rotate(331deg);
+  -ms-transform: rotate(331deg);
+  -o-transform: rotate(331deg);
+  transform: rotate(331deg);
+}
+.wi-wind.from-152-deg {
+  -webkit-transform: rotate(332deg);
+  -moz-transform: rotate(332deg);
+  -ms-transform: rotate(332deg);
+  -o-transform: rotate(332deg);
+  transform: rotate(332deg);
+}
+.wi-wind.from-153-deg {
+  -webkit-transform: rotate(333deg);
+  -moz-transform: rotate(333deg);
+  -ms-transform: rotate(333deg);
+  -o-transform: rotate(333deg);
+  transform: rotate(333deg);
+}
+.wi-wind.from-154-deg {
+  -webkit-transform: rotate(334deg);
+  -moz-transform: rotate(334deg);
+  -ms-transform: rotate(334deg);
+  -o-transform: rotate(334deg);
+  transform: rotate(334deg);
+}
+.wi-wind.from-155-deg {
+  -webkit-transform: rotate(335deg);
+  -moz-transform: rotate(335deg);
+  -ms-transform: rotate(335deg);
+  -o-transform: rotate(335deg);
+  transform: rotate(335deg);
+}
+.wi-wind.from-156-deg {
+  -webkit-transform: rotate(336deg);
+  -moz-transform: rotate(336deg);
+  -ms-transform: rotate(336deg);
+  -o-transform: rotate(336deg);
+  transform: rotate(336deg);
+}
+.wi-wind.from-157-deg {
+  -webkit-transform: rotate(337deg);
+  -moz-transform: rotate(337deg);
+  -ms-transform: rotate(337deg);
+  -o-transform: rotate(337deg);
+  transform: rotate(337deg);
+}
+.wi-wind.from-158-deg {
+  -webkit-transform: rotate(338deg);
+  -moz-transform: rotate(338deg);
+  -ms-transform: rotate(338deg);
+  -o-transform: rotate(338deg);
+  transform: rotate(338deg);
+}
+.wi-wind.from-159-deg {
+  -webkit-transform: rotate(339deg);
+  -moz-transform: rotate(339deg);
+  -ms-transform: rotate(339deg);
+  -o-transform: rotate(339deg);
+  transform: rotate(339deg);
+}
+.wi-wind.from-160-deg {
+  -webkit-transform: rotate(340deg);
+  -moz-transform: rotate(340deg);
+  -ms-transform: rotate(340deg);
+  -o-transform: rotate(340deg);
+  transform: rotate(340deg);
+}
+.wi-wind.from-161-deg {
+  -webkit-transform: rotate(341deg);
+  -moz-transform: rotate(341deg);
+  -ms-transform: rotate(341deg);
+  -o-transform: rotate(341deg);
+  transform: rotate(341deg);
+}
+.wi-wind.from-162-deg {
+  -webkit-transform: rotate(342deg);
+  -moz-transform: rotate(342deg);
+  -ms-transform: rotate(342deg);
+  -o-transform: rotate(342deg);
+  transform: rotate(342deg);
+}
+.wi-wind.from-163-deg {
+  -webkit-transform: rotate(343deg);
+  -moz-transform: rotate(343deg);
+  -ms-transform: rotate(343deg);
+  -o-transform: rotate(343deg);
+  transform: rotate(343deg);
+}
+.wi-wind.from-164-deg {
+  -webkit-transform: rotate(344deg);
+  -moz-transform: rotate(344deg);
+  -ms-transform: rotate(344deg);
+  -o-transform: rotate(344deg);
+  transform: rotate(344deg);
+}
+.wi-wind.from-165-deg {
+  -webkit-transform: rotate(345deg);
+  -moz-transform: rotate(345deg);
+  -ms-transform: rotate(345deg);
+  -o-transform: rotate(345deg);
+  transform: rotate(345deg);
+}
+.wi-wind.from-166-deg {
+  -webkit-transform: rotate(346deg);
+  -moz-transform: rotate(346deg);
+  -ms-transform: rotate(346deg);
+  -o-transform: rotate(346deg);
+  transform: rotate(346deg);
+}
+.wi-wind.from-167-deg {
+  -webkit-transform: rotate(347deg);
+  -moz-transform: rotate(347deg);
+  -ms-transform: rotate(347deg);
+  -o-transform: rotate(347deg);
+  transform: rotate(347deg);
+}
+.wi-wind.from-168-deg {
+  -webkit-transform: rotate(348deg);
+  -moz-transform: rotate(348deg);
+  -ms-transform: rotate(348deg);
+  -o-transform: rotate(348deg);
+  transform: rotate(348deg);
+}
+.wi-wind.from-169-deg {
+  -webkit-transform: rotate(349deg);
+  -moz-transform: rotate(349deg);
+  -ms-transform: rotate(349deg);
+  -o-transform: rotate(349deg);
+  transform: rotate(349deg);
+}
+.wi-wind.from-170-deg {
+  -webkit-transform: rotate(350deg);
+  -moz-transform: rotate(350deg);
+  -ms-transform: rotate(350deg);
+  -o-transform: rotate(350deg);
+  transform: rotate(350deg);
+}
+.wi-wind.from-171-deg {
+  -webkit-transform: rotate(351deg);
+  -moz-transform: rotate(351deg);
+  -ms-transform: rotate(351deg);
+  -o-transform: rotate(351deg);
+  transform: rotate(351deg);
+}
+.wi-wind.from-172-deg {
+  -webkit-transform: rotate(352deg);
+  -moz-transform: rotate(352deg);
+  -ms-transform: rotate(352deg);
+  -o-transform: rotate(352deg);
+  transform: rotate(352deg);
+}
+.wi-wind.from-173-deg {
+  -webkit-transform: rotate(353deg);
+  -moz-transform: rotate(353deg);
+  -ms-transform: rotate(353deg);
+  -o-transform: rotate(353deg);
+  transform: rotate(353deg);
+}
+.wi-wind.from-174-deg {
+  -webkit-transform: rotate(354deg);
+  -moz-transform: rotate(354deg);
+  -ms-transform: rotate(354deg);
+  -o-transform: rotate(354deg);
+  transform: rotate(354deg);
+}
+.wi-wind.from-175-deg {
+  -webkit-transform: rotate(355deg);
+  -moz-transform: rotate(355deg);
+  -ms-transform: rotate(355deg);
+  -o-transform: rotate(355deg);
+  transform: rotate(355deg);
+}
+.wi-wind.from-176-deg {
+  -webkit-transform: rotate(356deg);
+  -moz-transform: rotate(356deg);
+  -ms-transform: rotate(356deg);
+  -o-transform: rotate(356deg);
+  transform: rotate(356deg);
+}
+.wi-wind.from-177-deg {
+  -webkit-transform: rotate(357deg);
+  -moz-transform: rotate(357deg);
+  -ms-transform: rotate(357deg);
+  -o-transform: rotate(357deg);
+  transform: rotate(357deg);
+}
+.wi-wind.from-178-deg {
+  -webkit-transform: rotate(358deg);
+  -moz-transform: rotate(358deg);
+  -ms-transform: rotate(358deg);
+  -o-transform: rotate(358deg);
+  transform: rotate(358deg);
+}
+.wi-wind.from-179-deg {
+  -webkit-transform: rotate(359deg);
+  -moz-transform: rotate(359deg);
+  -ms-transform: rotate(359deg);
+  -o-transform: rotate(359deg);
+  transform: rotate(359deg);
+}
+.wi-wind.from-180-deg {
+  -webkit-transform: rotate(0deg);
+  -moz-transform: rotate(0deg);
+  -ms-transform: rotate(0deg);
+  -o-transform: rotate(0deg);
+  transform: rotate(0deg);
+}
+.wi-wind.from-181-deg {
+  -webkit-transform: rotate(1deg);
+  -moz-transform: rotate(1deg);
+  -ms-transform: rotate(1deg);
+  -o-transform: rotate(1deg);
+  transform: rotate(1deg);
+}
+.wi-wind.from-182-deg {
+  -webkit-transform: rotate(2deg);
+  -moz-transform: rotate(2deg);
+  -ms-transform: rotate(2deg);
+  -o-transform: rotate(2deg);
+  transform: rotate(2deg);
+}
+.wi-wind.from-183-deg {
+  -webkit-transform: rotate(3deg);
+  -moz-transform: rotate(3deg);
+  -ms-transform: rotate(3deg);
+  -o-transform: rotate(3deg);
+  transform: rotate(3deg);
+}
+.wi-wind.from-184-deg {
+  -webkit-transform: rotate(4deg);
+  -moz-transform: rotate(4deg);
+  -ms-transform: rotate(4deg);
+  -o-transform: rotate(4deg);
+  transform: rotate(4deg);
+}
+.wi-wind.from-185-deg {
+  -webkit-transform: rotate(5deg);
+  -moz-transform: rotate(5deg);
+  -ms-transform: rotate(5deg);
+  -o-transform: rotate(5deg);
+  transform: rotate(5deg);
+}
+.wi-wind.from-186-deg {
+  -webkit-transform: rotate(6deg);
+  -moz-transform: rotate(6deg);
+  -ms-transform: rotate(6deg);
+  -o-transform: rotate(6deg);
+  transform: rotate(6deg);
+}
+.wi-wind.from-187-deg {
+  -webkit-transform: rotate(7deg);
+  -moz-transform: rotate(7deg);
+  -ms-transform: rotate(7deg);
+  -o-transform: rotate(7deg);
+  transform: rotate(7deg);
+}
+.wi-wind.from-188-deg {
+  -webkit-transform: rotate(8deg);
+  -moz-transform: rotate(8deg);
+  -ms-transform: rotate(8deg);
+  -o-transform: rotate(8deg);
+  transform: rotate(8deg);
+}
+.wi-wind.from-189-deg {
+  -webkit-transform: rotate(9deg);
+  -moz-transform: rotate(9deg);
+  -ms-transform: rotate(9deg);
+  -o-transform: rotate(9deg);
+  transform: rotate(9deg);
+}
+.wi-wind.from-190-deg {
+  -webkit-transform: rotate(10deg);
+  -moz-transform: rotate(10deg);
+  -ms-transform: rotate(10deg);
+  -o-transform: rotate(10deg);
+  transform: rotate(10deg);
+}
+.wi-wind.from-191-deg {
+  -webkit-transform: rotate(11deg);
+  -moz-transform: rotate(11deg);
+  -ms-transform: rotate(11deg);
+  -o-transform: rotate(11deg);
+  transform: rotate(11deg);
+}
+.wi-wind.from-192-deg {
+  -webkit-transform: rotate(12deg);
+  -moz-transform: rotate(12deg);
+  -ms-transform: rotate(12deg);
+  -o-transform: rotate(12deg);
+  transform: rotate(12deg);
+}
+.wi-wind.from-193-deg {
+  -webkit-transform: rotate(13deg);
+  -moz-transform: rotate(13deg);
+  -ms-transform: rotate(13deg);
+  -o-transform: rotate(13deg);
+  transform: rotate(13deg);
+}
+.wi-wind.from-194-deg {
+  -webkit-transform: rotate(14deg);
+  -moz-transform: rotate(14deg);
+  -ms-transform: rotate(14deg);
+  -o-transform: rotate(14deg);
+  transform: rotate(14deg);
+}
+.wi-wind.from-195-deg {
+  -webkit-transform: rotate(15deg);
+  -moz-transform: rotate(15deg);
+  -ms-transform: rotate(15deg);
+  -o-transform: rotate(15deg);
+  transform: rotate(15deg);
+}
+.wi-wind.from-196-deg {
+  -webkit-transform: rotate(16deg);
+  -moz-transform: rotate(16deg);
+  -ms-transform: rotate(16deg);
+  -o-transform: rotate(16deg);
+  transform: rotate(16deg);
+}
+.wi-wind.from-197-deg {
+  -webkit-transform: rotate(17deg);
+  -moz-transform: rotate(17deg);
+  -ms-transform: rotate(17deg);
+  -o-transform: rotate(17deg);
+  transform: rotate(17deg);
+}
+.wi-wind.from-198-deg {
+  -webkit-transform: rotate(18deg);
+  -moz-transform: rotate(18deg);
+  -ms-transform: rotate(18deg);
+  -o-transform: rotate(18deg);
+  transform: rotate(18deg);
+}
+.wi-wind.from-199-deg {
+  -webkit-transform: rotate(19deg);
+  -moz-transform: rotate(19deg);
+  -ms-transform: rotate(19deg);
+  -o-transform: rotate(19deg);
+  transform: rotate(19deg);
+}
+.wi-wind.from-200-deg {
+  -webkit-transform: rotate(20deg);
+  -moz-transform: rotate(20deg);
+  -ms-transform: rotate(20deg);
+  -o-transform: rotate(20deg);
+  transform: rotate(20deg);
+}
+.wi-wind.from-201-deg {
+  -webkit-transform: rotate(21deg);
+  -moz-transform: rotate(21deg);
+  -ms-transform: rotate(21deg);
+  -o-transform: rotate(21deg);
+  transform: rotate(21deg);
+}
+.wi-wind.from-202-deg {
+  -webkit-transform: rotate(22deg);
+  -moz-transform: rotate(22deg);
+  -ms-transform: rotate(22deg);
+  -o-transform: rotate(22deg);
+  transform: rotate(22deg);
+}
+.wi-wind.from-203-deg {
+  -webkit-transform: rotate(23deg);
+  -moz-transform: rotate(23deg);
+  -ms-transform: rotate(23deg);
+  -o-transform: rotate(23deg);
+  transform: rotate(23deg);
+}
+.wi-wind.from-204-deg {
+  -webkit-transform: rotate(24deg);
+  -moz-transform: rotate(24deg);
+  -ms-transform: rotate(24deg);
+  -o-transform: rotate(24deg);
+  transform: rotate(24deg);
+}
+.wi-wind.from-205-deg {
+  -webkit-transform: rotate(25deg);
+  -moz-transform: rotate(25deg);
+  -ms-transform: rotate(25deg);
+  -o-transform: rotate(25deg);
+  transform: rotate(25deg);
+}
+.wi-wind.from-206-deg {
+  -webkit-transform: rotate(26deg);
+  -moz-transform: rotate(26deg);
+  -ms-transform: rotate(26deg);
+  -o-transform: rotate(26deg);
+  transform: rotate(26deg);
+}
+.wi-wind.from-207-deg {
+  -webkit-transform: rotate(27deg);
+  -moz-transform: rotate(27deg);
+  -ms-transform: rotate(27deg);
+  -o-transform: rotate(27deg);
+  transform: rotate(27deg);
+}
+.wi-wind.from-208-deg {
+  -webkit-transform: rotate(28deg);
+  -moz-transform: rotate(28deg);
+  -ms-transform: rotate(28deg);
+  -o-transform: rotate(28deg);
+  transform: rotate(28deg);
+}
+.wi-wind.from-209-deg {
+  -webkit-transform: rotate(29deg);
+  -moz-transform: rotate(29deg);
+  -ms-transform: rotate(29deg);
+  -o-transform: rotate(29deg);
+  transform: rotate(29deg);
+}
+.wi-wind.from-210-deg {
+  -webkit-transform: rotate(30deg);
+  -moz-transform: rotate(30deg);
+  -ms-transform: rotate(30deg);
+  -o-transform: rotate(30deg);
+  transform: rotate(30deg);
+}
+.wi-wind.from-211-deg {
+  -webkit-transform: rotate(31deg);
+  -moz-transform: rotate(31deg);
+  -ms-transform: rotate(31deg);
+  -o-transform: rotate(31deg);
+  transform: rotate(31deg);
+}
+.wi-wind.from-212-deg {
+  -webkit-transform: rotate(32deg);
+  -moz-transform: rotate(32deg);
+  -ms-transform: rotate(32deg);
+  -o-transform: rotate(32deg);
+  transform: rotate(32deg);
+}
+.wi-wind.from-213-deg {
+  -webkit-transform: rotate(33deg);
+  -moz-transform: rotate(33deg);
+  -ms-transform: rotate(33deg);
+  -o-transform: rotate(33deg);
+  transform: rotate(33deg);
+}
+.wi-wind.from-214-deg {
+  -webkit-transform: rotate(34deg);
+  -moz-transform: rotate(34deg);
+  -ms-transform: rotate(34deg);
+  -o-transform: rotate(34deg);
+  transform: rotate(34deg);
+}
+.wi-wind.from-215-deg {
+  -webkit-transform: rotate(35deg);
+  -moz-transform: rotate(35deg);
+  -ms-transform: rotate(35deg);
+  -o-transform: rotate(35deg);
+  transform: rotate(35deg);
+}
+.wi-wind.from-216-deg {
+  -webkit-transform: rotate(36deg);
+  -moz-transform: rotate(36deg);
+  -ms-transform: rotate(36deg);
+  -o-transform: rotate(36deg);
+  transform: rotate(36deg);
+}
+.wi-wind.from-217-deg {
+  -webkit-transform: rotate(37deg);
+  -moz-transform: rotate(37deg);
+  -ms-transform: rotate(37deg);
+  -o-transform: rotate(37deg);
+  transform: rotate(37deg);
+}
+.wi-wind.from-218-deg {
+  -webkit-transform: rotate(38deg);
+  -moz-transform: rotate(38deg);
+  -ms-transform: rotate(38deg);
+  -o-transform: rotate(38deg);
+  transform: rotate(38deg);
+}
+.wi-wind.from-219-deg {
+  -webkit-transform: rotate(39deg);
+  -moz-transform: rotate(39deg);
+  -ms-transform: rotate(39deg);
+  -o-transform: rotate(39deg);
+  transform: rotate(39deg);
+}
+.wi-wind.from-220-deg {
+  -webkit-transform: rotate(40deg);
+  -moz-transform: rotate(40deg);
+  -ms-transform: rotate(40deg);
+  -o-transform: rotate(40deg);
+  transform: rotate(40deg);
+}
+.wi-wind.from-221-deg {
+  -webkit-transform: rotate(41deg);
+  -moz-transform: rotate(41deg);
+  -ms-transform: rotate(41deg);
+  -o-transform: rotate(41deg);
+  transform: rotate(41deg);
+}
+.wi-wind.from-222-deg {
+  -webkit-transform: rotate(42deg);
+  -moz-transform: rotate(42deg);
+  -ms-transform: rotate(42deg);
+  -o-transform: rotate(42deg);
+  transform: rotate(42deg);
+}
+.wi-wind.from-223-deg {
+  -webkit-transform: rotate(43deg);
+  -moz-transform: rotate(43deg);
+  -ms-transform: rotate(43deg);
+  -o-transform: rotate(43deg);
+  transform: rotate(43deg);
+}
+.wi-wind.from-224-deg {
+  -webkit-transform: rotate(44deg);
+  -moz-transform: rotate(44deg);
+  -ms-transform: rotate(44deg);
+  -o-transform: rotate(44deg);
+  transform: rotate(44deg);
+}
+.wi-wind.from-225-deg {
+  -webkit-transform: rotate(45deg);
+  -moz-transform: rotate(45deg);
+  -ms-transform: rotate(45deg);
+  -o-transform: rotate(45deg);
+  transform: rotate(45deg);
+}
+.wi-wind.from-226-deg {
+  -webkit-transform: rotate(46deg);
+  -moz-transform: rotate(46deg);
+  -ms-transform: rotate(46deg);
+  -o-transform: rotate(46deg);
+  transform: rotate(46deg);
+}
+.wi-wind.from-227-deg {
+  -webkit-transform: rotate(47deg);
+  -moz-transform: rotate(47deg);
+  -ms-transform: rotate(47deg);
+  -o-transform: rotate(47deg);
+  transform: rotate(47deg);
+}
+.wi-wind.from-228-deg {
+  -webkit-transform: rotate(48deg);
+  -moz-transform: rotate(48deg);
+  -ms-transform: rotate(48deg);
+  -o-transform: rotate(48deg);
+  transform: rotate(48deg);
+}
+.wi-wind.from-229-deg {
+  -webkit-transform: rotate(49deg);
+  -moz-transform: rotate(49deg);
+  -ms-transform: rotate(49deg);
+  -o-transform: rotate(49deg);
+  transform: rotate(49deg);
+}
+.wi-wind.from-230-deg {
+  -webkit-transform: rotate(50deg);
+  -moz-transform: rotate(50deg);
+  -ms-transform: rotate(50deg);
+  -o-transform: rotate(50deg);
+  transform: rotate(50deg);
+}
+.wi-wind.from-231-deg {
+  -webkit-transform: rotate(51deg);
+  -moz-transform: rotate(51deg);
+  -ms-transform: rotate(51deg);
+  -o-transform: rotate(51deg);
+  transform: rotate(51deg);
+}
+.wi-wind.from-232-deg {
+  -webkit-transform: rotate(52deg);
+  -moz-transform: rotate(52deg);
+  -ms-transform: rotate(52deg);
+  -o-transform: rotate(52deg);
+  transform: rotate(52deg);
+}
+.wi-wind.from-233-deg {
+  -webkit-transform: rotate(53deg);
+  -moz-transform: rotate(53deg);
+  -ms-transform: rotate(53deg);
+  -o-transform: rotate(53deg);
+  transform: rotate(53deg);
+}
+.wi-wind.from-234-deg {
+  -webkit-transform: rotate(54deg);
+  -moz-transform: rotate(54deg);
+  -ms-transform: rotate(54deg);
+  -o-transform: rotate(54deg);
+  transform: rotate(54deg);
+}
+.wi-wind.from-235-deg {
+  -webkit-transform: rotate(55deg);
+  -moz-transform: rotate(55deg);
+  -ms-transform: rotate(55deg);
+  -o-transform: rotate(55deg);
+  transform: rotate(55deg);
+}
+.wi-wind.from-236-deg {
+  -webkit-transform: rotate(56deg);
+  -moz-transform: rotate(56deg);
+  -ms-transform: rotate(56deg);
+  -o-transform: rotate(56deg);
+  transform: rotate(56deg);
+}
+.wi-wind.from-237-deg {
+  -webkit-transform: rotate(57deg);
+  -moz-transform: rotate(57deg);
+  -ms-transform: rotate(57deg);
+  -o-transform: rotate(57deg);
+  transform: rotate(57deg);
+}
+.wi-wind.from-238-deg {
+  -webkit-transform: rotate(58deg);
+  -moz-transform: rotate(58deg);
+  -ms-transform: rotate(58deg);
+  -o-transform: rotate(58deg);
+  transform: rotate(58deg);
+}
+.wi-wind.from-239-deg {
+  -webkit-transform: rotate(59deg);
+  -moz-transform: rotate(59deg);
+  -ms-transform: rotate(59deg);
+  -o-transform: rotate(59deg);
+  transform: rotate(59deg);
+}
+.wi-wind.from-240-deg {
+  -webkit-transform: rotate(60deg);
+  -moz-transform: rotate(60deg);
+  -ms-transform: rotate(60deg);
+  -o-transform: rotate(60deg);
+  transform: rotate(60deg);
+}
+.wi-wind.from-241-deg {
+  -webkit-transform: rotate(61deg);
+  -moz-transform: rotate(61deg);
+  -ms-transform: rotate(61deg);
+  -o-transform: rotate(61deg);
+  transform: rotate(61deg);
+}
+.wi-wind.from-242-deg {
+  -webkit-transform: rotate(62deg);
+  -moz-transform: rotate(62deg);
+  -ms-transform: rotate(62deg);
+  -o-transform: rotate(62deg);
+  transform: rotate(62deg);
+}
+.wi-wind.from-243-deg {
+  -webkit-transform: rotate(63deg);
+  -moz-transform: rotate(63deg);
+  -ms-transform: rotate(63deg);
+  -o-transform: rotate(63deg);
+  transform: rotate(63deg);
+}
+.wi-wind.from-244-deg {
+  -webkit-transform: rotate(64deg);
+  -moz-transform: rotate(64deg);
+  -ms-transform: rotate(64deg);
+  -o-transform: rotate(64deg);
+  transform: rotate(64deg);
+}
+.wi-wind.from-245-deg {
+  -webkit-transform: rotate(65deg);
+  -moz-transform: rotate(65deg);
+  -ms-transform: rotate(65deg);
+  -o-transform: rotate(65deg);
+  transform: rotate(65deg);
+}
+.wi-wind.from-246-deg {
+  -webkit-transform: rotate(66deg);
+  -moz-transform: rotate(66deg);
+  -ms-transform: rotate(66deg);
+  -o-transform: rotate(66deg);
+  transform: rotate(66deg);
+}
+.wi-wind.from-247-deg {
+  -webkit-transform: rotate(67deg);
+  -moz-transform: rotate(67deg);
+  -ms-transform: rotate(67deg);
+  -o-transform: rotate(67deg);
+  transform: rotate(67deg);
+}
+.wi-wind.from-248-deg {
+  -webkit-transform: rotate(68deg);
+  -moz-transform: rotate(68deg);
+  -ms-transform: rotate(68deg);
+  -o-transform: rotate(68deg);
+  transform: rotate(68deg);
+}
+.wi-wind.from-249-deg {
+  -webkit-transform: rotate(69deg);
+  -moz-transform: rotate(69deg);
+  -ms-transform: rotate(69deg);
+  -o-transform: rotate(69deg);
+  transform: rotate(69deg);
+}
+.wi-wind.from-250-deg {
+  -webkit-transform: rotate(70deg);
+  -moz-transform: rotate(70deg);
+  -ms-transform: rotate(70deg);
+  -o-transform: rotate(70deg);
+  transform: rotate(70deg);
+}
+.wi-wind.from-251-deg {
+  -webkit-transform: rotate(71deg);
+  -moz-transform: rotate(71deg);
+  -ms-transform: rotate(71deg);
+  -o-transform: rotate(71deg);
+  transform: rotate(71deg);
+}
+.wi-wind.from-252-deg {
+  -webkit-transform: rotate(72deg);
+  -moz-transform: rotate(72deg);
+  -ms-transform: rotate(72deg);
+  -o-transform: rotate(72deg);
+  transform: rotate(72deg);
+}
+.wi-wind.from-253-deg {
+  -webkit-transform: rotate(73deg);
+  -moz-transform: rotate(73deg);
+  -ms-transform: rotate(73deg);
+  -o-transform: rotate(73deg);
+  transform: rotate(73deg);
+}
+.wi-wind.from-254-deg {
+  -webkit-transform: rotate(74deg);
+  -moz-transform: rotate(74deg);
+  -ms-transform: rotate(74deg);
+  -o-transform: rotate(74deg);
+  transform: rotate(74deg);
+}
+.wi-wind.from-255-deg {
+  -webkit-transform: rotate(75deg);
+  -moz-transform: rotate(75deg);
+  -ms-transform: rotate(75deg);
+  -o-transform: rotate(75deg);
+  transform: rotate(75deg);
+}
+.wi-wind.from-256-deg {
+  -webkit-transform: rotate(76deg);
+  -moz-transform: rotate(76deg);
+  -ms-transform: rotate(76deg);
+  -o-transform: rotate(76deg);
+  transform: rotate(76deg);
+}
+.wi-wind.from-257-deg {
+  -webkit-transform: rotate(77deg);
+  -moz-transform: rotate(77deg);
+  -ms-transform: rotate(77deg);
+  -o-transform: rotate(77deg);
+  transform: rotate(77deg);
+}
+.wi-wind.from-258-deg {
+  -webkit-transform: rotate(78deg);
+  -moz-transform: rotate(78deg);
+  -ms-transform: rotate(78deg);
+  -o-transform: rotate(78deg);
+  transform: rotate(78deg);
+}
+.wi-wind.from-259-deg {
+  -webkit-transform: rotate(79deg);
+  -moz-transform: rotate(79deg);
+  -ms-transform: rotate(79deg);
+  -o-transform: rotate(79deg);
+  transform: rotate(79deg);
+}
+.wi-wind.from-260-deg {
+  -webkit-transform: rotate(80deg);
+  -moz-transform: rotate(80deg);
+  -ms-transform: rotate(80deg);
+  -o-transform: rotate(80deg);
+  transform: rotate(80deg);
+}
+.wi-wind.from-261-deg {
+  -webkit-transform: rotate(81deg);
+  -moz-transform: rotate(81deg);
+  -ms-transform: rotate(81deg);
+  -o-transform: rotate(81deg);
+  transform: rotate(81deg);
+}
+.wi-wind.from-262-deg {
+  -webkit-transform: rotate(82deg);
+  -moz-transform: rotate(82deg);
+  -ms-transform: rotate(82deg);
+  -o-transform: rotate(82deg);
+  transform: rotate(82deg);
+}
+.wi-wind.from-263-deg {
+  -webkit-transform: rotate(83deg);
+  -moz-transform: rotate(83deg);
+  -ms-transform: rotate(83deg);
+  -o-transform: rotate(83deg);
+  transform: rotate(83deg);
+}
+.wi-wind.from-264-deg {
+  -webkit-transform: rotate(84deg);
+  -moz-transform: rotate(84deg);
+  -ms-transform: rotate(84deg);
+  -o-transform: rotate(84deg);
+  transform: rotate(84deg);
+}
+.wi-wind.from-265-deg {
+  -webkit-transform: rotate(85deg);
+  -moz-transform: rotate(85deg);
+  -ms-transform: rotate(85deg);
+  -o-transform: rotate(85deg);
+  transform: rotate(85deg);
+}
+.wi-wind.from-266-deg {
+  -webkit-transform: rotate(86deg);
+  -moz-transform: rotate(86deg);
+  -ms-transform: rotate(86deg);
+  -o-transform: rotate(86deg);
+  transform: rotate(86deg);
+}
+.wi-wind.from-267-deg {
+  -webkit-transform: rotate(87deg);
+  -moz-transform: rotate(87deg);
+  -ms-transform: rotate(87deg);
+  -o-transform: rotate(87deg);
+  transform: rotate(87deg);
+}
+.wi-wind.from-268-deg {
+  -webkit-transform: rotate(88deg);
+  -moz-transform: rotate(88deg);
+  -ms-transform: rotate(88deg);
+  -o-transform: rotate(88deg);
+  transform: rotate(88deg);
+}
+.wi-wind.from-269-deg {
+  -webkit-transform: rotate(89deg);
+  -moz-transform: rotate(89deg);
+  -ms-transform: rotate(89deg);
+  -o-transform: rotate(89deg);
+  transform: rotate(89deg);
+}
+.wi-wind.from-270-deg {
+  -webkit-transform: rotate(90deg);
+  -moz-transform: rotate(90deg);
+  -ms-transform: rotate(90deg);
+  -o-transform: rotate(90deg);
+  transform: rotate(90deg);
+}
+.wi-wind.from-271-deg {
+  -webkit-transform: rotate(91deg);
+  -moz-transform: rotate(91deg);
+  -ms-transform: rotate(91deg);
+  -o-transform: rotate(91deg);
+  transform: rotate(91deg);
+}
+.wi-wind.from-272-deg {
+  -webkit-transform: rotate(92deg);
+  -moz-transform: rotate(92deg);
+  -ms-transform: rotate(92deg);
+  -o-transform: rotate(92deg);
+  transform: rotate(92deg);
+}
+.wi-wind.from-273-deg {
+  -webkit-transform: rotate(93deg);
+  -moz-transform: rotate(93deg);
+  -ms-transform: rotate(93deg);
+  -o-transform: rotate(93deg);
+  transform: rotate(93deg);
+}
+.wi-wind.from-274-deg {
+  -webkit-transform: rotate(94deg);
+  -moz-transform: rotate(94deg);
+  -ms-transform: rotate(94deg);
+  -o-transform: rotate(94deg);
+  transform: rotate(94deg);
+}
+.wi-wind.from-275-deg {
+  -webkit-transform: rotate(95deg);
+  -moz-transform: rotate(95deg);
+  -ms-transform: rotate(95deg);
+  -o-transform: rotate(95deg);
+  transform: rotate(95deg);
+}
+.wi-wind.from-276-deg {
+  -webkit-transform: rotate(96deg);
+  -moz-transform: rotate(96deg);
+  -ms-transform: rotate(96deg);
+  -o-transform: rotate(96deg);
+  transform: rotate(96deg);
+}
+.wi-wind.from-277-deg {
+  -webkit-transform: rotate(97deg);
+  -moz-transform: rotate(97deg);
+  -ms-transform: rotate(97deg);
+  -o-transform: rotate(97deg);
+  transform: rotate(97deg);
+}
+.wi-wind.from-278-deg {
+  -webkit-transform: rotate(98deg);
+  -moz-transform: rotate(98deg);
+  -ms-transform: rotate(98deg);
+  -o-transform: rotate(98deg);
+  transform: rotate(98deg);
+}
+.wi-wind.from-279-deg {
+  -webkit-transform: rotate(99deg);
+  -moz-transform: rotate(99deg);
+  -ms-transform: rotate(99deg);
+  -o-transform: rotate(99deg);
+  transform: rotate(99deg);
+}
+.wi-wind.from-280-deg {
+  -webkit-transform: rotate(100deg);
+  -moz-transform: rotate(100deg);
+  -ms-transform: rotate(100deg);
+  -o-transform: rotate(100deg);
+  transform: rotate(100deg);
+}
+.wi-wind.from-281-deg {
+  -webkit-transform: rotate(101deg);
+  -moz-transform: rotate(101deg);
+  -ms-transform: rotate(101deg);
+  -o-transform: rotate(101deg);
+  transform: rotate(101deg);
+}
+.wi-wind.from-282-deg {
+  -webkit-transform: rotate(102deg);
+  -moz-transform: rotate(102deg);
+  -ms-transform: rotate(102deg);
+  -o-transform: rotate(102deg);
+  transform: rotate(102deg);
+}
+.wi-wind.from-283-deg {
+  -webkit-transform: rotate(103deg);
+  -moz-transform: rotate(103deg);
+  -ms-transform: rotate(103deg);
+  -o-transform: rotate(103deg);
+  transform: rotate(103deg);
+}
+.wi-wind.from-284-deg {
+  -webkit-transform: rotate(104deg);
+  -moz-transform: rotate(104deg);
+  -ms-transform: rotate(104deg);
+  -o-transform: rotate(104deg);
+  transform: rotate(104deg);
+}
+.wi-wind.from-285-deg {
+  -webkit-transform: rotate(105deg);
+  -moz-transform: rotate(105deg);
+  -ms-transform: rotate(105deg);
+  -o-transform: rotate(105deg);
+  transform: rotate(105deg);
+}
+.wi-wind.from-286-deg {
+  -webkit-transform: rotate(106deg);
+  -moz-transform: rotate(106deg);
+  -ms-transform: rotate(106deg);
+  -o-transform: rotate(106deg);
+  transform: rotate(106deg);
+}
+.wi-wind.from-287-deg {
+  -webkit-transform: rotate(107deg);
+  -moz-transform: rotate(107deg);
+  -ms-transform: rotate(107deg);
+  -o-transform: rotate(107deg);
+  transform: rotate(107deg);
+}
+.wi-wind.from-288-deg {
+  -webkit-transform: rotate(108deg);
+  -moz-transform: rotate(108deg);
+  -ms-transform: rotate(108deg);
+  -o-transform: rotate(108deg);
+  transform: rotate(108deg);
+}
+.wi-wind.from-289-deg {
+  -webkit-transform: rotate(109deg);
+  -moz-transform: rotate(109deg);
+  -ms-transform: rotate(109deg);
+  -o-transform: rotate(109deg);
+  transform: rotate(109deg);
+}
+.wi-wind.from-290-deg {
+  -webkit-transform: rotate(110deg);
+  -moz-transform: rotate(110deg);
+  -ms-transform: rotate(110deg);
+  -o-transform: rotate(110deg);
+  transform: rotate(110deg);
+}
+.wi-wind.from-291-deg {
+  -webkit-transform: rotate(111deg);
+  -moz-transform: rotate(111deg);
+  -ms-transform: rotate(111deg);
+  -o-transform: rotate(111deg);
+  transform: rotate(111deg);
+}
+.wi-wind.from-292-deg {
+  -webkit-transform: rotate(112deg);
+  -moz-transform: rotate(112deg);
+  -ms-transform: rotate(112deg);
+  -o-transform: rotate(112deg);
+  transform: rotate(112deg);
+}
+.wi-wind.from-293-deg {
+  -webkit-transform: rotate(113deg);
+  -moz-transform: rotate(113deg);
+  -ms-transform: rotate(113deg);
+  -o-transform: rotate(113deg);
+  transform: rotate(113deg);
+}
+.wi-wind.from-294-deg {
+  -webkit-transform: rotate(114deg);
+  -moz-transform: rotate(114deg);
+  -ms-transform: rotate(114deg);
+  -o-transform: rotate(114deg);
+  transform: rotate(114deg);
+}
+.wi-wind.from-295-deg {
+  -webkit-transform: rotate(115deg);
+  -moz-transform: rotate(115deg);
+  -ms-transform: rotate(115deg);
+  -o-transform: rotate(115deg);
+  transform: rotate(115deg);
+}
+.wi-wind.from-296-deg {
+  -webkit-transform: rotate(116deg);
+  -moz-transform: rotate(116deg);
+  -ms-transform: rotate(116deg);
+  -o-transform: rotate(116deg);
+  transform: rotate(116deg);
+}
+.wi-wind.from-297-deg {
+  -webkit-transform: rotate(117deg);
+  -moz-transform: rotate(117deg);
+  -ms-transform: rotate(117deg);
+  -o-transform: rotate(117deg);
+  transform: rotate(117deg);
+}
+.wi-wind.from-298-deg {
+  -webkit-transform: rotate(118deg);
+  -moz-transform: rotate(118deg);
+  -ms-transform: rotate(118deg);
+  -o-transform: rotate(118deg);
+  transform: rotate(118deg);
+}
+.wi-wind.from-299-deg {
+  -webkit-transform: rotate(119deg);
+  -moz-transform: rotate(119deg);
+  -ms-transform: rotate(119deg);
+  -o-transform: rotate(119deg);
+  transform: rotate(119deg);
+}
+.wi-wind.from-300-deg {
+  -webkit-transform: rotate(120deg);
+  -moz-transform: rotate(120deg);
+  -ms-transform: rotate(120deg);
+  -o-transform: rotate(120deg);
+  transform: rotate(120deg);
+}
+.wi-wind.from-301-deg {
+  -webkit-transform: rotate(121deg);
+  -moz-transform: rotate(121deg);
+  -ms-transform: rotate(121deg);
+  -o-transform: rotate(121deg);
+  transform: rotate(121deg);
+}
+.wi-wind.from-302-deg {
+  -webkit-transform: rotate(122deg);
+  -moz-transform: rotate(122deg);
+  -ms-transform: rotate(122deg);
+  -o-transform: rotate(122deg);
+  transform: rotate(122deg);
+}
+.wi-wind.from-303-deg {
+  -webkit-transform: rotate(123deg);
+  -moz-transform: rotate(123deg);
+  -ms-transform: rotate(123deg);
+  -o-transform: rotate(123deg);
+  transform: rotate(123deg);
+}
+.wi-wind.from-304-deg {
+  -webkit-transform: rotate(124deg);
+  -moz-transform: rotate(124deg);
+  -ms-transform: rotate(124deg);
+  -o-transform: rotate(124deg);
+  transform: rotate(124deg);
+}
+.wi-wind.from-305-deg {
+  -webkit-transform: rotate(125deg);
+  -moz-transform: rotate(125deg);
+  -ms-transform: rotate(125deg);
+  -o-transform: rotate(125deg);
+  transform: rotate(125deg);
+}
+.wi-wind.from-306-deg {
+  -webkit-transform: rotate(126deg);
+  -moz-transform: rotate(126deg);
+  -ms-transform: rotate(126deg);
+  -o-transform: rotate(126deg);
+  transform: rotate(126deg);
+}
+.wi-wind.from-307-deg {
+  -webkit-transform: rotate(127deg);
+  -moz-transform: rotate(127deg);
+  -ms-transform: rotate(127deg);
+  -o-transform: rotate(127deg);
+  transform: rotate(127deg);
+}
+.wi-wind.from-308-deg {
+  -webkit-transform: rotate(128deg);
+  -moz-transform: rotate(128deg);
+  -ms-transform: rotate(128deg);
+  -o-transform: rotate(128deg);
+  transform: rotate(128deg);
+}
+.wi-wind.from-309-deg {
+  -webkit-transform: rotate(129deg);
+  -moz-transform: rotate(129deg);
+  -ms-transform: rotate(129deg);
+  -o-transform: rotate(129deg);
+  transform: rotate(129deg);
+}
+.wi-wind.from-310-deg {
+  -webkit-transform: rotate(130deg);
+  -moz-transform: rotate(130deg);
+  -ms-transform: rotate(130deg);
+  -o-transform: rotate(130deg);
+  transform: rotate(130deg);
+}
+.wi-wind.from-311-deg {
+  -webkit-transform: rotate(131deg);
+  -moz-transform: rotate(131deg);
+  -ms-transform: rotate(131deg);
+  -o-transform: rotate(131deg);
+  transform: rotate(131deg);
+}
+.wi-wind.from-312-deg {
+  -webkit-transform: rotate(132deg);
+  -moz-transform: rotate(132deg);
+  -ms-transform: rotate(132deg);
+  -o-transform: rotate(132deg);
+  transform: rotate(132deg);
+}
+.wi-wind.from-313-deg {
+  -webkit-transform: rotate(133deg);
+  -moz-transform: rotate(133deg);
+  -ms-transform: rotate(133deg);
+  -o-transform: rotate(133deg);
+  transform: rotate(133deg);
+}
+.wi-wind.from-314-deg {
+  -webkit-transform: rotate(134deg);
+  -moz-transform: rotate(134deg);
+  -ms-transform: rotate(134deg);
+  -o-transform: rotate(134deg);
+  transform: rotate(134deg);
+}
+.wi-wind.from-315-deg {
+  -webkit-transform: rotate(135deg);
+  -moz-transform: rotate(135deg);
+  -ms-transform: rotate(135deg);
+  -o-transform: rotate(135deg);
+  transform: rotate(135deg);
+}
+.wi-wind.from-316-deg {
+  -webkit-transform: rotate(136deg);
+  -moz-transform: rotate(136deg);
+  -ms-transform: rotate(136deg);
+  -o-transform: rotate(136deg);
+  transform: rotate(136deg);
+}
+.wi-wind.from-317-deg {
+  -webkit-transform: rotate(137deg);
+  -moz-transform: rotate(137deg);
+  -ms-transform: rotate(137deg);
+  -o-transform: rotate(137deg);
+  transform: rotate(137deg);
+}
+.wi-wind.from-318-deg {
+  -webkit-transform: rotate(138deg);
+  -moz-transform: rotate(138deg);
+  -ms-transform: rotate(138deg);
+  -o-transform: rotate(138deg);
+  transform: rotate(138deg);
+}
+.wi-wind.from-319-deg {
+  -webkit-transform: rotate(139deg);
+  -moz-transform: rotate(139deg);
+  -ms-transform: rotate(139deg);
+  -o-transform: rotate(139deg);
+  transform: rotate(139deg);
+}
+.wi-wind.from-320-deg {
+  -webkit-transform: rotate(140deg);
+  -moz-transform: rotate(140deg);
+  -ms-transform: rotate(140deg);
+  -o-transform: rotate(140deg);
+  transform: rotate(140deg);
+}
+.wi-wind.from-321-deg {
+  -webkit-transform: rotate(141deg);
+  -moz-transform: rotate(141deg);
+  -ms-transform: rotate(141deg);
+  -o-transform: rotate(141deg);
+  transform: rotate(141deg);
+}
+.wi-wind.from-322-deg {
+  -webkit-transform: rotate(142deg);
+  -moz-transform: rotate(142deg);
+  -ms-transform: rotate(142deg);
+  -o-transform: rotate(142deg);
+  transform: rotate(142deg);
+}
+.wi-wind.from-323-deg {
+  -webkit-transform: rotate(143deg);
+  -moz-transform: rotate(143deg);
+  -ms-transform: rotate(143deg);
+  -o-transform: rotate(143deg);
+  transform: rotate(143deg);
+}
+.wi-wind.from-324-deg {
+  -webkit-transform: rotate(144deg);
+  -moz-transform: rotate(144deg);
+  -ms-transform: rotate(144deg);
+  -o-transform: rotate(144deg);
+  transform: rotate(144deg);
+}
+.wi-wind.from-325-deg {
+  -webkit-transform: rotate(145deg);
+  -moz-transform: rotate(145deg);
+  -ms-transform: rotate(145deg);
+  -o-transform: rotate(145deg);
+  transform: rotate(145deg);
+}
+.wi-wind.from-326-deg {
+  -webkit-transform: rotate(146deg);
+  -moz-transform: rotate(146deg);
+  -ms-transform: rotate(146deg);
+  -o-transform: rotate(146deg);
+  transform: rotate(146deg);
+}
+.wi-wind.from-327-deg {
+  -webkit-transform: rotate(147deg);
+  -moz-transform: rotate(147deg);
+  -ms-transform: rotate(147deg);
+  -o-transform: rotate(147deg);
+  transform: rotate(147deg);
+}
+.wi-wind.from-328-deg {
+  -webkit-transform: rotate(148deg);
+  -moz-transform: rotate(148deg);
+  -ms-transform: rotate(148deg);
+  -o-transform: rotate(148deg);
+  transform: rotate(148deg);
+}
+.wi-wind.from-329-deg {
+  -webkit-transform: rotate(149deg);
+  -moz-transform: rotate(149deg);
+  -ms-transform: rotate(149deg);
+  -o-transform: rotate(149deg);
+  transform: rotate(149deg);
+}
+.wi-wind.from-330-deg {
+  -webkit-transform: rotate(150deg);
+  -moz-transform: rotate(150deg);
+  -ms-transform: rotate(150deg);
+  -o-transform: rotate(150deg);
+  transform: rotate(150deg);
+}
+.wi-wind.from-331-deg {
+  -webkit-transform: rotate(151deg);
+  -moz-transform: rotate(151deg);
+  -ms-transform: rotate(151deg);
+  -o-transform: rotate(151deg);
+  transform: rotate(151deg);
+}
+.wi-wind.from-332-deg {
+  -webkit-transform: rotate(152deg);
+  -moz-transform: rotate(152deg);
+  -ms-transform: rotate(152deg);
+  -o-transform: rotate(152deg);
+  transform: rotate(152deg);
+}
+.wi-wind.from-333-deg {
+  -webkit-transform: rotate(153deg);
+  -moz-transform: rotate(153deg);
+  -ms-transform: rotate(153deg);
+  -o-transform: rotate(153deg);
+  transform: rotate(153deg);
+}
+.wi-wind.from-334-deg {
+  -webkit-transform: rotate(154deg);
+  -moz-transform: rotate(154deg);
+  -ms-transform: rotate(154deg);
+  -o-transform: rotate(154deg);
+  transform: rotate(154deg);
+}
+.wi-wind.from-335-deg {
+  -webkit-transform: rotate(155deg);
+  -moz-transform: rotate(155deg);
+  -ms-transform: rotate(155deg);
+  -o-transform: rotate(155deg);
+  transform: rotate(155deg);
+}
+.wi-wind.from-336-deg {
+  -webkit-transform: rotate(156deg);
+  -moz-transform: rotate(156deg);
+  -ms-transform: rotate(156deg);
+  -o-transform: rotate(156deg);
+  transform: rotate(156deg);
+}
+.wi-wind.from-337-deg {
+  -webkit-transform: rotate(157deg);
+  -moz-transform: rotate(157deg);
+  -ms-transform: rotate(157deg);
+  -o-transform: rotate(157deg);
+  transform: rotate(157deg);
+}
+.wi-wind.from-338-deg {
+  -webkit-transform: rotate(158deg);
+  -moz-transform: rotate(158deg);
+  -ms-transform: rotate(158deg);
+  -o-transform: rotate(158deg);
+  transform: rotate(158deg);
+}
+.wi-wind.from-339-deg {
+  -webkit-transform: rotate(159deg);
+  -moz-transform: rotate(159deg);
+  -ms-transform: rotate(159deg);
+  -o-transform: rotate(159deg);
+  transform: rotate(159deg);
+}
+.wi-wind.from-340-deg {
+  -webkit-transform: rotate(160deg);
+  -moz-transform: rotate(160deg);
+  -ms-transform: rotate(160deg);
+  -o-transform: rotate(160deg);
+  transform: rotate(160deg);
+}
+.wi-wind.from-341-deg {
+  -webkit-transform: rotate(161deg);
+  -moz-transform: rotate(161deg);
+  -ms-transform: rotate(161deg);
+  -o-transform: rotate(161deg);
+  transform: rotate(161deg);
+}
+.wi-wind.from-342-deg {
+  -webkit-transform: rotate(162deg);
+  -moz-transform: rotate(162deg);
+  -ms-transform: rotate(162deg);
+  -o-transform: rotate(162deg);
+  transform: rotate(162deg);
+}
+.wi-wind.from-343-deg {
+  -webkit-transform: rotate(163deg);
+  -moz-transform: rotate(163deg);
+  -ms-transform: rotate(163deg);
+  -o-transform: rotate(163deg);
+  transform: rotate(163deg);
+}
+.wi-wind.from-344-deg {
+  -webkit-transform: rotate(164deg);
+  -moz-transform: rotate(164deg);
+  -ms-transform: rotate(164deg);
+  -o-transform: rotate(164deg);
+  transform: rotate(164deg);
+}
+.wi-wind.from-345-deg {
+  -webkit-transform: rotate(165deg);
+  -moz-transform: rotate(165deg);
+  -ms-transform: rotate(165deg);
+  -o-transform: rotate(165deg);
+  transform: rotate(165deg);
+}
+.wi-wind.from-346-deg {
+  -webkit-transform: rotate(166deg);
+  -moz-transform: rotate(166deg);
+  -ms-transform: rotate(166deg);
+  -o-transform: rotate(166deg);
+  transform: rotate(166deg);
+}
+.wi-wind.from-347-deg {
+  -webkit-transform: rotate(167deg);
+  -moz-transform: rotate(167deg);
+  -ms-transform: rotate(167deg);
+  -o-transform: rotate(167deg);
+  transform: rotate(167deg);
+}
+.wi-wind.from-348-deg {
+  -webkit-transform: rotate(168deg);
+  -moz-transform: rotate(168deg);
+  -ms-transform: rotate(168deg);
+  -o-transform: rotate(168deg);
+  transform: rotate(168deg);
+}
+.wi-wind.from-349-deg {
+  -webkit-transform: rotate(169deg);
+  -moz-transform: rotate(169deg);
+  -ms-transform: rotate(169deg);
+  -o-transform: rotate(169deg);
+  transform: rotate(169deg);
+}
+.wi-wind.from-350-deg {
+  -webkit-transform: rotate(170deg);
+  -moz-transform: rotate(170deg);
+  -ms-transform: rotate(170deg);
+  -o-transform: rotate(170deg);
+  transform: rotate(170deg);
+}
+.wi-wind.from-351-deg {
+  -webkit-transform: rotate(171deg);
+  -moz-transform: rotate(171deg);
+  -ms-transform: rotate(171deg);
+  -o-transform: rotate(171deg);
+  transform: rotate(171deg);
+}
+.wi-wind.from-352-deg {
+  -webkit-transform: rotate(172deg);
+  -moz-transform: rotate(172deg);
+  -ms-transform: rotate(172deg);
+  -o-transform: rotate(172deg);
+  transform: rotate(172deg);
+}
+.wi-wind.from-353-deg {
+  -webkit-transform: rotate(173deg);
+  -moz-transform: rotate(173deg);
+  -ms-transform: rotate(173deg);
+  -o-transform: rotate(173deg);
+  transform: rotate(173deg);
+}
+.wi-wind.from-354-deg {
+  -webkit-transform: rotate(174deg);
+  -moz-transform: rotate(174deg);
+  -ms-transform: rotate(174deg);
+  -o-transform: rotate(174deg);
+  transform: rotate(174deg);
+}
+.wi-wind.from-355-deg {
+  -webkit-transform: rotate(175deg);
+  -moz-transform: rotate(175deg);
+  -ms-transform: rotate(175deg);
+  -o-transform: rotate(175deg);
+  transform: rotate(175deg);
+}
+.wi-wind.from-356-deg {
+  -webkit-transform: rotate(176deg);
+  -moz-transform: rotate(176deg);
+  -ms-transform: rotate(176deg);
+  -o-transform: rotate(176deg);
+  transform: rotate(176deg);
+}
+.wi-wind.from-357-deg {
+  -webkit-transform: rotate(177deg);
+  -moz-transform: rotate(177deg);
+  -ms-transform: rotate(177deg);
+  -o-transform: rotate(177deg);
+  transform: rotate(177deg);
+}
+.wi-wind.from-358-deg {
+  -webkit-transform: rotate(178deg);
+  -moz-transform: rotate(178deg);
+  -ms-transform: rotate(178deg);
+  -o-transform: rotate(178deg);
+  transform: rotate(178deg);
+}
+.wi-wind.from-359-deg {
+  -webkit-transform: rotate(179deg);
+  -moz-transform: rotate(179deg);
+  -ms-transform: rotate(179deg);
+  -o-transform: rotate(179deg);
+  transform: rotate(179deg);
+}
+.wi-wind.from-360-deg {
+  -webkit-transform: rotate(180deg);
+  -moz-transform: rotate(180deg);
+  -ms-transform: rotate(180deg);
+  -o-transform: rotate(180deg);
+  transform: rotate(180deg);
+}
+.wi-towards-n {
+  -webkit-transform: rotate(0deg);
+  -moz-transform: rotate(0deg);
+  -ms-transform: rotate(0deg);
+  -o-transform: rotate(0deg);
+  transform: rotate(0deg);
+}
+.wi-towards-nne {
+  -webkit-transform: rotate(23deg);
+  -moz-transform: rotate(23deg);
+  -ms-transform: rotate(23deg);
+  -o-transform: rotate(23deg);
+  transform: rotate(23deg);
+}
+.wi-towards-ne {
+  -webkit-transform: rotate(45deg);
+  -moz-transform: rotate(45deg);
+  -ms-transform: rotate(45deg);
+  -o-transform: rotate(45deg);
+  transform: rotate(45deg);
+}
+.wi-towards-ene {
+  -webkit-transform: rotate(68deg);
+  -moz-transform: rotate(68deg);
+  -ms-transform: rotate(68deg);
+  -o-transform: rotate(68deg);
+  transform: rotate(68deg);
+}
+.wi-towards-e {
+  -webkit-transform: rotate(90deg);
+  -moz-transform: rotate(90deg);
+  -ms-transform: rotate(90deg);
+  -o-transform: rotate(90deg);
+  transform: rotate(90deg);
+}
+.wi-towards-ese {
+  -webkit-transform: rotate(113deg);
+  -moz-transform: rotate(113deg);
+  -ms-transform: rotate(113deg);
+  -o-transform: rotate(113deg);
+  transform: rotate(113deg);
+}
+.wi-towards-se {
+  -webkit-transform: rotate(135deg);
+  -moz-transform: rotate(135deg);
+  -ms-transform: rotate(135deg);
+  -o-transform: rotate(135deg);
+  transform: rotate(135deg);
+}
+.wi-towards-sse {
+  -webkit-transform: rotate(158deg);
+  -moz-transform: rotate(158deg);
+  -ms-transform: rotate(158deg);
+  -o-transform: rotate(158deg);
+  transform: rotate(158deg);
+}
+.wi-towards-s {
+  -webkit-transform: rotate(180deg);
+  -moz-transform: rotate(180deg);
+  -ms-transform: rotate(180deg);
+  -o-transform: rotate(180deg);
+  transform: rotate(180deg);
+}
+.wi-towards-ssw {
+  -webkit-transform: rotate(203deg);
+  -moz-transform: rotate(203deg);
+  -ms-transform: rotate(203deg);
+  -o-transform: rotate(203deg);
+  transform: rotate(203deg);
+}
+.wi-towards-sw {
+  -webkit-transform: rotate(225deg);
+  -moz-transform: rotate(225deg);
+  -ms-transform: rotate(225deg);
+  -o-transform: rotate(225deg);
+  transform: rotate(225deg);
+}
+.wi-towards-wsw {
+  -webkit-transform: rotate(248deg);
+  -moz-transform: rotate(248deg);
+  -ms-transform: rotate(248deg);
+  -o-transform: rotate(248deg);
+  transform: rotate(248deg);
+}
+.wi-towards-w {
+  -webkit-transform: rotate(270deg);
+  -moz-transform: rotate(270deg);
+  -ms-transform: rotate(270deg);
+  -o-transform: rotate(270deg);
+  transform: rotate(270deg);
+}
+.wi-towards-wnw {
+  -webkit-transform: rotate(293deg);
+  -moz-transform: rotate(293deg);
+  -ms-transform: rotate(293deg);
+  -o-transform: rotate(293deg);
+  transform: rotate(293deg);
+}
+.wi-towards-nw {
+  -webkit-transform: rotate(313deg);
+  -moz-transform: rotate(313deg);
+  -ms-transform: rotate(313deg);
+  -o-transform: rotate(313deg);
+  transform: rotate(313deg);
+}
+.wi-towards-nnw {
+  -webkit-transform: rotate(336deg);
+  -moz-transform: rotate(336deg);
+  -ms-transform: rotate(336deg);
+  -o-transform: rotate(336deg);
+  transform: rotate(336deg);
+}
+.wi-from-n {
+  -webkit-transform: rotate(180deg);
+  -moz-transform: rotate(180deg);
+  -ms-transform: rotate(180deg);
+  -o-transform: rotate(180deg);
+  transform: rotate(180deg);
+}
+.wi-from-nne {
+  -webkit-transform: rotate(203deg);
+  -moz-transform: rotate(203deg);
+  -ms-transform: rotate(203deg);
+  -o-transform: rotate(203deg);
+  transform: rotate(203deg);
+}
+.wi-from-ne {
+  -webkit-transform: rotate(225deg);
+  -moz-transform: rotate(225deg);
+  -ms-transform: rotate(225deg);
+  -o-transform: rotate(225deg);
+  transform: rotate(225deg);
+}
+.wi-from-ene {
+  -webkit-transform: rotate(248deg);
+  -moz-transform: rotate(248deg);
+  -ms-transform: rotate(248deg);
+  -o-transform: rotate(248deg);
+  transform: rotate(248deg);
+}
+.wi-from-e {
+  -webkit-transform: rotate(270deg);
+  -moz-transform: rotate(270deg);
+  -ms-transform: rotate(270deg);
+  -o-transform: rotate(270deg);
+  transform: rotate(270deg);
+}
+.wi-from-ese {
+  -webkit-transform: rotate(293deg);
+  -moz-transform: rotate(293deg);
+  -ms-transform: rotate(293deg);
+  -o-transform: rotate(293deg);
+  transform: rotate(293deg);
+}
+.wi-from-se {
+  -webkit-transform: rotate(315deg);
+  -moz-transform: rotate(315deg);
+  -ms-transform: rotate(315deg);
+  -o-transform: rotate(315deg);
+  transform: rotate(315deg);
+}
+.wi-from-sse {
+  -webkit-transform: rotate(338deg);
+  -moz-transform: rotate(338deg);
+  -ms-transform: rotate(338deg);
+  -o-transform: rotate(338deg);
+  transform: rotate(338deg);
+}
+.wi-from-s {
+  -webkit-transform: rotate(0deg);
+  -moz-transform: rotate(0deg);
+  -ms-transform: rotate(0deg);
+  -o-transform: rotate(0deg);
+  transform: rotate(0deg);
+}
+.wi-from-ssw {
+  -webkit-transform: rotate(23deg);
+  -moz-transform: rotate(23deg);
+  -ms-transform: rotate(23deg);
+  -o-transform: rotate(23deg);
+  transform: rotate(23deg);
+}
+.wi-from-sw {
+  -webkit-transform: rotate(45deg);
+  -moz-transform: rotate(45deg);
+  -ms-transform: rotate(45deg);
+  -o-transform: rotate(45deg);
+  transform: rotate(45deg);
+}
+.wi-from-wsw {
+  -webkit-transform: rotate(68deg);
+  -moz-transform: rotate(68deg);
+  -ms-transform: rotate(68deg);
+  -o-transform: rotate(68deg);
+  transform: rotate(68deg);
+}
+.wi-from-w {
+  -webkit-transform: rotate(90deg);
+  -moz-transform: rotate(90deg);
+  -ms-transform: rotate(90deg);
+  -o-transform: rotate(90deg);
+  transform: rotate(90deg);
+}
+.wi-from-wnw {
+  -webkit-transform: rotate(113deg);
+  -moz-transform: rotate(113deg);
+  -ms-transform: rotate(113deg);
+  -o-transform: rotate(113deg);
+  transform: rotate(113deg);
+}
+.wi-from-nw {
+  -webkit-transform: rotate(133deg);
+  -moz-transform: rotate(133deg);
+  -ms-transform: rotate(133deg);
+  -o-transform: rotate(133deg);
+  transform: rotate(133deg);
+}
+.wi-from-nnw {
+  -webkit-transform: rotate(156deg);
+  -moz-transform: rotate(156deg);
+  -ms-transform: rotate(156deg);
+  -o-transform: rotate(156deg);
+  transform: rotate(156deg);
+}

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/vue/static/weather_icons/css/weather-icons-wind.min.css


+ 1838 - 0
src/main/vue/static/weather_icons/css/weather-icons.css

@@ -0,0 +1,1838 @@
+/*!
+ *  Weather Icons 2.0.8
+ *  Updated September 19, 2015
+ *  Weather themed icons for Bootstrap
+ *  Author - Erik Flowers - erik@helloerik.com
+ *  Email: erik@helloerik.com
+ *  Twitter: http://twitter.com/Erik_UX
+ *  ------------------------------------------------------------------------------
+ *  Maintained at http://erikflowers.github.io/weather-icons
+ *
+ *  License
+ *  ------------------------------------------------------------------------------
+ *  - Font licensed under SIL OFL 1.1 -
+ *    http://scripts.sil.org/OFL
+ *  - CSS, SCSS and LESS are licensed under MIT License -
+ *    http://opensource.org/licenses/mit-license.html
+ *  - Documentation licensed under CC BY 3.0 -
+ *    http://creativecommons.org/licenses/by/3.0/
+ *  - Inspired by and works great as a companion with Font Awesome
+ *    "Font Awesome by Dave Gandy - http://fontawesome.io"
+ */
+@font-face {
+  font-family: 'weathericons';
+  src: url('../font/weathericons-regular-webfont.eot');
+  src: url('../font/weathericons-regular-webfont.eot?#iefix') format('embedded-opentype'), url('../font/weathericons-regular-webfont.woff2') format('woff2'), url('../font/weathericons-regular-webfont.woff') format('woff'), url('../font/weathericons-regular-webfont.ttf') format('truetype'), url('../font/weathericons-regular-webfont.svg#weather_iconsregular') format('svg');
+  font-weight: normal;
+  font-style: normal;
+}
+.wi {
+  display: inline-block;
+  font-family: 'weathericons';
+  font-style: normal;
+  font-weight: normal;
+  line-height: 1;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+.wi-fw {
+  text-align: center;
+  width: 1.4em;
+}
+.wi-rotate-90 {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
+  -webkit-transform: rotate(90deg);
+  -ms-transform: rotate(90deg);
+  transform: rotate(90deg);
+}
+.wi-rotate-180 {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
+  -webkit-transform: rotate(180deg);
+  -ms-transform: rotate(180deg);
+  transform: rotate(180deg);
+}
+.wi-rotate-270 {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
+  -webkit-transform: rotate(270deg);
+  -ms-transform: rotate(270deg);
+  transform: rotate(270deg);
+}
+.wi-flip-horizontal {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
+  -webkit-transform: scale(-1, 1);
+  -ms-transform: scale(-1, 1);
+  transform: scale(-1, 1);
+}
+.wi-flip-vertical {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
+  -webkit-transform: scale(1, -1);
+  -ms-transform: scale(1, -1);
+  transform: scale(1, -1);
+}
+.wi-day-sunny:before {
+  content: "\f00d";
+}
+.wi-day-cloudy:before {
+  content: "\f002";
+}
+.wi-day-cloudy-gusts:before {
+  content: "\f000";
+}
+.wi-day-cloudy-windy:before {
+  content: "\f001";
+}
+.wi-day-fog:before {
+  content: "\f003";
+}
+.wi-day-hail:before {
+  content: "\f004";
+}
+.wi-day-haze:before {
+  content: "\f0b6";
+}
+.wi-day-lightning:before {
+  content: "\f005";
+}
+.wi-day-rain:before {
+  content: "\f008";
+}
+.wi-day-rain-mix:before {
+  content: "\f006";
+}
+.wi-day-rain-wind:before {
+  content: "\f007";
+}
+.wi-day-showers:before {
+  content: "\f009";
+}
+.wi-day-sleet:before {
+  content: "\f0b2";
+}
+.wi-day-sleet-storm:before {
+  content: "\f068";
+}
+.wi-day-snow:before {
+  content: "\f00a";
+}
+.wi-day-snow-thunderstorm:before {
+  content: "\f06b";
+}
+.wi-day-snow-wind:before {
+  content: "\f065";
+}
+.wi-day-sprinkle:before {
+  content: "\f00b";
+}
+.wi-day-storm-showers:before {
+  content: "\f00e";
+}
+.wi-day-sunny-overcast:before {
+  content: "\f00c";
+}
+.wi-day-thunderstorm:before {
+  content: "\f010";
+}
+.wi-day-windy:before {
+  content: "\f085";
+}
+.wi-solar-eclipse:before {
+  content: "\f06e";
+}
+.wi-hot:before {
+  content: "\f072";
+}
+.wi-day-cloudy-high:before {
+  content: "\f07d";
+}
+.wi-day-light-wind:before {
+  content: "\f0c4";
+}
+.wi-night-clear:before {
+  content: "\f02e";
+}
+.wi-night-alt-cloudy:before {
+  content: "\f086";
+}
+.wi-night-alt-cloudy-gusts:before {
+  content: "\f022";
+}
+.wi-night-alt-cloudy-windy:before {
+  content: "\f023";
+}
+.wi-night-alt-hail:before {
+  content: "\f024";
+}
+.wi-night-alt-lightning:before {
+  content: "\f025";
+}
+.wi-night-alt-rain:before {
+  content: "\f028";
+}
+.wi-night-alt-rain-mix:before {
+  content: "\f026";
+}
+.wi-night-alt-rain-wind:before {
+  content: "\f027";
+}
+.wi-night-alt-showers:before {
+  content: "\f029";
+}
+.wi-night-alt-sleet:before {
+  content: "\f0b4";
+}
+.wi-night-alt-sleet-storm:before {
+  content: "\f06a";
+}
+.wi-night-alt-snow:before {
+  content: "\f02a";
+}
+.wi-night-alt-snow-thunderstorm:before {
+  content: "\f06d";
+}
+.wi-night-alt-snow-wind:before {
+  content: "\f067";
+}
+.wi-night-alt-sprinkle:before {
+  content: "\f02b";
+}
+.wi-night-alt-storm-showers:before {
+  content: "\f02c";
+}
+.wi-night-alt-thunderstorm:before {
+  content: "\f02d";
+}
+.wi-night-cloudy:before {
+  content: "\f031";
+}
+.wi-night-cloudy-gusts:before {
+  content: "\f02f";
+}
+.wi-night-cloudy-windy:before {
+  content: "\f030";
+}
+.wi-night-fog:before {
+  content: "\f04a";
+}
+.wi-night-hail:before {
+  content: "\f032";
+}
+.wi-night-lightning:before {
+  content: "\f033";
+}
+.wi-night-partly-cloudy:before {
+  content: "\f083";
+}
+.wi-night-rain:before {
+  content: "\f036";
+}
+.wi-night-rain-mix:before {
+  content: "\f034";
+}
+.wi-night-rain-wind:before {
+  content: "\f035";
+}
+.wi-night-showers:before {
+  content: "\f037";
+}
+.wi-night-sleet:before {
+  content: "\f0b3";
+}
+.wi-night-sleet-storm:before {
+  content: "\f069";
+}
+.wi-night-snow:before {
+  content: "\f038";
+}
+.wi-night-snow-thunderstorm:before {
+  content: "\f06c";
+}
+.wi-night-snow-wind:before {
+  content: "\f066";
+}
+.wi-night-sprinkle:before {
+  content: "\f039";
+}
+.wi-night-storm-showers:before {
+  content: "\f03a";
+}
+.wi-night-thunderstorm:before {
+  content: "\f03b";
+}
+.wi-lunar-eclipse:before {
+  content: "\f070";
+}
+.wi-stars:before {
+  content: "\f077";
+}
+.wi-storm-showers:before {
+  content: "\f01d";
+}
+.wi-thunderstorm:before {
+  content: "\f01e";
+}
+.wi-night-alt-cloudy-high:before {
+  content: "\f07e";
+}
+.wi-night-cloudy-high:before {
+  content: "\f080";
+}
+.wi-night-alt-partly-cloudy:before {
+  content: "\f081";
+}
+.wi-cloud:before {
+  content: "\f041";
+}
+.wi-cloudy:before {
+  content: "\f013";
+}
+.wi-cloudy-gusts:before {
+  content: "\f011";
+}
+.wi-cloudy-windy:before {
+  content: "\f012";
+}
+.wi-fog:before {
+  content: "\f014";
+}
+.wi-hail:before {
+  content: "\f015";
+}
+.wi-rain:before {
+  content: "\f019";
+}
+.wi-rain-mix:before {
+  content: "\f017";
+}
+.wi-rain-wind:before {
+  content: "\f018";
+}
+.wi-showers:before {
+  content: "\f01a";
+}
+.wi-sleet:before {
+  content: "\f0b5";
+}
+.wi-snow:before {
+  content: "\f01b";
+}
+.wi-sprinkle:before {
+  content: "\f01c";
+}
+.wi-storm-showers:before {
+  content: "\f01d";
+}
+.wi-thunderstorm:before {
+  content: "\f01e";
+}
+.wi-snow-wind:before {
+  content: "\f064";
+}
+.wi-snow:before {
+  content: "\f01b";
+}
+.wi-smog:before {
+  content: "\f074";
+}
+.wi-smoke:before {
+  content: "\f062";
+}
+.wi-lightning:before {
+  content: "\f016";
+}
+.wi-raindrops:before {
+  content: "\f04e";
+}
+.wi-raindrop:before {
+  content: "\f078";
+}
+.wi-dust:before {
+  content: "\f063";
+}
+.wi-snowflake-cold:before {
+  content: "\f076";
+}
+.wi-windy:before {
+  content: "\f021";
+}
+.wi-strong-wind:before {
+  content: "\f050";
+}
+.wi-sandstorm:before {
+  content: "\f082";
+}
+.wi-earthquake:before {
+  content: "\f0c6";
+}
+.wi-fire:before {
+  content: "\f0c7";
+}
+.wi-flood:before {
+  content: "\f07c";
+}
+.wi-meteor:before {
+  content: "\f071";
+}
+.wi-tsunami:before {
+  content: "\f0c5";
+}
+.wi-volcano:before {
+  content: "\f0c8";
+}
+.wi-hurricane:before {
+  content: "\f073";
+}
+.wi-tornado:before {
+  content: "\f056";
+}
+.wi-small-craft-advisory:before {
+  content: "\f0cc";
+}
+.wi-gale-warning:before {
+  content: "\f0cd";
+}
+.wi-storm-warning:before {
+  content: "\f0ce";
+}
+.wi-hurricane-warning:before {
+  content: "\f0cf";
+}
+.wi-wind-direction:before {
+  content: "\f0b1";
+}
+.wi-alien:before {
+  content: "\f075";
+}
+.wi-celsius:before {
+  content: "\f03c";
+}
+.wi-fahrenheit:before {
+  content: "\f045";
+}
+.wi-degrees:before {
+  content: "\f042";
+}
+.wi-thermometer:before {
+  content: "\f055";
+}
+.wi-thermometer-exterior:before {
+  content: "\f053";
+}
+.wi-thermometer-internal:before {
+  content: "\f054";
+}
+.wi-cloud-down:before {
+  content: "\f03d";
+}
+.wi-cloud-up:before {
+  content: "\f040";
+}
+.wi-cloud-refresh:before {
+  content: "\f03e";
+}
+.wi-horizon:before {
+  content: "\f047";
+}
+.wi-horizon-alt:before {
+  content: "\f046";
+}
+.wi-sunrise:before {
+  content: "\f051";
+}
+.wi-sunset:before {
+  content: "\f052";
+}
+.wi-moonrise:before {
+  content: "\f0c9";
+}
+.wi-moonset:before {
+  content: "\f0ca";
+}
+.wi-refresh:before {
+  content: "\f04c";
+}
+.wi-refresh-alt:before {
+  content: "\f04b";
+}
+.wi-umbrella:before {
+  content: "\f084";
+}
+.wi-barometer:before {
+  content: "\f079";
+}
+.wi-humidity:before {
+  content: "\f07a";
+}
+.wi-na:before {
+  content: "\f07b";
+}
+.wi-train:before {
+  content: "\f0cb";
+}
+.wi-moon-new:before {
+  content: "\f095";
+}
+.wi-moon-waxing-crescent-1:before {
+  content: "\f096";
+}
+.wi-moon-waxing-crescent-2:before {
+  content: "\f097";
+}
+.wi-moon-waxing-crescent-3:before {
+  content: "\f098";
+}
+.wi-moon-waxing-crescent-4:before {
+  content: "\f099";
+}
+.wi-moon-waxing-crescent-5:before {
+  content: "\f09a";
+}
+.wi-moon-waxing-crescent-6:before {
+  content: "\f09b";
+}
+.wi-moon-first-quarter:before {
+  content: "\f09c";
+}
+.wi-moon-waxing-gibbous-1:before {
+  content: "\f09d";
+}
+.wi-moon-waxing-gibbous-2:before {
+  content: "\f09e";
+}
+.wi-moon-waxing-gibbous-3:before {
+  content: "\f09f";
+}
+.wi-moon-waxing-gibbous-4:before {
+  content: "\f0a0";
+}
+.wi-moon-waxing-gibbous-5:before {
+  content: "\f0a1";
+}
+.wi-moon-waxing-gibbous-6:before {
+  content: "\f0a2";
+}
+.wi-moon-full:before {
+  content: "\f0a3";
+}
+.wi-moon-waning-gibbous-1:before {
+  content: "\f0a4";
+}
+.wi-moon-waning-gibbous-2:before {
+  content: "\f0a5";
+}
+.wi-moon-waning-gibbous-3:before {
+  content: "\f0a6";
+}
+.wi-moon-waning-gibbous-4:before {
+  content: "\f0a7";
+}
+.wi-moon-waning-gibbous-5:before {
+  content: "\f0a8";
+}
+.wi-moon-waning-gibbous-6:before {
+  content: "\f0a9";
+}
+.wi-moon-third-quarter:before {
+  content: "\f0aa";
+}
+.wi-moon-waning-crescent-1:before {
+  content: "\f0ab";
+}
+.wi-moon-waning-crescent-2:before {
+  content: "\f0ac";
+}
+.wi-moon-waning-crescent-3:before {
+  content: "\f0ad";
+}
+.wi-moon-waning-crescent-4:before {
+  content: "\f0ae";
+}
+.wi-moon-waning-crescent-5:before {
+  content: "\f0af";
+}
+.wi-moon-waning-crescent-6:before {
+  content: "\f0b0";
+}
+.wi-moon-alt-new:before {
+  content: "\f0eb";
+}
+.wi-moon-alt-waxing-crescent-1:before {
+  content: "\f0d0";
+}
+.wi-moon-alt-waxing-crescent-2:before {
+  content: "\f0d1";
+}
+.wi-moon-alt-waxing-crescent-3:before {
+  content: "\f0d2";
+}
+.wi-moon-alt-waxing-crescent-4:before {
+  content: "\f0d3";
+}
+.wi-moon-alt-waxing-crescent-5:before {
+  content: "\f0d4";
+}
+.wi-moon-alt-waxing-crescent-6:before {
+  content: "\f0d5";
+}
+.wi-moon-alt-first-quarter:before {
+  content: "\f0d6";
+}
+.wi-moon-alt-waxing-gibbous-1:before {
+  content: "\f0d7";
+}
+.wi-moon-alt-waxing-gibbous-2:before {
+  content: "\f0d8";
+}
+.wi-moon-alt-waxing-gibbous-3:before {
+  content: "\f0d9";
+}
+.wi-moon-alt-waxing-gibbous-4:before {
+  content: "\f0da";
+}
+.wi-moon-alt-waxing-gibbous-5:before {
+  content: "\f0db";
+}
+.wi-moon-alt-waxing-gibbous-6:before {
+  content: "\f0dc";
+}
+.wi-moon-alt-full:before {
+  content: "\f0dd";
+}
+.wi-moon-alt-waning-gibbous-1:before {
+  content: "\f0de";
+}
+.wi-moon-alt-waning-gibbous-2:before {
+  content: "\f0df";
+}
+.wi-moon-alt-waning-gibbous-3:before {
+  content: "\f0e0";
+}
+.wi-moon-alt-waning-gibbous-4:before {
+  content: "\f0e1";
+}
+.wi-moon-alt-waning-gibbous-5:before {
+  content: "\f0e2";
+}
+.wi-moon-alt-waning-gibbous-6:before {
+  content: "\f0e3";
+}
+.wi-moon-alt-third-quarter:before {
+  content: "\f0e4";
+}
+.wi-moon-alt-waning-crescent-1:before {
+  content: "\f0e5";
+}
+.wi-moon-alt-waning-crescent-2:before {
+  content: "\f0e6";
+}
+.wi-moon-alt-waning-crescent-3:before {
+  content: "\f0e7";
+}
+.wi-moon-alt-waning-crescent-4:before {
+  content: "\f0e8";
+}
+.wi-moon-alt-waning-crescent-5:before {
+  content: "\f0e9";
+}
+.wi-moon-alt-waning-crescent-6:before {
+  content: "\f0ea";
+}
+.wi-moon-0:before {
+  content: "\f095";
+}
+.wi-moon-1:before {
+  content: "\f096";
+}
+.wi-moon-2:before {
+  content: "\f097";
+}
+.wi-moon-3:before {
+  content: "\f098";
+}
+.wi-moon-4:before {
+  content: "\f099";
+}
+.wi-moon-5:before {
+  content: "\f09a";
+}
+.wi-moon-6:before {
+  content: "\f09b";
+}
+.wi-moon-7:before {
+  content: "\f09c";
+}
+.wi-moon-8:before {
+  content: "\f09d";
+}
+.wi-moon-9:before {
+  content: "\f09e";
+}
+.wi-moon-10:before {
+  content: "\f09f";
+}
+.wi-moon-11:before {
+  content: "\f0a0";
+}
+.wi-moon-12:before {
+  content: "\f0a1";
+}
+.wi-moon-13:before {
+  content: "\f0a2";
+}
+.wi-moon-14:before {
+  content: "\f0a3";
+}
+.wi-moon-15:before {
+  content: "\f0a4";
+}
+.wi-moon-16:before {
+  content: "\f0a5";
+}
+.wi-moon-17:before {
+  content: "\f0a6";
+}
+.wi-moon-18:before {
+  content: "\f0a7";
+}
+.wi-moon-19:before {
+  content: "\f0a8";
+}
+.wi-moon-20:before {
+  content: "\f0a9";
+}
+.wi-moon-21:before {
+  content: "\f0aa";
+}
+.wi-moon-22:before {
+  content: "\f0ab";
+}
+.wi-moon-23:before {
+  content: "\f0ac";
+}
+.wi-moon-24:before {
+  content: "\f0ad";
+}
+.wi-moon-25:before {
+  content: "\f0ae";
+}
+.wi-moon-26:before {
+  content: "\f0af";
+}
+.wi-moon-27:before {
+  content: "\f0b0";
+}
+.wi-time-1:before {
+  content: "\f08a";
+}
+.wi-time-2:before {
+  content: "\f08b";
+}
+.wi-time-3:before {
+  content: "\f08c";
+}
+.wi-time-4:before {
+  content: "\f08d";
+}
+.wi-time-5:before {
+  content: "\f08e";
+}
+.wi-time-6:before {
+  content: "\f08f";
+}
+.wi-time-7:before {
+  content: "\f090";
+}
+.wi-time-8:before {
+  content: "\f091";
+}
+.wi-time-9:before {
+  content: "\f092";
+}
+.wi-time-10:before {
+  content: "\f093";
+}
+.wi-time-11:before {
+  content: "\f094";
+}
+.wi-time-12:before {
+  content: "\f089";
+}
+.wi-direction-up:before {
+  content: "\f058";
+}
+.wi-direction-up-right:before {
+  content: "\f057";
+}
+.wi-direction-right:before {
+  content: "\f04d";
+}
+.wi-direction-down-right:before {
+  content: "\f088";
+}
+.wi-direction-down:before {
+  content: "\f044";
+}
+.wi-direction-down-left:before {
+  content: "\f043";
+}
+.wi-direction-left:before {
+  content: "\f048";
+}
+.wi-direction-up-left:before {
+  content: "\f087";
+}
+.wi-wind-beaufort-0:before {
+  content: "\f0b7";
+}
+.wi-wind-beaufort-1:before {
+  content: "\f0b8";
+}
+.wi-wind-beaufort-2:before {
+  content: "\f0b9";
+}
+.wi-wind-beaufort-3:before {
+  content: "\f0ba";
+}
+.wi-wind-beaufort-4:before {
+  content: "\f0bb";
+}
+.wi-wind-beaufort-5:before {
+  content: "\f0bc";
+}
+.wi-wind-beaufort-6:before {
+  content: "\f0bd";
+}
+.wi-wind-beaufort-7:before {
+  content: "\f0be";
+}
+.wi-wind-beaufort-8:before {
+  content: "\f0bf";
+}
+.wi-wind-beaufort-9:before {
+  content: "\f0c0";
+}
+.wi-wind-beaufort-10:before {
+  content: "\f0c1";
+}
+.wi-wind-beaufort-11:before {
+  content: "\f0c2";
+}
+.wi-wind-beaufort-12:before {
+  content: "\f0c3";
+}
+.wi-yahoo-0:before {
+  content: "\f056";
+}
+.wi-yahoo-1:before {
+  content: "\f00e";
+}
+.wi-yahoo-2:before {
+  content: "\f073";
+}
+.wi-yahoo-3:before {
+  content: "\f01e";
+}
+.wi-yahoo-4:before {
+  content: "\f01e";
+}
+.wi-yahoo-5:before {
+  content: "\f017";
+}
+.wi-yahoo-6:before {
+  content: "\f017";
+}
+.wi-yahoo-7:before {
+  content: "\f017";
+}
+.wi-yahoo-8:before {
+  content: "\f015";
+}
+.wi-yahoo-9:before {
+  content: "\f01a";
+}
+.wi-yahoo-10:before {
+  content: "\f015";
+}
+.wi-yahoo-11:before {
+  content: "\f01a";
+}
+.wi-yahoo-12:before {
+  content: "\f01a";
+}
+.wi-yahoo-13:before {
+  content: "\f01b";
+}
+.wi-yahoo-14:before {
+  content: "\f00a";
+}
+.wi-yahoo-15:before {
+  content: "\f064";
+}
+.wi-yahoo-16:before {
+  content: "\f01b";
+}
+.wi-yahoo-17:before {
+  content: "\f015";
+}
+.wi-yahoo-18:before {
+  content: "\f017";
+}
+.wi-yahoo-19:before {
+  content: "\f063";
+}
+.wi-yahoo-20:before {
+  content: "\f014";
+}
+.wi-yahoo-21:before {
+  content: "\f021";
+}
+.wi-yahoo-22:before {
+  content: "\f062";
+}
+.wi-yahoo-23:before {
+  content: "\f050";
+}
+.wi-yahoo-24:before {
+  content: "\f050";
+}
+.wi-yahoo-25:before {
+  content: "\f076";
+}
+.wi-yahoo-26:before {
+  content: "\f013";
+}
+.wi-yahoo-27:before {
+  content: "\f031";
+}
+.wi-yahoo-28:before {
+  content: "\f002";
+}
+.wi-yahoo-29:before {
+  content: "\f031";
+}
+.wi-yahoo-30:before {
+  content: "\f002";
+}
+.wi-yahoo-31:before {
+  content: "\f02e";
+}
+.wi-yahoo-32:before {
+  content: "\f00d";
+}
+.wi-yahoo-33:before {
+  content: "\f083";
+}
+.wi-yahoo-34:before {
+  content: "\f00c";
+}
+.wi-yahoo-35:before {
+  content: "\f017";
+}
+.wi-yahoo-36:before {
+  content: "\f072";
+}
+.wi-yahoo-37:before {
+  content: "\f00e";
+}
+.wi-yahoo-38:before {
+  content: "\f00e";
+}
+.wi-yahoo-39:before {
+  content: "\f00e";
+}
+.wi-yahoo-40:before {
+  content: "\f01a";
+}
+.wi-yahoo-41:before {
+  content: "\f064";
+}
+.wi-yahoo-42:before {
+  content: "\f01b";
+}
+.wi-yahoo-43:before {
+  content: "\f064";
+}
+.wi-yahoo-44:before {
+  content: "\f00c";
+}
+.wi-yahoo-45:before {
+  content: "\f00e";
+}
+.wi-yahoo-46:before {
+  content: "\f01b";
+}
+.wi-yahoo-47:before {
+  content: "\f00e";
+}
+.wi-yahoo-3200:before {
+  content: "\f077";
+}
+.wi-forecast-io-clear-day:before {
+  content: "\f00d";
+}
+.wi-forecast-io-clear-night:before {
+  content: "\f02e";
+}
+.wi-forecast-io-rain:before {
+  content: "\f019";
+}
+.wi-forecast-io-snow:before {
+  content: "\f01b";
+}
+.wi-forecast-io-sleet:before {
+  content: "\f0b5";
+}
+.wi-forecast-io-wind:before {
+  content: "\f050";
+}
+.wi-forecast-io-fog:before {
+  content: "\f014";
+}
+.wi-forecast-io-cloudy:before {
+  content: "\f013";
+}
+.wi-forecast-io-partly-cloudy-day:before {
+  content: "\f002";
+}
+.wi-forecast-io-partly-cloudy-night:before {
+  content: "\f031";
+}
+.wi-forecast-io-hail:before {
+  content: "\f015";
+}
+.wi-forecast-io-thunderstorm:before {
+  content: "\f01e";
+}
+.wi-forecast-io-tornado:before {
+  content: "\f056";
+}
+.wi-wmo4680-0:before,
+.wi-wmo4680-00:before {
+  content: "\f055";
+}
+.wi-wmo4680-1:before,
+.wi-wmo4680-01:before {
+  content: "\f013";
+}
+.wi-wmo4680-2:before,
+.wi-wmo4680-02:before {
+  content: "\f055";
+}
+.wi-wmo4680-3:before,
+.wi-wmo4680-03:before {
+  content: "\f013";
+}
+.wi-wmo4680-4:before,
+.wi-wmo4680-04:before {
+  content: "\f014";
+}
+.wi-wmo4680-5:before,
+.wi-wmo4680-05:before {
+  content: "\f014";
+}
+.wi-wmo4680-10:before {
+  content: "\f014";
+}
+.wi-wmo4680-11:before {
+  content: "\f014";
+}
+.wi-wmo4680-12:before {
+  content: "\f016";
+}
+.wi-wmo4680-18:before {
+  content: "\f050";
+}
+.wi-wmo4680-20:before {
+  content: "\f014";
+}
+.wi-wmo4680-21:before {
+  content: "\f017";
+}
+.wi-wmo4680-22:before {
+  content: "\f017";
+}
+.wi-wmo4680-23:before {
+  content: "\f019";
+}
+.wi-wmo4680-24:before {
+  content: "\f01b";
+}
+.wi-wmo4680-25:before {
+  content: "\f015";
+}
+.wi-wmo4680-26:before {
+  content: "\f01e";
+}
+.wi-wmo4680-27:before {
+  content: "\f063";
+}
+.wi-wmo4680-28:before {
+  content: "\f063";
+}
+.wi-wmo4680-29:before {
+  content: "\f063";
+}
+.wi-wmo4680-30:before {
+  content: "\f014";
+}
+.wi-wmo4680-31:before {
+  content: "\f014";
+}
+.wi-wmo4680-32:before {
+  content: "\f014";
+}
+.wi-wmo4680-33:before {
+  content: "\f014";
+}
+.wi-wmo4680-34:before {
+  content: "\f014";
+}
+.wi-wmo4680-35:before {
+  content: "\f014";
+}
+.wi-wmo4680-40:before {
+  content: "\f017";
+}
+.wi-wmo4680-41:before {
+  content: "\f01c";
+}
+.wi-wmo4680-42:before {
+  content: "\f019";
+}
+.wi-wmo4680-43:before {
+  content: "\f01c";
+}
+.wi-wmo4680-44:before {
+  content: "\f019";
+}
+.wi-wmo4680-45:before {
+  content: "\f015";
+}
+.wi-wmo4680-46:before {
+  content: "\f015";
+}
+.wi-wmo4680-47:before {
+  content: "\f01b";
+}
+.wi-wmo4680-48:before {
+  content: "\f01b";
+}
+.wi-wmo4680-50:before {
+  content: "\f01c";
+}
+.wi-wmo4680-51:before {
+  content: "\f01c";
+}
+.wi-wmo4680-52:before {
+  content: "\f019";
+}
+.wi-wmo4680-53:before {
+  content: "\f019";
+}
+.wi-wmo4680-54:before {
+  content: "\f076";
+}
+.wi-wmo4680-55:before {
+  content: "\f076";
+}
+.wi-wmo4680-56:before {
+  content: "\f076";
+}
+.wi-wmo4680-57:before {
+  content: "\f01c";
+}
+.wi-wmo4680-58:before {
+  content: "\f019";
+}
+.wi-wmo4680-60:before {
+  content: "\f01c";
+}
+.wi-wmo4680-61:before {
+  content: "\f01c";
+}
+.wi-wmo4680-62:before {
+  content: "\f019";
+}
+.wi-wmo4680-63:before {
+  content: "\f019";
+}
+.wi-wmo4680-64:before {
+  content: "\f015";
+}
+.wi-wmo4680-65:before {
+  content: "\f015";
+}
+.wi-wmo4680-66:before {
+  content: "\f015";
+}
+.wi-wmo4680-67:before {
+  content: "\f017";
+}
+.wi-wmo4680-68:before {
+  content: "\f017";
+}
+.wi-wmo4680-70:before {
+  content: "\f01b";
+}
+.wi-wmo4680-71:before {
+  content: "\f01b";
+}
+.wi-wmo4680-72:before {
+  content: "\f01b";
+}
+.wi-wmo4680-73:before {
+  content: "\f01b";
+}
+.wi-wmo4680-74:before {
+  content: "\f076";
+}
+.wi-wmo4680-75:before {
+  content: "\f076";
+}
+.wi-wmo4680-76:before {
+  content: "\f076";
+}
+.wi-wmo4680-77:before {
+  content: "\f01b";
+}
+.wi-wmo4680-78:before {
+  content: "\f076";
+}
+.wi-wmo4680-80:before {
+  content: "\f019";
+}
+.wi-wmo4680-81:before {
+  content: "\f01c";
+}
+.wi-wmo4680-82:before {
+  content: "\f019";
+}
+.wi-wmo4680-83:before {
+  content: "\f019";
+}
+.wi-wmo4680-84:before {
+  content: "\f01d";
+}
+.wi-wmo4680-85:before {
+  content: "\f017";
+}
+.wi-wmo4680-86:before {
+  content: "\f017";
+}
+.wi-wmo4680-87:before {
+  content: "\f017";
+}
+.wi-wmo4680-89:before {
+  content: "\f015";
+}
+.wi-wmo4680-90:before {
+  content: "\f016";
+}
+.wi-wmo4680-91:before {
+  content: "\f01d";
+}
+.wi-wmo4680-92:before {
+  content: "\f01e";
+}
+.wi-wmo4680-93:before {
+  content: "\f01e";
+}
+.wi-wmo4680-94:before {
+  content: "\f016";
+}
+.wi-wmo4680-95:before {
+  content: "\f01e";
+}
+.wi-wmo4680-96:before {
+  content: "\f01e";
+}
+.wi-wmo4680-99:before {
+  content: "\f056";
+}
+.wi-owm-200:before {
+  content: "\f01e";
+}
+.wi-owm-201:before {
+  content: "\f01e";
+}
+.wi-owm-202:before {
+  content: "\f01e";
+}
+.wi-owm-210:before {
+  content: "\f016";
+}
+.wi-owm-211:before {
+  content: "\f016";
+}
+.wi-owm-212:before {
+  content: "\f016";
+}
+.wi-owm-221:before {
+  content: "\f016";
+}
+.wi-owm-230:before {
+  content: "\f01e";
+}
+.wi-owm-231:before {
+  content: "\f01e";
+}
+.wi-owm-232:before {
+  content: "\f01e";
+}
+.wi-owm-300:before {
+  content: "\f01c";
+}
+.wi-owm-301:before {
+  content: "\f01c";
+}
+.wi-owm-302:before {
+  content: "\f019";
+}
+.wi-owm-310:before {
+  content: "\f017";
+}
+.wi-owm-311:before {
+  content: "\f019";
+}
+.wi-owm-312:before {
+  content: "\f019";
+}
+.wi-owm-313:before {
+  content: "\f01a";
+}
+.wi-owm-314:before {
+  content: "\f019";
+}
+.wi-owm-321:before {
+  content: "\f01c";
+}
+.wi-owm-500:before {
+  content: "\f01c";
+}
+.wi-owm-501:before {
+  content: "\f019";
+}
+.wi-owm-502:before {
+  content: "\f019";
+}
+.wi-owm-503:before {
+  content: "\f019";
+}
+.wi-owm-504:before {
+  content: "\f019";
+}
+.wi-owm-511:before {
+  content: "\f017";
+}
+.wi-owm-520:before {
+  content: "\f01a";
+}
+.wi-owm-521:before {
+  content: "\f01a";
+}
+.wi-owm-522:before {
+  content: "\f01a";
+}
+.wi-owm-531:before {
+  content: "\f01d";
+}
+.wi-owm-600:before {
+  content: "\f01b";
+}
+.wi-owm-601:before {
+  content: "\f01b";
+}
+.wi-owm-602:before {
+  content: "\f0b5";
+}
+.wi-owm-611:before {
+  content: "\f017";
+}
+.wi-owm-612:before {
+  content: "\f017";
+}
+.wi-owm-615:before {
+  content: "\f017";
+}
+.wi-owm-616:before {
+  content: "\f017";
+}
+.wi-owm-620:before {
+  content: "\f017";
+}
+.wi-owm-621:before {
+  content: "\f01b";
+}
+.wi-owm-622:before {
+  content: "\f01b";
+}
+.wi-owm-701:before {
+  content: "\f01a";
+}
+.wi-owm-711:before {
+  content: "\f062";
+}
+.wi-owm-721:before {
+  content: "\f0b6";
+}
+.wi-owm-731:before {
+  content: "\f063";
+}
+.wi-owm-741:before {
+  content: "\f014";
+}
+.wi-owm-761:before {
+  content: "\f063";
+}
+.wi-owm-762:before {
+  content: "\f063";
+}
+.wi-owm-771:before {
+  content: "\f011";
+}
+.wi-owm-781:before {
+  content: "\f056";
+}
+.wi-owm-800:before {
+  content: "\f00d";
+}
+.wi-owm-801:before {
+  content: "\f011";
+}
+.wi-owm-802:before {
+  content: "\f011";
+}
+.wi-owm-803:before {
+  content: "\f012";
+}
+.wi-owm-804:before {
+  content: "\f013";
+}
+.wi-owm-900:before {
+  content: "\f056";
+}
+.wi-owm-901:before {
+  content: "\f01d";
+}
+.wi-owm-902:before {
+  content: "\f073";
+}
+.wi-owm-903:before {
+  content: "\f076";
+}
+.wi-owm-904:before {
+  content: "\f072";
+}
+.wi-owm-905:before {
+  content: "\f021";
+}
+.wi-owm-906:before {
+  content: "\f015";
+}
+.wi-owm-957:before {
+  content: "\f050";
+}
+.wi-owm-day-200:before {
+  content: "\f010";
+}
+.wi-owm-day-201:before {
+  content: "\f010";
+}
+.wi-owm-day-202:before {
+  content: "\f010";
+}
+.wi-owm-day-210:before {
+  content: "\f005";
+}
+.wi-owm-day-211:before {
+  content: "\f005";
+}
+.wi-owm-day-212:before {
+  content: "\f005";
+}
+.wi-owm-day-221:before {
+  content: "\f005";
+}
+.wi-owm-day-230:before {
+  content: "\f010";
+}
+.wi-owm-day-231:before {
+  content: "\f010";
+}
+.wi-owm-day-232:before {
+  content: "\f010";
+}
+.wi-owm-day-300:before {
+  content: "\f00b";
+}
+.wi-owm-day-301:before {
+  content: "\f00b";
+}
+.wi-owm-day-302:before {
+  content: "\f008";
+}
+.wi-owm-day-310:before {
+  content: "\f008";
+}
+.wi-owm-day-311:before {
+  content: "\f008";
+}
+.wi-owm-day-312:before {
+  content: "\f008";
+}
+.wi-owm-day-313:before {
+  content: "\f008";
+}
+.wi-owm-day-314:before {
+  content: "\f008";
+}
+.wi-owm-day-321:before {
+  content: "\f00b";
+}
+.wi-owm-day-500:before {
+  content: "\f00b";
+}
+.wi-owm-day-501:before {
+  content: "\f008";
+}
+.wi-owm-day-502:before {
+  content: "\f008";
+}
+.wi-owm-day-503:before {
+  content: "\f008";
+}
+.wi-owm-day-504:before {
+  content: "\f008";
+}
+.wi-owm-day-511:before {
+  content: "\f006";
+}
+.wi-owm-day-520:before {
+  content: "\f009";
+}
+.wi-owm-day-521:before {
+  content: "\f009";
+}
+.wi-owm-day-522:before {
+  content: "\f009";
+}
+.wi-owm-day-531:before {
+  content: "\f00e";
+}
+.wi-owm-day-600:before {
+  content: "\f00a";
+}
+.wi-owm-day-601:before {
+  content: "\f0b2";
+}
+.wi-owm-day-602:before {
+  content: "\f00a";
+}
+.wi-owm-day-611:before {
+  content: "\f006";
+}
+.wi-owm-day-612:before {
+  content: "\f006";
+}
+.wi-owm-day-615:before {
+  content: "\f006";
+}
+.wi-owm-day-616:before {
+  content: "\f006";
+}
+.wi-owm-day-620:before {
+  content: "\f006";
+}
+.wi-owm-day-621:before {
+  content: "\f00a";
+}
+.wi-owm-day-622:before {
+  content: "\f00a";
+}
+.wi-owm-day-701:before {
+  content: "\f009";
+}
+.wi-owm-day-711:before {
+  content: "\f062";
+}
+.wi-owm-day-721:before {
+  content: "\f0b6";
+}
+.wi-owm-day-731:before {
+  content: "\f063";
+}
+.wi-owm-day-741:before {
+  content: "\f003";
+}
+.wi-owm-day-761:before {
+  content: "\f063";
+}
+.wi-owm-day-762:before {
+  content: "\f063";
+}
+.wi-owm-day-781:before {
+  content: "\f056";
+}
+.wi-owm-day-800:before {
+  content: "\f00d";
+}
+.wi-owm-day-801:before {
+  content: "\f000";
+}
+.wi-owm-day-802:before {
+  content: "\f000";
+}
+.wi-owm-day-803:before {
+  content: "\f000";
+}
+.wi-owm-day-804:before {
+  content: "\f00c";
+}
+.wi-owm-day-900:before {
+  content: "\f056";
+}
+.wi-owm-day-902:before {
+  content: "\f073";
+}
+.wi-owm-day-903:before {
+  content: "\f076";
+}
+.wi-owm-day-904:before {
+  content: "\f072";
+}
+.wi-owm-day-906:before {
+  content: "\f004";
+}
+.wi-owm-day-957:before {
+  content: "\f050";
+}
+.wi-owm-night-200:before {
+  content: "\f02d";
+}
+.wi-owm-night-201:before {
+  content: "\f02d";
+}
+.wi-owm-night-202:before {
+  content: "\f02d";
+}
+.wi-owm-night-210:before {
+  content: "\f025";
+}
+.wi-owm-night-211:before {
+  content: "\f025";
+}
+.wi-owm-night-212:before {
+  content: "\f025";
+}
+.wi-owm-night-221:before {
+  content: "\f025";
+}
+.wi-owm-night-230:before {
+  content: "\f02d";
+}
+.wi-owm-night-231:before {
+  content: "\f02d";
+}
+.wi-owm-night-232:before {
+  content: "\f02d";
+}
+.wi-owm-night-300:before {
+  content: "\f02b";
+}
+.wi-owm-night-301:before {
+  content: "\f02b";
+}
+.wi-owm-night-302:before {
+  content: "\f028";
+}
+.wi-owm-night-310:before {
+  content: "\f028";
+}
+.wi-owm-night-311:before {
+  content: "\f028";
+}
+.wi-owm-night-312:before {
+  content: "\f028";
+}
+.wi-owm-night-313:before {
+  content: "\f028";
+}
+.wi-owm-night-314:before {
+  content: "\f028";
+}
+.wi-owm-night-321:before {
+  content: "\f02b";
+}
+.wi-owm-night-500:before {
+  content: "\f02b";
+}
+.wi-owm-night-501:before {
+  content: "\f028";
+}
+.wi-owm-night-502:before {
+  content: "\f028";
+}
+.wi-owm-night-503:before {
+  content: "\f028";
+}
+.wi-owm-night-504:before {
+  content: "\f028";
+}
+.wi-owm-night-511:before {
+  content: "\f026";
+}
+.wi-owm-night-520:before {
+  content: "\f029";
+}
+.wi-owm-night-521:before {
+  content: "\f029";
+}
+.wi-owm-night-522:before {
+  content: "\f029";
+}
+.wi-owm-night-531:before {
+  content: "\f02c";
+}
+.wi-owm-night-600:before {
+  content: "\f02a";
+}
+.wi-owm-night-601:before {
+  content: "\f0b4";
+}
+.wi-owm-night-602:before {
+  content: "\f02a";
+}
+.wi-owm-night-611:before {
+  content: "\f026";
+}
+.wi-owm-night-612:before {
+  content: "\f026";
+}
+.wi-owm-night-615:before {
+  content: "\f026";
+}
+.wi-owm-night-616:before {
+  content: "\f026";
+}
+.wi-owm-night-620:before {
+  content: "\f026";
+}
+.wi-owm-night-621:before {
+  content: "\f02a";
+}
+.wi-owm-night-622:before {
+  content: "\f02a";
+}
+.wi-owm-night-701:before {
+  content: "\f029";
+}
+.wi-owm-night-711:before {
+  content: "\f062";
+}
+.wi-owm-night-721:before {
+  content: "\f0b6";
+}
+.wi-owm-night-731:before {
+  content: "\f063";
+}
+.wi-owm-night-741:before {
+  content: "\f04a";
+}
+.wi-owm-night-761:before {
+  content: "\f063";
+}
+.wi-owm-night-762:before {
+  content: "\f063";
+}
+.wi-owm-night-781:before {
+  content: "\f056";
+}
+.wi-owm-night-800:before {
+  content: "\f02e";
+}
+.wi-owm-night-801:before {
+  content: "\f022";
+}
+.wi-owm-night-802:before {
+  content: "\f022";
+}
+.wi-owm-night-803:before {
+  content: "\f022";
+}
+.wi-owm-night-804:before {
+  content: "\f086";
+}
+.wi-owm-night-900:before {
+  content: "\f056";
+}
+.wi-owm-night-902:before {
+  content: "\f073";
+}
+.wi-owm-night-903:before {
+  content: "\f076";
+}
+.wi-owm-night-904:before {
+  content: "\f072";
+}
+.wi-owm-night-906:before {
+  content: "\f024";
+}
+.wi-owm-night-957:before {
+  content: "\f050";
+}
+.wi-wu-chanceflurries:before {
+  content: "\f064";
+}
+.wi-wu-chancerain:before {
+  content: "\f019";
+}
+.wi-wu-chancesleat:before {
+  content: "\f0b5";
+}
+.wi-wu-chancesnow:before {
+  content: "\f01b";
+}
+.wi-wu-chancetstorms:before {
+  content: "\f01e";
+}
+.wi-wu-clear:before {
+  content: "\f00d";
+}
+.wi-wu-cloudy:before {
+  content: "\f002";
+}
+.wi-wu-flurries:before {
+  content: "\f064";
+}
+.wi-wu-hazy:before {
+  content: "\f0b6";
+}
+.wi-wu-mostlycloudy:before {
+  content: "\f002";
+}
+.wi-wu-mostlysunny:before {
+  content: "\f00d";
+}
+.wi-wu-partlycloudy:before {
+  content: "\f002";
+}
+.wi-wu-partlysunny:before {
+  content: "\f00d";
+}
+.wi-wu-rain:before {
+  content: "\f01a";
+}
+.wi-wu-sleat:before {
+  content: "\f0b5";
+}
+.wi-wu-snow:before {
+  content: "\f01b";
+}
+.wi-wu-sunny:before {
+  content: "\f00d";
+}
+.wi-wu-tstorms:before {
+  content: "\f01e";
+}
+.wi-wu-unknown:before {
+  content: "\f00d";
+}

Разница между файлами не показана из-за своего большого размера
+ 40 - 0
src/main/vue/static/weather_icons/css/weather-icons.min.css


BIN
src/main/vue/static/weather_icons/font/weathericons-regular-webfont.eot


Разница между файлами не показана из-за своего большого размера
+ 31 - 0
src/main/vue/static/weather_icons/font/weathericons-regular-webfont.svg


BIN
src/main/vue/static/weather_icons/font/weathericons-regular-webfont.ttf


BIN
src/main/vue/static/weather_icons/font/weathericons-regular-webfont.woff


BIN
src/main/vue/static/weather_icons/font/weathericons-regular-webfont.woff2


+ 13 - 0
src/main/vue/static/weather_icons/less/icon-classes/classes-beaufort.less

@@ -0,0 +1,13 @@
+.wi-wind-beaufort-0:before {content: @wind-beaufort-0;}
+.wi-wind-beaufort-1:before {content: @wind-beaufort-1;}
+.wi-wind-beaufort-2:before {content: @wind-beaufort-2;}
+.wi-wind-beaufort-3:before {content: @wind-beaufort-3;}
+.wi-wind-beaufort-4:before {content: @wind-beaufort-4;}
+.wi-wind-beaufort-5:before {content: @wind-beaufort-5;}
+.wi-wind-beaufort-6:before {content: @wind-beaufort-6;}
+.wi-wind-beaufort-7:before {content: @wind-beaufort-7;}
+.wi-wind-beaufort-8:before {content: @wind-beaufort-8;}
+.wi-wind-beaufort-9:before {content: @wind-beaufort-9;}
+.wi-wind-beaufort-10:before {content: @wind-beaufort-10;}
+.wi-wind-beaufort-11:before {content: @wind-beaufort-11;}
+.wi-wind-beaufort-12:before {content: @wind-beaufort-12;}

+ 26 - 0
src/main/vue/static/weather_icons/less/icon-classes/classes-day.less

@@ -0,0 +1,26 @@
+.wi-day-sunny:before {content: @day-sunny;}
+.wi-day-cloudy:before {content: @day-cloudy;}
+.wi-day-cloudy-gusts:before {content: @day-cloudy-gusts;}
+.wi-day-cloudy-windy:before {content: @day-cloudy-windy;}
+.wi-day-fog:before {content: @day-fog;}
+.wi-day-hail:before {content: @day-hail;}
+.wi-day-haze:before {content: @day-haze;}
+.wi-day-lightning:before {content: @day-lightning;}
+.wi-day-rain:before {content: @day-rain;}
+.wi-day-rain-mix:before {content: @day-rain-mix;}
+.wi-day-rain-wind:before {content: @day-rain-wind;}
+.wi-day-showers:before {content: @day-showers;}
+.wi-day-sleet:before {content: @day-sleet;}
+.wi-day-sleet-storm:before {content: @day-sleet-storm;}
+.wi-day-snow:before {content: @day-snow;}
+.wi-day-snow-thunderstorm:before {content: @day-snow-thunderstorm;}
+.wi-day-snow-wind:before {content: @day-snow-wind;}
+.wi-day-sprinkle:before {content: @day-sprinkle;}
+.wi-day-storm-showers:before {content: @day-storm-showers;}
+.wi-day-sunny-overcast:before {content: @day-sunny-overcast;}
+.wi-day-thunderstorm:before {content: @day-thunderstorm;}
+.wi-day-windy:before {content: @day-windy;}
+.wi-solar-eclipse:before {content: @solar-eclipse;}
+.wi-hot:before {content: @hot;}
+.wi-day-cloudy-high:before {content: @day-cloudy-high;}
+.wi-day-light-wind:before {content: @day-light-wind;}

+ 8 - 0
src/main/vue/static/weather_icons/less/icon-classes/classes-direction.less

@@ -0,0 +1,8 @@
+.wi-direction-up:before {content: @direction-up;}
+.wi-direction-up-right:before {content: @direction-up-right;}
+.wi-direction-right:before {content: @direction-right;}
+.wi-direction-down-right:before {content: @direction-down-right;}
+.wi-direction-down:before {content: @direction-down;}
+.wi-direction-down-left:before {content: @direction-down-left;}
+.wi-direction-left:before {content: @direction-left;}
+.wi-direction-up-left:before {content: @direction-up-left;}

+ 23 - 0
src/main/vue/static/weather_icons/less/icon-classes/classes-misc.less

@@ -0,0 +1,23 @@
+.wi-alien:before {content: @alien;}
+.wi-celsius:before {content: @celsius;}
+.wi-fahrenheit:before {content: @fahrenheit;}
+.wi-degrees:before {content: @degrees;}
+.wi-thermometer:before {content: @thermometer;}
+.wi-thermometer-exterior:before {content: @thermometer-exterior;}
+.wi-thermometer-internal:before {content: @thermometer-internal;}
+.wi-cloud-down:before {content: @cloud-down;}
+.wi-cloud-up:before {content: @cloud-up;}
+.wi-cloud-refresh:before {content: @cloud-refresh;}
+.wi-horizon:before {content: @horizon;}
+.wi-horizon-alt:before {content: @horizon-alt;}
+.wi-sunrise:before {content: @sunrise;}
+.wi-sunset:before {content: @sunset;}
+.wi-moonrise:before {content: @moonrise;}
+.wi-moonset:before {content: @moonset;}
+.wi-refresh:before {content: @refresh;}
+.wi-refresh-alt:before {content: @refresh-alt;}
+.wi-umbrella:before {content: @umbrella;}
+.wi-barometer:before {content: @barometer;}
+.wi-humidity:before {content: @humidity;}
+.wi-na:before {content: @na;}
+.wi-train:before {content: @train;}

+ 28 - 0
src/main/vue/static/weather_icons/less/icon-classes/classes-moon-aliases.less

@@ -0,0 +1,28 @@
+.wi-moon-0:before {content: @moon-new;}
+.wi-moon-1:before {content: @moon-waxing-crescent-1;}
+.wi-moon-2:before {content: @moon-waxing-crescent-2;}
+.wi-moon-3:before {content: @moon-waxing-crescent-3;}
+.wi-moon-4:before {content: @moon-waxing-crescent-4;}
+.wi-moon-5:before {content: @moon-waxing-crescent-5;}
+.wi-moon-6:before {content: @moon-waxing-crescent-6;}
+.wi-moon-7:before {content: @moon-first-quarter;}
+.wi-moon-8:before {content: @moon-waxing-gibbous-1;}
+.wi-moon-9:before {content: @moon-waxing-gibbous-2;}
+.wi-moon-10:before {content: @moon-waxing-gibbous-3;}
+.wi-moon-11:before {content: @moon-waxing-gibbous-4;}
+.wi-moon-12:before {content: @moon-waxing-gibbous-5;}
+.wi-moon-13:before {content: @moon-waxing-gibbous-6;}
+.wi-moon-14:before {content: @moon-full;}
+.wi-moon-15:before {content: @moon-waning-gibbous-1;}
+.wi-moon-16:before {content: @moon-waning-gibbous-2;}
+.wi-moon-17:before {content: @moon-waning-gibbous-3;}
+.wi-moon-18:before {content: @moon-waning-gibbous-4;}
+.wi-moon-19:before {content: @moon-waning-gibbous-5;}
+.wi-moon-20:before {content: @moon-waning-gibbous-6;}
+.wi-moon-21:before {content: @moon-third-quarter;}
+.wi-moon-22:before {content: @moon-waning-crescent-1;}
+.wi-moon-23:before {content: @moon-waning-crescent-2;}
+.wi-moon-24:before {content: @moon-waning-crescent-3;}
+.wi-moon-25:before {content: @moon-waning-crescent-4;}
+.wi-moon-26:before {content: @moon-waning-crescent-5;}
+.wi-moon-27:before {content: @moon-waning-crescent-6;}

+ 56 - 0
src/main/vue/static/weather_icons/less/icon-classes/classes-moon.less

@@ -0,0 +1,56 @@
+.wi-moon-new:before {content: @moon-new;}
+.wi-moon-waxing-crescent-1:before {content: @moon-waxing-crescent-1;}
+.wi-moon-waxing-crescent-2:before {content: @moon-waxing-crescent-2;}
+.wi-moon-waxing-crescent-3:before {content: @moon-waxing-crescent-3;}
+.wi-moon-waxing-crescent-4:before {content: @moon-waxing-crescent-4;}
+.wi-moon-waxing-crescent-5:before {content: @moon-waxing-crescent-5;}
+.wi-moon-waxing-crescent-6:before {content: @moon-waxing-crescent-6;}
+.wi-moon-first-quarter:before {content: @moon-first-quarter;}
+.wi-moon-waxing-gibbous-1:before {content: @moon-waxing-gibbous-1;}
+.wi-moon-waxing-gibbous-2:before {content: @moon-waxing-gibbous-2;}
+.wi-moon-waxing-gibbous-3:before {content: @moon-waxing-gibbous-3;}
+.wi-moon-waxing-gibbous-4:before {content: @moon-waxing-gibbous-4;}
+.wi-moon-waxing-gibbous-5:before {content: @moon-waxing-gibbous-5;}
+.wi-moon-waxing-gibbous-6:before {content: @moon-waxing-gibbous-6;}
+.wi-moon-full:before {content: @moon-full;}
+.wi-moon-waning-gibbous-1:before {content: @moon-waning-gibbous-1;}
+.wi-moon-waning-gibbous-2:before {content: @moon-waning-gibbous-2;}
+.wi-moon-waning-gibbous-3:before {content: @moon-waning-gibbous-3;}
+.wi-moon-waning-gibbous-4:before {content: @moon-waning-gibbous-4;}
+.wi-moon-waning-gibbous-5:before {content: @moon-waning-gibbous-5;}
+.wi-moon-waning-gibbous-6:before {content: @moon-waning-gibbous-6;}
+.wi-moon-third-quarter:before {content: @moon-third-quarter;}
+.wi-moon-waning-crescent-1:before {content: @moon-waning-crescent-1;}
+.wi-moon-waning-crescent-2:before {content: @moon-waning-crescent-2;}
+.wi-moon-waning-crescent-3:before {content: @moon-waning-crescent-3;}
+.wi-moon-waning-crescent-4:before {content: @moon-waning-crescent-4;}
+.wi-moon-waning-crescent-5:before {content: @moon-waning-crescent-5;}
+.wi-moon-waning-crescent-6:before {content: @moon-waning-crescent-6;}
+.wi-moon-alt-new:before {content: @moon-alt-new;}
+.wi-moon-alt-waxing-crescent-1:before {content: @moon-alt-waxing-crescent-1;}
+.wi-moon-alt-waxing-crescent-2:before {content: @moon-alt-waxing-crescent-2;}
+.wi-moon-alt-waxing-crescent-3:before {content: @moon-alt-waxing-crescent-3;}
+.wi-moon-alt-waxing-crescent-4:before {content: @moon-alt-waxing-crescent-4;}
+.wi-moon-alt-waxing-crescent-5:before {content: @moon-alt-waxing-crescent-5;}
+.wi-moon-alt-waxing-crescent-6:before {content: @moon-alt-waxing-crescent-6;}
+.wi-moon-alt-first-quarter:before {content: @moon-alt-first-quarter;}
+.wi-moon-alt-waxing-gibbous-1:before {content: @moon-alt-waxing-gibbous-1;}
+.wi-moon-alt-waxing-gibbous-2:before {content: @moon-alt-waxing-gibbous-2;}
+.wi-moon-alt-waxing-gibbous-3:before {content: @moon-alt-waxing-gibbous-3;}
+.wi-moon-alt-waxing-gibbous-4:before {content: @moon-alt-waxing-gibbous-4;}
+.wi-moon-alt-waxing-gibbous-5:before {content: @moon-alt-waxing-gibbous-5;}
+.wi-moon-alt-waxing-gibbous-6:before {content: @moon-alt-waxing-gibbous-6;}
+.wi-moon-alt-full:before {content: @moon-alt-full;}
+.wi-moon-alt-waning-gibbous-1:before {content: @moon-alt-waning-gibbous-1;}
+.wi-moon-alt-waning-gibbous-2:before {content: @moon-alt-waning-gibbous-2;}
+.wi-moon-alt-waning-gibbous-3:before {content: @moon-alt-waning-gibbous-3;}
+.wi-moon-alt-waning-gibbous-4:before {content: @moon-alt-waning-gibbous-4;}
+.wi-moon-alt-waning-gibbous-5:before {content: @moon-alt-waning-gibbous-5;}
+.wi-moon-alt-waning-gibbous-6:before {content: @moon-alt-waning-gibbous-6;}
+.wi-moon-alt-third-quarter:before {content: @moon-alt-third-quarter;}
+.wi-moon-alt-waning-crescent-1:before {content: @moon-alt-waning-crescent-1;}
+.wi-moon-alt-waning-crescent-2:before {content: @moon-alt-waning-crescent-2;}
+.wi-moon-alt-waning-crescent-3:before {content: @moon-alt-waning-crescent-3;}
+.wi-moon-alt-waning-crescent-4:before {content: @moon-alt-waning-crescent-4;}
+.wi-moon-alt-waning-crescent-5:before {content: @moon-alt-waning-crescent-5;}
+.wi-moon-alt-waning-crescent-6:before {content: @moon-alt-waning-crescent-6;}

+ 40 - 0
src/main/vue/static/weather_icons/less/icon-classes/classes-neutral.less

@@ -0,0 +1,40 @@
+.wi-cloud:before {content: @cloud;}
+.wi-cloudy:before {content: @cloudy;}
+.wi-cloudy-gusts:before {content: @cloudy-gusts;}
+.wi-cloudy-windy:before {content: @cloudy-windy;}
+.wi-fog:before {content: @fog;}
+.wi-hail:before {content: @hail;}
+.wi-rain:before {content: @rain;}
+.wi-rain-mix:before {content: @rain-mix;}
+.wi-rain-wind:before {content: @rain-wind;}
+.wi-showers:before {content: @showers;}
+.wi-sleet:before {content: @sleet;}
+.wi-snow:before {content: @snow;}
+.wi-sprinkle:before {content: @sprinkle;}
+.wi-storm-showers:before {content: @storm-showers;}
+.wi-thunderstorm:before {content: @thunderstorm;}
+.wi-snow-wind:before {content: @snow-wind;}
+.wi-snow:before {content: @snow;}
+.wi-smog:before {content: @smog;}
+.wi-smoke:before {content: @smoke;}
+.wi-lightning:before {content: @lightning;}
+.wi-raindrops:before {content: @raindrops;}
+.wi-raindrop:before {content: @raindrop;}
+.wi-dust:before {content: @dust;}
+.wi-snowflake-cold:before {content: @snowflake-cold;}
+.wi-windy:before {content: @windy;}
+.wi-strong-wind:before {content: @strong-wind;}
+.wi-sandstorm:before {content: @sandstorm;}
+.wi-earthquake:before {content: @earthquake;}
+.wi-fire:before {content: @fire;}
+.wi-flood:before {content: @flood;}
+.wi-meteor:before {content: @meteor;}
+.wi-tsunami:before {content: @tsunami;}
+.wi-volcano:before {content: @volcano;}
+.wi-hurricane:before {content: @hurricane;}
+.wi-tornado:before {content: @tornado;}
+.wi-small-craft-advisory:before {content: @small-craft-advisory;}
+.wi-gale-warning:before {content: @gale-warning;}
+.wi-storm-warning:before {content: @storm-warning;}
+.wi-hurricane-warning:before {content: @hurricane-warning;}
+.wi-wind-direction:before {content: @wind-direction;}

+ 44 - 0
src/main/vue/static/weather_icons/less/icon-classes/classes-night.less

@@ -0,0 +1,44 @@
+.wi-night-clear:before {content: @night-clear;}
+.wi-night-alt-cloudy:before {content: @night-alt-cloudy;}
+.wi-night-alt-cloudy-gusts:before {content: @night-alt-cloudy-gusts;}
+.wi-night-alt-cloudy-windy:before {content: @night-alt-cloudy-windy;}
+.wi-night-alt-hail:before {content: @night-alt-hail;}
+.wi-night-alt-lightning:before {content: @night-alt-lightning;}
+.wi-night-alt-rain:before {content: @night-alt-rain;}
+.wi-night-alt-rain-mix:before {content: @night-alt-rain-mix;}
+.wi-night-alt-rain-wind:before {content: @night-alt-rain-wind;}
+.wi-night-alt-showers:before {content: @night-alt-showers;}
+.wi-night-alt-sleet:before {content: @night-alt-sleet;}
+.wi-night-alt-sleet-storm:before {content: @night-alt-sleet-storm;}
+.wi-night-alt-snow:before {content: @night-alt-snow;}
+.wi-night-alt-snow-thunderstorm:before {content: @night-alt-snow-thunderstorm;}
+.wi-night-alt-snow-wind:before {content: @night-alt-snow-wind;}
+.wi-night-alt-sprinkle:before {content: @night-alt-sprinkle;}
+.wi-night-alt-storm-showers:before {content: @night-alt-storm-showers;}
+.wi-night-alt-thunderstorm:before {content: @night-alt-thunderstorm;}
+.wi-night-cloudy:before {content: @night-cloudy;}
+.wi-night-cloudy-gusts:before {content: @night-cloudy-gusts;}
+.wi-night-cloudy-windy:before {content: @night-cloudy-windy;}
+.wi-night-fog:before {content: @night-fog;}
+.wi-night-hail:before {content: @night-hail;}
+.wi-night-lightning:before {content: @night-lightning;}
+.wi-night-partly-cloudy:before {content: @night-partly-cloudy;}
+.wi-night-rain:before {content: @night-rain;}
+.wi-night-rain-mix:before {content: @night-rain-mix;}
+.wi-night-rain-wind:before {content: @night-rain-wind;}
+.wi-night-showers:before {content: @night-showers;}
+.wi-night-sleet:before {content: @night-sleet;}
+.wi-night-sleet-storm:before {content: @night-sleet-storm;}
+.wi-night-snow:before {content: @night-snow;}
+.wi-night-snow-thunderstorm:before {content: @night-snow-thunderstorm;}
+.wi-night-snow-wind:before {content: @night-snow-wind;}
+.wi-night-sprinkle:before {content: @night-sprinkle;}
+.wi-night-storm-showers:before {content: @night-storm-showers;}
+.wi-night-thunderstorm:before {content: @night-thunderstorm;}
+.wi-lunar-eclipse:before {content: @lunar-eclipse;}
+.wi-stars:before {content: @stars;}
+.wi-storm-showers:before {content: @storm-showers;}
+.wi-thunderstorm:before {content: @thunderstorm;}
+.wi-night-alt-cloudy-high:before {content: @night-alt-cloudy-high;}
+.wi-night-cloudy-high:before {content: @night-cloudy-high;}
+.wi-night-alt-partly-cloudy:before {content: @night-alt-partly-cloudy;}

+ 12 - 0
src/main/vue/static/weather_icons/less/icon-classes/classes-time.less

@@ -0,0 +1,12 @@
+.wi-time-1:before {content: @time-1;}
+.wi-time-2:before {content: @time-2;}
+.wi-time-3:before {content: @time-3;}
+.wi-time-4:before {content: @time-4;}
+.wi-time-5:before {content: @time-5;}
+.wi-time-6:before {content: @time-6;}
+.wi-time-7:before {content: @time-7;}
+.wi-time-8:before {content: @time-8;}
+.wi-time-9:before {content: @time-9;}
+.wi-time-10:before {content: @time-10;}
+.wi-time-11:before {content: @time-11;}
+.wi-time-12:before {content: @time-12;}

+ 96 - 0
src/main/vue/static/weather_icons/less/icon-classes/classes-wind-aliases.less

@@ -0,0 +1,96 @@
+.wi-towards-n    {
+  .wi-wind.towards-0-deg;
+}
+.wi-towards-nne   {
+  .wi-wind.towards-23-deg;
+}
+.wi-towards-ne    {
+  .wi-wind.towards-45-deg;
+}
+.wi-towards-ene   {
+  .wi-wind.towards-68-deg;
+}
+.wi-towards-e    {
+  .wi-wind.towards-90-deg;
+}
+.wi-towards-ese   {
+  .wi-wind.towards-113-deg;
+}
+.wi-towards-se    {
+  .wi-wind.towards-135-deg;
+}
+.wi-towards-sse   {
+  .wi-wind.towards-158-deg;
+}
+.wi-towards-s    {
+  .wi-wind.towards-180-deg;
+}
+.wi-towards-ssw   {
+  .wi-wind.towards-203-deg;
+}
+.wi-towards-sw    {
+  .wi-wind.towards-225-deg;
+}
+.wi-towards-wsw   {
+  .wi-wind.towards-248-deg;
+}
+.wi-towards-w    {
+  .wi-wind.towards-270-deg;
+}
+.wi-towards-wnw   {
+  .wi-wind.towards-293-deg;
+}
+.wi-towards-nw    {
+  .wi-wind.towards-313-deg;
+}
+.wi-towards-nnw   {
+  .wi-wind.towards-336-deg;
+}
+.wi-from-n    {
+  .wi-wind.from-0-deg;
+}
+.wi-from-nne   {
+  .wi-wind.from-23-deg;
+}
+.wi-from-ne    {
+  .wi-wind.from-45-deg;
+}
+.wi-from-ene   {
+  .wi-wind.from-68-deg;
+}
+.wi-from-e    {
+  .wi-wind.from-90-deg;
+}
+.wi-from-ese   {
+  .wi-wind.from-113-deg;
+}
+.wi-from-se    {
+  .wi-wind.from-135-deg;
+}
+.wi-from-sse   {
+  .wi-wind.from-158-deg;
+}
+.wi-from-s    {
+  .wi-wind.from-180-deg;
+}
+.wi-from-ssw   {
+  .wi-wind.from-203-deg;
+}
+.wi-from-sw    {
+  .wi-wind.from-225-deg;
+}
+.wi-from-wsw   {
+  .wi-wind.from-248-deg;
+}
+.wi-from-w    {
+  .wi-wind.from-270-deg;
+}
+.wi-from-wnw   {
+  .wi-wind.from-293-deg;
+}
+.wi-from-nw    {
+  .wi-wind.from-313-deg;
+}
+.wi-from-nnw   {
+  .wi-wind.from-336-deg;
+}

+ 724 - 0
src/main/vue/static/weather_icons/less/icon-classes/classes-wind-degrees.less

@@ -0,0 +1,724 @@
+.@{wi-css-prefix}-wind { 
+  &.towards-0-deg {.wind-rotate(0deg);}
+  &.towards-1-deg {.wind-rotate(1deg);}
+  &.towards-2-deg {.wind-rotate(2deg);}
+  &.towards-3-deg {.wind-rotate(3deg);}
+  &.towards-4-deg {.wind-rotate(4deg);}
+  &.towards-5-deg {.wind-rotate(5deg);}
+  &.towards-6-deg {.wind-rotate(6deg);}
+  &.towards-7-deg {.wind-rotate(7deg);}
+  &.towards-8-deg {.wind-rotate(8deg);}
+  &.towards-9-deg {.wind-rotate(9deg);}
+  &.towards-10-deg {.wind-rotate(10deg);}
+  &.towards-11-deg {.wind-rotate(11deg);}
+  &.towards-12-deg {.wind-rotate(12deg);}
+  &.towards-13-deg {.wind-rotate(13deg);}
+  &.towards-14-deg {.wind-rotate(14deg);}
+  &.towards-15-deg {.wind-rotate(15deg);}
+  &.towards-16-deg {.wind-rotate(16deg);}
+  &.towards-17-deg {.wind-rotate(17deg);}
+  &.towards-18-deg {.wind-rotate(18deg);}
+  &.towards-19-deg {.wind-rotate(19deg);}
+  &.towards-20-deg {.wind-rotate(20deg);}
+  &.towards-21-deg {.wind-rotate(21deg);}
+  &.towards-22-deg {.wind-rotate(22deg);}
+  &.towards-23-deg {.wind-rotate(23deg);}
+  &.towards-24-deg {.wind-rotate(24deg);}
+  &.towards-25-deg {.wind-rotate(25deg);}
+  &.towards-26-deg {.wind-rotate(26deg);}
+  &.towards-27-deg {.wind-rotate(27deg);}
+  &.towards-28-deg {.wind-rotate(28deg);}
+  &.towards-29-deg {.wind-rotate(29deg);}
+  &.towards-30-deg {.wind-rotate(30deg);}
+  &.towards-31-deg {.wind-rotate(31deg);}
+  &.towards-32-deg {.wind-rotate(32deg);}
+  &.towards-33-deg {.wind-rotate(33deg);}
+  &.towards-34-deg {.wind-rotate(34deg);}
+  &.towards-35-deg {.wind-rotate(35deg);}
+  &.towards-36-deg {.wind-rotate(36deg);}
+  &.towards-37-deg {.wind-rotate(37deg);}
+  &.towards-38-deg {.wind-rotate(38deg);}
+  &.towards-39-deg {.wind-rotate(39deg);}
+  &.towards-40-deg {.wind-rotate(40deg);}
+  &.towards-41-deg {.wind-rotate(41deg);}
+  &.towards-42-deg {.wind-rotate(42deg);}
+  &.towards-43-deg {.wind-rotate(43deg);}
+  &.towards-44-deg {.wind-rotate(44deg);}
+  &.towards-45-deg {.wind-rotate(45deg);}
+  &.towards-46-deg {.wind-rotate(46deg);}
+  &.towards-47-deg {.wind-rotate(47deg);}
+  &.towards-48-deg {.wind-rotate(48deg);}
+  &.towards-49-deg {.wind-rotate(49deg);}
+  &.towards-50-deg {.wind-rotate(50deg);}
+  &.towards-51-deg {.wind-rotate(51deg);}
+  &.towards-52-deg {.wind-rotate(52deg);}
+  &.towards-53-deg {.wind-rotate(53deg);}
+  &.towards-54-deg {.wind-rotate(54deg);}
+  &.towards-55-deg {.wind-rotate(55deg);}
+  &.towards-56-deg {.wind-rotate(56deg);}
+  &.towards-57-deg {.wind-rotate(57deg);}
+  &.towards-58-deg {.wind-rotate(58deg);}
+  &.towards-59-deg {.wind-rotate(59deg);}
+  &.towards-60-deg {.wind-rotate(60deg);}
+  &.towards-61-deg {.wind-rotate(61deg);}
+  &.towards-62-deg {.wind-rotate(62deg);}
+  &.towards-63-deg {.wind-rotate(63deg);}
+  &.towards-64-deg {.wind-rotate(64deg);}
+  &.towards-65-deg {.wind-rotate(65deg);}
+  &.towards-66-deg {.wind-rotate(66deg);}
+  &.towards-67-deg {.wind-rotate(67deg);}
+  &.towards-68-deg {.wind-rotate(68deg);}
+  &.towards-69-deg {.wind-rotate(69deg);}
+  &.towards-70-deg {.wind-rotate(70deg);}
+  &.towards-71-deg {.wind-rotate(71deg);}
+  &.towards-72-deg {.wind-rotate(72deg);}
+  &.towards-73-deg {.wind-rotate(73deg);}
+  &.towards-74-deg {.wind-rotate(74deg);}
+  &.towards-75-deg {.wind-rotate(75deg);}
+  &.towards-76-deg {.wind-rotate(76deg);}
+  &.towards-77-deg {.wind-rotate(77deg);}
+  &.towards-78-deg {.wind-rotate(78deg);}
+  &.towards-79-deg {.wind-rotate(79deg);}
+  &.towards-80-deg {.wind-rotate(80deg);}
+  &.towards-81-deg {.wind-rotate(81deg);}
+  &.towards-82-deg {.wind-rotate(82deg);}
+  &.towards-83-deg {.wind-rotate(83deg);}
+  &.towards-84-deg {.wind-rotate(84deg);}
+  &.towards-85-deg {.wind-rotate(85deg);}
+  &.towards-86-deg {.wind-rotate(86deg);}
+  &.towards-87-deg {.wind-rotate(87deg);}
+  &.towards-88-deg {.wind-rotate(88deg);}
+  &.towards-89-deg {.wind-rotate(89deg);}
+  &.towards-90-deg {.wind-rotate(90deg);}
+  &.towards-91-deg {.wind-rotate(91deg);}
+  &.towards-92-deg {.wind-rotate(92deg);}
+  &.towards-93-deg {.wind-rotate(93deg);}
+  &.towards-94-deg {.wind-rotate(94deg);}
+  &.towards-95-deg {.wind-rotate(95deg);}
+  &.towards-96-deg {.wind-rotate(96deg);}
+  &.towards-97-deg {.wind-rotate(97deg);}
+  &.towards-98-deg {.wind-rotate(98deg);}
+  &.towards-99-deg {.wind-rotate(99deg);}
+  &.towards-100-deg {.wind-rotate(100deg);}
+  &.towards-101-deg {.wind-rotate(101deg);}
+  &.towards-102-deg {.wind-rotate(102deg);}
+  &.towards-103-deg {.wind-rotate(103deg);}
+  &.towards-104-deg {.wind-rotate(104deg);}
+  &.towards-105-deg {.wind-rotate(105deg);}
+  &.towards-106-deg {.wind-rotate(106deg);}
+  &.towards-107-deg {.wind-rotate(107deg);}
+  &.towards-108-deg {.wind-rotate(108deg);}
+  &.towards-109-deg {.wind-rotate(109deg);}
+  &.towards-110-deg {.wind-rotate(110deg);}
+  &.towards-111-deg {.wind-rotate(111deg);}
+  &.towards-112-deg {.wind-rotate(112deg);}
+  &.towards-113-deg {.wind-rotate(113deg);}
+  &.towards-114-deg {.wind-rotate(114deg);}
+  &.towards-115-deg {.wind-rotate(115deg);}
+  &.towards-116-deg {.wind-rotate(116deg);}
+  &.towards-117-deg {.wind-rotate(117deg);}
+  &.towards-118-deg {.wind-rotate(118deg);}
+  &.towards-119-deg {.wind-rotate(119deg);}
+  &.towards-120-deg {.wind-rotate(120deg);}
+  &.towards-121-deg {.wind-rotate(121deg);}
+  &.towards-122-deg {.wind-rotate(122deg);}
+  &.towards-123-deg {.wind-rotate(123deg);}
+  &.towards-124-deg {.wind-rotate(124deg);}
+  &.towards-125-deg {.wind-rotate(125deg);}
+  &.towards-126-deg {.wind-rotate(126deg);}
+  &.towards-127-deg {.wind-rotate(127deg);}
+  &.towards-128-deg {.wind-rotate(128deg);}
+  &.towards-129-deg {.wind-rotate(129deg);}
+  &.towards-130-deg {.wind-rotate(130deg);}
+  &.towards-131-deg {.wind-rotate(131deg);}
+  &.towards-132-deg {.wind-rotate(132deg);}
+  &.towards-133-deg {.wind-rotate(133deg);}
+  &.towards-134-deg {.wind-rotate(134deg);}
+  &.towards-135-deg {.wind-rotate(135deg);}
+  &.towards-136-deg {.wind-rotate(136deg);}
+  &.towards-137-deg {.wind-rotate(137deg);}
+  &.towards-138-deg {.wind-rotate(138deg);}
+  &.towards-139-deg {.wind-rotate(139deg);}
+  &.towards-140-deg {.wind-rotate(140deg);}
+  &.towards-141-deg {.wind-rotate(141deg);}
+  &.towards-142-deg {.wind-rotate(142deg);}
+  &.towards-143-deg {.wind-rotate(143deg);}
+  &.towards-144-deg {.wind-rotate(144deg);}
+  &.towards-145-deg {.wind-rotate(145deg);}
+  &.towards-146-deg {.wind-rotate(146deg);}
+  &.towards-147-deg {.wind-rotate(147deg);}
+  &.towards-148-deg {.wind-rotate(148deg);}
+  &.towards-149-deg {.wind-rotate(149deg);}
+  &.towards-150-deg {.wind-rotate(150deg);}
+  &.towards-151-deg {.wind-rotate(151deg);}
+  &.towards-152-deg {.wind-rotate(152deg);}
+  &.towards-153-deg {.wind-rotate(153deg);}
+  &.towards-154-deg {.wind-rotate(154deg);}
+  &.towards-155-deg {.wind-rotate(155deg);}
+  &.towards-156-deg {.wind-rotate(156deg);}
+  &.towards-157-deg {.wind-rotate(157deg);}
+  &.towards-158-deg {.wind-rotate(158deg);}
+  &.towards-159-deg {.wind-rotate(159deg);}
+  &.towards-160-deg {.wind-rotate(160deg);}
+  &.towards-161-deg {.wind-rotate(161deg);}
+  &.towards-162-deg {.wind-rotate(162deg);}
+  &.towards-163-deg {.wind-rotate(163deg);}
+  &.towards-164-deg {.wind-rotate(164deg);}
+  &.towards-165-deg {.wind-rotate(165deg);}
+  &.towards-166-deg {.wind-rotate(166deg);}
+  &.towards-167-deg {.wind-rotate(167deg);}
+  &.towards-168-deg {.wind-rotate(168deg);}
+  &.towards-169-deg {.wind-rotate(169deg);}
+  &.towards-170-deg {.wind-rotate(170deg);}
+  &.towards-171-deg {.wind-rotate(171deg);}
+  &.towards-172-deg {.wind-rotate(172deg);}
+  &.towards-173-deg {.wind-rotate(173deg);}
+  &.towards-174-deg {.wind-rotate(174deg);}
+  &.towards-175-deg {.wind-rotate(175deg);}
+  &.towards-176-deg {.wind-rotate(176deg);}
+  &.towards-177-deg {.wind-rotate(177deg);}
+  &.towards-178-deg {.wind-rotate(178deg);}
+  &.towards-179-deg {.wind-rotate(179deg);}
+  &.towards-180-deg {.wind-rotate(180deg);}
+  &.towards-181-deg {.wind-rotate(181deg);}
+  &.towards-182-deg {.wind-rotate(182deg);}
+  &.towards-183-deg {.wind-rotate(183deg);}
+  &.towards-184-deg {.wind-rotate(184deg);}
+  &.towards-185-deg {.wind-rotate(185deg);}
+  &.towards-186-deg {.wind-rotate(186deg);}
+  &.towards-187-deg {.wind-rotate(187deg);}
+  &.towards-188-deg {.wind-rotate(188deg);}
+  &.towards-189-deg {.wind-rotate(189deg);}
+  &.towards-190-deg {.wind-rotate(190deg);}
+  &.towards-191-deg {.wind-rotate(191deg);}
+  &.towards-192-deg {.wind-rotate(192deg);}
+  &.towards-193-deg {.wind-rotate(193deg);}
+  &.towards-194-deg {.wind-rotate(194deg);}
+  &.towards-195-deg {.wind-rotate(195deg);}
+  &.towards-196-deg {.wind-rotate(196deg);}
+  &.towards-197-deg {.wind-rotate(197deg);}
+  &.towards-198-deg {.wind-rotate(198deg);}
+  &.towards-199-deg {.wind-rotate(199deg);}
+  &.towards-200-deg {.wind-rotate(200deg);}
+  &.towards-201-deg {.wind-rotate(201deg);}
+  &.towards-202-deg {.wind-rotate(202deg);}
+  &.towards-203-deg {.wind-rotate(203deg);}
+  &.towards-204-deg {.wind-rotate(204deg);}
+  &.towards-205-deg {.wind-rotate(205deg);}
+  &.towards-206-deg {.wind-rotate(206deg);}
+  &.towards-207-deg {.wind-rotate(207deg);}
+  &.towards-208-deg {.wind-rotate(208deg);}
+  &.towards-209-deg {.wind-rotate(209deg);}
+  &.towards-210-deg {.wind-rotate(210deg);}
+  &.towards-211-deg {.wind-rotate(211deg);}
+  &.towards-212-deg {.wind-rotate(212deg);}
+  &.towards-213-deg {.wind-rotate(213deg);}
+  &.towards-214-deg {.wind-rotate(214deg);}
+  &.towards-215-deg {.wind-rotate(215deg);}
+  &.towards-216-deg {.wind-rotate(216deg);}
+  &.towards-217-deg {.wind-rotate(217deg);}
+  &.towards-218-deg {.wind-rotate(218deg);}
+  &.towards-219-deg {.wind-rotate(219deg);}
+  &.towards-220-deg {.wind-rotate(220deg);}
+  &.towards-221-deg {.wind-rotate(221deg);}
+  &.towards-222-deg {.wind-rotate(222deg);}
+  &.towards-223-deg {.wind-rotate(223deg);}
+  &.towards-224-deg {.wind-rotate(224deg);}
+  &.towards-225-deg {.wind-rotate(225deg);}
+  &.towards-226-deg {.wind-rotate(226deg);}
+  &.towards-227-deg {.wind-rotate(227deg);}
+  &.towards-228-deg {.wind-rotate(228deg);}
+  &.towards-229-deg {.wind-rotate(229deg);}
+  &.towards-230-deg {.wind-rotate(230deg);}
+  &.towards-231-deg {.wind-rotate(231deg);}
+  &.towards-232-deg {.wind-rotate(232deg);}
+  &.towards-233-deg {.wind-rotate(233deg);}
+  &.towards-234-deg {.wind-rotate(234deg);}
+  &.towards-235-deg {.wind-rotate(235deg);}
+  &.towards-236-deg {.wind-rotate(236deg);}
+  &.towards-237-deg {.wind-rotate(237deg);}
+  &.towards-238-deg {.wind-rotate(238deg);}
+  &.towards-239-deg {.wind-rotate(239deg);}
+  &.towards-240-deg {.wind-rotate(240deg);}
+  &.towards-241-deg {.wind-rotate(241deg);}
+  &.towards-242-deg {.wind-rotate(242deg);}
+  &.towards-243-deg {.wind-rotate(243deg);}
+  &.towards-244-deg {.wind-rotate(244deg);}
+  &.towards-245-deg {.wind-rotate(245deg);}
+  &.towards-246-deg {.wind-rotate(246deg);}
+  &.towards-247-deg {.wind-rotate(247deg);}
+  &.towards-248-deg {.wind-rotate(248deg);}
+  &.towards-249-deg {.wind-rotate(249deg);}
+  &.towards-250-deg {.wind-rotate(250deg);}
+  &.towards-251-deg {.wind-rotate(251deg);}
+  &.towards-252-deg {.wind-rotate(252deg);}
+  &.towards-253-deg {.wind-rotate(253deg);}
+  &.towards-254-deg {.wind-rotate(254deg);}
+  &.towards-255-deg {.wind-rotate(255deg);}
+  &.towards-256-deg {.wind-rotate(256deg);}
+  &.towards-257-deg {.wind-rotate(257deg);}
+  &.towards-258-deg {.wind-rotate(258deg);}
+  &.towards-259-deg {.wind-rotate(259deg);}
+  &.towards-260-deg {.wind-rotate(260deg);}
+  &.towards-261-deg {.wind-rotate(261deg);}
+  &.towards-262-deg {.wind-rotate(262deg);}
+  &.towards-263-deg {.wind-rotate(263deg);}
+  &.towards-264-deg {.wind-rotate(264deg);}
+  &.towards-265-deg {.wind-rotate(265deg);}
+  &.towards-266-deg {.wind-rotate(266deg);}
+  &.towards-267-deg {.wind-rotate(267deg);}
+  &.towards-268-deg {.wind-rotate(268deg);}
+  &.towards-269-deg {.wind-rotate(269deg);}
+  &.towards-270-deg {.wind-rotate(270deg);}
+  &.towards-271-deg {.wind-rotate(271deg);}
+  &.towards-272-deg {.wind-rotate(272deg);}
+  &.towards-273-deg {.wind-rotate(273deg);}
+  &.towards-274-deg {.wind-rotate(274deg);}
+  &.towards-275-deg {.wind-rotate(275deg);}
+  &.towards-276-deg {.wind-rotate(276deg);}
+  &.towards-277-deg {.wind-rotate(277deg);}
+  &.towards-278-deg {.wind-rotate(278deg);}
+  &.towards-279-deg {.wind-rotate(279deg);}
+  &.towards-280-deg {.wind-rotate(280deg);}
+  &.towards-281-deg {.wind-rotate(281deg);}
+  &.towards-282-deg {.wind-rotate(282deg);}
+  &.towards-283-deg {.wind-rotate(283deg);}
+  &.towards-284-deg {.wind-rotate(284deg);}
+  &.towards-285-deg {.wind-rotate(285deg);}
+  &.towards-286-deg {.wind-rotate(286deg);}
+  &.towards-287-deg {.wind-rotate(287deg);}
+  &.towards-288-deg {.wind-rotate(288deg);}
+  &.towards-289-deg {.wind-rotate(289deg);}
+  &.towards-290-deg {.wind-rotate(290deg);}
+  &.towards-291-deg {.wind-rotate(291deg);}
+  &.towards-292-deg {.wind-rotate(292deg);}
+  &.towards-293-deg {.wind-rotate(293deg);}
+  &.towards-294-deg {.wind-rotate(294deg);}
+  &.towards-295-deg {.wind-rotate(295deg);}
+  &.towards-296-deg {.wind-rotate(296deg);}
+  &.towards-297-deg {.wind-rotate(297deg);}
+  &.towards-298-deg {.wind-rotate(298deg);}
+  &.towards-299-deg {.wind-rotate(299deg);}
+  &.towards-300-deg {.wind-rotate(300deg);}
+  &.towards-301-deg {.wind-rotate(301deg);}
+  &.towards-302-deg {.wind-rotate(302deg);}
+  &.towards-303-deg {.wind-rotate(303deg);}
+  &.towards-304-deg {.wind-rotate(304deg);}
+  &.towards-305-deg {.wind-rotate(305deg);}
+  &.towards-306-deg {.wind-rotate(306deg);}
+  &.towards-307-deg {.wind-rotate(307deg);}
+  &.towards-308-deg {.wind-rotate(308deg);}
+  &.towards-309-deg {.wind-rotate(309deg);}
+  &.towards-310-deg {.wind-rotate(310deg);}
+  &.towards-311-deg {.wind-rotate(311deg);}
+  &.towards-312-deg {.wind-rotate(312deg);}
+  &.towards-313-deg {.wind-rotate(313deg);}
+  &.towards-314-deg {.wind-rotate(314deg);}
+  &.towards-315-deg {.wind-rotate(315deg);}
+  &.towards-316-deg {.wind-rotate(316deg);}
+  &.towards-317-deg {.wind-rotate(317deg);}
+  &.towards-318-deg {.wind-rotate(318deg);}
+  &.towards-319-deg {.wind-rotate(319deg);}
+  &.towards-320-deg {.wind-rotate(320deg);}
+  &.towards-321-deg {.wind-rotate(321deg);}
+  &.towards-322-deg {.wind-rotate(322deg);}
+  &.towards-323-deg {.wind-rotate(323deg);}
+  &.towards-324-deg {.wind-rotate(324deg);}
+  &.towards-325-deg {.wind-rotate(325deg);}
+  &.towards-326-deg {.wind-rotate(326deg);}
+  &.towards-327-deg {.wind-rotate(327deg);}
+  &.towards-328-deg {.wind-rotate(328deg);}
+  &.towards-329-deg {.wind-rotate(329deg);}
+  &.towards-330-deg {.wind-rotate(330deg);}
+  &.towards-331-deg {.wind-rotate(331deg);}
+  &.towards-332-deg {.wind-rotate(332deg);}
+  &.towards-333-deg {.wind-rotate(333deg);}
+  &.towards-334-deg {.wind-rotate(334deg);}
+  &.towards-335-deg {.wind-rotate(335deg);}
+  &.towards-336-deg {.wind-rotate(336deg);}
+  &.towards-337-deg {.wind-rotate(337deg);}
+  &.towards-338-deg {.wind-rotate(338deg);}
+  &.towards-339-deg {.wind-rotate(339deg);}
+  &.towards-340-deg {.wind-rotate(340deg);}
+  &.towards-341-deg {.wind-rotate(341deg);}
+  &.towards-342-deg {.wind-rotate(342deg);}
+  &.towards-343-deg {.wind-rotate(343deg);}
+  &.towards-344-deg {.wind-rotate(344deg);}
+  &.towards-345-deg {.wind-rotate(345deg);}
+  &.towards-346-deg {.wind-rotate(346deg);}
+  &.towards-347-deg {.wind-rotate(347deg);}
+  &.towards-348-deg {.wind-rotate(348deg);}
+  &.towards-349-deg {.wind-rotate(349deg);}
+  &.towards-350-deg {.wind-rotate(350deg);}
+  &.towards-351-deg {.wind-rotate(351deg);}
+  &.towards-352-deg {.wind-rotate(352deg);}
+  &.towards-353-deg {.wind-rotate(353deg);}
+  &.towards-354-deg {.wind-rotate(354deg);}
+  &.towards-355-deg {.wind-rotate(355deg);}
+  &.towards-356-deg {.wind-rotate(356deg);}
+  &.towards-357-deg {.wind-rotate(357deg);}
+  &.towards-358-deg {.wind-rotate(358deg);}
+  &.towards-359-deg {.wind-rotate(359deg);}
+  &.towards-360-deg {.wind-rotate(0deg);}
+  &.from-0-deg {.wind-rotate(180deg);}
+  &.from-1-deg {.wind-rotate(181deg);}
+  &.from-2-deg {.wind-rotate(182deg);}
+  &.from-3-deg {.wind-rotate(183deg);}
+  &.from-4-deg {.wind-rotate(184deg);}
+  &.from-5-deg {.wind-rotate(185deg);}
+  &.from-6-deg {.wind-rotate(186deg);}
+  &.from-7-deg {.wind-rotate(187deg);}
+  &.from-8-deg {.wind-rotate(188deg);}
+  &.from-9-deg {.wind-rotate(189deg);}
+  &.from-10-deg {.wind-rotate(190deg);}
+  &.from-11-deg {.wind-rotate(191deg);}
+  &.from-12-deg {.wind-rotate(192deg);}
+  &.from-13-deg {.wind-rotate(193deg);}
+  &.from-14-deg {.wind-rotate(194deg);}
+  &.from-15-deg {.wind-rotate(195deg);}
+  &.from-16-deg {.wind-rotate(196deg);}
+  &.from-17-deg {.wind-rotate(197deg);}
+  &.from-18-deg {.wind-rotate(198deg);}
+  &.from-19-deg {.wind-rotate(199deg);}
+  &.from-20-deg {.wind-rotate(200deg);}
+  &.from-21-deg {.wind-rotate(201deg);}
+  &.from-22-deg {.wind-rotate(202deg);}
+  &.from-23-deg {.wind-rotate(203deg);}
+  &.from-24-deg {.wind-rotate(204deg);}
+  &.from-25-deg {.wind-rotate(205deg);}
+  &.from-26-deg {.wind-rotate(206deg);}
+  &.from-27-deg {.wind-rotate(207deg);}
+  &.from-28-deg {.wind-rotate(208deg);}
+  &.from-29-deg {.wind-rotate(209deg);}
+  &.from-30-deg {.wind-rotate(210deg);}
+  &.from-31-deg {.wind-rotate(211deg);}
+  &.from-32-deg {.wind-rotate(212deg);}
+  &.from-33-deg {.wind-rotate(213deg);}
+  &.from-34-deg {.wind-rotate(214deg);}
+  &.from-35-deg {.wind-rotate(215deg);}
+  &.from-36-deg {.wind-rotate(216deg);}
+  &.from-37-deg {.wind-rotate(217deg);}
+  &.from-38-deg {.wind-rotate(218deg);}
+  &.from-39-deg {.wind-rotate(219deg);}
+  &.from-40-deg {.wind-rotate(220deg);}
+  &.from-41-deg {.wind-rotate(221deg);}
+  &.from-42-deg {.wind-rotate(222deg);}
+  &.from-43-deg {.wind-rotate(223deg);}
+  &.from-44-deg {.wind-rotate(224deg);}
+  &.from-45-deg {.wind-rotate(225deg);}
+  &.from-46-deg {.wind-rotate(226deg);}
+  &.from-47-deg {.wind-rotate(227deg);}
+  &.from-48-deg {.wind-rotate(228deg);}
+  &.from-49-deg {.wind-rotate(229deg);}
+  &.from-50-deg {.wind-rotate(230deg);}
+  &.from-51-deg {.wind-rotate(231deg);}
+  &.from-52-deg {.wind-rotate(232deg);}
+  &.from-53-deg {.wind-rotate(233deg);}
+  &.from-54-deg {.wind-rotate(234deg);}
+  &.from-55-deg {.wind-rotate(235deg);}
+  &.from-56-deg {.wind-rotate(236deg);}
+  &.from-57-deg {.wind-rotate(237deg);}
+  &.from-58-deg {.wind-rotate(238deg);}
+  &.from-59-deg {.wind-rotate(239deg);}
+  &.from-60-deg {.wind-rotate(240deg);}
+  &.from-61-deg {.wind-rotate(241deg);}
+  &.from-62-deg {.wind-rotate(242deg);}
+  &.from-63-deg {.wind-rotate(243deg);}
+  &.from-64-deg {.wind-rotate(244deg);}
+  &.from-65-deg {.wind-rotate(245deg);}
+  &.from-66-deg {.wind-rotate(246deg);}
+  &.from-67-deg {.wind-rotate(247deg);}
+  &.from-68-deg {.wind-rotate(248deg);}
+  &.from-69-deg {.wind-rotate(249deg);}
+  &.from-70-deg {.wind-rotate(250deg);}
+  &.from-71-deg {.wind-rotate(251deg);}
+  &.from-72-deg {.wind-rotate(252deg);}
+  &.from-73-deg {.wind-rotate(253deg);}
+  &.from-74-deg {.wind-rotate(254deg);}
+  &.from-75-deg {.wind-rotate(255deg);}
+  &.from-76-deg {.wind-rotate(256deg);}
+  &.from-77-deg {.wind-rotate(257deg);}
+  &.from-78-deg {.wind-rotate(258deg);}
+  &.from-79-deg {.wind-rotate(259deg);}
+  &.from-80-deg {.wind-rotate(260deg);}
+  &.from-81-deg {.wind-rotate(261deg);}
+  &.from-82-deg {.wind-rotate(262deg);}
+  &.from-83-deg {.wind-rotate(263deg);}
+  &.from-84-deg {.wind-rotate(264deg);}
+  &.from-85-deg {.wind-rotate(265deg);}
+  &.from-86-deg {.wind-rotate(266deg);}
+  &.from-87-deg {.wind-rotate(267deg);}
+  &.from-88-deg {.wind-rotate(268deg);}
+  &.from-89-deg {.wind-rotate(269deg);}
+  &.from-90-deg {.wind-rotate(270deg);}
+  &.from-91-deg {.wind-rotate(271deg);}
+  &.from-92-deg {.wind-rotate(272deg);}
+  &.from-93-deg {.wind-rotate(273deg);}
+  &.from-94-deg {.wind-rotate(274deg);}
+  &.from-95-deg {.wind-rotate(275deg);}
+  &.from-96-deg {.wind-rotate(276deg);}
+  &.from-97-deg {.wind-rotate(277deg);}
+  &.from-98-deg {.wind-rotate(278deg);}
+  &.from-99-deg {.wind-rotate(279deg);}
+  &.from-100-deg {.wind-rotate(280deg);}
+  &.from-101-deg {.wind-rotate(281deg);}
+  &.from-102-deg {.wind-rotate(282deg);}
+  &.from-103-deg {.wind-rotate(283deg);}
+  &.from-104-deg {.wind-rotate(284deg);}
+  &.from-105-deg {.wind-rotate(285deg);}
+  &.from-106-deg {.wind-rotate(286deg);}
+  &.from-107-deg {.wind-rotate(287deg);}
+  &.from-108-deg {.wind-rotate(288deg);}
+  &.from-109-deg {.wind-rotate(289deg);}
+  &.from-110-deg {.wind-rotate(290deg);}
+  &.from-111-deg {.wind-rotate(291deg);}
+  &.from-112-deg {.wind-rotate(292deg);}
+  &.from-113-deg {.wind-rotate(293deg);}
+  &.from-114-deg {.wind-rotate(294deg);}
+  &.from-115-deg {.wind-rotate(295deg);}
+  &.from-116-deg {.wind-rotate(296deg);}
+  &.from-117-deg {.wind-rotate(297deg);}
+  &.from-118-deg {.wind-rotate(298deg);}
+  &.from-119-deg {.wind-rotate(299deg);}
+  &.from-120-deg {.wind-rotate(300deg);}
+  &.from-121-deg {.wind-rotate(301deg);}
+  &.from-122-deg {.wind-rotate(302deg);}
+  &.from-123-deg {.wind-rotate(303deg);}
+  &.from-124-deg {.wind-rotate(304deg);}
+  &.from-125-deg {.wind-rotate(305deg);}
+  &.from-126-deg {.wind-rotate(306deg);}
+  &.from-127-deg {.wind-rotate(307deg);}
+  &.from-128-deg {.wind-rotate(308deg);}
+  &.from-129-deg {.wind-rotate(309deg);}
+  &.from-130-deg {.wind-rotate(310deg);}
+  &.from-131-deg {.wind-rotate(311deg);}
+  &.from-132-deg {.wind-rotate(312deg);}
+  &.from-133-deg {.wind-rotate(313deg);}
+  &.from-134-deg {.wind-rotate(314deg);}
+  &.from-135-deg {.wind-rotate(315deg);}
+  &.from-136-deg {.wind-rotate(316deg);}
+  &.from-137-deg {.wind-rotate(317deg);}
+  &.from-138-deg {.wind-rotate(318deg);}
+  &.from-139-deg {.wind-rotate(319deg);}
+  &.from-140-deg {.wind-rotate(320deg);}
+  &.from-141-deg {.wind-rotate(321deg);}
+  &.from-142-deg {.wind-rotate(322deg);}
+  &.from-143-deg {.wind-rotate(323deg);}
+  &.from-144-deg {.wind-rotate(324deg);}
+  &.from-145-deg {.wind-rotate(325deg);}
+  &.from-146-deg {.wind-rotate(326deg);}
+  &.from-147-deg {.wind-rotate(327deg);}
+  &.from-148-deg {.wind-rotate(328deg);}
+  &.from-149-deg {.wind-rotate(329deg);}
+  &.from-150-deg {.wind-rotate(330deg);}
+  &.from-151-deg {.wind-rotate(331deg);}
+  &.from-152-deg {.wind-rotate(332deg);}
+  &.from-153-deg {.wind-rotate(333deg);}
+  &.from-154-deg {.wind-rotate(334deg);}
+  &.from-155-deg {.wind-rotate(335deg);}
+  &.from-156-deg {.wind-rotate(336deg);}
+  &.from-157-deg {.wind-rotate(337deg);}
+  &.from-158-deg {.wind-rotate(338deg);}
+  &.from-159-deg {.wind-rotate(339deg);}
+  &.from-160-deg {.wind-rotate(340deg);}
+  &.from-161-deg {.wind-rotate(341deg);}
+  &.from-162-deg {.wind-rotate(342deg);}
+  &.from-163-deg {.wind-rotate(343deg);}
+  &.from-164-deg {.wind-rotate(344deg);}
+  &.from-165-deg {.wind-rotate(345deg);}
+  &.from-166-deg {.wind-rotate(346deg);}
+  &.from-167-deg {.wind-rotate(347deg);}
+  &.from-168-deg {.wind-rotate(348deg);}
+  &.from-169-deg {.wind-rotate(349deg);}
+  &.from-170-deg {.wind-rotate(350deg);}
+  &.from-171-deg {.wind-rotate(351deg);}
+  &.from-172-deg {.wind-rotate(352deg);}
+  &.from-173-deg {.wind-rotate(353deg);}
+  &.from-174-deg {.wind-rotate(354deg);}
+  &.from-175-deg {.wind-rotate(355deg);}
+  &.from-176-deg {.wind-rotate(356deg);}
+  &.from-177-deg {.wind-rotate(357deg);}
+  &.from-178-deg {.wind-rotate(358deg);}
+  &.from-179-deg {.wind-rotate(359deg);}
+  &.from-180-deg {.wind-rotate(0deg);}
+  &.from-181-deg {.wind-rotate(1deg);}
+  &.from-182-deg {.wind-rotate(2deg);}
+  &.from-183-deg {.wind-rotate(3deg);}
+  &.from-184-deg {.wind-rotate(4deg);}
+  &.from-185-deg {.wind-rotate(5deg);}
+  &.from-186-deg {.wind-rotate(6deg);}
+  &.from-187-deg {.wind-rotate(7deg);}
+  &.from-188-deg {.wind-rotate(8deg);}
+  &.from-189-deg {.wind-rotate(9deg);}
+  &.from-190-deg {.wind-rotate(10deg);}
+  &.from-191-deg {.wind-rotate(11deg);}
+  &.from-192-deg {.wind-rotate(12deg);}
+  &.from-193-deg {.wind-rotate(13deg);}
+  &.from-194-deg {.wind-rotate(14deg);}
+  &.from-195-deg {.wind-rotate(15deg);}
+  &.from-196-deg {.wind-rotate(16deg);}
+  &.from-197-deg {.wind-rotate(17deg);}
+  &.from-198-deg {.wind-rotate(18deg);}
+  &.from-199-deg {.wind-rotate(19deg);}
+  &.from-200-deg {.wind-rotate(20deg);}
+  &.from-201-deg {.wind-rotate(21deg);}
+  &.from-202-deg {.wind-rotate(22deg);}
+  &.from-203-deg {.wind-rotate(23deg);}
+  &.from-204-deg {.wind-rotate(24deg);}
+  &.from-205-deg {.wind-rotate(25deg);}
+  &.from-206-deg {.wind-rotate(26deg);}
+  &.from-207-deg {.wind-rotate(27deg);}
+  &.from-208-deg {.wind-rotate(28deg);}
+  &.from-209-deg {.wind-rotate(29deg);}
+  &.from-210-deg {.wind-rotate(30deg);}
+  &.from-211-deg {.wind-rotate(31deg);}
+  &.from-212-deg {.wind-rotate(32deg);}
+  &.from-213-deg {.wind-rotate(33deg);}
+  &.from-214-deg {.wind-rotate(34deg);}
+  &.from-215-deg {.wind-rotate(35deg);}
+  &.from-216-deg {.wind-rotate(36deg);}
+  &.from-217-deg {.wind-rotate(37deg);}
+  &.from-218-deg {.wind-rotate(38deg);}
+  &.from-219-deg {.wind-rotate(39deg);}
+  &.from-220-deg {.wind-rotate(40deg);}
+  &.from-221-deg {.wind-rotate(41deg);}
+  &.from-222-deg {.wind-rotate(42deg);}
+  &.from-223-deg {.wind-rotate(43deg);}
+  &.from-224-deg {.wind-rotate(44deg);}
+  &.from-225-deg {.wind-rotate(45deg);}
+  &.from-226-deg {.wind-rotate(46deg);}
+  &.from-227-deg {.wind-rotate(47deg);}
+  &.from-228-deg {.wind-rotate(48deg);}
+  &.from-229-deg {.wind-rotate(49deg);}
+  &.from-230-deg {.wind-rotate(50deg);}
+  &.from-231-deg {.wind-rotate(51deg);}
+  &.from-232-deg {.wind-rotate(52deg);}
+  &.from-233-deg {.wind-rotate(53deg);}
+  &.from-234-deg {.wind-rotate(54deg);}
+  &.from-235-deg {.wind-rotate(55deg);}
+  &.from-236-deg {.wind-rotate(56deg);}
+  &.from-237-deg {.wind-rotate(57deg);}
+  &.from-238-deg {.wind-rotate(58deg);}
+  &.from-239-deg {.wind-rotate(59deg);}
+  &.from-240-deg {.wind-rotate(60deg);}
+  &.from-241-deg {.wind-rotate(61deg);}
+  &.from-242-deg {.wind-rotate(62deg);}
+  &.from-243-deg {.wind-rotate(63deg);}
+  &.from-244-deg {.wind-rotate(64deg);}
+  &.from-245-deg {.wind-rotate(65deg);}
+  &.from-246-deg {.wind-rotate(66deg);}
+  &.from-247-deg {.wind-rotate(67deg);}
+  &.from-248-deg {.wind-rotate(68deg);}
+  &.from-249-deg {.wind-rotate(69deg);}
+  &.from-250-deg {.wind-rotate(70deg);}
+  &.from-251-deg {.wind-rotate(71deg);}
+  &.from-252-deg {.wind-rotate(72deg);}
+  &.from-253-deg {.wind-rotate(73deg);}
+  &.from-254-deg {.wind-rotate(74deg);}
+  &.from-255-deg {.wind-rotate(75deg);}
+  &.from-256-deg {.wind-rotate(76deg);}
+  &.from-257-deg {.wind-rotate(77deg);}
+  &.from-258-deg {.wind-rotate(78deg);}
+  &.from-259-deg {.wind-rotate(79deg);}
+  &.from-260-deg {.wind-rotate(80deg);}
+  &.from-261-deg {.wind-rotate(81deg);}
+  &.from-262-deg {.wind-rotate(82deg);}
+  &.from-263-deg {.wind-rotate(83deg);}
+  &.from-264-deg {.wind-rotate(84deg);}
+  &.from-265-deg {.wind-rotate(85deg);}
+  &.from-266-deg {.wind-rotate(86deg);}
+  &.from-267-deg {.wind-rotate(87deg);}
+  &.from-268-deg {.wind-rotate(88deg);}
+  &.from-269-deg {.wind-rotate(89deg);}
+  &.from-270-deg {.wind-rotate(90deg);}
+  &.from-271-deg {.wind-rotate(91deg);}
+  &.from-272-deg {.wind-rotate(92deg);}
+  &.from-273-deg {.wind-rotate(93deg);}
+  &.from-274-deg {.wind-rotate(94deg);}
+  &.from-275-deg {.wind-rotate(95deg);}
+  &.from-276-deg {.wind-rotate(96deg);}
+  &.from-277-deg {.wind-rotate(97deg);}
+  &.from-278-deg {.wind-rotate(98deg);}
+  &.from-279-deg {.wind-rotate(99deg);}
+  &.from-280-deg {.wind-rotate(100deg);}
+  &.from-281-deg {.wind-rotate(101deg);}
+  &.from-282-deg {.wind-rotate(102deg);}
+  &.from-283-deg {.wind-rotate(103deg);}
+  &.from-284-deg {.wind-rotate(104deg);}
+  &.from-285-deg {.wind-rotate(105deg);}
+  &.from-286-deg {.wind-rotate(106deg);}
+  &.from-287-deg {.wind-rotate(107deg);}
+  &.from-288-deg {.wind-rotate(108deg);}
+  &.from-289-deg {.wind-rotate(109deg);}
+  &.from-290-deg {.wind-rotate(110deg);}
+  &.from-291-deg {.wind-rotate(111deg);}
+  &.from-292-deg {.wind-rotate(112deg);}
+  &.from-293-deg {.wind-rotate(113deg);}
+  &.from-294-deg {.wind-rotate(114deg);}
+  &.from-295-deg {.wind-rotate(115deg);}
+  &.from-296-deg {.wind-rotate(116deg);}
+  &.from-297-deg {.wind-rotate(117deg);}
+  &.from-298-deg {.wind-rotate(118deg);}
+  &.from-299-deg {.wind-rotate(119deg);}
+  &.from-300-deg {.wind-rotate(120deg);}
+  &.from-301-deg {.wind-rotate(121deg);}
+  &.from-302-deg {.wind-rotate(122deg);}
+  &.from-303-deg {.wind-rotate(123deg);}
+  &.from-304-deg {.wind-rotate(124deg);}
+  &.from-305-deg {.wind-rotate(125deg);}
+  &.from-306-deg {.wind-rotate(126deg);}
+  &.from-307-deg {.wind-rotate(127deg);}
+  &.from-308-deg {.wind-rotate(128deg);}
+  &.from-309-deg {.wind-rotate(129deg);}
+  &.from-310-deg {.wind-rotate(130deg);}
+  &.from-311-deg {.wind-rotate(131deg);}
+  &.from-312-deg {.wind-rotate(132deg);}
+  &.from-313-deg {.wind-rotate(133deg);}
+  &.from-314-deg {.wind-rotate(134deg);}
+  &.from-315-deg {.wind-rotate(135deg);}
+  &.from-316-deg {.wind-rotate(136deg);}
+  &.from-317-deg {.wind-rotate(137deg);}
+  &.from-318-deg {.wind-rotate(138deg);}
+  &.from-319-deg {.wind-rotate(139deg);}
+  &.from-320-deg {.wind-rotate(140deg);}
+  &.from-321-deg {.wind-rotate(141deg);}
+  &.from-322-deg {.wind-rotate(142deg);}
+  &.from-323-deg {.wind-rotate(143deg);}
+  &.from-324-deg {.wind-rotate(144deg);}
+  &.from-325-deg {.wind-rotate(145deg);}
+  &.from-326-deg {.wind-rotate(146deg);}
+  &.from-327-deg {.wind-rotate(147deg);}
+  &.from-328-deg {.wind-rotate(148deg);}
+  &.from-329-deg {.wind-rotate(149deg);}
+  &.from-330-deg {.wind-rotate(150deg);}
+  &.from-331-deg {.wind-rotate(151deg);}
+  &.from-332-deg {.wind-rotate(152deg);}
+  &.from-333-deg {.wind-rotate(153deg);}
+  &.from-334-deg {.wind-rotate(154deg);}
+  &.from-335-deg {.wind-rotate(155deg);}
+  &.from-336-deg {.wind-rotate(156deg);}
+  &.from-337-deg {.wind-rotate(157deg);}
+  &.from-338-deg {.wind-rotate(158deg);}
+  &.from-339-deg {.wind-rotate(159deg);}
+  &.from-340-deg {.wind-rotate(160deg);}
+  &.from-341-deg {.wind-rotate(161deg);}
+  &.from-342-deg {.wind-rotate(162deg);}
+  &.from-343-deg {.wind-rotate(163deg);}
+  &.from-344-deg {.wind-rotate(164deg);}
+  &.from-345-deg {.wind-rotate(165deg);}
+  &.from-346-deg {.wind-rotate(166deg);}
+  &.from-347-deg {.wind-rotate(167deg);}
+  &.from-348-deg {.wind-rotate(168deg);}
+  &.from-349-deg {.wind-rotate(169deg);}
+  &.from-350-deg {.wind-rotate(170deg);}
+  &.from-351-deg {.wind-rotate(171deg);}
+  &.from-352-deg {.wind-rotate(172deg);}
+  &.from-353-deg {.wind-rotate(173deg);}
+  &.from-354-deg {.wind-rotate(174deg);}
+  &.from-355-deg {.wind-rotate(175deg);}
+  &.from-356-deg {.wind-rotate(176deg);}
+  &.from-357-deg {.wind-rotate(177deg);}
+  &.from-358-deg {.wind-rotate(178deg);}
+  &.from-359-deg {.wind-rotate(179deg);}
+  &.from-360-deg {.wind-rotate(180deg);} 
+}

+ 14 - 0
src/main/vue/static/weather_icons/less/icon-classes/classes-wind.less

@@ -0,0 +1,14 @@
+// Wind Variables 2.0
+
+@wind: "\f0b1";
+
+.@{wi-css-prefix}-wind:before { content: @wind; }
+.wind-rotate(@degrees) {
+  -webkit-transform: rotate(@degrees);
+  -moz-transform: rotate(@degrees);
+  -ms-transform: rotate(@degrees);
+  -o-transform: rotate(@degrees);
+  transform: rotate(@degrees);
+}
+
+@import "classes-wind-degrees.less";

+ 13 - 0
src/main/vue/static/weather_icons/less/icon-variables/variables-beaufort.less

@@ -0,0 +1,13 @@
+@wind-beaufort-0: "\f0b7";
+@wind-beaufort-1: "\f0b8";
+@wind-beaufort-2: "\f0b9";
+@wind-beaufort-3: "\f0ba";
+@wind-beaufort-4: "\f0bb";
+@wind-beaufort-5: "\f0bc";
+@wind-beaufort-6: "\f0bd";
+@wind-beaufort-7: "\f0be";
+@wind-beaufort-8: "\f0bf";
+@wind-beaufort-9: "\f0c0";
+@wind-beaufort-10: "\f0c1";
+@wind-beaufort-11: "\f0c2";
+@wind-beaufort-12: "\f0c3";

+ 26 - 0
src/main/vue/static/weather_icons/less/icon-variables/variables-day.less

@@ -0,0 +1,26 @@
+@day-sunny: "\f00d";
+@day-cloudy: "\f002";
+@day-cloudy-gusts: "\f000";
+@day-cloudy-windy: "\f001";
+@day-fog: "\f003";
+@day-hail: "\f004";
+@day-haze: "\f0b6";
+@day-lightning: "\f005";
+@day-rain: "\f008";
+@day-rain-mix: "\f006";
+@day-rain-wind: "\f007";
+@day-showers: "\f009";
+@day-sleet: "\f0b2";
+@day-sleet-storm: "\f068";
+@day-snow: "\f00a";
+@day-snow-thunderstorm: "\f06b";
+@day-snow-wind: "\f065";
+@day-sprinkle: "\f00b";
+@day-storm-showers: "\f00e";
+@day-sunny-overcast: "\f00c";
+@day-thunderstorm: "\f010";
+@day-windy: "\f085";
+@solar-eclipse: "\f06e";
+@hot: "\f072";
+@day-cloudy-high: "\f07d";
+@day-light-wind: "\f0c4";

+ 8 - 0
src/main/vue/static/weather_icons/less/icon-variables/variables-direction.less

@@ -0,0 +1,8 @@
+@direction-up: "\f058";
+@direction-up-right: "\f057";
+@direction-right: "\f04d";
+@direction-down-right: "\f088";
+@direction-down: "\f044";
+@direction-down-left: "\f043";
+@direction-left: "\f048";
+@direction-up-left: "\f087";

+ 23 - 0
src/main/vue/static/weather_icons/less/icon-variables/variables-misc.less

@@ -0,0 +1,23 @@
+@alien: "\f075";
+@celsius: "\f03c";
+@fahrenheit: "\f045";
+@degrees: "\f042";
+@thermometer: "\f055";
+@thermometer-exterior: "\f053";
+@thermometer-internal: "\f054";
+@cloud-down: "\f03d";
+@cloud-up: "\f040";
+@cloud-refresh: "\f03e";
+@horizon: "\f047";
+@horizon-alt: "\f046";
+@sunrise: "\f051";
+@sunset: "\f052";
+@moonrise: "\f0c9";
+@moonset: "\f0ca";
+@refresh: "\f04c";
+@refresh-alt: "\f04b";
+@umbrella: "\f084";
+@barometer: "\f079";
+@humidity: "\f07a";
+@na: "\f07b";
+@train: "\f0cb";

+ 56 - 0
src/main/vue/static/weather_icons/less/icon-variables/variables-moon.less

@@ -0,0 +1,56 @@
+@moon-new: "\f095";
+@moon-waxing-crescent-1: "\f096";
+@moon-waxing-crescent-2: "\f097";
+@moon-waxing-crescent-3: "\f098";
+@moon-waxing-crescent-4: "\f099";
+@moon-waxing-crescent-5: "\f09a";
+@moon-waxing-crescent-6: "\f09b";
+@moon-first-quarter: "\f09c";
+@moon-waxing-gibbous-1: "\f09d";
+@moon-waxing-gibbous-2: "\f09e";
+@moon-waxing-gibbous-3: "\f09f";
+@moon-waxing-gibbous-4: "\f0a0";
+@moon-waxing-gibbous-5: "\f0a1";
+@moon-waxing-gibbous-6: "\f0a2";
+@moon-full: "\f0a3";
+@moon-waning-gibbous-1: "\f0a4";
+@moon-waning-gibbous-2: "\f0a5";
+@moon-waning-gibbous-3: "\f0a6";
+@moon-waning-gibbous-4: "\f0a7";
+@moon-waning-gibbous-5: "\f0a8";
+@moon-waning-gibbous-6: "\f0a9";
+@moon-third-quarter: "\f0aa";
+@moon-waning-crescent-1: "\f0ab";
+@moon-waning-crescent-2: "\f0ac";
+@moon-waning-crescent-3: "\f0ad";
+@moon-waning-crescent-4: "\f0ae";
+@moon-waning-crescent-5: "\f0af";
+@moon-waning-crescent-6: "\f0b0";
+@moon-alt-new: "\f0eb";
+@moon-alt-waxing-crescent-1: "\f0d0";
+@moon-alt-waxing-crescent-2: "\f0d1";
+@moon-alt-waxing-crescent-3: "\f0d2";
+@moon-alt-waxing-crescent-4: "\f0d3";
+@moon-alt-waxing-crescent-5: "\f0d4";
+@moon-alt-waxing-crescent-6: "\f0d5";
+@moon-alt-first-quarter: "\f0d6";
+@moon-alt-waxing-gibbous-1: "\f0d7";
+@moon-alt-waxing-gibbous-2: "\f0d8";
+@moon-alt-waxing-gibbous-3: "\f0d9";
+@moon-alt-waxing-gibbous-4: "\f0da";
+@moon-alt-waxing-gibbous-5: "\f0db";
+@moon-alt-waxing-gibbous-6: "\f0dc";
+@moon-alt-full: "\f0dd";
+@moon-alt-waning-gibbous-1: "\f0de";
+@moon-alt-waning-gibbous-2: "\f0df";
+@moon-alt-waning-gibbous-3: "\f0e0";
+@moon-alt-waning-gibbous-4: "\f0e1";
+@moon-alt-waning-gibbous-5: "\f0e2";
+@moon-alt-waning-gibbous-6: "\f0e3";
+@moon-alt-third-quarter: "\f0e4";
+@moon-alt-waning-crescent-1: "\f0e5";
+@moon-alt-waning-crescent-2: "\f0e6";
+@moon-alt-waning-crescent-3: "\f0e7";
+@moon-alt-waning-crescent-4: "\f0e8";
+@moon-alt-waning-crescent-5: "\f0e9";
+@moon-alt-waning-crescent-6: "\f0ea";

+ 40 - 0
src/main/vue/static/weather_icons/less/icon-variables/variables-neutral.less

@@ -0,0 +1,40 @@
+@cloud: "\f041";
+@cloudy: "\f013";
+@cloudy-gusts: "\f011";
+@cloudy-windy: "\f012";
+@fog: "\f014";
+@hail: "\f015";
+@rain: "\f019";
+@rain-mix: "\f017";
+@rain-wind: "\f018";
+@showers: "\f01a";
+@sleet: "\f0b5";
+@snow: "\f01b";
+@sprinkle: "\f01c";
+@storm-showers: "\f01d";
+@thunderstorm: "\f01e";
+@snow-wind: "\f064";
+@snow: "\f01b";
+@smog: "\f074";
+@smoke: "\f062";
+@lightning: "\f016";
+@raindrops: "\f04e";
+@raindrop: "\f078";
+@dust: "\f063";
+@snowflake-cold: "\f076";
+@windy: "\f021";
+@strong-wind: "\f050";
+@sandstorm: "\f082";
+@earthquake: "\f0c6";
+@fire: "\f0c7";
+@flood: "\f07c";
+@meteor: "\f071";
+@tsunami: "\f0c5";
+@volcano: "\f0c8";
+@hurricane: "\f073";
+@tornado: "\f056";
+@small-craft-advisory: "\f0cc";
+@gale-warning: "\f0cd";
+@storm-warning: "\f0ce";
+@hurricane-warning: "\f0cf";
+@wind-direction: "\f0b1";

+ 44 - 0
src/main/vue/static/weather_icons/less/icon-variables/variables-night.less

@@ -0,0 +1,44 @@
+@night-clear: "\f02e";
+@night-alt-cloudy: "\f086";
+@night-alt-cloudy-gusts: "\f022";
+@night-alt-cloudy-windy: "\f023";
+@night-alt-hail: "\f024";
+@night-alt-lightning: "\f025";
+@night-alt-rain: "\f028";
+@night-alt-rain-mix: "\f026";
+@night-alt-rain-wind: "\f027";
+@night-alt-showers: "\f029";
+@night-alt-sleet: "\f0b4";
+@night-alt-sleet-storm: "\f06a";
+@night-alt-snow: "\f02a";
+@night-alt-snow-thunderstorm: "\f06d";
+@night-alt-snow-wind: "\f067";
+@night-alt-sprinkle: "\f02b";
+@night-alt-storm-showers: "\f02c";
+@night-alt-thunderstorm: "\f02d";
+@night-cloudy: "\f031";
+@night-cloudy-gusts: "\f02f";
+@night-cloudy-windy: "\f030";
+@night-fog: "\f04a";
+@night-hail: "\f032";
+@night-lightning: "\f033";
+@night-partly-cloudy: "\f083";
+@night-rain: "\f036";
+@night-rain-mix: "\f034";
+@night-rain-wind: "\f035";
+@night-showers: "\f037";
+@night-sleet: "\f0b3";
+@night-sleet-storm: "\f069";
+@night-snow: "\f038";
+@night-snow-thunderstorm: "\f06c";
+@night-snow-wind: "\f066";
+@night-sprinkle: "\f039";
+@night-storm-showers: "\f03a";
+@night-thunderstorm: "\f03b";
+@lunar-eclipse: "\f070";
+@stars: "\f077";
+@storm-showers: "\f01d";
+@thunderstorm: "\f01e";
+@night-alt-cloudy-high: "\f07e";
+@night-cloudy-high: "\f080";
+@night-alt-partly-cloudy: "\f081";

+ 12 - 0
src/main/vue/static/weather_icons/less/icon-variables/variables-time.less

@@ -0,0 +1,12 @@
+@time-1: "\f08a";
+@time-2: "\f08b";
+@time-3: "\f08c";
+@time-4: "\f08d";
+@time-5: "\f08e";
+@time-6: "\f08f";
+@time-7: "\f090";
+@time-8: "\f091";
+@time-9: "\f092";
+@time-10: "\f093";
+@time-11: "\f094";
+@time-12: "\f089";

+ 32 - 0
src/main/vue/static/weather_icons/less/icon-variables/variables-wind-names.less

@@ -0,0 +1,32 @@
+@n: "\f0b1";
+@nne: "\f0b1";
+@ne: "\f0b1";
+@ene: "\f0b1";
+@e: "\f0b1";
+@ese: "\f0b1";
+@se: "\f0b1";
+@sse: "\f0b1";
+@s: "\f0b1";
+@ssw: "\f0b1";
+@sw: "\f0b1";
+@wsw: "\f0b1";
+@w: "\f0b1";
+@wnw: "\f0b1";
+@nw: "\f0b1";
+@nnw: "\f0b1";
+@n: "\f0b1";
+@nne: "\f0b1";
+@ne: "\f0b1";
+@ene: "\f0b1";
+@e: "\f0b1";
+@ese: "\f0b1";
+@se: "\f0b1";
+@sse: "\f0b1";
+@s: "\f0b1";
+@ssw: "\f0b1";
+@sw: "\f0b1";
+@wsw: "\f0b1";
+@w: "\f0b1";
+@wnw: "\f0b1";
+@nw: "\f0b1";
+@nnw: "\f0b1";

+ 13 - 0
src/main/vue/static/weather_icons/less/mappings/wi-forecast-io.less

@@ -0,0 +1,13 @@
+.@{wi-css-prefix}-forecast-io-clear-day:before            { content: @day-sunny     ; }
+.@{wi-css-prefix}-forecast-io-clear-night:before          { content: @night-clear   ; }
+.@{wi-css-prefix}-forecast-io-rain:before                 { content: @rain          ; }
+.@{wi-css-prefix}-forecast-io-snow:before                 { content: @snow          ; }
+.@{wi-css-prefix}-forecast-io-sleet:before                { content: @sleet         ; }
+.@{wi-css-prefix}-forecast-io-wind:before                 { content: @strong-wind   ; }
+.@{wi-css-prefix}-forecast-io-fog:before                  { content: @fog           ; }
+.@{wi-css-prefix}-forecast-io-cloudy:before               { content: @cloudy        ; }
+.@{wi-css-prefix}-forecast-io-partly-cloudy-day:before    { content: @day-cloudy    ; }
+.@{wi-css-prefix}-forecast-io-partly-cloudy-night:before  { content: @night-cloudy  ; }
+.@{wi-css-prefix}-forecast-io-hail:before                 { content: @hail          ; }
+.@{wi-css-prefix}-forecast-io-thunderstorm:before         { content: @thunderstorm  ; }
+.@{wi-css-prefix}-forecast-io-tornado:before              { content: @tornado       ; }

+ 180 - 0
src/main/vue/static/weather_icons/less/mappings/wi-owm.less

@@ -0,0 +1,180 @@
+// Neutral
+    .@{wi-css-prefix}-owm-200:before                            { content: @thunderstorm                ; }
+    .@{wi-css-prefix}-owm-201:before                            { content: @thunderstorm                ; }
+    .@{wi-css-prefix}-owm-202:before                            { content: @thunderstorm                ; }
+    .@{wi-css-prefix}-owm-210:before                            { content: @lightning                   ; }
+    .@{wi-css-prefix}-owm-211:before                            { content: @lightning                   ; }
+    .@{wi-css-prefix}-owm-212:before                            { content: @lightning                   ; }
+    .@{wi-css-prefix}-owm-221:before                            { content: @lightning                   ; }
+    .@{wi-css-prefix}-owm-230:before                            { content: @thunderstorm                ; }
+    .@{wi-css-prefix}-owm-231:before                            { content: @thunderstorm                ; }
+    .@{wi-css-prefix}-owm-232:before                            { content: @thunderstorm                ; }
+    .@{wi-css-prefix}-owm-300:before                            { content: @sprinkle                    ; }
+    .@{wi-css-prefix}-owm-301:before                            { content: @sprinkle                    ; }
+    .@{wi-css-prefix}-owm-302:before                            { content: @rain                        ; }
+    .@{wi-css-prefix}-owm-310:before                            { content: @rain-mix                    ; }
+    .@{wi-css-prefix}-owm-311:before                            { content: @rain                        ; }
+    .@{wi-css-prefix}-owm-312:before                            { content: @rain                        ; }
+    .@{wi-css-prefix}-owm-313:before                            { content: @showers                     ; }
+    .@{wi-css-prefix}-owm-314:before                            { content: @rain                        ; }
+    .@{wi-css-prefix}-owm-321:before                            { content: @sprinkle                    ; }
+    .@{wi-css-prefix}-owm-500:before                            { content: @sprinkle                    ; }
+    .@{wi-css-prefix}-owm-501:before                            { content: @rain                        ; }
+    .@{wi-css-prefix}-owm-502:before                            { content: @rain                        ; }
+    .@{wi-css-prefix}-owm-503:before                            { content: @rain                        ; }
+    .@{wi-css-prefix}-owm-504:before                            { content: @rain                        ; }
+    .@{wi-css-prefix}-owm-511:before                            { content: @rain-mix                    ; }
+    .@{wi-css-prefix}-owm-520:before                            { content: @showers                     ; }
+    .@{wi-css-prefix}-owm-521:before                            { content: @showers                     ; }
+    .@{wi-css-prefix}-owm-522:before                            { content: @showers                     ; }
+    .@{wi-css-prefix}-owm-531:before                            { content: @storm-showers               ; }
+    .@{wi-css-prefix}-owm-600:before                            { content: @snow                        ; }
+    .@{wi-css-prefix}-owm-601:before                            { content: @snow                        ; }
+    .@{wi-css-prefix}-owm-602:before                            { content: @sleet                       ; }
+    .@{wi-css-prefix}-owm-611:before                            { content: @rain-mix                    ; }
+    .@{wi-css-prefix}-owm-612:before                            { content: @rain-mix                    ; }
+    .@{wi-css-prefix}-owm-615:before                            { content: @rain-mix                    ; }
+    .@{wi-css-prefix}-owm-616:before                            { content: @rain-mix                    ; }
+    .@{wi-css-prefix}-owm-620:before                            { content: @rain-mix                    ; }
+    .@{wi-css-prefix}-owm-621:before                            { content: @snow                        ; }
+    .@{wi-css-prefix}-owm-622:before                            { content: @snow                        ; }
+    .@{wi-css-prefix}-owm-701:before                            { content: @showers                     ; }
+    .@{wi-css-prefix}-owm-711:before                            { content: @smoke                       ; }
+    .@{wi-css-prefix}-owm-721:before                            { content: @day-haze                    ; }
+    .@{wi-css-prefix}-owm-731:before                            { content: @dust                        ; }
+    .@{wi-css-prefix}-owm-741:before                            { content: @fog                         ; }
+    .@{wi-css-prefix}-owm-761:before                            { content: @dust                        ; }
+    .@{wi-css-prefix}-owm-762:before                            { content: @dust                        ; }
+    .@{wi-css-prefix}-owm-771:before                            { content: @cloudy-gusts                ; }
+    .@{wi-css-prefix}-owm-781:before                            { content: @tornado                     ; }
+    .@{wi-css-prefix}-owm-800:before                            { content: @day-sunny                   ; }
+    .@{wi-css-prefix}-owm-801:before                            { content: @cloudy-gusts                ; }
+    .@{wi-css-prefix}-owm-802:before                            { content: @cloudy-gusts                ; }
+    .@{wi-css-prefix}-owm-803:before                            { content: @cloudy-windy                ; }
+    .@{wi-css-prefix}-owm-804:before                            { content: @cloudy                      ; }
+    .@{wi-css-prefix}-owm-900:before                            { content: @tornado                     ; }
+    .@{wi-css-prefix}-owm-901:before                            { content: @storm-showers               ; }
+    .@{wi-css-prefix}-owm-902:before                            { content: @hurricane                   ; }
+    .@{wi-css-prefix}-owm-903:before                            { content: @snowflake-cold              ; }
+    .@{wi-css-prefix}-owm-904:before                            { content: @hot                         ; }
+    .@{wi-css-prefix}-owm-905:before                            { content: @windy                       ; }
+    .@{wi-css-prefix}-owm-906:before                            { content: @hail                        ; }
+    .@{wi-css-prefix}-owm-957:before                            { content: @strong-wind                 ; }
+    //Day
+    .@{wi-css-prefix}-owm-day-200:before                        { content: @day-thunderstorm            ; }
+    .@{wi-css-prefix}-owm-day-201:before                        { content: @day-thunderstorm            ; }
+    .@{wi-css-prefix}-owm-day-202:before                        { content: @day-thunderstorm            ; }
+    .@{wi-css-prefix}-owm-day-210:before                        { content: @day-lightning               ; }
+    .@{wi-css-prefix}-owm-day-211:before                        { content: @day-lightning               ; }
+    .@{wi-css-prefix}-owm-day-212:before                        { content: @day-lightning               ; }
+    .@{wi-css-prefix}-owm-day-221:before                        { content: @day-lightning               ; }
+    .@{wi-css-prefix}-owm-day-230:before                        { content: @day-thunderstorm            ; }
+    .@{wi-css-prefix}-owm-day-231:before                        { content: @day-thunderstorm            ; }
+    .@{wi-css-prefix}-owm-day-232:before                        { content: @day-thunderstorm            ; }
+    .@{wi-css-prefix}-owm-day-300:before                        { content: @day-sprinkle                ; }
+    .@{wi-css-prefix}-owm-day-301:before                        { content: @day-sprinkle                ; }
+    .@{wi-css-prefix}-owm-day-302:before                        { content: @day-rain                    ; }
+    .@{wi-css-prefix}-owm-day-310:before                        { content: @day-rain                    ; }
+    .@{wi-css-prefix}-owm-day-311:before                        { content: @day-rain                    ; }
+    .@{wi-css-prefix}-owm-day-312:before                        { content: @day-rain                    ; }
+    .@{wi-css-prefix}-owm-day-313:before                        { content: @day-rain                    ; }
+    .@{wi-css-prefix}-owm-day-314:before                        { content: @day-rain                    ; }
+    .@{wi-css-prefix}-owm-day-321:before                        { content: @day-sprinkle                ; }
+    .@{wi-css-prefix}-owm-day-500:before                        { content: @day-sprinkle                ; }
+    .@{wi-css-prefix}-owm-day-501:before                        { content: @day-rain                    ; }
+    .@{wi-css-prefix}-owm-day-502:before                        { content: @day-rain                    ; }
+    .@{wi-css-prefix}-owm-day-503:before                        { content: @day-rain                    ; }
+    .@{wi-css-prefix}-owm-day-504:before                        { content: @day-rain                    ; }
+    .@{wi-css-prefix}-owm-day-511:before                        { content: @day-rain-mix                ; }
+    .@{wi-css-prefix}-owm-day-520:before                        { content: @day-showers                 ; }
+    .@{wi-css-prefix}-owm-day-521:before                        { content: @day-showers                 ; }
+    .@{wi-css-prefix}-owm-day-522:before                        { content: @day-showers                 ; }
+    .@{wi-css-prefix}-owm-day-531:before                        { content: @day-storm-showers           ; }
+    .@{wi-css-prefix}-owm-day-600:before                        { content: @day-snow                    ; }
+    .@{wi-css-prefix}-owm-day-601:before                        { content: @day-sleet                   ; }
+    .@{wi-css-prefix}-owm-day-602:before                        { content: @day-snow                    ; }
+    .@{wi-css-prefix}-owm-day-611:before                        { content: @day-rain-mix                ; }
+    .@{wi-css-prefix}-owm-day-612:before                        { content: @day-rain-mix                ; }
+    .@{wi-css-prefix}-owm-day-615:before                        { content: @day-rain-mix                ; }
+    .@{wi-css-prefix}-owm-day-616:before                        { content: @day-rain-mix                ; }
+    .@{wi-css-prefix}-owm-day-620:before                        { content: @day-rain-mix                ; }
+    .@{wi-css-prefix}-owm-day-621:before                        { content: @day-snow                    ; }
+    .@{wi-css-prefix}-owm-day-622:before                        { content: @day-snow                    ; }
+    .@{wi-css-prefix}-owm-day-701:before                        { content: @day-showers                 ; }
+    .@{wi-css-prefix}-owm-day-711:before                        { content: @smoke                       ; }
+    .@{wi-css-prefix}-owm-day-721:before                        { content: @day-haze                    ; }
+    .@{wi-css-prefix}-owm-day-731:before                        { content: @dust                        ; }
+    .@{wi-css-prefix}-owm-day-741:before                        { content: @day-fog                     ; }
+    .@{wi-css-prefix}-owm-day-761:before                        { content: @dust                        ; }
+    .@{wi-css-prefix}-owm-day-762:before                        { content: @dust                        ; }
+    .@{wi-css-prefix}-owm-day-781:before                        { content: @tornado                     ; }
+    .@{wi-css-prefix}-owm-day-800:before                        { content: @day-sunny                   ; }
+    .@{wi-css-prefix}-owm-day-801:before                        { content: @day-cloudy-gusts            ; }
+    .@{wi-css-prefix}-owm-day-802:before                        { content: @day-cloudy-gusts            ; }
+    .@{wi-css-prefix}-owm-day-803:before                        { content: @day-cloudy-gusts            ; }
+    .@{wi-css-prefix}-owm-day-804:before                        { content: @day-sunny-overcast          ; }
+    .@{wi-css-prefix}-owm-day-900:before                        { content: @tornado                     ; }
+    .@{wi-css-prefix}-owm-day-902:before                        { content: @hurricane                   ; }
+    .@{wi-css-prefix}-owm-day-903:before                        { content: @snowflake-cold              ; }
+    .@{wi-css-prefix}-owm-day-904:before                        { content: @hot                         ; }
+    .@{wi-css-prefix}-owm-day-906:before                        { content: @day-hail                    ; }
+    .@{wi-css-prefix}-owm-day-957:before                        { content: @strong-wind                 ; }
+    //Night
+    .@{wi-css-prefix}-owm-night-200:before                      { content: @night-alt-thunderstorm      ; }
+    .@{wi-css-prefix}-owm-night-201:before                      { content: @night-alt-thunderstorm      ; }
+    .@{wi-css-prefix}-owm-night-202:before                      { content: @night-alt-thunderstorm      ; }
+    .@{wi-css-prefix}-owm-night-210:before                      { content: @night-alt-lightning         ; }
+    .@{wi-css-prefix}-owm-night-211:before                      { content: @night-alt-lightning         ; }
+    .@{wi-css-prefix}-owm-night-212:before                      { content: @night-alt-lightning         ; }
+    .@{wi-css-prefix}-owm-night-221:before                      { content: @night-alt-lightning         ; }
+    .@{wi-css-prefix}-owm-night-230:before                      { content: @night-alt-thunderstorm      ; }
+    .@{wi-css-prefix}-owm-night-231:before                      { content: @night-alt-thunderstorm      ; }
+    .@{wi-css-prefix}-owm-night-232:before                      { content: @night-alt-thunderstorm      ; }
+    .@{wi-css-prefix}-owm-night-300:before                      { content: @night-alt-sprinkle          ; }
+    .@{wi-css-prefix}-owm-night-301:before                      { content: @night-alt-sprinkle          ; }
+    .@{wi-css-prefix}-owm-night-302:before                      { content: @night-alt-rain              ; }
+    .@{wi-css-prefix}-owm-night-310:before                      { content: @night-alt-rain              ; }
+    .@{wi-css-prefix}-owm-night-311:before                      { content: @night-alt-rain              ; }
+    .@{wi-css-prefix}-owm-night-312:before                      { content: @night-alt-rain              ; }
+    .@{wi-css-prefix}-owm-night-313:before                      { content: @night-alt-rain              ; }
+    .@{wi-css-prefix}-owm-night-314:before                      { content: @night-alt-rain              ; }
+    .@{wi-css-prefix}-owm-night-321:before                      { content: @night-alt-sprinkle          ; }
+    .@{wi-css-prefix}-owm-night-500:before                      { content: @night-alt-sprinkle          ; }
+    .@{wi-css-prefix}-owm-night-501:before                      { content: @night-alt-rain              ; }
+    .@{wi-css-prefix}-owm-night-502:before                      { content: @night-alt-rain              ; }
+    .@{wi-css-prefix}-owm-night-503:before                      { content: @night-alt-rain              ; }
+    .@{wi-css-prefix}-owm-night-504:before                      { content: @night-alt-rain              ; }
+    .@{wi-css-prefix}-owm-night-511:before                      { content: @night-alt-rain-mix          ; }
+    .@{wi-css-prefix}-owm-night-520:before                      { content: @night-alt-showers           ; }
+    .@{wi-css-prefix}-owm-night-521:before                      { content: @night-alt-showers           ; }
+    .@{wi-css-prefix}-owm-night-522:before                      { content: @night-alt-showers           ; }
+    .@{wi-css-prefix}-owm-night-531:before                      { content: @night-alt-storm-showers     ; }
+    .@{wi-css-prefix}-owm-night-600:before                      { content: @night-alt-snow              ; }
+    .@{wi-css-prefix}-owm-night-601:before                      { content: @night-alt-sleet             ; }
+    .@{wi-css-prefix}-owm-night-602:before                      { content: @night-alt-snow              ; }
+    .@{wi-css-prefix}-owm-night-611:before                      { content: @night-alt-rain-mix          ; }
+    .@{wi-css-prefix}-owm-night-612:before                      { content: @night-alt-rain-mix          ; }
+    .@{wi-css-prefix}-owm-night-615:before                      { content: @night-alt-rain-mix          ; }
+    .@{wi-css-prefix}-owm-night-616:before                      { content: @night-alt-rain-mix          ; }
+    .@{wi-css-prefix}-owm-night-620:before                      { content: @night-alt-rain-mix          ; }
+    .@{wi-css-prefix}-owm-night-621:before                      { content: @night-alt-snow              ; }
+    .@{wi-css-prefix}-owm-night-622:before                      { content: @night-alt-snow              ; }
+    .@{wi-css-prefix}-owm-night-701:before                      { content: @night-alt-showers           ; }
+    .@{wi-css-prefix}-owm-night-711:before                      { content: @smoke                       ; }
+    .@{wi-css-prefix}-owm-night-721:before                      { content: @day-haze                    ; }
+    .@{wi-css-prefix}-owm-night-731:before                      { content: @dust                        ; }
+    .@{wi-css-prefix}-owm-night-741:before                      { content: @night-fog                   ; }
+    .@{wi-css-prefix}-owm-night-761:before                      { content: @dust                        ; }
+    .@{wi-css-prefix}-owm-night-762:before                      { content: @dust                        ; }
+    .@{wi-css-prefix}-owm-night-781:before                      { content: @tornado                     ; }
+    .@{wi-css-prefix}-owm-night-800:before                      { content: @night-clear                 ; }
+    .@{wi-css-prefix}-owm-night-801:before                      { content: @night-alt-cloudy-gusts      ; }
+    .@{wi-css-prefix}-owm-night-802:before                      { content: @night-alt-cloudy-gusts      ; }
+    .@{wi-css-prefix}-owm-night-803:before                      { content: @night-alt-cloudy-gusts      ; }
+    .@{wi-css-prefix}-owm-night-804:before                      { content: @night-alt-cloudy            ; }
+    .@{wi-css-prefix}-owm-night-900:before                      { content: @tornado                     ; }
+    .@{wi-css-prefix}-owm-night-902:before                      { content: @hurricane                   ; }
+    .@{wi-css-prefix}-owm-night-903:before                      { content: @snowflake-cold              ; }
+    .@{wi-css-prefix}-owm-night-904:before                      { content: @hot                         ; }
+    .@{wi-css-prefix}-owm-night-906:before                      { content: @night-alt-hail              ; }
+    .@{wi-css-prefix}-owm-night-957:before                      { content: @strong-wind                 ; }

+ 85 - 0
src/main/vue/static/weather_icons/less/mappings/wi-wmo4680.less

@@ -0,0 +1,85 @@
+.@{wi-css-prefix}-wmo4680-0:before,
+.@{wi-css-prefix}-wmo4680-00:before       { content: @thermometer           ; }
+.@{wi-css-prefix}-wmo4680-1:before,
+.@{wi-css-prefix}-wmo4680-01:before       { content: @cloudy                ; }
+.@{wi-css-prefix}-wmo4680-2:before,
+.@{wi-css-prefix}-wmo4680-02:before       { content: @thermometer           ; }
+.@{wi-css-prefix}-wmo4680-3:before,
+.@{wi-css-prefix}-wmo4680-03:before       { content: @cloudy                ; }
+.@{wi-css-prefix}-wmo4680-4:before,
+.@{wi-css-prefix}-wmo4680-04:before       { content: @fog                   ; }
+.@{wi-css-prefix}-wmo4680-5:before,
+.@{wi-css-prefix}-wmo4680-05:before       { content: @fog                   ; }
+.@{wi-css-prefix}-wmo4680-10:before       { content: @fog                   ; }
+.@{wi-css-prefix}-wmo4680-11:before       { content: @fog                   ; }
+.@{wi-css-prefix}-wmo4680-12:before       { content: @lightning             ; }
+.@{wi-css-prefix}-wmo4680-18:before       { content: @strong-wind           ; }
+.@{wi-css-prefix}-wmo4680-20:before       { content: @fog                   ; }
+.@{wi-css-prefix}-wmo4680-21:before       { content: @rain-mix              ; }
+.@{wi-css-prefix}-wmo4680-22:before       { content: @rain-mix              ; }
+.@{wi-css-prefix}-wmo4680-23:before       { content: @rain                  ; }
+.@{wi-css-prefix}-wmo4680-24:before       { content: @snow                  ; }
+.@{wi-css-prefix}-wmo4680-25:before       { content: @hail                  ; }
+.@{wi-css-prefix}-wmo4680-26:before       { content: @thunderstorm          ; }
+.@{wi-css-prefix}-wmo4680-27:before       { content: @dust                  ; }
+.@{wi-css-prefix}-wmo4680-28:before       { content: @dust                  ; }
+.@{wi-css-prefix}-wmo4680-29:before       { content: @dust                  ; }
+.@{wi-css-prefix}-wmo4680-30:before       { content: @fog                   ; }
+.@{wi-css-prefix}-wmo4680-31:before       { content: @fog                   ; }
+.@{wi-css-prefix}-wmo4680-32:before       { content: @fog                   ; }
+.@{wi-css-prefix}-wmo4680-33:before       { content: @fog                   ; }
+.@{wi-css-prefix}-wmo4680-34:before       { content: @fog                   ; }
+.@{wi-css-prefix}-wmo4680-35:before       { content: @fog                   ; }
+.@{wi-css-prefix}-wmo4680-40:before       { content: @rain-mix              ; }
+.@{wi-css-prefix}-wmo4680-41:before       { content: @sprinkle              ; }
+.@{wi-css-prefix}-wmo4680-42:before       { content: @rain                  ; }
+.@{wi-css-prefix}-wmo4680-43:before       { content: @sprinkle              ; }
+.@{wi-css-prefix}-wmo4680-44:before       { content: @rain                  ; }
+.@{wi-css-prefix}-wmo4680-45:before       { content: @hail                  ; }
+.@{wi-css-prefix}-wmo4680-46:before       { content: @hail                  ; }
+.@{wi-css-prefix}-wmo4680-47:before       { content: @snow                  ; }
+.@{wi-css-prefix}-wmo4680-48:before       { content: @snow                  ; }
+.@{wi-css-prefix}-wmo4680-50:before       { content: @sprinkle              ; }
+.@{wi-css-prefix}-wmo4680-51:before       { content: @sprinkle              ; }
+.@{wi-css-prefix}-wmo4680-52:before       { content: @rain                  ; }
+.@{wi-css-prefix}-wmo4680-53:before       { content: @rain                  ; }
+.@{wi-css-prefix}-wmo4680-54:before       { content: @snowflake-cold        ; }
+.@{wi-css-prefix}-wmo4680-55:before       { content: @snowflake-cold        ; }
+.@{wi-css-prefix}-wmo4680-56:before       { content: @snowflake-cold        ; }
+.@{wi-css-prefix}-wmo4680-57:before       { content: @sprinkle              ; }
+.@{wi-css-prefix}-wmo4680-58:before       { content: @rain                  ; }
+.@{wi-css-prefix}-wmo4680-60:before       { content: @sprinkle              ; }
+.@{wi-css-prefix}-wmo4680-61:before       { content: @sprinkle              ; }
+.@{wi-css-prefix}-wmo4680-62:before       { content: @rain                  ; }
+.@{wi-css-prefix}-wmo4680-63:before       { content: @rain                  ; }
+.@{wi-css-prefix}-wmo4680-64:before       { content: @hail                  ; }
+.@{wi-css-prefix}-wmo4680-65:before       { content: @hail                  ; }
+.@{wi-css-prefix}-wmo4680-66:before       { content: @hail                  ; }
+.@{wi-css-prefix}-wmo4680-67:before       { content: @rain-mix              ; }
+.@{wi-css-prefix}-wmo4680-68:before       { content: @rain-mix              ; }
+.@{wi-css-prefix}-wmo4680-70:before       { content: @snow                  ; }
+.@{wi-css-prefix}-wmo4680-71:before       { content: @snow                  ; }
+.@{wi-css-prefix}-wmo4680-72:before       { content: @snow                  ; }
+.@{wi-css-prefix}-wmo4680-73:before       { content: @snow                  ; }
+.@{wi-css-prefix}-wmo4680-74:before       { content: @snowflake-cold        ; }
+.@{wi-css-prefix}-wmo4680-75:before       { content: @snowflake-cold        ; }
+.@{wi-css-prefix}-wmo4680-76:before       { content: @snowflake-cold        ; }
+.@{wi-css-prefix}-wmo4680-77:before       { content: @snow                  ; }
+.@{wi-css-prefix}-wmo4680-78:before       { content: @snowflake-cold        ; }
+.@{wi-css-prefix}-wmo4680-80:before       { content: @rain                  ; }
+.@{wi-css-prefix}-wmo4680-81:before       { content: @sprinkle              ; }
+.@{wi-css-prefix}-wmo4680-82:before       { content: @rain                  ; }
+.@{wi-css-prefix}-wmo4680-83:before       { content: @rain                  ; }
+.@{wi-css-prefix}-wmo4680-84:before       { content: @storm-showers         ; }
+.@{wi-css-prefix}-wmo4680-85:before       { content: @rain-mix              ; }
+.@{wi-css-prefix}-wmo4680-86:before       { content: @rain-mix              ; }
+.@{wi-css-prefix}-wmo4680-87:before       { content: @rain-mix              ; }
+.@{wi-css-prefix}-wmo4680-89:before       { content: @hail                  ; }
+.@{wi-css-prefix}-wmo4680-90:before       { content: @lightning             ; }
+.@{wi-css-prefix}-wmo4680-91:before       { content: @storm-showers         ; }
+.@{wi-css-prefix}-wmo4680-92:before       { content: @thunderstorm          ; }
+.@{wi-css-prefix}-wmo4680-93:before       { content: @thunderstorm          ; }
+.@{wi-css-prefix}-wmo4680-94:before       { content: @lightning             ; }
+.@{wi-css-prefix}-wmo4680-95:before       { content: @thunderstorm          ; }
+.@{wi-css-prefix}-wmo4680-96:before       { content: @thunderstorm          ; }
+.@{wi-css-prefix}-wmo4680-99:before       { content: @tornado               ; }

+ 19 - 0
src/main/vue/static/weather_icons/less/mappings/wi-wunderground.less

@@ -0,0 +1,19 @@
+.@{wi-css-prefix}-wu-chanceflurries:before { content: @snow-wind; }
+.@{wi-css-prefix}-wu-chancerain:before     { content: @rain; }
+.@{wi-css-prefix}-wu-chancesleat:before    { content: @sleet; }
+.@{wi-css-prefix}-wu-chancesnow:before     { content: @snow; }
+.@{wi-css-prefix}-wu-chancetstorms:before  { content: @thunderstorm; }
+.@{wi-css-prefix}-wu-clear:before          { content: @day-sunny; }
+.@{wi-css-prefix}-wu-cloudy:before         { content: @day-cloudy; }
+.@{wi-css-prefix}-wu-flurries:before       { content: @snow-wind; }
+.@{wi-css-prefix}-wu-hazy:before           { content: @day-haze; }
+.@{wi-css-prefix}-wu-mostlycloudy:before   { content: @day-cloudy; }
+.@{wi-css-prefix}-wu-mostlysunny:before    { content: @day-sunny; }
+.@{wi-css-prefix}-wu-partlycloudy:before   { content: @day-cloudy; }
+.@{wi-css-prefix}-wu-partlysunny:before    { content: @day-sunny; }
+.@{wi-css-prefix}-wu-rain:before           { content: @showers; }
+.@{wi-css-prefix}-wu-sleat:before          { content: @sleet; }
+.@{wi-css-prefix}-wu-snow:before           { content: @snow; }
+.@{wi-css-prefix}-wu-sunny:before          { content: @day-sunny; }
+.@{wi-css-prefix}-wu-tstorms:before        { content: @thunderstorm; }
+.@{wi-css-prefix}-wu-unknown:before        { content: @day-sunny; }

+ 49 - 0
src/main/vue/static/weather_icons/less/mappings/wi-yahoo.less

@@ -0,0 +1,49 @@
+.@{wi-css-prefix}-yahoo-0:before { content: @tornado; };
+.@{wi-css-prefix}-yahoo-1:before { content: @day-storm-showers; };
+.@{wi-css-prefix}-yahoo-2:before { content: @hurricane; };
+.@{wi-css-prefix}-yahoo-3:before { content: @thunderstorm; };
+.@{wi-css-prefix}-yahoo-4:before { content: @thunderstorm; };
+.@{wi-css-prefix}-yahoo-5:before { content: @rain-mix; };
+.@{wi-css-prefix}-yahoo-6:before { content: @rain-mix; };
+.@{wi-css-prefix}-yahoo-7:before { content: @rain-mix; };
+.@{wi-css-prefix}-yahoo-8:before { content: @hail; };
+.@{wi-css-prefix}-yahoo-9:before { content: @showers; };
+.@{wi-css-prefix}-yahoo-10:before { content: @hail; };
+.@{wi-css-prefix}-yahoo-11:before { content: @showers; };
+.@{wi-css-prefix}-yahoo-12:before { content: @showers; };
+.@{wi-css-prefix}-yahoo-13:before { content: @snow; };
+.@{wi-css-prefix}-yahoo-14:before { content: @day-snow; };
+.@{wi-css-prefix}-yahoo-15:before { content: @snow-wind; };
+.@{wi-css-prefix}-yahoo-16:before { content: @snow; };
+.@{wi-css-prefix}-yahoo-17:before { content: @hail; };
+.@{wi-css-prefix}-yahoo-18:before { content: @rain-mix; };
+.@{wi-css-prefix}-yahoo-19:before { content: @dust; };
+.@{wi-css-prefix}-yahoo-20:before { content: @fog; };
+.@{wi-css-prefix}-yahoo-21:before { content: @windy; };
+.@{wi-css-prefix}-yahoo-22:before { content: @smoke; };
+.@{wi-css-prefix}-yahoo-23:before { content: @strong-wind; };
+.@{wi-css-prefix}-yahoo-24:before { content: @strong-wind; };
+.@{wi-css-prefix}-yahoo-25:before { content: @snowflake-cold; };
+.@{wi-css-prefix}-yahoo-26:before { content: @cloudy; };
+.@{wi-css-prefix}-yahoo-27:before { content: @night-cloudy; };
+.@{wi-css-prefix}-yahoo-28:before { content: @day-cloudy; };
+.@{wi-css-prefix}-yahoo-29:before { content: @night-cloudy; };
+.@{wi-css-prefix}-yahoo-30:before { content: @day-cloudy; };
+.@{wi-css-prefix}-yahoo-31:before { content: @night-clear; };
+.@{wi-css-prefix}-yahoo-32:before { content: @day-sunny; };
+.@{wi-css-prefix}-yahoo-33:before { content: @night-partly-cloudy; };
+.@{wi-css-prefix}-yahoo-34:before { content: @day-sunny-overcast; };
+.@{wi-css-prefix}-yahoo-35:before { content: @rain-mix; };
+.@{wi-css-prefix}-yahoo-36:before { content: @hot; };
+.@{wi-css-prefix}-yahoo-37:before { content: @day-storm-showers; };
+.@{wi-css-prefix}-yahoo-38:before { content: @day-storm-showers; };
+.@{wi-css-prefix}-yahoo-39:before { content: @day-storm-showers; };
+.@{wi-css-prefix}-yahoo-40:before { content: @showers; };
+.@{wi-css-prefix}-yahoo-41:before { content: @snow-wind; };
+.@{wi-css-prefix}-yahoo-42:before { content: @snow; };
+.@{wi-css-prefix}-yahoo-43:before { content: @snow-wind; };
+.@{wi-css-prefix}-yahoo-44:before { content: @day-sunny-overcast; };
+.@{wi-css-prefix}-yahoo-45:before { content: @day-storm-showers; };
+.@{wi-css-prefix}-yahoo-46:before { content: @snow; };
+.@{wi-css-prefix}-yahoo-47:before { content: @day-storm-showers; };
+.@{wi-css-prefix}-yahoo-3200:before { content: @stars; };

+ 9 - 0
src/main/vue/static/weather_icons/less/weather-icons-classes.less

@@ -0,0 +1,9 @@
+@import "icon-classes/classes-day.less";
+@import "icon-classes/classes-night.less";
+@import "icon-classes/classes-neutral.less";
+@import "icon-classes/classes-misc.less";
+@import "icon-classes/classes-moon.less";
+@import "icon-classes/classes-moon-aliases.less";
+@import "icon-classes/classes-time.less";
+@import "icon-classes/classes-direction.less";
+@import "icon-classes/classes-beaufort.less";

+ 53 - 0
src/main/vue/static/weather_icons/less/weather-icons-core.less

@@ -0,0 +1,53 @@
+// Base Variables
+@wi-path:                        "../font";
+@wi-version:                     "2.0";
+@wi-css-prefix:                  wi;
+@wi-font-family:                 weathericons;
+
+@font-face {
+    font-family: '@{wi-font-family}';
+    src: url('@{wi-path}/@{wi-font-family}-regular-webfont.eot');
+    src: url('@{wi-path}/@{wi-font-family}-regular-webfont.eot?#iefix') format('embedded-opentype'),
+         url('@{wi-path}/@{wi-font-family}-regular-webfont.woff2') format('woff2'),
+         url('@{wi-path}/@{wi-font-family}-regular-webfont.woff') format('woff'),
+         url('@{wi-path}/@{wi-font-family}-regular-webfont.ttf') format('truetype'),
+         url('@{wi-path}/@{wi-font-family}-regular-webfont.svg#weather_iconsregular') format('svg');
+    font-weight: normal;
+    font-style: normal;
+}
+
+.@{wi-css-prefix} {
+  display: inline-block;
+  font-family: '@{wi-font-family}';
+  font-style: normal;
+  font-weight: normal;
+  line-height: 1;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+.@{wi-css-prefix}-fw {
+  text-align: center;
+  width: 1.4em;
+}
+
+.wi-icon-rotate(@degrees, @rotation) {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation);
+  -webkit-transform: rotate(@degrees);
+      -ms-transform: rotate(@degrees);
+          transform: rotate(@degrees);
+}
+
+.wi-icon-flip(@horiz, @vert, @rotation) {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation, mirror=1);
+  -webkit-transform: scale(@horiz, @vert);
+      -ms-transform: scale(@horiz, @vert);
+          transform: scale(@horiz, @vert);
+}
+
+.@{wi-css-prefix}-rotate-90  { .wi-icon-rotate(90deg, 1);  }
+.@{wi-css-prefix}-rotate-180 { .wi-icon-rotate(180deg, 2); }
+.@{wi-css-prefix}-rotate-270 { .wi-icon-rotate(270deg, 3); }
+
+.@{wi-css-prefix}-flip-horizontal { .wi-icon-flip(-1, 1, 0); }
+.@{wi-css-prefix}-flip-vertical   { .wi-icon-flip(1, -1, 2); }

+ 9 - 0
src/main/vue/static/weather_icons/less/weather-icons-variables.less

@@ -0,0 +1,9 @@
+@import "icon-variables/variables-beaufort.less";
+@import "icon-variables/variables-time.less";
+@import "icon-variables/variables-moon.less";
+@import "icon-variables/variables-direction.less";
+@import "icon-variables/variables-day.less";
+@import "icon-variables/variables-night.less";
+@import "icon-variables/variables-neutral.less";
+@import "icon-variables/variables-misc.less";
+

+ 5 - 0
src/main/vue/static/weather_icons/less/weather-icons-wind.less

@@ -0,0 +1,5 @@
+@import "weather-icons-core.less";
+@import "icon-variables/variables-wind-names.less";
+@import "icon-classes/classes-wind.less";
+@import "icon-classes/classes-wind-degrees.less";
+@import "icon-classes/classes-wind-aliases.less";

+ 5 - 0
src/main/vue/static/weather_icons/less/weather-icons-wind.min.less

@@ -0,0 +1,5 @@
+@import "weather-icons-core.less";
+@import "icon-variables/variables-wind-names.less";
+@import "icon-classes/classes-wind.less";
+@import "icon-classes/classes-wind-degrees.less";
+@import "icon-classes/classes-wind-aliases.less";

+ 31 - 0
src/main/vue/static/weather_icons/less/weather-icons.less

@@ -0,0 +1,31 @@
+/*!
+ *  Weather Icons 2.0
+ *  Updated August 1, 2015
+ *  Weather themed icons for Bootstrap
+ *  Author - Erik Flowers - erik@helloerik.com
+ *  Email: erik@helloerik.com
+ *  Twitter: http://twitter.com/Erik_UX
+ *  ------------------------------------------------------------------------------
+ *  Maintained at http://erikflowers.github.io/weather-icons
+ *
+ *  License
+ *  ------------------------------------------------------------------------------
+ *  - Font licensed under SIL OFL 1.1 -
+ *    http://scripts.sil.org/OFL
+ *  - CSS, SCSS and LESS are licensed under MIT License -
+ *    http://opensource.org/licenses/mit-license.html
+ *  - Documentation licensed under CC BY 3.0 -
+ *    http://creativecommons.org/licenses/by/3.0/
+ *  - Inspired by and works great as a companion with Font Awesome
+ *    "Font Awesome by Dave Gandy - http://fontawesome.io"
+ */
+
+@import "weather-icons-core.less";
+@import "weather-icons-variables.less";
+@import "weather-icons-classes.less";
+// Mappings to various APIs
+@import "mappings/wi-yahoo.less";
+@import "mappings/wi-forecast-io.less";
+@import "mappings/wi-wmo4680.less";
+@import "mappings/wi-owm.less";
+@import "mappings/wi-wunderground.less";

+ 23 - 0
src/main/vue/static/weather_icons/less/weather-icons.min.less

@@ -0,0 +1,23 @@
+/*!
+ *  Weather Icons 2.0
+ *  Updated August 1, 2015
+ *  Weather themed icons for Bootstrap
+ *  Author - Erik Flowers - erik@helloerik.com
+ *  Email: erik@helloerik.com
+ *  Twitter: http://twitter.com/Erik_UX
+ *  ------------------------------------------------------------------------------
+ *  Maintained at http://erikflowers.github.io/weather-icons
+ *
+ *  License
+ *  ------------------------------------------------------------------------------
+ *  - Font licensed under SIL OFL 1.1 -
+ *    http://scripts.sil.org/OFL
+ *  - CSS, SCSS and LESS are licensed under MIT License -
+ *    http://opensource.org/licenses/mit-license.html
+ *  - Documentation licensed under CC BY 3.0 -
+ *    http://creativecommons.org/licenses/by/3.0/
+ *  - Inspired by and works great as a companion with Font Awesome
+ *    "Font Awesome by Dave Gandy - http://fontawesome.io"
+ */
+
+@import "weather-icons.less";

+ 13 - 0
src/main/vue/static/weather_icons/sass/icon-classes/classes-beaufort.scss

@@ -0,0 +1,13 @@
+.wi-wind-beaufort-0:before {content: $wind-beaufort-0;}
+.wi-wind-beaufort-1:before {content: $wind-beaufort-1;}
+.wi-wind-beaufort-2:before {content: $wind-beaufort-2;}
+.wi-wind-beaufort-3:before {content: $wind-beaufort-3;}
+.wi-wind-beaufort-4:before {content: $wind-beaufort-4;}
+.wi-wind-beaufort-5:before {content: $wind-beaufort-5;}
+.wi-wind-beaufort-6:before {content: $wind-beaufort-6;}
+.wi-wind-beaufort-7:before {content: $wind-beaufort-7;}
+.wi-wind-beaufort-8:before {content: $wind-beaufort-8;}
+.wi-wind-beaufort-9:before {content: $wind-beaufort-9;}
+.wi-wind-beaufort-10:before {content: $wind-beaufort-10;}
+.wi-wind-beaufort-11:before {content: $wind-beaufort-11;}
+.wi-wind-beaufort-12:before {content: $wind-beaufort-12;}

+ 26 - 0
src/main/vue/static/weather_icons/sass/icon-classes/classes-day.scss

@@ -0,0 +1,26 @@
+.wi-day-sunny:before {content: $day-sunny;}
+.wi-day-cloudy:before {content: $day-cloudy;}
+.wi-day-cloudy-gusts:before {content: $day-cloudy-gusts;}
+.wi-day-cloudy-windy:before {content: $day-cloudy-windy;}
+.wi-day-fog:before {content: $day-fog;}
+.wi-day-hail:before {content: $day-hail;}
+.wi-day-haze:before {content: $day-haze;}
+.wi-day-lightning:before {content: $day-lightning;}
+.wi-day-rain:before {content: $day-rain;}
+.wi-day-rain-mix:before {content: $day-rain-mix;}
+.wi-day-rain-wind:before {content: $day-rain-wind;}
+.wi-day-showers:before {content: $day-showers;}
+.wi-day-sleet:before {content: $day-sleet;}
+.wi-day-sleet-storm:before {content: $day-sleet-storm;}
+.wi-day-snow:before {content: $day-snow;}
+.wi-day-snow-thunderstorm:before {content: $day-snow-thunderstorm;}
+.wi-day-snow-wind:before {content: $day-snow-wind;}
+.wi-day-sprinkle:before {content: $day-sprinkle;}
+.wi-day-storm-showers:before {content: $day-storm-showers;}
+.wi-day-sunny-overcast:before {content: $day-sunny-overcast;}
+.wi-day-thunderstorm:before {content: $day-thunderstorm;}
+.wi-day-windy:before {content: $day-windy;}
+.wi-solar-eclipse:before {content: $solar-eclipse;}
+.wi-hot:before {content: $hot;}
+.wi-day-cloudy-high:before {content: $day-cloudy-high;}
+.wi-day-light-wind:before {content: $day-light-wind;}

+ 8 - 0
src/main/vue/static/weather_icons/sass/icon-classes/classes-direction.scss

@@ -0,0 +1,8 @@
+.wi-direction-up:before {content: $direction-up;}
+.wi-direction-up-right:before {content: $direction-up-right;}
+.wi-direction-right:before {content: $direction-right;}
+.wi-direction-down-right:before {content: $direction-down-right;}
+.wi-direction-down:before {content: $direction-down;}
+.wi-direction-down-left:before {content: $direction-down-left;}
+.wi-direction-left:before {content: $direction-left;}
+.wi-direction-up-left:before {content: $direction-up-left;}

+ 23 - 0
src/main/vue/static/weather_icons/sass/icon-classes/classes-misc.scss

@@ -0,0 +1,23 @@
+.wi-alien:before {content: $alien;}
+.wi-celsius:before {content: $celsius;}
+.wi-fahrenheit:before {content: $fahrenheit;}
+.wi-degrees:before {content: $degrees;}
+.wi-thermometer:before {content: $thermometer;}
+.wi-thermometer-exterior:before {content: $thermometer-exterior;}
+.wi-thermometer-internal:before {content: $thermometer-internal;}
+.wi-cloud-down:before {content: $cloud-down;}
+.wi-cloud-up:before {content: $cloud-up;}
+.wi-cloud-refresh:before {content: $cloud-refresh;}
+.wi-horizon:before {content: $horizon;}
+.wi-horizon-alt:before {content: $horizon-alt;}
+.wi-sunrise:before {content: $sunrise;}
+.wi-sunset:before {content: $sunset;}
+.wi-moonrise:before {content: $moonrise;}
+.wi-moonset:before {content: $moonset;}
+.wi-refresh:before {content: $refresh;}
+.wi-refresh-alt:before {content: $refresh-alt;}
+.wi-umbrella:before {content: $umbrella;}
+.wi-barometer:before {content: $barometer;}
+.wi-humidity:before {content: $humidity;}
+.wi-na:before {content: $na;}
+.wi-train:before {content: $train;}

+ 28 - 0
src/main/vue/static/weather_icons/sass/icon-classes/classes-moon-aliases.scss

@@ -0,0 +1,28 @@
+.wi-moon-0:before {content: $moon-new;}
+.wi-moon-1:before {content: $moon-waxing-crescent-1;}
+.wi-moon-2:before {content: $moon-waxing-crescent-2;}
+.wi-moon-3:before {content: $moon-waxing-crescent-3;}
+.wi-moon-4:before {content: $moon-waxing-crescent-4;}
+.wi-moon-5:before {content: $moon-waxing-crescent-5;}
+.wi-moon-6:before {content: $moon-waxing-crescent-6;}
+.wi-moon-7:before {content: $moon-first-quarter;}
+.wi-moon-8:before {content: $moon-waxing-gibbous-1;}
+.wi-moon-9:before {content: $moon-waxing-gibbous-2;}
+.wi-moon-10:before {content: $moon-waxing-gibbous-3;}
+.wi-moon-11:before {content: $moon-waxing-gibbous-4;}
+.wi-moon-12:before {content: $moon-waxing-gibbous-5;}
+.wi-moon-13:before {content: $moon-waxing-gibbous-6;}
+.wi-moon-14:before {content: $moon-full;}
+.wi-moon-15:before {content: $moon-waning-gibbous-1;}
+.wi-moon-16:before {content: $moon-waning-gibbous-2;}
+.wi-moon-17:before {content: $moon-waning-gibbous-3;}
+.wi-moon-18:before {content: $moon-waning-gibbous-4;}
+.wi-moon-19:before {content: $moon-waning-gibbous-5;}
+.wi-moon-20:before {content: $moon-waning-gibbous-6;}
+.wi-moon-21:before {content: $moon-third-quarter;}
+.wi-moon-22:before {content: $moon-waning-crescent-1;}
+.wi-moon-23:before {content: $moon-waning-crescent-2;}
+.wi-moon-24:before {content: $moon-waning-crescent-3;}
+.wi-moon-25:before {content: $moon-waning-crescent-4;}
+.wi-moon-26:before {content: $moon-waning-crescent-5;}
+.wi-moon-27:before {content: $moon-waning-crescent-6;}

+ 56 - 0
src/main/vue/static/weather_icons/sass/icon-classes/classes-moon.scss

@@ -0,0 +1,56 @@
+.wi-moon-new:before {content: $moon-new;}
+.wi-moon-waxing-crescent-1:before {content: $moon-waxing-crescent-1;}
+.wi-moon-waxing-crescent-2:before {content: $moon-waxing-crescent-2;}
+.wi-moon-waxing-crescent-3:before {content: $moon-waxing-crescent-3;}
+.wi-moon-waxing-crescent-4:before {content: $moon-waxing-crescent-4;}
+.wi-moon-waxing-crescent-5:before {content: $moon-waxing-crescent-5;}
+.wi-moon-waxing-crescent-6:before {content: $moon-waxing-crescent-6;}
+.wi-moon-first-quarter:before {content: $moon-first-quarter;}
+.wi-moon-waxing-gibbous-1:before {content: $moon-waxing-gibbous-1;}
+.wi-moon-waxing-gibbous-2:before {content: $moon-waxing-gibbous-2;}
+.wi-moon-waxing-gibbous-3:before {content: $moon-waxing-gibbous-3;}
+.wi-moon-waxing-gibbous-4:before {content: $moon-waxing-gibbous-4;}
+.wi-moon-waxing-gibbous-5:before {content: $moon-waxing-gibbous-5;}
+.wi-moon-waxing-gibbous-6:before {content: $moon-waxing-gibbous-6;}
+.wi-moon-full:before {content: $moon-full;}
+.wi-moon-waning-gibbous-1:before {content: $moon-waning-gibbous-1;}
+.wi-moon-waning-gibbous-2:before {content: $moon-waning-gibbous-2;}
+.wi-moon-waning-gibbous-3:before {content: $moon-waning-gibbous-3;}
+.wi-moon-waning-gibbous-4:before {content: $moon-waning-gibbous-4;}
+.wi-moon-waning-gibbous-5:before {content: $moon-waning-gibbous-5;}
+.wi-moon-waning-gibbous-6:before {content: $moon-waning-gibbous-6;}
+.wi-moon-third-quarter:before {content: $moon-third-quarter;}
+.wi-moon-waning-crescent-1:before {content: $moon-waning-crescent-1;}
+.wi-moon-waning-crescent-2:before {content: $moon-waning-crescent-2;}
+.wi-moon-waning-crescent-3:before {content: $moon-waning-crescent-3;}
+.wi-moon-waning-crescent-4:before {content: $moon-waning-crescent-4;}
+.wi-moon-waning-crescent-5:before {content: $moon-waning-crescent-5;}
+.wi-moon-waning-crescent-6:before {content: $moon-waning-crescent-6;}
+.wi-moon-alt-new:before {content: $moon-alt-new;}
+.wi-moon-alt-waxing-crescent-1:before {content: $moon-alt-waxing-crescent-1;}
+.wi-moon-alt-waxing-crescent-2:before {content: $moon-alt-waxing-crescent-2;}
+.wi-moon-alt-waxing-crescent-3:before {content: $moon-alt-waxing-crescent-3;}
+.wi-moon-alt-waxing-crescent-4:before {content: $moon-alt-waxing-crescent-4;}
+.wi-moon-alt-waxing-crescent-5:before {content: $moon-alt-waxing-crescent-5;}
+.wi-moon-alt-waxing-crescent-6:before {content: $moon-alt-waxing-crescent-6;}
+.wi-moon-alt-first-quarter:before {content: $moon-alt-first-quarter;}
+.wi-moon-alt-waxing-gibbous-1:before {content: $moon-alt-waxing-gibbous-1;}
+.wi-moon-alt-waxing-gibbous-2:before {content: $moon-alt-waxing-gibbous-2;}
+.wi-moon-alt-waxing-gibbous-3:before {content: $moon-alt-waxing-gibbous-3;}
+.wi-moon-alt-waxing-gibbous-4:before {content: $moon-alt-waxing-gibbous-4;}
+.wi-moon-alt-waxing-gibbous-5:before {content: $moon-alt-waxing-gibbous-5;}
+.wi-moon-alt-waxing-gibbous-6:before {content: $moon-alt-waxing-gibbous-6;}
+.wi-moon-alt-full:before {content: $moon-alt-full;}
+.wi-moon-alt-waning-gibbous-1:before {content: $moon-alt-waning-gibbous-1;}
+.wi-moon-alt-waning-gibbous-2:before {content: $moon-alt-waning-gibbous-2;}
+.wi-moon-alt-waning-gibbous-3:before {content: $moon-alt-waning-gibbous-3;}
+.wi-moon-alt-waning-gibbous-4:before {content: $moon-alt-waning-gibbous-4;}
+.wi-moon-alt-waning-gibbous-5:before {content: $moon-alt-waning-gibbous-5;}
+.wi-moon-alt-waning-gibbous-6:before {content: $moon-alt-waning-gibbous-6;}
+.wi-moon-alt-third-quarter:before {content: $moon-alt-third-quarter;}
+.wi-moon-alt-waning-crescent-1:before {content: $moon-alt-waning-crescent-1;}
+.wi-moon-alt-waning-crescent-2:before {content: $moon-alt-waning-crescent-2;}
+.wi-moon-alt-waning-crescent-3:before {content: $moon-alt-waning-crescent-3;}
+.wi-moon-alt-waning-crescent-4:before {content: $moon-alt-waning-crescent-4;}
+.wi-moon-alt-waning-crescent-5:before {content: $moon-alt-waning-crescent-5;}
+.wi-moon-alt-waning-crescent-6:before {content: $moon-alt-waning-crescent-6;}

+ 40 - 0
src/main/vue/static/weather_icons/sass/icon-classes/classes-neutral.scss

@@ -0,0 +1,40 @@
+.wi-cloud:before {content: $cloud;}
+.wi-cloudy:before {content: $cloudy;}
+.wi-cloudy-gusts:before {content: $cloudy-gusts;}
+.wi-cloudy-windy:before {content: $cloudy-windy;}
+.wi-fog:before {content: $fog;}
+.wi-hail:before {content: $hail;}
+.wi-rain:before {content: $rain;}
+.wi-rain-mix:before {content: $rain-mix;}
+.wi-rain-wind:before {content: $rain-wind;}
+.wi-showers:before {content: $showers;}
+.wi-sleet:before {content: $sleet;}
+.wi-snow:before {content: $snow;}
+.wi-sprinkle:before {content: $sprinkle;}
+.wi-storm-showers:before {content: $storm-showers;}
+.wi-thunderstorm:before {content: $thunderstorm;}
+.wi-snow-wind:before {content: $snow-wind;}
+.wi-snow:before {content: $snow;}
+.wi-smog:before {content: $smog;}
+.wi-smoke:before {content: $smoke;}
+.wi-lightning:before {content: $lightning;}
+.wi-raindrops:before {content: $raindrops;}
+.wi-raindrop:before {content: $raindrop;}
+.wi-dust:before {content: $dust;}
+.wi-snowflake-cold:before {content: $snowflake-cold;}
+.wi-windy:before {content: $windy;}
+.wi-strong-wind:before {content: $strong-wind;}
+.wi-sandstorm:before {content: $sandstorm;}
+.wi-earthquake:before {content: $earthquake;}
+.wi-fire:before {content: $fire;}
+.wi-flood:before {content: $flood;}
+.wi-meteor:before {content: $meteor;}
+.wi-tsunami:before {content: $tsunami;}
+.wi-volcano:before {content: $volcano;}
+.wi-hurricane:before {content: $hurricane;}
+.wi-tornado:before {content: $tornado;}
+.wi-small-craft-advisory:before {content: $small-craft-advisory;}
+.wi-gale-warning:before {content: $gale-warning;}
+.wi-storm-warning:before {content: $storm-warning;}
+.wi-hurricane-warning:before {content: $hurricane-warning;}
+.wi-wind-direction:before {content: $wind-direction;}

+ 44 - 0
src/main/vue/static/weather_icons/sass/icon-classes/classes-night.scss

@@ -0,0 +1,44 @@
+.wi-night-clear:before {content: $night-clear;}
+.wi-night-alt-cloudy:before {content: $night-alt-cloudy;}
+.wi-night-alt-cloudy-gusts:before {content: $night-alt-cloudy-gusts;}
+.wi-night-alt-cloudy-windy:before {content: $night-alt-cloudy-windy;}
+.wi-night-alt-hail:before {content: $night-alt-hail;}
+.wi-night-alt-lightning:before {content: $night-alt-lightning;}
+.wi-night-alt-rain:before {content: $night-alt-rain;}
+.wi-night-alt-rain-mix:before {content: $night-alt-rain-mix;}
+.wi-night-alt-rain-wind:before {content: $night-alt-rain-wind;}
+.wi-night-alt-showers:before {content: $night-alt-showers;}
+.wi-night-alt-sleet:before {content: $night-alt-sleet;}
+.wi-night-alt-sleet-storm:before {content: $night-alt-sleet-storm;}
+.wi-night-alt-snow:before {content: $night-alt-snow;}
+.wi-night-alt-snow-thunderstorm:before {content: $night-alt-snow-thunderstorm;}
+.wi-night-alt-snow-wind:before {content: $night-alt-snow-wind;}
+.wi-night-alt-sprinkle:before {content: $night-alt-sprinkle;}
+.wi-night-alt-storm-showers:before {content: $night-alt-storm-showers;}
+.wi-night-alt-thunderstorm:before {content: $night-alt-thunderstorm;}
+.wi-night-cloudy:before {content: $night-cloudy;}
+.wi-night-cloudy-gusts:before {content: $night-cloudy-gusts;}
+.wi-night-cloudy-windy:before {content: $night-cloudy-windy;}
+.wi-night-fog:before {content: $night-fog;}
+.wi-night-hail:before {content: $night-hail;}
+.wi-night-lightning:before {content: $night-lightning;}
+.wi-night-partly-cloudy:before {content: $night-partly-cloudy;}
+.wi-night-rain:before {content: $night-rain;}
+.wi-night-rain-mix:before {content: $night-rain-mix;}
+.wi-night-rain-wind:before {content: $night-rain-wind;}
+.wi-night-showers:before {content: $night-showers;}
+.wi-night-sleet:before {content: $night-sleet;}
+.wi-night-sleet-storm:before {content: $night-sleet-storm;}
+.wi-night-snow:before {content: $night-snow;}
+.wi-night-snow-thunderstorm:before {content: $night-snow-thunderstorm;}
+.wi-night-snow-wind:before {content: $night-snow-wind;}
+.wi-night-sprinkle:before {content: $night-sprinkle;}
+.wi-night-storm-showers:before {content: $night-storm-showers;}
+.wi-night-thunderstorm:before {content: $night-thunderstorm;}
+.wi-lunar-eclipse:before {content: $lunar-eclipse;}
+.wi-stars:before {content: $stars;}
+.wi-storm-showers:before {content: $storm-showers;}
+.wi-thunderstorm:before {content: $thunderstorm;}
+.wi-night-alt-cloudy-high:before {content: $night-alt-cloudy-high;}
+.wi-night-cloudy-high:before {content: $night-cloudy-high;}
+.wi-night-alt-partly-cloudy:before {content: $night-alt-partly-cloudy;}

+ 12 - 0
src/main/vue/static/weather_icons/sass/icon-classes/classes-time.scss

@@ -0,0 +1,12 @@
+.wi-time-1:before {content: $time-1;}
+.wi-time-2:before {content: $time-2;}
+.wi-time-3:before {content: $time-3;}
+.wi-time-4:before {content: $time-4;}
+.wi-time-5:before {content: $time-5;}
+.wi-time-6:before {content: $time-6;}
+.wi-time-7:before {content: $time-7;}
+.wi-time-8:before {content: $time-8;}
+.wi-time-9:before {content: $time-9;}
+.wi-time-10:before {content: $time-10;}
+.wi-time-11:before {content: $time-11;}
+.wi-time-12:before {content: $time-12;}

+ 104 - 0
src/main/vue/static/weather_icons/sass/icon-classes/classes-wind-aliases.scss

@@ -0,0 +1,104 @@
+@mixin wind-rotate( $val: 0deg ) {
+  -webkit-transform: rotate($val);
+  -moz-transform: rotate($val);
+  -ms-transform: rotate($val);
+  -o-transform: rotate($val);
+  transform: rotate($val);
+}
+
+.wi-wind-towards-n    {
+  @include wind-rotate(0deg);
+}
+.wi-wind-towards-nne   {
+  @include wind-rotate(23deg);
+}
+.wi-wind-towards-ne    {
+  @include wind-rotate(45deg);
+}
+.wi-wind-towards-ene   {
+  @include wind-rotate(68deg);
+}
+.wi-wind-towards-e    {
+  @include wind-rotate(90deg);
+}
+.wi-wind-towards-ese   {
+  @include wind-rotate(113deg);
+}
+.wi-wind-towards-se    {
+  @include wind-rotate(135deg);
+}
+.wi-wind-towards-sse   {
+  @include wind-rotate(158deg);
+}
+.wi-wind-towards-s    {
+  @include wind-rotate(180deg);
+}
+.wi-wind-towards-ssw   {
+  @include wind-rotate(203deg);
+}
+.wi-wind-towards-sw    {
+  @include wind-rotate(225deg);
+}
+.wi-wind-towards-wsw   {
+  @include wind-rotate(248deg);
+}
+.wi-wind-towards-w    {
+  @include wind-rotate(270deg);
+}
+.wi-wind-towards-wnw   {
+  @include wind-rotate(293deg);
+}
+.wi-wind-towards-nw    {
+  @include wind-rotate(313deg);
+}
+.wi-wind-towards-nnw   {
+  @include wind-rotate(336deg);
+}
+.wi-wind-from-n    {
+  @include wind-rotate(0deg);
+}
+.wi-wind-from-nne   {
+  @include wind-rotate(23deg);
+}
+.wi-wind-from-ne    {
+  @include wind-rotate(45deg);
+}
+.wi-wind-from-ene   {
+  @include wind-rotate(68deg);
+}
+.wi-wind-from-e    {
+  @include wind-rotate(90deg);
+}
+.wi-wind-from-ese   {
+  @include wind-rotate(113deg);
+}
+.wi-wind-from-se    {
+  @include wind-rotate(135deg);
+}
+.wi-wind-from-sse   {
+  @include wind-rotate(158deg);
+}
+.wi-wind-from-s    {
+  @include wind-rotate(180deg);
+}
+.wi-wind-from-ssw   {
+  @include wind-rotate(203deg);
+}
+.wi-wind-from-sw    {
+  @include wind-rotate(225deg);
+}
+.wi-wind-from-wsw   {
+  @include wind-rotate(248deg);
+}
+.wi-wind-from-w    {
+  @include wind-rotate(270deg);
+}
+.wi-wind-from-wnw   {
+  @include wind-rotate(293deg);
+}
+.wi-wind-from-nw    {
+  @include wind-rotate(313deg);
+}
+.wi-wind-from-nnw   {
+  @include wind-rotate(336deg);
+}

+ 728 - 0
src/main/vue/static/weather_icons/sass/icon-classes/classes-wind-degrees.scss

@@ -0,0 +1,728 @@
+.#{$wi-css-prefix}-wind {
+  &.towards-0-deg {@include wind-rotate(0deg);}
+  &.towards-1-deg {@include wind-rotate(1deg);}
+  &.towards-2-deg {@include wind-rotate(2deg);}
+  &.towards-3-deg {@include wind-rotate(3deg);}
+  &.towards-4-deg {@include wind-rotate(4deg);}
+  &.towards-5-deg {@include wind-rotate(5deg);}
+  &.towards-6-deg {@include wind-rotate(6deg);}
+  &.towards-7-deg {@include wind-rotate(7deg);}
+  &.towards-8-deg {@include wind-rotate(8deg);}
+  &.towards-9-deg {@include wind-rotate(9deg);}
+  &.towards-10-deg {@include wind-rotate(10deg);}
+  &.towards-11-deg {@include wind-rotate(11deg);}
+  &.towards-12-deg {@include wind-rotate(12deg);}
+  &.towards-13-deg {@include wind-rotate(13deg);}
+  &.towards-14-deg {@include wind-rotate(14deg);}
+  &.towards-15-deg {@include wind-rotate(15deg);}
+  &.towards-16-deg {@include wind-rotate(16deg);}
+  &.towards-17-deg {@include wind-rotate(17deg);}
+  &.towards-18-deg {@include wind-rotate(18deg);}
+  &.towards-19-deg {@include wind-rotate(19deg);}
+  &.towards-20-deg {@include wind-rotate(20deg);}
+  &.towards-21-deg {@include wind-rotate(21deg);}
+  &.towards-22-deg {@include wind-rotate(22deg);}
+  &.towards-23-deg {@include wind-rotate(23deg);}
+  &.towards-24-deg {@include wind-rotate(24deg);}
+  &.towards-25-deg {@include wind-rotate(25deg);}
+  &.towards-26-deg {@include wind-rotate(26deg);}
+  &.towards-27-deg {@include wind-rotate(27deg);}
+  &.towards-28-deg {@include wind-rotate(28deg);}
+  &.towards-29-deg {@include wind-rotate(29deg);}
+  &.towards-30-deg {@include wind-rotate(30deg);}
+  &.towards-31-deg {@include wind-rotate(31deg);}
+  &.towards-32-deg {@include wind-rotate(32deg);}
+  &.towards-33-deg {@include wind-rotate(33deg);}
+  &.towards-34-deg {@include wind-rotate(34deg);}
+  &.towards-35-deg {@include wind-rotate(35deg);}
+  &.towards-36-deg {@include wind-rotate(36deg);}
+  &.towards-37-deg {@include wind-rotate(37deg);}
+  &.towards-38-deg {@include wind-rotate(38deg);}
+  &.towards-39-deg {@include wind-rotate(39deg);}
+  &.towards-40-deg {@include wind-rotate(40deg);}
+  &.towards-41-deg {@include wind-rotate(41deg);}
+  &.towards-42-deg {@include wind-rotate(42deg);}
+  &.towards-43-deg {@include wind-rotate(43deg);}
+  &.towards-44-deg {@include wind-rotate(44deg);}
+  &.towards-45-deg {@include wind-rotate(45deg);}
+  &.towards-46-deg {@include wind-rotate(46deg);}
+  &.towards-47-deg {@include wind-rotate(47deg);}
+  &.towards-48-deg {@include wind-rotate(48deg);}
+  &.towards-49-deg {@include wind-rotate(49deg);}
+  &.towards-50-deg {@include wind-rotate(50deg);}
+  &.towards-51-deg {@include wind-rotate(51deg);}
+  &.towards-52-deg {@include wind-rotate(52deg);}
+  &.towards-53-deg {@include wind-rotate(53deg);}
+  &.towards-54-deg {@include wind-rotate(54deg);}
+  &.towards-55-deg {@include wind-rotate(55deg);}
+  &.towards-56-deg {@include wind-rotate(56deg);}
+  &.towards-57-deg {@include wind-rotate(57deg);}
+  &.towards-58-deg {@include wind-rotate(58deg);}
+  &.towards-59-deg {@include wind-rotate(59deg);}
+  &.towards-60-deg {@include wind-rotate(60deg);}
+  &.towards-61-deg {@include wind-rotate(61deg);}
+  &.towards-62-deg {@include wind-rotate(62deg);}
+  &.towards-63-deg {@include wind-rotate(63deg);}
+  &.towards-64-deg {@include wind-rotate(64deg);}
+  &.towards-65-deg {@include wind-rotate(65deg);}
+  &.towards-66-deg {@include wind-rotate(66deg);}
+  &.towards-67-deg {@include wind-rotate(67deg);}
+  &.towards-68-deg {@include wind-rotate(68deg);}
+  &.towards-69-deg {@include wind-rotate(69deg);}
+  &.towards-70-deg {@include wind-rotate(70deg);}
+  &.towards-71-deg {@include wind-rotate(71deg);}
+  &.towards-72-deg {@include wind-rotate(72deg);}
+  &.towards-73-deg {@include wind-rotate(73deg);}
+  &.towards-74-deg {@include wind-rotate(74deg);}
+  &.towards-75-deg {@include wind-rotate(75deg);}
+  &.towards-76-deg {@include wind-rotate(76deg);}
+  &.towards-77-deg {@include wind-rotate(77deg);}
+  &.towards-78-deg {@include wind-rotate(78deg);}
+  &.towards-79-deg {@include wind-rotate(79deg);}
+  &.towards-80-deg {@include wind-rotate(80deg);}
+  &.towards-81-deg {@include wind-rotate(81deg);}
+  &.towards-82-deg {@include wind-rotate(82deg);}
+  &.towards-83-deg {@include wind-rotate(83deg);}
+  &.towards-84-deg {@include wind-rotate(84deg);}
+  &.towards-85-deg {@include wind-rotate(85deg);}
+  &.towards-86-deg {@include wind-rotate(86deg);}
+  &.towards-87-deg {@include wind-rotate(87deg);}
+  &.towards-88-deg {@include wind-rotate(88deg);}
+  &.towards-89-deg {@include wind-rotate(89deg);}
+  &.towards-90-deg {@include wind-rotate(90deg);}
+  &.towards-91-deg {@include wind-rotate(91deg);}
+  &.towards-92-deg {@include wind-rotate(92deg);}
+  &.towards-93-deg {@include wind-rotate(93deg);}
+  &.towards-94-deg {@include wind-rotate(94deg);}
+  &.towards-95-deg {@include wind-rotate(95deg);}
+  &.towards-96-deg {@include wind-rotate(96deg);}
+  &.towards-97-deg {@include wind-rotate(97deg);}
+  &.towards-98-deg {@include wind-rotate(98deg);}
+  &.towards-99-deg {@include wind-rotate(99deg);}
+  &.towards-100-deg {@include wind-rotate(100deg);}
+  &.towards-101-deg {@include wind-rotate(101deg);}
+  &.towards-102-deg {@include wind-rotate(102deg);}
+  &.towards-103-deg {@include wind-rotate(103deg);}
+  &.towards-104-deg {@include wind-rotate(104deg);}
+  &.towards-105-deg {@include wind-rotate(105deg);}
+  &.towards-106-deg {@include wind-rotate(106deg);}
+  &.towards-107-deg {@include wind-rotate(107deg);}
+  &.towards-108-deg {@include wind-rotate(108deg);}
+  &.towards-109-deg {@include wind-rotate(109deg);}
+  &.towards-110-deg {@include wind-rotate(110deg);}
+  &.towards-111-deg {@include wind-rotate(111deg);}
+  &.towards-112-deg {@include wind-rotate(112deg);}
+  &.towards-113-deg {@include wind-rotate(113deg);}
+  &.towards-114-deg {@include wind-rotate(114deg);}
+  &.towards-115-deg {@include wind-rotate(115deg);}
+  &.towards-116-deg {@include wind-rotate(116deg);}
+  &.towards-117-deg {@include wind-rotate(117deg);}
+  &.towards-118-deg {@include wind-rotate(118deg);}
+  &.towards-119-deg {@include wind-rotate(119deg);}
+  &.towards-120-deg {@include wind-rotate(120deg);}
+  &.towards-121-deg {@include wind-rotate(121deg);}
+  &.towards-122-deg {@include wind-rotate(122deg);}
+  &.towards-123-deg {@include wind-rotate(123deg);}
+  &.towards-124-deg {@include wind-rotate(124deg);}
+  &.towards-125-deg {@include wind-rotate(125deg);}
+  &.towards-126-deg {@include wind-rotate(126deg);}
+  &.towards-127-deg {@include wind-rotate(127deg);}
+  &.towards-128-deg {@include wind-rotate(128deg);}
+  &.towards-129-deg {@include wind-rotate(129deg);}
+  &.towards-130-deg {@include wind-rotate(130deg);}
+  &.towards-131-deg {@include wind-rotate(131deg);}
+  &.towards-132-deg {@include wind-rotate(132deg);}
+  &.towards-133-deg {@include wind-rotate(133deg);}
+  &.towards-134-deg {@include wind-rotate(134deg);}
+  &.towards-135-deg {@include wind-rotate(135deg);}
+  &.towards-136-deg {@include wind-rotate(136deg);}
+  &.towards-137-deg {@include wind-rotate(137deg);}
+  &.towards-138-deg {@include wind-rotate(138deg);}
+  &.towards-139-deg {@include wind-rotate(139deg);}
+  &.towards-140-deg {@include wind-rotate(140deg);}
+  &.towards-141-deg {@include wind-rotate(141deg);}
+  &.towards-142-deg {@include wind-rotate(142deg);}
+  &.towards-143-deg {@include wind-rotate(143deg);}
+  &.towards-144-deg {@include wind-rotate(144deg);}
+  &.towards-145-deg {@include wind-rotate(145deg);}
+  &.towards-146-deg {@include wind-rotate(146deg);}
+  &.towards-147-deg {@include wind-rotate(147deg);}
+  &.towards-148-deg {@include wind-rotate(148deg);}
+  &.towards-149-deg {@include wind-rotate(149deg);}
+  &.towards-150-deg {@include wind-rotate(150deg);}
+  &.towards-151-deg {@include wind-rotate(151deg);}
+  &.towards-152-deg {@include wind-rotate(152deg);}
+  &.towards-153-deg {@include wind-rotate(153deg);}
+  &.towards-154-deg {@include wind-rotate(154deg);}
+  &.towards-155-deg {@include wind-rotate(155deg);}
+  &.towards-156-deg {@include wind-rotate(156deg);}
+  &.towards-157-deg {@include wind-rotate(157deg);}
+  &.towards-158-deg {@include wind-rotate(158deg);}
+  &.towards-159-deg {@include wind-rotate(159deg);}
+  &.towards-160-deg {@include wind-rotate(160deg);}
+  &.towards-161-deg {@include wind-rotate(161deg);}
+  &.towards-162-deg {@include wind-rotate(162deg);}
+  &.towards-163-deg {@include wind-rotate(163deg);}
+  &.towards-164-deg {@include wind-rotate(164deg);}
+  &.towards-165-deg {@include wind-rotate(165deg);}
+  &.towards-166-deg {@include wind-rotate(166deg);}
+  &.towards-167-deg {@include wind-rotate(167deg);}
+  &.towards-168-deg {@include wind-rotate(168deg);}
+  &.towards-169-deg {@include wind-rotate(169deg);}
+  &.towards-170-deg {@include wind-rotate(170deg);}
+  &.towards-171-deg {@include wind-rotate(171deg);}
+  &.towards-172-deg {@include wind-rotate(172deg);}
+  &.towards-173-deg {@include wind-rotate(173deg);}
+  &.towards-174-deg {@include wind-rotate(174deg);}
+  &.towards-175-deg {@include wind-rotate(175deg);}
+  &.towards-176-deg {@include wind-rotate(176deg);}
+  &.towards-177-deg {@include wind-rotate(177deg);}
+  &.towards-178-deg {@include wind-rotate(178deg);}
+  &.towards-179-deg {@include wind-rotate(179deg);}
+  &.towards-180-deg {@include wind-rotate(180deg);}
+  &.towards-181-deg {@include wind-rotate(181deg);}
+  &.towards-182-deg {@include wind-rotate(182deg);}
+  &.towards-183-deg {@include wind-rotate(183deg);}
+  &.towards-184-deg {@include wind-rotate(184deg);}
+  &.towards-185-deg {@include wind-rotate(185deg);}
+  &.towards-186-deg {@include wind-rotate(186deg);}
+  &.towards-187-deg {@include wind-rotate(187deg);}
+  &.towards-188-deg {@include wind-rotate(188deg);}
+  &.towards-189-deg {@include wind-rotate(189deg);}
+  &.towards-190-deg {@include wind-rotate(190deg);}
+  &.towards-191-deg {@include wind-rotate(191deg);}
+  &.towards-192-deg {@include wind-rotate(192deg);}
+  &.towards-193-deg {@include wind-rotate(193deg);}
+  &.towards-194-deg {@include wind-rotate(194deg);}
+  &.towards-195-deg {@include wind-rotate(195deg);}
+  &.towards-196-deg {@include wind-rotate(196deg);}
+  &.towards-197-deg {@include wind-rotate(197deg);}
+  &.towards-198-deg {@include wind-rotate(198deg);}
+  &.towards-199-deg {@include wind-rotate(199deg);}
+  &.towards-200-deg {@include wind-rotate(200deg);}
+  &.towards-201-deg {@include wind-rotate(201deg);}
+  &.towards-202-deg {@include wind-rotate(202deg);}
+  &.towards-203-deg {@include wind-rotate(203deg);}
+  &.towards-204-deg {@include wind-rotate(204deg);}
+  &.towards-205-deg {@include wind-rotate(205deg);}
+  &.towards-206-deg {@include wind-rotate(206deg);}
+  &.towards-207-deg {@include wind-rotate(207deg);}
+  &.towards-208-deg {@include wind-rotate(208deg);}
+  &.towards-209-deg {@include wind-rotate(209deg);}
+  &.towards-210-deg {@include wind-rotate(210deg);}
+  &.towards-211-deg {@include wind-rotate(211deg);}
+  &.towards-212-deg {@include wind-rotate(212deg);}
+  &.towards-213-deg {@include wind-rotate(213deg);}
+  &.towards-214-deg {@include wind-rotate(214deg);}
+  &.towards-215-deg {@include wind-rotate(215deg);}
+  &.towards-216-deg {@include wind-rotate(216deg);}
+  &.towards-217-deg {@include wind-rotate(217deg);}
+  &.towards-218-deg {@include wind-rotate(218deg);}
+  &.towards-219-deg {@include wind-rotate(219deg);}
+  &.towards-220-deg {@include wind-rotate(220deg);}
+  &.towards-221-deg {@include wind-rotate(221deg);}
+  &.towards-222-deg {@include wind-rotate(222deg);}
+  &.towards-223-deg {@include wind-rotate(223deg);}
+  &.towards-224-deg {@include wind-rotate(224deg);}
+  &.towards-225-deg {@include wind-rotate(225deg);}
+  &.towards-226-deg {@include wind-rotate(226deg);}
+  &.towards-227-deg {@include wind-rotate(227deg);}
+  &.towards-228-deg {@include wind-rotate(228deg);}
+  &.towards-229-deg {@include wind-rotate(229deg);}
+  &.towards-230-deg {@include wind-rotate(230deg);}
+  &.towards-231-deg {@include wind-rotate(231deg);}
+  &.towards-232-deg {@include wind-rotate(232deg);}
+  &.towards-233-deg {@include wind-rotate(233deg);}
+  &.towards-234-deg {@include wind-rotate(234deg);}
+  &.towards-235-deg {@include wind-rotate(235deg);}
+  &.towards-236-deg {@include wind-rotate(236deg);}
+  &.towards-237-deg {@include wind-rotate(237deg);}
+  &.towards-238-deg {@include wind-rotate(238deg);}
+  &.towards-239-deg {@include wind-rotate(239deg);}
+  &.towards-240-deg {@include wind-rotate(240deg);}
+  &.towards-241-deg {@include wind-rotate(241deg);}
+  &.towards-242-deg {@include wind-rotate(242deg);}
+  &.towards-243-deg {@include wind-rotate(243deg);}
+  &.towards-244-deg {@include wind-rotate(244deg);}
+  &.towards-245-deg {@include wind-rotate(245deg);}
+  &.towards-246-deg {@include wind-rotate(246deg);}
+  &.towards-247-deg {@include wind-rotate(247deg);}
+  &.towards-248-deg {@include wind-rotate(248deg);}
+  &.towards-249-deg {@include wind-rotate(249deg);}
+  &.towards-250-deg {@include wind-rotate(250deg);}
+  &.towards-251-deg {@include wind-rotate(251deg);}
+  &.towards-252-deg {@include wind-rotate(252deg);}
+  &.towards-253-deg {@include wind-rotate(253deg);}
+  &.towards-254-deg {@include wind-rotate(254deg);}
+  &.towards-255-deg {@include wind-rotate(255deg);}
+  &.towards-256-deg {@include wind-rotate(256deg);}
+  &.towards-257-deg {@include wind-rotate(257deg);}
+  &.towards-258-deg {@include wind-rotate(258deg);}
+  &.towards-259-deg {@include wind-rotate(259deg);}
+  &.towards-260-deg {@include wind-rotate(260deg);}
+  &.towards-261-deg {@include wind-rotate(261deg);}
+  &.towards-262-deg {@include wind-rotate(262deg);}
+  &.towards-263-deg {@include wind-rotate(263deg);}
+  &.towards-264-deg {@include wind-rotate(264deg);}
+  &.towards-265-deg {@include wind-rotate(265deg);}
+  &.towards-266-deg {@include wind-rotate(266deg);}
+  &.towards-267-deg {@include wind-rotate(267deg);}
+  &.towards-268-deg {@include wind-rotate(268deg);}
+  &.towards-269-deg {@include wind-rotate(269deg);}
+  &.towards-270-deg {@include wind-rotate(270deg);}
+  &.towards-271-deg {@include wind-rotate(271deg);}
+  &.towards-272-deg {@include wind-rotate(272deg);}
+  &.towards-273-deg {@include wind-rotate(273deg);}
+  &.towards-274-deg {@include wind-rotate(274deg);}
+  &.towards-275-deg {@include wind-rotate(275deg);}
+  &.towards-276-deg {@include wind-rotate(276deg);}
+  &.towards-277-deg {@include wind-rotate(277deg);}
+  &.towards-278-deg {@include wind-rotate(278deg);}
+  &.towards-279-deg {@include wind-rotate(279deg);}
+  &.towards-280-deg {@include wind-rotate(280deg);}
+  &.towards-281-deg {@include wind-rotate(281deg);}
+  &.towards-282-deg {@include wind-rotate(282deg);}
+  &.towards-283-deg {@include wind-rotate(283deg);}
+  &.towards-284-deg {@include wind-rotate(284deg);}
+  &.towards-285-deg {@include wind-rotate(285deg);}
+  &.towards-286-deg {@include wind-rotate(286deg);}
+  &.towards-287-deg {@include wind-rotate(287deg);}
+  &.towards-288-deg {@include wind-rotate(288deg);}
+  &.towards-289-deg {@include wind-rotate(289deg);}
+  &.towards-290-deg {@include wind-rotate(290deg);}
+  &.towards-291-deg {@include wind-rotate(291deg);}
+  &.towards-292-deg {@include wind-rotate(292deg);}
+  &.towards-293-deg {@include wind-rotate(293deg);}
+  &.towards-294-deg {@include wind-rotate(294deg);}
+  &.towards-295-deg {@include wind-rotate(295deg);}
+  &.towards-296-deg {@include wind-rotate(296deg);}
+  &.towards-297-deg {@include wind-rotate(297deg);}
+  &.towards-298-deg {@include wind-rotate(298deg);}
+  &.towards-299-deg {@include wind-rotate(299deg);}
+  &.towards-300-deg {@include wind-rotate(300deg);}
+  &.towards-301-deg {@include wind-rotate(301deg);}
+  &.towards-302-deg {@include wind-rotate(302deg);}
+  &.towards-303-deg {@include wind-rotate(303deg);}
+  &.towards-304-deg {@include wind-rotate(304deg);}
+  &.towards-305-deg {@include wind-rotate(305deg);}
+  &.towards-306-deg {@include wind-rotate(306deg);}
+  &.towards-307-deg {@include wind-rotate(307deg);}
+  &.towards-308-deg {@include wind-rotate(308deg);}
+  &.towards-309-deg {@include wind-rotate(309deg);}
+  &.towards-310-deg {@include wind-rotate(310deg);}
+  &.towards-311-deg {@include wind-rotate(311deg);}
+  &.towards-312-deg {@include wind-rotate(312deg);}
+  &.towards-313-deg {@include wind-rotate(313deg);}
+  &.towards-314-deg {@include wind-rotate(314deg);}
+  &.towards-315-deg {@include wind-rotate(315deg);}
+  &.towards-316-deg {@include wind-rotate(316deg);}
+  &.towards-317-deg {@include wind-rotate(317deg);}
+  &.towards-318-deg {@include wind-rotate(318deg);}
+  &.towards-319-deg {@include wind-rotate(319deg);}
+  &.towards-320-deg {@include wind-rotate(320deg);}
+  &.towards-321-deg {@include wind-rotate(321deg);}
+  &.towards-322-deg {@include wind-rotate(322deg);}
+  &.towards-323-deg {@include wind-rotate(323deg);}
+  &.towards-324-deg {@include wind-rotate(324deg);}
+  &.towards-325-deg {@include wind-rotate(325deg);}
+  &.towards-326-deg {@include wind-rotate(326deg);}
+  &.towards-327-deg {@include wind-rotate(327deg);}
+  &.towards-328-deg {@include wind-rotate(328deg);}
+  &.towards-329-deg {@include wind-rotate(329deg);}
+  &.towards-330-deg {@include wind-rotate(330deg);}
+  &.towards-331-deg {@include wind-rotate(331deg);}
+  &.towards-332-deg {@include wind-rotate(332deg);}
+  &.towards-333-deg {@include wind-rotate(333deg);}
+  &.towards-334-deg {@include wind-rotate(334deg);}
+  &.towards-335-deg {@include wind-rotate(335deg);}
+  &.towards-336-deg {@include wind-rotate(336deg);}
+  &.towards-337-deg {@include wind-rotate(337deg);}
+  &.towards-338-deg {@include wind-rotate(338deg);}
+  &.towards-339-deg {@include wind-rotate(339deg);}
+  &.towards-340-deg {@include wind-rotate(340deg);}
+  &.towards-341-deg {@include wind-rotate(341deg);}
+  &.towards-342-deg {@include wind-rotate(342deg);}
+  &.towards-343-deg {@include wind-rotate(343deg);}
+  &.towards-344-deg {@include wind-rotate(344deg);}
+  &.towards-345-deg {@include wind-rotate(345deg);}
+  &.towards-346-deg {@include wind-rotate(346deg);}
+  &.towards-347-deg {@include wind-rotate(347deg);}
+  &.towards-348-deg {@include wind-rotate(348deg);}
+  &.towards-349-deg {@include wind-rotate(349deg);}
+  &.towards-350-deg {@include wind-rotate(350deg);}
+  &.towards-351-deg {@include wind-rotate(351deg);}
+  &.towards-352-deg {@include wind-rotate(352deg);}
+  &.towards-353-deg {@include wind-rotate(353deg);}
+  &.towards-354-deg {@include wind-rotate(354deg);}
+  &.towards-355-deg {@include wind-rotate(355deg);}
+  &.towards-356-deg {@include wind-rotate(356deg);}
+  &.towards-357-deg {@include wind-rotate(357deg);}
+  &.towards-358-deg {@include wind-rotate(358deg);}
+  &.towards-359-deg {@include wind-rotate(359deg);}
+  &.towards-360-deg {@include wind-rotate(0deg);}
+  &.from-0-deg {@include wind-rotate(180deg);}
+  &.from-1-deg {@include wind-rotate(181deg);}
+  &.from-2-deg {@include wind-rotate(182deg);}
+  &.from-3-deg {@include wind-rotate(183deg);}
+  &.from-4-deg {@include wind-rotate(184deg);}
+  &.from-5-deg {@include wind-rotate(185deg);}
+  &.from-6-deg {@include wind-rotate(186deg);}
+  &.from-7-deg {@include wind-rotate(187deg);}
+  &.from-8-deg {@include wind-rotate(188deg);}
+  &.from-9-deg {@include wind-rotate(189deg);}
+  &.from-10-deg {@include wind-rotate(190deg);}
+  &.from-11-deg {@include wind-rotate(191deg);}
+  &.from-12-deg {@include wind-rotate(192deg);}
+  &.from-13-deg {@include wind-rotate(193deg);}
+  &.from-14-deg {@include wind-rotate(194deg);}
+  &.from-15-deg {@include wind-rotate(195deg);}
+  &.from-16-deg {@include wind-rotate(196deg);}
+  &.from-17-deg {@include wind-rotate(197deg);}
+  &.from-18-deg {@include wind-rotate(198deg);}
+  &.from-19-deg {@include wind-rotate(199deg);}
+  &.from-20-deg {@include wind-rotate(200deg);}
+  &.from-21-deg {@include wind-rotate(201deg);}
+  &.from-22-deg {@include wind-rotate(202deg);}
+  &.from-23-deg {@include wind-rotate(203deg);}
+  &.from-24-deg {@include wind-rotate(204deg);}
+  &.from-25-deg {@include wind-rotate(205deg);}
+  &.from-26-deg {@include wind-rotate(206deg);}
+  &.from-27-deg {@include wind-rotate(207deg);}
+  &.from-28-deg {@include wind-rotate(208deg);}
+  &.from-29-deg {@include wind-rotate(209deg);}
+  &.from-30-deg {@include wind-rotate(210deg);}
+  &.from-31-deg {@include wind-rotate(211deg);}
+  &.from-32-deg {@include wind-rotate(212deg);}
+  &.from-33-deg {@include wind-rotate(213deg);}
+  &.from-34-deg {@include wind-rotate(214deg);}
+  &.from-35-deg {@include wind-rotate(215deg);}
+  &.from-36-deg {@include wind-rotate(216deg);}
+  &.from-37-deg {@include wind-rotate(217deg);}
+  &.from-38-deg {@include wind-rotate(218deg);}
+  &.from-39-deg {@include wind-rotate(219deg);}
+  &.from-40-deg {@include wind-rotate(220deg);}
+  &.from-41-deg {@include wind-rotate(221deg);}
+  &.from-42-deg {@include wind-rotate(222deg);}
+  &.from-43-deg {@include wind-rotate(223deg);}
+  &.from-44-deg {@include wind-rotate(224deg);}
+  &.from-45-deg {@include wind-rotate(225deg);}
+  &.from-46-deg {@include wind-rotate(226deg);}
+  &.from-47-deg {@include wind-rotate(227deg);}
+  &.from-48-deg {@include wind-rotate(228deg);}
+  &.from-49-deg {@include wind-rotate(229deg);}
+  &.from-50-deg {@include wind-rotate(230deg);}
+  &.from-51-deg {@include wind-rotate(231deg);}
+  &.from-52-deg {@include wind-rotate(232deg);}
+  &.from-53-deg {@include wind-rotate(233deg);}
+  &.from-54-deg {@include wind-rotate(234deg);}
+  &.from-55-deg {@include wind-rotate(235deg);}
+  &.from-56-deg {@include wind-rotate(236deg);}
+  &.from-57-deg {@include wind-rotate(237deg);}
+  &.from-58-deg {@include wind-rotate(238deg);}
+  &.from-59-deg {@include wind-rotate(239deg);}
+  &.from-60-deg {@include wind-rotate(240deg);}
+  &.from-61-deg {@include wind-rotate(241deg);}
+  &.from-62-deg {@include wind-rotate(242deg);}
+  &.from-63-deg {@include wind-rotate(243deg);}
+  &.from-64-deg {@include wind-rotate(244deg);}
+  &.from-65-deg {@include wind-rotate(245deg);}
+  &.from-66-deg {@include wind-rotate(246deg);}
+  &.from-67-deg {@include wind-rotate(247deg);}
+  &.from-68-deg {@include wind-rotate(248deg);}
+  &.from-69-deg {@include wind-rotate(249deg);}
+  &.from-70-deg {@include wind-rotate(250deg);}
+  &.from-71-deg {@include wind-rotate(251deg);}
+  &.from-72-deg {@include wind-rotate(252deg);}
+  &.from-73-deg {@include wind-rotate(253deg);}
+  &.from-74-deg {@include wind-rotate(254deg);}
+  &.from-75-deg {@include wind-rotate(255deg);}
+  &.from-76-deg {@include wind-rotate(256deg);}
+  &.from-77-deg {@include wind-rotate(257deg);}
+  &.from-78-deg {@include wind-rotate(258deg);}
+  &.from-79-deg {@include wind-rotate(259deg);}
+  &.from-80-deg {@include wind-rotate(260deg);}
+  &.from-81-deg {@include wind-rotate(261deg);}
+  &.from-82-deg {@include wind-rotate(262deg);}
+  &.from-83-deg {@include wind-rotate(263deg);}
+  &.from-84-deg {@include wind-rotate(264deg);}
+  &.from-85-deg {@include wind-rotate(265deg);}
+  &.from-86-deg {@include wind-rotate(266deg);}
+  &.from-87-deg {@include wind-rotate(267deg);}
+  &.from-88-deg {@include wind-rotate(268deg);}
+  &.from-89-deg {@include wind-rotate(269deg);}
+  &.from-90-deg {@include wind-rotate(270deg);}
+  &.from-91-deg {@include wind-rotate(271deg);}
+  &.from-92-deg {@include wind-rotate(272deg);}
+  &.from-93-deg {@include wind-rotate(273deg);}
+  &.from-94-deg {@include wind-rotate(274deg);}
+  &.from-95-deg {@include wind-rotate(275deg);}
+  &.from-96-deg {@include wind-rotate(276deg);}
+  &.from-97-deg {@include wind-rotate(277deg);}
+  &.from-98-deg {@include wind-rotate(278deg);}
+  &.from-99-deg {@include wind-rotate(279deg);}
+  &.from-100-deg {@include wind-rotate(280deg);}
+  &.from-101-deg {@include wind-rotate(281deg);}
+  &.from-102-deg {@include wind-rotate(282deg);}
+  &.from-103-deg {@include wind-rotate(283deg);}
+  &.from-104-deg {@include wind-rotate(284deg);}
+  &.from-105-deg {@include wind-rotate(285deg);}
+  &.from-106-deg {@include wind-rotate(286deg);}
+  &.from-107-deg {@include wind-rotate(287deg);}
+  &.from-108-deg {@include wind-rotate(288deg);}
+  &.from-109-deg {@include wind-rotate(289deg);}
+  &.from-110-deg {@include wind-rotate(290deg);}
+  &.from-111-deg {@include wind-rotate(291deg);}
+  &.from-112-deg {@include wind-rotate(292deg);}
+  &.from-113-deg {@include wind-rotate(293deg);}
+  &.from-114-deg {@include wind-rotate(294deg);}
+  &.from-115-deg {@include wind-rotate(295deg);}
+  &.from-116-deg {@include wind-rotate(296deg);}
+  &.from-117-deg {@include wind-rotate(297deg);}
+  &.from-118-deg {@include wind-rotate(298deg);}
+  &.from-119-deg {@include wind-rotate(299deg);}
+  &.from-120-deg {@include wind-rotate(300deg);}
+  &.from-121-deg {@include wind-rotate(301deg);}
+  &.from-122-deg {@include wind-rotate(302deg);}
+  &.from-123-deg {@include wind-rotate(303deg);}
+  &.from-124-deg {@include wind-rotate(304deg);}
+  &.from-125-deg {@include wind-rotate(305deg);}
+  &.from-126-deg {@include wind-rotate(306deg);}
+  &.from-127-deg {@include wind-rotate(307deg);}
+  &.from-128-deg {@include wind-rotate(308deg);}
+  &.from-129-deg {@include wind-rotate(309deg);}
+  &.from-130-deg {@include wind-rotate(310deg);}
+  &.from-131-deg {@include wind-rotate(311deg);}
+  &.from-132-deg {@include wind-rotate(312deg);}
+  &.from-133-deg {@include wind-rotate(313deg);}
+  &.from-134-deg {@include wind-rotate(314deg);}
+  &.from-135-deg {@include wind-rotate(315deg);}
+  &.from-136-deg {@include wind-rotate(316deg);}
+  &.from-137-deg {@include wind-rotate(317deg);}
+  &.from-138-deg {@include wind-rotate(318deg);}
+  &.from-139-deg {@include wind-rotate(319deg);}
+  &.from-140-deg {@include wind-rotate(320deg);}
+  &.from-141-deg {@include wind-rotate(321deg);}
+  &.from-142-deg {@include wind-rotate(322deg);}
+  &.from-143-deg {@include wind-rotate(323deg);}
+  &.from-144-deg {@include wind-rotate(324deg);}
+  &.from-145-deg {@include wind-rotate(325deg);}
+  &.from-146-deg {@include wind-rotate(326deg);}
+  &.from-147-deg {@include wind-rotate(327deg);}
+  &.from-148-deg {@include wind-rotate(328deg);}
+  &.from-149-deg {@include wind-rotate(329deg);}
+  &.from-150-deg {@include wind-rotate(330deg);}
+  &.from-151-deg {@include wind-rotate(331deg);}
+  &.from-152-deg {@include wind-rotate(332deg);}
+  &.from-153-deg {@include wind-rotate(333deg);}
+  &.from-154-deg {@include wind-rotate(334deg);}
+  &.from-155-deg {@include wind-rotate(335deg);}
+  &.from-156-deg {@include wind-rotate(336deg);}
+  &.from-157-deg {@include wind-rotate(337deg);}
+  &.from-158-deg {@include wind-rotate(338deg);}
+  &.from-159-deg {@include wind-rotate(339deg);}
+  &.from-160-deg {@include wind-rotate(340deg);}
+  &.from-161-deg {@include wind-rotate(341deg);}
+  &.from-162-deg {@include wind-rotate(342deg);}
+  &.from-163-deg {@include wind-rotate(343deg);}
+  &.from-164-deg {@include wind-rotate(344deg);}
+  &.from-165-deg {@include wind-rotate(345deg);}
+  &.from-166-deg {@include wind-rotate(346deg);}
+  &.from-167-deg {@include wind-rotate(347deg);}
+  &.from-168-deg {@include wind-rotate(348deg);}
+  &.from-169-deg {@include wind-rotate(349deg);}
+  &.from-170-deg {@include wind-rotate(350deg);}
+  &.from-171-deg {@include wind-rotate(351deg);}
+  &.from-172-deg {@include wind-rotate(352deg);}
+  &.from-173-deg {@include wind-rotate(353deg);}
+  &.from-174-deg {@include wind-rotate(354deg);}
+  &.from-175-deg {@include wind-rotate(355deg);}
+  &.from-176-deg {@include wind-rotate(356deg);}
+  &.from-177-deg {@include wind-rotate(357deg);}
+  &.from-178-deg {@include wind-rotate(358deg);}
+  &.from-179-deg {@include wind-rotate(359deg);}
+  &.from-180-deg {@include wind-rotate(0deg);}
+  &.from-181-deg {@include wind-rotate(1deg);}
+  &.from-182-deg {@include wind-rotate(2deg);}
+  &.from-183-deg {@include wind-rotate(3deg);}
+  &.from-184-deg {@include wind-rotate(4deg);}
+  &.from-185-deg {@include wind-rotate(5deg);}
+  &.from-186-deg {@include wind-rotate(6deg);}
+  &.from-187-deg {@include wind-rotate(7deg);}
+  &.from-188-deg {@include wind-rotate(8deg);}
+  &.from-189-deg {@include wind-rotate(9deg);}
+  &.from-190-deg {@include wind-rotate(10deg);}
+  &.from-191-deg {@include wind-rotate(11deg);}
+  &.from-192-deg {@include wind-rotate(12deg);}
+  &.from-193-deg {@include wind-rotate(13deg);}
+  &.from-194-deg {@include wind-rotate(14deg);}
+  &.from-195-deg {@include wind-rotate(15deg);}
+  &.from-196-deg {@include wind-rotate(16deg);}
+  &.from-197-deg {@include wind-rotate(17deg);}
+  &.from-198-deg {@include wind-rotate(18deg);}
+  &.from-199-deg {@include wind-rotate(19deg);}
+  &.from-200-deg {@include wind-rotate(20deg);}
+  &.from-201-deg {@include wind-rotate(21deg);}
+  &.from-202-deg {@include wind-rotate(22deg);}
+  &.from-203-deg {@include wind-rotate(23deg);}
+  &.from-204-deg {@include wind-rotate(24deg);}
+  &.from-205-deg {@include wind-rotate(25deg);}
+  &.from-206-deg {@include wind-rotate(26deg);}
+  &.from-207-deg {@include wind-rotate(27deg);}
+  &.from-208-deg {@include wind-rotate(28deg);}
+  &.from-209-deg {@include wind-rotate(29deg);}
+  &.from-210-deg {@include wind-rotate(30deg);}
+  &.from-211-deg {@include wind-rotate(31deg);}
+  &.from-212-deg {@include wind-rotate(32deg);}
+  &.from-213-deg {@include wind-rotate(33deg);}
+  &.from-214-deg {@include wind-rotate(34deg);}
+  &.from-215-deg {@include wind-rotate(35deg);}
+  &.from-216-deg {@include wind-rotate(36deg);}
+  &.from-217-deg {@include wind-rotate(37deg);}
+  &.from-218-deg {@include wind-rotate(38deg);}
+  &.from-219-deg {@include wind-rotate(39deg);}
+  &.from-220-deg {@include wind-rotate(40deg);}
+  &.from-221-deg {@include wind-rotate(41deg);}
+  &.from-222-deg {@include wind-rotate(42deg);}
+  &.from-223-deg {@include wind-rotate(43deg);}
+  &.from-224-deg {@include wind-rotate(44deg);}
+  &.from-225-deg {@include wind-rotate(45deg);}
+  &.from-226-deg {@include wind-rotate(46deg);}
+  &.from-227-deg {@include wind-rotate(47deg);}
+  &.from-228-deg {@include wind-rotate(48deg);}
+  &.from-229-deg {@include wind-rotate(49deg);}
+  &.from-230-deg {@include wind-rotate(50deg);}
+  &.from-231-deg {@include wind-rotate(51deg);}
+  &.from-232-deg {@include wind-rotate(52deg);}
+  &.from-233-deg {@include wind-rotate(53deg);}
+  &.from-234-deg {@include wind-rotate(54deg);}
+  &.from-235-deg {@include wind-rotate(55deg);}
+  &.from-236-deg {@include wind-rotate(56deg);}
+  &.from-237-deg {@include wind-rotate(57deg);}
+  &.from-238-deg {@include wind-rotate(58deg);}
+  &.from-239-deg {@include wind-rotate(59deg);}
+  &.from-240-deg {@include wind-rotate(60deg);}
+  &.from-241-deg {@include wind-rotate(61deg);}
+  &.from-242-deg {@include wind-rotate(62deg);}
+  &.from-243-deg {@include wind-rotate(63deg);}
+  &.from-244-deg {@include wind-rotate(64deg);}
+  &.from-245-deg {@include wind-rotate(65deg);}
+  &.from-246-deg {@include wind-rotate(66deg);}
+  &.from-247-deg {@include wind-rotate(67deg);}
+  &.from-248-deg {@include wind-rotate(68deg);}
+  &.from-249-deg {@include wind-rotate(69deg);}
+  &.from-250-deg {@include wind-rotate(70deg);}
+  &.from-251-deg {@include wind-rotate(71deg);}
+  &.from-252-deg {@include wind-rotate(72deg);}
+  &.from-253-deg {@include wind-rotate(73deg);}
+  &.from-254-deg {@include wind-rotate(74deg);}
+  &.from-255-deg {@include wind-rotate(75deg);}
+  &.from-256-deg {@include wind-rotate(76deg);}
+  &.from-257-deg {@include wind-rotate(77deg);}
+  &.from-258-deg {@include wind-rotate(78deg);}
+  &.from-259-deg {@include wind-rotate(79deg);}
+  &.from-260-deg {@include wind-rotate(80deg);}
+  &.from-261-deg {@include wind-rotate(81deg);}
+  &.from-262-deg {@include wind-rotate(82deg);}
+  &.from-263-deg {@include wind-rotate(83deg);}
+  &.from-264-deg {@include wind-rotate(84deg);}
+  &.from-265-deg {@include wind-rotate(85deg);}
+  &.from-266-deg {@include wind-rotate(86deg);}
+  &.from-267-deg {@include wind-rotate(87deg);}
+  &.from-268-deg {@include wind-rotate(88deg);}
+  &.from-269-deg {@include wind-rotate(89deg);}
+  &.from-270-deg {@include wind-rotate(90deg);}
+  &.from-271-deg {@include wind-rotate(91deg);}
+  &.from-272-deg {@include wind-rotate(92deg);}
+  &.from-273-deg {@include wind-rotate(93deg);}
+  &.from-274-deg {@include wind-rotate(94deg);}
+  &.from-275-deg {@include wind-rotate(95deg);}
+  &.from-276-deg {@include wind-rotate(96deg);}
+  &.from-277-deg {@include wind-rotate(97deg);}
+  &.from-278-deg {@include wind-rotate(98deg);}
+  &.from-279-deg {@include wind-rotate(99deg);}
+  &.from-280-deg {@include wind-rotate(100deg);}
+  &.from-281-deg {@include wind-rotate(101deg);}
+  &.from-282-deg {@include wind-rotate(102deg);}
+  &.from-283-deg {@include wind-rotate(103deg);}
+  &.from-284-deg {@include wind-rotate(104deg);}
+  &.from-285-deg {@include wind-rotate(105deg);}
+  &.from-286-deg {@include wind-rotate(106deg);}
+  &.from-287-deg {@include wind-rotate(107deg);}
+  &.from-288-deg {@include wind-rotate(108deg);}
+  &.from-289-deg {@include wind-rotate(109deg);}
+  &.from-290-deg {@include wind-rotate(110deg);}
+  &.from-291-deg {@include wind-rotate(111deg);}
+  &.from-292-deg {@include wind-rotate(112deg);}
+  &.from-293-deg {@include wind-rotate(113deg);}
+  &.from-294-deg {@include wind-rotate(114deg);}
+  &.from-295-deg {@include wind-rotate(115deg);}
+  &.from-296-deg {@include wind-rotate(116deg);}
+  &.from-297-deg {@include wind-rotate(117deg);}
+  &.from-298-deg {@include wind-rotate(118deg);}
+  &.from-299-deg {@include wind-rotate(119deg);}
+  &.from-300-deg {@include wind-rotate(120deg);}
+  &.from-301-deg {@include wind-rotate(121deg);}
+  &.from-302-deg {@include wind-rotate(122deg);}
+  &.from-303-deg {@include wind-rotate(123deg);}
+  &.from-304-deg {@include wind-rotate(124deg);}
+  &.from-305-deg {@include wind-rotate(125deg);}
+  &.from-306-deg {@include wind-rotate(126deg);}
+  &.from-307-deg {@include wind-rotate(127deg);}
+  &.from-308-deg {@include wind-rotate(128deg);}
+  &.from-309-deg {@include wind-rotate(129deg);}
+  &.from-310-deg {@include wind-rotate(130deg);}
+  &.from-311-deg {@include wind-rotate(131deg);}
+  &.from-312-deg {@include wind-rotate(132deg);}
+  &.from-313-deg {@include wind-rotate(133deg);}
+  &.from-314-deg {@include wind-rotate(134deg);}
+  &.from-315-deg {@include wind-rotate(135deg);}
+  &.from-316-deg {@include wind-rotate(136deg);}
+  &.from-317-deg {@include wind-rotate(137deg);}
+  &.from-318-deg {@include wind-rotate(138deg);}
+  &.from-319-deg {@include wind-rotate(139deg);}
+  &.from-320-deg {@include wind-rotate(140deg);}
+  &.from-321-deg {@include wind-rotate(141deg);}
+  &.from-322-deg {@include wind-rotate(142deg);}
+  &.from-323-deg {@include wind-rotate(143deg);}
+  &.from-324-deg {@include wind-rotate(144deg);}
+  &.from-325-deg {@include wind-rotate(145deg);}
+  &.from-326-deg {@include wind-rotate(146deg);}
+  &.from-327-deg {@include wind-rotate(147deg);}
+  &.from-328-deg {@include wind-rotate(148deg);}
+  &.from-329-deg {@include wind-rotate(149deg);}
+  &.from-330-deg {@include wind-rotate(150deg);}
+  &.from-331-deg {@include wind-rotate(151deg);}
+  &.from-332-deg {@include wind-rotate(152deg);}
+  &.from-333-deg {@include wind-rotate(153deg);}
+  &.from-334-deg {@include wind-rotate(154deg);}
+  &.from-335-deg {@include wind-rotate(155deg);}
+  &.from-336-deg {@include wind-rotate(156deg);}
+  &.from-337-deg {@include wind-rotate(157deg);}
+  &.from-338-deg {@include wind-rotate(158deg);}
+  &.from-339-deg {@include wind-rotate(159deg);}
+  &.from-340-deg {@include wind-rotate(160deg);}
+  &.from-341-deg {@include wind-rotate(161deg);}
+  &.from-342-deg {@include wind-rotate(162deg);}
+  &.from-343-deg {@include wind-rotate(163deg);}
+  &.from-344-deg {@include wind-rotate(164deg);}
+  &.from-345-deg {@include wind-rotate(165deg);}
+  &.from-346-deg {@include wind-rotate(166deg);}
+  &.from-347-deg {@include wind-rotate(167deg);}
+  &.from-348-deg {@include wind-rotate(168deg);}
+  &.from-349-deg {@include wind-rotate(169deg);}
+  &.from-350-deg {@include wind-rotate(170deg);}
+  &.from-351-deg {@include wind-rotate(171deg);}
+  &.from-352-deg {@include wind-rotate(172deg);}
+  &.from-353-deg {@include wind-rotate(173deg);}
+  &.from-354-deg {@include wind-rotate(174deg);}
+  &.from-355-deg {@include wind-rotate(175deg);}
+  &.from-356-deg {@include wind-rotate(176deg);}
+  &.from-357-deg {@include wind-rotate(177deg);}
+  &.from-358-deg {@include wind-rotate(178deg);}
+  &.from-359-deg {@include wind-rotate(179deg);}
+  &.from-360-deg {@include wind-rotate(180deg);}
+}
+
+.wi-wind-towards-n    {
+  @extend .wi-wind.towards-0-deg;
+}

+ 15 - 0
src/main/vue/static/weather_icons/sass/icon-classes/classes-wind.scss

@@ -0,0 +1,15 @@
+// Wind Variables 2.0
+
+$wind: "\f0b1";
+
+.#{$wi-css-prefix}-wind:before { content: $wind; }
+
+@mixin wind-rotate( $val: 0deg ) {
+  -webkit-transform: rotate($val);
+  -moz-transform: rotate($val);
+  -ms-transform: rotate($val);
+  -o-transform: rotate($val);
+  transform: rotate($val);
+}
+
+@import "classes-wind-degrees.scss";

+ 13 - 0
src/main/vue/static/weather_icons/sass/icon-variables/variables-beaufort.scss

@@ -0,0 +1,13 @@
+$wind-beaufort-0: "\f0b7";
+$wind-beaufort-1: "\f0b8";
+$wind-beaufort-2: "\f0b9";
+$wind-beaufort-3: "\f0ba";
+$wind-beaufort-4: "\f0bb";
+$wind-beaufort-5: "\f0bc";
+$wind-beaufort-6: "\f0bd";
+$wind-beaufort-7: "\f0be";
+$wind-beaufort-8: "\f0bf";
+$wind-beaufort-9: "\f0c0";
+$wind-beaufort-10: "\f0c1";
+$wind-beaufort-11: "\f0c2";
+$wind-beaufort-12: "\f0c3";

+ 26 - 0
src/main/vue/static/weather_icons/sass/icon-variables/variables-day.scss

@@ -0,0 +1,26 @@
+$day-sunny: "\f00d";
+$day-cloudy: "\f002";
+$day-cloudy-gusts: "\f000";
+$day-cloudy-windy: "\f001";
+$day-fog: "\f003";
+$day-hail: "\f004";
+$day-haze: "\f0b6";
+$day-lightning: "\f005";
+$day-rain: "\f008";
+$day-rain-mix: "\f006";
+$day-rain-wind: "\f007";
+$day-showers: "\f009";
+$day-sleet: "\f0b2";
+$day-sleet-storm: "\f068";
+$day-snow: "\f00a";
+$day-snow-thunderstorm: "\f06b";
+$day-snow-wind: "\f065";
+$day-sprinkle: "\f00b";
+$day-storm-showers: "\f00e";
+$day-sunny-overcast: "\f00c";
+$day-thunderstorm: "\f010";
+$day-windy: "\f085";
+$solar-eclipse: "\f06e";
+$hot: "\f072";
+$day-cloudy-high: "\f07d";
+$day-light-wind: "\f0c4";

+ 8 - 0
src/main/vue/static/weather_icons/sass/icon-variables/variables-direction.scss

@@ -0,0 +1,8 @@
+$direction-up: "\f058";
+$direction-up-right: "\f057";
+$direction-right: "\f04d";
+$direction-down-right: "\f088";
+$direction-down: "\f044";
+$direction-down-left: "\f043";
+$direction-left: "\f048";
+$direction-up-left: "\f087";

+ 23 - 0
src/main/vue/static/weather_icons/sass/icon-variables/variables-misc.scss

@@ -0,0 +1,23 @@
+$alien: "\f075";
+$celsius: "\f03c";
+$fahrenheit: "\f045";
+$degrees: "\f042";
+$thermometer: "\f055";
+$thermometer-exterior: "\f053";
+$thermometer-internal: "\f054";
+$cloud-down: "\f03d";
+$cloud-up: "\f040";
+$cloud-refresh: "\f03e";
+$horizon: "\f047";
+$horizon-alt: "\f046";
+$sunrise: "\f051";
+$sunset: "\f052";
+$moonrise: "\f0c9";
+$moonset: "\f0ca";
+$refresh: "\f04c";
+$refresh-alt: "\f04b";
+$umbrella: "\f084";
+$barometer: "\f079";
+$humidity: "\f07a";
+$na: "\f07b";
+$train: "\f0cb";

+ 56 - 0
src/main/vue/static/weather_icons/sass/icon-variables/variables-moon.scss

@@ -0,0 +1,56 @@
+$moon-new: "\f095";
+$moon-waxing-crescent-1: "\f096";
+$moon-waxing-crescent-2: "\f097";
+$moon-waxing-crescent-3: "\f098";
+$moon-waxing-crescent-4: "\f099";
+$moon-waxing-crescent-5: "\f09a";
+$moon-waxing-crescent-6: "\f09b";
+$moon-first-quarter: "\f09c";
+$moon-waxing-gibbous-1: "\f09d";
+$moon-waxing-gibbous-2: "\f09e";
+$moon-waxing-gibbous-3: "\f09f";
+$moon-waxing-gibbous-4: "\f0a0";
+$moon-waxing-gibbous-5: "\f0a1";
+$moon-waxing-gibbous-6: "\f0a2";
+$moon-full: "\f0a3";
+$moon-waning-gibbous-1: "\f0a4";
+$moon-waning-gibbous-2: "\f0a5";
+$moon-waning-gibbous-3: "\f0a6";
+$moon-waning-gibbous-4: "\f0a7";
+$moon-waning-gibbous-5: "\f0a8";
+$moon-waning-gibbous-6: "\f0a9";
+$moon-third-quarter: "\f0aa";
+$moon-waning-crescent-1: "\f0ab";
+$moon-waning-crescent-2: "\f0ac";
+$moon-waning-crescent-3: "\f0ad";
+$moon-waning-crescent-4: "\f0ae";
+$moon-waning-crescent-5: "\f0af";
+$moon-waning-crescent-6: "\f0b0";
+$moon-alt-new: "\f0eb";
+$moon-alt-waxing-crescent-1: "\f0d0";
+$moon-alt-waxing-crescent-2: "\f0d1";
+$moon-alt-waxing-crescent-3: "\f0d2";
+$moon-alt-waxing-crescent-4: "\f0d3";
+$moon-alt-waxing-crescent-5: "\f0d4";
+$moon-alt-waxing-crescent-6: "\f0d5";
+$moon-alt-first-quarter: "\f0d6";
+$moon-alt-waxing-gibbous-1: "\f0d7";
+$moon-alt-waxing-gibbous-2: "\f0d8";
+$moon-alt-waxing-gibbous-3: "\f0d9";
+$moon-alt-waxing-gibbous-4: "\f0da";
+$moon-alt-waxing-gibbous-5: "\f0db";
+$moon-alt-waxing-gibbous-6: "\f0dc";
+$moon-alt-full: "\f0dd";
+$moon-alt-waning-gibbous-1: "\f0de";
+$moon-alt-waning-gibbous-2: "\f0df";
+$moon-alt-waning-gibbous-3: "\f0e0";
+$moon-alt-waning-gibbous-4: "\f0e1";
+$moon-alt-waning-gibbous-5: "\f0e2";
+$moon-alt-waning-gibbous-6: "\f0e3";
+$moon-alt-third-quarter: "\f0e4";
+$moon-alt-waning-crescent-1: "\f0e5";
+$moon-alt-waning-crescent-2: "\f0e6";
+$moon-alt-waning-crescent-3: "\f0e7";
+$moon-alt-waning-crescent-4: "\f0e8";
+$moon-alt-waning-crescent-5: "\f0e9";
+$moon-alt-waning-crescent-6: "\f0ea";

+ 40 - 0
src/main/vue/static/weather_icons/sass/icon-variables/variables-neutral.scss

@@ -0,0 +1,40 @@
+$cloud: "\f041";
+$cloudy: "\f013";
+$cloudy-gusts: "\f011";
+$cloudy-windy: "\f012";
+$fog: "\f014";
+$hail: "\f015";
+$rain: "\f019";
+$rain-mix: "\f017";
+$rain-wind: "\f018";
+$showers: "\f01a";
+$sleet: "\f0b5";
+$snow: "\f01b";
+$sprinkle: "\f01c";
+$storm-showers: "\f01d";
+$thunderstorm: "\f01e";
+$snow-wind: "\f064";
+$snow: "\f01b";
+$smog: "\f074";
+$smoke: "\f062";
+$lightning: "\f016";
+$raindrops: "\f04e";
+$raindrop: "\f078";
+$dust: "\f063";
+$snowflake-cold: "\f076";
+$windy: "\f021";
+$strong-wind: "\f050";
+$sandstorm: "\f082";
+$earthquake: "\f0c6";
+$fire: "\f0c7";
+$flood: "\f07c";
+$meteor: "\f071";
+$tsunami: "\f0c5";
+$volcano: "\f0c8";
+$hurricane: "\f073";
+$tornado: "\f056";
+$small-craft-advisory: "\f0cc";
+$gale-warning: "\f0cd";
+$storm-warning: "\f0ce";
+$hurricane-warning: "\f0cf";
+$wind-direction: "\f0b1";

+ 44 - 0
src/main/vue/static/weather_icons/sass/icon-variables/variables-night.scss

@@ -0,0 +1,44 @@
+$night-clear: "\f02e";
+$night-alt-cloudy: "\f086";
+$night-alt-cloudy-gusts: "\f022";
+$night-alt-cloudy-windy: "\f023";
+$night-alt-hail: "\f024";
+$night-alt-lightning: "\f025";
+$night-alt-rain: "\f028";
+$night-alt-rain-mix: "\f026";
+$night-alt-rain-wind: "\f027";
+$night-alt-showers: "\f029";
+$night-alt-sleet: "\f0b4";
+$night-alt-sleet-storm: "\f06a";
+$night-alt-snow: "\f02a";
+$night-alt-snow-thunderstorm: "\f06d";
+$night-alt-snow-wind: "\f067";
+$night-alt-sprinkle: "\f02b";
+$night-alt-storm-showers: "\f02c";
+$night-alt-thunderstorm: "\f02d";
+$night-cloudy: "\f031";
+$night-cloudy-gusts: "\f02f";
+$night-cloudy-windy: "\f030";
+$night-fog: "\f04a";
+$night-hail: "\f032";
+$night-lightning: "\f033";
+$night-partly-cloudy: "\f083";
+$night-rain: "\f036";
+$night-rain-mix: "\f034";
+$night-rain-wind: "\f035";
+$night-showers: "\f037";
+$night-sleet: "\f0b3";
+$night-sleet-storm: "\f069";
+$night-snow: "\f038";
+$night-snow-thunderstorm: "\f06c";
+$night-snow-wind: "\f066";
+$night-sprinkle: "\f039";
+$night-storm-showers: "\f03a";
+$night-thunderstorm: "\f03b";
+$lunar-eclipse: "\f070";
+$stars: "\f077";
+$storm-showers: "\f01d";
+$thunderstorm: "\f01e";
+$night-alt-cloudy-high: "\f07e";
+$night-cloudy-high: "\f080";
+$night-alt-partly-cloudy: "\f081";

+ 12 - 0
src/main/vue/static/weather_icons/sass/icon-variables/variables-time.scss

@@ -0,0 +1,12 @@
+$time-1: "\f08a";
+$time-2: "\f08b";
+$time-3: "\f08c";
+$time-4: "\f08d";
+$time-5: "\f08e";
+$time-6: "\f08f";
+$time-7: "\f090";
+$time-8: "\f091";
+$time-9: "\f092";
+$time-10: "\f093";
+$time-11: "\f094";
+$time-12: "\f089";

+ 32 - 0
src/main/vue/static/weather_icons/sass/icon-variables/variables-wind-names.scss

@@ -0,0 +1,32 @@
+$n: "\f0b1";
+$nne: "\f0b1";
+$ne: "\f0b1";
+$ene: "\f0b1";
+$e: "\f0b1";
+$ese: "\f0b1";
+$se: "\f0b1";
+$sse: "\f0b1";
+$s: "\f0b1";
+$ssw: "\f0b1";
+$sw: "\f0b1";
+$wsw: "\f0b1";
+$w: "\f0b1";
+$wnw: "\f0b1";
+$nw: "\f0b1";
+$nnw: "\f0b1";
+$n: "\f0b1";
+$nne: "\f0b1";
+$ne: "\f0b1";
+$ene: "\f0b1";
+$e: "\f0b1";
+$ese: "\f0b1";
+$se: "\f0b1";
+$sse: "\f0b1";
+$s: "\f0b1";
+$ssw: "\f0b1";
+$sw: "\f0b1";
+$wsw: "\f0b1";
+$w: "\f0b1";
+$wnw: "\f0b1";
+$nw: "\f0b1";
+$nnw: "\f0b1";

+ 13 - 0
src/main/vue/static/weather_icons/sass/mappings/wi-forecast-io.scss

@@ -0,0 +1,13 @@
+.#{$wi-css-prefix}-forecast-io-clear-day:before            { content: $day-sunny     ; }
+.#{$wi-css-prefix}-forecast-io-clear-night:before          { content: $night-clear   ; }
+.#{$wi-css-prefix}-forecast-io-rain:before                 { content: $rain          ; }
+.#{$wi-css-prefix}-forecast-io-snow:before                 { content: $snow          ; }
+.#{$wi-css-prefix}-forecast-io-sleet:before                { content: $sleet         ; }
+.#{$wi-css-prefix}-forecast-io-wind:before                 { content: $strong-wind   ; }
+.#{$wi-css-prefix}-forecast-io-fog:before                  { content: $fog           ; }
+.#{$wi-css-prefix}-forecast-io-cloudy:before               { content: $cloudy        ; }
+.#{$wi-css-prefix}-forecast-io-partly-cloudy-day:before    { content: $day-cloudy    ; }
+.#{$wi-css-prefix}-forecast-io-partly-cloudy-night:before  { content: $night-cloudy  ; }
+.#{$wi-css-prefix}-forecast-io-hail:before                 { content: $hail          ; }
+.#{$wi-css-prefix}-forecast-io-thunderstorm:before         { content: $thunderstorm  ; }
+.#{$wi-css-prefix}-forecast-io-tornado:before              { content: $tornado       ; }

+ 180 - 0
src/main/vue/static/weather_icons/sass/mappings/wi-owm.scss

@@ -0,0 +1,180 @@
+// Neutral
+    .#{$wi-css-prefix}-owm-200:before                            { content: $thunderstorm                ; }
+    .#{$wi-css-prefix}-owm-201:before                            { content: $thunderstorm                ; }
+    .#{$wi-css-prefix}-owm-202:before                            { content: $thunderstorm                ; }
+    .#{$wi-css-prefix}-owm-210:before                            { content: $lightning                   ; }
+    .#{$wi-css-prefix}-owm-211:before                            { content: $lightning                   ; }
+    .#{$wi-css-prefix}-owm-212:before                            { content: $lightning                   ; }
+    .#{$wi-css-prefix}-owm-221:before                            { content: $lightning                   ; }
+    .#{$wi-css-prefix}-owm-230:before                            { content: $thunderstorm                ; }
+    .#{$wi-css-prefix}-owm-231:before                            { content: $thunderstorm                ; }
+    .#{$wi-css-prefix}-owm-232:before                            { content: $thunderstorm                ; }
+    .#{$wi-css-prefix}-owm-300:before                            { content: $sprinkle                    ; }
+    .#{$wi-css-prefix}-owm-301:before                            { content: $sprinkle                    ; }
+    .#{$wi-css-prefix}-owm-302:before                            { content: $rain                        ; }
+    .#{$wi-css-prefix}-owm-310:before                            { content: $rain-mix                    ; }
+    .#{$wi-css-prefix}-owm-311:before                            { content: $rain                        ; }
+    .#{$wi-css-prefix}-owm-312:before                            { content: $rain                        ; }
+    .#{$wi-css-prefix}-owm-313:before                            { content: $showers                     ; }
+    .#{$wi-css-prefix}-owm-314:before                            { content: $rain                        ; }
+    .#{$wi-css-prefix}-owm-321:before                            { content: $sprinkle                    ; }
+    .#{$wi-css-prefix}-owm-500:before                            { content: $sprinkle                    ; }
+    .#{$wi-css-prefix}-owm-501:before                            { content: $rain                        ; }
+    .#{$wi-css-prefix}-owm-502:before                            { content: $rain                        ; }
+    .#{$wi-css-prefix}-owm-503:before                            { content: $rain                        ; }
+    .#{$wi-css-prefix}-owm-504:before                            { content: $rain                        ; }
+    .#{$wi-css-prefix}-owm-511:before                            { content: $rain-mix                    ; }
+    .#{$wi-css-prefix}-owm-520:before                            { content: $showers                     ; }
+    .#{$wi-css-prefix}-owm-521:before                            { content: $showers                     ; }
+    .#{$wi-css-prefix}-owm-522:before                            { content: $showers                     ; }
+    .#{$wi-css-prefix}-owm-531:before                            { content: $storm-showers               ; }
+    .#{$wi-css-prefix}-owm-600:before                            { content: $snow                        ; }
+    .#{$wi-css-prefix}-owm-601:before                            { content: $snow                        ; }
+    .#{$wi-css-prefix}-owm-602:before                            { content: $sleet                       ; }
+    .#{$wi-css-prefix}-owm-611:before                            { content: $rain-mix                    ; }
+    .#{$wi-css-prefix}-owm-612:before                            { content: $rain-mix                    ; }
+    .#{$wi-css-prefix}-owm-615:before                            { content: $rain-mix                    ; }
+    .#{$wi-css-prefix}-owm-616:before                            { content: $rain-mix                    ; }
+    .#{$wi-css-prefix}-owm-620:before                            { content: $rain-mix                    ; }
+    .#{$wi-css-prefix}-owm-621:before                            { content: $snow                        ; }
+    .#{$wi-css-prefix}-owm-622:before                            { content: $snow                        ; }
+    .#{$wi-css-prefix}-owm-701:before                            { content: $showers                     ; }
+    .#{$wi-css-prefix}-owm-711:before                            { content: $smoke                       ; }
+    .#{$wi-css-prefix}-owm-721:before                            { content: $day-haze                    ; }
+    .#{$wi-css-prefix}-owm-731:before                            { content: $dust                        ; }
+    .#{$wi-css-prefix}-owm-741:before                            { content: $fog                         ; }
+    .#{$wi-css-prefix}-owm-761:before                            { content: $dust                        ; }
+    .#{$wi-css-prefix}-owm-762:before                            { content: $dust                        ; }
+    .#{$wi-css-prefix}-owm-771:before                            { content: $cloudy-gusts                ; }
+    .#{$wi-css-prefix}-owm-781:before                            { content: $tornado                     ; }
+    .#{$wi-css-prefix}-owm-800:before                            { content: $day-sunny                   ; }
+    .#{$wi-css-prefix}-owm-801:before                            { content: $cloudy-gusts                ; }
+    .#{$wi-css-prefix}-owm-802:before                            { content: $cloudy-gusts                ; }
+    .#{$wi-css-prefix}-owm-803:before                            { content: $cloudy-windy                ; }
+    .#{$wi-css-prefix}-owm-804:before                            { content: $cloudy                      ; }
+    .#{$wi-css-prefix}-owm-900:before                            { content: $tornado                     ; }
+    .#{$wi-css-prefix}-owm-901:before                            { content: $storm-showers               ; }
+    .#{$wi-css-prefix}-owm-902:before                            { content: $hurricane                   ; }
+    .#{$wi-css-prefix}-owm-903:before                            { content: $snowflake-cold              ; }
+    .#{$wi-css-prefix}-owm-904:before                            { content: $hot                         ; }
+    .#{$wi-css-prefix}-owm-905:before                            { content: $windy                       ; }
+    .#{$wi-css-prefix}-owm-906:before                            { content: $hail                        ; }
+    .#{$wi-css-prefix}-owm-957:before                            { content: $strong-wind                 ; }
+    //Day
+    .#{$wi-css-prefix}-owm-day-200:before                        { content: $day-thunderstorm            ; }
+    .#{$wi-css-prefix}-owm-day-201:before                        { content: $day-thunderstorm            ; }
+    .#{$wi-css-prefix}-owm-day-202:before                        { content: $day-thunderstorm            ; }
+    .#{$wi-css-prefix}-owm-day-210:before                        { content: $day-lightning               ; }
+    .#{$wi-css-prefix}-owm-day-211:before                        { content: $day-lightning               ; }
+    .#{$wi-css-prefix}-owm-day-212:before                        { content: $day-lightning               ; }
+    .#{$wi-css-prefix}-owm-day-221:before                        { content: $day-lightning               ; }
+    .#{$wi-css-prefix}-owm-day-230:before                        { content: $day-thunderstorm            ; }
+    .#{$wi-css-prefix}-owm-day-231:before                        { content: $day-thunderstorm            ; }
+    .#{$wi-css-prefix}-owm-day-232:before                        { content: $day-thunderstorm            ; }
+    .#{$wi-css-prefix}-owm-day-300:before                        { content: $day-sprinkle                ; }
+    .#{$wi-css-prefix}-owm-day-301:before                        { content: $day-sprinkle                ; }
+    .#{$wi-css-prefix}-owm-day-302:before                        { content: $day-rain                    ; }
+    .#{$wi-css-prefix}-owm-day-310:before                        { content: $day-rain                    ; }
+    .#{$wi-css-prefix}-owm-day-311:before                        { content: $day-rain                    ; }
+    .#{$wi-css-prefix}-owm-day-312:before                        { content: $day-rain                    ; }
+    .#{$wi-css-prefix}-owm-day-313:before                        { content: $day-rain                    ; }
+    .#{$wi-css-prefix}-owm-day-314:before                        { content: $day-rain                    ; }
+    .#{$wi-css-prefix}-owm-day-321:before                        { content: $day-sprinkle                ; }
+    .#{$wi-css-prefix}-owm-day-500:before                        { content: $day-sprinkle                ; }
+    .#{$wi-css-prefix}-owm-day-501:before                        { content: $day-rain                    ; }
+    .#{$wi-css-prefix}-owm-day-502:before                        { content: $day-rain                    ; }
+    .#{$wi-css-prefix}-owm-day-503:before                        { content: $day-rain                    ; }
+    .#{$wi-css-prefix}-owm-day-504:before                        { content: $day-rain                    ; }
+    .#{$wi-css-prefix}-owm-day-511:before                        { content: $day-rain-mix                ; }
+    .#{$wi-css-prefix}-owm-day-520:before                        { content: $day-showers                 ; }
+    .#{$wi-css-prefix}-owm-day-521:before                        { content: $day-showers                 ; }
+    .#{$wi-css-prefix}-owm-day-522:before                        { content: $day-showers                 ; }
+    .#{$wi-css-prefix}-owm-day-531:before                        { content: $day-storm-showers           ; }
+    .#{$wi-css-prefix}-owm-day-600:before                        { content: $day-snow                    ; }
+    .#{$wi-css-prefix}-owm-day-601:before                        { content: $day-sleet                   ; }
+    .#{$wi-css-prefix}-owm-day-602:before                        { content: $day-snow                    ; }
+    .#{$wi-css-prefix}-owm-day-611:before                        { content: $day-rain-mix                ; }
+    .#{$wi-css-prefix}-owm-day-612:before                        { content: $day-rain-mix                ; }
+    .#{$wi-css-prefix}-owm-day-615:before                        { content: $day-rain-mix                ; }
+    .#{$wi-css-prefix}-owm-day-616:before                        { content: $day-rain-mix                ; }
+    .#{$wi-css-prefix}-owm-day-620:before                        { content: $day-rain-mix                ; }
+    .#{$wi-css-prefix}-owm-day-621:before                        { content: $day-snow                    ; }
+    .#{$wi-css-prefix}-owm-day-622:before                        { content: $day-snow                    ; }
+    .#{$wi-css-prefix}-owm-day-701:before                        { content: $day-showers                 ; }
+    .#{$wi-css-prefix}-owm-day-711:before                        { content: $smoke                       ; }
+    .#{$wi-css-prefix}-owm-day-721:before                        { content: $day-haze                    ; }
+    .#{$wi-css-prefix}-owm-day-731:before                        { content: $dust                        ; }
+    .#{$wi-css-prefix}-owm-day-741:before                        { content: $day-fog                     ; }
+    .#{$wi-css-prefix}-owm-day-761:before                        { content: $dust                        ; }
+    .#{$wi-css-prefix}-owm-day-762:before                        { content: $dust                        ; }
+    .#{$wi-css-prefix}-owm-day-781:before                        { content: $tornado                     ; }
+    .#{$wi-css-prefix}-owm-day-800:before                        { content: $day-sunny                   ; }
+    .#{$wi-css-prefix}-owm-day-801:before                        { content: $day-cloudy-gusts            ; }
+    .#{$wi-css-prefix}-owm-day-802:before                        { content: $day-cloudy-gusts            ; }
+    .#{$wi-css-prefix}-owm-day-803:before                        { content: $day-cloudy-gusts            ; }
+    .#{$wi-css-prefix}-owm-day-804:before                        { content: $day-sunny-overcast          ; }
+    .#{$wi-css-prefix}-owm-day-900:before                        { content: $tornado                     ; }
+    .#{$wi-css-prefix}-owm-day-902:before                        { content: $hurricane                   ; }
+    .#{$wi-css-prefix}-owm-day-903:before                        { content: $snowflake-cold              ; }
+    .#{$wi-css-prefix}-owm-day-904:before                        { content: $hot                         ; }
+    .#{$wi-css-prefix}-owm-day-906:before                        { content: $day-hail                    ; }
+    .#{$wi-css-prefix}-owm-day-957:before                        { content: $strong-wind                 ; }
+    //Night
+    .#{$wi-css-prefix}-owm-night-200:before                      { content: $night-alt-thunderstorm      ; }
+    .#{$wi-css-prefix}-owm-night-201:before                      { content: $night-alt-thunderstorm      ; }
+    .#{$wi-css-prefix}-owm-night-202:before                      { content: $night-alt-thunderstorm      ; }
+    .#{$wi-css-prefix}-owm-night-210:before                      { content: $night-alt-lightning         ; }
+    .#{$wi-css-prefix}-owm-night-211:before                      { content: $night-alt-lightning         ; }
+    .#{$wi-css-prefix}-owm-night-212:before                      { content: $night-alt-lightning         ; }
+    .#{$wi-css-prefix}-owm-night-221:before                      { content: $night-alt-lightning         ; }
+    .#{$wi-css-prefix}-owm-night-230:before                      { content: $night-alt-thunderstorm      ; }
+    .#{$wi-css-prefix}-owm-night-231:before                      { content: $night-alt-thunderstorm      ; }
+    .#{$wi-css-prefix}-owm-night-232:before                      { content: $night-alt-thunderstorm      ; }
+    .#{$wi-css-prefix}-owm-night-300:before                      { content: $night-alt-sprinkle          ; }
+    .#{$wi-css-prefix}-owm-night-301:before                      { content: $night-alt-sprinkle          ; }
+    .#{$wi-css-prefix}-owm-night-302:before                      { content: $night-alt-rain              ; }
+    .#{$wi-css-prefix}-owm-night-310:before                      { content: $night-alt-rain              ; }
+    .#{$wi-css-prefix}-owm-night-311:before                      { content: $night-alt-rain              ; }
+    .#{$wi-css-prefix}-owm-night-312:before                      { content: $night-alt-rain              ; }
+    .#{$wi-css-prefix}-owm-night-313:before                      { content: $night-alt-rain              ; }
+    .#{$wi-css-prefix}-owm-night-314:before                      { content: $night-alt-rain              ; }
+    .#{$wi-css-prefix}-owm-night-321:before                      { content: $night-alt-sprinkle          ; }
+    .#{$wi-css-prefix}-owm-night-500:before                      { content: $night-alt-sprinkle          ; }
+    .#{$wi-css-prefix}-owm-night-501:before                      { content: $night-alt-rain              ; }
+    .#{$wi-css-prefix}-owm-night-502:before                      { content: $night-alt-rain              ; }
+    .#{$wi-css-prefix}-owm-night-503:before                      { content: $night-alt-rain              ; }
+    .#{$wi-css-prefix}-owm-night-504:before                      { content: $night-alt-rain              ; }
+    .#{$wi-css-prefix}-owm-night-511:before                      { content: $night-alt-rain-mix          ; }
+    .#{$wi-css-prefix}-owm-night-520:before                      { content: $night-alt-showers           ; }
+    .#{$wi-css-prefix}-owm-night-521:before                      { content: $night-alt-showers           ; }
+    .#{$wi-css-prefix}-owm-night-522:before                      { content: $night-alt-showers           ; }
+    .#{$wi-css-prefix}-owm-night-531:before                      { content: $night-alt-storm-showers     ; }
+    .#{$wi-css-prefix}-owm-night-600:before                      { content: $night-alt-snow              ; }
+    .#{$wi-css-prefix}-owm-night-601:before                      { content: $night-alt-sleet             ; }
+    .#{$wi-css-prefix}-owm-night-602:before                      { content: $night-alt-snow              ; }
+    .#{$wi-css-prefix}-owm-night-611:before                      { content: $night-alt-rain-mix          ; }
+    .#{$wi-css-prefix}-owm-night-612:before                      { content: $night-alt-rain-mix          ; }
+    .#{$wi-css-prefix}-owm-night-615:before                      { content: $night-alt-rain-mix          ; }
+    .#{$wi-css-prefix}-owm-night-616:before                      { content: $night-alt-rain-mix          ; }
+    .#{$wi-css-prefix}-owm-night-620:before                      { content: $night-alt-rain-mix          ; }
+    .#{$wi-css-prefix}-owm-night-621:before                      { content: $night-alt-snow              ; }
+    .#{$wi-css-prefix}-owm-night-622:before                      { content: $night-alt-snow              ; }
+    .#{$wi-css-prefix}-owm-night-701:before                      { content: $night-alt-showers           ; }
+    .#{$wi-css-prefix}-owm-night-711:before                      { content: $smoke                       ; }
+    .#{$wi-css-prefix}-owm-night-721:before                      { content: $day-haze                    ; }
+    .#{$wi-css-prefix}-owm-night-731:before                      { content: $dust                        ; }
+    .#{$wi-css-prefix}-owm-night-741:before                      { content: $night-fog                   ; }
+    .#{$wi-css-prefix}-owm-night-761:before                      { content: $dust                        ; }
+    .#{$wi-css-prefix}-owm-night-762:before                      { content: $dust                        ; }
+    .#{$wi-css-prefix}-owm-night-781:before                      { content: $tornado                     ; }
+    .#{$wi-css-prefix}-owm-night-800:before                      { content: $night-clear                 ; }
+    .#{$wi-css-prefix}-owm-night-801:before                      { content: $night-alt-cloudy-gusts      ; }
+    .#{$wi-css-prefix}-owm-night-802:before                      { content: $night-alt-cloudy-gusts      ; }
+    .#{$wi-css-prefix}-owm-night-803:before                      { content: $night-alt-cloudy-gusts      ; }
+    .#{$wi-css-prefix}-owm-night-804:before                      { content: $night-alt-cloudy            ; }
+    .#{$wi-css-prefix}-owm-night-900:before                      { content: $tornado                     ; }
+    .#{$wi-css-prefix}-owm-night-902:before                      { content: $hurricane                   ; }
+    .#{$wi-css-prefix}-owm-night-903:before                      { content: $snowflake-cold              ; }
+    .#{$wi-css-prefix}-owm-night-904:before                      { content: $hot                         ; }
+    .#{$wi-css-prefix}-owm-night-906:before                      { content: $night-alt-hail              ; }
+    .#{$wi-css-prefix}-owm-night-957:before                      { content: $strong-wind                 ; }

+ 85 - 0
src/main/vue/static/weather_icons/sass/mappings/wi-wmo4680.scss

@@ -0,0 +1,85 @@
+.#{$wi-css-prefix}-wmo4680-0:before,
+.#{$wi-css-prefix}-wmo4680-00:before       { content: $thermometer           ; }
+.#{$wi-css-prefix}-wmo4680-1:before,
+.#{$wi-css-prefix}-wmo4680-01:before       { content: $cloudy                ; }
+.#{$wi-css-prefix}-wmo4680-2:before,
+.#{$wi-css-prefix}-wmo4680-02:before       { content: $thermometer           ; }
+.#{$wi-css-prefix}-wmo4680-3:before,
+.#{$wi-css-prefix}-wmo4680-03:before       { content: $cloudy                ; }
+.#{$wi-css-prefix}-wmo4680-4:before,
+.#{$wi-css-prefix}-wmo4680-04:before       { content: $fog                   ; }
+.#{$wi-css-prefix}-wmo4680-5:before,
+.#{$wi-css-prefix}-wmo4680-05:before       { content: $fog                   ; }
+.#{$wi-css-prefix}-wmo4680-10:before       { content: $fog                   ; }
+.#{$wi-css-prefix}-wmo4680-11:before       { content: $fog                   ; }
+.#{$wi-css-prefix}-wmo4680-12:before       { content: $lightning             ; }
+.#{$wi-css-prefix}-wmo4680-18:before       { content: $strong-wind           ; }
+.#{$wi-css-prefix}-wmo4680-20:before       { content: $fog                   ; }
+.#{$wi-css-prefix}-wmo4680-21:before       { content: $rain-mix              ; }
+.#{$wi-css-prefix}-wmo4680-22:before       { content: $rain-mix              ; }
+.#{$wi-css-prefix}-wmo4680-23:before       { content: $rain                  ; }
+.#{$wi-css-prefix}-wmo4680-24:before       { content: $snow                  ; }
+.#{$wi-css-prefix}-wmo4680-25:before       { content: $hail                  ; }
+.#{$wi-css-prefix}-wmo4680-26:before       { content: $thunderstorm          ; }
+.#{$wi-css-prefix}-wmo4680-27:before       { content: $dust                  ; }
+.#{$wi-css-prefix}-wmo4680-28:before       { content: $dust                  ; }
+.#{$wi-css-prefix}-wmo4680-29:before       { content: $dust                  ; }
+.#{$wi-css-prefix}-wmo4680-30:before       { content: $fog                   ; }
+.#{$wi-css-prefix}-wmo4680-31:before       { content: $fog                   ; }
+.#{$wi-css-prefix}-wmo4680-32:before       { content: $fog                   ; }
+.#{$wi-css-prefix}-wmo4680-33:before       { content: $fog                   ; }
+.#{$wi-css-prefix}-wmo4680-34:before       { content: $fog                   ; }
+.#{$wi-css-prefix}-wmo4680-35:before       { content: $fog                   ; }
+.#{$wi-css-prefix}-wmo4680-40:before       { content: $rain-mix              ; }
+.#{$wi-css-prefix}-wmo4680-41:before       { content: $sprinkle              ; }
+.#{$wi-css-prefix}-wmo4680-42:before       { content: $rain                  ; }
+.#{$wi-css-prefix}-wmo4680-43:before       { content: $sprinkle              ; }
+.#{$wi-css-prefix}-wmo4680-44:before       { content: $rain                  ; }
+.#{$wi-css-prefix}-wmo4680-45:before       { content: $hail                  ; }
+.#{$wi-css-prefix}-wmo4680-46:before       { content: $hail                  ; }
+.#{$wi-css-prefix}-wmo4680-47:before       { content: $snow                  ; }
+.#{$wi-css-prefix}-wmo4680-48:before       { content: $snow                  ; }
+.#{$wi-css-prefix}-wmo4680-50:before       { content: $sprinkle              ; }
+.#{$wi-css-prefix}-wmo4680-51:before       { content: $sprinkle              ; }
+.#{$wi-css-prefix}-wmo4680-52:before       { content: $rain                  ; }
+.#{$wi-css-prefix}-wmo4680-53:before       { content: $rain                  ; }
+.#{$wi-css-prefix}-wmo4680-54:before       { content: $snowflake-cold        ; }
+.#{$wi-css-prefix}-wmo4680-55:before       { content: $snowflake-cold        ; }
+.#{$wi-css-prefix}-wmo4680-56:before       { content: $snowflake-cold        ; }
+.#{$wi-css-prefix}-wmo4680-57:before       { content: $sprinkle              ; }
+.#{$wi-css-prefix}-wmo4680-58:before       { content: $rain                  ; }
+.#{$wi-css-prefix}-wmo4680-60:before       { content: $sprinkle              ; }
+.#{$wi-css-prefix}-wmo4680-61:before       { content: $sprinkle              ; }
+.#{$wi-css-prefix}-wmo4680-62:before       { content: $rain                  ; }
+.#{$wi-css-prefix}-wmo4680-63:before       { content: $rain                  ; }
+.#{$wi-css-prefix}-wmo4680-64:before       { content: $hail                  ; }
+.#{$wi-css-prefix}-wmo4680-65:before       { content: $hail                  ; }
+.#{$wi-css-prefix}-wmo4680-66:before       { content: $hail                  ; }
+.#{$wi-css-prefix}-wmo4680-67:before       { content: $rain-mix              ; }
+.#{$wi-css-prefix}-wmo4680-68:before       { content: $rain-mix              ; }
+.#{$wi-css-prefix}-wmo4680-70:before       { content: $snow                  ; }
+.#{$wi-css-prefix}-wmo4680-71:before       { content: $snow                  ; }
+.#{$wi-css-prefix}-wmo4680-72:before       { content: $snow                  ; }
+.#{$wi-css-prefix}-wmo4680-73:before       { content: $snow                  ; }
+.#{$wi-css-prefix}-wmo4680-74:before       { content: $snowflake-cold        ; }
+.#{$wi-css-prefix}-wmo4680-75:before       { content: $snowflake-cold        ; }
+.#{$wi-css-prefix}-wmo4680-76:before       { content: $snowflake-cold        ; }
+.#{$wi-css-prefix}-wmo4680-77:before       { content: $snow                  ; }
+.#{$wi-css-prefix}-wmo4680-78:before       { content: $snowflake-cold        ; }
+.#{$wi-css-prefix}-wmo4680-80:before       { content: $rain                  ; }
+.#{$wi-css-prefix}-wmo4680-81:before       { content: $sprinkle              ; }
+.#{$wi-css-prefix}-wmo4680-82:before       { content: $rain                  ; }
+.#{$wi-css-prefix}-wmo4680-83:before       { content: $rain                  ; }
+.#{$wi-css-prefix}-wmo4680-84:before       { content: $storm-showers         ; }
+.#{$wi-css-prefix}-wmo4680-85:before       { content: $rain-mix              ; }
+.#{$wi-css-prefix}-wmo4680-86:before       { content: $rain-mix              ; }
+.#{$wi-css-prefix}-wmo4680-87:before       { content: $rain-mix              ; }
+.#{$wi-css-prefix}-wmo4680-89:before       { content: $hail                  ; }
+.#{$wi-css-prefix}-wmo4680-90:before       { content: $lightning             ; }
+.#{$wi-css-prefix}-wmo4680-91:before       { content: $storm-showers         ; }
+.#{$wi-css-prefix}-wmo4680-92:before       { content: $thunderstorm          ; }
+.#{$wi-css-prefix}-wmo4680-93:before       { content: $thunderstorm          ; }
+.#{$wi-css-prefix}-wmo4680-94:before       { content: $lightning             ; }
+.#{$wi-css-prefix}-wmo4680-95:before       { content: $thunderstorm          ; }
+.#{$wi-css-prefix}-wmo4680-96:before       { content: $thunderstorm          ; }
+.#{$wi-css-prefix}-wmo4680-99:before       { content: $tornado               ; }

+ 19 - 0
src/main/vue/static/weather_icons/sass/mappings/wi-wunderground.scss

@@ -0,0 +1,19 @@
+.#{$wi-css-prefix}-wu-chanceflurries:before { content: $snow-wind; }
+.#{$wi-css-prefix}-wu-chancerain:before     { content: $rain; }
+.#{$wi-css-prefix}-wu-chancesleat:before    { content: $sleet; }
+.#{$wi-css-prefix}-wu-chancesnow:before     { content: $snow; }
+.#{$wi-css-prefix}-wu-chancetstorms:before  { content: $thunderstorm; }
+.#{$wi-css-prefix}-wu-clear:before          { content: $day-sunny; }
+.#{$wi-css-prefix}-wu-cloudy:before         { content: $day-cloudy; }
+.#{$wi-css-prefix}-wu-flurries:before       { content: $snow-wind; }
+.#{$wi-css-prefix}-wu-hazy:before           { content: $day-haze; }
+.#{$wi-css-prefix}-wu-mostlycloudy:before   { content: $day-cloudy; }
+.#{$wi-css-prefix}-wu-mostlysunny:before    { content: $day-sunny; }
+.#{$wi-css-prefix}-wu-partlycloudy:before   { content: $day-cloudy; }
+.#{$wi-css-prefix}-wu-partlysunny:before    { content: $day-sunny; }
+.#{$wi-css-prefix}-wu-rain:before           { content: $showers; }
+.#{$wi-css-prefix}-wu-sleat:before          { content: $sleet; }
+.#{$wi-css-prefix}-wu-snow:before           { content: $snow; }
+.#{$wi-css-prefix}-wu-sunny:before          { content: $day-sunny; }
+.#{$wi-css-prefix}-wu-tstorms:before        { content: $thunderstorm; }
+.#{$wi-css-prefix}-wu-unknown:before        { content: $day-sunny; }

+ 49 - 0
src/main/vue/static/weather_icons/sass/mappings/wi-yahoo.scss

@@ -0,0 +1,49 @@
+.#{$wi-css-prefix}-yahoo-0:before { content: $tornado; }
+.#{$wi-css-prefix}-yahoo-1:before { content: $day-storm-showers; }
+.#{$wi-css-prefix}-yahoo-2:before { content: $hurricane; }
+.#{$wi-css-prefix}-yahoo-3:before { content: $thunderstorm; }
+.#{$wi-css-prefix}-yahoo-4:before { content: $thunderstorm; }
+.#{$wi-css-prefix}-yahoo-5:before { content: $rain-mix; }
+.#{$wi-css-prefix}-yahoo-6:before { content: $rain-mix; }
+.#{$wi-css-prefix}-yahoo-7:before { content: $rain-mix; }
+.#{$wi-css-prefix}-yahoo-8:before { content: $hail; }
+.#{$wi-css-prefix}-yahoo-9:before { content: $showers; }
+.#{$wi-css-prefix}-yahoo-10:before { content: $hail; }
+.#{$wi-css-prefix}-yahoo-11:before { content: $showers; }
+.#{$wi-css-prefix}-yahoo-12:before { content: $showers; }
+.#{$wi-css-prefix}-yahoo-13:before { content: $snow; }
+.#{$wi-css-prefix}-yahoo-14:before { content: $day-snow; }
+.#{$wi-css-prefix}-yahoo-15:before { content: $snow-wind; }
+.#{$wi-css-prefix}-yahoo-16:before { content: $snow; }
+.#{$wi-css-prefix}-yahoo-17:before { content: $hail; }
+.#{$wi-css-prefix}-yahoo-18:before { content: $rain-mix; }
+.#{$wi-css-prefix}-yahoo-19:before { content: $dust; }
+.#{$wi-css-prefix}-yahoo-20:before { content: $fog; }
+.#{$wi-css-prefix}-yahoo-21:before { content: $windy; }
+.#{$wi-css-prefix}-yahoo-22:before { content: $smoke; }
+.#{$wi-css-prefix}-yahoo-23:before { content: $strong-wind; }
+.#{$wi-css-prefix}-yahoo-24:before { content: $strong-wind; }
+.#{$wi-css-prefix}-yahoo-25:before { content: $snowflake-cold; }
+.#{$wi-css-prefix}-yahoo-26:before { content: $cloudy; }
+.#{$wi-css-prefix}-yahoo-27:before { content: $night-cloudy; }
+.#{$wi-css-prefix}-yahoo-28:before { content: $day-cloudy; }
+.#{$wi-css-prefix}-yahoo-29:before { content: $night-cloudy; }
+.#{$wi-css-prefix}-yahoo-30:before { content: $day-cloudy; }
+.#{$wi-css-prefix}-yahoo-31:before { content: $night-clear; }
+.#{$wi-css-prefix}-yahoo-32:before { content: $day-sunny; }
+.#{$wi-css-prefix}-yahoo-33:before { content: $night-partly-cloudy; }
+.#{$wi-css-prefix}-yahoo-34:before { content: $day-sunny-overcast; }
+.#{$wi-css-prefix}-yahoo-35:before { content: $rain-mix; }
+.#{$wi-css-prefix}-yahoo-36:before { content: $hot; }
+.#{$wi-css-prefix}-yahoo-37:before { content: $day-storm-showers; }
+.#{$wi-css-prefix}-yahoo-38:before { content: $day-storm-showers; }
+.#{$wi-css-prefix}-yahoo-39:before { content: $day-storm-showers; }
+.#{$wi-css-prefix}-yahoo-40:before { content: $showers; }
+.#{$wi-css-prefix}-yahoo-41:before { content: $snow-wind; }
+.#{$wi-css-prefix}-yahoo-42:before { content: $snow; }
+.#{$wi-css-prefix}-yahoo-43:before { content: $snow-wind; }
+.#{$wi-css-prefix}-yahoo-44:before { content: $day-sunny-overcast; }
+.#{$wi-css-prefix}-yahoo-45:before { content: $day-storm-showers; }
+.#{$wi-css-prefix}-yahoo-46:before { content: $snow; }
+.#{$wi-css-prefix}-yahoo-47:before { content: $day-storm-showers; }
+.#{$wi-css-prefix}-yahoo-3200:before { content: $stars; }

+ 9 - 0
src/main/vue/static/weather_icons/sass/weather-icons-classes.scss

@@ -0,0 +1,9 @@
+@import "icon-classes/classes-day.scss";
+@import "icon-classes/classes-night.scss";
+@import "icon-classes/classes-neutral.scss";
+@import "icon-classes/classes-misc.scss";
+@import "icon-classes/classes-moon.scss";
+@import "icon-classes/classes-moon-aliases.scss";
+@import "icon-classes/classes-time.scss";
+@import "icon-classes/classes-direction.scss";
+@import "icon-classes/classes-beaufort.scss";

+ 53 - 0
src/main/vue/static/weather_icons/sass/weather-icons-core.scss

@@ -0,0 +1,53 @@
+// Base Variables
+$wi-path:                        "../font" !default;
+$wi-version:                     "2.0" !default;
+$wi-css-prefix:                  wi !default;
+$wi-font-family:                 weathericons !default;
+
+@font-face {
+    font-family: '#{$wi-font-family}';
+    src: url('#{$wi-path}/#{$wi-font-family}-regular-webfont.eot');
+    src: url('#{$wi-path}/#{$wi-font-family}-regular-webfont.eot?#iefix') format('embedded-opentype'),
+         url('#{$wi-path}/#{$wi-font-family}-regular-webfont.woff2') format('woff2'),
+         url('#{$wi-path}/#{$wi-font-family}-regular-webfont.woff') format('woff'),
+         url('#{$wi-path}/#{$wi-font-family}-regular-webfont.ttf') format('truetype'),
+         url('#{$wi-path}/#{$wi-font-family}-regular-webfont.svg#weather_iconsregular') format('svg');
+    font-weight: normal;
+    font-style: normal;
+}
+
+.#{$wi-css-prefix} {
+  display: inline-block;
+  font-family: '#{$wi-font-family}';
+  font-style: normal;
+  font-weight: normal;
+  line-height: 1;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+.#{$wi-css-prefix}-fw {
+  width: 1.4em;
+  text-align: center;
+}
+
+@mixin wi-icon-rotate($degrees, $rotation) {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation});
+  -webkit-transform: rotate($degrees);
+      -ms-transform: rotate($degrees);
+          transform: rotate($degrees);
+}
+
+@mixin wi-icon-flip($horiz, $vert, $rotation) {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation});
+  -webkit-transform: scale($horiz, $vert);
+      -ms-transform: scale($horiz, $vert);
+          transform: scale($horiz, $vert);
+}
+
+.#{$wi-css-prefix}-rotate-90  { @include wi-icon-rotate(90deg, 1);  }
+.#{$wi-css-prefix}-rotate-180 { @include wi-icon-rotate(180deg, 2); }
+.#{$wi-css-prefix}-rotate-270 { @include wi-icon-rotate(270deg, 3); }
+
+.#{$wi-css-prefix}-flip-horizontal { @include wi-icon-flip(-1, 1, 0); }
+.#{$wi-css-prefix}-flip-vertical   { @include wi-icon-flip(1, -1, 2); }

+ 9 - 0
src/main/vue/static/weather_icons/sass/weather-icons-variables.scss

@@ -0,0 +1,9 @@
+@import 'icon-variables/variables-beaufort.scss';
+@import 'icon-variables/variables-time.scss';
+@import 'icon-variables/variables-moon.scss';
+@import 'icon-variables/variables-direction.scss';
+@import 'icon-variables/variables-day.scss';
+@import 'icon-variables/variables-night.scss';
+@import 'icon-variables/variables-neutral.scss';
+@import 'icon-variables/variables-misc.scss';
+

+ 5 - 0
src/main/vue/static/weather_icons/sass/weather-icons-wind.min.scss

@@ -0,0 +1,5 @@
+@import "weather-icons-core.scss";
+@import "icon-variables/variables-wind-names.scss";
+@import "icon-classes/classes-wind.scss";
+@import "icon-classes/classes-wind-degrees.scss";
+@import "icon-classes/classes-wind-aliases.scss";

+ 5 - 0
src/main/vue/static/weather_icons/sass/weather-icons-wind.scss

@@ -0,0 +1,5 @@
+@import "weather-icons-core.scss";
+@import "icon-variables/variables-wind-names.scss";
+@import "icon-classes/classes-wind.scss";
+@import "icon-classes/classes-wind-degrees.scss";
+@import "icon-classes/classes-wind-aliases.scss";

+ 23 - 0
src/main/vue/static/weather_icons/sass/weather-icons.min.scss

@@ -0,0 +1,23 @@
+/*!
+ *  Weather Icons 2.0.8
+ *  Updated September 19, 2015
+ *  Weather themed icons for Bootstrap
+ *  Author - Erik Flowers - erik@helloerik.com
+ *  Email: erik@helloerik.com
+ *  Twitter: http://twitter.com/Erik_UX
+ *  ------------------------------------------------------------------------------
+ *  Maintained at http://erikflowers.github.io/weather-icons
+ *
+ *  License
+ *  ------------------------------------------------------------------------------
+ *  - Font licensed under SIL OFL 1.1 -
+ *    http://scripts.sil.org/OFL
+ *  - CSS, SCSS and LESS are licensed under MIT License -
+ *    http://opensource.org/licenses/mit-license.html
+ *  - Documentation licensed under CC BY 3.0 -
+ *    http://creativecommons.org/licenses/by/3.0/
+ *  - Inspired by and works great as a companion with Font Awesome
+ *    "Font Awesome by Dave Gandy - http://fontawesome.io"
+ */
+
+@import 'weather-icons.scss';

+ 31 - 0
src/main/vue/static/weather_icons/sass/weather-icons.scss

@@ -0,0 +1,31 @@
+/*!
+ *  Weather Icons 2.0
+ *  Updated August 1, 2015
+ *  Weather themed icons for Bootstrap
+ *  Author - Erik Flowers - erik@helloerik.com
+ *  Email: erik@helloerik.com
+ *  Twitter: http://twitter.com/Erik_UX
+ *  ------------------------------------------------------------------------------
+ *  Maintained at http://erikflowers.github.io/weather-icons
+ *
+ *  License
+ *  ------------------------------------------------------------------------------
+ *  - Font licensed under SIL OFL 1.1 -
+ *    http://scripts.sil.org/OFL
+ *  - CSS, LESS and SCSS are licensed under MIT License -
+ *    http://opensource.org/licenses/mit-license.html
+ *  - Documentation licensed under CC BY 3.0 -
+ *    http://creativecommons.org/licenses/by/3.0/
+ *  - Inspired by and works great as a companion with Font Awesome
+ *    "Font Awesome by Dave Gandy - http://fontawesome.io"
+ */
+
+@import 'weather-icons-core.scss';
+@import 'weather-icons-variables.scss';
+@import 'weather-icons-classes.scss';
+// Mappings to various APIs
+@import "mappings/wi-yahoo.scss";
+@import "mappings/wi-forecast-io.scss";
+@import "mappings/wi-wmo4680.scss";
+@import "mappings/wi-owm.scss";
+@import "mappings/wi-wunderground.scss";

+ 16 - 0
src/main/vue/static/weather_icons/svg/wi-alien.svg

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 30 30" style="enable-background:new 0 0 30 30;" xml:space="preserve">
+<path d="M8.75,15.54c-1.12-2.4-0.95-4.66,0.52-6.79c1.03-1.48,2.6-2.39,4.73-2.72c0.16-0.04,0.34-0.07,0.54-0.08h0.63
+	c2.91,0.09,5.05,1.38,6.4,3.88c0.64,1.18,0.8,2.48,0.48,3.91c-0.26,1.13-0.68,2.19-1.28,3.17c-1.29,2.01-2.63,3.64-4,4.88
+	c-0.07,0.07-0.17,0.16-0.3,0.26c-0.46,0.35-0.89,0.53-1.28,0.54s-0.83-0.14-1.31-0.45c-0.29-0.17-0.53-0.37-0.74-0.59
+	C11.18,19.55,9.71,17.55,8.75,15.54z M8.86,13.33c0.02,0.11,0.05,0.25,0.09,0.44s0.07,0.32,0.09,0.4c0.28,1.26,0.86,2.23,1.73,2.93
+	c0.88,0.7,1.96,1.11,3.26,1.23c0.29,0.03,0.46,0.02,0.51-0.03s0.08-0.23,0.09-0.52c-0.01-0.08-0.03-0.21-0.05-0.39
+	c-0.02-0.18-0.04-0.31-0.06-0.39c-0.25-1.34-0.88-2.32-1.9-2.93c-0.18-0.11-0.39-0.22-0.62-0.34s-0.44-0.2-0.61-0.27
+	c-0.17-0.07-0.4-0.16-0.69-0.27c-0.29-0.11-0.5-0.19-0.63-0.25c-0.16-0.06-0.42-0.1-0.8-0.11C8.95,12.83,8.81,13,8.86,13.33z
+	 M15.66,17.73c-0.02,0.31,0,0.49,0.06,0.56c0.07,0.07,0.25,0.08,0.55,0.04c0.38-0.04,0.78-0.12,1.2-0.22
+	c1.07-0.27,1.94-0.84,2.62-1.71c0.34-0.41,0.6-0.86,0.77-1.34s0.34-1.05,0.47-1.72c0.05-0.23,0.04-0.38-0.03-0.46
+	c-0.07-0.08-0.22-0.11-0.44-0.08c-0.59,0.1-1.12,0.23-1.59,0.4c-1.15,0.43-2.02,1.01-2.62,1.74C16.05,15.68,15.72,16.6,15.66,17.73z
+	"/>
+</svg>

+ 15 - 0
src/main/vue/static/weather_icons/svg/wi-barometer.svg

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 30 30" style="enable-background:new 0 0 30 30;" xml:space="preserve">
+<path d="M7.69,13.2c0-0.99,0.19-1.94,0.58-2.85c0.39-0.91,0.91-1.68,1.57-2.33s1.44-1.17,2.34-1.56c0.9-0.39,1.85-0.58,2.84-0.58
+	c0.99,0,1.94,0.19,2.85,0.58c0.9,0.39,1.68,0.91,2.33,1.56c0.65,0.65,1.17,1.43,1.56,2.33s0.58,1.85,0.58,2.85
+	c0,1.62-0.48,3.06-1.44,4.34c-0.96,1.27-2.2,2.14-3.71,2.61v3.29h-4.24v-3.25c-1.54-0.45-2.81-1.32-3.79-2.61S7.69,14.83,7.69,13.2z
+	 M9.3,13.2c0,1.55,0.56,2.88,1.69,3.99c1.11,1.12,2.45,1.68,4.02,1.68c1.03,0,1.99-0.25,2.86-0.76c0.88-0.51,1.57-1.2,2.09-2.07
+	c0.51-0.87,0.77-1.82,0.77-2.85c0-0.77-0.15-1.5-0.45-2.21s-0.71-1.31-1.22-1.82c-0.51-0.51-1.12-0.92-1.83-1.22
+	c-0.71-0.3-1.44-0.45-2.21-0.45c-0.77,0-1.5,0.15-2.21,0.45s-1.31,0.71-1.82,1.22c-0.51,0.51-0.92,1.12-1.22,1.82
+	C9.45,11.7,9.3,12.43,9.3,13.2z M9.88,13.56v-0.72h2.17v0.72H9.88z M10.97,10.02l0.52-0.52l1.52,1.52l-0.52,0.53L10.97,10.02z
+	 M13.5,14.95c0-0.42,0.15-0.78,0.44-1.09c0.29-0.31,0.65-0.47,1.06-0.48l2.73-4.49l0.66,0.35l-2.02,4.83
+	c0.18,0.25,0.26,0.54,0.26,0.88c0,0.44-0.15,0.81-0.46,1.11c-0.31,0.3-0.68,0.45-1.12,0.45c-0.43,0-0.8-0.15-1.1-0.45
+	C13.65,15.76,13.5,15.39,13.5,14.95z M14.81,10.28V8.12h0.69v2.17H14.81z M17.75,13.55v-0.74h2.17v0.74H17.75z"/>
+</svg>

+ 18 - 0
src/main/vue/static/weather_icons/svg/wi-celsius.svg

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 30 30" style="enable-background:new 0 0 30 30;" xml:space="preserve">
+<path d="M9.75,10.98c0-0.5,0.18-0.93,0.53-1.28c0.36-0.36,0.78-0.53,1.28-0.53c0.49,0,0.92,0.18,1.27,0.53
+	c0.35,0.36,0.53,0.78,0.53,1.28c0,0.5-0.18,0.93-0.53,1.28c-0.35,0.36-0.78,0.53-1.27,0.53c-0.5,0-0.93-0.18-1.28-0.53
+	S9.75,11.48,9.75,10.98z M10.63,10.98c0,0.26,0.09,0.48,0.27,0.67c0.19,0.19,0.41,0.28,0.67,0.28c0.26,0,0.48-0.09,0.67-0.28
+	s0.28-0.41,0.28-0.67c0-0.26-0.09-0.48-0.28-0.67s-0.41-0.28-0.67-0.28c-0.26,0-0.48,0.09-0.67,0.28
+	C10.72,10.49,10.63,10.72,10.63,10.98z M14.52,15.4c0,0.77,0.21,1.45,0.64,2.05c0.22,0.31,0.53,0.56,0.93,0.75
+	c0.39,0.18,0.84,0.28,1.34,0.28c1.46,0,2.38-0.56,2.75-1.67c0.04-0.14,0.02-0.28-0.06-0.41c-0.08-0.13-0.19-0.2-0.33-0.23
+	c-0.14-0.04-0.28-0.02-0.4,0.07c-0.12,0.08-0.2,0.19-0.23,0.34c0,0.01,0,0.02-0.01,0.05l-0.02,0.07c-0.11,0.19-0.26,0.34-0.45,0.45
+	c-0.31,0.19-0.72,0.28-1.23,0.28c-0.31,0-0.59-0.05-0.83-0.16c-0.4-0.17-0.68-0.47-0.85-0.89c-0.11-0.27-0.17-0.6-0.17-0.97v-3.22
+	c0-0.15,0.01-0.3,0.03-0.45c0.04-0.38,0.19-0.73,0.45-1.04c0.29-0.35,0.75-0.52,1.38-0.52c0.52,0,0.93,0.09,1.23,0.27
+	c0.2,0.12,0.35,0.27,0.45,0.45c0.01,0.02,0.01,0.05,0.02,0.08c0.01,0.03,0.01,0.05,0.01,0.06c0.04,0.14,0.12,0.24,0.23,0.3
+	c0.12,0.07,0.25,0.08,0.4,0.05c0.14-0.03,0.25-0.11,0.33-0.23c0.08-0.12,0.1-0.25,0.06-0.4v-0.01l-0.08-0.23
+	c-0.05-0.11-0.14-0.26-0.28-0.43c-0.13-0.18-0.29-0.32-0.45-0.44c-0.21-0.15-0.48-0.27-0.82-0.38c-0.34-0.1-0.71-0.15-1.11-0.15
+	c-0.51,0-0.95,0.09-1.35,0.27c-0.39,0.18-0.7,0.42-0.91,0.73c-0.43,0.59-0.65,1.28-0.65,2.07V15.4z"/>
+</svg>

+ 18 - 0
src/main/vue/static/weather_icons/svg/wi-cloud-down.svg

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 30 30" style="enable-background:new 0 0 30 30;" xml:space="preserve">
+<path d="M4.61,16.88c0,1.34,0.47,2.48,1.4,3.44c0.93,0.96,2.07,1.47,3.4,1.53c0.11,0,0.17-0.06,0.17-0.17v-1.34
+	c0-0.12-0.06-0.18-0.17-0.18c-0.86-0.04-1.59-0.38-2.19-1.02c-0.6-0.64-0.9-1.39-0.9-2.26c0-0.83,0.28-1.55,0.85-2.17
+	c0.57-0.62,1.27-0.97,2.1-1.07L9.8,13.6c0.13,0,0.2-0.06,0.2-0.17l0.08-0.55c0.1-1.08,0.55-1.99,1.36-2.71
+	c0.81-0.73,1.76-1.09,2.86-1.09c1.09,0,2.04,0.36,2.86,1.09c0.82,0.73,1.28,1.63,1.4,2.71l0.07,0.58c0,0.11,0.06,0.17,0.17,0.17
+	h1.62c0.89,0,1.66,0.32,2.31,0.97c0.65,0.64,0.98,1.4,0.98,2.28c0,0.87-0.3,1.62-0.91,2.26c-0.61,0.64-1.34,0.98-2.19,1.02
+	c-0.13,0-0.19,0.06-0.19,0.18v1.34c0,0.11,0.06,0.17,0.19,0.17c0.88-0.02,1.68-0.26,2.41-0.72c0.73-0.45,1.31-1.05,1.73-1.8
+	s0.63-1.57,0.63-2.45c0-0.9-0.22-1.73-0.67-2.48c-0.44-0.76-1.05-1.35-1.81-1.79s-1.59-0.65-2.49-0.65h-0.33
+	c-0.33-1.34-1.03-2.43-2.1-3.29s-2.31-1.28-3.69-1.28c-1.41,0-2.67,0.44-3.76,1.31s-1.8,2-2.11,3.37c-1.1,0.26-2.01,0.84-2.73,1.74
+	S4.61,15.73,4.61,16.88z M11.58,18.4c0,0.24,0.08,0.44,0.24,0.6l2.59,2.61c0.12,0.16,0.32,0.23,0.57,0.23
+	c0.28,0,0.48-0.08,0.61-0.23l2.6-2.61c0.16-0.17,0.24-0.38,0.24-0.6c0-0.23-0.08-0.43-0.24-0.58s-0.36-0.23-0.6-0.23
+	c-0.24,0-0.44,0.08-0.62,0.23l-1.12,1.11v-3.98c0-0.24-0.08-0.43-0.25-0.59c-0.17-0.16-0.37-0.23-0.61-0.23s-0.43,0.08-0.59,0.23
+	c-0.16,0.16-0.23,0.35-0.23,0.59v3.98l-1.1-1.11c-0.18-0.16-0.38-0.23-0.63-0.23c-0.25,0-0.45,0.08-0.61,0.23
+	C11.66,17.97,11.58,18.17,11.58,18.4z"/>
+</svg>

+ 21 - 0
src/main/vue/static/weather_icons/svg/wi-cloud-refresh.svg

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 30 30" style="enable-background:new 0 0 30 30;" xml:space="preserve">
+<path d="M4.63,16.91c0,0.66,0.12,1.28,0.38,1.88c0.25,0.6,0.59,1.11,1.02,1.55c0.43,0.43,0.94,0.79,1.53,1.05
+	c0.59,0.27,1.21,0.42,1.87,0.45c0.11,0,0.17-0.06,0.17-0.17v-1.33c0-0.12-0.06-0.19-0.17-0.19c-0.87-0.06-1.6-0.41-2.19-1.03
+	s-0.89-1.36-0.89-2.21c0-0.84,0.28-1.57,0.85-2.19c0.57-0.62,1.26-0.97,2.1-1.04l0.52-0.07c0.13,0,0.2-0.06,0.2-0.17l0.07-0.52
+	c0.07-0.71,0.3-1.36,0.69-1.95c0.39-0.58,0.9-1.04,1.52-1.37s1.29-0.49,2.01-0.49c1.09,0,2.05,0.36,2.86,1.08
+	c0.82,0.72,1.28,1.62,1.39,2.7l0.06,0.57c0,0.12,0.06,0.18,0.19,0.18h1.61c0.9,0,1.67,0.32,2.32,0.97c0.64,0.64,0.97,1.41,0.97,2.3
+	c0,0.85-0.3,1.59-0.89,2.21c-0.59,0.62-1.32,0.97-2.19,1.03c-0.13,0-0.2,0.06-0.2,0.19v1.33c0,0.11,0.07,0.17,0.2,0.17
+	c1.34-0.06,2.47-0.57,3.39-1.51s1.38-2.09,1.38-3.42c0-0.89-0.22-1.72-0.67-2.48c-0.45-0.76-1.05-1.36-1.81-1.8
+	c-0.76-0.44-1.59-0.67-2.48-0.67h-0.32c-0.33-1.33-1.04-2.42-2.11-3.28C16.9,7.82,15.67,7.4,14.3,7.4c-1.41,0-2.66,0.44-3.75,1.33
+	s-1.8,2.01-2.11,3.38c-1.11,0.26-2.02,0.84-2.73,1.74C4.99,14.74,4.63,15.76,4.63,16.91z M10.86,18.18c0,0.74,0.19,1.43,0.56,2.07
+	s0.88,1.14,1.51,1.51c0.63,0.38,1.32,0.56,2.06,0.56c1.15,0,2.13-0.41,2.95-1.22c0.82-0.82,1.23-1.79,1.23-2.92
+	c0-0.23-0.08-0.43-0.25-0.6c-0.17-0.17-0.37-0.25-0.61-0.25c-0.24,0-0.44,0.08-0.61,0.25s-0.26,0.37-0.26,0.6
+	c0,0.67-0.24,1.24-0.72,1.73c-0.48,0.48-1.05,0.72-1.73,0.72c-0.66,0-1.23-0.24-1.71-0.72c-0.48-0.48-0.72-1.06-0.72-1.73
+	c0-0.6,0.18-1.13,0.53-1.6c0.36-0.47,0.79-0.73,1.31-0.77l-0.41,0.39c-0.15,0.15-0.23,0.34-0.23,0.57c0,0.25,0.07,0.47,0.23,0.66
+	c0.14,0.15,0.31,0.23,0.53,0.23c0.22,0.01,0.45-0.07,0.7-0.23l1.82-1.87c0.17-0.17,0.25-0.36,0.25-0.58c0-0.25-0.08-0.45-0.25-0.61
+	l-1.82-1.83c-0.19-0.18-0.39-0.26-0.62-0.26c-0.23,0-0.43,0.08-0.59,0.25c-0.16,0.17-0.24,0.37-0.24,0.61
+	c0,0.24,0.07,0.43,0.23,0.58l0.35,0.36c-1,0.17-1.83,0.63-2.49,1.4C11.19,16.24,10.86,17.14,10.86,18.18z"/>
+</svg>

+ 18 - 0
src/main/vue/static/weather_icons/svg/wi-cloud-up.svg

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 30 30" style="enable-background:new 0 0 30 30;" xml:space="preserve">
+<path d="M4.64,16.88c0,1.33,0.46,2.48,1.39,3.43c0.93,0.96,2.06,1.47,3.4,1.53c0.11,0,0.17-0.06,0.17-0.17v-1.33
+	c0-0.12-0.06-0.19-0.17-0.19c-0.86-0.04-1.58-0.38-2.18-1.02s-0.9-1.39-0.9-2.25c0-0.82,0.28-1.54,0.84-2.16
+	c0.56-0.61,1.26-0.97,2.1-1.07h0.53c0.13,0,0.2-0.06,0.2-0.18l0.06-0.57c0.11-1.08,0.57-1.99,1.38-2.72s1.77-1.1,2.86-1.1
+	c1.08,0,2.03,0.37,2.85,1.1c0.82,0.73,1.28,1.64,1.39,2.72l0.08,0.57c0,0.12,0.06,0.18,0.18,0.18h1.61c0.89,0,1.66,0.32,2.31,0.96
+	s0.98,1.4,0.98,2.26c0,0.86-0.3,1.61-0.9,2.25c-0.6,0.64-1.33,0.98-2.18,1.02c-0.13,0-0.2,0.06-0.2,0.19v1.33
+	c0,0.11,0.07,0.17,0.2,0.17c0.87-0.02,1.67-0.26,2.4-0.71c0.73-0.45,1.31-1.05,1.73-1.8c0.42-0.75,0.63-1.57,0.63-2.44
+	c0-0.67-0.13-1.31-0.39-1.91c-0.26-0.61-0.62-1.13-1.06-1.57c-0.44-0.44-0.97-0.79-1.58-1.05c-0.61-0.26-1.25-0.39-1.92-0.39h-0.32
+	c-0.33-1.34-1.03-2.43-2.11-3.29c-1.07-0.85-2.3-1.28-3.68-1.28c-1.41,0-2.67,0.44-3.76,1.32s-1.79,2-2.1,3.36
+	c-1.11,0.26-2.02,0.83-2.73,1.73C4.99,14.71,4.64,15.73,4.64,16.88z M11.58,17.51c0,0.25,0.08,0.46,0.24,0.64
+	c0.15,0.15,0.35,0.23,0.61,0.23c0.24,0,0.45-0.08,0.62-0.23l1.11-1.14v3.98c0,0.24,0.08,0.44,0.23,0.61
+	c0.16,0.17,0.35,0.25,0.59,0.25c0.23,0,0.43-0.08,0.6-0.25c0.17-0.17,0.25-0.37,0.25-0.61v-3.94l1.12,1.11
+	c0.4,0.31,0.81,0.31,1.22,0c0.16-0.15,0.24-0.36,0.24-0.62c0-0.24-0.08-0.44-0.24-0.62l-2.59-2.57c-0.16-0.16-0.36-0.24-0.6-0.24
+	c-0.24,0-0.44,0.08-0.59,0.24l-2.58,2.57C11.66,17.08,11.58,17.27,11.58,17.51z"/>
+</svg>

+ 13 - 0
src/main/vue/static/weather_icons/svg/wi-cloud.svg

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 30 30" style="enable-background:new 0 0 30 30;" xml:space="preserve">
+<path d="M4.61,16.88c0-1.15,0.36-2.17,1.08-3.07c0.72-0.9,1.63-1.48,2.74-1.73c0.31-1.37,1.02-2.49,2.11-3.37s2.35-1.32,3.76-1.32
+	c1.38,0,2.61,0.43,3.69,1.28s1.78,1.95,2.1,3.29h0.33c0.9,0,1.73,0.22,2.49,0.65s1.37,1.03,1.81,1.79c0.44,0.76,0.67,1.58,0.67,2.48
+	c0,0.88-0.21,1.7-0.63,2.45s-1,1.35-1.73,1.8c-0.73,0.45-1.54,0.69-2.41,0.72H9.41c-1.34-0.06-2.47-0.57-3.4-1.53
+	C5.08,19.37,4.61,18.22,4.61,16.88z M6.32,16.88c0,0.87,0.3,1.62,0.9,2.26s1.33,0.98,2.19,1.03h11.19c0.86-0.04,1.59-0.39,2.19-1.03
+	c0.61-0.64,0.91-1.4,0.91-2.26c0-0.88-0.33-1.63-0.98-2.27c-0.65-0.64-1.42-0.96-2.32-0.96H18.8c-0.11,0-0.17-0.06-0.17-0.18
+	l-0.07-0.57c-0.11-1.08-0.58-1.99-1.4-2.72c-0.82-0.73-1.77-1.1-2.86-1.1c-1.09,0-2.05,0.37-2.85,1.1
+	c-0.81,0.73-1.27,1.64-1.37,2.72l-0.08,0.57c0,0.12-0.07,0.18-0.2,0.18H9.27c-0.84,0.1-1.54,0.46-2.1,1.07S6.32,16.05,6.32,16.88z"
+	/>
+</svg>

+ 22 - 0
src/main/vue/static/weather_icons/svg/wi-cloudy-gusts.svg

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 30 30" style="enable-background:new 0 0 30 30;" xml:space="preserve">
+<path d="M3.62,21.01c0-0.25,0.08-0.46,0.25-0.63c0.17-0.16,0.37-0.24,0.6-0.24h5.42c0.74,0,1.37,0.26,1.89,0.79
+	c0.52,0.53,0.78,1.16,0.78,1.9c0,0.74-0.26,1.38-0.78,1.9c-0.52,0.52-1.15,0.78-1.89,0.78s-1.38-0.26-1.9-0.79
+	c-0.16-0.16-0.23-0.36-0.23-0.6c0-0.24,0.08-0.45,0.23-0.6c0.15-0.16,0.35-0.24,0.6-0.24c0.23,0,0.43,0.08,0.61,0.24
+	c0.2,0.19,0.43,0.29,0.69,0.29s0.49-0.1,0.68-0.29c0.19-0.19,0.29-0.42,0.29-0.7c0-0.26-0.1-0.49-0.29-0.68s-0.42-0.29-0.68-0.29
+	H4.47c-0.23,0-0.43-0.08-0.6-0.25S3.62,21.25,3.62,21.01z M3.62,17.97c0-0.24,0.08-0.45,0.25-0.62c0.17-0.16,0.37-0.24,0.6-0.24
+	h10.55c0.26,0,0.49-0.1,0.68-0.29c0.19-0.19,0.29-0.43,0.29-0.69s-0.1-0.5-0.29-0.69c-0.19-0.19-0.42-0.29-0.68-0.29
+	c-0.28,0-0.5,0.09-0.68,0.28c-0.18,0.15-0.39,0.23-0.64,0.23c-0.24,0-0.44-0.08-0.6-0.23c-0.15-0.15-0.23-0.35-0.23-0.6
+	c0-0.25,0.07-0.45,0.23-0.61c0.51-0.51,1.15-0.76,1.92-0.76c0.74,0,1.38,0.26,1.9,0.78c0.52,0.52,0.78,1.15,0.78,1.88
+	s-0.26,1.37-0.78,1.89c-0.52,0.52-1.15,0.78-1.9,0.78H4.47c-0.24,0-0.44-0.08-0.6-0.24C3.7,18.4,3.62,18.2,3.62,17.97z M5.77,15.61
+	c0,0.08,0.05,0.12,0.16,0.12h1.44c0.08,0,0.15-0.05,0.22-0.15c0.22-0.54,0.58-0.99,1.05-1.35c0.48-0.36,1.01-0.56,1.59-0.6
+	l0.53-0.08c0.13,0,0.2-0.06,0.2-0.17l0.07-0.52c0.11-1.08,0.56-1.99,1.37-2.72s1.76-1.1,2.86-1.1c1.11,0,2.07,0.36,2.88,1.09
+	c0.81,0.73,1.27,1.64,1.39,2.73l0.07,0.59c0,0.11,0.06,0.17,0.17,0.17h1.62c0.91,0,1.68,0.32,2.33,0.96c0.65,0.64,0.97,1.4,0.97,2.3
+	c0,0.89-0.32,1.66-0.97,2.3c-0.65,0.64-1.42,0.96-2.33,0.96h-6.91c-0.12,0-0.19,0.06-0.19,0.17v1.39c0,0.11,0.06,0.17,0.19,0.17
+	h6.91c0.91,0,1.74-0.22,2.51-0.67c0.77-0.44,1.37-1.05,1.82-1.81c0.45-0.77,0.67-1.6,0.67-2.5c0-0.91-0.22-1.74-0.67-2.5
+	c-0.45-0.76-1.05-1.37-1.82-1.81c-0.77-0.44-1.6-0.67-2.51-0.67h-0.31c-0.31-1.33-1.01-2.42-2.1-3.27
+	c-1.08-0.85-2.33-1.27-3.73-1.27c-1.41,0-2.66,0.44-3.75,1.32s-1.78,2-2.07,3.37c-0.86,0.2-1.62,0.61-2.28,1.23
+	s-1.12,1.36-1.38,2.21v0.04C5.77,15.56,5.77,15.58,5.77,15.61z"/>
+</svg>

Некоторые файлы не были показаны из-за большого количества измененных файлов