Image optimization & Lazy Load by Optimole - Version 1.0.1

Version Description

  • 2018-09-23
Download this release

Release Info

Developer optimole
Plugin Icon 128x128 Image optimization & Lazy Load by Optimole
Version 1.0.1
Comparing to
See all releases

Version 1.0.1

CHANGELOG.md ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ ### v1.0.1 - 2018-09-23
3
+ **Changes:**
4
+
5
+ ### v1.0.1 - 2018-09-23
6
+ **Changes:**
7
+ * Tag first stable version for wordpress.org.
8
+
9
+ ### v1.0.0 - 2018-09-11
10
+ **Changes:**
11
+ * First version of the plugin
README.md ADDED
@@ -0,0 +1 @@
 
1
+ # optimole-wp
assets/css/style.scss ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #optimole-app {
2
+ padding: 0 30px 0 20px;
3
+
4
+ $primary: #e7602a;
5
+ $success: #34a85e;
6
+ $danger: #d54222;
7
+ $info: #008ec2;
8
+
9
+ @import "~bulma/bulma";
10
+
11
+ .card {
12
+ transition: all 750ms ease-in-out;
13
+ border: 0;
14
+ border-radius: .1875rem;
15
+ -webkit-box-shadow: 0 1px 15px 1px rgba(39, 39, 39, .1);
16
+ box-shadow: 0 1px 15px 1px rgba(39, 39, 39, .1);
17
+ }
18
+ .logo {
19
+ margin-bottom: 10px;
20
+ img {
21
+ max-width: 180px;
22
+ margin: 0 auto;
23
+ }
24
+ }
25
+ .vue-js-switch {
26
+ align-self: center;
27
+ }
28
+ .api-key-control {
29
+ padding: 0 15px 0 0;
30
+ }
31
+
32
+ .api-key-field .button.is-danger {
33
+ padding-left: 20px;
34
+ padding-right: 20px;
35
+ }
36
+
37
+ .api-key-label, .label {
38
+ align-self: center;
39
+ margin: 0.5em 10px 0.5em 0;
40
+ font-size: 1em;
41
+ }
42
+ .header {
43
+ padding: 0 1.5rem 0;
44
+ &.level {
45
+ margin-bottom: 0;
46
+ }
47
+ }
48
+ .account {
49
+ img {
50
+ border-top-right-radius: 4px;
51
+ border-bottom-right-radius: 4px;
52
+ }
53
+ .label {
54
+ margin-bottom: 0;
55
+ }
56
+ }
57
+
58
+ //Optimized images.
59
+ .optimized-images {
60
+
61
+ table td, table th {
62
+ vertical-align: middle;
63
+ }
64
+ }
65
+ }
66
+
67
+ //Fade animation.
68
+ .fade-enter-active, .fade-leave-active {
69
+ transition: opacity .5s;
70
+ }
71
+
72
+ .fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */
73
+ {
74
+ opacity: 0;
75
+ }
76
+
77
+ .media_page_optimole #wpbody-content > * {
78
+ display: none !important;
79
+ }
80
+
81
+ .media_page_optimole #wpbody-content > #optimole-app {
82
+ display: block !important;
83
+ }
84
+ #optimole-app img.optml-image{
85
+ float:left;
86
+ max-width: 100px;
87
+ width:auto;
88
+ margin: auto;
89
+ }
90
+ .optml-ratio-feedback .emoji{
91
+ font-size: 1.5em;
92
+ }
93
+ .optml-ratio-feedback{
94
+ float:right;
95
+ padding-right: 20px;
96
+ }
97
+ .optml-image-heading{
98
+ text-align: left;
99
+ }
100
+ th.optml-image-ratio-heading{
101
+ text-align: right !important;
102
+ font-size: 150%;
103
+ }
assets/img/logo.png ADDED
Binary file
assets/js/assets/img/optimole-logo.png ADDED
Binary file
assets/js/bundle.js ADDED
@@ -0,0 +1,16278 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /******/ (function(modules) { // webpackBootstrap
2
+ /******/ // The module cache
3
+ /******/ var installedModules = {};
4
+ /******/
5
+ /******/ // The require function
6
+ /******/ function __webpack_require__(moduleId) {
7
+ /******/
8
+ /******/ // Check if module is in cache
9
+ /******/ if(installedModules[moduleId]) {
10
+ /******/ return installedModules[moduleId].exports;
11
+ /******/ }
12
+ /******/ // Create a new module (and put it into the cache)
13
+ /******/ var module = installedModules[moduleId] = {
14
+ /******/ i: moduleId,
15
+ /******/ l: false,
16
+ /******/ exports: {}
17
+ /******/ };
18
+ /******/
19
+ /******/ // Execute the module function
20
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21
+ /******/
22
+ /******/ // Flag the module as loaded
23
+ /******/ module.l = true;
24
+ /******/
25
+ /******/ // Return the exports of the module
26
+ /******/ return module.exports;
27
+ /******/ }
28
+ /******/
29
+ /******/
30
+ /******/ // expose the modules object (__webpack_modules__)
31
+ /******/ __webpack_require__.m = modules;
32
+ /******/
33
+ /******/ // expose the module cache
34
+ /******/ __webpack_require__.c = installedModules;
35
+ /******/
36
+ /******/ // define getter function for harmony exports
37
+ /******/ __webpack_require__.d = function(exports, name, getter) {
38
+ /******/ if(!__webpack_require__.o(exports, name)) {
39
+ /******/ Object.defineProperty(exports, name, {
40
+ /******/ configurable: false,
41
+ /******/ enumerable: true,
42
+ /******/ get: getter
43
+ /******/ });
44
+ /******/ }
45
+ /******/ };
46
+ /******/
47
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
48
+ /******/ __webpack_require__.n = function(module) {
49
+ /******/ var getter = module && module.__esModule ?
50
+ /******/ function getDefault() { return module['default']; } :
51
+ /******/ function getModuleExports() { return module; };
52
+ /******/ __webpack_require__.d(getter, 'a', getter);
53
+ /******/ return getter;
54
+ /******/ };
55
+ /******/
56
+ /******/ // Object.prototype.hasOwnProperty.call
57
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
58
+ /******/
59
+ /******/ // __webpack_public_path__
60
+ /******/ __webpack_require__.p = "/";
61
+ /******/
62
+ /******/ // Load entry module and return exports
63
+ /******/ return __webpack_require__(__webpack_require__.s = 6);
64
+ /******/ })
65
+ /************************************************************************/
66
+ /******/ ([
67
+ /* 0 */
68
+ /***/ (function(module, exports) {
69
+
70
+ /*
71
+ MIT License http://www.opensource.org/licenses/mit-license.php
72
+ Author Tobias Koppers @sokra
73
+ */
74
+ // css base code, injected by the css-loader
75
+ module.exports = function() {
76
+ var list = [];
77
+
78
+ // return the list of modules as css string
79
+ list.toString = function toString() {
80
+ var result = [];
81
+ for(var i = 0; i < this.length; i++) {
82
+ var item = this[i];
83
+ if(item[2]) {
84
+ result.push("@media " + item[2] + "{" + item[1] + "}");
85
+ } else {
86
+ result.push(item[1]);
87
+ }
88
+ }
89
+ return result.join("");
90
+ };
91
+
92
+ // import a list of modules into the list
93
+ list.i = function(modules, mediaQuery) {
94
+ if(typeof modules === "string")
95
+ modules = [[null, modules, ""]];
96
+ var alreadyImportedModules = {};
97
+ for(var i = 0; i < this.length; i++) {
98
+ var id = this[i][0];
99
+ if(typeof id === "number")
100
+ alreadyImportedModules[id] = true;
101
+ }
102
+ for(i = 0; i < modules.length; i++) {
103
+ var item = modules[i];
104
+ // skip already imported module
105
+ // this implementation is not 100% perfect for weird media query combinations
106
+ // when a module is imported multiple times with different media queries.
107
+ // I hope this will never occur (Hey this way we have smaller bundles)
108
+ if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
109
+ if(mediaQuery && !item[2]) {
110
+ item[2] = mediaQuery;
111
+ } else if(mediaQuery) {
112
+ item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
113
+ }
114
+ list.push(item);
115
+ }
116
+ }
117
+ };
118
+ return list;
119
+ };
120
+
121
+
122
+ /***/ }),
123
+ /* 1 */
124
+ /***/ (function(module, exports) {
125
+
126
+ /*
127
+ MIT License http://www.opensource.org/licenses/mit-license.php
128
+ Author Tobias Koppers @sokra
129
+ */
130
+ var stylesInDom = {},
131
+ memoize = function(fn) {
132
+ var memo;
133
+ return function () {
134
+ if (typeof memo === "undefined") memo = fn.apply(this, arguments);
135
+ return memo;
136
+ };
137
+ },
138
+ isOldIE = memoize(function() {
139
+ return /msie [6-9]\b/.test(self.navigator.userAgent.toLowerCase());
140
+ }),
141
+ getHeadElement = memoize(function () {
142
+ return document.head || document.getElementsByTagName("head")[0];
143
+ }),
144
+ singletonElement = null,
145
+ singletonCounter = 0,
146
+ styleElementsInsertedAtTop = [];
147
+
148
+ module.exports = function(list, options) {
149
+ if(typeof DEBUG !== "undefined" && DEBUG) {
150
+ if(typeof document !== "object") throw new Error("The style-loader cannot be used in a non-browser environment");
151
+ }
152
+
153
+ options = options || {};
154
+ // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
155
+ // tags it will allow on a page
156
+ if (typeof options.singleton === "undefined") options.singleton = isOldIE();
157
+
158
+ // By default, add <style> tags to the bottom of <head>.
159
+ if (typeof options.insertAt === "undefined") options.insertAt = "bottom";
160
+
161
+ var styles = listToStyles(list);
162
+ addStylesToDom(styles, options);
163
+
164
+ return function update(newList) {
165
+ var mayRemove = [];
166
+ for(var i = 0; i < styles.length; i++) {
167
+ var item = styles[i];
168
+ var domStyle = stylesInDom[item.id];
169
+ domStyle.refs--;
170
+ mayRemove.push(domStyle);
171
+ }
172
+ if(newList) {
173
+ var newStyles = listToStyles(newList);
174
+ addStylesToDom(newStyles, options);
175
+ }
176
+ for(var i = 0; i < mayRemove.length; i++) {
177
+ var domStyle = mayRemove[i];
178
+ if(domStyle.refs === 0) {
179
+ for(var j = 0; j < domStyle.parts.length; j++)
180
+ domStyle.parts[j]();
181
+ delete stylesInDom[domStyle.id];
182
+ }
183
+ }
184
+ };
185
+ }
186
+
187
+ function addStylesToDom(styles, options) {
188
+ for(var i = 0; i < styles.length; i++) {
189
+ var item = styles[i];
190
+ var domStyle = stylesInDom[item.id];
191
+ if(domStyle) {
192
+ domStyle.refs++;
193
+ for(var j = 0; j < domStyle.parts.length; j++) {
194
+ domStyle.parts[j](item.parts[j]);
195
+ }
196
+ for(; j < item.parts.length; j++) {
197
+ domStyle.parts.push(addStyle(item.parts[j], options));
198
+ }
199
+ } else {
200
+ var parts = [];
201
+ for(var j = 0; j < item.parts.length; j++) {
202
+ parts.push(addStyle(item.parts[j], options));
203
+ }
204
+ stylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};
205
+ }
206
+ }
207
+ }
208
+
209
+ function listToStyles(list) {
210
+ var styles = [];
211
+ var newStyles = {};
212
+ for(var i = 0; i < list.length; i++) {
213
+ var item = list[i];
214
+ var id = item[0];
215
+ var css = item[1];
216
+ var media = item[2];
217
+ var sourceMap = item[3];
218
+ var part = {css: css, media: media, sourceMap: sourceMap};
219
+ if(!newStyles[id])
220
+ styles.push(newStyles[id] = {id: id, parts: [part]});
221
+ else
222
+ newStyles[id].parts.push(part);
223
+ }
224
+ return styles;
225
+ }
226
+
227
+ function insertStyleElement(options, styleElement) {
228
+ var head = getHeadElement();
229
+ var lastStyleElementInsertedAtTop = styleElementsInsertedAtTop[styleElementsInsertedAtTop.length - 1];
230
+ if (options.insertAt === "top") {
231
+ if(!lastStyleElementInsertedAtTop) {
232
+ head.insertBefore(styleElement, head.firstChild);
233
+ } else if(lastStyleElementInsertedAtTop.nextSibling) {
234
+ head.insertBefore(styleElement, lastStyleElementInsertedAtTop.nextSibling);
235
+ } else {
236
+ head.appendChild(styleElement);
237
+ }
238
+ styleElementsInsertedAtTop.push(styleElement);
239
+ } else if (options.insertAt === "bottom") {
240
+ head.appendChild(styleElement);
241
+ } else {
242
+ throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");
243
+ }
244
+ }
245
+
246
+ function removeStyleElement(styleElement) {
247
+ styleElement.parentNode.removeChild(styleElement);
248
+ var idx = styleElementsInsertedAtTop.indexOf(styleElement);
249
+ if(idx >= 0) {
250
+ styleElementsInsertedAtTop.splice(idx, 1);
251
+ }
252
+ }
253
+
254
+ function createStyleElement(options) {
255
+ var styleElement = document.createElement("style");
256
+ styleElement.type = "text/css";
257
+ insertStyleElement(options, styleElement);
258
+ return styleElement;
259
+ }
260
+
261
+ function createLinkElement(options) {
262
+ var linkElement = document.createElement("link");
263
+ linkElement.rel = "stylesheet";
264
+ insertStyleElement(options, linkElement);
265
+ return linkElement;
266
+ }
267
+
268
+ function addStyle(obj, options) {
269
+ var styleElement, update, remove;
270
+
271
+ if (options.singleton) {
272
+ var styleIndex = singletonCounter++;
273
+ styleElement = singletonElement || (singletonElement = createStyleElement(options));
274
+ update = applyToSingletonTag.bind(null, styleElement, styleIndex, false);
275
+ remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true);
276
+ } else if(obj.sourceMap &&
277
+ typeof URL === "function" &&
278
+ typeof URL.createObjectURL === "function" &&
279
+ typeof URL.revokeObjectURL === "function" &&
280
+ typeof Blob === "function" &&
281
+ typeof btoa === "function") {
282
+ styleElement = createLinkElement(options);
283
+ update = updateLink.bind(null, styleElement);
284
+ remove = function() {
285
+ removeStyleElement(styleElement);
286
+ if(styleElement.href)
287
+ URL.revokeObjectURL(styleElement.href);
288
+ };
289
+ } else {
290
+ styleElement = createStyleElement(options);
291
+ update = applyToTag.bind(null, styleElement);
292
+ remove = function() {
293
+ removeStyleElement(styleElement);
294
+ };
295
+ }
296
+
297
+ update(obj);
298
+
299
+ return function updateStyle(newObj) {
300
+ if(newObj) {
301
+ if(newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap)
302
+ return;
303
+ update(obj = newObj);
304
+ } else {
305
+ remove();
306
+ }
307
+ };
308
+ }
309
+
310
+ var replaceText = (function () {
311
+ var textStore = [];
312
+
313
+ return function (index, replacement) {
314
+ textStore[index] = replacement;
315
+ return textStore.filter(Boolean).join('\n');
316
+ };
317
+ })();
318
+
319
+ function applyToSingletonTag(styleElement, index, remove, obj) {
320
+ var css = remove ? "" : obj.css;
321
+
322
+ if (styleElement.styleSheet) {
323
+ styleElement.styleSheet.cssText = replaceText(index, css);
324
+ } else {
325
+ var cssNode = document.createTextNode(css);
326
+ var childNodes = styleElement.childNodes;
327
+ if (childNodes[index]) styleElement.removeChild(childNodes[index]);
328
+ if (childNodes.length) {
329
+ styleElement.insertBefore(cssNode, childNodes[index]);
330
+ } else {
331
+ styleElement.appendChild(cssNode);
332
+ }
333
+ }
334
+ }
335
+
336
+ function applyToTag(styleElement, obj) {
337
+ var css = obj.css;
338
+ var media = obj.media;
339
+
340
+ if(media) {
341
+ styleElement.setAttribute("media", media)
342
+ }
343
+
344
+ if(styleElement.styleSheet) {
345
+ styleElement.styleSheet.cssText = css;
346
+ } else {
347
+ while(styleElement.firstChild) {
348
+ styleElement.removeChild(styleElement.firstChild);
349
+ }
350
+ styleElement.appendChild(document.createTextNode(css));
351
+ }
352
+ }
353
+
354
+ function updateLink(linkElement, obj) {
355
+ var css = obj.css;
356
+ var sourceMap = obj.sourceMap;
357
+
358
+ if(sourceMap) {
359
+ // http://stackoverflow.com/a/26603875
360
+ css += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + " */";
361
+ }
362
+
363
+ var blob = new Blob([css], { type: "text/css" });
364
+
365
+ var oldSrc = linkElement.href;
366
+
367
+ linkElement.href = URL.createObjectURL(blob);
368
+
369
+ if(oldSrc)
370
+ URL.revokeObjectURL(oldSrc);
371
+ }
372
+
373
+
374
+ /***/ }),
375
+ /* 2 */
376
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
377
+
378
+ "use strict";
379
+ Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
380
+ /* WEBPACK VAR INJECTION */(function(process, global, setImmediate) {/*!
381
+ * Vue.js v2.5.17
382
+ * (c) 2014-2018 Evan You
383
+ * Released under the MIT License.
384
+ */
385
+ /* */
386
+
387
+ var emptyObject = Object.freeze({});
388
+
389
+ // these helpers produces better vm code in JS engines due to their
390
+ // explicitness and function inlining
391
+ function isUndef (v) {
392
+ return v === undefined || v === null
393
+ }
394
+
395
+ function isDef (v) {
396
+ return v !== undefined && v !== null
397
+ }
398
+
399
+ function isTrue (v) {
400
+ return v === true
401
+ }
402
+
403
+ function isFalse (v) {
404
+ return v === false
405
+ }
406
+
407
+ /**
408
+ * Check if value is primitive
409
+ */
410
+ function isPrimitive (value) {
411
+ return (
412
+ typeof value === 'string' ||
413
+ typeof value === 'number' ||
414
+ // $flow-disable-line
415
+ typeof value === 'symbol' ||
416
+ typeof value === 'boolean'
417
+ )
418
+ }
419
+
420
+ /**
421
+ * Quick object check - this is primarily used to tell
422
+ * Objects from primitive values when we know the value
423
+ * is a JSON-compliant type.
424
+ */
425
+ function isObject (obj) {
426
+ return obj !== null && typeof obj === 'object'
427
+ }
428
+
429
+ /**
430
+ * Get the raw type string of a value e.g. [object Object]
431
+ */
432
+ var _toString = Object.prototype.toString;
433
+
434
+ function toRawType (value) {
435
+ return _toString.call(value).slice(8, -1)
436
+ }
437
+
438
+ /**
439
+ * Strict object type check. Only returns true
440
+ * for plain JavaScript objects.
441
+ */
442
+ function isPlainObject (obj) {
443
+ return _toString.call(obj) === '[object Object]'
444
+ }
445
+
446
+ function isRegExp (v) {
447
+ return _toString.call(v) === '[object RegExp]'
448
+ }
449
+
450
+ /**
451
+ * Check if val is a valid array index.
452
+ */
453
+ function isValidArrayIndex (val) {
454
+ var n = parseFloat(String(val));
455
+ return n >= 0 && Math.floor(n) === n && isFinite(val)
456
+ }
457
+
458
+ /**
459
+ * Convert a value to a string that is actually rendered.
460
+ */
461
+ function toString (val) {
462
+ return val == null
463
+ ? ''
464
+ : typeof val === 'object'
465
+ ? JSON.stringify(val, null, 2)
466
+ : String(val)
467
+ }
468
+
469
+ /**
470
+ * Convert a input value to a number for persistence.
471
+ * If the conversion fails, return original string.
472
+ */
473
+ function toNumber (val) {
474
+ var n = parseFloat(val);
475
+ return isNaN(n) ? val : n
476
+ }
477
+
478
+ /**
479
+ * Make a map and return a function for checking if a key
480
+ * is in that map.
481
+ */
482
+ function makeMap (
483
+ str,
484
+ expectsLowerCase
485
+ ) {
486
+ var map = Object.create(null);
487
+ var list = str.split(',');
488
+ for (var i = 0; i < list.length; i++) {
489
+ map[list[i]] = true;
490
+ }
491
+ return expectsLowerCase
492
+ ? function (val) { return map[val.toLowerCase()]; }
493
+ : function (val) { return map[val]; }
494
+ }
495
+
496
+ /**
497
+ * Check if a tag is a built-in tag.
498
+ */
499
+ var isBuiltInTag = makeMap('slot,component', true);
500
+
501
+ /**
502
+ * Check if a attribute is a reserved attribute.
503
+ */
504
+ var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');
505
+
506
+ /**
507
+ * Remove an item from an array
508
+ */
509
+ function remove (arr, item) {
510
+ if (arr.length) {
511
+ var index = arr.indexOf(item);
512
+ if (index > -1) {
513
+ return arr.splice(index, 1)
514
+ }
515
+ }
516
+ }
517
+
518
+ /**
519
+ * Check whether the object has the property.
520
+ */
521
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
522
+ function hasOwn (obj, key) {
523
+ return hasOwnProperty.call(obj, key)
524
+ }
525
+
526
+ /**
527
+ * Create a cached version of a pure function.
528
+ */
529
+ function cached (fn) {
530
+ var cache = Object.create(null);
531
+ return (function cachedFn (str) {
532
+ var hit = cache[str];
533
+ return hit || (cache[str] = fn(str))
534
+ })
535
+ }
536
+
537
+ /**
538
+ * Camelize a hyphen-delimited string.
539
+ */
540
+ var camelizeRE = /-(\w)/g;
541
+ var camelize = cached(function (str) {
542
+ return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })
543
+ });
544
+
545
+ /**
546
+ * Capitalize a string.
547
+ */
548
+ var capitalize = cached(function (str) {
549
+ return str.charAt(0).toUpperCase() + str.slice(1)
550
+ });
551
+
552
+ /**
553
+ * Hyphenate a camelCase string.
554
+ */
555
+ var hyphenateRE = /\B([A-Z])/g;
556
+ var hyphenate = cached(function (str) {
557
+ return str.replace(hyphenateRE, '-$1').toLowerCase()
558
+ });
559
+
560
+ /**
561
+ * Simple bind polyfill for environments that do not support it... e.g.
562
+ * PhantomJS 1.x. Technically we don't need this anymore since native bind is
563
+ * now more performant in most browsers, but removing it would be breaking for
564
+ * code that was able to run in PhantomJS 1.x, so this must be kept for
565
+ * backwards compatibility.
566
+ */
567
+
568
+ /* istanbul ignore next */
569
+ function polyfillBind (fn, ctx) {
570
+ function boundFn (a) {
571
+ var l = arguments.length;
572
+ return l
573
+ ? l > 1
574
+ ? fn.apply(ctx, arguments)
575
+ : fn.call(ctx, a)
576
+ : fn.call(ctx)
577
+ }
578
+
579
+ boundFn._length = fn.length;
580
+ return boundFn
581
+ }
582
+
583
+ function nativeBind (fn, ctx) {
584
+ return fn.bind(ctx)
585
+ }
586
+
587
+ var bind = Function.prototype.bind
588
+ ? nativeBind
589
+ : polyfillBind;
590
+
591
+ /**
592
+ * Convert an Array-like object to a real Array.
593
+ */
594
+ function toArray (list, start) {
595
+ start = start || 0;
596
+ var i = list.length - start;
597
+ var ret = new Array(i);
598
+ while (i--) {
599
+ ret[i] = list[i + start];
600
+ }
601
+ return ret
602
+ }
603
+
604
+ /**
605
+ * Mix properties into target object.
606
+ */
607
+ function extend (to, _from) {
608
+ for (var key in _from) {
609
+ to[key] = _from[key];
610
+ }
611
+ return to
612
+ }
613
+
614
+ /**
615
+ * Merge an Array of Objects into a single Object.
616
+ */
617
+ function toObject (arr) {
618
+ var res = {};
619
+ for (var i = 0; i < arr.length; i++) {
620
+ if (arr[i]) {
621
+ extend(res, arr[i]);
622
+ }
623
+ }
624
+ return res
625
+ }
626
+
627
+ /**
628
+ * Perform no operation.
629
+ * Stubbing args to make Flow happy without leaving useless transpiled code
630
+ * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/)
631
+ */
632
+ function noop (a, b, c) {}
633
+
634
+ /**
635
+ * Always return false.
636
+ */
637
+ var no = function (a, b, c) { return false; };
638
+
639
+ /**
640
+ * Return same value
641
+ */
642
+ var identity = function (_) { return _; };
643
+
644
+ /**
645
+ * Generate a static keys string from compiler modules.
646
+ */
647
+ function genStaticKeys (modules) {
648
+ return modules.reduce(function (keys, m) {
649
+ return keys.concat(m.staticKeys || [])
650
+ }, []).join(',')
651
+ }
652
+
653
+ /**
654
+ * Check if two values are loosely equal - that is,
655
+ * if they are plain objects, do they have the same shape?
656
+ */
657
+ function looseEqual (a, b) {
658
+ if (a === b) { return true }
659
+ var isObjectA = isObject(a);
660
+ var isObjectB = isObject(b);
661
+ if (isObjectA && isObjectB) {
662
+ try {
663
+ var isArrayA = Array.isArray(a);
664
+ var isArrayB = Array.isArray(b);
665
+ if (isArrayA && isArrayB) {
666
+ return a.length === b.length && a.every(function (e, i) {
667
+ return looseEqual(e, b[i])
668
+ })
669
+ } else if (!isArrayA && !isArrayB) {
670
+ var keysA = Object.keys(a);
671
+ var keysB = Object.keys(b);
672
+ return keysA.length === keysB.length && keysA.every(function (key) {
673
+ return looseEqual(a[key], b[key])
674
+ })
675
+ } else {
676
+ /* istanbul ignore next */
677
+ return false
678
+ }
679
+ } catch (e) {
680
+ /* istanbul ignore next */
681
+ return false
682
+ }
683
+ } else if (!isObjectA && !isObjectB) {
684
+ return String(a) === String(b)
685
+ } else {
686
+ return false
687
+ }
688
+ }
689
+
690
+ function looseIndexOf (arr, val) {
691
+ for (var i = 0; i < arr.length; i++) {
692
+ if (looseEqual(arr[i], val)) { return i }
693
+ }
694
+ return -1
695
+ }
696
+
697
+ /**
698
+ * Ensure a function is called only once.
699
+ */
700
+ function once (fn) {
701
+ var called = false;
702
+ return function () {
703
+ if (!called) {
704
+ called = true;
705
+ fn.apply(this, arguments);
706
+ }
707
+ }
708
+ }
709
+
710
+ var SSR_ATTR = 'data-server-rendered';
711
+
712
+ var ASSET_TYPES = [
713
+ 'component',
714
+ 'directive',
715
+ 'filter'
716
+ ];
717
+
718
+ var LIFECYCLE_HOOKS = [
719
+ 'beforeCreate',
720
+ 'created',
721
+ 'beforeMount',
722
+ 'mounted',
723
+ 'beforeUpdate',
724
+ 'updated',
725
+ 'beforeDestroy',
726
+ 'destroyed',
727
+ 'activated',
728
+ 'deactivated',
729
+ 'errorCaptured'
730
+ ];
731
+
732
+ /* */
733
+
734
+ var config = ({
735
+ /**
736
+ * Option merge strategies (used in core/util/options)
737
+ */
738
+ // $flow-disable-line
739
+ optionMergeStrategies: Object.create(null),
740
+
741
+ /**
742
+ * Whether to suppress warnings.
743
+ */
744
+ silent: false,
745
+
746
+ /**
747
+ * Show production mode tip message on boot?
748
+ */
749
+ productionTip: process.env.NODE_ENV !== 'production',
750
+
751
+ /**
752
+ * Whether to enable devtools
753
+ */
754
+ devtools: process.env.NODE_ENV !== 'production',
755
+
756
+ /**
757
+ * Whether to record perf
758
+ */
759
+ performance: false,
760
+
761
+ /**
762
+ * Error handler for watcher errors
763
+ */
764
+ errorHandler: null,
765
+
766
+ /**
767
+ * Warn handler for watcher warns
768
+ */
769
+ warnHandler: null,
770
+
771
+ /**
772
+ * Ignore certain custom elements
773
+ */
774
+ ignoredElements: [],
775
+
776
+ /**
777
+ * Custom user key aliases for v-on
778
+ */
779
+ // $flow-disable-line
780
+ keyCodes: Object.create(null),
781
+
782
+ /**
783
+ * Check if a tag is reserved so that it cannot be registered as a
784
+ * component. This is platform-dependent and may be overwritten.
785
+ */
786
+ isReservedTag: no,
787
+
788
+ /**
789
+ * Check if an attribute is reserved so that it cannot be used as a component
790
+ * prop. This is platform-dependent and may be overwritten.
791
+ */
792
+ isReservedAttr: no,
793
+
794
+ /**
795
+ * Check if a tag is an unknown element.
796
+ * Platform-dependent.
797
+ */
798
+ isUnknownElement: no,
799
+
800
+ /**
801
+ * Get the namespace of an element
802
+ */
803
+ getTagNamespace: noop,
804
+
805
+ /**
806
+ * Parse the real tag name for the specific platform.
807
+ */
808
+ parsePlatformTagName: identity,
809
+
810
+ /**
811
+ * Check if an attribute must be bound using property, e.g. value
812
+ * Platform-dependent.
813
+ */
814
+ mustUseProp: no,
815
+
816
+ /**
817
+ * Exposed for legacy reasons
818
+ */
819
+ _lifecycleHooks: LIFECYCLE_HOOKS
820
+ })
821
+
822
+ /* */
823
+
824
+ /**
825
+ * Check if a string starts with $ or _
826
+ */
827
+ function isReserved (str) {
828
+ var c = (str + '').charCodeAt(0);
829
+ return c === 0x24 || c === 0x5F
830
+ }
831
+
832
+ /**
833
+ * Define a property.
834
+ */
835
+ function def (obj, key, val, enumerable) {
836
+ Object.defineProperty(obj, key, {
837
+ value: val,
838
+ enumerable: !!enumerable,
839
+ writable: true,
840
+ configurable: true
841
+ });
842
+ }
843
+
844
+ /**
845
+ * Parse simple path.
846
+ */
847
+ var bailRE = /[^\w.$]/;
848
+ function parsePath (path) {
849
+ if (bailRE.test(path)) {
850
+ return
851
+ }
852
+ var segments = path.split('.');
853
+ return function (obj) {
854
+ for (var i = 0; i < segments.length; i++) {
855
+ if (!obj) { return }
856
+ obj = obj[segments[i]];
857
+ }
858
+ return obj
859
+ }
860
+ }
861
+
862
+ /* */
863
+
864
+ // can we use __proto__?
865
+ var hasProto = '__proto__' in {};
866
+
867
+ // Browser environment sniffing
868
+ var inBrowser = typeof window !== 'undefined';
869
+ var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;
870
+ var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();
871
+ var UA = inBrowser && window.navigator.userAgent.toLowerCase();
872
+ var isIE = UA && /msie|trident/.test(UA);
873
+ var isIE9 = UA && UA.indexOf('msie 9.0') > 0;
874
+ var isEdge = UA && UA.indexOf('edge/') > 0;
875
+ var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');
876
+ var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');
877
+ var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge;
878
+
879
+ // Firefox has a "watch" function on Object.prototype...
880
+ var nativeWatch = ({}).watch;
881
+
882
+ var supportsPassive = false;
883
+ if (inBrowser) {
884
+ try {
885
+ var opts = {};
886
+ Object.defineProperty(opts, 'passive', ({
887
+ get: function get () {
888
+ /* istanbul ignore next */
889
+ supportsPassive = true;
890
+ }
891
+ })); // https://github.com/facebook/flow/issues/285
892
+ window.addEventListener('test-passive', null, opts);
893
+ } catch (e) {}
894
+ }
895
+
896
+ // this needs to be lazy-evaled because vue may be required before
897
+ // vue-server-renderer can set VUE_ENV
898
+ var _isServer;
899
+ var isServerRendering = function () {
900
+ if (_isServer === undefined) {
901
+ /* istanbul ignore if */
902
+ if (!inBrowser && !inWeex && typeof global !== 'undefined') {
903
+ // detect presence of vue-server-renderer and avoid
904
+ // Webpack shimming the process
905
+ _isServer = global['process'].env.VUE_ENV === 'server';
906
+ } else {
907
+ _isServer = false;
908
+ }
909
+ }
910
+ return _isServer
911
+ };
912
+
913
+ // detect devtools
914
+ var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;
915
+
916
+ /* istanbul ignore next */
917
+ function isNative (Ctor) {
918
+ return typeof Ctor === 'function' && /native code/.test(Ctor.toString())
919
+ }
920
+
921
+ var hasSymbol =
922
+ typeof Symbol !== 'undefined' && isNative(Symbol) &&
923
+ typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);
924
+
925
+ var _Set;
926
+ /* istanbul ignore if */ // $flow-disable-line
927
+ if (typeof Set !== 'undefined' && isNative(Set)) {
928
+ // use native Set when available.
929
+ _Set = Set;
930
+ } else {
931
+ // a non-standard Set polyfill that only works with primitive keys.
932
+ _Set = (function () {
933
+ function Set () {
934
+ this.set = Object.create(null);
935
+ }
936
+ Set.prototype.has = function has (key) {
937
+ return this.set[key] === true
938
+ };
939
+ Set.prototype.add = function add (key) {
940
+ this.set[key] = true;
941
+ };
942
+ Set.prototype.clear = function clear () {
943
+ this.set = Object.create(null);
944
+ };
945
+
946
+ return Set;
947
+ }());
948
+ }
949
+
950
+ /* */
951
+
952
+ var warn = noop;
953
+ var tip = noop;
954
+ var generateComponentTrace = (noop); // work around flow check
955
+ var formatComponentName = (noop);
956
+
957
+ if (process.env.NODE_ENV !== 'production') {
958
+ var hasConsole = typeof console !== 'undefined';
959
+ var classifyRE = /(?:^|[-_])(\w)/g;
960
+ var classify = function (str) { return str
961
+ .replace(classifyRE, function (c) { return c.toUpperCase(); })
962
+ .replace(/[-_]/g, ''); };
963
+
964
+ warn = function (msg, vm) {
965
+ var trace = vm ? generateComponentTrace(vm) : '';
966
+
967
+ if (config.warnHandler) {
968
+ config.warnHandler.call(null, msg, vm, trace);
969
+ } else if (hasConsole && (!config.silent)) {
970
+ console.error(("[Vue warn]: " + msg + trace));
971
+ }
972
+ };
973
+
974
+ tip = function (msg, vm) {
975
+ if (hasConsole && (!config.silent)) {
976
+ console.warn("[Vue tip]: " + msg + (
977
+ vm ? generateComponentTrace(vm) : ''
978
+ ));
979
+ }
980
+ };
981
+
982
+ formatComponentName = function (vm, includeFile) {
983
+ if (vm.$root === vm) {
984
+ return '<Root>'
985
+ }
986
+ var options = typeof vm === 'function' && vm.cid != null
987
+ ? vm.options
988
+ : vm._isVue
989
+ ? vm.$options || vm.constructor.options
990
+ : vm || {};
991
+ var name = options.name || options._componentTag;
992
+ var file = options.__file;
993
+ if (!name && file) {
994
+ var match = file.match(/([^/\\]+)\.vue$/);
995
+ name = match && match[1];
996
+ }
997
+
998
+ return (
999
+ (name ? ("<" + (classify(name)) + ">") : "<Anonymous>") +
1000
+ (file && includeFile !== false ? (" at " + file) : '')
1001
+ )
1002
+ };
1003
+
1004
+ var repeat = function (str, n) {
1005
+ var res = '';
1006
+ while (n) {
1007
+ if (n % 2 === 1) { res += str; }
1008
+ if (n > 1) { str += str; }
1009
+ n >>= 1;
1010
+ }
1011
+ return res
1012
+ };
1013
+
1014
+ generateComponentTrace = function (vm) {
1015
+ if (vm._isVue && vm.$parent) {
1016
+ var tree = [];
1017
+ var currentRecursiveSequence = 0;
1018
+ while (vm) {
1019
+ if (tree.length > 0) {
1020
+ var last = tree[tree.length - 1];
1021
+ if (last.constructor === vm.constructor) {
1022
+ currentRecursiveSequence++;
1023
+ vm = vm.$parent;
1024
+ continue
1025
+ } else if (currentRecursiveSequence > 0) {
1026
+ tree[tree.length - 1] = [last, currentRecursiveSequence];
1027
+ currentRecursiveSequence = 0;
1028
+ }
1029
+ }
1030
+ tree.push(vm);
1031
+ vm = vm.$parent;
1032
+ }
1033
+ return '\n\nfound in\n\n' + tree
1034
+ .map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)
1035
+ ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)")
1036
+ : formatComponentName(vm))); })
1037
+ .join('\n')
1038
+ } else {
1039
+ return ("\n\n(found in " + (formatComponentName(vm)) + ")")
1040
+ }
1041
+ };
1042
+ }
1043
+
1044
+ /* */
1045
+
1046
+
1047
+ var uid = 0;
1048
+
1049
+ /**
1050
+ * A dep is an observable that can have multiple
1051
+ * directives subscribing to it.
1052
+ */
1053
+ var Dep = function Dep () {
1054
+ this.id = uid++;
1055
+ this.subs = [];
1056
+ };
1057
+
1058
+ Dep.prototype.addSub = function addSub (sub) {
1059
+ this.subs.push(sub);
1060
+ };
1061
+
1062
+ Dep.prototype.removeSub = function removeSub (sub) {
1063
+ remove(this.subs, sub);
1064
+ };
1065
+
1066
+ Dep.prototype.depend = function depend () {
1067
+ if (Dep.target) {
1068
+ Dep.target.addDep(this);
1069
+ }
1070
+ };
1071
+
1072
+ Dep.prototype.notify = function notify () {
1073
+ // stabilize the subscriber list first
1074
+ var subs = this.subs.slice();
1075
+ for (var i = 0, l = subs.length; i < l; i++) {
1076
+ subs[i].update();
1077
+ }
1078
+ };
1079
+
1080
+ // the current target watcher being evaluated.
1081
+ // this is globally unique because there could be only one
1082
+ // watcher being evaluated at any time.
1083
+ Dep.target = null;
1084
+ var targetStack = [];
1085
+
1086
+ function pushTarget (_target) {
1087
+ if (Dep.target) { targetStack.push(Dep.target); }
1088
+ Dep.target = _target;
1089
+ }
1090
+
1091
+ function popTarget () {
1092
+ Dep.target = targetStack.pop();
1093
+ }
1094
+
1095
+ /* */
1096
+
1097
+ var VNode = function VNode (
1098
+ tag,
1099
+ data,
1100
+ children,
1101
+ text,
1102
+ elm,
1103
+ context,
1104
+ componentOptions,
1105
+ asyncFactory
1106
+ ) {
1107
+ this.tag = tag;
1108
+ this.data = data;
1109
+ this.children = children;
1110
+ this.text = text;
1111
+ this.elm = elm;
1112
+ this.ns = undefined;
1113
+ this.context = context;
1114
+ this.fnContext = undefined;
1115
+ this.fnOptions = undefined;
1116
+ this.fnScopeId = undefined;
1117
+ this.key = data && data.key;
1118
+ this.componentOptions = componentOptions;
1119
+ this.componentInstance = undefined;
1120
+ this.parent = undefined;
1121
+ this.raw = false;
1122
+ this.isStatic = false;
1123
+ this.isRootInsert = true;
1124
+ this.isComment = false;
1125
+ this.isCloned = false;
1126
+ this.isOnce = false;
1127
+ this.asyncFactory = asyncFactory;
1128
+ this.asyncMeta = undefined;
1129
+ this.isAsyncPlaceholder = false;
1130
+ };
1131
+
1132
+ var prototypeAccessors = { child: { configurable: true } };
1133
+
1134
+ // DEPRECATED: alias for componentInstance for backwards compat.
1135
+ /* istanbul ignore next */
1136
+ prototypeAccessors.child.get = function () {
1137
+ return this.componentInstance
1138
+ };
1139
+
1140
+ Object.defineProperties( VNode.prototype, prototypeAccessors );
1141
+
1142
+ var createEmptyVNode = function (text) {
1143
+ if ( text === void 0 ) text = '';
1144
+
1145
+ var node = new VNode();
1146
+ node.text = text;
1147
+ node.isComment = true;
1148
+ return node
1149
+ };
1150
+
1151
+ function createTextVNode (val) {
1152
+ return new VNode(undefined, undefined, undefined, String(val))
1153
+ }
1154
+
1155
+ // optimized shallow clone
1156
+ // used for static nodes and slot nodes because they may be reused across
1157
+ // multiple renders, cloning them avoids errors when DOM manipulations rely
1158
+ // on their elm reference.
1159
+ function cloneVNode (vnode) {
1160
+ var cloned = new VNode(
1161
+ vnode.tag,
1162
+ vnode.data,
1163
+ vnode.children,
1164
+ vnode.text,
1165
+ vnode.elm,
1166
+ vnode.context,
1167
+ vnode.componentOptions,
1168
+ vnode.asyncFactory
1169
+ );
1170
+ cloned.ns = vnode.ns;
1171
+ cloned.isStatic = vnode.isStatic;
1172
+ cloned.key = vnode.key;
1173
+ cloned.isComment = vnode.isComment;
1174
+ cloned.fnContext = vnode.fnContext;
1175
+ cloned.fnOptions = vnode.fnOptions;
1176
+ cloned.fnScopeId = vnode.fnScopeId;
1177
+ cloned.isCloned = true;
1178
+ return cloned
1179
+ }
1180
+
1181
+ /*
1182
+ * not type checking this file because flow doesn't play well with
1183
+ * dynamically accessing methods on Array prototype
1184
+ */
1185
+
1186
+ var arrayProto = Array.prototype;
1187
+ var arrayMethods = Object.create(arrayProto);
1188
+
1189
+ var methodsToPatch = [
1190
+ 'push',
1191
+ 'pop',
1192
+ 'shift',
1193
+ 'unshift',
1194
+ 'splice',
1195
+ 'sort',
1196
+ 'reverse'
1197
+ ];
1198
+
1199
+ /**
1200
+ * Intercept mutating methods and emit events
1201
+ */
1202
+ methodsToPatch.forEach(function (method) {
1203
+ // cache original method
1204
+ var original = arrayProto[method];
1205
+ def(arrayMethods, method, function mutator () {
1206
+ var args = [], len = arguments.length;
1207
+ while ( len-- ) args[ len ] = arguments[ len ];
1208
+
1209
+ var result = original.apply(this, args);
1210
+ var ob = this.__ob__;
1211
+ var inserted;
1212
+ switch (method) {
1213
+ case 'push':
1214
+ case 'unshift':
1215
+ inserted = args;
1216
+ break
1217
+ case 'splice':
1218
+ inserted = args.slice(2);
1219
+ break
1220
+ }
1221
+ if (inserted) { ob.observeArray(inserted); }
1222
+ // notify change
1223
+ ob.dep.notify();
1224
+ return result
1225
+ });
1226
+ });
1227
+
1228
+ /* */
1229
+
1230
+ var arrayKeys = Object.getOwnPropertyNames(arrayMethods);
1231
+
1232
+ /**
1233
+ * In some cases we may want to disable observation inside a component's
1234
+ * update computation.
1235
+ */
1236
+ var shouldObserve = true;
1237
+
1238
+ function toggleObserving (value) {
1239
+ shouldObserve = value;
1240
+ }
1241
+
1242
+ /**
1243
+ * Observer class that is attached to each observed
1244
+ * object. Once attached, the observer converts the target
1245
+ * object's property keys into getter/setters that
1246
+ * collect dependencies and dispatch updates.
1247
+ */
1248
+ var Observer = function Observer (value) {
1249
+ this.value = value;
1250
+ this.dep = new Dep();
1251
+ this.vmCount = 0;
1252
+ def(value, '__ob__', this);
1253
+ if (Array.isArray(value)) {
1254
+ var augment = hasProto
1255
+ ? protoAugment
1256
+ : copyAugment;
1257
+ augment(value, arrayMethods, arrayKeys);
1258
+ this.observeArray(value);
1259
+ } else {
1260
+ this.walk(value);
1261
+ }
1262
+ };
1263
+
1264
+ /**
1265
+ * Walk through each property and convert them into
1266
+ * getter/setters. This method should only be called when
1267
+ * value type is Object.
1268
+ */
1269
+ Observer.prototype.walk = function walk (obj) {
1270
+ var keys = Object.keys(obj);
1271
+ for (var i = 0; i < keys.length; i++) {
1272
+ defineReactive(obj, keys[i]);
1273
+ }
1274
+ };
1275
+
1276
+ /**
1277
+ * Observe a list of Array items.
1278
+ */
1279
+ Observer.prototype.observeArray = function observeArray (items) {
1280
+ for (var i = 0, l = items.length; i < l; i++) {
1281
+ observe(items[i]);
1282
+ }
1283
+ };
1284
+
1285
+ // helpers
1286
+
1287
+ /**
1288
+ * Augment an target Object or Array by intercepting
1289
+ * the prototype chain using __proto__
1290
+ */
1291
+ function protoAugment (target, src, keys) {
1292
+ /* eslint-disable no-proto */
1293
+ target.__proto__ = src;
1294
+ /* eslint-enable no-proto */
1295
+ }
1296
+
1297
+ /**
1298
+ * Augment an target Object or Array by defining
1299
+ * hidden properties.
1300
+ */
1301
+ /* istanbul ignore next */
1302
+ function copyAugment (target, src, keys) {
1303
+ for (var i = 0, l = keys.length; i < l; i++) {
1304
+ var key = keys[i];
1305
+ def(target, key, src[key]);
1306
+ }
1307
+ }
1308
+
1309
+ /**
1310
+ * Attempt to create an observer instance for a value,
1311
+ * returns the new observer if successfully observed,
1312
+ * or the existing observer if the value already has one.
1313
+ */
1314
+ function observe (value, asRootData) {
1315
+ if (!isObject(value) || value instanceof VNode) {
1316
+ return
1317
+ }
1318
+ var ob;
1319
+ if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {
1320
+ ob = value.__ob__;
1321
+ } else if (
1322
+ shouldObserve &&
1323
+ !isServerRendering() &&
1324
+ (Array.isArray(value) || isPlainObject(value)) &&
1325
+ Object.isExtensible(value) &&
1326
+ !value._isVue
1327
+ ) {
1328
+ ob = new Observer(value);
1329
+ }
1330
+ if (asRootData && ob) {
1331
+ ob.vmCount++;
1332
+ }
1333
+ return ob
1334
+ }
1335
+
1336
+ /**
1337
+ * Define a reactive property on an Object.
1338
+ */
1339
+ function defineReactive (
1340
+ obj,
1341
+ key,
1342
+ val,
1343
+ customSetter,
1344
+ shallow
1345
+ ) {
1346
+ var dep = new Dep();
1347
+
1348
+ var property = Object.getOwnPropertyDescriptor(obj, key);
1349
+ if (property && property.configurable === false) {
1350
+ return
1351
+ }
1352
+
1353
+ // cater for pre-defined getter/setters
1354
+ var getter = property && property.get;
1355
+ if (!getter && arguments.length === 2) {
1356
+ val = obj[key];
1357
+ }
1358
+ var setter = property && property.set;
1359
+
1360
+ var childOb = !shallow && observe(val);
1361
+ Object.defineProperty(obj, key, {
1362
+ enumerable: true,
1363
+ configurable: true,
1364
+ get: function reactiveGetter () {
1365
+ var value = getter ? getter.call(obj) : val;
1366
+ if (Dep.target) {
1367
+ dep.depend();
1368
+ if (childOb) {
1369
+ childOb.dep.depend();
1370
+ if (Array.isArray(value)) {
1371
+ dependArray(value);
1372
+ }
1373
+ }
1374
+ }
1375
+ return value
1376
+ },
1377
+ set: function reactiveSetter (newVal) {
1378
+ var value = getter ? getter.call(obj) : val;
1379
+ /* eslint-disable no-self-compare */
1380
+ if (newVal === value || (newVal !== newVal && value !== value)) {
1381
+ return
1382
+ }
1383
+ /* eslint-enable no-self-compare */
1384
+ if (process.env.NODE_ENV !== 'production' && customSetter) {
1385
+ customSetter();
1386
+ }
1387
+ if (setter) {
1388
+ setter.call(obj, newVal);
1389
+ } else {
1390
+ val = newVal;
1391
+ }
1392
+ childOb = !shallow && observe(newVal);
1393
+ dep.notify();
1394
+ }
1395
+ });
1396
+ }
1397
+
1398
+ /**
1399
+ * Set a property on an object. Adds the new property and
1400
+ * triggers change notification if the property doesn't
1401
+ * already exist.
1402
+ */
1403
+ function set (target, key, val) {
1404
+ if (process.env.NODE_ENV !== 'production' &&
1405
+ (isUndef(target) || isPrimitive(target))
1406
+ ) {
1407
+ warn(("Cannot set reactive property on undefined, null, or primitive value: " + ((target))));
1408
+ }
1409
+ if (Array.isArray(target) && isValidArrayIndex(key)) {
1410
+ target.length = Math.max(target.length, key);
1411
+ target.splice(key, 1, val);
1412
+ return val
1413
+ }
1414
+ if (key in target && !(key in Object.prototype)) {
1415
+ target[key] = val;
1416
+ return val
1417
+ }
1418
+ var ob = (target).__ob__;
1419
+ if (target._isVue || (ob && ob.vmCount)) {
1420
+ process.env.NODE_ENV !== 'production' && warn(
1421
+ 'Avoid adding reactive properties to a Vue instance or its root $data ' +
1422
+ 'at runtime - declare it upfront in the data option.'
1423
+ );
1424
+ return val
1425
+ }
1426
+ if (!ob) {
1427
+ target[key] = val;
1428
+ return val
1429
+ }
1430
+ defineReactive(ob.value, key, val);
1431
+ ob.dep.notify();
1432
+ return val
1433
+ }
1434
+
1435
+ /**
1436
+ * Delete a property and trigger change if necessary.
1437
+ */
1438
+ function del (target, key) {
1439
+ if (process.env.NODE_ENV !== 'production' &&
1440
+ (isUndef(target) || isPrimitive(target))
1441
+ ) {
1442
+ warn(("Cannot delete reactive property on undefined, null, or primitive value: " + ((target))));
1443
+ }
1444
+ if (Array.isArray(target) && isValidArrayIndex(key)) {
1445
+ target.splice(key, 1);
1446
+ return
1447
+ }
1448
+ var ob = (target).__ob__;
1449
+ if (target._isVue || (ob && ob.vmCount)) {
1450
+ process.env.NODE_ENV !== 'production' && warn(
1451
+ 'Avoid deleting properties on a Vue instance or its root $data ' +
1452
+ '- just set it to null.'
1453
+ );
1454
+ return
1455
+ }
1456
+ if (!hasOwn(target, key)) {
1457
+ return
1458
+ }
1459
+ delete target[key];
1460
+ if (!ob) {
1461
+ return
1462
+ }
1463
+ ob.dep.notify();
1464
+ }
1465
+
1466
+ /**
1467
+ * Collect dependencies on array elements when the array is touched, since
1468
+ * we cannot intercept array element access like property getters.
1469
+ */
1470
+ function dependArray (value) {
1471
+ for (var e = (void 0), i = 0, l = value.length; i < l; i++) {
1472
+ e = value[i];
1473
+ e && e.__ob__ && e.__ob__.dep.depend();
1474
+ if (Array.isArray(e)) {
1475
+ dependArray(e);
1476
+ }
1477
+ }
1478
+ }
1479
+
1480
+ /* */
1481
+
1482
+ /**
1483
+ * Option overwriting strategies are functions that handle
1484
+ * how to merge a parent option value and a child option
1485
+ * value into the final value.
1486
+ */
1487
+ var strats = config.optionMergeStrategies;
1488
+
1489
+ /**
1490
+ * Options with restrictions
1491
+ */
1492
+ if (process.env.NODE_ENV !== 'production') {
1493
+ strats.el = strats.propsData = function (parent, child, vm, key) {
1494
+ if (!vm) {
1495
+ warn(
1496
+ "option \"" + key + "\" can only be used during instance " +
1497
+ 'creation with the `new` keyword.'
1498
+ );
1499
+ }
1500
+ return defaultStrat(parent, child)
1501
+ };
1502
+ }
1503
+
1504
+ /**
1505
+ * Helper that recursively merges two data objects together.
1506
+ */
1507
+ function mergeData (to, from) {
1508
+ if (!from) { return to }
1509
+ var key, toVal, fromVal;
1510
+ var keys = Object.keys(from);
1511
+ for (var i = 0; i < keys.length; i++) {
1512
+ key = keys[i];
1513
+ toVal = to[key];
1514
+ fromVal = from[key];
1515
+ if (!hasOwn(to, key)) {
1516
+ set(to, key, fromVal);
1517
+ } else if (isPlainObject(toVal) && isPlainObject(fromVal)) {
1518
+ mergeData(toVal, fromVal);
1519
+ }
1520
+ }
1521
+ return to
1522
+ }
1523
+
1524
+ /**
1525
+ * Data
1526
+ */
1527
+ function mergeDataOrFn (
1528
+ parentVal,
1529
+ childVal,
1530
+ vm
1531
+ ) {
1532
+ if (!vm) {
1533
+ // in a Vue.extend merge, both should be functions
1534
+ if (!childVal) {
1535
+ return parentVal
1536
+ }
1537
+ if (!parentVal) {
1538
+ return childVal
1539
+ }
1540
+ // when parentVal & childVal are both present,
1541
+ // we need to return a function that returns the
1542
+ // merged result of both functions... no need to
1543
+ // check if parentVal is a function here because
1544
+ // it has to be a function to pass previous merges.
1545
+ return function mergedDataFn () {
1546
+ return mergeData(
1547
+ typeof childVal === 'function' ? childVal.call(this, this) : childVal,
1548
+ typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal
1549
+ )
1550
+ }
1551
+ } else {
1552
+ return function mergedInstanceDataFn () {
1553
+ // instance merge
1554
+ var instanceData = typeof childVal === 'function'
1555
+ ? childVal.call(vm, vm)
1556
+ : childVal;
1557
+ var defaultData = typeof parentVal === 'function'
1558
+ ? parentVal.call(vm, vm)
1559
+ : parentVal;
1560
+ if (instanceData) {
1561
+ return mergeData(instanceData, defaultData)
1562
+ } else {
1563
+ return defaultData
1564
+ }
1565
+ }
1566
+ }
1567
+ }
1568
+
1569
+ strats.data = function (
1570
+ parentVal,
1571
+ childVal,
1572
+ vm
1573
+ ) {
1574
+ if (!vm) {
1575
+ if (childVal && typeof childVal !== 'function') {
1576
+ process.env.NODE_ENV !== 'production' && warn(
1577
+ 'The "data" option should be a function ' +
1578
+ 'that returns a per-instance value in component ' +
1579
+ 'definitions.',
1580
+ vm
1581
+ );
1582
+
1583
+ return parentVal
1584
+ }
1585
+ return mergeDataOrFn(parentVal, childVal)
1586
+ }
1587
+
1588
+ return mergeDataOrFn(parentVal, childVal, vm)
1589
+ };
1590
+
1591
+ /**
1592
+ * Hooks and props are merged as arrays.
1593
+ */
1594
+ function mergeHook (
1595
+ parentVal,
1596
+ childVal
1597
+ ) {
1598
+ return childVal
1599
+ ? parentVal
1600
+ ? parentVal.concat(childVal)
1601
+ : Array.isArray(childVal)
1602
+ ? childVal
1603
+ : [childVal]
1604
+ : parentVal
1605
+ }
1606
+
1607
+ LIFECYCLE_HOOKS.forEach(function (hook) {
1608
+ strats[hook] = mergeHook;
1609
+ });
1610
+
1611
+ /**
1612
+ * Assets
1613
+ *
1614
+ * When a vm is present (instance creation), we need to do
1615
+ * a three-way merge between constructor options, instance
1616
+ * options and parent options.
1617
+ */
1618
+ function mergeAssets (
1619
+ parentVal,
1620
+ childVal,
1621
+ vm,
1622
+ key
1623
+ ) {
1624
+ var res = Object.create(parentVal || null);
1625
+ if (childVal) {
1626
+ process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);
1627
+ return extend(res, childVal)
1628
+ } else {
1629
+ return res
1630
+ }
1631
+ }
1632
+
1633
+ ASSET_TYPES.forEach(function (type) {
1634
+ strats[type + 's'] = mergeAssets;
1635
+ });
1636
+
1637
+ /**
1638
+ * Watchers.
1639
+ *
1640
+ * Watchers hashes should not overwrite one
1641
+ * another, so we merge them as arrays.
1642
+ */
1643
+ strats.watch = function (
1644
+ parentVal,
1645
+ childVal,
1646
+ vm,
1647
+ key
1648
+ ) {
1649
+ // work around Firefox's Object.prototype.watch...
1650
+ if (parentVal === nativeWatch) { parentVal = undefined; }
1651
+ if (childVal === nativeWatch) { childVal = undefined; }
1652
+ /* istanbul ignore if */
1653
+ if (!childVal) { return Object.create(parentVal || null) }
1654
+ if (process.env.NODE_ENV !== 'production') {
1655
+ assertObjectType(key, childVal, vm);
1656
+ }
1657
+ if (!parentVal) { return childVal }
1658
+ var ret = {};
1659
+ extend(ret, parentVal);
1660
+ for (var key$1 in childVal) {
1661
+ var parent = ret[key$1];
1662
+ var child = childVal[key$1];
1663
+ if (parent && !Array.isArray(parent)) {
1664
+ parent = [parent];
1665
+ }
1666
+ ret[key$1] = parent
1667
+ ? parent.concat(child)
1668
+ : Array.isArray(child) ? child : [child];
1669
+ }
1670
+ return ret
1671
+ };
1672
+
1673
+ /**
1674
+ * Other object hashes.
1675
+ */
1676
+ strats.props =
1677
+ strats.methods =
1678
+ strats.inject =
1679
+ strats.computed = function (
1680
+ parentVal,
1681
+ childVal,
1682
+ vm,
1683
+ key
1684
+ ) {
1685
+ if (childVal && process.env.NODE_ENV !== 'production') {
1686
+ assertObjectType(key, childVal, vm);
1687
+ }
1688
+ if (!parentVal) { return childVal }
1689
+ var ret = Object.create(null);
1690
+ extend(ret, parentVal);
1691
+ if (childVal) { extend(ret, childVal); }
1692
+ return ret
1693
+ };
1694
+ strats.provide = mergeDataOrFn;
1695
+
1696
+ /**
1697
+ * Default strategy.
1698
+ */
1699
+ var defaultStrat = function (parentVal, childVal) {
1700
+ return childVal === undefined
1701
+ ? parentVal
1702
+ : childVal
1703
+ };
1704
+
1705
+ /**
1706
+ * Validate component names
1707
+ */
1708
+ function checkComponents (options) {
1709
+ for (var key in options.components) {
1710
+ validateComponentName(key);
1711
+ }
1712
+ }
1713
+
1714
+ function validateComponentName (name) {
1715
+ if (!/^[a-zA-Z][\w-]*$/.test(name)) {
1716
+ warn(
1717
+ 'Invalid component name: "' + name + '". Component names ' +
1718
+ 'can only contain alphanumeric characters and the hyphen, ' +
1719
+ 'and must start with a letter.'
1720
+ );
1721
+ }
1722
+ if (isBuiltInTag(name) || config.isReservedTag(name)) {
1723
+ warn(
1724
+ 'Do not use built-in or reserved HTML elements as component ' +
1725
+ 'id: ' + name
1726
+ );
1727
+ }
1728
+ }
1729
+
1730
+ /**
1731
+ * Ensure all props option syntax are normalized into the
1732
+ * Object-based format.
1733
+ */
1734
+ function normalizeProps (options, vm) {
1735
+ var props = options.props;
1736
+ if (!props) { return }
1737
+ var res = {};
1738
+ var i, val, name;
1739
+ if (Array.isArray(props)) {
1740
+ i = props.length;
1741
+ while (i--) {
1742
+ val = props[i];
1743
+ if (typeof val === 'string') {
1744
+ name = camelize(val);
1745
+ res[name] = { type: null };
1746
+ } else if (process.env.NODE_ENV !== 'production') {
1747
+ warn('props must be strings when using array syntax.');
1748
+ }
1749
+ }
1750
+ } else if (isPlainObject(props)) {
1751
+ for (var key in props) {
1752
+ val = props[key];
1753
+ name = camelize(key);
1754
+ res[name] = isPlainObject(val)
1755
+ ? val
1756
+ : { type: val };
1757
+ }
1758
+ } else if (process.env.NODE_ENV !== 'production') {
1759
+ warn(
1760
+ "Invalid value for option \"props\": expected an Array or an Object, " +
1761
+ "but got " + (toRawType(props)) + ".",
1762
+ vm
1763
+ );
1764
+ }
1765
+ options.props = res;
1766
+ }
1767
+
1768
+ /**
1769
+ * Normalize all injections into Object-based format
1770
+ */
1771
+ function normalizeInject (options, vm) {
1772
+ var inject = options.inject;
1773
+ if (!inject) { return }
1774
+ var normalized = options.inject = {};
1775
+ if (Array.isArray(inject)) {
1776
+ for (var i = 0; i < inject.length; i++) {
1777
+ normalized[inject[i]] = { from: inject[i] };
1778
+ }
1779
+ } else if (isPlainObject(inject)) {
1780
+ for (var key in inject) {
1781
+ var val = inject[key];
1782
+ normalized[key] = isPlainObject(val)
1783
+ ? extend({ from: key }, val)
1784
+ : { from: val };
1785
+ }
1786
+ } else if (process.env.NODE_ENV !== 'production') {
1787
+ warn(
1788
+ "Invalid value for option \"inject\": expected an Array or an Object, " +
1789
+ "but got " + (toRawType(inject)) + ".",
1790
+ vm
1791
+ );
1792
+ }
1793
+ }
1794
+
1795
+ /**
1796
+ * Normalize raw function directives into object format.
1797
+ */
1798
+ function normalizeDirectives (options) {
1799
+ var dirs = options.directives;
1800
+ if (dirs) {
1801
+ for (var key in dirs) {
1802
+ var def = dirs[key];
1803
+ if (typeof def === 'function') {
1804
+ dirs[key] = { bind: def, update: def };
1805
+ }
1806
+ }
1807
+ }
1808
+ }
1809
+
1810
+ function assertObjectType (name, value, vm) {
1811
+ if (!isPlainObject(value)) {
1812
+ warn(
1813
+ "Invalid value for option \"" + name + "\": expected an Object, " +
1814
+ "but got " + (toRawType(value)) + ".",
1815
+ vm
1816
+ );
1817
+ }
1818
+ }
1819
+
1820
+ /**
1821
+ * Merge two option objects into a new one.
1822
+ * Core utility used in both instantiation and inheritance.
1823
+ */
1824
+ function mergeOptions (
1825
+ parent,
1826
+ child,
1827
+ vm
1828
+ ) {
1829
+ if (process.env.NODE_ENV !== 'production') {
1830
+ checkComponents(child);
1831
+ }
1832
+
1833
+ if (typeof child === 'function') {
1834
+ child = child.options;
1835
+ }
1836
+
1837
+ normalizeProps(child, vm);
1838
+ normalizeInject(child, vm);
1839
+ normalizeDirectives(child);
1840
+ var extendsFrom = child.extends;
1841
+ if (extendsFrom) {
1842
+ parent = mergeOptions(parent, extendsFrom, vm);
1843
+ }
1844
+ if (child.mixins) {
1845
+ for (var i = 0, l = child.mixins.length; i < l; i++) {
1846
+ parent = mergeOptions(parent, child.mixins[i], vm);
1847
+ }
1848
+ }
1849
+ var options = {};
1850
+ var key;
1851
+ for (key in parent) {
1852
+ mergeField(key);
1853
+ }
1854
+ for (key in child) {
1855
+ if (!hasOwn(parent, key)) {
1856
+ mergeField(key);
1857
+ }
1858
+ }
1859
+ function mergeField (key) {
1860
+ var strat = strats[key] || defaultStrat;
1861
+ options[key] = strat(parent[key], child[key], vm, key);
1862
+ }
1863
+ return options
1864
+ }
1865
+
1866
+ /**
1867
+ * Resolve an asset.
1868
+ * This function is used because child instances need access
1869
+ * to assets defined in its ancestor chain.
1870
+ */
1871
+ function resolveAsset (
1872
+ options,
1873
+ type,
1874
+ id,
1875
+ warnMissing
1876
+ ) {
1877
+ /* istanbul ignore if */
1878
+ if (typeof id !== 'string') {
1879
+ return
1880
+ }
1881
+ var assets = options[type];
1882
+ // check local registration variations first
1883
+ if (hasOwn(assets, id)) { return assets[id] }
1884
+ var camelizedId = camelize(id);
1885
+ if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }
1886
+ var PascalCaseId = capitalize(camelizedId);
1887
+ if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }
1888
+ // fallback to prototype chain
1889
+ var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];
1890
+ if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {
1891
+ warn(
1892
+ 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,
1893
+ options
1894
+ );
1895
+ }
1896
+ return res
1897
+ }
1898
+
1899
+ /* */
1900
+
1901
+ function validateProp (
1902
+ key,
1903
+ propOptions,
1904
+ propsData,
1905
+ vm
1906
+ ) {
1907
+ var prop = propOptions[key];
1908
+ var absent = !hasOwn(propsData, key);
1909
+ var value = propsData[key];
1910
+ // boolean casting
1911
+ var booleanIndex = getTypeIndex(Boolean, prop.type);
1912
+ if (booleanIndex > -1) {
1913
+ if (absent && !hasOwn(prop, 'default')) {
1914
+ value = false;
1915
+ } else if (value === '' || value === hyphenate(key)) {
1916
+ // only cast empty string / same name to boolean if
1917
+ // boolean has higher priority
1918
+ var stringIndex = getTypeIndex(String, prop.type);
1919
+ if (stringIndex < 0 || booleanIndex < stringIndex) {
1920
+ value = true;
1921
+ }
1922
+ }
1923
+ }
1924
+ // check default value
1925
+ if (value === undefined) {
1926
+ value = getPropDefaultValue(vm, prop, key);
1927
+ // since the default value is a fresh copy,
1928
+ // make sure to observe it.
1929
+ var prevShouldObserve = shouldObserve;
1930
+ toggleObserving(true);
1931
+ observe(value);
1932
+ toggleObserving(prevShouldObserve);
1933
+ }
1934
+ if (
1935
+ process.env.NODE_ENV !== 'production' &&
1936
+ // skip validation for weex recycle-list child component props
1937
+ !(false && isObject(value) && ('@binding' in value))
1938
+ ) {
1939
+ assertProp(prop, key, value, vm, absent);
1940
+ }
1941
+ return value
1942
+ }
1943
+
1944
+ /**
1945
+ * Get the default value of a prop.
1946
+ */
1947
+ function getPropDefaultValue (vm, prop, key) {
1948
+ // no default, return undefined
1949
+ if (!hasOwn(prop, 'default')) {
1950
+ return undefined
1951
+ }
1952
+ var def = prop.default;
1953
+ // warn against non-factory defaults for Object & Array
1954
+ if (process.env.NODE_ENV !== 'production' && isObject(def)) {
1955
+ warn(
1956
+ 'Invalid default value for prop "' + key + '": ' +
1957
+ 'Props with type Object/Array must use a factory function ' +
1958
+ 'to return the default value.',
1959
+ vm
1960
+ );
1961
+ }
1962
+ // the raw prop value was also undefined from previous render,
1963
+ // return previous default value to avoid unnecessary watcher trigger
1964
+ if (vm && vm.$options.propsData &&
1965
+ vm.$options.propsData[key] === undefined &&
1966
+ vm._props[key] !== undefined
1967
+ ) {
1968
+ return vm._props[key]
1969
+ }
1970
+ // call factory function for non-Function types
1971
+ // a value is Function if its prototype is function even across different execution context
1972
+ return typeof def === 'function' && getType(prop.type) !== 'Function'
1973
+ ? def.call(vm)
1974
+ : def
1975
+ }
1976
+
1977
+ /**
1978
+ * Assert whether a prop is valid.
1979
+ */
1980
+ function assertProp (
1981
+ prop,
1982
+ name,
1983
+ value,
1984
+ vm,
1985
+ absent
1986
+ ) {
1987
+ if (prop.required && absent) {
1988
+ warn(
1989
+ 'Missing required prop: "' + name + '"',
1990
+ vm
1991
+ );
1992
+ return
1993
+ }
1994
+ if (value == null && !prop.required) {
1995
+ return
1996
+ }
1997
+ var type = prop.type;
1998
+ var valid = !type || type === true;
1999
+ var expectedTypes = [];
2000
+ if (type) {
2001
+ if (!Array.isArray(type)) {
2002
+ type = [type];
2003
+ }
2004
+ for (var i = 0; i < type.length && !valid; i++) {
2005
+ var assertedType = assertType(value, type[i]);
2006
+ expectedTypes.push(assertedType.expectedType || '');
2007
+ valid = assertedType.valid;
2008
+ }
2009
+ }
2010
+ if (!valid) {
2011
+ warn(
2012
+ "Invalid prop: type check failed for prop \"" + name + "\"." +
2013
+ " Expected " + (expectedTypes.map(capitalize).join(', ')) +
2014
+ ", got " + (toRawType(value)) + ".",
2015
+ vm
2016
+ );
2017
+ return
2018
+ }
2019
+ var validator = prop.validator;
2020
+ if (validator) {
2021
+ if (!validator(value)) {
2022
+ warn(
2023
+ 'Invalid prop: custom validator check failed for prop "' + name + '".',
2024
+ vm
2025
+ );
2026
+ }
2027
+ }
2028
+ }
2029
+
2030
+ var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;
2031
+
2032
+ function assertType (value, type) {
2033
+ var valid;
2034
+ var expectedType = getType(type);
2035
+ if (simpleCheckRE.test(expectedType)) {
2036
+ var t = typeof value;
2037
+ valid = t === expectedType.toLowerCase();
2038
+ // for primitive wrapper objects
2039
+ if (!valid && t === 'object') {
2040
+ valid = value instanceof type;
2041
+ }
2042
+ } else if (expectedType === 'Object') {
2043
+ valid = isPlainObject(value);
2044
+ } else if (expectedType === 'Array') {
2045
+ valid = Array.isArray(value);
2046
+ } else {
2047
+ valid = value instanceof type;
2048
+ }
2049
+ return {
2050
+ valid: valid,
2051
+ expectedType: expectedType
2052
+ }
2053
+ }
2054
+
2055
+ /**
2056
+ * Use function string name to check built-in types,
2057
+ * because a simple equality check will fail when running
2058
+ * across different vms / iframes.
2059
+ */
2060
+ function getType (fn) {
2061
+ var match = fn && fn.toString().match(/^\s*function (\w+)/);
2062
+ return match ? match[1] : ''
2063
+ }
2064
+
2065
+ function isSameType (a, b) {
2066
+ return getType(a) === getType(b)
2067
+ }
2068
+
2069
+ function getTypeIndex (type, expectedTypes) {
2070
+ if (!Array.isArray(expectedTypes)) {
2071
+ return isSameType(expectedTypes, type) ? 0 : -1
2072
+ }
2073
+ for (var i = 0, len = expectedTypes.length; i < len; i++) {
2074
+ if (isSameType(expectedTypes[i], type)) {
2075
+ return i
2076
+ }
2077
+ }
2078
+ return -1
2079
+ }
2080
+
2081
+ /* */
2082
+
2083
+ function handleError (err, vm, info) {
2084
+ if (vm) {
2085
+ var cur = vm;
2086
+ while ((cur = cur.$parent)) {
2087
+ var hooks = cur.$options.errorCaptured;
2088
+ if (hooks) {
2089
+ for (var i = 0; i < hooks.length; i++) {
2090
+ try {
2091
+ var capture = hooks[i].call(cur, err, vm, info) === false;
2092
+ if (capture) { return }
2093
+ } catch (e) {
2094
+ globalHandleError(e, cur, 'errorCaptured hook');
2095
+ }
2096
+ }
2097
+ }
2098
+ }
2099
+ }
2100
+ globalHandleError(err, vm, info);
2101
+ }
2102
+
2103
+ function globalHandleError (err, vm, info) {
2104
+ if (config.errorHandler) {
2105
+ try {
2106
+ return config.errorHandler.call(null, err, vm, info)
2107
+ } catch (e) {
2108
+ logError(e, null, 'config.errorHandler');
2109
+ }
2110
+ }
2111
+ logError(err, vm, info);
2112
+ }
2113
+
2114
+ function logError (err, vm, info) {
2115
+ if (process.env.NODE_ENV !== 'production') {
2116
+ warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm);
2117
+ }
2118
+ /* istanbul ignore else */
2119
+ if ((inBrowser || inWeex) && typeof console !== 'undefined') {
2120
+ console.error(err);
2121
+ } else {
2122
+ throw err
2123
+ }
2124
+ }
2125
+
2126
+ /* */
2127
+ /* globals MessageChannel */
2128
+
2129
+ var callbacks = [];
2130
+ var pending = false;
2131
+
2132
+ function flushCallbacks () {
2133
+ pending = false;
2134
+ var copies = callbacks.slice(0);
2135
+ callbacks.length = 0;
2136
+ for (var i = 0; i < copies.length; i++) {
2137
+ copies[i]();
2138
+ }
2139
+ }
2140
+
2141
+ // Here we have async deferring wrappers using both microtasks and (macro) tasks.
2142
+ // In < 2.4 we used microtasks everywhere, but there are some scenarios where
2143
+ // microtasks have too high a priority and fire in between supposedly
2144
+ // sequential events (e.g. #4521, #6690) or even between bubbling of the same
2145
+ // event (#6566). However, using (macro) tasks everywhere also has subtle problems
2146
+ // when state is changed right before repaint (e.g. #6813, out-in transitions).
2147
+ // Here we use microtask by default, but expose a way to force (macro) task when
2148
+ // needed (e.g. in event handlers attached by v-on).
2149
+ var microTimerFunc;
2150
+ var macroTimerFunc;
2151
+ var useMacroTask = false;
2152
+
2153
+ // Determine (macro) task defer implementation.
2154
+ // Technically setImmediate should be the ideal choice, but it's only available
2155
+ // in IE. The only polyfill that consistently queues the callback after all DOM
2156
+ // events triggered in the same loop is by using MessageChannel.
2157
+ /* istanbul ignore if */
2158
+ if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {
2159
+ macroTimerFunc = function () {
2160
+ setImmediate(flushCallbacks);
2161
+ };
2162
+ } else if (typeof MessageChannel !== 'undefined' && (
2163
+ isNative(MessageChannel) ||
2164
+ // PhantomJS
2165
+ MessageChannel.toString() === '[object MessageChannelConstructor]'
2166
+ )) {
2167
+ var channel = new MessageChannel();
2168
+ var port = channel.port2;
2169
+ channel.port1.onmessage = flushCallbacks;
2170
+ macroTimerFunc = function () {
2171
+ port.postMessage(1);
2172
+ };
2173
+ } else {
2174
+ /* istanbul ignore next */
2175
+ macroTimerFunc = function () {
2176
+ setTimeout(flushCallbacks, 0);
2177
+ };
2178
+ }
2179
+
2180
+ // Determine microtask defer implementation.
2181
+ /* istanbul ignore next, $flow-disable-line */
2182
+ if (typeof Promise !== 'undefined' && isNative(Promise)) {
2183
+ var p = Promise.resolve();
2184
+ microTimerFunc = function () {
2185
+ p.then(flushCallbacks);
2186
+ // in problematic UIWebViews, Promise.then doesn't completely break, but
2187
+ // it can get stuck in a weird state where callbacks are pushed into the
2188
+ // microtask queue but the queue isn't being flushed, until the browser
2189
+ // needs to do some other work, e.g. handle a timer. Therefore we can
2190
+ // "force" the microtask queue to be flushed by adding an empty timer.
2191
+ if (isIOS) { setTimeout(noop); }
2192
+ };
2193
+ } else {
2194
+ // fallback to macro
2195
+ microTimerFunc = macroTimerFunc;
2196
+ }
2197
+
2198
+ /**
2199
+ * Wrap a function so that if any code inside triggers state change,
2200
+ * the changes are queued using a (macro) task instead of a microtask.
2201
+ */
2202
+ function withMacroTask (fn) {
2203
+ return fn._withTask || (fn._withTask = function () {
2204
+ useMacroTask = true;
2205
+ var res = fn.apply(null, arguments);
2206
+ useMacroTask = false;
2207
+ return res
2208
+ })
2209
+ }
2210
+
2211
+ function nextTick (cb, ctx) {
2212
+ var _resolve;
2213
+ callbacks.push(function () {
2214
+ if (cb) {
2215
+ try {
2216
+ cb.call(ctx);
2217
+ } catch (e) {
2218
+ handleError(e, ctx, 'nextTick');
2219
+ }
2220
+ } else if (_resolve) {
2221
+ _resolve(ctx);
2222
+ }
2223
+ });
2224
+ if (!pending) {
2225
+ pending = true;
2226
+ if (useMacroTask) {
2227
+ macroTimerFunc();
2228
+ } else {
2229
+ microTimerFunc();
2230
+ }
2231
+ }
2232
+ // $flow-disable-line
2233
+ if (!cb && typeof Promise !== 'undefined') {
2234
+ return new Promise(function (resolve) {
2235
+ _resolve = resolve;
2236
+ })
2237
+ }
2238
+ }
2239
+
2240
+ /* */
2241
+
2242
+ var mark;
2243
+ var measure;
2244
+
2245
+ if (process.env.NODE_ENV !== 'production') {
2246
+ var perf = inBrowser && window.performance;
2247
+ /* istanbul ignore if */
2248
+ if (
2249
+ perf &&
2250
+ perf.mark &&
2251
+ perf.measure &&
2252
+ perf.clearMarks &&
2253
+ perf.clearMeasures
2254
+ ) {
2255
+ mark = function (tag) { return perf.mark(tag); };
2256
+ measure = function (name, startTag, endTag) {
2257
+ perf.measure(name, startTag, endTag);
2258
+ perf.clearMarks(startTag);
2259
+ perf.clearMarks(endTag);
2260
+ perf.clearMeasures(name);
2261
+ };
2262
+ }
2263
+ }
2264
+
2265
+ /* not type checking this file because flow doesn't play well with Proxy */
2266
+
2267
+ var initProxy;
2268
+
2269
+ if (process.env.NODE_ENV !== 'production') {
2270
+ var allowedGlobals = makeMap(
2271
+ 'Infinity,undefined,NaN,isFinite,isNaN,' +
2272
+ 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +
2273
+ 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +
2274
+ 'require' // for Webpack/Browserify
2275
+ );
2276
+
2277
+ var warnNonPresent = function (target, key) {
2278
+ warn(
2279
+ "Property or method \"" + key + "\" is not defined on the instance but " +
2280
+ 'referenced during render. Make sure that this property is reactive, ' +
2281
+ 'either in the data option, or for class-based components, by ' +
2282
+ 'initializing the property. ' +
2283
+ 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',
2284
+ target
2285
+ );
2286
+ };
2287
+
2288
+ var hasProxy =
2289
+ typeof Proxy !== 'undefined' && isNative(Proxy);
2290
+
2291
+ if (hasProxy) {
2292
+ var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');
2293
+ config.keyCodes = new Proxy(config.keyCodes, {
2294
+ set: function set (target, key, value) {
2295
+ if (isBuiltInModifier(key)) {
2296
+ warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key));
2297
+ return false
2298
+ } else {
2299
+ target[key] = value;
2300
+ return true
2301
+ }
2302
+ }
2303
+ });
2304
+ }
2305
+
2306
+ var hasHandler = {
2307
+ has: function has (target, key) {
2308
+ var has = key in target;
2309
+ var isAllowed = allowedGlobals(key) || key.charAt(0) === '_';
2310
+ if (!has && !isAllowed) {
2311
+ warnNonPresent(target, key);
2312
+ }
2313
+ return has || !isAllowed
2314
+ }
2315
+ };
2316
+
2317
+ var getHandler = {
2318
+ get: function get (target, key) {
2319
+ if (typeof key === 'string' && !(key in target)) {
2320
+ warnNonPresent(target, key);
2321
+ }
2322
+ return target[key]
2323
+ }
2324
+ };
2325
+
2326
+ initProxy = function initProxy (vm) {
2327
+ if (hasProxy) {
2328
+ // determine which proxy handler to use
2329
+ var options = vm.$options;
2330
+ var handlers = options.render && options.render._withStripped
2331
+ ? getHandler
2332
+ : hasHandler;
2333
+ vm._renderProxy = new Proxy(vm, handlers);
2334
+ } else {
2335
+ vm._renderProxy = vm;
2336
+ }
2337
+ };
2338
+ }
2339
+
2340
+ /* */
2341
+
2342
+ var seenObjects = new _Set();
2343
+
2344
+ /**
2345
+ * Recursively traverse an object to evoke all converted
2346
+ * getters, so that every nested property inside the object
2347
+ * is collected as a "deep" dependency.
2348
+ */
2349
+ function traverse (val) {
2350
+ _traverse(val, seenObjects);
2351
+ seenObjects.clear();
2352
+ }
2353
+
2354
+ function _traverse (val, seen) {
2355
+ var i, keys;
2356
+ var isA = Array.isArray(val);
2357
+ if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {
2358
+ return
2359
+ }
2360
+ if (val.__ob__) {
2361
+ var depId = val.__ob__.dep.id;
2362
+ if (seen.has(depId)) {
2363
+ return
2364
+ }
2365
+ seen.add(depId);
2366
+ }
2367
+ if (isA) {
2368
+ i = val.length;
2369
+ while (i--) { _traverse(val[i], seen); }
2370
+ } else {
2371
+ keys = Object.keys(val);
2372
+ i = keys.length;
2373
+ while (i--) { _traverse(val[keys[i]], seen); }
2374
+ }
2375
+ }
2376
+
2377
+ /* */
2378
+
2379
+ var normalizeEvent = cached(function (name) {
2380
+ var passive = name.charAt(0) === '&';
2381
+ name = passive ? name.slice(1) : name;
2382
+ var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first
2383
+ name = once$$1 ? name.slice(1) : name;
2384
+ var capture = name.charAt(0) === '!';
2385
+ name = capture ? name.slice(1) : name;
2386
+ return {
2387
+ name: name,
2388
+ once: once$$1,
2389
+ capture: capture,
2390
+ passive: passive
2391
+ }
2392
+ });
2393
+
2394
+ function createFnInvoker (fns) {
2395
+ function invoker () {
2396
+ var arguments$1 = arguments;
2397
+
2398
+ var fns = invoker.fns;
2399
+ if (Array.isArray(fns)) {
2400
+ var cloned = fns.slice();
2401
+ for (var i = 0; i < cloned.length; i++) {
2402
+ cloned[i].apply(null, arguments$1);
2403
+ }
2404
+ } else {
2405
+ // return handler return value for single handlers
2406
+ return fns.apply(null, arguments)
2407
+ }
2408
+ }
2409
+ invoker.fns = fns;
2410
+ return invoker
2411
+ }
2412
+
2413
+ function updateListeners (
2414
+ on,
2415
+ oldOn,
2416
+ add,
2417
+ remove$$1,
2418
+ vm
2419
+ ) {
2420
+ var name, def, cur, old, event;
2421
+ for (name in on) {
2422
+ def = cur = on[name];
2423
+ old = oldOn[name];
2424
+ event = normalizeEvent(name);
2425
+ /* istanbul ignore if */
2426
+ if (isUndef(cur)) {
2427
+ process.env.NODE_ENV !== 'production' && warn(
2428
+ "Invalid handler for event \"" + (event.name) + "\": got " + String(cur),
2429
+ vm
2430
+ );
2431
+ } else if (isUndef(old)) {
2432
+ if (isUndef(cur.fns)) {
2433
+ cur = on[name] = createFnInvoker(cur);
2434
+ }
2435
+ add(event.name, cur, event.once, event.capture, event.passive, event.params);
2436
+ } else if (cur !== old) {
2437
+ old.fns = cur;
2438
+ on[name] = old;
2439
+ }
2440
+ }
2441
+ for (name in oldOn) {
2442
+ if (isUndef(on[name])) {
2443
+ event = normalizeEvent(name);
2444
+ remove$$1(event.name, oldOn[name], event.capture);
2445
+ }
2446
+ }
2447
+ }
2448
+
2449
+ /* */
2450
+
2451
+ function mergeVNodeHook (def, hookKey, hook) {
2452
+ if (def instanceof VNode) {
2453
+ def = def.data.hook || (def.data.hook = {});
2454
+ }
2455
+ var invoker;
2456
+ var oldHook = def[hookKey];
2457
+
2458
+ function wrappedHook () {
2459
+ hook.apply(this, arguments);
2460
+ // important: remove merged hook to ensure it's called only once
2461
+ // and prevent memory leak
2462
+ remove(invoker.fns, wrappedHook);
2463
+ }
2464
+
2465
+ if (isUndef(oldHook)) {
2466
+ // no existing hook
2467
+ invoker = createFnInvoker([wrappedHook]);
2468
+ } else {
2469
+ /* istanbul ignore if */
2470
+ if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {
2471
+ // already a merged invoker
2472
+ invoker = oldHook;
2473
+ invoker.fns.push(wrappedHook);
2474
+ } else {
2475
+ // existing plain hook
2476
+ invoker = createFnInvoker([oldHook, wrappedHook]);
2477
+ }
2478
+ }
2479
+
2480
+ invoker.merged = true;
2481
+ def[hookKey] = invoker;
2482
+ }
2483
+
2484
+ /* */
2485
+
2486
+ function extractPropsFromVNodeData (
2487
+ data,
2488
+ Ctor,
2489
+ tag
2490
+ ) {
2491
+ // we are only extracting raw values here.
2492
+ // validation and default values are handled in the child
2493
+ // component itself.
2494
+ var propOptions = Ctor.options.props;
2495
+ if (isUndef(propOptions)) {
2496
+ return
2497
+ }
2498
+ var res = {};
2499
+ var attrs = data.attrs;
2500
+ var props = data.props;
2501
+ if (isDef(attrs) || isDef(props)) {
2502
+ for (var key in propOptions) {
2503
+ var altKey = hyphenate(key);
2504
+ if (process.env.NODE_ENV !== 'production') {
2505
+ var keyInLowerCase = key.toLowerCase();
2506
+ if (
2507
+ key !== keyInLowerCase &&
2508
+ attrs && hasOwn(attrs, keyInLowerCase)
2509
+ ) {
2510
+ tip(
2511
+ "Prop \"" + keyInLowerCase + "\" is passed to component " +
2512
+ (formatComponentName(tag || Ctor)) + ", but the declared prop name is" +
2513
+ " \"" + key + "\". " +
2514
+ "Note that HTML attributes are case-insensitive and camelCased " +
2515
+ "props need to use their kebab-case equivalents when using in-DOM " +
2516
+ "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"."
2517
+ );
2518
+ }
2519
+ }
2520
+ checkProp(res, props, key, altKey, true) ||
2521
+ checkProp(res, attrs, key, altKey, false);
2522
+ }
2523
+ }
2524
+ return res
2525
+ }
2526
+
2527
+ function checkProp (
2528
+ res,
2529
+ hash,
2530
+ key,
2531
+ altKey,
2532
+ preserve
2533
+ ) {
2534
+ if (isDef(hash)) {
2535
+ if (hasOwn(hash, key)) {
2536
+ res[key] = hash[key];
2537
+ if (!preserve) {
2538
+ delete hash[key];
2539
+ }
2540
+ return true
2541
+ } else if (hasOwn(hash, altKey)) {
2542
+ res[key] = hash[altKey];
2543
+ if (!preserve) {
2544
+ delete hash[altKey];
2545
+ }
2546
+ return true
2547
+ }
2548
+ }
2549
+ return false
2550
+ }
2551
+
2552
+ /* */
2553
+
2554
+ // The template compiler attempts to minimize the need for normalization by
2555
+ // statically analyzing the template at compile time.
2556
+ //
2557
+ // For plain HTML markup, normalization can be completely skipped because the
2558
+ // generated render function is guaranteed to return Array<VNode>. There are
2559
+ // two cases where extra normalization is needed:
2560
+
2561
+ // 1. When the children contains components - because a functional component
2562
+ // may return an Array instead of a single root. In this case, just a simple
2563
+ // normalization is needed - if any child is an Array, we flatten the whole
2564
+ // thing with Array.prototype.concat. It is guaranteed to be only 1-level deep
2565
+ // because functional components already normalize their own children.
2566
+ function simpleNormalizeChildren (children) {
2567
+ for (var i = 0; i < children.length; i++) {
2568
+ if (Array.isArray(children[i])) {
2569
+ return Array.prototype.concat.apply([], children)
2570
+ }
2571
+ }
2572
+ return children
2573
+ }
2574
+
2575
+ // 2. When the children contains constructs that always generated nested Arrays,
2576
+ // e.g. <template>, <slot>, v-for, or when the children is provided by user
2577
+ // with hand-written render functions / JSX. In such cases a full normalization
2578
+ // is needed to cater to all possible types of children values.
2579
+ function normalizeChildren (children) {
2580
+ return isPrimitive(children)
2581
+ ? [createTextVNode(children)]
2582
+ : Array.isArray(children)
2583
+ ? normalizeArrayChildren(children)
2584
+ : undefined
2585
+ }
2586
+
2587
+ function isTextNode (node) {
2588
+ return isDef(node) && isDef(node.text) && isFalse(node.isComment)
2589
+ }
2590
+
2591
+ function normalizeArrayChildren (children, nestedIndex) {
2592
+ var res = [];
2593
+ var i, c, lastIndex, last;
2594
+ for (i = 0; i < children.length; i++) {
2595
+ c = children[i];
2596
+ if (isUndef(c) || typeof c === 'boolean') { continue }
2597
+ lastIndex = res.length - 1;
2598
+ last = res[lastIndex];
2599
+ // nested
2600
+ if (Array.isArray(c)) {
2601
+ if (c.length > 0) {
2602
+ c = normalizeArrayChildren(c, ((nestedIndex || '') + "_" + i));
2603
+ // merge adjacent text nodes
2604
+ if (isTextNode(c[0]) && isTextNode(last)) {
2605
+ res[lastIndex] = createTextVNode(last.text + (c[0]).text);
2606
+ c.shift();
2607
+ }
2608
+ res.push.apply(res, c);
2609
+ }
2610
+ } else if (isPrimitive(c)) {
2611
+ if (isTextNode(last)) {
2612
+ // merge adjacent text nodes
2613
+ // this is necessary for SSR hydration because text nodes are
2614
+ // essentially merged when rendered to HTML strings
2615
+ res[lastIndex] = createTextVNode(last.text + c);
2616
+ } else if (c !== '') {
2617
+ // convert primitive to vnode
2618
+ res.push(createTextVNode(c));
2619
+ }
2620
+ } else {
2621
+ if (isTextNode(c) && isTextNode(last)) {
2622
+ // merge adjacent text nodes
2623
+ res[lastIndex] = createTextVNode(last.text + c.text);
2624
+ } else {
2625
+ // default key for nested array children (likely generated by v-for)
2626
+ if (isTrue(children._isVList) &&
2627
+ isDef(c.tag) &&
2628
+ isUndef(c.key) &&
2629
+ isDef(nestedIndex)) {
2630
+ c.key = "__vlist" + nestedIndex + "_" + i + "__";
2631
+ }
2632
+ res.push(c);
2633
+ }
2634
+ }
2635
+ }
2636
+ return res
2637
+ }
2638
+
2639
+ /* */
2640
+
2641
+ function ensureCtor (comp, base) {
2642
+ if (
2643
+ comp.__esModule ||
2644
+ (hasSymbol && comp[Symbol.toStringTag] === 'Module')
2645
+ ) {
2646
+ comp = comp.default;
2647
+ }
2648
+ return isObject(comp)
2649
+ ? base.extend(comp)
2650
+ : comp
2651
+ }
2652
+
2653
+ function createAsyncPlaceholder (
2654
+ factory,
2655
+ data,
2656
+ context,
2657
+ children,
2658
+ tag
2659
+ ) {
2660
+ var node = createEmptyVNode();
2661
+ node.asyncFactory = factory;
2662
+ node.asyncMeta = { data: data, context: context, children: children, tag: tag };
2663
+ return node
2664
+ }
2665
+
2666
+ function resolveAsyncComponent (
2667
+ factory,
2668
+ baseCtor,
2669
+ context
2670
+ ) {
2671
+ if (isTrue(factory.error) && isDef(factory.errorComp)) {
2672
+ return factory.errorComp
2673
+ }
2674
+
2675
+ if (isDef(factory.resolved)) {
2676
+ return factory.resolved
2677
+ }
2678
+
2679
+ if (isTrue(factory.loading) && isDef(factory.loadingComp)) {
2680
+ return factory.loadingComp
2681
+ }
2682
+
2683
+ if (isDef(factory.contexts)) {
2684
+ // already pending
2685
+ factory.contexts.push(context);
2686
+ } else {
2687
+ var contexts = factory.contexts = [context];
2688
+ var sync = true;
2689
+
2690
+ var forceRender = function () {
2691
+ for (var i = 0, l = contexts.length; i < l; i++) {
2692
+ contexts[i].$forceUpdate();
2693
+ }
2694
+ };
2695
+
2696
+ var resolve = once(function (res) {
2697
+ // cache resolved
2698
+ factory.resolved = ensureCtor(res, baseCtor);
2699
+ // invoke callbacks only if this is not a synchronous resolve
2700
+ // (async resolves are shimmed as synchronous during SSR)
2701
+ if (!sync) {
2702
+ forceRender();
2703
+ }
2704
+ });
2705
+
2706
+ var reject = once(function (reason) {
2707
+ process.env.NODE_ENV !== 'production' && warn(
2708
+ "Failed to resolve async component: " + (String(factory)) +
2709
+ (reason ? ("\nReason: " + reason) : '')
2710
+ );
2711
+ if (isDef(factory.errorComp)) {
2712
+ factory.error = true;
2713
+ forceRender();
2714
+ }
2715
+ });
2716
+
2717
+ var res = factory(resolve, reject);
2718
+
2719
+ if (isObject(res)) {
2720
+ if (typeof res.then === 'function') {
2721
+ // () => Promise
2722
+ if (isUndef(factory.resolved)) {
2723
+ res.then(resolve, reject);
2724
+ }
2725
+ } else if (isDef(res.component) && typeof res.component.then === 'function') {
2726
+ res.component.then(resolve, reject);
2727
+
2728
+ if (isDef(res.error)) {
2729
+ factory.errorComp = ensureCtor(res.error, baseCtor);
2730
+ }
2731
+
2732
+ if (isDef(res.loading)) {
2733
+ factory.loadingComp = ensureCtor(res.loading, baseCtor);
2734
+ if (res.delay === 0) {
2735
+ factory.loading = true;
2736
+ } else {
2737
+ setTimeout(function () {
2738
+ if (isUndef(factory.resolved) && isUndef(factory.error)) {
2739
+ factory.loading = true;
2740
+ forceRender();
2741
+ }
2742
+ }, res.delay || 200);
2743
+ }
2744
+ }
2745
+
2746
+ if (isDef(res.timeout)) {
2747
+ setTimeout(function () {
2748
+ if (isUndef(factory.resolved)) {
2749
+ reject(
2750
+ process.env.NODE_ENV !== 'production'
2751
+ ? ("timeout (" + (res.timeout) + "ms)")
2752
+ : null
2753
+ );
2754
+ }
2755
+ }, res.timeout);
2756
+ }
2757
+ }
2758
+ }
2759
+
2760
+ sync = false;
2761
+ // return in case resolved synchronously
2762
+ return factory.loading
2763
+ ? factory.loadingComp
2764
+ : factory.resolved
2765
+ }
2766
+ }
2767
+
2768
+ /* */
2769
+
2770
+ function isAsyncPlaceholder (node) {
2771
+ return node.isComment && node.asyncFactory
2772
+ }
2773
+
2774
+ /* */
2775
+
2776
+ function getFirstComponentChild (children) {
2777
+ if (Array.isArray(children)) {
2778
+ for (var i = 0; i < children.length; i++) {
2779
+ var c = children[i];
2780
+ if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {
2781
+ return c
2782
+ }
2783
+ }
2784
+ }
2785
+ }
2786
+
2787
+ /* */
2788
+
2789
+ /* */
2790
+
2791
+ function initEvents (vm) {
2792
+ vm._events = Object.create(null);
2793
+ vm._hasHookEvent = false;
2794
+ // init parent attached events
2795
+ var listeners = vm.$options._parentListeners;
2796
+ if (listeners) {
2797
+ updateComponentListeners(vm, listeners);
2798
+ }
2799
+ }
2800
+
2801
+ var target;
2802
+
2803
+ function add (event, fn, once) {
2804
+ if (once) {
2805
+ target.$once(event, fn);
2806
+ } else {
2807
+ target.$on(event, fn);
2808
+ }
2809
+ }
2810
+
2811
+ function remove$1 (event, fn) {
2812
+ target.$off(event, fn);
2813
+ }
2814
+
2815
+ function updateComponentListeners (
2816
+ vm,
2817
+ listeners,
2818
+ oldListeners
2819
+ ) {
2820
+ target = vm;
2821
+ updateListeners(listeners, oldListeners || {}, add, remove$1, vm);
2822
+ target = undefined;
2823
+ }
2824
+
2825
+ function eventsMixin (Vue) {
2826
+ var hookRE = /^hook:/;
2827
+ Vue.prototype.$on = function (event, fn) {
2828
+ var this$1 = this;
2829
+
2830
+ var vm = this;
2831
+ if (Array.isArray(event)) {
2832
+ for (var i = 0, l = event.length; i < l; i++) {
2833
+ this$1.$on(event[i], fn);
2834
+ }
2835
+ } else {
2836
+ (vm._events[event] || (vm._events[event] = [])).push(fn);
2837
+ // optimize hook:event cost by using a boolean flag marked at registration
2838
+ // instead of a hash lookup
2839
+ if (hookRE.test(event)) {
2840
+ vm._hasHookEvent = true;
2841
+ }
2842
+ }
2843
+ return vm
2844
+ };
2845
+
2846
+ Vue.prototype.$once = function (event, fn) {
2847
+ var vm = this;
2848
+ function on () {
2849
+ vm.$off(event, on);
2850
+ fn.apply(vm, arguments);
2851
+ }
2852
+ on.fn = fn;
2853
+ vm.$on(event, on);
2854
+ return vm
2855
+ };
2856
+
2857
+ Vue.prototype.$off = function (event, fn) {
2858
+ var this$1 = this;
2859
+
2860
+ var vm = this;
2861
+ // all
2862
+ if (!arguments.length) {
2863
+ vm._events = Object.create(null);
2864
+ return vm
2865
+ }
2866
+ // array of events
2867
+ if (Array.isArray(event)) {
2868
+ for (var i = 0, l = event.length; i < l; i++) {
2869
+ this$1.$off(event[i], fn);
2870
+ }
2871
+ return vm
2872
+ }
2873
+ // specific event
2874
+ var cbs = vm._events[event];
2875
+ if (!cbs) {
2876
+ return vm
2877
+ }
2878
+ if (!fn) {
2879
+ vm._events[event] = null;
2880
+ return vm
2881
+ }
2882
+ if (fn) {
2883
+ // specific handler
2884
+ var cb;
2885
+ var i$1 = cbs.length;
2886
+ while (i$1--) {
2887
+ cb = cbs[i$1];
2888
+ if (cb === fn || cb.fn === fn) {
2889
+ cbs.splice(i$1, 1);
2890
+ break
2891
+ }
2892
+ }
2893
+ }
2894
+ return vm
2895
+ };
2896
+
2897
+ Vue.prototype.$emit = function (event) {
2898
+ var vm = this;
2899
+ if (process.env.NODE_ENV !== 'production') {
2900
+ var lowerCaseEvent = event.toLowerCase();
2901
+ if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {
2902
+ tip(
2903
+ "Event \"" + lowerCaseEvent + "\" is emitted in component " +
2904
+ (formatComponentName(vm)) + " but the handler is registered for \"" + event + "\". " +
2905
+ "Note that HTML attributes are case-insensitive and you cannot use " +
2906
+ "v-on to listen to camelCase events when using in-DOM templates. " +
2907
+ "You should probably use \"" + (hyphenate(event)) + "\" instead of \"" + event + "\"."
2908
+ );
2909
+ }
2910
+ }
2911
+ var cbs = vm._events[event];
2912
+ if (cbs) {
2913
+ cbs = cbs.length > 1 ? toArray(cbs) : cbs;
2914
+ var args = toArray(arguments, 1);
2915
+ for (var i = 0, l = cbs.length; i < l; i++) {
2916
+ try {
2917
+ cbs[i].apply(vm, args);
2918
+ } catch (e) {
2919
+ handleError(e, vm, ("event handler for \"" + event + "\""));
2920
+ }
2921
+ }
2922
+ }
2923
+ return vm
2924
+ };
2925
+ }
2926
+
2927
+ /* */
2928
+
2929
+
2930
+
2931
+ /**
2932
+ * Runtime helper for resolving raw children VNodes into a slot object.
2933
+ */
2934
+ function resolveSlots (
2935
+ children,
2936
+ context
2937
+ ) {
2938
+ var slots = {};
2939
+ if (!children) {
2940
+ return slots
2941
+ }
2942
+ for (var i = 0, l = children.length; i < l; i++) {
2943
+ var child = children[i];
2944
+ var data = child.data;
2945
+ // remove slot attribute if the node is resolved as a Vue slot node
2946
+ if (data && data.attrs && data.attrs.slot) {
2947
+ delete data.attrs.slot;
2948
+ }
2949
+ // named slots should only be respected if the vnode was rendered in the
2950
+ // same context.
2951
+ if ((child.context === context || child.fnContext === context) &&
2952
+ data && data.slot != null
2953
+ ) {
2954
+ var name = data.slot;
2955
+ var slot = (slots[name] || (slots[name] = []));
2956
+ if (child.tag === 'template') {
2957
+ slot.push.apply(slot, child.children || []);
2958
+ } else {
2959
+ slot.push(child);
2960
+ }
2961
+ } else {
2962
+ (slots.default || (slots.default = [])).push(child);
2963
+ }
2964
+ }
2965
+ // ignore slots that contains only whitespace
2966
+ for (var name$1 in slots) {
2967
+ if (slots[name$1].every(isWhitespace)) {
2968
+ delete slots[name$1];
2969
+ }
2970
+ }
2971
+ return slots
2972
+ }
2973
+
2974
+ function isWhitespace (node) {
2975
+ return (node.isComment && !node.asyncFactory) || node.text === ' '
2976
+ }
2977
+
2978
+ function resolveScopedSlots (
2979
+ fns, // see flow/vnode
2980
+ res
2981
+ ) {
2982
+ res = res || {};
2983
+ for (var i = 0; i < fns.length; i++) {
2984
+ if (Array.isArray(fns[i])) {
2985
+ resolveScopedSlots(fns[i], res);
2986
+ } else {
2987
+ res[fns[i].key] = fns[i].fn;
2988
+ }
2989
+ }
2990
+ return res
2991
+ }
2992
+
2993
+ /* */
2994
+
2995
+ var activeInstance = null;
2996
+ var isUpdatingChildComponent = false;
2997
+
2998
+ function initLifecycle (vm) {
2999
+ var options = vm.$options;
3000
+
3001
+ // locate first non-abstract parent
3002
+ var parent = options.parent;
3003
+ if (parent && !options.abstract) {
3004
+ while (parent.$options.abstract && parent.$parent) {
3005
+ parent = parent.$parent;
3006
+ }
3007
+ parent.$children.push(vm);
3008
+ }
3009
+
3010
+ vm.$parent = parent;
3011
+ vm.$root = parent ? parent.$root : vm;
3012
+
3013
+ vm.$children = [];
3014
+ vm.$refs = {};
3015
+
3016
+ vm._watcher = null;
3017
+ vm._inactive = null;
3018
+ vm._directInactive = false;
3019
+ vm._isMounted = false;
3020
+ vm._isDestroyed = false;
3021
+ vm._isBeingDestroyed = false;
3022
+ }
3023
+
3024
+ function lifecycleMixin (Vue) {
3025
+ Vue.prototype._update = function (vnode, hydrating) {
3026
+ var vm = this;
3027
+ if (vm._isMounted) {
3028
+ callHook(vm, 'beforeUpdate');
3029
+ }
3030
+ var prevEl = vm.$el;
3031
+ var prevVnode = vm._vnode;
3032
+ var prevActiveInstance = activeInstance;
3033
+ activeInstance = vm;
3034
+ vm._vnode = vnode;
3035
+ // Vue.prototype.__patch__ is injected in entry points
3036
+ // based on the rendering backend used.
3037
+ if (!prevVnode) {
3038
+ // initial render
3039
+ vm.$el = vm.__patch__(
3040
+ vm.$el, vnode, hydrating, false /* removeOnly */,
3041
+ vm.$options._parentElm,
3042
+ vm.$options._refElm
3043
+ );
3044
+ // no need for the ref nodes after initial patch
3045
+ // this prevents keeping a detached DOM tree in memory (#5851)
3046
+ vm.$options._parentElm = vm.$options._refElm = null;
3047
+ } else {
3048
+ // updates
3049
+ vm.$el = vm.__patch__(prevVnode, vnode);
3050
+ }
3051
+ activeInstance = prevActiveInstance;
3052
+ // update __vue__ reference
3053
+ if (prevEl) {
3054
+ prevEl.__vue__ = null;
3055
+ }
3056
+ if (vm.$el) {
3057
+ vm.$el.__vue__ = vm;
3058
+ }
3059
+ // if parent is an HOC, update its $el as well
3060
+ if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {
3061
+ vm.$parent.$el = vm.$el;
3062
+ }
3063
+ // updated hook is called by the scheduler to ensure that children are
3064
+ // updated in a parent's updated hook.
3065
+ };
3066
+
3067
+ Vue.prototype.$forceUpdate = function () {
3068
+ var vm = this;
3069
+ if (vm._watcher) {
3070
+ vm._watcher.update();
3071
+ }
3072
+ };
3073
+
3074
+ Vue.prototype.$destroy = function () {
3075
+ var vm = this;
3076
+ if (vm._isBeingDestroyed) {
3077
+ return
3078
+ }
3079
+ callHook(vm, 'beforeDestroy');
3080
+ vm._isBeingDestroyed = true;
3081
+ // remove self from parent
3082
+ var parent = vm.$parent;
3083
+ if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {
3084
+ remove(parent.$children, vm);
3085
+ }
3086
+ // teardown watchers
3087
+ if (vm._watcher) {
3088
+ vm._watcher.teardown();
3089
+ }
3090
+ var i = vm._watchers.length;
3091
+ while (i--) {
3092
+ vm._watchers[i].teardown();
3093
+ }
3094
+ // remove reference from data ob
3095
+ // frozen object may not have observer.
3096
+ if (vm._data.__ob__) {
3097
+ vm._data.__ob__.vmCount--;
3098
+ }
3099
+ // call the last hook...
3100
+ vm._isDestroyed = true;
3101
+ // invoke destroy hooks on current rendered tree
3102
+ vm.__patch__(vm._vnode, null);
3103
+ // fire destroyed hook
3104
+ callHook(vm, 'destroyed');
3105
+ // turn off all instance listeners.
3106
+ vm.$off();
3107
+ // remove __vue__ reference
3108
+ if (vm.$el) {
3109
+ vm.$el.__vue__ = null;
3110
+ }
3111
+ // release circular reference (#6759)
3112
+ if (vm.$vnode) {
3113
+ vm.$vnode.parent = null;
3114
+ }
3115
+ };
3116
+ }
3117
+
3118
+ function mountComponent (
3119
+ vm,
3120
+ el,
3121
+ hydrating
3122
+ ) {
3123
+ vm.$el = el;
3124
+ if (!vm.$options.render) {
3125
+ vm.$options.render = createEmptyVNode;
3126
+ if (process.env.NODE_ENV !== 'production') {
3127
+ /* istanbul ignore if */
3128
+ if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||
3129
+ vm.$options.el || el) {
3130
+ warn(
3131
+ 'You are using the runtime-only build of Vue where the template ' +
3132
+ 'compiler is not available. Either pre-compile the templates into ' +
3133
+ 'render functions, or use the compiler-included build.',
3134
+ vm
3135
+ );
3136
+ } else {
3137
+ warn(
3138
+ 'Failed to mount component: template or render function not defined.',
3139
+ vm
3140
+ );
3141
+ }
3142
+ }
3143
+ }
3144
+ callHook(vm, 'beforeMount');
3145
+
3146
+ var updateComponent;
3147
+ /* istanbul ignore if */
3148
+ if (process.env.NODE_ENV !== 'production' && config.performance && mark) {
3149
+ updateComponent = function () {
3150
+ var name = vm._name;
3151
+ var id = vm._uid;
3152
+ var startTag = "vue-perf-start:" + id;
3153
+ var endTag = "vue-perf-end:" + id;
3154
+
3155
+ mark(startTag);
3156
+ var vnode = vm._render();
3157
+ mark(endTag);
3158
+ measure(("vue " + name + " render"), startTag, endTag);
3159
+
3160
+ mark(startTag);
3161
+ vm._update(vnode, hydrating);
3162
+ mark(endTag);
3163
+ measure(("vue " + name + " patch"), startTag, endTag);
3164
+ };
3165
+ } else {
3166
+ updateComponent = function () {
3167
+ vm._update(vm._render(), hydrating);
3168
+ };
3169
+ }
3170
+
3171
+ // we set this to vm._watcher inside the watcher's constructor
3172
+ // since the watcher's initial patch may call $forceUpdate (e.g. inside child
3173
+ // component's mounted hook), which relies on vm._watcher being already defined
3174
+ new Watcher(vm, updateComponent, noop, null, true /* isRenderWatcher */);
3175
+ hydrating = false;
3176
+
3177
+ // manually mounted instance, call mounted on self
3178
+ // mounted is called for render-created child components in its inserted hook
3179
+ if (vm.$vnode == null) {
3180
+ vm._isMounted = true;
3181
+ callHook(vm, 'mounted');
3182
+ }
3183
+ return vm
3184
+ }
3185
+
3186
+ function updateChildComponent (
3187
+ vm,
3188
+ propsData,
3189
+ listeners,
3190
+ parentVnode,
3191
+ renderChildren
3192
+ ) {
3193
+ if (process.env.NODE_ENV !== 'production') {
3194
+ isUpdatingChildComponent = true;
3195
+ }
3196
+
3197
+ // determine whether component has slot children
3198
+ // we need to do this before overwriting $options._renderChildren
3199
+ var hasChildren = !!(
3200
+ renderChildren || // has new static slots
3201
+ vm.$options._renderChildren || // has old static slots
3202
+ parentVnode.data.scopedSlots || // has new scoped slots
3203
+ vm.$scopedSlots !== emptyObject // has old scoped slots
3204
+ );
3205
+
3206
+ vm.$options._parentVnode = parentVnode;
3207
+ vm.$vnode = parentVnode; // update vm's placeholder node without re-render
3208
+
3209
+ if (vm._vnode) { // update child tree's parent
3210
+ vm._vnode.parent = parentVnode;
3211
+ }
3212
+ vm.$options._renderChildren = renderChildren;
3213
+
3214
+ // update $attrs and $listeners hash
3215
+ // these are also reactive so they may trigger child update if the child
3216
+ // used them during render
3217
+ vm.$attrs = parentVnode.data.attrs || emptyObject;
3218
+ vm.$listeners = listeners || emptyObject;
3219
+
3220
+ // update props
3221
+ if (propsData && vm.$options.props) {
3222
+ toggleObserving(false);
3223
+ var props = vm._props;
3224
+ var propKeys = vm.$options._propKeys || [];
3225
+ for (var i = 0; i < propKeys.length; i++) {
3226
+ var key = propKeys[i];
3227
+ var propOptions = vm.$options.props; // wtf flow?
3228
+ props[key] = validateProp(key, propOptions, propsData, vm);
3229
+ }
3230
+ toggleObserving(true);
3231
+ // keep a copy of raw propsData
3232
+ vm.$options.propsData = propsData;
3233
+ }
3234
+
3235
+ // update listeners
3236
+ listeners = listeners || emptyObject;
3237
+ var oldListeners = vm.$options._parentListeners;
3238
+ vm.$options._parentListeners = listeners;
3239
+ updateComponentListeners(vm, listeners, oldListeners);
3240
+
3241
+ // resolve slots + force update if has children
3242
+ if (hasChildren) {
3243
+ vm.$slots = resolveSlots(renderChildren, parentVnode.context);
3244
+ vm.$forceUpdate();
3245
+ }
3246
+
3247
+ if (process.env.NODE_ENV !== 'production') {
3248
+ isUpdatingChildComponent = false;
3249
+ }
3250
+ }
3251
+
3252
+ function isInInactiveTree (vm) {
3253
+ while (vm && (vm = vm.$parent)) {
3254
+ if (vm._inactive) { return true }
3255
+ }
3256
+ return false
3257
+ }
3258
+
3259
+ function activateChildComponent (vm, direct) {
3260
+ if (direct) {
3261
+ vm._directInactive = false;
3262
+ if (isInInactiveTree(vm)) {
3263
+ return
3264
+ }
3265
+ } else if (vm._directInactive) {
3266
+ return
3267
+ }
3268
+ if (vm._inactive || vm._inactive === null) {
3269
+ vm._inactive = false;
3270
+ for (var i = 0; i < vm.$children.length; i++) {
3271
+ activateChildComponent(vm.$children[i]);
3272
+ }
3273
+ callHook(vm, 'activated');
3274
+ }
3275
+ }
3276
+
3277
+ function deactivateChildComponent (vm, direct) {
3278
+ if (direct) {
3279
+ vm._directInactive = true;
3280
+ if (isInInactiveTree(vm)) {
3281
+ return
3282
+ }
3283
+ }
3284
+ if (!vm._inactive) {
3285
+ vm._inactive = true;
3286
+ for (var i = 0; i < vm.$children.length; i++) {
3287
+ deactivateChildComponent(vm.$children[i]);
3288
+ }
3289
+ callHook(vm, 'deactivated');
3290
+ }
3291
+ }
3292
+
3293
+ function callHook (vm, hook) {
3294
+ // #7573 disable dep collection when invoking lifecycle hooks
3295
+ pushTarget();
3296
+ var handlers = vm.$options[hook];
3297
+ if (handlers) {
3298
+ for (var i = 0, j = handlers.length; i < j; i++) {
3299
+ try {
3300
+ handlers[i].call(vm);
3301
+ } catch (e) {
3302
+ handleError(e, vm, (hook + " hook"));
3303
+ }
3304
+ }
3305
+ }
3306
+ if (vm._hasHookEvent) {
3307
+ vm.$emit('hook:' + hook);
3308
+ }
3309
+ popTarget();
3310
+ }
3311
+
3312
+ /* */
3313
+
3314
+
3315
+ var MAX_UPDATE_COUNT = 100;
3316
+
3317
+ var queue = [];
3318
+ var activatedChildren = [];
3319
+ var has = {};
3320
+ var circular = {};
3321
+ var waiting = false;
3322
+ var flushing = false;
3323
+ var index = 0;
3324
+
3325
+ /**
3326
+ * Reset the scheduler's state.
3327
+ */
3328
+ function resetSchedulerState () {
3329
+ index = queue.length = activatedChildren.length = 0;
3330
+ has = {};
3331
+ if (process.env.NODE_ENV !== 'production') {
3332
+ circular = {};
3333
+ }
3334
+ waiting = flushing = false;
3335
+ }
3336
+
3337
+ /**
3338
+ * Flush both queues and run the watchers.
3339
+ */
3340
+ function flushSchedulerQueue () {
3341
+ flushing = true;
3342
+ var watcher, id;
3343
+
3344
+ // Sort queue before flush.
3345
+ // This ensures that:
3346
+ // 1. Components are updated from parent to child. (because parent is always
3347
+ // created before the child)
3348
+ // 2. A component's user watchers are run before its render watcher (because
3349
+ // user watchers are created before the render watcher)
3350
+ // 3. If a component is destroyed during a parent component's watcher run,
3351
+ // its watchers can be skipped.
3352
+ queue.sort(function (a, b) { return a.id - b.id; });
3353
+
3354
+ // do not cache length because more watchers might be pushed
3355
+ // as we run existing watchers
3356
+ for (index = 0; index < queue.length; index++) {
3357
+ watcher = queue[index];
3358
+ id = watcher.id;
3359
+ has[id] = null;
3360
+ watcher.run();
3361
+ // in dev build, check and stop circular updates.
3362
+ if (process.env.NODE_ENV !== 'production' && has[id] != null) {
3363
+ circular[id] = (circular[id] || 0) + 1;
3364
+ if (circular[id] > MAX_UPDATE_COUNT) {
3365
+ warn(
3366
+ 'You may have an infinite update loop ' + (
3367
+ watcher.user
3368
+ ? ("in watcher with expression \"" + (watcher.expression) + "\"")
3369
+ : "in a component render function."
3370
+ ),
3371
+ watcher.vm
3372
+ );
3373
+ break
3374
+ }
3375
+ }
3376
+ }
3377
+
3378
+ // keep copies of post queues before resetting state
3379
+ var activatedQueue = activatedChildren.slice();
3380
+ var updatedQueue = queue.slice();
3381
+
3382
+ resetSchedulerState();
3383
+
3384
+ // call component updated and activated hooks
3385
+ callActivatedHooks(activatedQueue);
3386
+ callUpdatedHooks(updatedQueue);
3387
+
3388
+ // devtool hook
3389
+ /* istanbul ignore if */
3390
+ if (devtools && config.devtools) {
3391
+ devtools.emit('flush');
3392
+ }
3393
+ }
3394
+
3395
+ function callUpdatedHooks (queue) {
3396
+ var i = queue.length;
3397
+ while (i--) {
3398
+ var watcher = queue[i];
3399
+ var vm = watcher.vm;
3400
+ if (vm._watcher === watcher && vm._isMounted) {
3401
+ callHook(vm, 'updated');
3402
+ }
3403
+ }
3404
+ }
3405
+
3406
+ /**
3407
+ * Queue a kept-alive component that was activated during patch.
3408
+ * The queue will be processed after the entire tree has been patched.
3409
+ */
3410
+ function queueActivatedComponent (vm) {
3411
+ // setting _inactive to false here so that a render function can
3412
+ // rely on checking whether it's in an inactive tree (e.g. router-view)
3413
+ vm._inactive = false;
3414
+ activatedChildren.push(vm);
3415
+ }
3416
+
3417
+ function callActivatedHooks (queue) {
3418
+ for (var i = 0; i < queue.length; i++) {
3419
+ queue[i]._inactive = true;
3420
+ activateChildComponent(queue[i], true /* true */);
3421
+ }
3422
+ }
3423
+
3424
+ /**
3425
+ * Push a watcher into the watcher queue.
3426
+ * Jobs with duplicate IDs will be skipped unless it's
3427
+ * pushed when the queue is being flushed.
3428
+ */
3429
+ function queueWatcher (watcher) {
3430
+ var id = watcher.id;
3431
+ if (has[id] == null) {
3432
+ has[id] = true;
3433
+ if (!flushing) {
3434
+ queue.push(watcher);
3435
+ } else {
3436
+ // if already flushing, splice the watcher based on its id
3437
+ // if already past its id, it will be run next immediately.
3438
+ var i = queue.length - 1;
3439
+ while (i > index && queue[i].id > watcher.id) {
3440
+ i--;
3441
+ }
3442
+ queue.splice(i + 1, 0, watcher);
3443
+ }
3444
+ // queue the flush
3445
+ if (!waiting) {
3446
+ waiting = true;
3447
+ nextTick(flushSchedulerQueue);
3448
+ }
3449
+ }
3450
+ }
3451
+
3452
+ /* */
3453
+
3454
+ var uid$1 = 0;
3455
+
3456
+ /**
3457
+ * A watcher parses an expression, collects dependencies,
3458
+ * and fires callback when the expression value changes.
3459
+ * This is used for both the $watch() api and directives.
3460
+ */
3461
+ var Watcher = function Watcher (
3462
+ vm,
3463
+ expOrFn,
3464
+ cb,
3465
+ options,
3466
+ isRenderWatcher
3467
+ ) {
3468
+ this.vm = vm;
3469
+ if (isRenderWatcher) {
3470
+ vm._watcher = this;
3471
+ }
3472
+ vm._watchers.push(this);
3473
+ // options
3474
+ if (options) {
3475
+ this.deep = !!options.deep;
3476
+ this.user = !!options.user;
3477
+ this.lazy = !!options.lazy;
3478
+ this.sync = !!options.sync;
3479
+ } else {
3480
+ this.deep = this.user = this.lazy = this.sync = false;
3481
+ }
3482
+ this.cb = cb;
3483
+ this.id = ++uid$1; // uid for batching
3484
+ this.active = true;
3485
+ this.dirty = this.lazy; // for lazy watchers
3486
+ this.deps = [];
3487
+ this.newDeps = [];
3488
+ this.depIds = new _Set();
3489
+ this.newDepIds = new _Set();
3490
+ this.expression = process.env.NODE_ENV !== 'production'
3491
+ ? expOrFn.toString()
3492
+ : '';
3493
+ // parse expression for getter
3494
+ if (typeof expOrFn === 'function') {
3495
+ this.getter = expOrFn;
3496
+ } else {
3497
+ this.getter = parsePath(expOrFn);
3498
+ if (!this.getter) {
3499
+ this.getter = function () {};
3500
+ process.env.NODE_ENV !== 'production' && warn(
3501
+ "Failed watching path: \"" + expOrFn + "\" " +
3502
+ 'Watcher only accepts simple dot-delimited paths. ' +
3503
+ 'For full control, use a function instead.',
3504
+ vm
3505
+ );
3506
+ }
3507
+ }
3508
+ this.value = this.lazy
3509
+ ? undefined
3510
+ : this.get();
3511
+ };
3512
+
3513
+ /**
3514
+ * Evaluate the getter, and re-collect dependencies.
3515
+ */
3516
+ Watcher.prototype.get = function get () {
3517
+ pushTarget(this);
3518
+ var value;
3519
+ var vm = this.vm;
3520
+ try {
3521
+ value = this.getter.call(vm, vm);
3522
+ } catch (e) {
3523
+ if (this.user) {
3524
+ handleError(e, vm, ("getter for watcher \"" + (this.expression) + "\""));
3525
+ } else {
3526
+ throw e
3527
+ }
3528
+ } finally {
3529
+ // "touch" every property so they are all tracked as
3530
+ // dependencies for deep watching
3531
+ if (this.deep) {
3532
+ traverse(value);
3533
+ }
3534
+ popTarget();
3535
+ this.cleanupDeps();
3536
+ }
3537
+ return value
3538
+ };
3539
+
3540
+ /**
3541
+ * Add a dependency to this directive.
3542
+ */
3543
+ Watcher.prototype.addDep = function addDep (dep) {
3544
+ var id = dep.id;
3545
+ if (!this.newDepIds.has(id)) {
3546
+ this.newDepIds.add(id);
3547
+ this.newDeps.push(dep);
3548
+ if (!this.depIds.has(id)) {
3549
+ dep.addSub(this);
3550
+ }
3551
+ }
3552
+ };
3553
+
3554
+ /**
3555
+ * Clean up for dependency collection.
3556
+ */
3557
+ Watcher.prototype.cleanupDeps = function cleanupDeps () {
3558
+ var this$1 = this;
3559
+
3560
+ var i = this.deps.length;
3561
+ while (i--) {
3562
+ var dep = this$1.deps[i];
3563
+ if (!this$1.newDepIds.has(dep.id)) {
3564
+ dep.removeSub(this$1);
3565
+ }
3566
+ }
3567
+ var tmp = this.depIds;
3568
+ this.depIds = this.newDepIds;
3569
+ this.newDepIds = tmp;
3570
+ this.newDepIds.clear();
3571
+ tmp = this.deps;
3572
+ this.deps = this.newDeps;
3573
+ this.newDeps = tmp;
3574
+ this.newDeps.length = 0;
3575
+ };
3576
+
3577
+ /**
3578
+ * Subscriber interface.
3579
+ * Will be called when a dependency changes.
3580
+ */
3581
+ Watcher.prototype.update = function update () {
3582
+ /* istanbul ignore else */
3583
+ if (this.lazy) {
3584
+ this.dirty = true;
3585
+ } else if (this.sync) {
3586
+ this.run();
3587
+ } else {
3588
+ queueWatcher(this);
3589
+ }
3590
+ };
3591
+
3592
+ /**
3593
+ * Scheduler job interface.
3594
+ * Will be called by the scheduler.
3595
+ */
3596
+ Watcher.prototype.run = function run () {
3597
+ if (this.active) {
3598
+ var value = this.get();
3599
+ if (
3600
+ value !== this.value ||
3601
+ // Deep watchers and watchers on Object/Arrays should fire even
3602
+ // when the value is the same, because the value may
3603
+ // have mutated.
3604
+ isObject(value) ||
3605
+ this.deep
3606
+ ) {
3607
+ // set new value
3608
+ var oldValue = this.value;
3609
+ this.value = value;
3610
+ if (this.user) {
3611
+ try {
3612
+ this.cb.call(this.vm, value, oldValue);
3613
+ } catch (e) {
3614
+ handleError(e, this.vm, ("callback for watcher \"" + (this.expression) + "\""));
3615
+ }
3616
+ } else {
3617
+ this.cb.call(this.vm, value, oldValue);
3618
+ }
3619
+ }
3620
+ }
3621
+ };
3622
+
3623
+ /**
3624
+ * Evaluate the value of the watcher.
3625
+ * This only gets called for lazy watchers.
3626
+ */
3627
+ Watcher.prototype.evaluate = function evaluate () {
3628
+ this.value = this.get();
3629
+ this.dirty = false;
3630
+ };
3631
+
3632
+ /**
3633
+ * Depend on all deps collected by this watcher.
3634
+ */
3635
+ Watcher.prototype.depend = function depend () {
3636
+ var this$1 = this;
3637
+
3638
+ var i = this.deps.length;
3639
+ while (i--) {
3640
+ this$1.deps[i].depend();
3641
+ }
3642
+ };
3643
+
3644
+ /**
3645
+ * Remove self from all dependencies' subscriber list.
3646
+ */
3647
+ Watcher.prototype.teardown = function teardown () {
3648
+ var this$1 = this;
3649
+
3650
+ if (this.active) {
3651
+ // remove self from vm's watcher list
3652
+ // this is a somewhat expensive operation so we skip it
3653
+ // if the vm is being destroyed.
3654
+ if (!this.vm._isBeingDestroyed) {
3655
+ remove(this.vm._watchers, this);
3656
+ }
3657
+ var i = this.deps.length;
3658
+ while (i--) {
3659
+ this$1.deps[i].removeSub(this$1);
3660
+ }
3661
+ this.active = false;
3662
+ }
3663
+ };
3664
+
3665
+ /* */
3666
+
3667
+ var sharedPropertyDefinition = {
3668
+ enumerable: true,
3669
+ configurable: true,
3670
+ get: noop,
3671
+ set: noop
3672
+ };
3673
+
3674
+ function proxy (target, sourceKey, key) {
3675
+ sharedPropertyDefinition.get = function proxyGetter () {
3676
+ return this[sourceKey][key]
3677
+ };
3678
+ sharedPropertyDefinition.set = function proxySetter (val) {
3679
+ this[sourceKey][key] = val;
3680
+ };
3681
+ Object.defineProperty(target, key, sharedPropertyDefinition);
3682
+ }
3683
+
3684
+ function initState (vm) {
3685
+ vm._watchers = [];
3686
+ var opts = vm.$options;
3687
+ if (opts.props) { initProps(vm, opts.props); }
3688
+ if (opts.methods) { initMethods(vm, opts.methods); }
3689
+ if (opts.data) {
3690
+ initData(vm);
3691
+ } else {
3692
+ observe(vm._data = {}, true /* asRootData */);
3693
+ }
3694
+ if (opts.computed) { initComputed(vm, opts.computed); }
3695
+ if (opts.watch && opts.watch !== nativeWatch) {
3696
+ initWatch(vm, opts.watch);
3697
+ }
3698
+ }
3699
+
3700
+ function initProps (vm, propsOptions) {
3701
+ var propsData = vm.$options.propsData || {};
3702
+ var props = vm._props = {};
3703
+ // cache prop keys so that future props updates can iterate using Array
3704
+ // instead of dynamic object key enumeration.
3705
+ var keys = vm.$options._propKeys = [];
3706
+ var isRoot = !vm.$parent;
3707
+ // root instance props should be converted
3708
+ if (!isRoot) {
3709
+ toggleObserving(false);
3710
+ }
3711
+ var loop = function ( key ) {
3712
+ keys.push(key);
3713
+ var value = validateProp(key, propsOptions, propsData, vm);
3714
+ /* istanbul ignore else */
3715
+ if (process.env.NODE_ENV !== 'production') {
3716
+ var hyphenatedKey = hyphenate(key);
3717
+ if (isReservedAttribute(hyphenatedKey) ||
3718
+ config.isReservedAttr(hyphenatedKey)) {
3719
+ warn(
3720
+ ("\"" + hyphenatedKey + "\" is a reserved attribute and cannot be used as component prop."),
3721
+ vm
3722
+ );
3723
+ }
3724
+ defineReactive(props, key, value, function () {
3725
+ if (vm.$parent && !isUpdatingChildComponent) {
3726
+ warn(
3727
+ "Avoid mutating a prop directly since the value will be " +
3728
+ "overwritten whenever the parent component re-renders. " +
3729
+ "Instead, use a data or computed property based on the prop's " +
3730
+ "value. Prop being mutated: \"" + key + "\"",
3731
+ vm
3732
+ );
3733
+ }
3734
+ });
3735
+ } else {
3736
+ defineReactive(props, key, value);
3737
+ }
3738
+ // static props are already proxied on the component's prototype
3739
+ // during Vue.extend(). We only need to proxy props defined at
3740
+ // instantiation here.
3741
+ if (!(key in vm)) {
3742
+ proxy(vm, "_props", key);
3743
+ }
3744
+ };
3745
+
3746
+ for (var key in propsOptions) loop( key );
3747
+ toggleObserving(true);
3748
+ }
3749
+
3750
+ function initData (vm) {
3751
+ var data = vm.$options.data;
3752
+ data = vm._data = typeof data === 'function'
3753
+ ? getData(data, vm)
3754
+ : data || {};
3755
+ if (!isPlainObject(data)) {
3756
+ data = {};
3757
+ process.env.NODE_ENV !== 'production' && warn(
3758
+ 'data functions should return an object:\n' +
3759
+ 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',
3760
+ vm
3761
+ );
3762
+ }
3763
+ // proxy data on instance
3764
+ var keys = Object.keys(data);
3765
+ var props = vm.$options.props;
3766
+ var methods = vm.$options.methods;
3767
+ var i = keys.length;
3768
+ while (i--) {
3769
+ var key = keys[i];
3770
+ if (process.env.NODE_ENV !== 'production') {
3771
+ if (methods && hasOwn(methods, key)) {
3772
+ warn(
3773
+ ("Method \"" + key + "\" has already been defined as a data property."),
3774
+ vm
3775
+ );
3776
+ }
3777
+ }
3778
+ if (props && hasOwn(props, key)) {
3779
+ process.env.NODE_ENV !== 'production' && warn(
3780
+ "The data property \"" + key + "\" is already declared as a prop. " +
3781
+ "Use prop default value instead.",
3782
+ vm
3783
+ );
3784
+ } else if (!isReserved(key)) {
3785
+ proxy(vm, "_data", key);
3786
+ }
3787
+ }
3788
+ // observe data
3789
+ observe(data, true /* asRootData */);
3790
+ }
3791
+
3792
+ function getData (data, vm) {
3793
+ // #7573 disable dep collection when invoking data getters
3794
+ pushTarget();
3795
+ try {
3796
+ return data.call(vm, vm)
3797
+ } catch (e) {
3798
+ handleError(e, vm, "data()");
3799
+ return {}
3800
+ } finally {
3801
+ popTarget();
3802
+ }
3803
+ }
3804
+
3805
+ var computedWatcherOptions = { lazy: true };
3806
+
3807
+ function initComputed (vm, computed) {
3808
+ // $flow-disable-line
3809
+ var watchers = vm._computedWatchers = Object.create(null);
3810
+ // computed properties are just getters during SSR
3811
+ var isSSR = isServerRendering();
3812
+
3813
+ for (var key in computed) {
3814
+ var userDef = computed[key];
3815
+ var getter = typeof userDef === 'function' ? userDef : userDef.get;
3816
+ if (process.env.NODE_ENV !== 'production' && getter == null) {
3817
+ warn(
3818
+ ("Getter is missing for computed property \"" + key + "\"."),
3819
+ vm
3820
+ );
3821
+ }
3822
+
3823
+ if (!isSSR) {
3824
+ // create internal watcher for the computed property.
3825
+ watchers[key] = new Watcher(
3826
+ vm,
3827
+ getter || noop,
3828
+ noop,
3829
+ computedWatcherOptions
3830
+ );
3831
+ }
3832
+
3833
+ // component-defined computed properties are already defined on the
3834
+ // component prototype. We only need to define computed properties defined
3835
+ // at instantiation here.
3836
+ if (!(key in vm)) {
3837
+ defineComputed(vm, key, userDef);
3838
+ } else if (process.env.NODE_ENV !== 'production') {
3839
+ if (key in vm.$data) {
3840
+ warn(("The computed property \"" + key + "\" is already defined in data."), vm);
3841
+ } else if (vm.$options.props && key in vm.$options.props) {
3842
+ warn(("The computed property \"" + key + "\" is already defined as a prop."), vm);
3843
+ }
3844
+ }
3845
+ }
3846
+ }
3847
+
3848
+ function defineComputed (
3849
+ target,
3850
+ key,
3851
+ userDef
3852
+ ) {
3853
+ var shouldCache = !isServerRendering();
3854
+ if (typeof userDef === 'function') {
3855
+ sharedPropertyDefinition.get = shouldCache
3856
+ ? createComputedGetter(key)
3857
+ : userDef;
3858
+ sharedPropertyDefinition.set = noop;
3859
+ } else {
3860
+ sharedPropertyDefinition.get = userDef.get
3861
+ ? shouldCache && userDef.cache !== false
3862
+ ? createComputedGetter(key)
3863
+ : userDef.get
3864
+ : noop;
3865
+ sharedPropertyDefinition.set = userDef.set
3866
+ ? userDef.set
3867
+ : noop;
3868
+ }
3869
+ if (process.env.NODE_ENV !== 'production' &&
3870
+ sharedPropertyDefinition.set === noop) {
3871
+ sharedPropertyDefinition.set = function () {
3872
+ warn(
3873
+ ("Computed property \"" + key + "\" was assigned to but it has no setter."),
3874
+ this
3875
+ );
3876
+ };
3877
+ }
3878
+ Object.defineProperty(target, key, sharedPropertyDefinition);
3879
+ }
3880
+
3881
+ function createComputedGetter (key) {
3882
+ return function computedGetter () {
3883
+ var watcher = this._computedWatchers && this._computedWatchers[key];
3884
+ if (watcher) {
3885
+ if (watcher.dirty) {
3886
+ watcher.evaluate();
3887
+ }
3888
+ if (Dep.target) {
3889
+ watcher.depend();
3890
+ }
3891
+ return watcher.value
3892
+ }
3893
+ }
3894
+ }
3895
+
3896
+ function initMethods (vm, methods) {
3897
+ var props = vm.$options.props;
3898
+ for (var key in methods) {
3899
+ if (process.env.NODE_ENV !== 'production') {
3900
+ if (methods[key] == null) {
3901
+ warn(
3902
+ "Method \"" + key + "\" has an undefined value in the component definition. " +
3903
+ "Did you reference the function correctly?",
3904
+ vm
3905
+ );
3906
+ }
3907
+ if (props && hasOwn(props, key)) {
3908
+ warn(
3909
+ ("Method \"" + key + "\" has already been defined as a prop."),
3910
+ vm
3911
+ );
3912
+ }
3913
+ if ((key in vm) && isReserved(key)) {
3914
+ warn(
3915
+ "Method \"" + key + "\" conflicts with an existing Vue instance method. " +
3916
+ "Avoid defining component methods that start with _ or $."
3917
+ );
3918
+ }
3919
+ }
3920
+ vm[key] = methods[key] == null ? noop : bind(methods[key], vm);
3921
+ }
3922
+ }
3923
+
3924
+ function initWatch (vm, watch) {
3925
+ for (var key in watch) {
3926
+ var handler = watch[key];
3927
+ if (Array.isArray(handler)) {
3928
+ for (var i = 0; i < handler.length; i++) {
3929
+ createWatcher(vm, key, handler[i]);
3930
+ }
3931
+ } else {
3932
+ createWatcher(vm, key, handler);
3933
+ }
3934
+ }
3935
+ }
3936
+
3937
+ function createWatcher (
3938
+ vm,
3939
+ expOrFn,
3940
+ handler,
3941
+ options
3942
+ ) {
3943
+ if (isPlainObject(handler)) {
3944
+ options = handler;
3945
+ handler = handler.handler;
3946
+ }
3947
+ if (typeof handler === 'string') {
3948
+ handler = vm[handler];
3949
+ }
3950
+ return vm.$watch(expOrFn, handler, options)
3951
+ }
3952
+
3953
+ function stateMixin (Vue) {
3954
+ // flow somehow has problems with directly declared definition object
3955
+ // when using Object.defineProperty, so we have to procedurally build up
3956
+ // the object here.
3957
+ var dataDef = {};
3958
+ dataDef.get = function () { return this._data };
3959
+ var propsDef = {};
3960
+ propsDef.get = function () { return this._props };
3961
+ if (process.env.NODE_ENV !== 'production') {
3962
+ dataDef.set = function (newData) {
3963
+ warn(
3964
+ 'Avoid replacing instance root $data. ' +
3965
+ 'Use nested data properties instead.',
3966
+ this
3967
+ );
3968
+ };
3969
+ propsDef.set = function () {
3970
+ warn("$props is readonly.", this);
3971
+ };
3972
+ }
3973
+ Object.defineProperty(Vue.prototype, '$data', dataDef);
3974
+ Object.defineProperty(Vue.prototype, '$props', propsDef);
3975
+
3976
+ Vue.prototype.$set = set;
3977
+ Vue.prototype.$delete = del;
3978
+
3979
+ Vue.prototype.$watch = function (
3980
+ expOrFn,
3981
+ cb,
3982
+ options
3983
+ ) {
3984
+ var vm = this;
3985
+ if (isPlainObject(cb)) {
3986
+ return createWatcher(vm, expOrFn, cb, options)
3987
+ }
3988
+ options = options || {};
3989
+ options.user = true;
3990
+ var watcher = new Watcher(vm, expOrFn, cb, options);
3991
+ if (options.immediate) {
3992
+ cb.call(vm, watcher.value);
3993
+ }
3994
+ return function unwatchFn () {
3995
+ watcher.teardown();
3996
+ }
3997
+ };
3998
+ }
3999
+
4000
+ /* */
4001
+
4002
+ function initProvide (vm) {
4003
+ var provide = vm.$options.provide;
4004
+ if (provide) {
4005
+ vm._provided = typeof provide === 'function'
4006
+ ? provide.call(vm)
4007
+ : provide;
4008
+ }
4009
+ }
4010
+
4011
+ function initInjections (vm) {
4012
+ var result = resolveInject(vm.$options.inject, vm);
4013
+ if (result) {
4014
+ toggleObserving(false);
4015
+ Object.keys(result).forEach(function (key) {
4016
+ /* istanbul ignore else */
4017
+ if (process.env.NODE_ENV !== 'production') {
4018
+ defineReactive(vm, key, result[key], function () {
4019
+ warn(
4020
+ "Avoid mutating an injected value directly since the changes will be " +
4021
+ "overwritten whenever the provided component re-renders. " +
4022
+ "injection being mutated: \"" + key + "\"",
4023
+ vm
4024
+ );
4025
+ });
4026
+ } else {
4027
+ defineReactive(vm, key, result[key]);
4028
+ }
4029
+ });
4030
+ toggleObserving(true);
4031
+ }
4032
+ }
4033
+
4034
+ function resolveInject (inject, vm) {
4035
+ if (inject) {
4036
+ // inject is :any because flow is not smart enough to figure out cached
4037
+ var result = Object.create(null);
4038
+ var keys = hasSymbol
4039
+ ? Reflect.ownKeys(inject).filter(function (key) {
4040
+ /* istanbul ignore next */
4041
+ return Object.getOwnPropertyDescriptor(inject, key).enumerable
4042
+ })
4043
+ : Object.keys(inject);
4044
+
4045
+ for (var i = 0; i < keys.length; i++) {
4046
+ var key = keys[i];
4047
+ var provideKey = inject[key].from;
4048
+ var source = vm;
4049
+ while (source) {
4050
+ if (source._provided && hasOwn(source._provided, provideKey)) {
4051
+ result[key] = source._provided[provideKey];
4052
+ break
4053
+ }
4054
+ source = source.$parent;
4055
+ }
4056
+ if (!source) {
4057
+ if ('default' in inject[key]) {
4058
+ var provideDefault = inject[key].default;
4059
+ result[key] = typeof provideDefault === 'function'
4060
+ ? provideDefault.call(vm)
4061
+ : provideDefault;
4062
+ } else if (process.env.NODE_ENV !== 'production') {
4063
+ warn(("Injection \"" + key + "\" not found"), vm);
4064
+ }
4065
+ }
4066
+ }
4067
+ return result
4068
+ }
4069
+ }
4070
+
4071
+ /* */
4072
+
4073
+ /**
4074
+ * Runtime helper for rendering v-for lists.
4075
+ */
4076
+ function renderList (
4077
+ val,
4078
+ render
4079
+ ) {
4080
+ var ret, i, l, keys, key;
4081
+ if (Array.isArray(val) || typeof val === 'string') {
4082
+ ret = new Array(val.length);
4083
+ for (i = 0, l = val.length; i < l; i++) {
4084
+ ret[i] = render(val[i], i);
4085
+ }
4086
+ } else if (typeof val === 'number') {
4087
+ ret = new Array(val);
4088
+ for (i = 0; i < val; i++) {
4089
+ ret[i] = render(i + 1, i);
4090
+ }
4091
+ } else if (isObject(val)) {
4092
+ keys = Object.keys(val);
4093
+ ret = new Array(keys.length);
4094
+ for (i = 0, l = keys.length; i < l; i++) {
4095
+ key = keys[i];
4096
+ ret[i] = render(val[key], key, i);
4097
+ }
4098
+ }
4099
+ if (isDef(ret)) {
4100
+ (ret)._isVList = true;
4101
+ }
4102
+ return ret
4103
+ }
4104
+
4105
+ /* */
4106
+
4107
+ /**
4108
+ * Runtime helper for rendering <slot>
4109
+ */
4110
+ function renderSlot (
4111
+ name,
4112
+ fallback,
4113
+ props,
4114
+ bindObject
4115
+ ) {
4116
+ var scopedSlotFn = this.$scopedSlots[name];
4117
+ var nodes;
4118
+ if (scopedSlotFn) { // scoped slot
4119
+ props = props || {};
4120
+ if (bindObject) {
4121
+ if (process.env.NODE_ENV !== 'production' && !isObject(bindObject)) {
4122
+ warn(
4123
+ 'slot v-bind without argument expects an Object',
4124
+ this
4125
+ );
4126
+ }
4127
+ props = extend(extend({}, bindObject), props);
4128
+ }
4129
+ nodes = scopedSlotFn(props) || fallback;
4130
+ } else {
4131
+ var slotNodes = this.$slots[name];
4132
+ // warn duplicate slot usage
4133
+ if (slotNodes) {
4134
+ if (process.env.NODE_ENV !== 'production' && slotNodes._rendered) {
4135
+ warn(
4136
+ "Duplicate presence of slot \"" + name + "\" found in the same render tree " +
4137
+ "- this will likely cause render errors.",
4138
+ this
4139
+ );
4140
+ }
4141
+ slotNodes._rendered = true;
4142
+ }
4143
+ nodes = slotNodes || fallback;
4144
+ }
4145
+
4146
+ var target = props && props.slot;
4147
+ if (target) {
4148
+ return this.$createElement('template', { slot: target }, nodes)
4149
+ } else {
4150
+ return nodes
4151
+ }
4152
+ }
4153
+
4154
+ /* */
4155
+
4156
+ /**
4157
+ * Runtime helper for resolving filters
4158
+ */
4159
+ function resolveFilter (id) {
4160
+ return resolveAsset(this.$options, 'filters', id, true) || identity
4161
+ }
4162
+
4163
+ /* */
4164
+
4165
+ function isKeyNotMatch (expect, actual) {
4166
+ if (Array.isArray(expect)) {
4167
+ return expect.indexOf(actual) === -1
4168
+ } else {
4169
+ return expect !== actual
4170
+ }
4171
+ }
4172
+
4173
+ /**
4174
+ * Runtime helper for checking keyCodes from config.
4175
+ * exposed as Vue.prototype._k
4176
+ * passing in eventKeyName as last argument separately for backwards compat
4177
+ */
4178
+ function checkKeyCodes (
4179
+ eventKeyCode,
4180
+ key,
4181
+ builtInKeyCode,
4182
+ eventKeyName,
4183
+ builtInKeyName
4184
+ ) {
4185
+ var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;
4186
+ if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {
4187
+ return isKeyNotMatch(builtInKeyName, eventKeyName)
4188
+ } else if (mappedKeyCode) {
4189
+ return isKeyNotMatch(mappedKeyCode, eventKeyCode)
4190
+ } else if (eventKeyName) {
4191
+ return hyphenate(eventKeyName) !== key
4192
+ }
4193
+ }
4194
+
4195
+ /* */
4196
+
4197
+ /**
4198
+ * Runtime helper for merging v-bind="object" into a VNode's data.
4199
+ */
4200
+ function bindObjectProps (
4201
+ data,
4202
+ tag,
4203
+ value,
4204
+ asProp,
4205
+ isSync
4206
+ ) {
4207
+ if (value) {
4208
+ if (!isObject(value)) {
4209
+ process.env.NODE_ENV !== 'production' && warn(
4210
+ 'v-bind without argument expects an Object or Array value',
4211
+ this
4212
+ );
4213
+ } else {
4214
+ if (Array.isArray(value)) {
4215
+ value = toObject(value);
4216
+ }
4217
+ var hash;
4218
+ var loop = function ( key ) {
4219
+ if (
4220
+ key === 'class' ||
4221
+ key === 'style' ||
4222
+ isReservedAttribute(key)
4223
+ ) {
4224
+ hash = data;
4225
+ } else {
4226
+ var type = data.attrs && data.attrs.type;
4227
+ hash = asProp || config.mustUseProp(tag, type, key)
4228
+ ? data.domProps || (data.domProps = {})
4229
+ : data.attrs || (data.attrs = {});
4230
+ }
4231
+ if (!(key in hash)) {
4232
+ hash[key] = value[key];
4233
+
4234
+ if (isSync) {
4235
+ var on = data.on || (data.on = {});
4236
+ on[("update:" + key)] = function ($event) {
4237
+ value[key] = $event;
4238
+ };
4239
+ }
4240
+ }
4241
+ };
4242
+
4243
+ for (var key in value) loop( key );
4244
+ }
4245
+ }
4246
+ return data
4247
+ }
4248
+
4249
+ /* */
4250
+
4251
+ /**
4252
+ * Runtime helper for rendering static trees.
4253
+ */
4254
+ function renderStatic (
4255
+ index,
4256
+ isInFor
4257
+ ) {
4258
+ var cached = this._staticTrees || (this._staticTrees = []);
4259
+ var tree = cached[index];
4260
+ // if has already-rendered static tree and not inside v-for,
4261
+ // we can reuse the same tree.
4262
+ if (tree && !isInFor) {
4263
+ return tree
4264
+ }
4265
+ // otherwise, render a fresh tree.
4266
+ tree = cached[index] = this.$options.staticRenderFns[index].call(
4267
+ this._renderProxy,
4268
+ null,
4269
+ this // for render fns generated for functional component templates
4270
+ );
4271
+ markStatic(tree, ("__static__" + index), false);
4272
+ return tree
4273
+ }
4274
+
4275
+ /**
4276
+ * Runtime helper for v-once.
4277
+ * Effectively it means marking the node as static with a unique key.
4278
+ */
4279
+ function markOnce (
4280
+ tree,
4281
+ index,
4282
+ key
4283
+ ) {
4284
+ markStatic(tree, ("__once__" + index + (key ? ("_" + key) : "")), true);
4285
+ return tree
4286
+ }
4287
+
4288
+ function markStatic (
4289
+ tree,
4290
+ key,
4291
+ isOnce
4292
+ ) {
4293
+ if (Array.isArray(tree)) {
4294
+ for (var i = 0; i < tree.length; i++) {
4295
+ if (tree[i] && typeof tree[i] !== 'string') {
4296
+ markStaticNode(tree[i], (key + "_" + i), isOnce);
4297
+ }
4298
+ }
4299
+ } else {
4300
+ markStaticNode(tree, key, isOnce);
4301
+ }
4302
+ }
4303
+
4304
+ function markStaticNode (node, key, isOnce) {
4305
+ node.isStatic = true;
4306
+ node.key = key;
4307
+ node.isOnce = isOnce;
4308
+ }
4309
+
4310
+ /* */
4311
+
4312
+ function bindObjectListeners (data, value) {
4313
+ if (value) {
4314
+ if (!isPlainObject(value)) {
4315
+ process.env.NODE_ENV !== 'production' && warn(
4316
+ 'v-on without argument expects an Object value',
4317
+ this
4318
+ );
4319
+ } else {
4320
+ var on = data.on = data.on ? extend({}, data.on) : {};
4321
+ for (var key in value) {
4322
+ var existing = on[key];
4323
+ var ours = value[key];
4324
+ on[key] = existing ? [].concat(existing, ours) : ours;
4325
+ }
4326
+ }
4327
+ }
4328
+ return data
4329
+ }
4330
+
4331
+ /* */
4332
+
4333
+ function installRenderHelpers (target) {
4334
+ target._o = markOnce;
4335
+ target._n = toNumber;
4336
+ target._s = toString;
4337
+ target._l = renderList;
4338
+ target._t = renderSlot;
4339
+ target._q = looseEqual;
4340
+ target._i = looseIndexOf;
4341
+ target._m = renderStatic;
4342
+ target._f = resolveFilter;
4343
+ target._k = checkKeyCodes;
4344
+ target._b = bindObjectProps;
4345
+ target._v = createTextVNode;
4346
+ target._e = createEmptyVNode;
4347
+ target._u = resolveScopedSlots;
4348
+ target._g = bindObjectListeners;
4349
+ }
4350
+
4351
+ /* */
4352
+
4353
+ function FunctionalRenderContext (
4354
+ data,
4355
+ props,
4356
+ children,
4357
+ parent,
4358
+ Ctor
4359
+ ) {
4360
+ var options = Ctor.options;
4361
+ // ensure the createElement function in functional components
4362
+ // gets a unique context - this is necessary for correct named slot check
4363
+ var contextVm;
4364
+ if (hasOwn(parent, '_uid')) {
4365
+ contextVm = Object.create(parent);
4366
+ // $flow-disable-line
4367
+ contextVm._original = parent;
4368
+ } else {
4369
+ // the context vm passed in is a functional context as well.
4370
+ // in this case we want to make sure we are able to get a hold to the
4371
+ // real context instance.
4372
+ contextVm = parent;
4373
+ // $flow-disable-line
4374
+ parent = parent._original;
4375
+ }
4376
+ var isCompiled = isTrue(options._compiled);
4377
+ var needNormalization = !isCompiled;
4378
+
4379
+ this.data = data;
4380
+ this.props = props;
4381
+ this.children = children;
4382
+ this.parent = parent;
4383
+ this.listeners = data.on || emptyObject;
4384
+ this.injections = resolveInject(options.inject, parent);
4385
+ this.slots = function () { return resolveSlots(children, parent); };
4386
+
4387
+ // support for compiled functional template
4388
+ if (isCompiled) {
4389
+ // exposing $options for renderStatic()
4390
+ this.$options = options;
4391
+ // pre-resolve slots for renderSlot()
4392
+ this.$slots = this.slots();
4393
+ this.$scopedSlots = data.scopedSlots || emptyObject;
4394
+ }
4395
+
4396
+ if (options._scopeId) {
4397
+ this._c = function (a, b, c, d) {
4398
+ var vnode = createElement(contextVm, a, b, c, d, needNormalization);
4399
+ if (vnode && !Array.isArray(vnode)) {
4400
+ vnode.fnScopeId = options._scopeId;
4401
+ vnode.fnContext = parent;
4402
+ }
4403
+ return vnode
4404
+ };
4405
+ } else {
4406
+ this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };
4407
+ }
4408
+ }
4409
+
4410
+ installRenderHelpers(FunctionalRenderContext.prototype);
4411
+
4412
+ function createFunctionalComponent (
4413
+ Ctor,
4414
+ propsData,
4415
+ data,
4416
+ contextVm,
4417
+ children
4418
+ ) {
4419
+ var options = Ctor.options;
4420
+ var props = {};
4421
+ var propOptions = options.props;
4422
+ if (isDef(propOptions)) {
4423
+ for (var key in propOptions) {
4424
+ props[key] = validateProp(key, propOptions, propsData || emptyObject);
4425
+ }
4426
+ } else {
4427
+ if (isDef(data.attrs)) { mergeProps(props, data.attrs); }
4428
+ if (isDef(data.props)) { mergeProps(props, data.props); }
4429
+ }
4430
+
4431
+ var renderContext = new FunctionalRenderContext(
4432
+ data,
4433
+ props,
4434
+ children,
4435
+ contextVm,
4436
+ Ctor
4437
+ );
4438
+
4439
+ var vnode = options.render.call(null, renderContext._c, renderContext);
4440
+
4441
+ if (vnode instanceof VNode) {
4442
+ return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options)
4443
+ } else if (Array.isArray(vnode)) {
4444
+ var vnodes = normalizeChildren(vnode) || [];
4445
+ var res = new Array(vnodes.length);
4446
+ for (var i = 0; i < vnodes.length; i++) {
4447
+ res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options);
4448
+ }
4449
+ return res
4450
+ }
4451
+ }
4452
+
4453
+ function cloneAndMarkFunctionalResult (vnode, data, contextVm, options) {
4454
+ // #7817 clone node before setting fnContext, otherwise if the node is reused
4455
+ // (e.g. it was from a cached normal slot) the fnContext causes named slots
4456
+ // that should not be matched to match.
4457
+ var clone = cloneVNode(vnode);
4458
+ clone.fnContext = contextVm;
4459
+ clone.fnOptions = options;
4460
+ if (data.slot) {
4461
+ (clone.data || (clone.data = {})).slot = data.slot;
4462
+ }
4463
+ return clone
4464
+ }
4465
+
4466
+ function mergeProps (to, from) {
4467
+ for (var key in from) {
4468
+ to[camelize(key)] = from[key];
4469
+ }
4470
+ }
4471
+
4472
+ /* */
4473
+
4474
+
4475
+
4476
+
4477
+ // Register the component hook to weex native render engine.
4478
+ // The hook will be triggered by native, not javascript.
4479
+
4480
+
4481
+ // Updates the state of the component to weex native render engine.
4482
+
4483
+ /* */
4484
+
4485
+ // https://github.com/Hanks10100/weex-native-directive/tree/master/component
4486
+
4487
+ // listening on native callback
4488
+
4489
+ /* */
4490
+
4491
+ /* */
4492
+
4493
+ // inline hooks to be invoked on component VNodes during patch
4494
+ var componentVNodeHooks = {
4495
+ init: function init (
4496
+ vnode,
4497
+ hydrating,
4498
+ parentElm,
4499
+ refElm
4500
+ ) {
4501
+ if (
4502
+ vnode.componentInstance &&
4503
+ !vnode.componentInstance._isDestroyed &&
4504
+ vnode.data.keepAlive
4505
+ ) {
4506
+ // kept-alive components, treat as a patch
4507
+ var mountedNode = vnode; // work around flow
4508
+ componentVNodeHooks.prepatch(mountedNode, mountedNode);
4509
+ } else {
4510
+ var child = vnode.componentInstance = createComponentInstanceForVnode(
4511
+ vnode,
4512
+ activeInstance,
4513
+ parentElm,
4514
+ refElm
4515
+ );
4516
+ child.$mount(hydrating ? vnode.elm : undefined, hydrating);
4517
+ }
4518
+ },
4519
+
4520
+ prepatch: function prepatch (oldVnode, vnode) {
4521
+ var options = vnode.componentOptions;
4522
+ var child = vnode.componentInstance = oldVnode.componentInstance;
4523
+ updateChildComponent(
4524
+ child,
4525
+ options.propsData, // updated props
4526
+ options.listeners, // updated listeners
4527
+ vnode, // new parent vnode
4528
+ options.children // new children
4529
+ );
4530
+ },
4531
+
4532
+ insert: function insert (vnode) {
4533
+ var context = vnode.context;
4534
+ var componentInstance = vnode.componentInstance;
4535
+ if (!componentInstance._isMounted) {
4536
+ componentInstance._isMounted = true;
4537
+ callHook(componentInstance, 'mounted');
4538
+ }
4539
+ if (vnode.data.keepAlive) {
4540
+ if (context._isMounted) {
4541
+ // vue-router#1212
4542
+ // During updates, a kept-alive component's child components may
4543
+ // change, so directly walking the tree here may call activated hooks
4544
+ // on incorrect children. Instead we push them into a queue which will
4545
+ // be processed after the whole patch process ended.
4546
+ queueActivatedComponent(componentInstance);
4547
+ } else {
4548
+ activateChildComponent(componentInstance, true /* direct */);
4549
+ }
4550
+ }
4551
+ },
4552
+
4553
+ destroy: function destroy (vnode) {
4554
+ var componentInstance = vnode.componentInstance;
4555
+ if (!componentInstance._isDestroyed) {
4556
+ if (!vnode.data.keepAlive) {
4557
+ componentInstance.$destroy();
4558
+ } else {
4559
+ deactivateChildComponent(componentInstance, true /* direct */);
4560
+ }
4561
+ }
4562
+ }
4563
+ };
4564
+
4565
+ var hooksToMerge = Object.keys(componentVNodeHooks);
4566
+
4567
+ function createComponent (
4568
+ Ctor,
4569
+ data,
4570
+ context,
4571
+ children,
4572
+ tag
4573
+ ) {
4574
+ if (isUndef(Ctor)) {
4575
+ return
4576
+ }
4577
+
4578
+ var baseCtor = context.$options._base;
4579
+
4580
+ // plain options object: turn it into a constructor
4581
+ if (isObject(Ctor)) {
4582
+ Ctor = baseCtor.extend(Ctor);
4583
+ }
4584
+
4585
+ // if at this stage it's not a constructor or an async component factory,
4586
+ // reject.
4587
+ if (typeof Ctor !== 'function') {
4588
+ if (process.env.NODE_ENV !== 'production') {
4589
+ warn(("Invalid Component definition: " + (String(Ctor))), context);
4590
+ }
4591
+ return
4592
+ }
4593
+
4594
+ // async component
4595
+ var asyncFactory;
4596
+ if (isUndef(Ctor.cid)) {
4597
+ asyncFactory = Ctor;
4598
+ Ctor = resolveAsyncComponent(asyncFactory, baseCtor, context);
4599
+ if (Ctor === undefined) {
4600
+ // return a placeholder node for async component, which is rendered
4601
+ // as a comment node but preserves all the raw information for the node.
4602
+ // the information will be used for async server-rendering and hydration.
4603
+ return createAsyncPlaceholder(
4604
+ asyncFactory,
4605
+ data,
4606
+ context,
4607
+ children,
4608
+ tag
4609
+ )
4610
+ }
4611
+ }
4612
+
4613
+ data = data || {};
4614
+
4615
+ // resolve constructor options in case global mixins are applied after
4616
+ // component constructor creation
4617
+ resolveConstructorOptions(Ctor);
4618
+
4619
+ // transform component v-model data into props & events
4620
+ if (isDef(data.model)) {
4621
+ transformModel(Ctor.options, data);
4622
+ }
4623
+
4624
+ // extract props
4625
+ var propsData = extractPropsFromVNodeData(data, Ctor, tag);
4626
+
4627
+ // functional component
4628
+ if (isTrue(Ctor.options.functional)) {
4629
+ return createFunctionalComponent(Ctor, propsData, data, context, children)
4630
+ }
4631
+
4632
+ // extract listeners, since these needs to be treated as
4633
+ // child component listeners instead of DOM listeners
4634
+ var listeners = data.on;
4635
+ // replace with listeners with .native modifier
4636
+ // so it gets processed during parent component patch.
4637
+ data.on = data.nativeOn;
4638
+
4639
+ if (isTrue(Ctor.options.abstract)) {
4640
+ // abstract components do not keep anything
4641
+ // other than props & listeners & slot
4642
+
4643
+ // work around flow
4644
+ var slot = data.slot;
4645
+ data = {};
4646
+ if (slot) {
4647
+ data.slot = slot;
4648
+ }
4649
+ }
4650
+
4651
+ // install component management hooks onto the placeholder node
4652
+ installComponentHooks(data);
4653
+
4654
+ // return a placeholder vnode
4655
+ var name = Ctor.options.name || tag;
4656
+ var vnode = new VNode(
4657
+ ("vue-component-" + (Ctor.cid) + (name ? ("-" + name) : '')),
4658
+ data, undefined, undefined, undefined, context,
4659
+ { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },
4660
+ asyncFactory
4661
+ );
4662
+
4663
+ // Weex specific: invoke recycle-list optimized @render function for
4664
+ // extracting cell-slot template.
4665
+ // https://github.com/Hanks10100/weex-native-directive/tree/master/component
4666
+ /* istanbul ignore if */
4667
+ return vnode
4668
+ }
4669
+
4670
+ function createComponentInstanceForVnode (
4671
+ vnode, // we know it's MountedComponentVNode but flow doesn't
4672
+ parent, // activeInstance in lifecycle state
4673
+ parentElm,
4674
+ refElm
4675
+ ) {
4676
+ var options = {
4677
+ _isComponent: true,
4678
+ parent: parent,
4679
+ _parentVnode: vnode,
4680
+ _parentElm: parentElm || null,
4681
+ _refElm: refElm || null
4682
+ };
4683
+ // check inline-template render functions
4684
+ var inlineTemplate = vnode.data.inlineTemplate;
4685
+ if (isDef(inlineTemplate)) {
4686
+ options.render = inlineTemplate.render;
4687
+ options.staticRenderFns = inlineTemplate.staticRenderFns;
4688
+ }
4689
+ return new vnode.componentOptions.Ctor(options)
4690
+ }
4691
+
4692
+ function installComponentHooks (data) {
4693
+ var hooks = data.hook || (data.hook = {});
4694
+ for (var i = 0; i < hooksToMerge.length; i++) {
4695
+ var key = hooksToMerge[i];
4696
+ hooks[key] = componentVNodeHooks[key];
4697
+ }
4698
+ }
4699
+
4700
+ // transform component v-model info (value and callback) into
4701
+ // prop and event handler respectively.
4702
+ function transformModel (options, data) {
4703
+ var prop = (options.model && options.model.prop) || 'value';
4704
+ var event = (options.model && options.model.event) || 'input';(data.props || (data.props = {}))[prop] = data.model.value;
4705
+ var on = data.on || (data.on = {});
4706
+ if (isDef(on[event])) {
4707
+ on[event] = [data.model.callback].concat(on[event]);
4708
+ } else {
4709
+ on[event] = data.model.callback;
4710
+ }
4711
+ }
4712
+
4713
+ /* */
4714
+
4715
+ var SIMPLE_NORMALIZE = 1;
4716
+ var ALWAYS_NORMALIZE = 2;
4717
+
4718
+ // wrapper function for providing a more flexible interface
4719
+ // without getting yelled at by flow
4720
+ function createElement (
4721
+ context,
4722
+ tag,
4723
+ data,
4724
+ children,
4725
+ normalizationType,
4726
+ alwaysNormalize
4727
+ ) {
4728
+ if (Array.isArray(data) || isPrimitive(data)) {
4729
+ normalizationType = children;
4730
+ children = data;
4731
+ data = undefined;
4732
+ }
4733
+ if (isTrue(alwaysNormalize)) {
4734
+ normalizationType = ALWAYS_NORMALIZE;
4735
+ }
4736
+ return _createElement(context, tag, data, children, normalizationType)
4737
+ }
4738
+
4739
+ function _createElement (
4740
+ context,
4741
+ tag,
4742
+ data,
4743
+ children,
4744
+ normalizationType
4745
+ ) {
4746
+ if (isDef(data) && isDef((data).__ob__)) {
4747
+ process.env.NODE_ENV !== 'production' && warn(
4748
+ "Avoid using observed data object as vnode data: " + (JSON.stringify(data)) + "\n" +
4749
+ 'Always create fresh vnode data objects in each render!',
4750
+ context
4751
+ );
4752
+ return createEmptyVNode()
4753
+ }
4754
+ // object syntax in v-bind
4755
+ if (isDef(data) && isDef(data.is)) {
4756
+ tag = data.is;
4757
+ }
4758
+ if (!tag) {
4759
+ // in case of component :is set to falsy value
4760
+ return createEmptyVNode()
4761
+ }
4762
+ // warn against non-primitive key
4763
+ if (process.env.NODE_ENV !== 'production' &&
4764
+ isDef(data) && isDef(data.key) && !isPrimitive(data.key)
4765
+ ) {
4766
+ {
4767
+ warn(
4768
+ 'Avoid using non-primitive value as key, ' +
4769
+ 'use string/number value instead.',
4770
+ context
4771
+ );
4772
+ }
4773
+ }
4774
+ // support single function children as default scoped slot
4775
+ if (Array.isArray(children) &&
4776
+ typeof children[0] === 'function'
4777
+ ) {
4778
+ data = data || {};
4779
+ data.scopedSlots = { default: children[0] };
4780
+ children.length = 0;
4781
+ }
4782
+ if (normalizationType === ALWAYS_NORMALIZE) {
4783
+ children = normalizeChildren(children);
4784
+ } else if (normalizationType === SIMPLE_NORMALIZE) {
4785
+ children = simpleNormalizeChildren(children);
4786
+ }
4787
+ var vnode, ns;
4788
+ if (typeof tag === 'string') {
4789
+ var Ctor;
4790
+ ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);
4791
+ if (config.isReservedTag(tag)) {
4792
+ // platform built-in elements
4793
+ vnode = new VNode(
4794
+ config.parsePlatformTagName(tag), data, children,
4795
+ undefined, undefined, context
4796
+ );
4797
+ } else if (isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {
4798
+ // component
4799
+ vnode = createComponent(Ctor, data, context, children, tag);
4800
+ } else {
4801
+ // unknown or unlisted namespaced elements
4802
+ // check at runtime because it may get assigned a namespace when its
4803
+ // parent normalizes children
4804
+ vnode = new VNode(
4805
+ tag, data, children,
4806
+ undefined, undefined, context
4807
+ );
4808
+ }
4809
+ } else {
4810
+ // direct component options / constructor
4811
+ vnode = createComponent(tag, data, context, children);
4812
+ }
4813
+ if (Array.isArray(vnode)) {
4814
+ return vnode
4815
+ } else if (isDef(vnode)) {
4816
+ if (isDef(ns)) { applyNS(vnode, ns); }
4817
+ if (isDef(data)) { registerDeepBindings(data); }
4818
+ return vnode
4819
+ } else {
4820
+ return createEmptyVNode()
4821
+ }
4822
+ }
4823
+
4824
+ function applyNS (vnode, ns, force) {
4825
+ vnode.ns = ns;
4826
+ if (vnode.tag === 'foreignObject') {
4827
+ // use default namespace inside foreignObject
4828
+ ns = undefined;
4829
+ force = true;
4830
+ }
4831
+ if (isDef(vnode.children)) {
4832
+ for (var i = 0, l = vnode.children.length; i < l; i++) {
4833
+ var child = vnode.children[i];
4834
+ if (isDef(child.tag) && (
4835
+ isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {
4836
+ applyNS(child, ns, force);
4837
+ }
4838
+ }
4839
+ }
4840
+ }
4841
+
4842
+ // ref #5318
4843
+ // necessary to ensure parent re-render when deep bindings like :style and
4844
+ // :class are used on slot nodes
4845
+ function registerDeepBindings (data) {
4846
+ if (isObject(data.style)) {
4847
+ traverse(data.style);
4848
+ }
4849
+ if (isObject(data.class)) {
4850
+ traverse(data.class);
4851
+ }
4852
+ }
4853
+
4854
+ /* */
4855
+
4856
+ function initRender (vm) {
4857
+ vm._vnode = null; // the root of the child tree
4858
+ vm._staticTrees = null; // v-once cached trees
4859
+ var options = vm.$options;
4860
+ var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree
4861
+ var renderContext = parentVnode && parentVnode.context;
4862
+ vm.$slots = resolveSlots(options._renderChildren, renderContext);
4863
+ vm.$scopedSlots = emptyObject;
4864
+ // bind the createElement fn to this instance
4865
+ // so that we get proper render context inside it.
4866
+ // args order: tag, data, children, normalizationType, alwaysNormalize
4867
+ // internal version is used by render functions compiled from templates
4868
+ vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };
4869
+ // normalization is always applied for the public version, used in
4870
+ // user-written render functions.
4871
+ vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };
4872
+
4873
+ // $attrs & $listeners are exposed for easier HOC creation.
4874
+ // they need to be reactive so that HOCs using them are always updated
4875
+ var parentData = parentVnode && parentVnode.data;
4876
+
4877
+ /* istanbul ignore else */
4878
+ if (process.env.NODE_ENV !== 'production') {
4879
+ defineReactive(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {
4880
+ !isUpdatingChildComponent && warn("$attrs is readonly.", vm);
4881
+ }, true);
4882
+ defineReactive(vm, '$listeners', options._parentListeners || emptyObject, function () {
4883
+ !isUpdatingChildComponent && warn("$listeners is readonly.", vm);
4884
+ }, true);
4885
+ } else {
4886
+ defineReactive(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);
4887
+ defineReactive(vm, '$listeners', options._parentListeners || emptyObject, null, true);
4888
+ }
4889
+ }
4890
+
4891
+ function renderMixin (Vue) {
4892
+ // install runtime convenience helpers
4893
+ installRenderHelpers(Vue.prototype);
4894
+
4895
+ Vue.prototype.$nextTick = function (fn) {
4896
+ return nextTick(fn, this)
4897
+ };
4898
+
4899
+ Vue.prototype._render = function () {
4900
+ var vm = this;
4901
+ var ref = vm.$options;
4902
+ var render = ref.render;
4903
+ var _parentVnode = ref._parentVnode;
4904
+
4905
+ // reset _rendered flag on slots for duplicate slot check
4906
+ if (process.env.NODE_ENV !== 'production') {
4907
+ for (var key in vm.$slots) {
4908
+ // $flow-disable-line
4909
+ vm.$slots[key]._rendered = false;
4910
+ }
4911
+ }
4912
+
4913
+ if (_parentVnode) {
4914
+ vm.$scopedSlots = _parentVnode.data.scopedSlots || emptyObject;
4915
+ }
4916
+
4917
+ // set parent vnode. this allows render functions to have access
4918
+ // to the data on the placeholder node.
4919
+ vm.$vnode = _parentVnode;
4920
+ // render self
4921
+ var vnode;
4922
+ try {
4923
+ vnode = render.call(vm._renderProxy, vm.$createElement);
4924
+ } catch (e) {
4925
+ handleError(e, vm, "render");
4926
+ // return error render result,
4927
+ // or previous vnode to prevent render error causing blank component
4928
+ /* istanbul ignore else */
4929
+ if (process.env.NODE_ENV !== 'production') {
4930
+ if (vm.$options.renderError) {
4931
+ try {
4932
+ vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);
4933
+ } catch (e) {
4934
+ handleError(e, vm, "renderError");
4935
+ vnode = vm._vnode;
4936
+ }
4937
+ } else {
4938
+ vnode = vm._vnode;
4939
+ }
4940
+ } else {
4941
+ vnode = vm._vnode;
4942
+ }
4943
+ }
4944
+ // return empty vnode in case the render function errored out
4945
+ if (!(vnode instanceof VNode)) {
4946
+ if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {
4947
+ warn(
4948
+ 'Multiple root nodes returned from render function. Render function ' +
4949
+ 'should return a single root node.',
4950
+ vm
4951
+ );
4952
+ }
4953
+ vnode = createEmptyVNode();
4954
+ }
4955
+ // set parent
4956
+ vnode.parent = _parentVnode;
4957
+ return vnode
4958
+ };
4959
+ }
4960
+
4961
+ /* */
4962
+
4963
+ var uid$3 = 0;
4964
+
4965
+ function initMixin (Vue) {
4966
+ Vue.prototype._init = function (options) {
4967
+ var vm = this;
4968
+ // a uid
4969
+ vm._uid = uid$3++;
4970
+
4971
+ var startTag, endTag;
4972
+ /* istanbul ignore if */
4973
+ if (process.env.NODE_ENV !== 'production' && config.performance && mark) {
4974
+ startTag = "vue-perf-start:" + (vm._uid);
4975
+ endTag = "vue-perf-end:" + (vm._uid);
4976
+ mark(startTag);
4977
+ }
4978
+
4979
+ // a flag to avoid this being observed
4980
+ vm._isVue = true;
4981
+ // merge options
4982
+ if (options && options._isComponent) {
4983
+ // optimize internal component instantiation
4984
+ // since dynamic options merging is pretty slow, and none of the
4985
+ // internal component options needs special treatment.
4986
+ initInternalComponent(vm, options);
4987
+ } else {
4988
+ vm.$options = mergeOptions(
4989
+ resolveConstructorOptions(vm.constructor),
4990
+ options || {},
4991
+ vm
4992
+ );
4993
+ }
4994
+ /* istanbul ignore else */
4995
+ if (process.env.NODE_ENV !== 'production') {
4996
+ initProxy(vm);
4997
+ } else {
4998
+ vm._renderProxy = vm;
4999
+ }
5000
+ // expose real self
5001
+ vm._self = vm;
5002
+ initLifecycle(vm);
5003
+ initEvents(vm);
5004
+ initRender(vm);
5005
+ callHook(vm, 'beforeCreate');
5006
+ initInjections(vm); // resolve injections before data/props
5007
+ initState(vm);
5008
+ initProvide(vm); // resolve provide after data/props
5009
+ callHook(vm, 'created');
5010
+
5011
+ /* istanbul ignore if */
5012
+ if (process.env.NODE_ENV !== 'production' && config.performance && mark) {
5013
+ vm._name = formatComponentName(vm, false);
5014
+ mark(endTag);
5015
+ measure(("vue " + (vm._name) + " init"), startTag, endTag);
5016
+ }
5017
+
5018
+ if (vm.$options.el) {
5019
+ vm.$mount(vm.$options.el);
5020
+ }
5021
+ };
5022
+ }
5023
+
5024
+ function initInternalComponent (vm, options) {
5025
+ var opts = vm.$options = Object.create(vm.constructor.options);
5026
+ // doing this because it's faster than dynamic enumeration.
5027
+ var parentVnode = options._parentVnode;
5028
+ opts.parent = options.parent;
5029
+ opts._parentVnode = parentVnode;
5030
+ opts._parentElm = options._parentElm;
5031
+ opts._refElm = options._refElm;
5032
+
5033
+ var vnodeComponentOptions = parentVnode.componentOptions;
5034
+ opts.propsData = vnodeComponentOptions.propsData;
5035
+ opts._parentListeners = vnodeComponentOptions.listeners;
5036
+ opts._renderChildren = vnodeComponentOptions.children;
5037
+ opts._componentTag = vnodeComponentOptions.tag;
5038
+
5039
+ if (options.render) {
5040
+ opts.render = options.render;
5041
+ opts.staticRenderFns = options.staticRenderFns;
5042
+ }
5043
+ }
5044
+
5045
+ function resolveConstructorOptions (Ctor) {
5046
+ var options = Ctor.options;
5047
+ if (Ctor.super) {
5048
+ var superOptions = resolveConstructorOptions(Ctor.super);
5049
+ var cachedSuperOptions = Ctor.superOptions;
5050
+ if (superOptions !== cachedSuperOptions) {
5051
+ // super option changed,
5052
+ // need to resolve new options.
5053
+ Ctor.superOptions = superOptions;
5054
+ // check if there are any late-modified/attached options (#4976)
5055
+ var modifiedOptions = resolveModifiedOptions(Ctor);
5056
+ // update base extend options
5057
+ if (modifiedOptions) {
5058
+ extend(Ctor.extendOptions, modifiedOptions);
5059
+ }
5060
+ options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);
5061
+ if (options.name) {
5062
+ options.components[options.name] = Ctor;
5063
+ }
5064
+ }
5065
+ }
5066
+ return options
5067
+ }
5068
+
5069
+ function resolveModifiedOptions (Ctor) {
5070
+ var modified;
5071
+ var latest = Ctor.options;
5072
+ var extended = Ctor.extendOptions;
5073
+ var sealed = Ctor.sealedOptions;
5074
+ for (var key in latest) {
5075
+ if (latest[key] !== sealed[key]) {
5076
+ if (!modified) { modified = {}; }
5077
+ modified[key] = dedupe(latest[key], extended[key], sealed[key]);
5078
+ }
5079
+ }
5080
+ return modified
5081
+ }
5082
+
5083
+ function dedupe (latest, extended, sealed) {
5084
+ // compare latest and sealed to ensure lifecycle hooks won't be duplicated
5085
+ // between merges
5086
+ if (Array.isArray(latest)) {
5087
+ var res = [];
5088
+ sealed = Array.isArray(sealed) ? sealed : [sealed];
5089
+ extended = Array.isArray(extended) ? extended : [extended];
5090
+ for (var i = 0; i < latest.length; i++) {
5091
+ // push original options and not sealed options to exclude duplicated options
5092
+ if (extended.indexOf(latest[i]) >= 0 || sealed.indexOf(latest[i]) < 0) {
5093
+ res.push(latest[i]);
5094
+ }
5095
+ }
5096
+ return res
5097
+ } else {
5098
+ return latest
5099
+ }
5100
+ }
5101
+
5102
+ function Vue (options) {
5103
+ if (process.env.NODE_ENV !== 'production' &&
5104
+ !(this instanceof Vue)
5105
+ ) {
5106
+ warn('Vue is a constructor and should be called with the `new` keyword');
5107
+ }
5108
+ this._init(options);
5109
+ }
5110
+
5111
+ initMixin(Vue);
5112
+ stateMixin(Vue);
5113
+ eventsMixin(Vue);
5114
+ lifecycleMixin(Vue);
5115
+ renderMixin(Vue);
5116
+
5117
+ /* */
5118
+
5119
+ function initUse (Vue) {
5120
+ Vue.use = function (plugin) {
5121
+ var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));
5122
+ if (installedPlugins.indexOf(plugin) > -1) {
5123
+ return this
5124
+ }
5125
+
5126
+ // additional parameters
5127
+ var args = toArray(arguments, 1);
5128
+ args.unshift(this);
5129
+ if (typeof plugin.install === 'function') {
5130
+ plugin.install.apply(plugin, args);
5131
+ } else if (typeof plugin === 'function') {
5132
+ plugin.apply(null, args);
5133
+ }
5134
+ installedPlugins.push(plugin);
5135
+ return this
5136
+ };
5137
+ }
5138
+
5139
+ /* */
5140
+
5141
+ function initMixin$1 (Vue) {
5142
+ Vue.mixin = function (mixin) {
5143
+ this.options = mergeOptions(this.options, mixin);
5144
+ return this
5145
+ };
5146
+ }
5147
+
5148
+ /* */
5149
+
5150
+ function initExtend (Vue) {
5151
+ /**
5152
+ * Each instance constructor, including Vue, has a unique
5153
+ * cid. This enables us to create wrapped "child
5154
+ * constructors" for prototypal inheritance and cache them.
5155
+ */
5156
+ Vue.cid = 0;
5157
+ var cid = 1;
5158
+
5159
+ /**
5160
+ * Class inheritance
5161
+ */
5162
+ Vue.extend = function (extendOptions) {
5163
+ extendOptions = extendOptions || {};
5164
+ var Super = this;
5165
+ var SuperId = Super.cid;
5166
+ var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});
5167
+ if (cachedCtors[SuperId]) {
5168
+ return cachedCtors[SuperId]
5169
+ }
5170
+
5171
+ var name = extendOptions.name || Super.options.name;
5172
+ if (process.env.NODE_ENV !== 'production' && name) {
5173
+ validateComponentName(name);
5174
+ }
5175
+
5176
+ var Sub = function VueComponent (options) {
5177
+ this._init(options);
5178
+ };
5179
+ Sub.prototype = Object.create(Super.prototype);
5180
+ Sub.prototype.constructor = Sub;
5181
+ Sub.cid = cid++;
5182
+ Sub.options = mergeOptions(
5183
+ Super.options,
5184
+ extendOptions
5185
+ );
5186
+ Sub['super'] = Super;
5187
+
5188
+ // For props and computed properties, we define the proxy getters on
5189
+ // the Vue instances at extension time, on the extended prototype. This
5190
+ // avoids Object.defineProperty calls for each instance created.
5191
+ if (Sub.options.props) {
5192
+ initProps$1(Sub);
5193
+ }
5194
+ if (Sub.options.computed) {
5195
+ initComputed$1(Sub);
5196
+ }
5197
+
5198
+ // allow further extension/mixin/plugin usage
5199
+ Sub.extend = Super.extend;
5200
+ Sub.mixin = Super.mixin;
5201
+ Sub.use = Super.use;
5202
+
5203
+ // create asset registers, so extended classes
5204
+ // can have their private assets too.
5205
+ ASSET_TYPES.forEach(function (type) {
5206
+ Sub[type] = Super[type];
5207
+ });
5208
+ // enable recursive self-lookup
5209
+ if (name) {
5210
+ Sub.options.components[name] = Sub;
5211
+ }
5212
+
5213
+ // keep a reference to the super options at extension time.
5214
+ // later at instantiation we can check if Super's options have
5215
+ // been updated.
5216
+ Sub.superOptions = Super.options;
5217
+ Sub.extendOptions = extendOptions;
5218
+ Sub.sealedOptions = extend({}, Sub.options);
5219
+
5220
+ // cache constructor
5221
+ cachedCtors[SuperId] = Sub;
5222
+ return Sub
5223
+ };
5224
+ }
5225
+
5226
+ function initProps$1 (Comp) {
5227
+ var props = Comp.options.props;
5228
+ for (var key in props) {
5229
+ proxy(Comp.prototype, "_props", key);
5230
+ }
5231
+ }
5232
+
5233
+ function initComputed$1 (Comp) {
5234
+ var computed = Comp.options.computed;
5235
+ for (var key in computed) {
5236
+ defineComputed(Comp.prototype, key, computed[key]);
5237
+ }
5238
+ }
5239
+
5240
+ /* */
5241
+
5242
+ function initAssetRegisters (Vue) {
5243
+ /**
5244
+ * Create asset registration methods.
5245
+ */
5246
+ ASSET_TYPES.forEach(function (type) {
5247
+ Vue[type] = function (
5248
+ id,
5249
+ definition
5250
+ ) {
5251
+ if (!definition) {
5252
+ return this.options[type + 's'][id]
5253
+ } else {
5254
+ /* istanbul ignore if */
5255
+ if (process.env.NODE_ENV !== 'production' && type === 'component') {
5256
+ validateComponentName(id);
5257
+ }
5258
+ if (type === 'component' && isPlainObject(definition)) {
5259
+ definition.name = definition.name || id;
5260
+ definition = this.options._base.extend(definition);
5261
+ }
5262
+ if (type === 'directive' && typeof definition === 'function') {
5263
+ definition = { bind: definition, update: definition };
5264
+ }
5265
+ this.options[type + 's'][id] = definition;
5266
+ return definition
5267
+ }
5268
+ };
5269
+ });
5270
+ }
5271
+
5272
+ /* */
5273
+
5274
+ function getComponentName (opts) {
5275
+ return opts && (opts.Ctor.options.name || opts.tag)
5276
+ }
5277
+
5278
+ function matches (pattern, name) {
5279
+ if (Array.isArray(pattern)) {
5280
+ return pattern.indexOf(name) > -1
5281
+ } else if (typeof pattern === 'string') {
5282
+ return pattern.split(',').indexOf(name) > -1
5283
+ } else if (isRegExp(pattern)) {
5284
+ return pattern.test(name)
5285
+ }
5286
+ /* istanbul ignore next */
5287
+ return false
5288
+ }
5289
+
5290
+ function pruneCache (keepAliveInstance, filter) {
5291
+ var cache = keepAliveInstance.cache;
5292
+ var keys = keepAliveInstance.keys;
5293
+ var _vnode = keepAliveInstance._vnode;
5294
+ for (var key in cache) {
5295
+ var cachedNode = cache[key];
5296
+ if (cachedNode) {
5297
+ var name = getComponentName(cachedNode.componentOptions);
5298
+ if (name && !filter(name)) {
5299
+ pruneCacheEntry(cache, key, keys, _vnode);
5300
+ }
5301
+ }
5302
+ }
5303
+ }
5304
+
5305
+ function pruneCacheEntry (
5306
+ cache,
5307
+ key,
5308
+ keys,
5309
+ current
5310
+ ) {
5311
+ var cached$$1 = cache[key];
5312
+ if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {
5313
+ cached$$1.componentInstance.$destroy();
5314
+ }
5315
+ cache[key] = null;
5316
+ remove(keys, key);
5317
+ }
5318
+
5319
+ var patternTypes = [String, RegExp, Array];
5320
+
5321
+ var KeepAlive = {
5322
+ name: 'keep-alive',
5323
+ abstract: true,
5324
+
5325
+ props: {
5326
+ include: patternTypes,
5327
+ exclude: patternTypes,
5328
+ max: [String, Number]
5329
+ },
5330
+
5331
+ created: function created () {
5332
+ this.cache = Object.create(null);
5333
+ this.keys = [];
5334
+ },
5335
+
5336
+ destroyed: function destroyed () {
5337
+ var this$1 = this;
5338
+
5339
+ for (var key in this$1.cache) {
5340
+ pruneCacheEntry(this$1.cache, key, this$1.keys);
5341
+ }
5342
+ },
5343
+
5344
+ mounted: function mounted () {
5345
+ var this$1 = this;
5346
+
5347
+ this.$watch('include', function (val) {
5348
+ pruneCache(this$1, function (name) { return matches(val, name); });
5349
+ });
5350
+ this.$watch('exclude', function (val) {
5351
+ pruneCache(this$1, function (name) { return !matches(val, name); });
5352
+ });
5353
+ },
5354
+
5355
+ render: function render () {
5356
+ var slot = this.$slots.default;
5357
+ var vnode = getFirstComponentChild(slot);
5358
+ var componentOptions = vnode && vnode.componentOptions;
5359
+ if (componentOptions) {
5360
+ // check pattern
5361
+ var name = getComponentName(componentOptions);
5362
+ var ref = this;
5363
+ var include = ref.include;
5364
+ var exclude = ref.exclude;
5365
+ if (
5366
+ // not included
5367
+ (include && (!name || !matches(include, name))) ||
5368
+ // excluded
5369
+ (exclude && name && matches(exclude, name))
5370
+ ) {
5371
+ return vnode
5372
+ }
5373
+
5374
+ var ref$1 = this;
5375
+ var cache = ref$1.cache;
5376
+ var keys = ref$1.keys;
5377
+ var key = vnode.key == null
5378
+ // same constructor may get registered as different local components
5379
+ // so cid alone is not enough (#3269)
5380
+ ? componentOptions.Ctor.cid + (componentOptions.tag ? ("::" + (componentOptions.tag)) : '')
5381
+ : vnode.key;
5382
+ if (cache[key]) {
5383
+ vnode.componentInstance = cache[key].componentInstance;
5384
+ // make current key freshest
5385
+ remove(keys, key);
5386
+ keys.push(key);
5387
+ } else {
5388
+ cache[key] = vnode;
5389
+ keys.push(key);
5390
+ // prune oldest entry
5391
+ if (this.max && keys.length > parseInt(this.max)) {
5392
+ pruneCacheEntry(cache, keys[0], keys, this._vnode);
5393
+ }
5394
+ }
5395
+
5396
+ vnode.data.keepAlive = true;
5397
+ }
5398
+ return vnode || (slot && slot[0])
5399
+ }
5400
+ }
5401
+
5402
+ var builtInComponents = {
5403
+ KeepAlive: KeepAlive
5404
+ }
5405
+
5406
+ /* */
5407
+
5408
+ function initGlobalAPI (Vue) {
5409
+ // config
5410
+ var configDef = {};
5411
+ configDef.get = function () { return config; };
5412
+ if (process.env.NODE_ENV !== 'production') {
5413
+ configDef.set = function () {
5414
+ warn(
5415
+ 'Do not replace the Vue.config object, set individual fields instead.'
5416
+ );
5417
+ };
5418
+ }
5419
+ Object.defineProperty(Vue, 'config', configDef);
5420
+
5421
+ // exposed util methods.
5422
+ // NOTE: these are not considered part of the public API - avoid relying on
5423
+ // them unless you are aware of the risk.
5424
+ Vue.util = {
5425
+ warn: warn,
5426
+ extend: extend,
5427
+ mergeOptions: mergeOptions,
5428
+ defineReactive: defineReactive
5429
+ };
5430
+
5431
+ Vue.set = set;
5432
+ Vue.delete = del;
5433
+ Vue.nextTick = nextTick;
5434
+
5435
+ Vue.options = Object.create(null);
5436
+ ASSET_TYPES.forEach(function (type) {
5437
+ Vue.options[type + 's'] = Object.create(null);
5438
+ });
5439
+
5440
+ // this is used to identify the "base" constructor to extend all plain-object
5441
+ // components with in Weex's multi-instance scenarios.
5442
+ Vue.options._base = Vue;
5443
+
5444
+ extend(Vue.options.components, builtInComponents);
5445
+
5446
+ initUse(Vue);
5447
+ initMixin$1(Vue);
5448
+ initExtend(Vue);
5449
+ initAssetRegisters(Vue);
5450
+ }
5451
+
5452
+ initGlobalAPI(Vue);
5453
+
5454
+ Object.defineProperty(Vue.prototype, '$isServer', {
5455
+ get: isServerRendering
5456
+ });
5457
+
5458
+ Object.defineProperty(Vue.prototype, '$ssrContext', {
5459
+ get: function get () {
5460
+ /* istanbul ignore next */
5461
+ return this.$vnode && this.$vnode.ssrContext
5462
+ }
5463
+ });
5464
+
5465
+ // expose FunctionalRenderContext for ssr runtime helper installation
5466
+ Object.defineProperty(Vue, 'FunctionalRenderContext', {
5467
+ value: FunctionalRenderContext
5468
+ });
5469
+
5470
+ Vue.version = '2.5.17';
5471
+
5472
+ /* */
5473
+
5474
+ // these are reserved for web because they are directly compiled away
5475
+ // during template compilation
5476
+ var isReservedAttr = makeMap('style,class');
5477
+
5478
+ // attributes that should be using props for binding
5479
+ var acceptValue = makeMap('input,textarea,option,select,progress');
5480
+ var mustUseProp = function (tag, type, attr) {
5481
+ return (
5482
+ (attr === 'value' && acceptValue(tag)) && type !== 'button' ||
5483
+ (attr === 'selected' && tag === 'option') ||
5484
+ (attr === 'checked' && tag === 'input') ||
5485
+ (attr === 'muted' && tag === 'video')
5486
+ )
5487
+ };
5488
+
5489
+ var isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');
5490
+
5491
+ var isBooleanAttr = makeMap(
5492
+ 'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +
5493
+ 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +
5494
+ 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +
5495
+ 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +
5496
+ 'required,reversed,scoped,seamless,selected,sortable,translate,' +
5497
+ 'truespeed,typemustmatch,visible'
5498
+ );
5499
+
5500
+ var xlinkNS = 'http://www.w3.org/1999/xlink';
5501
+
5502
+ var isXlink = function (name) {
5503
+ return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'
5504
+ };
5505
+
5506
+ var getXlinkProp = function (name) {
5507
+ return isXlink(name) ? name.slice(6, name.length) : ''
5508
+ };
5509
+
5510
+ var isFalsyAttrValue = function (val) {
5511
+ return val == null || val === false
5512
+ };
5513
+
5514
+ /* */
5515
+
5516
+ function genClassForVnode (vnode) {
5517
+ var data = vnode.data;
5518
+ var parentNode = vnode;
5519
+ var childNode = vnode;
5520
+ while (isDef(childNode.componentInstance)) {
5521
+ childNode = childNode.componentInstance._vnode;
5522
+ if (childNode && childNode.data) {
5523
+ data = mergeClassData(childNode.data, data);
5524
+ }
5525
+ }
5526
+ while (isDef(parentNode = parentNode.parent)) {
5527
+ if (parentNode && parentNode.data) {
5528
+ data = mergeClassData(data, parentNode.data);
5529
+ }
5530
+ }
5531
+ return renderClass(data.staticClass, data.class)
5532
+ }
5533
+
5534
+ function mergeClassData (child, parent) {
5535
+ return {
5536
+ staticClass: concat(child.staticClass, parent.staticClass),
5537
+ class: isDef(child.class)
5538
+ ? [child.class, parent.class]
5539
+ : parent.class
5540
+ }
5541
+ }
5542
+
5543
+ function renderClass (
5544
+ staticClass,
5545
+ dynamicClass
5546
+ ) {
5547
+ if (isDef(staticClass) || isDef(dynamicClass)) {
5548
+ return concat(staticClass, stringifyClass(dynamicClass))
5549
+ }
5550
+ /* istanbul ignore next */
5551
+ return ''
5552
+ }
5553
+
5554
+ function concat (a, b) {
5555
+ return a ? b ? (a + ' ' + b) : a : (b || '')
5556
+ }
5557
+
5558
+ function stringifyClass (value) {
5559
+ if (Array.isArray(value)) {
5560
+ return stringifyArray(value)
5561
+ }
5562
+ if (isObject(value)) {
5563
+ return stringifyObject(value)
5564
+ }
5565
+ if (typeof value === 'string') {
5566
+ return value
5567
+ }
5568
+ /* istanbul ignore next */
5569
+ return ''
5570
+ }
5571
+
5572
+ function stringifyArray (value) {
5573
+ var res = '';
5574
+ var stringified;
5575
+ for (var i = 0, l = value.length; i < l; i++) {
5576
+ if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {
5577
+ if (res) { res += ' '; }
5578
+ res += stringified;
5579
+ }
5580
+ }
5581
+ return res
5582
+ }
5583
+
5584
+ function stringifyObject (value) {
5585
+ var res = '';
5586
+ for (var key in value) {
5587
+ if (value[key]) {
5588
+ if (res) { res += ' '; }
5589
+ res += key;
5590
+ }
5591
+ }
5592
+ return res
5593
+ }
5594
+
5595
+ /* */
5596
+
5597
+ var namespaceMap = {
5598
+ svg: 'http://www.w3.org/2000/svg',
5599
+ math: 'http://www.w3.org/1998/Math/MathML'
5600
+ };
5601
+
5602
+ var isHTMLTag = makeMap(
5603
+ 'html,body,base,head,link,meta,style,title,' +
5604
+ 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +
5605
+ 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +
5606
+ 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +
5607
+ 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +
5608
+ 'embed,object,param,source,canvas,script,noscript,del,ins,' +
5609
+ 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +
5610
+ 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +
5611
+ 'output,progress,select,textarea,' +
5612
+ 'details,dialog,menu,menuitem,summary,' +
5613
+ 'content,element,shadow,template,blockquote,iframe,tfoot'
5614
+ );
5615
+
5616
+ // this map is intentionally selective, only covering SVG elements that may
5617
+ // contain child elements.
5618
+ var isSVG = makeMap(
5619
+ 'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +
5620
+ 'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +
5621
+ 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',
5622
+ true
5623
+ );
5624
+
5625
+ var isPreTag = function (tag) { return tag === 'pre'; };
5626
+
5627
+ var isReservedTag = function (tag) {
5628
+ return isHTMLTag(tag) || isSVG(tag)
5629
+ };
5630
+
5631
+ function getTagNamespace (tag) {
5632
+ if (isSVG(tag)) {
5633
+ return 'svg'
5634
+ }
5635
+ // basic support for MathML
5636
+ // note it doesn't support other MathML elements being component roots
5637
+ if (tag === 'math') {
5638
+ return 'math'
5639
+ }
5640
+ }
5641
+
5642
+ var unknownElementCache = Object.create(null);
5643
+ function isUnknownElement (tag) {
5644
+ /* istanbul ignore if */
5645
+ if (!inBrowser) {
5646
+ return true
5647
+ }
5648
+ if (isReservedTag(tag)) {
5649
+ return false
5650
+ }
5651
+ tag = tag.toLowerCase();
5652
+ /* istanbul ignore if */
5653
+ if (unknownElementCache[tag] != null) {
5654
+ return unknownElementCache[tag]
5655
+ }
5656
+ var el = document.createElement(tag);
5657
+ if (tag.indexOf('-') > -1) {
5658
+ // http://stackoverflow.com/a/28210364/1070244
5659
+ return (unknownElementCache[tag] = (
5660
+ el.constructor === window.HTMLUnknownElement ||
5661
+ el.constructor === window.HTMLElement
5662
+ ))
5663
+ } else {
5664
+ return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))
5665
+ }
5666
+ }
5667
+
5668
+ var isTextInputType = makeMap('text,number,password,search,email,tel,url');
5669
+
5670
+ /* */
5671
+
5672
+ /**
5673
+ * Query an element selector if it's not an element already.
5674
+ */
5675
+ function query (el) {
5676
+ if (typeof el === 'string') {
5677
+ var selected = document.querySelector(el);
5678
+ if (!selected) {
5679
+ process.env.NODE_ENV !== 'production' && warn(
5680
+ 'Cannot find element: ' + el
5681
+ );
5682
+ return document.createElement('div')
5683
+ }
5684
+ return selected
5685
+ } else {
5686
+ return el
5687
+ }
5688
+ }
5689
+
5690
+ /* */
5691
+
5692
+ function createElement$1 (tagName, vnode) {
5693
+ var elm = document.createElement(tagName);
5694
+ if (tagName !== 'select') {
5695
+ return elm
5696
+ }
5697
+ // false or null will remove the attribute but undefined will not
5698
+ if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {
5699
+ elm.setAttribute('multiple', 'multiple');
5700
+ }
5701
+ return elm
5702
+ }
5703
+
5704
+ function createElementNS (namespace, tagName) {
5705
+ return document.createElementNS(namespaceMap[namespace], tagName)
5706
+ }
5707
+
5708
+ function createTextNode (text) {
5709
+ return document.createTextNode(text)
5710
+ }
5711
+
5712
+ function createComment (text) {
5713
+ return document.createComment(text)
5714
+ }
5715
+
5716
+ function insertBefore (parentNode, newNode, referenceNode) {
5717
+ parentNode.insertBefore(newNode, referenceNode);
5718
+ }
5719
+
5720
+ function removeChild (node, child) {
5721
+ node.removeChild(child);
5722
+ }
5723
+
5724
+ function appendChild (node, child) {
5725
+ node.appendChild(child);
5726
+ }
5727
+
5728
+ function parentNode (node) {
5729
+ return node.parentNode
5730
+ }
5731
+
5732
+ function nextSibling (node) {
5733
+ return node.nextSibling
5734
+ }
5735
+
5736
+ function tagName (node) {
5737
+ return node.tagName
5738
+ }
5739
+
5740
+ function setTextContent (node, text) {
5741
+ node.textContent = text;
5742
+ }
5743
+
5744
+ function setStyleScope (node, scopeId) {
5745
+ node.setAttribute(scopeId, '');
5746
+ }
5747
+
5748
+
5749
+ var nodeOps = Object.freeze({
5750
+ createElement: createElement$1,
5751
+ createElementNS: createElementNS,
5752
+ createTextNode: createTextNode,
5753
+ createComment: createComment,
5754
+ insertBefore: insertBefore,
5755
+ removeChild: removeChild,
5756
+ appendChild: appendChild,
5757
+ parentNode: parentNode,
5758
+ nextSibling: nextSibling,
5759
+ tagName: tagName,
5760
+ setTextContent: setTextContent,
5761
+ setStyleScope: setStyleScope
5762
+ });
5763
+
5764
+ /* */
5765
+
5766
+ var ref = {
5767
+ create: function create (_, vnode) {
5768
+ registerRef(vnode);
5769
+ },
5770
+ update: function update (oldVnode, vnode) {
5771
+ if (oldVnode.data.ref !== vnode.data.ref) {
5772
+ registerRef(oldVnode, true);
5773
+ registerRef(vnode);
5774
+ }
5775
+ },
5776
+ destroy: function destroy (vnode) {
5777
+ registerRef(vnode, true);
5778
+ }
5779
+ }
5780
+
5781
+ function registerRef (vnode, isRemoval) {
5782
+ var key = vnode.data.ref;
5783
+ if (!isDef(key)) { return }
5784
+
5785
+ var vm = vnode.context;
5786
+ var ref = vnode.componentInstance || vnode.elm;
5787
+ var refs = vm.$refs;
5788
+ if (isRemoval) {
5789
+ if (Array.isArray(refs[key])) {
5790
+ remove(refs[key], ref);
5791
+ } else if (refs[key] === ref) {
5792
+ refs[key] = undefined;
5793
+ }
5794
+ } else {
5795
+ if (vnode.data.refInFor) {
5796
+ if (!Array.isArray(refs[key])) {
5797
+ refs[key] = [ref];
5798
+ } else if (refs[key].indexOf(ref) < 0) {
5799
+ // $flow-disable-line
5800
+ refs[key].push(ref);
5801
+ }
5802
+ } else {
5803
+ refs[key] = ref;
5804
+ }
5805
+ }
5806
+ }
5807
+
5808
+ /**
5809
+ * Virtual DOM patching algorithm based on Snabbdom by
5810
+ * Simon Friis Vindum (@paldepind)
5811
+ * Licensed under the MIT License
5812
+ * https://github.com/paldepind/snabbdom/blob/master/LICENSE
5813
+ *
5814
+ * modified by Evan You (@yyx990803)
5815
+ *
5816
+ * Not type-checking this because this file is perf-critical and the cost
5817
+ * of making flow understand it is not worth it.
5818
+ */
5819
+
5820
+ var emptyNode = new VNode('', {}, []);
5821
+
5822
+ var hooks = ['create', 'activate', 'update', 'remove', 'destroy'];
5823
+
5824
+ function sameVnode (a, b) {
5825
+ return (
5826
+ a.key === b.key && (
5827
+ (
5828
+ a.tag === b.tag &&
5829
+ a.isComment === b.isComment &&
5830
+ isDef(a.data) === isDef(b.data) &&
5831
+ sameInputType(a, b)
5832
+ ) || (
5833
+ isTrue(a.isAsyncPlaceholder) &&
5834
+ a.asyncFactory === b.asyncFactory &&
5835
+ isUndef(b.asyncFactory.error)
5836
+ )
5837
+ )
5838
+ )
5839
+ }
5840
+
5841
+ function sameInputType (a, b) {
5842
+ if (a.tag !== 'input') { return true }
5843
+ var i;
5844
+ var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;
5845
+ var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;
5846
+ return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)
5847
+ }
5848
+
5849
+ function createKeyToOldIdx (children, beginIdx, endIdx) {
5850
+ var i, key;
5851
+ var map = {};
5852
+ for (i = beginIdx; i <= endIdx; ++i) {
5853
+ key = children[i].key;
5854
+ if (isDef(key)) { map[key] = i; }
5855
+ }
5856
+ return map
5857
+ }
5858
+
5859
+ function createPatchFunction (backend) {
5860
+ var i, j;
5861
+ var cbs = {};
5862
+
5863
+ var modules = backend.modules;
5864
+ var nodeOps = backend.nodeOps;
5865
+
5866
+ for (i = 0; i < hooks.length; ++i) {
5867
+ cbs[hooks[i]] = [];
5868
+ for (j = 0; j < modules.length; ++j) {
5869
+ if (isDef(modules[j][hooks[i]])) {
5870
+ cbs[hooks[i]].push(modules[j][hooks[i]]);
5871
+ }
5872
+ }
5873
+ }
5874
+
5875
+ function emptyNodeAt (elm) {
5876
+ return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)
5877
+ }
5878
+
5879
+ function createRmCb (childElm, listeners) {
5880
+ function remove () {
5881
+ if (--remove.listeners === 0) {
5882
+ removeNode(childElm);
5883
+ }
5884
+ }
5885
+ remove.listeners = listeners;
5886
+ return remove
5887
+ }
5888
+
5889
+ function removeNode (el) {
5890
+ var parent = nodeOps.parentNode(el);
5891
+ // element may have already been removed due to v-html / v-text
5892
+ if (isDef(parent)) {
5893
+ nodeOps.removeChild(parent, el);
5894
+ }
5895
+ }
5896
+
5897
+ function isUnknownElement$$1 (vnode, inVPre) {
5898
+ return (
5899
+ !inVPre &&
5900
+ !vnode.ns &&
5901
+ !(
5902
+ config.ignoredElements.length &&
5903
+ config.ignoredElements.some(function (ignore) {
5904
+ return isRegExp(ignore)
5905
+ ? ignore.test(vnode.tag)
5906
+ : ignore === vnode.tag
5907
+ })
5908
+ ) &&
5909
+ config.isUnknownElement(vnode.tag)
5910
+ )
5911
+ }
5912
+
5913
+ var creatingElmInVPre = 0;
5914
+
5915
+ function createElm (
5916
+ vnode,
5917
+ insertedVnodeQueue,
5918
+ parentElm,
5919
+ refElm,
5920
+ nested,
5921
+ ownerArray,
5922
+ index
5923
+ ) {
5924
+ if (isDef(vnode.elm) && isDef(ownerArray)) {
5925
+ // This vnode was used in a previous render!
5926
+ // now it's used as a new node, overwriting its elm would cause
5927
+ // potential patch errors down the road when it's used as an insertion
5928
+ // reference node. Instead, we clone the node on-demand before creating
5929
+ // associated DOM element for it.
5930
+ vnode = ownerArray[index] = cloneVNode(vnode);
5931
+ }
5932
+
5933
+ vnode.isRootInsert = !nested; // for transition enter check
5934
+ if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {
5935
+ return
5936
+ }
5937
+
5938
+ var data = vnode.data;
5939
+ var children = vnode.children;
5940
+ var tag = vnode.tag;
5941
+ if (isDef(tag)) {
5942
+ if (process.env.NODE_ENV !== 'production') {
5943
+ if (data && data.pre) {
5944
+ creatingElmInVPre++;
5945
+ }
5946
+ if (isUnknownElement$$1(vnode, creatingElmInVPre)) {
5947
+ warn(
5948
+ 'Unknown custom element: <' + tag + '> - did you ' +
5949
+ 'register the component correctly? For recursive components, ' +
5950
+ 'make sure to provide the "name" option.',
5951
+ vnode.context
5952
+ );
5953
+ }
5954
+ }
5955
+
5956
+ vnode.elm = vnode.ns
5957
+ ? nodeOps.createElementNS(vnode.ns, tag)
5958
+ : nodeOps.createElement(tag, vnode);
5959
+ setScope(vnode);
5960
+
5961
+ /* istanbul ignore if */
5962
+ {
5963
+ createChildren(vnode, children, insertedVnodeQueue);
5964
+ if (isDef(data)) {
5965
+ invokeCreateHooks(vnode, insertedVnodeQueue);
5966
+ }
5967
+ insert(parentElm, vnode.elm, refElm);
5968
+ }
5969
+
5970
+ if (process.env.NODE_ENV !== 'production' && data && data.pre) {
5971
+ creatingElmInVPre--;
5972
+ }
5973
+ } else if (isTrue(vnode.isComment)) {
5974
+ vnode.elm = nodeOps.createComment(vnode.text);
5975
+ insert(parentElm, vnode.elm, refElm);
5976
+ } else {
5977
+ vnode.elm = nodeOps.createTextNode(vnode.text);
5978
+ insert(parentElm, vnode.elm, refElm);
5979
+ }
5980
+ }
5981
+
5982
+ function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {
5983
+ var i = vnode.data;
5984
+ if (isDef(i)) {
5985
+ var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;
5986
+ if (isDef(i = i.hook) && isDef(i = i.init)) {
5987
+ i(vnode, false /* hydrating */, parentElm, refElm);
5988
+ }
5989
+ // after calling the init hook, if the vnode is a child component
5990
+ // it should've created a child instance and mounted it. the child
5991
+ // component also has set the placeholder vnode's elm.
5992
+ // in that case we can just return the element and be done.
5993
+ if (isDef(vnode.componentInstance)) {
5994
+ initComponent(vnode, insertedVnodeQueue);
5995
+ if (isTrue(isReactivated)) {
5996
+ reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);
5997
+ }
5998
+ return true
5999
+ }
6000
+ }
6001
+ }
6002
+
6003
+ function initComponent (vnode, insertedVnodeQueue) {
6004
+ if (isDef(vnode.data.pendingInsert)) {
6005
+ insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);
6006
+ vnode.data.pendingInsert = null;
6007
+ }
6008
+ vnode.elm = vnode.componentInstance.$el;
6009
+ if (isPatchable(vnode)) {
6010
+ invokeCreateHooks(vnode, insertedVnodeQueue);
6011
+ setScope(vnode);
6012
+ } else {
6013
+ // empty component root.
6014
+ // skip all element-related modules except for ref (#3455)
6015
+ registerRef(vnode);
6016
+ // make sure to invoke the insert hook
6017
+ insertedVnodeQueue.push(vnode);
6018
+ }
6019
+ }
6020
+
6021
+ function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {
6022
+ var i;
6023
+ // hack for #4339: a reactivated component with inner transition
6024
+ // does not trigger because the inner node's created hooks are not called
6025
+ // again. It's not ideal to involve module-specific logic in here but
6026
+ // there doesn't seem to be a better way to do it.
6027
+ var innerNode = vnode;
6028
+ while (innerNode.componentInstance) {
6029
+ innerNode = innerNode.componentInstance._vnode;
6030
+ if (isDef(i = innerNode.data) && isDef(i = i.transition)) {
6031
+ for (i = 0; i < cbs.activate.length; ++i) {
6032
+ cbs.activate[i](emptyNode, innerNode);
6033
+ }
6034
+ insertedVnodeQueue.push(innerNode);
6035
+ break
6036
+ }
6037
+ }
6038
+ // unlike a newly created component,
6039
+ // a reactivated keep-alive component doesn't insert itself
6040
+ insert(parentElm, vnode.elm, refElm);
6041
+ }
6042
+
6043
+ function insert (parent, elm, ref$$1) {
6044
+ if (isDef(parent)) {
6045
+ if (isDef(ref$$1)) {
6046
+ if (ref$$1.parentNode === parent) {
6047
+ nodeOps.insertBefore(parent, elm, ref$$1);
6048
+ }
6049
+ } else {
6050
+ nodeOps.appendChild(parent, elm);
6051
+ }
6052
+ }
6053
+ }
6054
+
6055
+ function createChildren (vnode, children, insertedVnodeQueue) {
6056
+ if (Array.isArray(children)) {
6057
+ if (process.env.NODE_ENV !== 'production') {
6058
+ checkDuplicateKeys(children);
6059
+ }
6060
+ for (var i = 0; i < children.length; ++i) {
6061
+ createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);
6062
+ }
6063
+ } else if (isPrimitive(vnode.text)) {
6064
+ nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));
6065
+ }
6066
+ }
6067
+
6068
+ function isPatchable (vnode) {
6069
+ while (vnode.componentInstance) {
6070
+ vnode = vnode.componentInstance._vnode;
6071
+ }
6072
+ return isDef(vnode.tag)
6073
+ }
6074
+
6075
+ function invokeCreateHooks (vnode, insertedVnodeQueue) {
6076
+ for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {
6077
+ cbs.create[i$1](emptyNode, vnode);
6078
+ }
6079
+ i = vnode.data.hook; // Reuse variable
6080
+ if (isDef(i)) {
6081
+ if (isDef(i.create)) { i.create(emptyNode, vnode); }
6082
+ if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }
6083
+ }
6084
+ }
6085
+
6086
+ // set scope id attribute for scoped CSS.
6087
+ // this is implemented as a special case to avoid the overhead
6088
+ // of going through the normal attribute patching process.
6089
+ function setScope (vnode) {
6090
+ var i;
6091
+ if (isDef(i = vnode.fnScopeId)) {
6092
+ nodeOps.setStyleScope(vnode.elm, i);
6093
+ } else {
6094
+ var ancestor = vnode;
6095
+ while (ancestor) {
6096
+ if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {
6097
+ nodeOps.setStyleScope(vnode.elm, i);
6098
+ }
6099
+ ancestor = ancestor.parent;
6100
+ }
6101
+ }
6102
+ // for slot content they should also get the scopeId from the host instance.
6103
+ if (isDef(i = activeInstance) &&
6104
+ i !== vnode.context &&
6105
+ i !== vnode.fnContext &&
6106
+ isDef(i = i.$options._scopeId)
6107
+ ) {
6108
+ nodeOps.setStyleScope(vnode.elm, i);
6109
+ }
6110
+ }
6111
+
6112
+ function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {
6113
+ for (; startIdx <= endIdx; ++startIdx) {
6114
+ createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);
6115
+ }
6116
+ }
6117
+
6118
+ function invokeDestroyHook (vnode) {
6119
+ var i, j;
6120
+ var data = vnode.data;
6121
+ if (isDef(data)) {
6122
+ if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }
6123
+ for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }
6124
+ }
6125
+ if (isDef(i = vnode.children)) {
6126
+ for (j = 0; j < vnode.children.length; ++j) {
6127
+ invokeDestroyHook(vnode.children[j]);
6128
+ }
6129
+ }
6130
+ }
6131
+
6132
+ function removeVnodes (parentElm, vnodes, startIdx, endIdx) {
6133
+ for (; startIdx <= endIdx; ++startIdx) {
6134
+ var ch = vnodes[startIdx];
6135
+ if (isDef(ch)) {
6136
+ if (isDef(ch.tag)) {
6137
+ removeAndInvokeRemoveHook(ch);
6138
+ invokeDestroyHook(ch);
6139
+ } else { // Text node
6140
+ removeNode(ch.elm);
6141
+ }
6142
+ }
6143
+ }
6144
+ }
6145
+
6146
+ function removeAndInvokeRemoveHook (vnode, rm) {
6147
+ if (isDef(rm) || isDef(vnode.data)) {
6148
+ var i;
6149
+ var listeners = cbs.remove.length + 1;
6150
+ if (isDef(rm)) {
6151
+ // we have a recursively passed down rm callback
6152
+ // increase the listeners count
6153
+ rm.listeners += listeners;
6154
+ } else {
6155
+ // directly removing
6156
+ rm = createRmCb(vnode.elm, listeners);
6157
+ }
6158
+ // recursively invoke hooks on child component root node
6159
+ if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {
6160
+ removeAndInvokeRemoveHook(i, rm);
6161
+ }
6162
+ for (i = 0; i < cbs.remove.length; ++i) {
6163
+ cbs.remove[i](vnode, rm);
6164
+ }
6165
+ if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {
6166
+ i(vnode, rm);
6167
+ } else {
6168
+ rm();
6169
+ }
6170
+ } else {
6171
+ removeNode(vnode.elm);
6172
+ }
6173
+ }
6174
+
6175
+ function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {
6176
+ var oldStartIdx = 0;
6177
+ var newStartIdx = 0;
6178
+ var oldEndIdx = oldCh.length - 1;
6179
+ var oldStartVnode = oldCh[0];
6180
+ var oldEndVnode = oldCh[oldEndIdx];
6181
+ var newEndIdx = newCh.length - 1;
6182
+ var newStartVnode = newCh[0];
6183
+ var newEndVnode = newCh[newEndIdx];
6184
+ var oldKeyToIdx, idxInOld, vnodeToMove, refElm;
6185
+
6186
+ // removeOnly is a special flag used only by <transition-group>
6187
+ // to ensure removed elements stay in correct relative positions
6188
+ // during leaving transitions
6189
+ var canMove = !removeOnly;
6190
+
6191
+ if (process.env.NODE_ENV !== 'production') {
6192
+ checkDuplicateKeys(newCh);
6193
+ }
6194
+
6195
+ while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {
6196
+ if (isUndef(oldStartVnode)) {
6197
+ oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left
6198
+ } else if (isUndef(oldEndVnode)) {
6199
+ oldEndVnode = oldCh[--oldEndIdx];
6200
+ } else if (sameVnode(oldStartVnode, newStartVnode)) {
6201
+ patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue);
6202
+ oldStartVnode = oldCh[++oldStartIdx];
6203
+ newStartVnode = newCh[++newStartIdx];
6204
+ } else if (sameVnode(oldEndVnode, newEndVnode)) {
6205
+ patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue);
6206
+ oldEndVnode = oldCh[--oldEndIdx];
6207
+ newEndVnode = newCh[--newEndIdx];
6208
+ } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right
6209
+ patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue);
6210
+ canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));
6211
+ oldStartVnode = oldCh[++oldStartIdx];
6212
+ newEndVnode = newCh[--newEndIdx];
6213
+ } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left
6214
+ patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue);
6215
+ canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);
6216
+ oldEndVnode = oldCh[--oldEndIdx];
6217
+ newStartVnode = newCh[++newStartIdx];
6218
+ } else {
6219
+ if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }
6220
+ idxInOld = isDef(newStartVnode.key)
6221
+ ? oldKeyToIdx[newStartVnode.key]
6222
+ : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);
6223
+ if (isUndef(idxInOld)) { // New element
6224
+ createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);
6225
+ } else {
6226
+ vnodeToMove = oldCh[idxInOld];
6227
+ if (sameVnode(vnodeToMove, newStartVnode)) {
6228
+ patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue);
6229
+ oldCh[idxInOld] = undefined;
6230
+ canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);
6231
+ } else {
6232
+ // same key but different element. treat as new element
6233
+ createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);
6234
+ }
6235
+ }
6236
+ newStartVnode = newCh[++newStartIdx];
6237
+ }
6238
+ }
6239
+ if (oldStartIdx > oldEndIdx) {
6240
+ refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;
6241
+ addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);
6242
+ } else if (newStartIdx > newEndIdx) {
6243
+ removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);
6244
+ }
6245
+ }
6246
+
6247
+ function checkDuplicateKeys (children) {
6248
+ var seenKeys = {};
6249
+ for (var i = 0; i < children.length; i++) {
6250
+ var vnode = children[i];
6251
+ var key = vnode.key;
6252
+ if (isDef(key)) {
6253
+ if (seenKeys[key]) {
6254
+ warn(
6255
+ ("Duplicate keys detected: '" + key + "'. This may cause an update error."),
6256
+ vnode.context
6257
+ );
6258
+ } else {
6259
+ seenKeys[key] = true;
6260
+ }
6261
+ }
6262
+ }
6263
+ }
6264
+
6265
+ function findIdxInOld (node, oldCh, start, end) {
6266
+ for (var i = start; i < end; i++) {
6267
+ var c = oldCh[i];
6268
+ if (isDef(c) && sameVnode(node, c)) { return i }
6269
+ }
6270
+ }
6271
+
6272
+ function patchVnode (oldVnode, vnode, insertedVnodeQueue, removeOnly) {
6273
+ if (oldVnode === vnode) {
6274
+ return
6275
+ }
6276
+
6277
+ var elm = vnode.elm = oldVnode.elm;
6278
+
6279
+ if (isTrue(oldVnode.isAsyncPlaceholder)) {
6280
+ if (isDef(vnode.asyncFactory.resolved)) {
6281
+ hydrate(oldVnode.elm, vnode, insertedVnodeQueue);
6282
+ } else {
6283
+ vnode.isAsyncPlaceholder = true;
6284
+ }
6285
+ return
6286
+ }
6287
+
6288
+ // reuse element for static trees.
6289
+ // note we only do this if the vnode is cloned -
6290
+ // if the new node is not cloned it means the render functions have been
6291
+ // reset by the hot-reload-api and we need to do a proper re-render.
6292
+ if (isTrue(vnode.isStatic) &&
6293
+ isTrue(oldVnode.isStatic) &&
6294
+ vnode.key === oldVnode.key &&
6295
+ (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))
6296
+ ) {
6297
+ vnode.componentInstance = oldVnode.componentInstance;
6298
+ return
6299
+ }
6300
+
6301
+ var i;
6302
+ var data = vnode.data;
6303
+ if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {
6304
+ i(oldVnode, vnode);
6305
+ }
6306
+
6307
+ var oldCh = oldVnode.children;
6308
+ var ch = vnode.children;
6309
+ if (isDef(data) && isPatchable(vnode)) {
6310
+ for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }
6311
+ if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }
6312
+ }
6313
+ if (isUndef(vnode.text)) {
6314
+ if (isDef(oldCh) && isDef(ch)) {
6315
+ if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }
6316
+ } else if (isDef(ch)) {
6317
+ if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }
6318
+ addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);
6319
+ } else if (isDef(oldCh)) {
6320
+ removeVnodes(elm, oldCh, 0, oldCh.length - 1);
6321
+ } else if (isDef(oldVnode.text)) {
6322
+ nodeOps.setTextContent(elm, '');
6323
+ }
6324
+ } else if (oldVnode.text !== vnode.text) {
6325
+ nodeOps.setTextContent(elm, vnode.text);
6326
+ }
6327
+ if (isDef(data)) {
6328
+ if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }
6329
+ }
6330
+ }
6331
+
6332
+ function invokeInsertHook (vnode, queue, initial) {
6333
+ // delay insert hooks for component root nodes, invoke them after the
6334
+ // element is really inserted
6335
+ if (isTrue(initial) && isDef(vnode.parent)) {
6336
+ vnode.parent.data.pendingInsert = queue;
6337
+ } else {
6338
+ for (var i = 0; i < queue.length; ++i) {
6339
+ queue[i].data.hook.insert(queue[i]);
6340
+ }
6341
+ }
6342
+ }
6343
+
6344
+ var hydrationBailed = false;
6345
+ // list of modules that can skip create hook during hydration because they
6346
+ // are already rendered on the client or has no need for initialization
6347
+ // Note: style is excluded because it relies on initial clone for future
6348
+ // deep updates (#7063).
6349
+ var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');
6350
+
6351
+ // Note: this is a browser-only function so we can assume elms are DOM nodes.
6352
+ function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {
6353
+ var i;
6354
+ var tag = vnode.tag;
6355
+ var data = vnode.data;
6356
+ var children = vnode.children;
6357
+ inVPre = inVPre || (data && data.pre);
6358
+ vnode.elm = elm;
6359
+
6360
+ if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {
6361
+ vnode.isAsyncPlaceholder = true;
6362
+ return true
6363
+ }
6364
+ // assert node match
6365
+ if (process.env.NODE_ENV !== 'production') {
6366
+ if (!assertNodeMatch(elm, vnode, inVPre)) {
6367
+ return false
6368
+ }
6369
+ }
6370
+ if (isDef(data)) {
6371
+ if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }
6372
+ if (isDef(i = vnode.componentInstance)) {
6373
+ // child component. it should have hydrated its own tree.
6374
+ initComponent(vnode, insertedVnodeQueue);
6375
+ return true
6376
+ }
6377
+ }
6378
+ if (isDef(tag)) {
6379
+ if (isDef(children)) {
6380
+ // empty element, allow client to pick up and populate children
6381
+ if (!elm.hasChildNodes()) {
6382
+ createChildren(vnode, children, insertedVnodeQueue);
6383
+ } else {
6384
+ // v-html and domProps: innerHTML
6385
+ if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {
6386
+ if (i !== elm.innerHTML) {
6387
+ /* istanbul ignore if */
6388
+ if (process.env.NODE_ENV !== 'production' &&
6389
+ typeof console !== 'undefined' &&
6390
+ !hydrationBailed
6391
+ ) {
6392
+ hydrationBailed = true;
6393
+ console.warn('Parent: ', elm);
6394
+ console.warn('server innerHTML: ', i);
6395
+ console.warn('client innerHTML: ', elm.innerHTML);
6396
+ }
6397
+ return false
6398
+ }
6399
+ } else {
6400
+ // iterate and compare children lists
6401
+ var childrenMatch = true;
6402
+ var childNode = elm.firstChild;
6403
+ for (var i$1 = 0; i$1 < children.length; i$1++) {
6404
+ if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {
6405
+ childrenMatch = false;
6406
+ break
6407
+ }
6408
+ childNode = childNode.nextSibling;
6409
+ }
6410
+ // if childNode is not null, it means the actual childNodes list is
6411
+ // longer than the virtual children list.
6412
+ if (!childrenMatch || childNode) {
6413
+ /* istanbul ignore if */
6414
+ if (process.env.NODE_ENV !== 'production' &&
6415
+ typeof console !== 'undefined' &&
6416
+ !hydrationBailed
6417
+ ) {
6418
+ hydrationBailed = true;
6419
+ console.warn('Parent: ', elm);
6420
+ console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);
6421
+ }
6422
+ return false
6423
+ }
6424
+ }
6425
+ }
6426
+ }
6427
+ if (isDef(data)) {
6428
+ var fullInvoke = false;
6429
+ for (var key in data) {
6430
+ if (!isRenderedModule(key)) {
6431
+ fullInvoke = true;
6432
+ invokeCreateHooks(vnode, insertedVnodeQueue);
6433
+ break
6434
+ }
6435
+ }
6436
+ if (!fullInvoke && data['class']) {
6437
+ // ensure collecting deps for deep class bindings for future updates
6438
+ traverse(data['class']);
6439
+ }
6440
+ }
6441
+ } else if (elm.data !== vnode.text) {
6442
+ elm.data = vnode.text;
6443
+ }
6444
+ return true
6445
+ }
6446
+
6447
+ function assertNodeMatch (node, vnode, inVPre) {
6448
+ if (isDef(vnode.tag)) {
6449
+ return vnode.tag.indexOf('vue-component') === 0 || (
6450
+ !isUnknownElement$$1(vnode, inVPre) &&
6451
+ vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())
6452
+ )
6453
+ } else {
6454
+ return node.nodeType === (vnode.isComment ? 8 : 3)
6455
+ }
6456
+ }
6457
+
6458
+ return function patch (oldVnode, vnode, hydrating, removeOnly, parentElm, refElm) {
6459
+ if (isUndef(vnode)) {
6460
+ if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }
6461
+ return
6462
+ }
6463
+
6464
+ var isInitialPatch = false;
6465
+ var insertedVnodeQueue = [];
6466
+
6467
+ if (isUndef(oldVnode)) {
6468
+ // empty mount (likely as component), create new root element
6469
+ isInitialPatch = true;
6470
+ createElm(vnode, insertedVnodeQueue, parentElm, refElm);
6471
+ } else {
6472
+ var isRealElement = isDef(oldVnode.nodeType);
6473
+ if (!isRealElement && sameVnode(oldVnode, vnode)) {
6474
+ // patch existing root node
6475
+ patchVnode(oldVnode, vnode, insertedVnodeQueue, removeOnly);
6476
+ } else {
6477
+ if (isRealElement) {
6478
+ // mounting to a real element
6479
+ // check if this is server-rendered content and if we can perform
6480
+ // a successful hydration.
6481
+ if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {
6482
+ oldVnode.removeAttribute(SSR_ATTR);
6483
+ hydrating = true;
6484
+ }
6485
+ if (isTrue(hydrating)) {
6486
+ if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {
6487
+ invokeInsertHook(vnode, insertedVnodeQueue, true);
6488
+ return oldVnode
6489
+ } else if (process.env.NODE_ENV !== 'production') {
6490
+ warn(
6491
+ 'The client-side rendered virtual DOM tree is not matching ' +
6492
+ 'server-rendered content. This is likely caused by incorrect ' +
6493
+ 'HTML markup, for example nesting block-level elements inside ' +
6494
+ '<p>, or missing <tbody>. Bailing hydration and performing ' +
6495
+ 'full client-side render.'
6496
+ );
6497
+ }
6498
+ }
6499
+ // either not server-rendered, or hydration failed.
6500
+ // create an empty node and replace it
6501
+ oldVnode = emptyNodeAt(oldVnode);
6502
+ }
6503
+
6504
+ // replacing existing element
6505
+ var oldElm = oldVnode.elm;
6506
+ var parentElm$1 = nodeOps.parentNode(oldElm);
6507
+
6508
+ // create new node
6509
+ createElm(
6510
+ vnode,
6511
+ insertedVnodeQueue,
6512
+ // extremely rare edge case: do not insert if old element is in a
6513
+ // leaving transition. Only happens when combining transition +
6514
+ // keep-alive + HOCs. (#4590)
6515
+ oldElm._leaveCb ? null : parentElm$1,
6516
+ nodeOps.nextSibling(oldElm)
6517
+ );
6518
+
6519
+ // update parent placeholder node element, recursively
6520
+ if (isDef(vnode.parent)) {
6521
+ var ancestor = vnode.parent;
6522
+ var patchable = isPatchable(vnode);
6523
+ while (ancestor) {
6524
+ for (var i = 0; i < cbs.destroy.length; ++i) {
6525
+ cbs.destroy[i](ancestor);
6526
+ }
6527
+ ancestor.elm = vnode.elm;
6528
+ if (patchable) {
6529
+ for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {
6530
+ cbs.create[i$1](emptyNode, ancestor);
6531
+ }
6532
+ // #6513
6533
+ // invoke insert hooks that may have been merged by create hooks.
6534
+ // e.g. for directives that uses the "inserted" hook.
6535
+ var insert = ancestor.data.hook.insert;
6536
+ if (insert.merged) {
6537
+ // start at index 1 to avoid re-invoking component mounted hook
6538
+ for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {
6539
+ insert.fns[i$2]();
6540
+ }
6541
+ }
6542
+ } else {
6543
+ registerRef(ancestor);
6544
+ }
6545
+ ancestor = ancestor.parent;
6546
+ }
6547
+ }
6548
+
6549
+ // destroy old node
6550
+ if (isDef(parentElm$1)) {
6551
+ removeVnodes(parentElm$1, [oldVnode], 0, 0);
6552
+ } else if (isDef(oldVnode.tag)) {
6553
+ invokeDestroyHook(oldVnode);
6554
+ }
6555
+ }
6556
+ }
6557
+
6558
+ invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);
6559
+ return vnode.elm
6560
+ }
6561
+ }
6562
+
6563
+ /* */
6564
+
6565
+ var directives = {
6566
+ create: updateDirectives,
6567
+ update: updateDirectives,
6568
+ destroy: function unbindDirectives (vnode) {
6569
+ updateDirectives(vnode, emptyNode);
6570
+ }
6571
+ }
6572
+
6573
+ function updateDirectives (oldVnode, vnode) {
6574
+ if (oldVnode.data.directives || vnode.data.directives) {
6575
+ _update(oldVnode, vnode);
6576
+ }
6577
+ }
6578
+
6579
+ function _update (oldVnode, vnode) {
6580
+ var isCreate = oldVnode === emptyNode;
6581
+ var isDestroy = vnode === emptyNode;
6582
+ var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);
6583
+ var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);
6584
+
6585
+ var dirsWithInsert = [];
6586
+ var dirsWithPostpatch = [];
6587
+
6588
+ var key, oldDir, dir;
6589
+ for (key in newDirs) {
6590
+ oldDir = oldDirs[key];
6591
+ dir = newDirs[key];
6592
+ if (!oldDir) {
6593
+ // new directive, bind
6594
+ callHook$1(dir, 'bind', vnode, oldVnode);
6595
+ if (dir.def && dir.def.inserted) {
6596
+ dirsWithInsert.push(dir);
6597
+ }
6598
+ } else {
6599
+ // existing directive, update
6600
+ dir.oldValue = oldDir.value;
6601
+ callHook$1(dir, 'update', vnode, oldVnode);
6602
+ if (dir.def && dir.def.componentUpdated) {
6603
+ dirsWithPostpatch.push(dir);
6604
+ }
6605
+ }
6606
+ }
6607
+
6608
+ if (dirsWithInsert.length) {
6609
+ var callInsert = function () {
6610
+ for (var i = 0; i < dirsWithInsert.length; i++) {
6611
+ callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);
6612
+ }
6613
+ };
6614
+ if (isCreate) {
6615
+ mergeVNodeHook(vnode, 'insert', callInsert);
6616
+ } else {
6617
+ callInsert();
6618
+ }
6619
+ }
6620
+
6621
+ if (dirsWithPostpatch.length) {
6622
+ mergeVNodeHook(vnode, 'postpatch', function () {
6623
+ for (var i = 0; i < dirsWithPostpatch.length; i++) {
6624
+ callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);
6625
+ }
6626
+ });
6627
+ }
6628
+
6629
+ if (!isCreate) {
6630
+ for (key in oldDirs) {
6631
+ if (!newDirs[key]) {
6632
+ // no longer present, unbind
6633
+ callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);
6634
+ }
6635
+ }
6636
+ }
6637
+ }
6638
+
6639
+ var emptyModifiers = Object.create(null);
6640
+
6641
+ function normalizeDirectives$1 (
6642
+ dirs,
6643
+ vm
6644
+ ) {
6645
+ var res = Object.create(null);
6646
+ if (!dirs) {
6647
+ // $flow-disable-line
6648
+ return res
6649
+ }
6650
+ var i, dir;
6651
+ for (i = 0; i < dirs.length; i++) {
6652
+ dir = dirs[i];
6653
+ if (!dir.modifiers) {
6654
+ // $flow-disable-line
6655
+ dir.modifiers = emptyModifiers;
6656
+ }
6657
+ res[getRawDirName(dir)] = dir;
6658
+ dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);
6659
+ }
6660
+ // $flow-disable-line
6661
+ return res
6662
+ }
6663
+
6664
+ function getRawDirName (dir) {
6665
+ return dir.rawName || ((dir.name) + "." + (Object.keys(dir.modifiers || {}).join('.')))
6666
+ }
6667
+
6668
+ function callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {
6669
+ var fn = dir.def && dir.def[hook];
6670
+ if (fn) {
6671
+ try {
6672
+ fn(vnode.elm, dir, vnode, oldVnode, isDestroy);
6673
+ } catch (e) {
6674
+ handleError(e, vnode.context, ("directive " + (dir.name) + " " + hook + " hook"));
6675
+ }
6676
+ }
6677
+ }
6678
+
6679
+ var baseModules = [
6680
+ ref,
6681
+ directives
6682
+ ]
6683
+
6684
+ /* */
6685
+
6686
+ function updateAttrs (oldVnode, vnode) {
6687
+ var opts = vnode.componentOptions;
6688
+ if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {
6689
+ return
6690
+ }
6691
+ if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {
6692
+ return
6693
+ }
6694
+ var key, cur, old;
6695
+ var elm = vnode.elm;
6696
+ var oldAttrs = oldVnode.data.attrs || {};
6697
+ var attrs = vnode.data.attrs || {};
6698
+ // clone observed objects, as the user probably wants to mutate it
6699
+ if (isDef(attrs.__ob__)) {
6700
+ attrs = vnode.data.attrs = extend({}, attrs);
6701
+ }
6702
+
6703
+ for (key in attrs) {
6704
+ cur = attrs[key];
6705
+ old = oldAttrs[key];
6706
+ if (old !== cur) {
6707
+ setAttr(elm, key, cur);
6708
+ }
6709
+ }
6710
+ // #4391: in IE9, setting type can reset value for input[type=radio]
6711
+ // #6666: IE/Edge forces progress value down to 1 before setting a max
6712
+ /* istanbul ignore if */
6713
+ if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {
6714
+ setAttr(elm, 'value', attrs.value);
6715
+ }
6716
+ for (key in oldAttrs) {
6717
+ if (isUndef(attrs[key])) {
6718
+ if (isXlink(key)) {
6719
+ elm.removeAttributeNS(xlinkNS, getXlinkProp(key));
6720
+ } else if (!isEnumeratedAttr(key)) {
6721
+ elm.removeAttribute(key);
6722
+ }
6723
+ }
6724
+ }
6725
+ }
6726
+
6727
+ function setAttr (el, key, value) {
6728
+ if (el.tagName.indexOf('-') > -1) {
6729
+ baseSetAttr(el, key, value);
6730
+ } else if (isBooleanAttr(key)) {
6731
+ // set attribute for blank value
6732
+ // e.g. <option disabled>Select one</option>
6733
+ if (isFalsyAttrValue(value)) {
6734
+ el.removeAttribute(key);
6735
+ } else {
6736
+ // technically allowfullscreen is a boolean attribute for <iframe>,
6737
+ // but Flash expects a value of "true" when used on <embed> tag
6738
+ value = key === 'allowfullscreen' && el.tagName === 'EMBED'
6739
+ ? 'true'
6740
+ : key;
6741
+ el.setAttribute(key, value);
6742
+ }
6743
+ } else if (isEnumeratedAttr(key)) {
6744
+ el.setAttribute(key, isFalsyAttrValue(value) || value === 'false' ? 'false' : 'true');
6745
+ } else if (isXlink(key)) {
6746
+ if (isFalsyAttrValue(value)) {
6747
+ el.removeAttributeNS(xlinkNS, getXlinkProp(key));
6748
+ } else {
6749
+ el.setAttributeNS(xlinkNS, key, value);
6750
+ }
6751
+ } else {
6752
+ baseSetAttr(el, key, value);
6753
+ }
6754
+ }
6755
+
6756
+ function baseSetAttr (el, key, value) {
6757
+ if (isFalsyAttrValue(value)) {
6758
+ el.removeAttribute(key);
6759
+ } else {
6760
+ // #7138: IE10 & 11 fires input event when setting placeholder on
6761
+ // <textarea>... block the first input event and remove the blocker
6762
+ // immediately.
6763
+ /* istanbul ignore if */
6764
+ if (
6765
+ isIE && !isIE9 &&
6766
+ el.tagName === 'TEXTAREA' &&
6767
+ key === 'placeholder' && !el.__ieph
6768
+ ) {
6769
+ var blocker = function (e) {
6770
+ e.stopImmediatePropagation();
6771
+ el.removeEventListener('input', blocker);
6772
+ };
6773
+ el.addEventListener('input', blocker);
6774
+ // $flow-disable-line
6775
+ el.__ieph = true; /* IE placeholder patched */
6776
+ }
6777
+ el.setAttribute(key, value);
6778
+ }
6779
+ }
6780
+
6781
+ var attrs = {
6782
+ create: updateAttrs,
6783
+ update: updateAttrs
6784
+ }
6785
+
6786
+ /* */
6787
+
6788
+ function updateClass (oldVnode, vnode) {
6789
+ var el = vnode.elm;
6790
+ var data = vnode.data;
6791
+ var oldData = oldVnode.data;
6792
+ if (
6793
+ isUndef(data.staticClass) &&
6794
+ isUndef(data.class) && (
6795
+ isUndef(oldData) || (
6796
+ isUndef(oldData.staticClass) &&
6797
+ isUndef(oldData.class)
6798
+ )
6799
+ )
6800
+ ) {
6801
+ return
6802
+ }
6803
+
6804
+ var cls = genClassForVnode(vnode);
6805
+
6806
+ // handle transition classes
6807
+ var transitionClass = el._transitionClasses;
6808
+ if (isDef(transitionClass)) {
6809
+ cls = concat(cls, stringifyClass(transitionClass));
6810
+ }
6811
+
6812
+ // set the class
6813
+ if (cls !== el._prevClass) {
6814
+ el.setAttribute('class', cls);
6815
+ el._prevClass = cls;
6816
+ }
6817
+ }
6818
+
6819
+ var klass = {
6820
+ create: updateClass,
6821
+ update: updateClass
6822
+ }
6823
+
6824
+ /* */
6825
+
6826
+ var validDivisionCharRE = /[\w).+\-_$\]]/;
6827
+
6828
+ function parseFilters (exp) {
6829
+ var inSingle = false;
6830
+ var inDouble = false;
6831
+ var inTemplateString = false;
6832
+ var inRegex = false;
6833
+ var curly = 0;
6834
+ var square = 0;
6835
+ var paren = 0;
6836
+ var lastFilterIndex = 0;
6837
+ var c, prev, i, expression, filters;
6838
+
6839
+ for (i = 0; i < exp.length; i++) {
6840
+ prev = c;
6841
+ c = exp.charCodeAt(i);
6842
+ if (inSingle) {
6843
+ if (c === 0x27 && prev !== 0x5C) { inSingle = false; }
6844
+ } else if (inDouble) {
6845
+ if (c === 0x22 && prev !== 0x5C) { inDouble = false; }
6846
+ } else if (inTemplateString) {
6847
+ if (c === 0x60 && prev !== 0x5C) { inTemplateString = false; }
6848
+ } else if (inRegex) {
6849
+ if (c === 0x2f && prev !== 0x5C) { inRegex = false; }
6850
+ } else if (
6851
+ c === 0x7C && // pipe
6852
+ exp.charCodeAt(i + 1) !== 0x7C &&
6853
+ exp.charCodeAt(i - 1) !== 0x7C &&
6854
+ !curly && !square && !paren
6855
+ ) {
6856
+ if (expression === undefined) {
6857
+ // first filter, end of expression
6858
+ lastFilterIndex = i + 1;
6859
+ expression = exp.slice(0, i).trim();
6860
+ } else {
6861
+ pushFilter();
6862
+ }
6863
+ } else {
6864
+ switch (c) {
6865
+ case 0x22: inDouble = true; break // "
6866
+ case 0x27: inSingle = true; break // '
6867
+ case 0x60: inTemplateString = true; break // `
6868
+ case 0x28: paren++; break // (
6869
+ case 0x29: paren--; break // )
6870
+ case 0x5B: square++; break // [
6871
+ case 0x5D: square--; break // ]
6872
+ case 0x7B: curly++; break // {
6873
+ case 0x7D: curly--; break // }
6874
+ }
6875
+ if (c === 0x2f) { // /
6876
+ var j = i - 1;
6877
+ var p = (void 0);
6878
+ // find first non-whitespace prev char
6879
+ for (; j >= 0; j--) {
6880
+ p = exp.charAt(j);
6881
+ if (p !== ' ') { break }
6882
+ }
6883
+ if (!p || !validDivisionCharRE.test(p)) {
6884
+ inRegex = true;
6885
+ }
6886
+ }
6887
+ }
6888
+ }
6889
+
6890
+ if (expression === undefined) {
6891
+ expression = exp.slice(0, i).trim();
6892
+ } else if (lastFilterIndex !== 0) {
6893
+ pushFilter();
6894
+ }
6895
+
6896
+ function pushFilter () {
6897
+ (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());
6898
+ lastFilterIndex = i + 1;
6899
+ }
6900
+
6901
+ if (filters) {
6902
+ for (i = 0; i < filters.length; i++) {
6903
+ expression = wrapFilter(expression, filters[i]);
6904
+ }
6905
+ }
6906
+
6907
+ return expression
6908
+ }
6909
+
6910
+ function wrapFilter (exp, filter) {
6911
+ var i = filter.indexOf('(');
6912
+ if (i < 0) {
6913
+ // _f: resolveFilter
6914
+ return ("_f(\"" + filter + "\")(" + exp + ")")
6915
+ } else {
6916
+ var name = filter.slice(0, i);
6917
+ var args = filter.slice(i + 1);
6918
+ return ("_f(\"" + name + "\")(" + exp + (args !== ')' ? ',' + args : args))
6919
+ }
6920
+ }
6921
+
6922
+ /* */
6923
+
6924
+ function baseWarn (msg) {
6925
+ console.error(("[Vue compiler]: " + msg));
6926
+ }
6927
+
6928
+ function pluckModuleFunction (
6929
+ modules,
6930
+ key
6931
+ ) {
6932
+ return modules
6933
+ ? modules.map(function (m) { return m[key]; }).filter(function (_) { return _; })
6934
+ : []
6935
+ }
6936
+
6937
+ function addProp (el, name, value) {
6938
+ (el.props || (el.props = [])).push({ name: name, value: value });
6939
+ el.plain = false;
6940
+ }
6941
+
6942
+ function addAttr (el, name, value) {
6943
+ (el.attrs || (el.attrs = [])).push({ name: name, value: value });
6944
+ el.plain = false;
6945
+ }
6946
+
6947
+ // add a raw attr (use this in preTransforms)
6948
+ function addRawAttr (el, name, value) {
6949
+ el.attrsMap[name] = value;
6950
+ el.attrsList.push({ name: name, value: value });
6951
+ }
6952
+
6953
+ function addDirective (
6954
+ el,
6955
+ name,
6956
+ rawName,
6957
+ value,
6958
+ arg,
6959
+ modifiers
6960
+ ) {
6961
+ (el.directives || (el.directives = [])).push({ name: name, rawName: rawName, value: value, arg: arg, modifiers: modifiers });
6962
+ el.plain = false;
6963
+ }
6964
+
6965
+ function addHandler (
6966
+ el,
6967
+ name,
6968
+ value,
6969
+ modifiers,
6970
+ important,
6971
+ warn
6972
+ ) {
6973
+ modifiers = modifiers || emptyObject;
6974
+ // warn prevent and passive modifier
6975
+ /* istanbul ignore if */
6976
+ if (
6977
+ process.env.NODE_ENV !== 'production' && warn &&
6978
+ modifiers.prevent && modifiers.passive
6979
+ ) {
6980
+ warn(
6981
+ 'passive and prevent can\'t be used together. ' +
6982
+ 'Passive handler can\'t prevent default event.'
6983
+ );
6984
+ }
6985
+
6986
+ // check capture modifier
6987
+ if (modifiers.capture) {
6988
+ delete modifiers.capture;
6989
+ name = '!' + name; // mark the event as captured
6990
+ }
6991
+ if (modifiers.once) {
6992
+ delete modifiers.once;
6993
+ name = '~' + name; // mark the event as once
6994
+ }
6995
+ /* istanbul ignore if */
6996
+ if (modifiers.passive) {
6997
+ delete modifiers.passive;
6998
+ name = '&' + name; // mark the event as passive
6999
+ }
7000
+
7001
+ // normalize click.right and click.middle since they don't actually fire
7002
+ // this is technically browser-specific, but at least for now browsers are
7003
+ // the only target envs that have right/middle clicks.
7004
+ if (name === 'click') {
7005
+ if (modifiers.right) {
7006
+ name = 'contextmenu';
7007
+ delete modifiers.right;
7008
+ } else if (modifiers.middle) {
7009
+ name = 'mouseup';
7010
+ }
7011
+ }
7012
+
7013
+ var events;
7014
+ if (modifiers.native) {
7015
+ delete modifiers.native;
7016
+ events = el.nativeEvents || (el.nativeEvents = {});
7017
+ } else {
7018
+ events = el.events || (el.events = {});
7019
+ }
7020
+
7021
+ var newHandler = {
7022
+ value: value.trim()
7023
+ };
7024
+ if (modifiers !== emptyObject) {
7025
+ newHandler.modifiers = modifiers;
7026
+ }
7027
+
7028
+ var handlers = events[name];
7029
+ /* istanbul ignore if */
7030
+ if (Array.isArray(handlers)) {
7031
+ important ? handlers.unshift(newHandler) : handlers.push(newHandler);
7032
+ } else if (handlers) {
7033
+ events[name] = important ? [newHandler, handlers] : [handlers, newHandler];
7034
+ } else {
7035
+ events[name] = newHandler;
7036
+ }
7037
+
7038
+ el.plain = false;
7039
+ }
7040
+
7041
+ function getBindingAttr (
7042
+ el,
7043
+ name,
7044
+ getStatic
7045
+ ) {
7046
+ var dynamicValue =
7047
+ getAndRemoveAttr(el, ':' + name) ||
7048
+ getAndRemoveAttr(el, 'v-bind:' + name);
7049
+ if (dynamicValue != null) {
7050
+ return parseFilters(dynamicValue)
7051
+ } else if (getStatic !== false) {
7052
+ var staticValue = getAndRemoveAttr(el, name);
7053
+ if (staticValue != null) {
7054
+ return JSON.stringify(staticValue)
7055
+ }
7056
+ }
7057
+ }
7058
+
7059
+ // note: this only removes the attr from the Array (attrsList) so that it
7060
+ // doesn't get processed by processAttrs.
7061
+ // By default it does NOT remove it from the map (attrsMap) because the map is
7062
+ // needed during codegen.
7063
+ function getAndRemoveAttr (
7064
+ el,
7065
+ name,
7066
+ removeFromMap
7067
+ ) {
7068
+ var val;
7069
+ if ((val = el.attrsMap[name]) != null) {
7070
+ var list = el.attrsList;
7071
+ for (var i = 0, l = list.length; i < l; i++) {
7072
+ if (list[i].name === name) {
7073
+ list.splice(i, 1);
7074
+ break
7075
+ }
7076
+ }
7077
+ }
7078
+ if (removeFromMap) {
7079
+ delete el.attrsMap[name];
7080
+ }
7081
+ return val
7082
+ }
7083
+
7084
+ /* */
7085
+
7086
+ /**
7087
+ * Cross-platform code generation for component v-model
7088
+ */
7089
+ function genComponentModel (
7090
+ el,
7091
+ value,
7092
+ modifiers
7093
+ ) {
7094
+ var ref = modifiers || {};
7095
+ var number = ref.number;
7096
+ var trim = ref.trim;
7097
+
7098
+ var baseValueExpression = '$$v';
7099
+ var valueExpression = baseValueExpression;
7100
+ if (trim) {
7101
+ valueExpression =
7102
+ "(typeof " + baseValueExpression + " === 'string'" +
7103
+ "? " + baseValueExpression + ".trim()" +
7104
+ ": " + baseValueExpression + ")";
7105
+ }
7106
+ if (number) {
7107
+ valueExpression = "_n(" + valueExpression + ")";
7108
+ }
7109
+ var assignment = genAssignmentCode(value, valueExpression);
7110
+
7111
+ el.model = {
7112
+ value: ("(" + value + ")"),
7113
+ expression: ("\"" + value + "\""),
7114
+ callback: ("function (" + baseValueExpression + ") {" + assignment + "}")
7115
+ };
7116
+ }
7117
+
7118
+ /**
7119
+ * Cross-platform codegen helper for generating v-model value assignment code.
7120
+ */
7121
+ function genAssignmentCode (
7122
+ value,
7123
+ assignment
7124
+ ) {
7125
+ var res = parseModel(value);
7126
+ if (res.key === null) {
7127
+ return (value + "=" + assignment)
7128
+ } else {
7129
+ return ("$set(" + (res.exp) + ", " + (res.key) + ", " + assignment + ")")
7130
+ }
7131
+ }
7132
+
7133
+ /**
7134
+ * Parse a v-model expression into a base path and a final key segment.
7135
+ * Handles both dot-path and possible square brackets.
7136
+ *
7137
+ * Possible cases:
7138
+ *
7139
+ * - test
7140
+ * - test[key]
7141
+ * - test[test1[key]]
7142
+ * - test["a"][key]
7143
+ * - xxx.test[a[a].test1[key]]
7144
+ * - test.xxx.a["asa"][test1[key]]
7145
+ *
7146
+ */
7147
+
7148
+ var len;
7149
+ var str;
7150
+ var chr;
7151
+ var index$1;
7152
+ var expressionPos;
7153
+ var expressionEndPos;
7154
+
7155
+
7156
+
7157
+ function parseModel (val) {
7158
+ // Fix https://github.com/vuejs/vue/pull/7730
7159
+ // allow v-model="obj.val " (trailing whitespace)
7160
+ val = val.trim();
7161
+ len = val.length;
7162
+
7163
+ if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {
7164
+ index$1 = val.lastIndexOf('.');
7165
+ if (index$1 > -1) {
7166
+ return {
7167
+ exp: val.slice(0, index$1),
7168
+ key: '"' + val.slice(index$1 + 1) + '"'
7169
+ }
7170
+ } else {
7171
+ return {
7172
+ exp: val,
7173
+ key: null
7174
+ }
7175
+ }
7176
+ }
7177
+
7178
+ str = val;
7179
+ index$1 = expressionPos = expressionEndPos = 0;
7180
+
7181
+ while (!eof()) {
7182
+ chr = next();
7183
+ /* istanbul ignore if */
7184
+ if (isStringStart(chr)) {
7185
+ parseString(chr);
7186
+ } else if (chr === 0x5B) {
7187
+ parseBracket(chr);
7188
+ }
7189
+ }
7190
+
7191
+ return {
7192
+ exp: val.slice(0, expressionPos),
7193
+ key: val.slice(expressionPos + 1, expressionEndPos)
7194
+ }
7195
+ }
7196
+
7197
+ function next () {
7198
+ return str.charCodeAt(++index$1)
7199
+ }
7200
+
7201
+ function eof () {
7202
+ return index$1 >= len
7203
+ }
7204
+
7205
+ function isStringStart (chr) {
7206
+ return chr === 0x22 || chr === 0x27
7207
+ }
7208
+
7209
+ function parseBracket (chr) {
7210
+ var inBracket = 1;
7211
+ expressionPos = index$1;
7212
+ while (!eof()) {
7213
+ chr = next();
7214
+ if (isStringStart(chr)) {
7215
+ parseString(chr);
7216
+ continue
7217
+ }
7218
+ if (chr === 0x5B) { inBracket++; }
7219
+ if (chr === 0x5D) { inBracket--; }
7220
+ if (inBracket === 0) {
7221
+ expressionEndPos = index$1;
7222
+ break
7223
+ }
7224
+ }
7225
+ }
7226
+
7227
+ function parseString (chr) {
7228
+ var stringQuote = chr;
7229
+ while (!eof()) {
7230
+ chr = next();
7231
+ if (chr === stringQuote) {
7232
+ break
7233
+ }
7234
+ }
7235
+ }
7236
+
7237
+ /* */
7238
+
7239
+ var warn$1;
7240
+
7241
+ // in some cases, the event used has to be determined at runtime
7242
+ // so we used some reserved tokens during compile.
7243
+ var RANGE_TOKEN = '__r';
7244
+ var CHECKBOX_RADIO_TOKEN = '__c';
7245
+
7246
+ function model (
7247
+ el,
7248
+ dir,
7249
+ _warn
7250
+ ) {
7251
+ warn$1 = _warn;
7252
+ var value = dir.value;
7253
+ var modifiers = dir.modifiers;
7254
+ var tag = el.tag;
7255
+ var type = el.attrsMap.type;
7256
+
7257
+ if (process.env.NODE_ENV !== 'production') {
7258
+ // inputs with type="file" are read only and setting the input's
7259
+ // value will throw an error.
7260
+ if (tag === 'input' && type === 'file') {
7261
+ warn$1(
7262
+ "<" + (el.tag) + " v-model=\"" + value + "\" type=\"file\">:\n" +
7263
+ "File inputs are read only. Use a v-on:change listener instead."
7264
+ );
7265
+ }
7266
+ }
7267
+
7268
+ if (el.component) {
7269
+ genComponentModel(el, value, modifiers);
7270
+ // component v-model doesn't need extra runtime
7271
+ return false
7272
+ } else if (tag === 'select') {
7273
+ genSelect(el, value, modifiers);
7274
+ } else if (tag === 'input' && type === 'checkbox') {
7275
+ genCheckboxModel(el, value, modifiers);
7276
+ } else if (tag === 'input' && type === 'radio') {
7277
+ genRadioModel(el, value, modifiers);
7278
+ } else if (tag === 'input' || tag === 'textarea') {
7279
+ genDefaultModel(el, value, modifiers);
7280
+ } else if (!config.isReservedTag(tag)) {
7281
+ genComponentModel(el, value, modifiers);
7282
+ // component v-model doesn't need extra runtime
7283
+ return false
7284
+ } else if (process.env.NODE_ENV !== 'production') {
7285
+ warn$1(
7286
+ "<" + (el.tag) + " v-model=\"" + value + "\">: " +
7287
+ "v-model is not supported on this element type. " +
7288
+ 'If you are working with contenteditable, it\'s recommended to ' +
7289
+ 'wrap a library dedicated for that purpose inside a custom component.'
7290
+ );
7291
+ }
7292
+
7293
+ // ensure runtime directive metadata
7294
+ return true
7295
+ }
7296
+
7297
+ function genCheckboxModel (
7298
+ el,
7299
+ value,
7300
+ modifiers
7301
+ ) {
7302
+ var number = modifiers && modifiers.number;
7303
+ var valueBinding = getBindingAttr(el, 'value') || 'null';
7304
+ var trueValueBinding = getBindingAttr(el, 'true-value') || 'true';
7305
+ var falseValueBinding = getBindingAttr(el, 'false-value') || 'false';
7306
+ addProp(el, 'checked',
7307
+ "Array.isArray(" + value + ")" +
7308
+ "?_i(" + value + "," + valueBinding + ")>-1" + (
7309
+ trueValueBinding === 'true'
7310
+ ? (":(" + value + ")")
7311
+ : (":_q(" + value + "," + trueValueBinding + ")")
7312
+ )
7313
+ );
7314
+ addHandler(el, 'change',
7315
+ "var $$a=" + value + "," +
7316
+ '$$el=$event.target,' +
7317
+ "$$c=$$el.checked?(" + trueValueBinding + "):(" + falseValueBinding + ");" +
7318
+ 'if(Array.isArray($$a)){' +
7319
+ "var $$v=" + (number ? '_n(' + valueBinding + ')' : valueBinding) + "," +
7320
+ '$$i=_i($$a,$$v);' +
7321
+ "if($$el.checked){$$i<0&&(" + (genAssignmentCode(value, '$$a.concat([$$v])')) + ")}" +
7322
+ "else{$$i>-1&&(" + (genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))')) + ")}" +
7323
+ "}else{" + (genAssignmentCode(value, '$$c')) + "}",
7324
+ null, true
7325
+ );
7326
+ }
7327
+
7328
+ function genRadioModel (
7329
+ el,
7330
+ value,
7331
+ modifiers
7332
+ ) {
7333
+ var number = modifiers && modifiers.number;
7334
+ var valueBinding = getBindingAttr(el, 'value') || 'null';
7335
+ valueBinding = number ? ("_n(" + valueBinding + ")") : valueBinding;
7336
+ addProp(el, 'checked', ("_q(" + value + "," + valueBinding + ")"));
7337
+ addHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true);
7338
+ }
7339
+
7340
+ function genSelect (
7341
+ el,
7342
+ value,
7343
+ modifiers
7344
+ ) {
7345
+ var number = modifiers && modifiers.number;
7346
+ var selectedVal = "Array.prototype.filter" +
7347
+ ".call($event.target.options,function(o){return o.selected})" +
7348
+ ".map(function(o){var val = \"_value\" in o ? o._value : o.value;" +
7349
+ "return " + (number ? '_n(val)' : 'val') + "})";
7350
+
7351
+ var assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';
7352
+ var code = "var $$selectedVal = " + selectedVal + ";";
7353
+ code = code + " " + (genAssignmentCode(value, assignment));
7354
+ addHandler(el, 'change', code, null, true);
7355
+ }
7356
+
7357
+ function genDefaultModel (
7358
+ el,
7359
+ value,
7360
+ modifiers
7361
+ ) {
7362
+ var type = el.attrsMap.type;
7363
+
7364
+ // warn if v-bind:value conflicts with v-model
7365
+ // except for inputs with v-bind:type
7366
+ if (process.env.NODE_ENV !== 'production') {
7367
+ var value$1 = el.attrsMap['v-bind:value'] || el.attrsMap[':value'];
7368
+ var typeBinding = el.attrsMap['v-bind:type'] || el.attrsMap[':type'];
7369
+ if (value$1 && !typeBinding) {
7370
+ var binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value';
7371
+ warn$1(
7372
+ binding + "=\"" + value$1 + "\" conflicts with v-model on the same element " +
7373
+ 'because the latter already expands to a value binding internally'
7374
+ );
7375
+ }
7376
+ }
7377
+
7378
+ var ref = modifiers || {};
7379
+ var lazy = ref.lazy;
7380
+ var number = ref.number;
7381
+ var trim = ref.trim;
7382
+ var needCompositionGuard = !lazy && type !== 'range';
7383
+ var event = lazy
7384
+ ? 'change'
7385
+ : type === 'range'
7386
+ ? RANGE_TOKEN
7387
+ : 'input';
7388
+
7389
+ var valueExpression = '$event.target.value';
7390
+ if (trim) {
7391
+ valueExpression = "$event.target.value.trim()";
7392
+ }
7393
+ if (number) {
7394
+ valueExpression = "_n(" + valueExpression + ")";
7395
+ }
7396
+
7397
+ var code = genAssignmentCode(value, valueExpression);
7398
+ if (needCompositionGuard) {
7399
+ code = "if($event.target.composing)return;" + code;
7400
+ }
7401
+
7402
+ addProp(el, 'value', ("(" + value + ")"));
7403
+ addHandler(el, event, code, null, true);
7404
+ if (trim || number) {
7405
+ addHandler(el, 'blur', '$forceUpdate()');
7406
+ }
7407
+ }
7408
+
7409
+ /* */
7410
+
7411
+ // normalize v-model event tokens that can only be determined at runtime.
7412
+ // it's important to place the event as the first in the array because
7413
+ // the whole point is ensuring the v-model callback gets called before
7414
+ // user-attached handlers.
7415
+ function normalizeEvents (on) {
7416
+ /* istanbul ignore if */
7417
+ if (isDef(on[RANGE_TOKEN])) {
7418
+ // IE input[type=range] only supports `change` event
7419
+ var event = isIE ? 'change' : 'input';
7420
+ on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);
7421
+ delete on[RANGE_TOKEN];
7422
+ }
7423
+ // This was originally intended to fix #4521 but no longer necessary
7424
+ // after 2.5. Keeping it for backwards compat with generated code from < 2.4
7425
+ /* istanbul ignore if */
7426
+ if (isDef(on[CHECKBOX_RADIO_TOKEN])) {
7427
+ on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);
7428
+ delete on[CHECKBOX_RADIO_TOKEN];
7429
+ }
7430
+ }
7431
+
7432
+ var target$1;
7433
+
7434
+ function createOnceHandler (handler, event, capture) {
7435
+ var _target = target$1; // save current target element in closure
7436
+ return function onceHandler () {
7437
+ var res = handler.apply(null, arguments);
7438
+ if (res !== null) {
7439
+ remove$2(event, onceHandler, capture, _target);
7440
+ }
7441
+ }
7442
+ }
7443
+
7444
+ function add$1 (
7445
+ event,
7446
+ handler,
7447
+ once$$1,
7448
+ capture,
7449
+ passive
7450
+ ) {
7451
+ handler = withMacroTask(handler);
7452
+ if (once$$1) { handler = createOnceHandler(handler, event, capture); }
7453
+ target$1.addEventListener(
7454
+ event,
7455
+ handler,
7456
+ supportsPassive
7457
+ ? { capture: capture, passive: passive }
7458
+ : capture
7459
+ );
7460
+ }
7461
+
7462
+ function remove$2 (
7463
+ event,
7464
+ handler,
7465
+ capture,
7466
+ _target
7467
+ ) {
7468
+ (_target || target$1).removeEventListener(
7469
+ event,
7470
+ handler._withTask || handler,
7471
+ capture
7472
+ );
7473
+ }
7474
+
7475
+ function updateDOMListeners (oldVnode, vnode) {
7476
+ if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {
7477
+ return
7478
+ }
7479
+ var on = vnode.data.on || {};
7480
+ var oldOn = oldVnode.data.on || {};
7481
+ target$1 = vnode.elm;
7482
+ normalizeEvents(on);
7483
+ updateListeners(on, oldOn, add$1, remove$2, vnode.context);
7484
+ target$1 = undefined;
7485
+ }
7486
+
7487
+ var events = {
7488
+ create: updateDOMListeners,
7489
+ update: updateDOMListeners
7490
+ }
7491
+
7492
+ /* */
7493
+
7494
+ function updateDOMProps (oldVnode, vnode) {
7495
+ if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {
7496
+ return
7497
+ }
7498
+ var key, cur;
7499
+ var elm = vnode.elm;
7500
+ var oldProps = oldVnode.data.domProps || {};
7501
+ var props = vnode.data.domProps || {};
7502
+ // clone observed objects, as the user probably wants to mutate it
7503
+ if (isDef(props.__ob__)) {
7504
+ props = vnode.data.domProps = extend({}, props);
7505
+ }
7506
+
7507
+ for (key in oldProps) {
7508
+ if (isUndef(props[key])) {
7509
+ elm[key] = '';
7510
+ }
7511
+ }
7512
+ for (key in props) {
7513
+ cur = props[key];
7514
+ // ignore children if the node has textContent or innerHTML,
7515
+ // as these will throw away existing DOM nodes and cause removal errors
7516
+ // on subsequent patches (#3360)
7517
+ if (key === 'textContent' || key === 'innerHTML') {
7518
+ if (vnode.children) { vnode.children.length = 0; }
7519
+ if (cur === oldProps[key]) { continue }
7520
+ // #6601 work around Chrome version <= 55 bug where single textNode
7521
+ // replaced by innerHTML/textContent retains its parentNode property
7522
+ if (elm.childNodes.length === 1) {
7523
+ elm.removeChild(elm.childNodes[0]);
7524
+ }
7525
+ }
7526
+
7527
+ if (key === 'value') {
7528
+ // store value as _value as well since
7529
+ // non-string values will be stringified
7530
+ elm._value = cur;
7531
+ // avoid resetting cursor position when value is the same
7532
+ var strCur = isUndef(cur) ? '' : String(cur);
7533
+ if (shouldUpdateValue(elm, strCur)) {
7534
+ elm.value = strCur;
7535
+ }
7536
+ } else {
7537
+ elm[key] = cur;
7538
+ }
7539
+ }
7540
+ }
7541
+
7542
+ // check platforms/web/util/attrs.js acceptValue
7543
+
7544
+
7545
+ function shouldUpdateValue (elm, checkVal) {
7546
+ return (!elm.composing && (
7547
+ elm.tagName === 'OPTION' ||
7548
+ isNotInFocusAndDirty(elm, checkVal) ||
7549
+ isDirtyWithModifiers(elm, checkVal)
7550
+ ))
7551
+ }
7552
+
7553
+ function isNotInFocusAndDirty (elm, checkVal) {
7554
+ // return true when textbox (.number and .trim) loses focus and its value is
7555
+ // not equal to the updated value
7556
+ var notInFocus = true;
7557
+ // #6157
7558
+ // work around IE bug when accessing document.activeElement in an iframe
7559
+ try { notInFocus = document.activeElement !== elm; } catch (e) {}
7560
+ return notInFocus && elm.value !== checkVal
7561
+ }
7562
+
7563
+ function isDirtyWithModifiers (elm, newVal) {
7564
+ var value = elm.value;
7565
+ var modifiers = elm._vModifiers; // injected by v-model runtime
7566
+ if (isDef(modifiers)) {
7567
+ if (modifiers.lazy) {
7568
+ // inputs with lazy should only be updated when not in focus
7569
+ return false
7570
+ }
7571
+ if (modifiers.number) {
7572
+ return toNumber(value) !== toNumber(newVal)
7573
+ }
7574
+ if (modifiers.trim) {
7575
+ return value.trim() !== newVal.trim()
7576
+ }
7577
+ }
7578
+ return value !== newVal
7579
+ }
7580
+
7581
+ var domProps = {
7582
+ create: updateDOMProps,
7583
+ update: updateDOMProps
7584
+ }
7585
+
7586
+ /* */
7587
+
7588
+ var parseStyleText = cached(function (cssText) {
7589
+ var res = {};
7590
+ var listDelimiter = /;(?![^(]*\))/g;
7591
+ var propertyDelimiter = /:(.+)/;
7592
+ cssText.split(listDelimiter).forEach(function (item) {
7593
+ if (item) {
7594
+ var tmp = item.split(propertyDelimiter);
7595
+ tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());
7596
+ }
7597
+ });
7598
+ return res
7599
+ });
7600
+
7601
+ // merge static and dynamic style data on the same vnode
7602
+ function normalizeStyleData (data) {
7603
+ var style = normalizeStyleBinding(data.style);
7604
+ // static style is pre-processed into an object during compilation
7605
+ // and is always a fresh object, so it's safe to merge into it
7606
+ return data.staticStyle
7607
+ ? extend(data.staticStyle, style)
7608
+ : style
7609
+ }
7610
+
7611
+ // normalize possible array / string values into Object
7612
+ function normalizeStyleBinding (bindingStyle) {
7613
+ if (Array.isArray(bindingStyle)) {
7614
+ return toObject(bindingStyle)
7615
+ }
7616
+ if (typeof bindingStyle === 'string') {
7617
+ return parseStyleText(bindingStyle)
7618
+ }
7619
+ return bindingStyle
7620
+ }
7621
+
7622
+ /**
7623
+ * parent component style should be after child's
7624
+ * so that parent component's style could override it
7625
+ */
7626
+ function getStyle (vnode, checkChild) {
7627
+ var res = {};
7628
+ var styleData;
7629
+
7630
+ if (checkChild) {
7631
+ var childNode = vnode;
7632
+ while (childNode.componentInstance) {
7633
+ childNode = childNode.componentInstance._vnode;
7634
+ if (
7635
+ childNode && childNode.data &&
7636
+ (styleData = normalizeStyleData(childNode.data))
7637
+ ) {
7638
+ extend(res, styleData);
7639
+ }
7640
+ }
7641
+ }
7642
+
7643
+ if ((styleData = normalizeStyleData(vnode.data))) {
7644
+ extend(res, styleData);
7645
+ }
7646
+
7647
+ var parentNode = vnode;
7648
+ while ((parentNode = parentNode.parent)) {
7649
+ if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {
7650
+ extend(res, styleData);
7651
+ }
7652
+ }
7653
+ return res
7654
+ }
7655
+
7656
+ /* */
7657
+
7658
+ var cssVarRE = /^--/;
7659
+ var importantRE = /\s*!important$/;
7660
+ var setProp = function (el, name, val) {
7661
+ /* istanbul ignore if */
7662
+ if (cssVarRE.test(name)) {
7663
+ el.style.setProperty(name, val);
7664
+ } else if (importantRE.test(val)) {
7665
+ el.style.setProperty(name, val.replace(importantRE, ''), 'important');
7666
+ } else {
7667
+ var normalizedName = normalize(name);
7668
+ if (Array.isArray(val)) {
7669
+ // Support values array created by autoprefixer, e.g.
7670
+ // {display: ["-webkit-box", "-ms-flexbox", "flex"]}
7671
+ // Set them one by one, and the browser will only set those it can recognize
7672
+ for (var i = 0, len = val.length; i < len; i++) {
7673
+ el.style[normalizedName] = val[i];
7674
+ }
7675
+ } else {
7676
+ el.style[normalizedName] = val;
7677
+ }
7678
+ }
7679
+ };
7680
+
7681
+ var vendorNames = ['Webkit', 'Moz', 'ms'];
7682
+
7683
+ var emptyStyle;
7684
+ var normalize = cached(function (prop) {
7685
+ emptyStyle = emptyStyle || document.createElement('div').style;
7686
+ prop = camelize(prop);
7687
+ if (prop !== 'filter' && (prop in emptyStyle)) {
7688
+ return prop
7689
+ }
7690
+ var capName = prop.charAt(0).toUpperCase() + prop.slice(1);
7691
+ for (var i = 0; i < vendorNames.length; i++) {
7692
+ var name = vendorNames[i] + capName;
7693
+ if (name in emptyStyle) {
7694
+ return name
7695
+ }
7696
+ }
7697
+ });
7698
+
7699
+ function updateStyle (oldVnode, vnode) {
7700
+ var data = vnode.data;
7701
+ var oldData = oldVnode.data;
7702
+
7703
+ if (isUndef(data.staticStyle) && isUndef(data.style) &&
7704
+ isUndef(oldData.staticStyle) && isUndef(oldData.style)
7705
+ ) {
7706
+ return
7707
+ }
7708
+
7709
+ var cur, name;
7710
+ var el = vnode.elm;
7711
+ var oldStaticStyle = oldData.staticStyle;
7712
+ var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};
7713
+
7714
+ // if static style exists, stylebinding already merged into it when doing normalizeStyleData
7715
+ var oldStyle = oldStaticStyle || oldStyleBinding;
7716
+
7717
+ var style = normalizeStyleBinding(vnode.data.style) || {};
7718
+
7719
+ // store normalized style under a different key for next diff
7720
+ // make sure to clone it if it's reactive, since the user likely wants
7721
+ // to mutate it.
7722
+ vnode.data.normalizedStyle = isDef(style.__ob__)
7723
+ ? extend({}, style)
7724
+ : style;
7725
+
7726
+ var newStyle = getStyle(vnode, true);
7727
+
7728
+ for (name in oldStyle) {
7729
+ if (isUndef(newStyle[name])) {
7730
+ setProp(el, name, '');
7731
+ }
7732
+ }
7733
+ for (name in newStyle) {
7734
+ cur = newStyle[name];
7735
+ if (cur !== oldStyle[name]) {
7736
+ // ie9 setting to null has no effect, must use empty string
7737
+ setProp(el, name, cur == null ? '' : cur);
7738
+ }
7739
+ }
7740
+ }
7741
+
7742
+ var style = {
7743
+ create: updateStyle,
7744
+ update: updateStyle
7745
+ }
7746
+
7747
+ /* */
7748
+
7749
+ /**
7750
+ * Add class with compatibility for SVG since classList is not supported on
7751
+ * SVG elements in IE
7752
+ */
7753
+ function addClass (el, cls) {
7754
+ /* istanbul ignore if */
7755
+ if (!cls || !(cls = cls.trim())) {
7756
+ return
7757
+ }
7758
+
7759
+ /* istanbul ignore else */
7760
+ if (el.classList) {
7761
+ if (cls.indexOf(' ') > -1) {
7762
+ cls.split(/\s+/).forEach(function (c) { return el.classList.add(c); });
7763
+ } else {
7764
+ el.classList.add(cls);
7765
+ }
7766
+ } else {
7767
+ var cur = " " + (el.getAttribute('class') || '') + " ";
7768
+ if (cur.indexOf(' ' + cls + ' ') < 0) {
7769
+ el.setAttribute('class', (cur + cls).trim());
7770
+ }
7771
+ }
7772
+ }
7773
+
7774
+ /**
7775
+ * Remove class with compatibility for SVG since classList is not supported on
7776
+ * SVG elements in IE
7777
+ */
7778
+ function removeClass (el, cls) {
7779
+ /* istanbul ignore if */
7780
+ if (!cls || !(cls = cls.trim())) {
7781
+ return
7782
+ }
7783
+
7784
+ /* istanbul ignore else */
7785
+ if (el.classList) {
7786
+ if (cls.indexOf(' ') > -1) {
7787
+ cls.split(/\s+/).forEach(function (c) { return el.classList.remove(c); });
7788
+ } else {
7789
+ el.classList.remove(cls);
7790
+ }
7791
+ if (!el.classList.length) {
7792
+ el.removeAttribute('class');
7793
+ }
7794
+ } else {
7795
+ var cur = " " + (el.getAttribute('class') || '') + " ";
7796
+ var tar = ' ' + cls + ' ';
7797
+ while (cur.indexOf(tar) >= 0) {
7798
+ cur = cur.replace(tar, ' ');
7799
+ }
7800
+ cur = cur.trim();
7801
+ if (cur) {
7802
+ el.setAttribute('class', cur);
7803
+ } else {
7804
+ el.removeAttribute('class');
7805
+ }
7806
+ }
7807
+ }
7808
+
7809
+ /* */
7810
+
7811
+ function resolveTransition (def) {
7812
+ if (!def) {
7813
+ return
7814
+ }
7815
+ /* istanbul ignore else */
7816
+ if (typeof def === 'object') {
7817
+ var res = {};
7818
+ if (def.css !== false) {
7819
+ extend(res, autoCssTransition(def.name || 'v'));
7820
+ }
7821
+ extend(res, def);
7822
+ return res
7823
+ } else if (typeof def === 'string') {
7824
+ return autoCssTransition(def)
7825
+ }
7826
+ }
7827
+
7828
+ var autoCssTransition = cached(function (name) {
7829
+ return {
7830
+ enterClass: (name + "-enter"),
7831
+ enterToClass: (name + "-enter-to"),
7832
+ enterActiveClass: (name + "-enter-active"),
7833
+ leaveClass: (name + "-leave"),
7834
+ leaveToClass: (name + "-leave-to"),
7835
+ leaveActiveClass: (name + "-leave-active")
7836
+ }
7837
+ });
7838
+
7839
+ var hasTransition = inBrowser && !isIE9;
7840
+ var TRANSITION = 'transition';
7841
+ var ANIMATION = 'animation';
7842
+
7843
+ // Transition property/event sniffing
7844
+ var transitionProp = 'transition';
7845
+ var transitionEndEvent = 'transitionend';
7846
+ var animationProp = 'animation';
7847
+ var animationEndEvent = 'animationend';
7848
+ if (hasTransition) {
7849
+ /* istanbul ignore if */
7850
+ if (window.ontransitionend === undefined &&
7851
+ window.onwebkittransitionend !== undefined
7852
+ ) {
7853
+ transitionProp = 'WebkitTransition';
7854
+ transitionEndEvent = 'webkitTransitionEnd';
7855
+ }
7856
+ if (window.onanimationend === undefined &&
7857
+ window.onwebkitanimationend !== undefined
7858
+ ) {
7859
+ animationProp = 'WebkitAnimation';
7860
+ animationEndEvent = 'webkitAnimationEnd';
7861
+ }
7862
+ }
7863
+
7864
+ // binding to window is necessary to make hot reload work in IE in strict mode
7865
+ var raf = inBrowser
7866
+ ? window.requestAnimationFrame
7867
+ ? window.requestAnimationFrame.bind(window)
7868
+ : setTimeout
7869
+ : /* istanbul ignore next */ function (fn) { return fn(); };
7870
+
7871
+ function nextFrame (fn) {
7872
+ raf(function () {
7873
+ raf(fn);
7874
+ });
7875
+ }
7876
+
7877
+ function addTransitionClass (el, cls) {
7878
+ var transitionClasses = el._transitionClasses || (el._transitionClasses = []);
7879
+ if (transitionClasses.indexOf(cls) < 0) {
7880
+ transitionClasses.push(cls);
7881
+ addClass(el, cls);
7882
+ }
7883
+ }
7884
+
7885
+ function removeTransitionClass (el, cls) {
7886
+ if (el._transitionClasses) {
7887
+ remove(el._transitionClasses, cls);
7888
+ }
7889
+ removeClass(el, cls);
7890
+ }
7891
+
7892
+ function whenTransitionEnds (
7893
+ el,
7894
+ expectedType,
7895
+ cb
7896
+ ) {
7897
+ var ref = getTransitionInfo(el, expectedType);
7898
+ var type = ref.type;
7899
+ var timeout = ref.timeout;
7900
+ var propCount = ref.propCount;
7901
+ if (!type) { return cb() }
7902
+ var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;
7903
+ var ended = 0;
7904
+ var end = function () {
7905
+ el.removeEventListener(event, onEnd);
7906
+ cb();
7907
+ };
7908
+ var onEnd = function (e) {
7909
+ if (e.target === el) {
7910
+ if (++ended >= propCount) {
7911
+ end();
7912
+ }
7913
+ }
7914
+ };
7915
+ setTimeout(function () {
7916
+ if (ended < propCount) {
7917
+ end();
7918
+ }
7919
+ }, timeout + 1);
7920
+ el.addEventListener(event, onEnd);
7921
+ }
7922
+
7923
+ var transformRE = /\b(transform|all)(,|$)/;
7924
+
7925
+ function getTransitionInfo (el, expectedType) {
7926
+ var styles = window.getComputedStyle(el);
7927
+ var transitionDelays = styles[transitionProp + 'Delay'].split(', ');
7928
+ var transitionDurations = styles[transitionProp + 'Duration'].split(', ');
7929
+ var transitionTimeout = getTimeout(transitionDelays, transitionDurations);
7930
+ var animationDelays = styles[animationProp + 'Delay'].split(', ');
7931
+ var animationDurations = styles[animationProp + 'Duration'].split(', ');
7932
+ var animationTimeout = getTimeout(animationDelays, animationDurations);
7933
+
7934
+ var type;
7935
+ var timeout = 0;
7936
+ var propCount = 0;
7937
+ /* istanbul ignore if */
7938
+ if (expectedType === TRANSITION) {
7939
+ if (transitionTimeout > 0) {
7940
+ type = TRANSITION;
7941
+ timeout = transitionTimeout;
7942
+ propCount = transitionDurations.length;
7943
+ }
7944
+ } else if (expectedType === ANIMATION) {
7945
+ if (animationTimeout > 0) {
7946
+ type = ANIMATION;
7947
+ timeout = animationTimeout;
7948
+ propCount = animationDurations.length;
7949
+ }
7950
+ } else {
7951
+ timeout = Math.max(transitionTimeout, animationTimeout);
7952
+ type = timeout > 0
7953
+ ? transitionTimeout > animationTimeout
7954
+ ? TRANSITION
7955
+ : ANIMATION
7956
+ : null;
7957
+ propCount = type
7958
+ ? type === TRANSITION
7959
+ ? transitionDurations.length
7960
+ : animationDurations.length
7961
+ : 0;
7962
+ }
7963
+ var hasTransform =
7964
+ type === TRANSITION &&
7965
+ transformRE.test(styles[transitionProp + 'Property']);
7966
+ return {
7967
+ type: type,
7968
+ timeout: timeout,
7969
+ propCount: propCount,
7970
+ hasTransform: hasTransform
7971
+ }
7972
+ }
7973
+
7974
+ function getTimeout (delays, durations) {
7975
+ /* istanbul ignore next */
7976
+ while (delays.length < durations.length) {
7977
+ delays = delays.concat(delays);
7978
+ }
7979
+
7980
+ return Math.max.apply(null, durations.map(function (d, i) {
7981
+ return toMs(d) + toMs(delays[i])
7982
+ }))
7983
+ }
7984
+
7985
+ function toMs (s) {
7986
+ return Number(s.slice(0, -1)) * 1000
7987
+ }
7988
+
7989
+ /* */
7990
+
7991
+ function enter (vnode, toggleDisplay) {
7992
+ var el = vnode.elm;
7993
+
7994
+ // call leave callback now
7995
+ if (isDef(el._leaveCb)) {
7996
+ el._leaveCb.cancelled = true;
7997
+ el._leaveCb();
7998
+ }
7999
+
8000
+ var data = resolveTransition(vnode.data.transition);
8001
+ if (isUndef(data)) {
8002
+ return
8003
+ }
8004
+
8005
+ /* istanbul ignore if */
8006
+ if (isDef(el._enterCb) || el.nodeType !== 1) {
8007
+ return
8008
+ }
8009
+
8010
+ var css = data.css;
8011
+ var type = data.type;
8012
+ var enterClass = data.enterClass;
8013
+ var enterToClass = data.enterToClass;
8014
+ var enterActiveClass = data.enterActiveClass;
8015
+ var appearClass = data.appearClass;
8016
+ var appearToClass = data.appearToClass;
8017
+ var appearActiveClass = data.appearActiveClass;
8018
+ var beforeEnter = data.beforeEnter;
8019
+ var enter = data.enter;
8020
+ var afterEnter = data.afterEnter;
8021
+ var enterCancelled = data.enterCancelled;
8022
+ var beforeAppear = data.beforeAppear;
8023
+ var appear = data.appear;
8024
+ var afterAppear = data.afterAppear;
8025
+ var appearCancelled = data.appearCancelled;
8026
+ var duration = data.duration;
8027
+
8028
+ // activeInstance will always be the <transition> component managing this
8029
+ // transition. One edge case to check is when the <transition> is placed
8030
+ // as the root node of a child component. In that case we need to check
8031
+ // <transition>'s parent for appear check.
8032
+ var context = activeInstance;
8033
+ var transitionNode = activeInstance.$vnode;
8034
+ while (transitionNode && transitionNode.parent) {
8035
+ transitionNode = transitionNode.parent;
8036
+ context = transitionNode.context;
8037
+ }
8038
+
8039
+ var isAppear = !context._isMounted || !vnode.isRootInsert;
8040
+
8041
+ if (isAppear && !appear && appear !== '') {
8042
+ return
8043
+ }
8044
+
8045
+ var startClass = isAppear && appearClass
8046
+ ? appearClass
8047
+ : enterClass;
8048
+ var activeClass = isAppear && appearActiveClass
8049
+ ? appearActiveClass
8050
+ : enterActiveClass;
8051
+ var toClass = isAppear && appearToClass
8052
+ ? appearToClass
8053
+ : enterToClass;
8054
+
8055
+ var beforeEnterHook = isAppear
8056
+ ? (beforeAppear || beforeEnter)
8057
+ : beforeEnter;
8058
+ var enterHook = isAppear
8059
+ ? (typeof appear === 'function' ? appear : enter)
8060
+ : enter;
8061
+ var afterEnterHook = isAppear
8062
+ ? (afterAppear || afterEnter)
8063
+ : afterEnter;
8064
+ var enterCancelledHook = isAppear
8065
+ ? (appearCancelled || enterCancelled)
8066
+ : enterCancelled;
8067
+
8068
+ var explicitEnterDuration = toNumber(
8069
+ isObject(duration)
8070
+ ? duration.enter
8071
+ : duration
8072
+ );
8073
+
8074
+ if (process.env.NODE_ENV !== 'production' && explicitEnterDuration != null) {
8075
+ checkDuration(explicitEnterDuration, 'enter', vnode);
8076
+ }
8077
+
8078
+ var expectsCSS = css !== false && !isIE9;
8079
+ var userWantsControl = getHookArgumentsLength(enterHook);
8080
+
8081
+ var cb = el._enterCb = once(function () {
8082
+ if (expectsCSS) {
8083
+ removeTransitionClass(el, toClass);
8084
+ removeTransitionClass(el, activeClass);
8085
+ }
8086
+ if (cb.cancelled) {
8087
+ if (expectsCSS) {
8088
+ removeTransitionClass(el, startClass);
8089
+ }
8090
+ enterCancelledHook && enterCancelledHook(el);
8091
+ } else {
8092
+ afterEnterHook && afterEnterHook(el);
8093
+ }
8094
+ el._enterCb = null;
8095
+ });
8096
+
8097
+ if (!vnode.data.show) {
8098
+ // remove pending leave element on enter by injecting an insert hook
8099
+ mergeVNodeHook(vnode, 'insert', function () {
8100
+ var parent = el.parentNode;
8101
+ var pendingNode = parent && parent._pending && parent._pending[vnode.key];
8102
+ if (pendingNode &&
8103
+ pendingNode.tag === vnode.tag &&
8104
+ pendingNode.elm._leaveCb
8105
+ ) {
8106
+ pendingNode.elm._leaveCb();
8107
+ }
8108
+ enterHook && enterHook(el, cb);
8109
+ });
8110
+ }
8111
+
8112
+ // start enter transition
8113
+ beforeEnterHook && beforeEnterHook(el);
8114
+ if (expectsCSS) {
8115
+ addTransitionClass(el, startClass);
8116
+ addTransitionClass(el, activeClass);
8117
+ nextFrame(function () {
8118
+ removeTransitionClass(el, startClass);
8119
+ if (!cb.cancelled) {
8120
+ addTransitionClass(el, toClass);
8121
+ if (!userWantsControl) {
8122
+ if (isValidDuration(explicitEnterDuration)) {
8123
+ setTimeout(cb, explicitEnterDuration);
8124
+ } else {
8125
+ whenTransitionEnds(el, type, cb);
8126
+ }
8127
+ }
8128
+ }
8129
+ });
8130
+ }
8131
+
8132
+ if (vnode.data.show) {
8133
+ toggleDisplay && toggleDisplay();
8134
+ enterHook && enterHook(el, cb);
8135
+ }
8136
+
8137
+ if (!expectsCSS && !userWantsControl) {
8138
+ cb();
8139
+ }
8140
+ }
8141
+
8142
+ function leave (vnode, rm) {
8143
+ var el = vnode.elm;
8144
+
8145
+ // call enter callback now
8146
+ if (isDef(el._enterCb)) {
8147
+ el._enterCb.cancelled = true;
8148
+ el._enterCb();
8149
+ }
8150
+
8151
+ var data = resolveTransition(vnode.data.transition);
8152
+ if (isUndef(data) || el.nodeType !== 1) {
8153
+ return rm()
8154
+ }
8155
+
8156
+ /* istanbul ignore if */
8157
+ if (isDef(el._leaveCb)) {
8158
+ return
8159
+ }
8160
+
8161
+ var css = data.css;
8162
+ var type = data.type;
8163
+ var leaveClass = data.leaveClass;
8164
+ var leaveToClass = data.leaveToClass;
8165
+ var leaveActiveClass = data.leaveActiveClass;
8166
+ var beforeLeave = data.beforeLeave;
8167
+ var leave = data.leave;
8168
+ var afterLeave = data.afterLeave;
8169
+ var leaveCancelled = data.leaveCancelled;
8170
+ var delayLeave = data.delayLeave;
8171
+ var duration = data.duration;
8172
+
8173
+ var expectsCSS = css !== false && !isIE9;
8174
+ var userWantsControl = getHookArgumentsLength(leave);
8175
+
8176
+ var explicitLeaveDuration = toNumber(
8177
+ isObject(duration)
8178
+ ? duration.leave
8179
+ : duration
8180
+ );
8181
+
8182
+ if (process.env.NODE_ENV !== 'production' && isDef(explicitLeaveDuration)) {
8183
+ checkDuration(explicitLeaveDuration, 'leave', vnode);
8184
+ }
8185
+
8186
+ var cb = el._leaveCb = once(function () {
8187
+ if (el.parentNode && el.parentNode._pending) {
8188
+ el.parentNode._pending[vnode.key] = null;
8189
+ }
8190
+ if (expectsCSS) {
8191
+ removeTransitionClass(el, leaveToClass);
8192
+ removeTransitionClass(el, leaveActiveClass);
8193
+ }
8194
+ if (cb.cancelled) {
8195
+ if (expectsCSS) {
8196
+ removeTransitionClass(el, leaveClass);
8197
+ }
8198
+ leaveCancelled && leaveCancelled(el);
8199
+ } else {
8200
+ rm();
8201
+ afterLeave && afterLeave(el);
8202
+ }
8203
+ el._leaveCb = null;
8204
+ });
8205
+
8206
+ if (delayLeave) {
8207
+ delayLeave(performLeave);
8208
+ } else {
8209
+ performLeave();
8210
+ }
8211
+
8212
+ function performLeave () {
8213
+ // the delayed leave may have already been cancelled
8214
+ if (cb.cancelled) {
8215
+ return
8216
+ }
8217
+ // record leaving element
8218
+ if (!vnode.data.show) {
8219
+ (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;
8220
+ }
8221
+ beforeLeave && beforeLeave(el);
8222
+ if (expectsCSS) {
8223
+ addTransitionClass(el, leaveClass);
8224
+ addTransitionClass(el, leaveActiveClass);
8225
+ nextFrame(function () {
8226
+ removeTransitionClass(el, leaveClass);
8227
+ if (!cb.cancelled) {
8228
+ addTransitionClass(el, leaveToClass);
8229
+ if (!userWantsControl) {
8230
+ if (isValidDuration(explicitLeaveDuration)) {
8231
+ setTimeout(cb, explicitLeaveDuration);
8232
+ } else {
8233
+ whenTransitionEnds(el, type, cb);
8234
+ }
8235
+ }
8236
+ }
8237
+ });
8238
+ }
8239
+ leave && leave(el, cb);
8240
+ if (!expectsCSS && !userWantsControl) {
8241
+ cb();
8242
+ }
8243
+ }
8244
+ }
8245
+
8246
+ // only used in dev mode
8247
+ function checkDuration (val, name, vnode) {
8248
+ if (typeof val !== 'number') {
8249
+ warn(
8250
+ "<transition> explicit " + name + " duration is not a valid number - " +
8251
+ "got " + (JSON.stringify(val)) + ".",
8252
+ vnode.context
8253
+ );
8254
+ } else if (isNaN(val)) {
8255
+ warn(
8256
+ "<transition> explicit " + name + " duration is NaN - " +
8257
+ 'the duration expression might be incorrect.',
8258
+ vnode.context
8259
+ );
8260
+ }
8261
+ }
8262
+
8263
+ function isValidDuration (val) {
8264
+ return typeof val === 'number' && !isNaN(val)
8265
+ }
8266
+
8267
+ /**
8268
+ * Normalize a transition hook's argument length. The hook may be:
8269
+ * - a merged hook (invoker) with the original in .fns
8270
+ * - a wrapped component method (check ._length)
8271
+ * - a plain function (.length)
8272
+ */
8273
+ function getHookArgumentsLength (fn) {
8274
+ if (isUndef(fn)) {
8275
+ return false
8276
+ }
8277
+ var invokerFns = fn.fns;
8278
+ if (isDef(invokerFns)) {
8279
+ // invoker
8280
+ return getHookArgumentsLength(
8281
+ Array.isArray(invokerFns)
8282
+ ? invokerFns[0]
8283
+ : invokerFns
8284
+ )
8285
+ } else {
8286
+ return (fn._length || fn.length) > 1
8287
+ }
8288
+ }
8289
+
8290
+ function _enter (_, vnode) {
8291
+ if (vnode.data.show !== true) {
8292
+ enter(vnode);
8293
+ }
8294
+ }
8295
+
8296
+ var transition = inBrowser ? {
8297
+ create: _enter,
8298
+ activate: _enter,
8299
+ remove: function remove$$1 (vnode, rm) {
8300
+ /* istanbul ignore else */
8301
+ if (vnode.data.show !== true) {
8302
+ leave(vnode, rm);
8303
+ } else {
8304
+ rm();
8305
+ }
8306
+ }
8307
+ } : {}
8308
+
8309
+ var platformModules = [
8310
+ attrs,
8311
+ klass,
8312
+ events,
8313
+ domProps,
8314
+ style,
8315
+ transition
8316
+ ]
8317
+
8318
+ /* */
8319
+
8320
+ // the directive module should be applied last, after all
8321
+ // built-in modules have been applied.
8322
+ var modules = platformModules.concat(baseModules);
8323
+
8324
+ var patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });
8325
+
8326
+ /**
8327
+ * Not type checking this file because flow doesn't like attaching
8328
+ * properties to Elements.
8329
+ */
8330
+
8331
+ /* istanbul ignore if */
8332
+ if (isIE9) {
8333
+ // http://www.matts411.com/post/internet-explorer-9-oninput/
8334
+ document.addEventListener('selectionchange', function () {
8335
+ var el = document.activeElement;
8336
+ if (el && el.vmodel) {
8337
+ trigger(el, 'input');
8338
+ }
8339
+ });
8340
+ }
8341
+
8342
+ var directive = {
8343
+ inserted: function inserted (el, binding, vnode, oldVnode) {
8344
+ if (vnode.tag === 'select') {
8345
+ // #6903
8346
+ if (oldVnode.elm && !oldVnode.elm._vOptions) {
8347
+ mergeVNodeHook(vnode, 'postpatch', function () {
8348
+ directive.componentUpdated(el, binding, vnode);
8349
+ });
8350
+ } else {
8351
+ setSelected(el, binding, vnode.context);
8352
+ }
8353
+ el._vOptions = [].map.call(el.options, getValue);
8354
+ } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {
8355
+ el._vModifiers = binding.modifiers;
8356
+ if (!binding.modifiers.lazy) {
8357
+ el.addEventListener('compositionstart', onCompositionStart);
8358
+ el.addEventListener('compositionend', onCompositionEnd);
8359
+ // Safari < 10.2 & UIWebView doesn't fire compositionend when
8360
+ // switching focus before confirming composition choice
8361
+ // this also fixes the issue where some browsers e.g. iOS Chrome
8362
+ // fires "change" instead of "input" on autocomplete.
8363
+ el.addEventListener('change', onCompositionEnd);
8364
+ /* istanbul ignore if */
8365
+ if (isIE9) {
8366
+ el.vmodel = true;
8367
+ }
8368
+ }
8369
+ }
8370
+ },
8371
+
8372
+ componentUpdated: function componentUpdated (el, binding, vnode) {
8373
+ if (vnode.tag === 'select') {
8374
+ setSelected(el, binding, vnode.context);
8375
+ // in case the options rendered by v-for have changed,
8376
+ // it's possible that the value is out-of-sync with the rendered options.
8377
+ // detect such cases and filter out values that no longer has a matching
8378
+ // option in the DOM.
8379
+ var prevOptions = el._vOptions;
8380
+ var curOptions = el._vOptions = [].map.call(el.options, getValue);
8381
+ if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {
8382
+ // trigger change event if
8383
+ // no matching option found for at least one value
8384
+ var needReset = el.multiple
8385
+ ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })
8386
+ : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);
8387
+ if (needReset) {
8388
+ trigger(el, 'change');
8389
+ }
8390
+ }
8391
+ }
8392
+ }
8393
+ };
8394
+
8395
+ function setSelected (el, binding, vm) {
8396
+ actuallySetSelected(el, binding, vm);
8397
+ /* istanbul ignore if */
8398
+ if (isIE || isEdge) {
8399
+ setTimeout(function () {
8400
+ actuallySetSelected(el, binding, vm);
8401
+ }, 0);
8402
+ }
8403
+ }
8404
+
8405
+ function actuallySetSelected (el, binding, vm) {
8406
+ var value = binding.value;
8407
+ var isMultiple = el.multiple;
8408
+ if (isMultiple && !Array.isArray(value)) {
8409
+ process.env.NODE_ENV !== 'production' && warn(
8410
+ "<select multiple v-model=\"" + (binding.expression) + "\"> " +
8411
+ "expects an Array value for its binding, but got " + (Object.prototype.toString.call(value).slice(8, -1)),
8412
+ vm
8413
+ );
8414
+ return
8415
+ }
8416
+ var selected, option;
8417
+ for (var i = 0, l = el.options.length; i < l; i++) {
8418
+ option = el.options[i];
8419
+ if (isMultiple) {
8420
+ selected = looseIndexOf(value, getValue(option)) > -1;
8421
+ if (option.selected !== selected) {
8422
+ option.selected = selected;
8423
+ }
8424
+ } else {
8425
+ if (looseEqual(getValue(option), value)) {
8426
+ if (el.selectedIndex !== i) {
8427
+ el.selectedIndex = i;
8428
+ }
8429
+ return
8430
+ }
8431
+ }
8432
+ }
8433
+ if (!isMultiple) {
8434
+ el.selectedIndex = -1;
8435
+ }
8436
+ }
8437
+
8438
+ function hasNoMatchingOption (value, options) {
8439
+ return options.every(function (o) { return !looseEqual(o, value); })
8440
+ }
8441
+
8442
+ function getValue (option) {
8443
+ return '_value' in option
8444
+ ? option._value
8445
+ : option.value
8446
+ }
8447
+
8448
+ function onCompositionStart (e) {
8449
+ e.target.composing = true;
8450
+ }
8451
+
8452
+ function onCompositionEnd (e) {
8453
+ // prevent triggering an input event for no reason
8454
+ if (!e.target.composing) { return }
8455
+ e.target.composing = false;
8456
+ trigger(e.target, 'input');
8457
+ }
8458
+
8459
+ function trigger (el, type) {
8460
+ var e = document.createEvent('HTMLEvents');
8461
+ e.initEvent(type, true, true);
8462
+ el.dispatchEvent(e);
8463
+ }
8464
+
8465
+ /* */
8466
+
8467
+ // recursively search for possible transition defined inside the component root
8468
+ function locateNode (vnode) {
8469
+ return vnode.componentInstance && (!vnode.data || !vnode.data.transition)
8470
+ ? locateNode(vnode.componentInstance._vnode)
8471
+ : vnode
8472
+ }
8473
+
8474
+ var show = {
8475
+ bind: function bind (el, ref, vnode) {
8476
+ var value = ref.value;
8477
+
8478
+ vnode = locateNode(vnode);
8479
+ var transition$$1 = vnode.data && vnode.data.transition;
8480
+ var originalDisplay = el.__vOriginalDisplay =
8481
+ el.style.display === 'none' ? '' : el.style.display;
8482
+ if (value && transition$$1) {
8483
+ vnode.data.show = true;
8484
+ enter(vnode, function () {
8485
+ el.style.display = originalDisplay;
8486
+ });
8487
+ } else {
8488
+ el.style.display = value ? originalDisplay : 'none';
8489
+ }
8490
+ },
8491
+
8492
+ update: function update (el, ref, vnode) {
8493
+ var value = ref.value;
8494
+ var oldValue = ref.oldValue;
8495
+
8496
+ /* istanbul ignore if */
8497
+ if (!value === !oldValue) { return }
8498
+ vnode = locateNode(vnode);
8499
+ var transition$$1 = vnode.data && vnode.data.transition;
8500
+ if (transition$$1) {
8501
+ vnode.data.show = true;
8502
+ if (value) {
8503
+ enter(vnode, function () {
8504
+ el.style.display = el.__vOriginalDisplay;
8505
+ });
8506
+ } else {
8507
+ leave(vnode, function () {
8508
+ el.style.display = 'none';
8509
+ });
8510
+ }
8511
+ } else {
8512
+ el.style.display = value ? el.__vOriginalDisplay : 'none';
8513
+ }
8514
+ },
8515
+
8516
+ unbind: function unbind (
8517
+ el,
8518
+ binding,
8519
+ vnode,
8520
+ oldVnode,
8521
+ isDestroy
8522
+ ) {
8523
+ if (!isDestroy) {
8524
+ el.style.display = el.__vOriginalDisplay;
8525
+ }
8526
+ }
8527
+ }
8528
+
8529
+ var platformDirectives = {
8530
+ model: directive,
8531
+ show: show
8532
+ }
8533
+
8534
+ /* */
8535
+
8536
+ // Provides transition support for a single element/component.
8537
+ // supports transition mode (out-in / in-out)
8538
+
8539
+ var transitionProps = {
8540
+ name: String,
8541
+ appear: Boolean,
8542
+ css: Boolean,
8543
+ mode: String,
8544
+ type: String,
8545
+ enterClass: String,
8546
+ leaveClass: String,
8547
+ enterToClass: String,
8548
+ leaveToClass: String,
8549
+ enterActiveClass: String,
8550
+ leaveActiveClass: String,
8551
+ appearClass: String,
8552
+ appearActiveClass: String,
8553
+ appearToClass: String,
8554
+ duration: [Number, String, Object]
8555
+ };
8556
+
8557
+ // in case the child is also an abstract component, e.g. <keep-alive>
8558
+ // we want to recursively retrieve the real component to be rendered
8559
+ function getRealChild (vnode) {
8560
+ var compOptions = vnode && vnode.componentOptions;
8561
+ if (compOptions && compOptions.Ctor.options.abstract) {
8562
+ return getRealChild(getFirstComponentChild(compOptions.children))
8563
+ } else {
8564
+ return vnode
8565
+ }
8566
+ }
8567
+
8568
+ function extractTransitionData (comp) {
8569
+ var data = {};
8570
+ var options = comp.$options;
8571
+ // props
8572
+ for (var key in options.propsData) {
8573
+ data[key] = comp[key];
8574
+ }
8575
+ // events.
8576
+ // extract listeners and pass them directly to the transition methods
8577
+ var listeners = options._parentListeners;
8578
+ for (var key$1 in listeners) {
8579
+ data[camelize(key$1)] = listeners[key$1];
8580
+ }
8581
+ return data
8582
+ }
8583
+
8584
+ function placeholder (h, rawChild) {
8585
+ if (/\d-keep-alive$/.test(rawChild.tag)) {
8586
+ return h('keep-alive', {
8587
+ props: rawChild.componentOptions.propsData
8588
+ })
8589
+ }
8590
+ }
8591
+
8592
+ function hasParentTransition (vnode) {
8593
+ while ((vnode = vnode.parent)) {
8594
+ if (vnode.data.transition) {
8595
+ return true
8596
+ }
8597
+ }
8598
+ }
8599
+
8600
+ function isSameChild (child, oldChild) {
8601
+ return oldChild.key === child.key && oldChild.tag === child.tag
8602
+ }
8603
+
8604
+ var Transition = {
8605
+ name: 'transition',
8606
+ props: transitionProps,
8607
+ abstract: true,
8608
+
8609
+ render: function render (h) {
8610
+ var this$1 = this;
8611
+
8612
+ var children = this.$slots.default;
8613
+ if (!children) {
8614
+ return
8615
+ }
8616
+
8617
+ // filter out text nodes (possible whitespaces)
8618
+ children = children.filter(function (c) { return c.tag || isAsyncPlaceholder(c); });
8619
+ /* istanbul ignore if */
8620
+ if (!children.length) {
8621
+ return
8622
+ }
8623
+
8624
+ // warn multiple elements
8625
+ if (process.env.NODE_ENV !== 'production' && children.length > 1) {
8626
+ warn(
8627
+ '<transition> can only be used on a single element. Use ' +
8628
+ '<transition-group> for lists.',
8629
+ this.$parent
8630
+ );
8631
+ }
8632
+
8633
+ var mode = this.mode;
8634
+
8635
+ // warn invalid mode
8636
+ if (process.env.NODE_ENV !== 'production' &&
8637
+ mode && mode !== 'in-out' && mode !== 'out-in'
8638
+ ) {
8639
+ warn(
8640
+ 'invalid <transition> mode: ' + mode,
8641
+ this.$parent
8642
+ );
8643
+ }
8644
+
8645
+ var rawChild = children[0];
8646
+
8647
+ // if this is a component root node and the component's
8648
+ // parent container node also has transition, skip.
8649
+ if (hasParentTransition(this.$vnode)) {
8650
+ return rawChild
8651
+ }
8652
+
8653
+ // apply transition data to child
8654
+ // use getRealChild() to ignore abstract components e.g. keep-alive
8655
+ var child = getRealChild(rawChild);
8656
+ /* istanbul ignore if */
8657
+ if (!child) {
8658
+ return rawChild
8659
+ }
8660
+
8661
+ if (this._leaving) {
8662
+ return placeholder(h, rawChild)
8663
+ }
8664
+
8665
+ // ensure a key that is unique to the vnode type and to this transition
8666
+ // component instance. This key will be used to remove pending leaving nodes
8667
+ // during entering.
8668
+ var id = "__transition-" + (this._uid) + "-";
8669
+ child.key = child.key == null
8670
+ ? child.isComment
8671
+ ? id + 'comment'
8672
+ : id + child.tag
8673
+ : isPrimitive(child.key)
8674
+ ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)
8675
+ : child.key;
8676
+
8677
+ var data = (child.data || (child.data = {})).transition = extractTransitionData(this);
8678
+ var oldRawChild = this._vnode;
8679
+ var oldChild = getRealChild(oldRawChild);
8680
+
8681
+ // mark v-show
8682
+ // so that the transition module can hand over the control to the directive
8683
+ if (child.data.directives && child.data.directives.some(function (d) { return d.name === 'show'; })) {
8684
+ child.data.show = true;
8685
+ }
8686
+
8687
+ if (
8688
+ oldChild &&
8689
+ oldChild.data &&
8690
+ !isSameChild(child, oldChild) &&
8691
+ !isAsyncPlaceholder(oldChild) &&
8692
+ // #6687 component root is a comment node
8693
+ !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)
8694
+ ) {
8695
+ // replace old child transition data with fresh one
8696
+ // important for dynamic transitions!
8697
+ var oldData = oldChild.data.transition = extend({}, data);
8698
+ // handle transition mode
8699
+ if (mode === 'out-in') {
8700
+ // return placeholder node and queue update when leave finishes
8701
+ this._leaving = true;
8702
+ mergeVNodeHook(oldData, 'afterLeave', function () {
8703
+ this$1._leaving = false;
8704
+ this$1.$forceUpdate();
8705
+ });
8706
+ return placeholder(h, rawChild)
8707
+ } else if (mode === 'in-out') {
8708
+ if (isAsyncPlaceholder(child)) {
8709
+ return oldRawChild
8710
+ }
8711
+ var delayedLeave;
8712
+ var performLeave = function () { delayedLeave(); };
8713
+ mergeVNodeHook(data, 'afterEnter', performLeave);
8714
+ mergeVNodeHook(data, 'enterCancelled', performLeave);
8715
+ mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });
8716
+ }
8717
+ }
8718
+
8719
+ return rawChild
8720
+ }
8721
+ }
8722
+
8723
+ /* */
8724
+
8725
+ // Provides transition support for list items.
8726
+ // supports move transitions using the FLIP technique.
8727
+
8728
+ // Because the vdom's children update algorithm is "unstable" - i.e.
8729
+ // it doesn't guarantee the relative positioning of removed elements,
8730
+ // we force transition-group to update its children into two passes:
8731
+ // in the first pass, we remove all nodes that need to be removed,
8732
+ // triggering their leaving transition; in the second pass, we insert/move
8733
+ // into the final desired state. This way in the second pass removed
8734
+ // nodes will remain where they should be.
8735
+
8736
+ var props = extend({
8737
+ tag: String,
8738
+ moveClass: String
8739
+ }, transitionProps);
8740
+
8741
+ delete props.mode;
8742
+
8743
+ var TransitionGroup = {
8744
+ props: props,
8745
+
8746
+ render: function render (h) {
8747
+ var tag = this.tag || this.$vnode.data.tag || 'span';
8748
+ var map = Object.create(null);
8749
+ var prevChildren = this.prevChildren = this.children;
8750
+ var rawChildren = this.$slots.default || [];
8751
+ var children = this.children = [];
8752
+ var transitionData = extractTransitionData(this);
8753
+
8754
+ for (var i = 0; i < rawChildren.length; i++) {
8755
+ var c = rawChildren[i];
8756
+ if (c.tag) {
8757
+ if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {
8758
+ children.push(c);
8759
+ map[c.key] = c
8760
+ ;(c.data || (c.data = {})).transition = transitionData;
8761
+ } else if (process.env.NODE_ENV !== 'production') {
8762
+ var opts = c.componentOptions;
8763
+ var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;
8764
+ warn(("<transition-group> children must be keyed: <" + name + ">"));
8765
+ }
8766
+ }
8767
+ }
8768
+
8769
+ if (prevChildren) {
8770
+ var kept = [];
8771
+ var removed = [];
8772
+ for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {
8773
+ var c$1 = prevChildren[i$1];
8774
+ c$1.data.transition = transitionData;
8775
+ c$1.data.pos = c$1.elm.getBoundingClientRect();
8776
+ if (map[c$1.key]) {
8777
+ kept.push(c$1);
8778
+ } else {
8779
+ removed.push(c$1);
8780
+ }
8781
+ }
8782
+ this.kept = h(tag, null, kept);
8783
+ this.removed = removed;
8784
+ }
8785
+
8786
+ return h(tag, null, children)
8787
+ },
8788
+
8789
+ beforeUpdate: function beforeUpdate () {
8790
+ // force removing pass
8791
+ this.__patch__(
8792
+ this._vnode,
8793
+ this.kept,
8794
+ false, // hydrating
8795
+ true // removeOnly (!important, avoids unnecessary moves)
8796
+ );
8797
+ this._vnode = this.kept;
8798
+ },
8799
+
8800
+ updated: function updated () {
8801
+ var children = this.prevChildren;
8802
+ var moveClass = this.moveClass || ((this.name || 'v') + '-move');
8803
+ if (!children.length || !this.hasMove(children[0].elm, moveClass)) {
8804
+ return
8805
+ }
8806
+
8807
+ // we divide the work into three loops to avoid mixing DOM reads and writes
8808
+ // in each iteration - which helps prevent layout thrashing.
8809
+ children.forEach(callPendingCbs);
8810
+ children.forEach(recordPosition);
8811
+ children.forEach(applyTranslation);
8812
+
8813
+ // force reflow to put everything in position
8814
+ // assign to this to avoid being removed in tree-shaking
8815
+ // $flow-disable-line
8816
+ this._reflow = document.body.offsetHeight;
8817
+
8818
+ children.forEach(function (c) {
8819
+ if (c.data.moved) {
8820
+ var el = c.elm;
8821
+ var s = el.style;
8822
+ addTransitionClass(el, moveClass);
8823
+ s.transform = s.WebkitTransform = s.transitionDuration = '';
8824
+ el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {
8825
+ if (!e || /transform$/.test(e.propertyName)) {
8826
+ el.removeEventListener(transitionEndEvent, cb);
8827
+ el._moveCb = null;
8828
+ removeTransitionClass(el, moveClass);
8829
+ }
8830
+ });
8831
+ }
8832
+ });
8833
+ },
8834
+
8835
+ methods: {
8836
+ hasMove: function hasMove (el, moveClass) {
8837
+ /* istanbul ignore if */
8838
+ if (!hasTransition) {
8839
+ return false
8840
+ }
8841
+ /* istanbul ignore if */
8842
+ if (this._hasMove) {
8843
+ return this._hasMove
8844
+ }
8845
+ // Detect whether an element with the move class applied has
8846
+ // CSS transitions. Since the element may be inside an entering
8847
+ // transition at this very moment, we make a clone of it and remove
8848
+ // all other transition classes applied to ensure only the move class
8849
+ // is applied.
8850
+ var clone = el.cloneNode();
8851
+ if (el._transitionClasses) {
8852
+ el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });
8853
+ }
8854
+ addClass(clone, moveClass);
8855
+ clone.style.display = 'none';
8856
+ this.$el.appendChild(clone);
8857
+ var info = getTransitionInfo(clone);
8858
+ this.$el.removeChild(clone);
8859
+ return (this._hasMove = info.hasTransform)
8860
+ }
8861
+ }
8862
+ }
8863
+
8864
+ function callPendingCbs (c) {
8865
+ /* istanbul ignore if */
8866
+ if (c.elm._moveCb) {
8867
+ c.elm._moveCb();
8868
+ }
8869
+ /* istanbul ignore if */
8870
+ if (c.elm._enterCb) {
8871
+ c.elm._enterCb();
8872
+ }
8873
+ }
8874
+
8875
+ function recordPosition (c) {
8876
+ c.data.newPos = c.elm.getBoundingClientRect();
8877
+ }
8878
+
8879
+ function applyTranslation (c) {
8880
+ var oldPos = c.data.pos;
8881
+ var newPos = c.data.newPos;
8882
+ var dx = oldPos.left - newPos.left;
8883
+ var dy = oldPos.top - newPos.top;
8884
+ if (dx || dy) {
8885
+ c.data.moved = true;
8886
+ var s = c.elm.style;
8887
+ s.transform = s.WebkitTransform = "translate(" + dx + "px," + dy + "px)";
8888
+ s.transitionDuration = '0s';
8889
+ }
8890
+ }
8891
+
8892
+ var platformComponents = {
8893
+ Transition: Transition,
8894
+ TransitionGroup: TransitionGroup
8895
+ }
8896
+
8897
+ /* */
8898
+
8899
+ // install platform specific utils
8900
+ Vue.config.mustUseProp = mustUseProp;
8901
+ Vue.config.isReservedTag = isReservedTag;
8902
+ Vue.config.isReservedAttr = isReservedAttr;
8903
+ Vue.config.getTagNamespace = getTagNamespace;
8904
+ Vue.config.isUnknownElement = isUnknownElement;
8905
+
8906
+ // install platform runtime directives & components
8907
+ extend(Vue.options.directives, platformDirectives);
8908
+ extend(Vue.options.components, platformComponents);
8909
+
8910
+ // install platform patch function
8911
+ Vue.prototype.__patch__ = inBrowser ? patch : noop;
8912
+
8913
+ // public mount method
8914
+ Vue.prototype.$mount = function (
8915
+ el,
8916
+ hydrating
8917
+ ) {
8918
+ el = el && inBrowser ? query(el) : undefined;
8919
+ return mountComponent(this, el, hydrating)
8920
+ };
8921
+
8922
+ // devtools global hook
8923
+ /* istanbul ignore next */
8924
+ if (inBrowser) {
8925
+ setTimeout(function () {
8926
+ if (config.devtools) {
8927
+ if (devtools) {
8928
+ devtools.emit('init', Vue);
8929
+ } else if (
8930
+ process.env.NODE_ENV !== 'production' &&
8931
+ process.env.NODE_ENV !== 'test' &&
8932
+ isChrome
8933
+ ) {
8934
+ console[console.info ? 'info' : 'log'](
8935
+ 'Download the Vue Devtools extension for a better development experience:\n' +
8936
+ 'https://github.com/vuejs/vue-devtools'
8937
+ );
8938
+ }
8939
+ }
8940
+ if (process.env.NODE_ENV !== 'production' &&
8941
+ process.env.NODE_ENV !== 'test' &&
8942
+ config.productionTip !== false &&
8943
+ typeof console !== 'undefined'
8944
+ ) {
8945
+ console[console.info ? 'info' : 'log'](
8946
+ "You are running Vue in development mode.\n" +
8947
+ "Make sure to turn on production mode when deploying for production.\n" +
8948
+ "See more tips at https://vuejs.org/guide/deployment.html"
8949
+ );
8950
+ }
8951
+ }, 0);
8952
+ }
8953
+
8954
+ /* */
8955
+
8956
+ var defaultTagRE = /\{\{((?:.|\n)+?)\}\}/g;
8957
+ var regexEscapeRE = /[-.*+?^${}()|[\]\/\\]/g;
8958
+
8959
+ var buildRegex = cached(function (delimiters) {
8960
+ var open = delimiters[0].replace(regexEscapeRE, '\\$&');
8961
+ var close = delimiters[1].replace(regexEscapeRE, '\\$&');
8962
+ return new RegExp(open + '((?:.|\\n)+?)' + close, 'g')
8963
+ });
8964
+
8965
+
8966
+
8967
+ function parseText (
8968
+ text,
8969
+ delimiters
8970
+ ) {
8971
+ var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;
8972
+ if (!tagRE.test(text)) {
8973
+ return
8974
+ }
8975
+ var tokens = [];
8976
+ var rawTokens = [];
8977
+ var lastIndex = tagRE.lastIndex = 0;
8978
+ var match, index, tokenValue;
8979
+ while ((match = tagRE.exec(text))) {
8980
+ index = match.index;
8981
+ // push text token
8982
+ if (index > lastIndex) {
8983
+ rawTokens.push(tokenValue = text.slice(lastIndex, index));
8984
+ tokens.push(JSON.stringify(tokenValue));
8985
+ }
8986
+ // tag token
8987
+ var exp = parseFilters(match[1].trim());
8988
+ tokens.push(("_s(" + exp + ")"));
8989
+ rawTokens.push({ '@binding': exp });
8990
+ lastIndex = index + match[0].length;
8991
+ }
8992
+ if (lastIndex < text.length) {
8993
+ rawTokens.push(tokenValue = text.slice(lastIndex));
8994
+ tokens.push(JSON.stringify(tokenValue));
8995
+ }
8996
+ return {
8997
+ expression: tokens.join('+'),
8998
+ tokens: rawTokens
8999
+ }
9000
+ }
9001
+
9002
+ /* */
9003
+
9004
+ function transformNode (el, options) {
9005
+ var warn = options.warn || baseWarn;
9006
+ var staticClass = getAndRemoveAttr(el, 'class');
9007
+ if (process.env.NODE_ENV !== 'production' && staticClass) {
9008
+ var res = parseText(staticClass, options.delimiters);
9009
+ if (res) {
9010
+ warn(
9011
+ "class=\"" + staticClass + "\": " +
9012
+ 'Interpolation inside attributes has been removed. ' +
9013
+ 'Use v-bind or the colon shorthand instead. For example, ' +
9014
+ 'instead of <div class="{{ val }}">, use <div :class="val">.'
9015
+ );
9016
+ }
9017
+ }
9018
+ if (staticClass) {
9019
+ el.staticClass = JSON.stringify(staticClass);
9020
+ }
9021
+ var classBinding = getBindingAttr(el, 'class', false /* getStatic */);
9022
+ if (classBinding) {
9023
+ el.classBinding = classBinding;
9024
+ }
9025
+ }
9026
+
9027
+ function genData (el) {
9028
+ var data = '';
9029
+ if (el.staticClass) {
9030
+ data += "staticClass:" + (el.staticClass) + ",";
9031
+ }
9032
+ if (el.classBinding) {
9033
+ data += "class:" + (el.classBinding) + ",";
9034
+ }
9035
+ return data
9036
+ }
9037
+
9038
+ var klass$1 = {
9039
+ staticKeys: ['staticClass'],
9040
+ transformNode: transformNode,
9041
+ genData: genData
9042
+ }
9043
+
9044
+ /* */
9045
+
9046
+ function transformNode$1 (el, options) {
9047
+ var warn = options.warn || baseWarn;
9048
+ var staticStyle = getAndRemoveAttr(el, 'style');
9049
+ if (staticStyle) {
9050
+ /* istanbul ignore if */
9051
+ if (process.env.NODE_ENV !== 'production') {
9052
+ var res = parseText(staticStyle, options.delimiters);
9053
+ if (res) {
9054
+ warn(
9055
+ "style=\"" + staticStyle + "\": " +
9056
+ 'Interpolation inside attributes has been removed. ' +
9057
+ 'Use v-bind or the colon shorthand instead. For example, ' +
9058
+ 'instead of <div style="{{ val }}">, use <div :style="val">.'
9059
+ );
9060
+ }
9061
+ }
9062
+ el.staticStyle = JSON.stringify(parseStyleText(staticStyle));
9063
+ }
9064
+
9065
+ var styleBinding = getBindingAttr(el, 'style', false /* getStatic */);
9066
+ if (styleBinding) {
9067
+ el.styleBinding = styleBinding;
9068
+ }
9069
+ }
9070
+
9071
+ function genData$1 (el) {
9072
+ var data = '';
9073
+ if (el.staticStyle) {
9074
+ data += "staticStyle:" + (el.staticStyle) + ",";
9075
+ }
9076
+ if (el.styleBinding) {
9077
+ data += "style:(" + (el.styleBinding) + "),";
9078
+ }
9079
+ return data
9080
+ }
9081
+
9082
+ var style$1 = {
9083
+ staticKeys: ['staticStyle'],
9084
+ transformNode: transformNode$1,
9085
+ genData: genData$1
9086
+ }
9087
+
9088
+ /* */
9089
+
9090
+ var decoder;
9091
+
9092
+ var he = {
9093
+ decode: function decode (html) {
9094
+ decoder = decoder || document.createElement('div');
9095
+ decoder.innerHTML = html;
9096
+ return decoder.textContent
9097
+ }
9098
+ }
9099
+
9100
+ /* */
9101
+
9102
+ var isUnaryTag = makeMap(
9103
+ 'area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' +
9104
+ 'link,meta,param,source,track,wbr'
9105
+ );
9106
+
9107
+ // Elements that you can, intentionally, leave open
9108
+ // (and which close themselves)
9109
+ var canBeLeftOpenTag = makeMap(
9110
+ 'colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source'
9111
+ );
9112
+
9113
+ // HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3
9114
+ // Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content
9115
+ var isNonPhrasingTag = makeMap(
9116
+ 'address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' +
9117
+ 'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' +
9118
+ 'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' +
9119
+ 'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' +
9120
+ 'title,tr,track'
9121
+ );
9122
+
9123
+ /**
9124
+ * Not type-checking this file because it's mostly vendor code.
9125
+ */
9126
+
9127
+ /*!
9128
+ * HTML Parser By John Resig (ejohn.org)
9129
+ * Modified by Juriy "kangax" Zaytsev
9130
+ * Original code by Erik Arvidsson, Mozilla Public License
9131
+ * http://erik.eae.net/simplehtmlparser/simplehtmlparser.js
9132
+ */
9133
+
9134
+ // Regular Expressions for parsing tags and attributes
9135
+ var attribute = /^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/;
9136
+ // could use https://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-QName
9137
+ // but for Vue templates we can enforce a simple charset
9138
+ var ncname = '[a-zA-Z_][\\w\\-\\.]*';
9139
+ var qnameCapture = "((?:" + ncname + "\\:)?" + ncname + ")";
9140
+ var startTagOpen = new RegExp(("^<" + qnameCapture));
9141
+ var startTagClose = /^\s*(\/?)>/;
9142
+ var endTag = new RegExp(("^<\\/" + qnameCapture + "[^>]*>"));
9143
+ var doctype = /^<!DOCTYPE [^>]+>/i;
9144
+ // #7298: escape - to avoid being pased as HTML comment when inlined in page
9145
+ var comment = /^<!\--/;
9146
+ var conditionalComment = /^<!\[/;
9147
+
9148
+ var IS_REGEX_CAPTURING_BROKEN = false;
9149
+ 'x'.replace(/x(.)?/g, function (m, g) {
9150
+ IS_REGEX_CAPTURING_BROKEN = g === '';
9151
+ });
9152
+
9153
+ // Special Elements (can contain anything)
9154
+ var isPlainTextElement = makeMap('script,style,textarea', true);
9155
+ var reCache = {};
9156
+
9157
+ var decodingMap = {
9158
+ '&lt;': '<',
9159
+ '&gt;': '>',
9160
+ '&quot;': '"',
9161
+ '&amp;': '&',
9162
+ '&#10;': '\n',
9163
+ '&#9;': '\t'
9164
+ };
9165
+ var encodedAttr = /&(?:lt|gt|quot|amp);/g;
9166
+ var encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#10|#9);/g;
9167
+
9168
+ // #5992
9169
+ var isIgnoreNewlineTag = makeMap('pre,textarea', true);
9170
+ var shouldIgnoreFirstNewline = function (tag, html) { return tag && isIgnoreNewlineTag(tag) && html[0] === '\n'; };
9171
+
9172
+ function decodeAttr (value, shouldDecodeNewlines) {
9173
+ var re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;
9174
+ return value.replace(re, function (match) { return decodingMap[match]; })
9175
+ }
9176
+
9177
+ function parseHTML (html, options) {
9178
+ var stack = [];
9179
+ var expectHTML = options.expectHTML;
9180
+ var isUnaryTag$$1 = options.isUnaryTag || no;
9181
+ var canBeLeftOpenTag$$1 = options.canBeLeftOpenTag || no;
9182
+ var index = 0;
9183
+ var last, lastTag;
9184
+ while (html) {
9185
+ last = html;
9186
+ // Make sure we're not in a plaintext content element like script/style
9187
+ if (!lastTag || !isPlainTextElement(lastTag)) {
9188
+ var textEnd = html.indexOf('<');
9189
+ if (textEnd === 0) {
9190
+ // Comment:
9191
+ if (comment.test(html)) {
9192
+ var commentEnd = html.indexOf('-->');
9193
+
9194
+ if (commentEnd >= 0) {
9195
+ if (options.shouldKeepComment) {
9196
+ options.comment(html.substring(4, commentEnd));
9197
+ }
9198
+ advance(commentEnd + 3);
9199
+ continue
9200
+ }
9201
+ }
9202
+
9203
+ // http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment
9204
+ if (conditionalComment.test(html)) {
9205
+ var conditionalEnd = html.indexOf(']>');
9206
+
9207
+ if (conditionalEnd >= 0) {
9208
+ advance(conditionalEnd + 2);
9209
+ continue
9210
+ }
9211
+ }
9212
+
9213
+ // Doctype:
9214
+ var doctypeMatch = html.match(doctype);
9215
+ if (doctypeMatch) {
9216
+ advance(doctypeMatch[0].length);
9217
+ continue
9218
+ }
9219
+
9220
+ // End tag:
9221
+ var endTagMatch = html.match(endTag);
9222
+ if (endTagMatch) {
9223
+ var curIndex = index;
9224
+ advance(endTagMatch[0].length);
9225
+ parseEndTag(endTagMatch[1], curIndex, index);
9226
+ continue
9227
+ }
9228
+
9229
+ // Start tag:
9230
+ var startTagMatch = parseStartTag();
9231
+ if (startTagMatch) {
9232
+ handleStartTag(startTagMatch);
9233
+ if (shouldIgnoreFirstNewline(lastTag, html)) {
9234
+ advance(1);
9235
+ }
9236
+ continue
9237
+ }
9238
+ }
9239
+
9240
+ var text = (void 0), rest = (void 0), next = (void 0);
9241
+ if (textEnd >= 0) {
9242
+ rest = html.slice(textEnd);
9243
+ while (
9244
+ !endTag.test(rest) &&
9245
+ !startTagOpen.test(rest) &&
9246
+ !comment.test(rest) &&
9247
+ !conditionalComment.test(rest)
9248
+ ) {
9249
+ // < in plain text, be forgiving and treat it as text
9250
+ next = rest.indexOf('<', 1);
9251
+ if (next < 0) { break }
9252
+ textEnd += next;
9253
+ rest = html.slice(textEnd);
9254
+ }
9255
+ text = html.substring(0, textEnd);
9256
+ advance(textEnd);
9257
+ }
9258
+
9259
+ if (textEnd < 0) {
9260
+ text = html;
9261
+ html = '';
9262
+ }
9263
+
9264
+ if (options.chars && text) {
9265
+ options.chars(text);
9266
+ }
9267
+ } else {
9268
+ var endTagLength = 0;
9269
+ var stackedTag = lastTag.toLowerCase();
9270
+ var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\s\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));
9271
+ var rest$1 = html.replace(reStackedTag, function (all, text, endTag) {
9272
+ endTagLength = endTag.length;
9273
+ if (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') {
9274
+ text = text
9275
+ .replace(/<!\--([\s\S]*?)-->/g, '$1') // #7298
9276
+ .replace(/<!\[CDATA\[([\s\S]*?)]]>/g, '$1');
9277
+ }
9278
+ if (shouldIgnoreFirstNewline(stackedTag, text)) {
9279
+ text = text.slice(1);
9280
+ }
9281
+ if (options.chars) {
9282
+ options.chars(text);
9283
+ }
9284
+ return ''
9285
+ });
9286
+ index += html.length - rest$1.length;
9287
+ html = rest$1;
9288
+ parseEndTag(stackedTag, index - endTagLength, index);
9289
+ }
9290
+
9291
+ if (html === last) {
9292
+ options.chars && options.chars(html);
9293
+ if (process.env.NODE_ENV !== 'production' && !stack.length && options.warn) {
9294
+ options.warn(("Mal-formatted tag at end of template: \"" + html + "\""));
9295
+ }
9296
+ break
9297
+ }
9298
+ }
9299
+
9300
+ // Clean up any remaining tags
9301
+ parseEndTag();
9302
+
9303
+ function advance (n) {
9304
+ index += n;
9305
+ html = html.substring(n);
9306
+ }
9307
+
9308
+ function parseStartTag () {
9309
+ var start = html.match(startTagOpen);
9310
+ if (start) {
9311
+ var match = {
9312
+ tagName: start[1],
9313
+ attrs: [],
9314
+ start: index
9315
+ };
9316
+ advance(start[0].length);
9317
+ var end, attr;
9318
+ while (!(end = html.match(startTagClose)) && (attr = html.match(attribute))) {
9319
+ advance(attr[0].length);
9320
+ match.attrs.push(attr);
9321
+ }
9322
+ if (end) {
9323
+ match.unarySlash = end[1];
9324
+ advance(end[0].length);
9325
+ match.end = index;
9326
+ return match
9327
+ }
9328
+ }
9329
+ }
9330
+
9331
+ function handleStartTag (match) {
9332
+ var tagName = match.tagName;
9333
+ var unarySlash = match.unarySlash;
9334
+
9335
+ if (expectHTML) {
9336
+ if (lastTag === 'p' && isNonPhrasingTag(tagName)) {
9337
+ parseEndTag(lastTag);
9338
+ }
9339
+ if (canBeLeftOpenTag$$1(tagName) && lastTag === tagName) {
9340
+ parseEndTag(tagName);
9341
+ }
9342
+ }
9343
+
9344
+ var unary = isUnaryTag$$1(tagName) || !!unarySlash;
9345
+
9346
+ var l = match.attrs.length;
9347
+ var attrs = new Array(l);
9348
+ for (var i = 0; i < l; i++) {
9349
+ var args = match.attrs[i];
9350
+ // hackish work around FF bug https://bugzilla.mozilla.org/show_bug.cgi?id=369778
9351
+ if (IS_REGEX_CAPTURING_BROKEN && args[0].indexOf('""') === -1) {
9352
+ if (args[3] === '') { delete args[3]; }
9353
+ if (args[4] === '') { delete args[4]; }
9354
+ if (args[5] === '') { delete args[5]; }
9355
+ }
9356
+ var value = args[3] || args[4] || args[5] || '';
9357
+ var shouldDecodeNewlines = tagName === 'a' && args[1] === 'href'
9358
+ ? options.shouldDecodeNewlinesForHref
9359
+ : options.shouldDecodeNewlines;
9360
+ attrs[i] = {
9361
+ name: args[1],
9362
+ value: decodeAttr(value, shouldDecodeNewlines)
9363
+ };
9364
+ }
9365
+
9366
+ if (!unary) {
9367
+ stack.push({ tag: tagName, lowerCasedTag: tagName.toLowerCase(), attrs: attrs });
9368
+ lastTag = tagName;
9369
+ }
9370
+
9371
+ if (options.start) {
9372
+ options.start(tagName, attrs, unary, match.start, match.end);
9373
+ }
9374
+ }
9375
+
9376
+ function parseEndTag (tagName, start, end) {
9377
+ var pos, lowerCasedTagName;
9378
+ if (start == null) { start = index; }
9379
+ if (end == null) { end = index; }
9380
+
9381
+ if (tagName) {
9382
+ lowerCasedTagName = tagName.toLowerCase();
9383
+ }
9384
+
9385
+ // Find the closest opened tag of the same type
9386
+ if (tagName) {
9387
+ for (pos = stack.length - 1; pos >= 0; pos--) {
9388
+ if (stack[pos].lowerCasedTag === lowerCasedTagName) {
9389
+ break
9390
+ }
9391
+ }
9392
+ } else {
9393
+ // If no tag name is provided, clean shop
9394
+ pos = 0;
9395
+ }
9396
+
9397
+ if (pos >= 0) {
9398
+ // Close all the open elements, up the stack
9399
+ for (var i = stack.length - 1; i >= pos; i--) {
9400
+ if (process.env.NODE_ENV !== 'production' &&
9401
+ (i > pos || !tagName) &&
9402
+ options.warn
9403
+ ) {
9404
+ options.warn(
9405
+ ("tag <" + (stack[i].tag) + "> has no matching end tag.")
9406
+ );
9407
+ }
9408
+ if (options.end) {
9409
+ options.end(stack[i].tag, start, end);
9410
+ }
9411
+ }
9412
+
9413
+ // Remove the open elements from the stack
9414
+ stack.length = pos;
9415
+ lastTag = pos && stack[pos - 1].tag;
9416
+ } else if (lowerCasedTagName === 'br') {
9417
+ if (options.start) {
9418
+ options.start(tagName, [], true, start, end);
9419
+ }
9420
+ } else if (lowerCasedTagName === 'p') {
9421
+ if (options.start) {
9422
+ options.start(tagName, [], false, start, end);
9423
+ }
9424
+ if (options.end) {
9425
+ options.end(tagName, start, end);
9426
+ }
9427
+ }
9428
+ }
9429
+ }
9430
+
9431
+ /* */
9432
+
9433
+ var onRE = /^@|^v-on:/;
9434
+ var dirRE = /^v-|^@|^:/;
9435
+ var forAliasRE = /([^]*?)\s+(?:in|of)\s+([^]*)/;
9436
+ var forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/;
9437
+ var stripParensRE = /^\(|\)$/g;
9438
+
9439
+ var argRE = /:(.*)$/;
9440
+ var bindRE = /^:|^v-bind:/;
9441
+ var modifierRE = /\.[^.]+/g;
9442
+
9443
+ var decodeHTMLCached = cached(he.decode);
9444
+
9445
+ // configurable state
9446
+ var warn$2;
9447
+ var delimiters;
9448
+ var transforms;
9449
+ var preTransforms;
9450
+ var postTransforms;
9451
+ var platformIsPreTag;
9452
+ var platformMustUseProp;
9453
+ var platformGetTagNamespace;
9454
+
9455
+
9456
+
9457
+ function createASTElement (
9458
+ tag,
9459
+ attrs,
9460
+ parent
9461
+ ) {
9462
+ return {
9463
+ type: 1,
9464
+ tag: tag,
9465
+ attrsList: attrs,
9466
+ attrsMap: makeAttrsMap(attrs),
9467
+ parent: parent,
9468
+ children: []
9469
+ }
9470
+ }
9471
+
9472
+ /**
9473
+ * Convert HTML string to AST.
9474
+ */
9475
+ function parse (
9476
+ template,
9477
+ options
9478
+ ) {
9479
+ warn$2 = options.warn || baseWarn;
9480
+
9481
+ platformIsPreTag = options.isPreTag || no;
9482
+ platformMustUseProp = options.mustUseProp || no;
9483
+ platformGetTagNamespace = options.getTagNamespace || no;
9484
+
9485
+ transforms = pluckModuleFunction(options.modules, 'transformNode');
9486
+ preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');
9487
+ postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');
9488
+
9489
+ delimiters = options.delimiters;
9490
+
9491
+ var stack = [];
9492
+ var preserveWhitespace = options.preserveWhitespace !== false;
9493
+ var root;
9494
+ var currentParent;
9495
+ var inVPre = false;
9496
+ var inPre = false;
9497
+ var warned = false;
9498
+
9499
+ function warnOnce (msg) {
9500
+ if (!warned) {
9501
+ warned = true;
9502
+ warn$2(msg);
9503
+ }
9504
+ }
9505
+
9506
+ function closeElement (element) {
9507
+ // check pre state
9508
+ if (element.pre) {
9509
+ inVPre = false;
9510
+ }
9511
+ if (platformIsPreTag(element.tag)) {
9512
+ inPre = false;
9513
+ }
9514
+ // apply post-transforms
9515
+ for (var i = 0; i < postTransforms.length; i++) {
9516
+ postTransforms[i](element, options);
9517
+ }
9518
+ }
9519
+
9520
+ parseHTML(template, {
9521
+ warn: warn$2,
9522
+ expectHTML: options.expectHTML,
9523
+ isUnaryTag: options.isUnaryTag,
9524
+ canBeLeftOpenTag: options.canBeLeftOpenTag,
9525
+ shouldDecodeNewlines: options.shouldDecodeNewlines,
9526
+ shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref,
9527
+ shouldKeepComment: options.comments,
9528
+ start: function start (tag, attrs, unary) {
9529
+ // check namespace.
9530
+ // inherit parent ns if there is one
9531
+ var ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag);
9532
+
9533
+ // handle IE svg bug
9534
+ /* istanbul ignore if */
9535
+ if (isIE && ns === 'svg') {
9536
+ attrs = guardIESVGBug(attrs);
9537
+ }
9538
+
9539
+ var element = createASTElement(tag, attrs, currentParent);
9540
+ if (ns) {
9541
+ element.ns = ns;
9542
+ }
9543
+
9544
+ if (isForbiddenTag(element) && !isServerRendering()) {
9545
+ element.forbidden = true;
9546
+ process.env.NODE_ENV !== 'production' && warn$2(
9547
+ 'Templates should only be responsible for mapping the state to the ' +
9548
+ 'UI. Avoid placing tags with side-effects in your templates, such as ' +
9549
+ "<" + tag + ">" + ', as they will not be parsed.'
9550
+ );
9551
+ }
9552
+
9553
+ // apply pre-transforms
9554
+ for (var i = 0; i < preTransforms.length; i++) {
9555
+ element = preTransforms[i](element, options) || element;
9556
+ }
9557
+
9558
+ if (!inVPre) {
9559
+ processPre(element);
9560
+ if (element.pre) {
9561
+ inVPre = true;
9562
+ }
9563
+ }
9564
+ if (platformIsPreTag(element.tag)) {
9565
+ inPre = true;
9566
+ }
9567
+ if (inVPre) {
9568
+ processRawAttrs(element);
9569
+ } else if (!element.processed) {
9570
+ // structural directives
9571
+ processFor(element);
9572
+ processIf(element);
9573
+ processOnce(element);
9574
+ // element-scope stuff
9575
+ processElement(element, options);
9576
+ }
9577
+
9578
+ function checkRootConstraints (el) {
9579
+ if (process.env.NODE_ENV !== 'production') {
9580
+ if (el.tag === 'slot' || el.tag === 'template') {
9581
+ warnOnce(
9582
+ "Cannot use <" + (el.tag) + "> as component root element because it may " +
9583
+ 'contain multiple nodes.'
9584
+ );
9585
+ }
9586
+ if (el.attrsMap.hasOwnProperty('v-for')) {
9587
+ warnOnce(
9588
+ 'Cannot use v-for on stateful component root element because ' +
9589
+ 'it renders multiple elements.'
9590
+ );
9591
+ }
9592
+ }
9593
+ }
9594
+
9595
+ // tree management
9596
+ if (!root) {
9597
+ root = element;
9598
+ checkRootConstraints(root);
9599
+ } else if (!stack.length) {
9600
+ // allow root elements with v-if, v-else-if and v-else
9601
+ if (root.if && (element.elseif || element.else)) {
9602
+ checkRootConstraints(element);
9603
+ addIfCondition(root, {
9604
+ exp: element.elseif,
9605
+ block: element
9606
+ });
9607
+ } else if (process.env.NODE_ENV !== 'production') {
9608
+ warnOnce(
9609
+ "Component template should contain exactly one root element. " +
9610
+ "If you are using v-if on multiple elements, " +
9611
+ "use v-else-if to chain them instead."
9612
+ );
9613
+ }
9614
+ }
9615
+ if (currentParent && !element.forbidden) {
9616
+ if (element.elseif || element.else) {
9617
+ processIfConditions(element, currentParent);
9618
+ } else if (element.slotScope) { // scoped slot
9619
+ currentParent.plain = false;
9620
+ var name = element.slotTarget || '"default"';(currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element;
9621
+ } else {
9622
+ currentParent.children.push(element);
9623
+ element.parent = currentParent;
9624
+ }
9625
+ }
9626
+ if (!unary) {
9627
+ currentParent = element;
9628
+ stack.push(element);
9629
+ } else {
9630
+ closeElement(element);
9631
+ }
9632
+ },
9633
+
9634
+ end: function end () {
9635
+ // remove trailing whitespace
9636
+ var element = stack[stack.length - 1];
9637
+ var lastNode = element.children[element.children.length - 1];
9638
+ if (lastNode && lastNode.type === 3 && lastNode.text === ' ' && !inPre) {
9639
+ element.children.pop();
9640
+ }
9641
+ // pop stack
9642
+ stack.length -= 1;
9643
+ currentParent = stack[stack.length - 1];
9644
+ closeElement(element);
9645
+ },
9646
+
9647
+ chars: function chars (text) {
9648
+ if (!currentParent) {
9649
+ if (process.env.NODE_ENV !== 'production') {
9650
+ if (text === template) {
9651
+ warnOnce(
9652
+ 'Component template requires a root element, rather than just text.'
9653
+ );
9654
+ } else if ((text = text.trim())) {
9655
+ warnOnce(
9656
+ ("text \"" + text + "\" outside root element will be ignored.")
9657
+ );
9658
+ }
9659
+ }
9660
+ return
9661
+ }
9662
+ // IE textarea placeholder bug
9663
+ /* istanbul ignore if */
9664
+ if (isIE &&
9665
+ currentParent.tag === 'textarea' &&
9666
+ currentParent.attrsMap.placeholder === text
9667
+ ) {
9668
+ return
9669
+ }
9670
+ var children = currentParent.children;
9671
+ text = inPre || text.trim()
9672
+ ? isTextTag(currentParent) ? text : decodeHTMLCached(text)
9673
+ // only preserve whitespace if its not right after a starting tag
9674
+ : preserveWhitespace && children.length ? ' ' : '';
9675
+ if (text) {
9676
+ var res;
9677
+ if (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) {
9678
+ children.push({
9679
+ type: 2,
9680
+ expression: res.expression,
9681
+ tokens: res.tokens,
9682
+ text: text
9683
+ });
9684
+ } else if (text !== ' ' || !children.length || children[children.length - 1].text !== ' ') {
9685
+ children.push({
9686
+ type: 3,
9687
+ text: text
9688
+ });
9689
+ }
9690
+ }
9691
+ },
9692
+ comment: function comment (text) {
9693
+ currentParent.children.push({
9694
+ type: 3,
9695
+ text: text,
9696
+ isComment: true
9697
+ });
9698
+ }
9699
+ });
9700
+ return root
9701
+ }
9702
+
9703
+ function processPre (el) {
9704
+ if (getAndRemoveAttr(el, 'v-pre') != null) {
9705
+ el.pre = true;
9706
+ }
9707
+ }
9708
+
9709
+ function processRawAttrs (el) {
9710
+ var l = el.attrsList.length;
9711
+ if (l) {
9712
+ var attrs = el.attrs = new Array(l);
9713
+ for (var i = 0; i < l; i++) {
9714
+ attrs[i] = {
9715
+ name: el.attrsList[i].name,
9716
+ value: JSON.stringify(el.attrsList[i].value)
9717
+ };
9718
+ }
9719
+ } else if (!el.pre) {
9720
+ // non root node in pre blocks with no attributes
9721
+ el.plain = true;
9722
+ }
9723
+ }
9724
+
9725
+ function processElement (element, options) {
9726
+ processKey(element);
9727
+
9728
+ // determine whether this is a plain element after
9729
+ // removing structural attributes
9730
+ element.plain = !element.key && !element.attrsList.length;
9731
+
9732
+ processRef(element);
9733
+ processSlot(element);
9734
+ processComponent(element);
9735
+ for (var i = 0; i < transforms.length; i++) {
9736
+ element = transforms[i](element, options) || element;
9737
+ }
9738
+ processAttrs(element);
9739
+ }
9740
+
9741
+ function processKey (el) {
9742
+ var exp = getBindingAttr(el, 'key');
9743
+ if (exp) {
9744
+ if (process.env.NODE_ENV !== 'production' && el.tag === 'template') {
9745
+ warn$2("<template> cannot be keyed. Place the key on real elements instead.");
9746
+ }
9747
+ el.key = exp;
9748
+ }
9749
+ }
9750
+
9751
+ function processRef (el) {
9752
+ var ref = getBindingAttr(el, 'ref');
9753
+ if (ref) {
9754
+ el.ref = ref;
9755
+ el.refInFor = checkInFor(el);
9756
+ }
9757
+ }
9758
+
9759
+ function processFor (el) {
9760
+ var exp;
9761
+ if ((exp = getAndRemoveAttr(el, 'v-for'))) {
9762
+ var res = parseFor(exp);
9763
+ if (res) {
9764
+ extend(el, res);
9765
+ } else if (process.env.NODE_ENV !== 'production') {
9766
+ warn$2(
9767
+ ("Invalid v-for expression: " + exp)
9768
+ );
9769
+ }
9770
+ }
9771
+ }
9772
+
9773
+
9774
+
9775
+ function parseFor (exp) {
9776
+ var inMatch = exp.match(forAliasRE);
9777
+ if (!inMatch) { return }
9778
+ var res = {};
9779
+ res.for = inMatch[2].trim();
9780
+ var alias = inMatch[1].trim().replace(stripParensRE, '');
9781
+ var iteratorMatch = alias.match(forIteratorRE);
9782
+ if (iteratorMatch) {
9783
+ res.alias = alias.replace(forIteratorRE, '');
9784
+ res.iterator1 = iteratorMatch[1].trim();
9785
+ if (iteratorMatch[2]) {
9786
+ res.iterator2 = iteratorMatch[2].trim();
9787
+ }
9788
+ } else {
9789
+ res.alias = alias;
9790
+ }
9791
+ return res
9792
+ }
9793
+
9794
+ function processIf (el) {
9795
+ var exp = getAndRemoveAttr(el, 'v-if');
9796
+ if (exp) {
9797
+ el.if = exp;
9798
+ addIfCondition(el, {
9799
+ exp: exp,
9800
+ block: el
9801
+ });
9802
+ } else {
9803
+ if (getAndRemoveAttr(el, 'v-else') != null) {
9804
+ el.else = true;
9805
+ }
9806
+ var elseif = getAndRemoveAttr(el, 'v-else-if');
9807
+ if (elseif) {
9808
+ el.elseif = elseif;
9809
+ }
9810
+ }
9811
+ }
9812
+
9813
+ function processIfConditions (el, parent) {
9814
+ var prev = findPrevElement(parent.children);
9815
+ if (prev && prev.if) {
9816
+ addIfCondition(prev, {
9817
+ exp: el.elseif,
9818
+ block: el
9819
+ });
9820
+ } else if (process.env.NODE_ENV !== 'production') {
9821
+ warn$2(
9822
+ "v-" + (el.elseif ? ('else-if="' + el.elseif + '"') : 'else') + " " +
9823
+ "used on element <" + (el.tag) + "> without corresponding v-if."
9824
+ );
9825
+ }
9826
+ }
9827
+
9828
+ function findPrevElement (children) {
9829
+ var i = children.length;
9830
+ while (i--) {
9831
+ if (children[i].type === 1) {
9832
+ return children[i]
9833
+ } else {
9834
+ if (process.env.NODE_ENV !== 'production' && children[i].text !== ' ') {
9835
+ warn$2(
9836
+ "text \"" + (children[i].text.trim()) + "\" between v-if and v-else(-if) " +
9837
+ "will be ignored."
9838
+ );
9839
+ }
9840
+ children.pop();
9841
+ }
9842
+ }
9843
+ }
9844
+
9845
+ function addIfCondition (el, condition) {
9846
+ if (!el.ifConditions) {
9847
+ el.ifConditions = [];
9848
+ }
9849
+ el.ifConditions.push(condition);
9850
+ }
9851
+
9852
+ function processOnce (el) {
9853
+ var once$$1 = getAndRemoveAttr(el, 'v-once');
9854
+ if (once$$1 != null) {
9855
+ el.once = true;
9856
+ }
9857
+ }
9858
+
9859
+ function processSlot (el) {
9860
+ if (el.tag === 'slot') {
9861
+ el.slotName = getBindingAttr(el, 'name');
9862
+ if (process.env.NODE_ENV !== 'production' && el.key) {
9863
+ warn$2(
9864
+ "`key` does not work on <slot> because slots are abstract outlets " +
9865
+ "and can possibly expand into multiple elements. " +
9866
+ "Use the key on a wrapping element instead."
9867
+ );
9868
+ }
9869
+ } else {
9870
+ var slotScope;
9871
+ if (el.tag === 'template') {
9872
+ slotScope = getAndRemoveAttr(el, 'scope');
9873
+ /* istanbul ignore if */
9874
+ if (process.env.NODE_ENV !== 'production' && slotScope) {
9875
+ warn$2(
9876
+ "the \"scope\" attribute for scoped slots have been deprecated and " +
9877
+ "replaced by \"slot-scope\" since 2.5. The new \"slot-scope\" attribute " +
9878
+ "can also be used on plain elements in addition to <template> to " +
9879
+ "denote scoped slots.",
9880
+ true
9881
+ );
9882
+ }
9883
+ el.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope');
9884
+ } else if ((slotScope = getAndRemoveAttr(el, 'slot-scope'))) {
9885
+ /* istanbul ignore if */
9886
+ if (process.env.NODE_ENV !== 'production' && el.attrsMap['v-for']) {
9887
+ warn$2(
9888
+ "Ambiguous combined usage of slot-scope and v-for on <" + (el.tag) + "> " +
9889
+ "(v-for takes higher priority). Use a wrapper <template> for the " +
9890
+ "scoped slot to make it clearer.",
9891
+ true
9892
+ );
9893
+ }
9894
+ el.slotScope = slotScope;
9895
+ }
9896
+ var slotTarget = getBindingAttr(el, 'slot');
9897
+ if (slotTarget) {
9898
+ el.slotTarget = slotTarget === '""' ? '"default"' : slotTarget;
9899
+ // preserve slot as an attribute for native shadow DOM compat
9900
+ // only for non-scoped slots.
9901
+ if (el.tag !== 'template' && !el.slotScope) {
9902
+ addAttr(el, 'slot', slotTarget);
9903
+ }
9904
+ }
9905
+ }
9906
+ }
9907
+
9908
+ function processComponent (el) {
9909
+ var binding;
9910
+ if ((binding = getBindingAttr(el, 'is'))) {
9911
+ el.component = binding;
9912
+ }
9913
+ if (getAndRemoveAttr(el, 'inline-template') != null) {
9914
+ el.inlineTemplate = true;
9915
+ }
9916
+ }
9917
+
9918
+ function processAttrs (el) {
9919
+ var list = el.attrsList;
9920
+ var i, l, name, rawName, value, modifiers, isProp;
9921
+ for (i = 0, l = list.length; i < l; i++) {
9922
+ name = rawName = list[i].name;
9923
+ value = list[i].value;
9924
+ if (dirRE.test(name)) {
9925
+ // mark element as dynamic
9926
+ el.hasBindings = true;
9927
+ // modifiers
9928
+ modifiers = parseModifiers(name);
9929
+ if (modifiers) {
9930
+ name = name.replace(modifierRE, '');
9931
+ }
9932
+ if (bindRE.test(name)) { // v-bind
9933
+ name = name.replace(bindRE, '');
9934
+ value = parseFilters(value);
9935
+ isProp = false;
9936
+ if (modifiers) {
9937
+ if (modifiers.prop) {
9938
+ isProp = true;
9939
+ name = camelize(name);
9940
+ if (name === 'innerHtml') { name = 'innerHTML'; }
9941
+ }
9942
+ if (modifiers.camel) {
9943
+ name = camelize(name);
9944
+ }
9945
+ if (modifiers.sync) {
9946
+ addHandler(
9947
+ el,
9948
+ ("update:" + (camelize(name))),
9949
+ genAssignmentCode(value, "$event")
9950
+ );
9951
+ }
9952
+ }
9953
+ if (isProp || (
9954
+ !el.component && platformMustUseProp(el.tag, el.attrsMap.type, name)
9955
+ )) {
9956
+ addProp(el, name, value);
9957
+ } else {
9958
+ addAttr(el, name, value);
9959
+ }
9960
+ } else if (onRE.test(name)) { // v-on
9961
+ name = name.replace(onRE, '');
9962
+ addHandler(el, name, value, modifiers, false, warn$2);
9963
+ } else { // normal directives
9964
+ name = name.replace(dirRE, '');
9965
+ // parse arg
9966
+ var argMatch = name.match(argRE);
9967
+ var arg = argMatch && argMatch[1];
9968
+ if (arg) {
9969
+ name = name.slice(0, -(arg.length + 1));
9970
+ }
9971
+ addDirective(el, name, rawName, value, arg, modifiers);
9972
+ if (process.env.NODE_ENV !== 'production' && name === 'model') {
9973
+ checkForAliasModel(el, value);
9974
+ }
9975
+ }
9976
+ } else {
9977
+ // literal attribute
9978
+ if (process.env.NODE_ENV !== 'production') {
9979
+ var res = parseText(value, delimiters);
9980
+ if (res) {
9981
+ warn$2(
9982
+ name + "=\"" + value + "\": " +
9983
+ 'Interpolation inside attributes has been removed. ' +
9984
+ 'Use v-bind or the colon shorthand instead. For example, ' +
9985
+ 'instead of <div id="{{ val }}">, use <div :id="val">.'
9986
+ );
9987
+ }
9988
+ }
9989
+ addAttr(el, name, JSON.stringify(value));
9990
+ // #6887 firefox doesn't update muted state if set via attribute
9991
+ // even immediately after element creation
9992
+ if (!el.component &&
9993
+ name === 'muted' &&
9994
+ platformMustUseProp(el.tag, el.attrsMap.type, name)) {
9995
+ addProp(el, name, 'true');
9996
+ }
9997
+ }
9998
+ }
9999
+ }
10000
+
10001
+ function checkInFor (el) {
10002
+ var parent = el;
10003
+ while (parent) {
10004
+ if (parent.for !== undefined) {
10005
+ return true
10006
+ }
10007
+ parent = parent.parent;
10008
+ }
10009
+ return false
10010
+ }
10011
+
10012
+ function parseModifiers (name) {
10013
+ var match = name.match(modifierRE);
10014
+ if (match) {
10015
+ var ret = {};
10016
+ match.forEach(function (m) { ret[m.slice(1)] = true; });
10017
+ return ret
10018
+ }
10019
+ }
10020
+
10021
+ function makeAttrsMap (attrs) {
10022
+ var map = {};
10023
+ for (var i = 0, l = attrs.length; i < l; i++) {
10024
+ if (
10025
+ process.env.NODE_ENV !== 'production' &&
10026
+ map[attrs[i].name] && !isIE && !isEdge
10027
+ ) {
10028
+ warn$2('duplicate attribute: ' + attrs[i].name);
10029
+ }
10030
+ map[attrs[i].name] = attrs[i].value;
10031
+ }
10032
+ return map
10033
+ }
10034
+
10035
+ // for script (e.g. type="x/template") or style, do not decode content
10036
+ function isTextTag (el) {
10037
+ return el.tag === 'script' || el.tag === 'style'
10038
+ }
10039
+
10040
+ function isForbiddenTag (el) {
10041
+ return (
10042
+ el.tag === 'style' ||
10043
+ (el.tag === 'script' && (
10044
+ !el.attrsMap.type ||
10045
+ el.attrsMap.type === 'text/javascript'
10046
+ ))
10047
+ )
10048
+ }
10049
+
10050
+ var ieNSBug = /^xmlns:NS\d+/;
10051
+ var ieNSPrefix = /^NS\d+:/;
10052
+
10053
+ /* istanbul ignore next */
10054
+ function guardIESVGBug (attrs) {
10055
+ var res = [];
10056
+ for (var i = 0; i < attrs.length; i++) {
10057
+ var attr = attrs[i];
10058
+ if (!ieNSBug.test(attr.name)) {
10059
+ attr.name = attr.name.replace(ieNSPrefix, '');
10060
+ res.push(attr);
10061
+ }
10062
+ }
10063
+ return res
10064
+ }
10065
+
10066
+ function checkForAliasModel (el, value) {
10067
+ var _el = el;
10068
+ while (_el) {
10069
+ if (_el.for && _el.alias === value) {
10070
+ warn$2(
10071
+ "<" + (el.tag) + " v-model=\"" + value + "\">: " +
10072
+ "You are binding v-model directly to a v-for iteration alias. " +
10073
+ "This will not be able to modify the v-for source array because " +
10074
+ "writing to the alias is like modifying a function local variable. " +
10075
+ "Consider using an array of objects and use v-model on an object property instead."
10076
+ );
10077
+ }
10078
+ _el = _el.parent;
10079
+ }
10080
+ }
10081
+
10082
+ /* */
10083
+
10084
+ /**
10085
+ * Expand input[v-model] with dyanmic type bindings into v-if-else chains
10086
+ * Turn this:
10087
+ * <input v-model="data[type]" :type="type">
10088
+ * into this:
10089
+ * <input v-if="type === 'checkbox'" type="checkbox" v-model="data[type]">
10090
+ * <input v-else-if="type === 'radio'" type="radio" v-model="data[type]">
10091
+ * <input v-else :type="type" v-model="data[type]">
10092
+ */
10093
+
10094
+ function preTransformNode (el, options) {
10095
+ if (el.tag === 'input') {
10096
+ var map = el.attrsMap;
10097
+ if (!map['v-model']) {
10098
+ return
10099
+ }
10100
+
10101
+ var typeBinding;
10102
+ if (map[':type'] || map['v-bind:type']) {
10103
+ typeBinding = getBindingAttr(el, 'type');
10104
+ }
10105
+ if (!map.type && !typeBinding && map['v-bind']) {
10106
+ typeBinding = "(" + (map['v-bind']) + ").type";
10107
+ }
10108
+
10109
+ if (typeBinding) {
10110
+ var ifCondition = getAndRemoveAttr(el, 'v-if', true);
10111
+ var ifConditionExtra = ifCondition ? ("&&(" + ifCondition + ")") : "";
10112
+ var hasElse = getAndRemoveAttr(el, 'v-else', true) != null;
10113
+ var elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true);
10114
+ // 1. checkbox
10115
+ var branch0 = cloneASTElement(el);
10116
+ // process for on the main node
10117
+ processFor(branch0);
10118
+ addRawAttr(branch0, 'type', 'checkbox');
10119
+ processElement(branch0, options);
10120
+ branch0.processed = true; // prevent it from double-processed
10121
+ branch0.if = "(" + typeBinding + ")==='checkbox'" + ifConditionExtra;
10122
+ addIfCondition(branch0, {
10123
+ exp: branch0.if,
10124
+ block: branch0
10125
+ });
10126
+ // 2. add radio else-if condition
10127
+ var branch1 = cloneASTElement(el);
10128
+ getAndRemoveAttr(branch1, 'v-for', true);
10129
+ addRawAttr(branch1, 'type', 'radio');
10130
+ processElement(branch1, options);
10131
+ addIfCondition(branch0, {
10132
+ exp: "(" + typeBinding + ")==='radio'" + ifConditionExtra,
10133
+ block: branch1
10134
+ });
10135
+ // 3. other
10136
+ var branch2 = cloneASTElement(el);
10137
+ getAndRemoveAttr(branch2, 'v-for', true);
10138
+ addRawAttr(branch2, ':type', typeBinding);
10139
+ processElement(branch2, options);
10140
+ addIfCondition(branch0, {
10141
+ exp: ifCondition,
10142
+ block: branch2
10143
+ });
10144
+
10145
+ if (hasElse) {
10146
+ branch0.else = true;
10147
+ } else if (elseIfCondition) {
10148
+ branch0.elseif = elseIfCondition;
10149
+ }
10150
+
10151
+ return branch0
10152
+ }
10153
+ }
10154
+ }
10155
+
10156
+ function cloneASTElement (el) {
10157
+ return createASTElement(el.tag, el.attrsList.slice(), el.parent)
10158
+ }
10159
+
10160
+ var model$2 = {
10161
+ preTransformNode: preTransformNode
10162
+ }
10163
+
10164
+ var modules$1 = [
10165
+ klass$1,
10166
+ style$1,
10167
+ model$2
10168
+ ]
10169
+
10170
+ /* */
10171
+
10172
+ function text (el, dir) {
10173
+ if (dir.value) {
10174
+ addProp(el, 'textContent', ("_s(" + (dir.value) + ")"));
10175
+ }
10176
+ }
10177
+
10178
+ /* */
10179
+
10180
+ function html (el, dir) {
10181
+ if (dir.value) {
10182
+ addProp(el, 'innerHTML', ("_s(" + (dir.value) + ")"));
10183
+ }
10184
+ }
10185
+
10186
+ var directives$1 = {
10187
+ model: model,
10188
+ text: text,
10189
+ html: html
10190
+ }
10191
+
10192
+ /* */
10193
+
10194
+ var baseOptions = {
10195
+ expectHTML: true,
10196
+ modules: modules$1,
10197
+ directives: directives$1,
10198
+ isPreTag: isPreTag,
10199
+ isUnaryTag: isUnaryTag,
10200
+ mustUseProp: mustUseProp,
10201
+ canBeLeftOpenTag: canBeLeftOpenTag,
10202
+ isReservedTag: isReservedTag,
10203
+ getTagNamespace: getTagNamespace,
10204
+ staticKeys: genStaticKeys(modules$1)
10205
+ };
10206
+
10207
+ /* */
10208
+
10209
+ var isStaticKey;
10210
+ var isPlatformReservedTag;
10211
+
10212
+ var genStaticKeysCached = cached(genStaticKeys$1);
10213
+
10214
+ /**
10215
+ * Goal of the optimizer: walk the generated template AST tree
10216
+ * and detect sub-trees that are purely static, i.e. parts of
10217
+ * the DOM that never needs to change.
10218
+ *
10219
+ * Once we detect these sub-trees, we can:
10220
+ *
10221
+ * 1. Hoist them into constants, so that we no longer need to
10222
+ * create fresh nodes for them on each re-render;
10223
+ * 2. Completely skip them in the patching process.
10224
+ */
10225
+ function optimize (root, options) {
10226
+ if (!root) { return }
10227
+ isStaticKey = genStaticKeysCached(options.staticKeys || '');
10228
+ isPlatformReservedTag = options.isReservedTag || no;
10229
+ // first pass: mark all non-static nodes.
10230
+ markStatic$1(root);
10231
+ // second pass: mark static roots.
10232
+ markStaticRoots(root, false);
10233
+ }
10234
+
10235
+ function genStaticKeys$1 (keys) {
10236
+ return makeMap(
10237
+ 'type,tag,attrsList,attrsMap,plain,parent,children,attrs' +
10238
+ (keys ? ',' + keys : '')
10239
+ )
10240
+ }
10241
+
10242
+ function markStatic$1 (node) {
10243
+ node.static = isStatic(node);
10244
+ if (node.type === 1) {
10245
+ // do not make component slot content static. this avoids
10246
+ // 1. components not able to mutate slot nodes
10247
+ // 2. static slot content fails for hot-reloading
10248
+ if (
10249
+ !isPlatformReservedTag(node.tag) &&
10250
+ node.tag !== 'slot' &&
10251
+ node.attrsMap['inline-template'] == null
10252
+ ) {
10253
+ return
10254
+ }
10255
+ for (var i = 0, l = node.children.length; i < l; i++) {
10256
+ var child = node.children[i];
10257
+ markStatic$1(child);
10258
+ if (!child.static) {
10259
+ node.static = false;
10260
+ }
10261
+ }
10262
+ if (node.ifConditions) {
10263
+ for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {
10264
+ var block = node.ifConditions[i$1].block;
10265
+ markStatic$1(block);
10266
+ if (!block.static) {
10267
+ node.static = false;
10268
+ }
10269
+ }
10270
+ }
10271
+ }
10272
+ }
10273
+
10274
+ function markStaticRoots (node, isInFor) {
10275
+ if (node.type === 1) {
10276
+ if (node.static || node.once) {
10277
+ node.staticInFor = isInFor;
10278
+ }
10279
+ // For a node to qualify as a static root, it should have children that
10280
+ // are not just static text. Otherwise the cost of hoisting out will
10281
+ // outweigh the benefits and it's better off to just always render it fresh.
10282
+ if (node.static && node.children.length && !(
10283
+ node.children.length === 1 &&
10284
+ node.children[0].type === 3
10285
+ )) {
10286
+ node.staticRoot = true;
10287
+ return
10288
+ } else {
10289
+ node.staticRoot = false;
10290
+ }
10291
+ if (node.children) {
10292
+ for (var i = 0, l = node.children.length; i < l; i++) {
10293
+ markStaticRoots(node.children[i], isInFor || !!node.for);
10294
+ }
10295
+ }
10296
+ if (node.ifConditions) {
10297
+ for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {
10298
+ markStaticRoots(node.ifConditions[i$1].block, isInFor);
10299
+ }
10300
+ }
10301
+ }
10302
+ }
10303
+
10304
+ function isStatic (node) {
10305
+ if (node.type === 2) { // expression
10306
+ return false
10307
+ }
10308
+ if (node.type === 3) { // text
10309
+ return true
10310
+ }
10311
+ return !!(node.pre || (
10312
+ !node.hasBindings && // no dynamic bindings
10313
+ !node.if && !node.for && // not v-if or v-for or v-else
10314
+ !isBuiltInTag(node.tag) && // not a built-in
10315
+ isPlatformReservedTag(node.tag) && // not a component
10316
+ !isDirectChildOfTemplateFor(node) &&
10317
+ Object.keys(node).every(isStaticKey)
10318
+ ))
10319
+ }
10320
+
10321
+ function isDirectChildOfTemplateFor (node) {
10322
+ while (node.parent) {
10323
+ node = node.parent;
10324
+ if (node.tag !== 'template') {
10325
+ return false
10326
+ }
10327
+ if (node.for) {
10328
+ return true
10329
+ }
10330
+ }
10331
+ return false
10332
+ }
10333
+
10334
+ /* */
10335
+
10336
+ var fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function\s*\(/;
10337
+ var simplePathRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/;
10338
+
10339
+ // KeyboardEvent.keyCode aliases
10340
+ var keyCodes = {
10341
+ esc: 27,
10342
+ tab: 9,
10343
+ enter: 13,
10344
+ space: 32,
10345
+ up: 38,
10346
+ left: 37,
10347
+ right: 39,
10348
+ down: 40,
10349
+ 'delete': [8, 46]
10350
+ };
10351
+
10352
+ // KeyboardEvent.key aliases
10353
+ var keyNames = {
10354
+ esc: 'Escape',
10355
+ tab: 'Tab',
10356
+ enter: 'Enter',
10357
+ space: ' ',
10358
+ // #7806: IE11 uses key names without `Arrow` prefix for arrow keys.
10359
+ up: ['Up', 'ArrowUp'],
10360
+ left: ['Left', 'ArrowLeft'],
10361
+ right: ['Right', 'ArrowRight'],
10362
+ down: ['Down', 'ArrowDown'],
10363
+ 'delete': ['Backspace', 'Delete']
10364
+ };
10365
+
10366
+ // #4868: modifiers that prevent the execution of the listener
10367
+ // need to explicitly return null so that we can determine whether to remove
10368
+ // the listener for .once
10369
+ var genGuard = function (condition) { return ("if(" + condition + ")return null;"); };
10370
+
10371
+ var modifierCode = {
10372
+ stop: '$event.stopPropagation();',
10373
+ prevent: '$event.preventDefault();',
10374
+ self: genGuard("$event.target !== $event.currentTarget"),
10375
+ ctrl: genGuard("!$event.ctrlKey"),
10376
+ shift: genGuard("!$event.shiftKey"),
10377
+ alt: genGuard("!$event.altKey"),
10378
+ meta: genGuard("!$event.metaKey"),
10379
+ left: genGuard("'button' in $event && $event.button !== 0"),
10380
+ middle: genGuard("'button' in $event && $event.button !== 1"),
10381
+ right: genGuard("'button' in $event && $event.button !== 2")
10382
+ };
10383
+
10384
+ function genHandlers (
10385
+ events,
10386
+ isNative,
10387
+ warn
10388
+ ) {
10389
+ var res = isNative ? 'nativeOn:{' : 'on:{';
10390
+ for (var name in events) {
10391
+ res += "\"" + name + "\":" + (genHandler(name, events[name])) + ",";
10392
+ }
10393
+ return res.slice(0, -1) + '}'
10394
+ }
10395
+
10396
+ function genHandler (
10397
+ name,
10398
+ handler
10399
+ ) {
10400
+ if (!handler) {
10401
+ return 'function(){}'
10402
+ }
10403
+
10404
+ if (Array.isArray(handler)) {
10405
+ return ("[" + (handler.map(function (handler) { return genHandler(name, handler); }).join(',')) + "]")
10406
+ }
10407
+
10408
+ var isMethodPath = simplePathRE.test(handler.value);
10409
+ var isFunctionExpression = fnExpRE.test(handler.value);
10410
+
10411
+ if (!handler.modifiers) {
10412
+ if (isMethodPath || isFunctionExpression) {
10413
+ return handler.value
10414
+ }
10415
+ /* istanbul ignore if */
10416
+ return ("function($event){" + (handler.value) + "}") // inline statement
10417
+ } else {
10418
+ var code = '';
10419
+ var genModifierCode = '';
10420
+ var keys = [];
10421
+ for (var key in handler.modifiers) {
10422
+ if (modifierCode[key]) {
10423
+ genModifierCode += modifierCode[key];
10424
+ // left/right
10425
+ if (keyCodes[key]) {
10426
+ keys.push(key);
10427
+ }
10428
+ } else if (key === 'exact') {
10429
+ var modifiers = (handler.modifiers);
10430
+ genModifierCode += genGuard(
10431
+ ['ctrl', 'shift', 'alt', 'meta']
10432
+ .filter(function (keyModifier) { return !modifiers[keyModifier]; })
10433
+ .map(function (keyModifier) { return ("$event." + keyModifier + "Key"); })
10434
+ .join('||')
10435
+ );
10436
+ } else {
10437
+ keys.push(key);
10438
+ }
10439
+ }
10440
+ if (keys.length) {
10441
+ code += genKeyFilter(keys);
10442
+ }
10443
+ // Make sure modifiers like prevent and stop get executed after key filtering
10444
+ if (genModifierCode) {
10445
+ code += genModifierCode;
10446
+ }
10447
+ var handlerCode = isMethodPath
10448
+ ? ("return " + (handler.value) + "($event)")
10449
+ : isFunctionExpression
10450
+ ? ("return (" + (handler.value) + ")($event)")
10451
+ : handler.value;
10452
+ /* istanbul ignore if */
10453
+ return ("function($event){" + code + handlerCode + "}")
10454
+ }
10455
+ }
10456
+
10457
+ function genKeyFilter (keys) {
10458
+ return ("if(!('button' in $event)&&" + (keys.map(genFilterCode).join('&&')) + ")return null;")
10459
+ }
10460
+
10461
+ function genFilterCode (key) {
10462
+ var keyVal = parseInt(key, 10);
10463
+ if (keyVal) {
10464
+ return ("$event.keyCode!==" + keyVal)
10465
+ }
10466
+ var keyCode = keyCodes[key];
10467
+ var keyName = keyNames[key];
10468
+ return (
10469
+ "_k($event.keyCode," +
10470
+ (JSON.stringify(key)) + "," +
10471
+ (JSON.stringify(keyCode)) + "," +
10472
+ "$event.key," +
10473
+ "" + (JSON.stringify(keyName)) +
10474
+ ")"
10475
+ )
10476
+ }
10477
+
10478
+ /* */
10479
+
10480
+ function on (el, dir) {
10481
+ if (process.env.NODE_ENV !== 'production' && dir.modifiers) {
10482
+ warn("v-on without argument does not support modifiers.");
10483
+ }
10484
+ el.wrapListeners = function (code) { return ("_g(" + code + "," + (dir.value) + ")"); };
10485
+ }
10486
+
10487
+ /* */
10488
+
10489
+ function bind$1 (el, dir) {
10490
+ el.wrapData = function (code) {
10491
+ return ("_b(" + code + ",'" + (el.tag) + "'," + (dir.value) + "," + (dir.modifiers && dir.modifiers.prop ? 'true' : 'false') + (dir.modifiers && dir.modifiers.sync ? ',true' : '') + ")")
10492
+ };
10493
+ }
10494
+
10495
+ /* */
10496
+
10497
+ var baseDirectives = {
10498
+ on: on,
10499
+ bind: bind$1,
10500
+ cloak: noop
10501
+ }
10502
+
10503
+ /* */
10504
+
10505
+ var CodegenState = function CodegenState (options) {
10506
+ this.options = options;
10507
+ this.warn = options.warn || baseWarn;
10508
+ this.transforms = pluckModuleFunction(options.modules, 'transformCode');
10509
+ this.dataGenFns = pluckModuleFunction(options.modules, 'genData');
10510
+ this.directives = extend(extend({}, baseDirectives), options.directives);
10511
+ var isReservedTag = options.isReservedTag || no;
10512
+ this.maybeComponent = function (el) { return !isReservedTag(el.tag); };
10513
+ this.onceId = 0;
10514
+ this.staticRenderFns = [];
10515
+ };
10516
+
10517
+
10518
+
10519
+ function generate (
10520
+ ast,
10521
+ options
10522
+ ) {
10523
+ var state = new CodegenState(options);
10524
+ var code = ast ? genElement(ast, state) : '_c("div")';
10525
+ return {
10526
+ render: ("with(this){return " + code + "}"),
10527
+ staticRenderFns: state.staticRenderFns
10528
+ }
10529
+ }
10530
+
10531
+ function genElement (el, state) {
10532
+ if (el.staticRoot && !el.staticProcessed) {
10533
+ return genStatic(el, state)
10534
+ } else if (el.once && !el.onceProcessed) {
10535
+ return genOnce(el, state)
10536
+ } else if (el.for && !el.forProcessed) {
10537
+ return genFor(el, state)
10538
+ } else if (el.if && !el.ifProcessed) {
10539
+ return genIf(el, state)
10540
+ } else if (el.tag === 'template' && !el.slotTarget) {
10541
+ return genChildren(el, state) || 'void 0'
10542
+ } else if (el.tag === 'slot') {
10543
+ return genSlot(el, state)
10544
+ } else {
10545
+ // component or element
10546
+ var code;
10547
+ if (el.component) {
10548
+ code = genComponent(el.component, el, state);
10549
+ } else {
10550
+ var data = el.plain ? undefined : genData$2(el, state);
10551
+
10552
+ var children = el.inlineTemplate ? null : genChildren(el, state, true);
10553
+ code = "_c('" + (el.tag) + "'" + (data ? ("," + data) : '') + (children ? ("," + children) : '') + ")";
10554
+ }
10555
+ // module transforms
10556
+ for (var i = 0; i < state.transforms.length; i++) {
10557
+ code = state.transforms[i](el, code);
10558
+ }
10559
+ return code
10560
+ }
10561
+ }
10562
+
10563
+ // hoist static sub-trees out
10564
+ function genStatic (el, state) {
10565
+ el.staticProcessed = true;
10566
+ state.staticRenderFns.push(("with(this){return " + (genElement(el, state)) + "}"));
10567
+ return ("_m(" + (state.staticRenderFns.length - 1) + (el.staticInFor ? ',true' : '') + ")")
10568
+ }
10569
+
10570
+ // v-once
10571
+ function genOnce (el, state) {
10572
+ el.onceProcessed = true;
10573
+ if (el.if && !el.ifProcessed) {
10574
+ return genIf(el, state)
10575
+ } else if (el.staticInFor) {
10576
+ var key = '';
10577
+ var parent = el.parent;
10578
+ while (parent) {
10579
+ if (parent.for) {
10580
+ key = parent.key;
10581
+ break
10582
+ }
10583
+ parent = parent.parent;
10584
+ }
10585
+ if (!key) {
10586
+ process.env.NODE_ENV !== 'production' && state.warn(
10587
+ "v-once can only be used inside v-for that is keyed. "
10588
+ );
10589
+ return genElement(el, state)
10590
+ }
10591
+ return ("_o(" + (genElement(el, state)) + "," + (state.onceId++) + "," + key + ")")
10592
+ } else {
10593
+ return genStatic(el, state)
10594
+ }
10595
+ }
10596
+
10597
+ function genIf (
10598
+ el,
10599
+ state,
10600
+ altGen,
10601
+ altEmpty
10602
+ ) {
10603
+ el.ifProcessed = true; // avoid recursion
10604
+ return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty)
10605
+ }
10606
+
10607
+ function genIfConditions (
10608
+ conditions,
10609
+ state,
10610
+ altGen,
10611
+ altEmpty
10612
+ ) {
10613
+ if (!conditions.length) {
10614
+ return altEmpty || '_e()'
10615
+ }
10616
+
10617
+ var condition = conditions.shift();
10618
+ if (condition.exp) {
10619
+ return ("(" + (condition.exp) + ")?" + (genTernaryExp(condition.block)) + ":" + (genIfConditions(conditions, state, altGen, altEmpty)))
10620
+ } else {
10621
+ return ("" + (genTernaryExp(condition.block)))
10622
+ }
10623
+
10624
+ // v-if with v-once should generate code like (a)?_m(0):_m(1)
10625
+ function genTernaryExp (el) {
10626
+ return altGen
10627
+ ? altGen(el, state)
10628
+ : el.once
10629
+ ? genOnce(el, state)
10630
+ : genElement(el, state)
10631
+ }
10632
+ }
10633
+
10634
+ function genFor (
10635
+ el,
10636
+ state,
10637
+ altGen,
10638
+ altHelper
10639
+ ) {
10640
+ var exp = el.for;
10641
+ var alias = el.alias;
10642
+ var iterator1 = el.iterator1 ? ("," + (el.iterator1)) : '';
10643
+ var iterator2 = el.iterator2 ? ("," + (el.iterator2)) : '';
10644
+
10645
+ if (process.env.NODE_ENV !== 'production' &&
10646
+ state.maybeComponent(el) &&
10647
+ el.tag !== 'slot' &&
10648
+ el.tag !== 'template' &&
10649
+ !el.key
10650
+ ) {
10651
+ state.warn(
10652
+ "<" + (el.tag) + " v-for=\"" + alias + " in " + exp + "\">: component lists rendered with " +
10653
+ "v-for should have explicit keys. " +
10654
+ "See https://vuejs.org/guide/list.html#key for more info.",
10655
+ true /* tip */
10656
+ );
10657
+ }
10658
+
10659
+ el.forProcessed = true; // avoid recursion
10660
+ return (altHelper || '_l') + "((" + exp + ")," +
10661
+ "function(" + alias + iterator1 + iterator2 + "){" +
10662
+ "return " + ((altGen || genElement)(el, state)) +
10663
+ '})'
10664
+ }
10665
+
10666
+ function genData$2 (el, state) {
10667
+ var data = '{';
10668
+
10669
+ // directives first.
10670
+ // directives may mutate the el's other properties before they are generated.
10671
+ var dirs = genDirectives(el, state);
10672
+ if (dirs) { data += dirs + ','; }
10673
+
10674
+ // key
10675
+ if (el.key) {
10676
+ data += "key:" + (el.key) + ",";
10677
+ }
10678
+ // ref
10679
+ if (el.ref) {
10680
+ data += "ref:" + (el.ref) + ",";
10681
+ }
10682
+ if (el.refInFor) {
10683
+ data += "refInFor:true,";
10684
+ }
10685
+ // pre
10686
+ if (el.pre) {
10687
+ data += "pre:true,";
10688
+ }
10689
+ // record original tag name for components using "is" attribute
10690
+ if (el.component) {
10691
+ data += "tag:\"" + (el.tag) + "\",";
10692
+ }
10693
+ // module data generation functions
10694
+ for (var i = 0; i < state.dataGenFns.length; i++) {
10695
+ data += state.dataGenFns[i](el);
10696
+ }
10697
+ // attributes
10698
+ if (el.attrs) {
10699
+ data += "attrs:{" + (genProps(el.attrs)) + "},";
10700
+ }
10701
+ // DOM props
10702
+ if (el.props) {
10703
+ data += "domProps:{" + (genProps(el.props)) + "},";
10704
+ }
10705
+ // event handlers
10706
+ if (el.events) {
10707
+ data += (genHandlers(el.events, false, state.warn)) + ",";
10708
+ }
10709
+ if (el.nativeEvents) {
10710
+ data += (genHandlers(el.nativeEvents, true, state.warn)) + ",";
10711
+ }
10712
+ // slot target
10713
+ // only for non-scoped slots
10714
+ if (el.slotTarget && !el.slotScope) {
10715
+ data += "slot:" + (el.slotTarget) + ",";
10716
+ }
10717
+ // scoped slots
10718
+ if (el.scopedSlots) {
10719
+ data += (genScopedSlots(el.scopedSlots, state)) + ",";
10720
+ }
10721
+ // component v-model
10722
+ if (el.model) {
10723
+ data += "model:{value:" + (el.model.value) + ",callback:" + (el.model.callback) + ",expression:" + (el.model.expression) + "},";
10724
+ }
10725
+ // inline-template
10726
+ if (el.inlineTemplate) {
10727
+ var inlineTemplate = genInlineTemplate(el, state);
10728
+ if (inlineTemplate) {
10729
+ data += inlineTemplate + ",";
10730
+ }
10731
+ }
10732
+ data = data.replace(/,$/, '') + '}';
10733
+ // v-bind data wrap
10734
+ if (el.wrapData) {
10735
+ data = el.wrapData(data);
10736
+ }
10737
+ // v-on data wrap
10738
+ if (el.wrapListeners) {
10739
+ data = el.wrapListeners(data);
10740
+ }
10741
+ return data
10742
+ }
10743
+
10744
+ function genDirectives (el, state) {
10745
+ var dirs = el.directives;
10746
+ if (!dirs) { return }
10747
+ var res = 'directives:[';
10748
+ var hasRuntime = false;
10749
+ var i, l, dir, needRuntime;
10750
+ for (i = 0, l = dirs.length; i < l; i++) {
10751
+ dir = dirs[i];
10752
+ needRuntime = true;
10753
+ var gen = state.directives[dir.name];
10754
+ if (gen) {
10755
+ // compile-time directive that manipulates AST.
10756
+ // returns true if it also needs a runtime counterpart.
10757
+ needRuntime = !!gen(el, dir, state.warn);
10758
+ }
10759
+ if (needRuntime) {
10760
+ hasRuntime = true;
10761
+ res += "{name:\"" + (dir.name) + "\",rawName:\"" + (dir.rawName) + "\"" + (dir.value ? (",value:(" + (dir.value) + "),expression:" + (JSON.stringify(dir.value))) : '') + (dir.arg ? (",arg:\"" + (dir.arg) + "\"") : '') + (dir.modifiers ? (",modifiers:" + (JSON.stringify(dir.modifiers))) : '') + "},";
10762
+ }
10763
+ }
10764
+ if (hasRuntime) {
10765
+ return res.slice(0, -1) + ']'
10766
+ }
10767
+ }
10768
+
10769
+ function genInlineTemplate (el, state) {
10770
+ var ast = el.children[0];
10771
+ if (process.env.NODE_ENV !== 'production' && (
10772
+ el.children.length !== 1 || ast.type !== 1
10773
+ )) {
10774
+ state.warn('Inline-template components must have exactly one child element.');
10775
+ }
10776
+ if (ast.type === 1) {
10777
+ var inlineRenderFns = generate(ast, state.options);
10778
+ return ("inlineTemplate:{render:function(){" + (inlineRenderFns.render) + "},staticRenderFns:[" + (inlineRenderFns.staticRenderFns.map(function (code) { return ("function(){" + code + "}"); }).join(',')) + "]}")
10779
+ }
10780
+ }
10781
+
10782
+ function genScopedSlots (
10783
+ slots,
10784
+ state
10785
+ ) {
10786
+ return ("scopedSlots:_u([" + (Object.keys(slots).map(function (key) {
10787
+ return genScopedSlot(key, slots[key], state)
10788
+ }).join(',')) + "])")
10789
+ }
10790
+
10791
+ function genScopedSlot (
10792
+ key,
10793
+ el,
10794
+ state
10795
+ ) {
10796
+ if (el.for && !el.forProcessed) {
10797
+ return genForScopedSlot(key, el, state)
10798
+ }
10799
+ var fn = "function(" + (String(el.slotScope)) + "){" +
10800
+ "return " + (el.tag === 'template'
10801
+ ? el.if
10802
+ ? ((el.if) + "?" + (genChildren(el, state) || 'undefined') + ":undefined")
10803
+ : genChildren(el, state) || 'undefined'
10804
+ : genElement(el, state)) + "}";
10805
+ return ("{key:" + key + ",fn:" + fn + "}")
10806
+ }
10807
+
10808
+ function genForScopedSlot (
10809
+ key,
10810
+ el,
10811
+ state
10812
+ ) {
10813
+ var exp = el.for;
10814
+ var alias = el.alias;
10815
+ var iterator1 = el.iterator1 ? ("," + (el.iterator1)) : '';
10816
+ var iterator2 = el.iterator2 ? ("," + (el.iterator2)) : '';
10817
+ el.forProcessed = true; // avoid recursion
10818
+ return "_l((" + exp + ")," +
10819
+ "function(" + alias + iterator1 + iterator2 + "){" +
10820
+ "return " + (genScopedSlot(key, el, state)) +
10821
+ '})'
10822
+ }
10823
+
10824
+ function genChildren (
10825
+ el,
10826
+ state,
10827
+ checkSkip,
10828
+ altGenElement,
10829
+ altGenNode
10830
+ ) {
10831
+ var children = el.children;
10832
+ if (children.length) {
10833
+ var el$1 = children[0];
10834
+ // optimize single v-for
10835
+ if (children.length === 1 &&
10836
+ el$1.for &&
10837
+ el$1.tag !== 'template' &&
10838
+ el$1.tag !== 'slot'
10839
+ ) {
10840
+ return (altGenElement || genElement)(el$1, state)
10841
+ }
10842
+ var normalizationType = checkSkip
10843
+ ? getNormalizationType(children, state.maybeComponent)
10844
+ : 0;
10845
+ var gen = altGenNode || genNode;
10846
+ return ("[" + (children.map(function (c) { return gen(c, state); }).join(',')) + "]" + (normalizationType ? ("," + normalizationType) : ''))
10847
+ }
10848
+ }
10849
+
10850
+ // determine the normalization needed for the children array.
10851
+ // 0: no normalization needed
10852
+ // 1: simple normalization needed (possible 1-level deep nested array)
10853
+ // 2: full normalization needed
10854
+ function getNormalizationType (
10855
+ children,
10856
+ maybeComponent
10857
+ ) {
10858
+ var res = 0;
10859
+ for (var i = 0; i < children.length; i++) {
10860
+ var el = children[i];
10861
+ if (el.type !== 1) {
10862
+ continue
10863
+ }
10864
+ if (needsNormalization(el) ||
10865
+ (el.ifConditions && el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) {
10866
+ res = 2;
10867
+ break
10868
+ }
10869
+ if (maybeComponent(el) ||
10870
+ (el.ifConditions && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) {
10871
+ res = 1;
10872
+ }
10873
+ }
10874
+ return res
10875
+ }
10876
+
10877
+ function needsNormalization (el) {
10878
+ return el.for !== undefined || el.tag === 'template' || el.tag === 'slot'
10879
+ }
10880
+
10881
+ function genNode (node, state) {
10882
+ if (node.type === 1) {
10883
+ return genElement(node, state)
10884
+ } if (node.type === 3 && node.isComment) {
10885
+ return genComment(node)
10886
+ } else {
10887
+ return genText(node)
10888
+ }
10889
+ }
10890
+
10891
+ function genText (text) {
10892
+ return ("_v(" + (text.type === 2
10893
+ ? text.expression // no need for () because already wrapped in _s()
10894
+ : transformSpecialNewlines(JSON.stringify(text.text))) + ")")
10895
+ }
10896
+
10897
+ function genComment (comment) {
10898
+ return ("_e(" + (JSON.stringify(comment.text)) + ")")
10899
+ }
10900
+
10901
+ function genSlot (el, state) {
10902
+ var slotName = el.slotName || '"default"';
10903
+ var children = genChildren(el, state);
10904
+ var res = "_t(" + slotName + (children ? ("," + children) : '');
10905
+ var attrs = el.attrs && ("{" + (el.attrs.map(function (a) { return ((camelize(a.name)) + ":" + (a.value)); }).join(',')) + "}");
10906
+ var bind$$1 = el.attrsMap['v-bind'];
10907
+ if ((attrs || bind$$1) && !children) {
10908
+ res += ",null";
10909
+ }
10910
+ if (attrs) {
10911
+ res += "," + attrs;
10912
+ }
10913
+ if (bind$$1) {
10914
+ res += (attrs ? '' : ',null') + "," + bind$$1;
10915
+ }
10916
+ return res + ')'
10917
+ }
10918
+
10919
+ // componentName is el.component, take it as argument to shun flow's pessimistic refinement
10920
+ function genComponent (
10921
+ componentName,
10922
+ el,
10923
+ state
10924
+ ) {
10925
+ var children = el.inlineTemplate ? null : genChildren(el, state, true);
10926
+ return ("_c(" + componentName + "," + (genData$2(el, state)) + (children ? ("," + children) : '') + ")")
10927
+ }
10928
+
10929
+ function genProps (props) {
10930
+ var res = '';
10931
+ for (var i = 0; i < props.length; i++) {
10932
+ var prop = props[i];
10933
+ /* istanbul ignore if */
10934
+ {
10935
+ res += "\"" + (prop.name) + "\":" + (transformSpecialNewlines(prop.value)) + ",";
10936
+ }
10937
+ }
10938
+ return res.slice(0, -1)
10939
+ }
10940
+
10941
+ // #3895, #4268
10942
+ function transformSpecialNewlines (text) {
10943
+ return text
10944
+ .replace(/\u2028/g, '\\u2028')
10945
+ .replace(/\u2029/g, '\\u2029')
10946
+ }
10947
+
10948
+ /* */
10949
+
10950
+ // these keywords should not appear inside expressions, but operators like
10951
+ // typeof, instanceof and in are allowed
10952
+ var prohibitedKeywordRE = new RegExp('\\b' + (
10953
+ 'do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' +
10954
+ 'super,throw,while,yield,delete,export,import,return,switch,default,' +
10955
+ 'extends,finally,continue,debugger,function,arguments'
10956
+ ).split(',').join('\\b|\\b') + '\\b');
10957
+
10958
+ // these unary operators should not be used as property/method names
10959
+ var unaryOperatorsRE = new RegExp('\\b' + (
10960
+ 'delete,typeof,void'
10961
+ ).split(',').join('\\s*\\([^\\)]*\\)|\\b') + '\\s*\\([^\\)]*\\)');
10962
+
10963
+ // strip strings in expressions
10964
+ var stripStringRE = /'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g;
10965
+
10966
+ // detect problematic expressions in a template
10967
+ function detectErrors (ast) {
10968
+ var errors = [];
10969
+ if (ast) {
10970
+ checkNode(ast, errors);
10971
+ }
10972
+ return errors
10973
+ }
10974
+
10975
+ function checkNode (node, errors) {
10976
+ if (node.type === 1) {
10977
+ for (var name in node.attrsMap) {
10978
+ if (dirRE.test(name)) {
10979
+ var value = node.attrsMap[name];
10980
+ if (value) {
10981
+ if (name === 'v-for') {
10982
+ checkFor(node, ("v-for=\"" + value + "\""), errors);
10983
+ } else if (onRE.test(name)) {
10984
+ checkEvent(value, (name + "=\"" + value + "\""), errors);
10985
+ } else {
10986
+ checkExpression(value, (name + "=\"" + value + "\""), errors);
10987
+ }
10988
+ }
10989
+ }
10990
+ }
10991
+ if (node.children) {
10992
+ for (var i = 0; i < node.children.length; i++) {
10993
+ checkNode(node.children[i], errors);
10994
+ }
10995
+ }
10996
+ } else if (node.type === 2) {
10997
+ checkExpression(node.expression, node.text, errors);
10998
+ }
10999
+ }
11000
+
11001
+ function checkEvent (exp, text, errors) {
11002
+ var stipped = exp.replace(stripStringRE, '');
11003
+ var keywordMatch = stipped.match(unaryOperatorsRE);
11004
+ if (keywordMatch && stipped.charAt(keywordMatch.index - 1) !== '$') {
11005
+ errors.push(
11006
+ "avoid using JavaScript unary operator as property name: " +
11007
+ "\"" + (keywordMatch[0]) + "\" in expression " + (text.trim())
11008
+ );
11009
+ }
11010
+ checkExpression(exp, text, errors);
11011
+ }
11012
+
11013
+ function checkFor (node, text, errors) {
11014
+ checkExpression(node.for || '', text, errors);
11015
+ checkIdentifier(node.alias, 'v-for alias', text, errors);
11016
+ checkIdentifier(node.iterator1, 'v-for iterator', text, errors);
11017
+ checkIdentifier(node.iterator2, 'v-for iterator', text, errors);
11018
+ }
11019
+
11020
+ function checkIdentifier (
11021
+ ident,
11022
+ type,
11023
+ text,
11024
+ errors
11025
+ ) {
11026
+ if (typeof ident === 'string') {
11027
+ try {
11028
+ new Function(("var " + ident + "=_"));
11029
+ } catch (e) {
11030
+ errors.push(("invalid " + type + " \"" + ident + "\" in expression: " + (text.trim())));
11031
+ }
11032
+ }
11033
+ }
11034
+
11035
+ function checkExpression (exp, text, errors) {
11036
+ try {
11037
+ new Function(("return " + exp));
11038
+ } catch (e) {
11039
+ var keywordMatch = exp.replace(stripStringRE, '').match(prohibitedKeywordRE);
11040
+ if (keywordMatch) {
11041
+ errors.push(
11042
+ "avoid using JavaScript keyword as property name: " +
11043
+ "\"" + (keywordMatch[0]) + "\"\n Raw expression: " + (text.trim())
11044
+ );
11045
+ } else {
11046
+ errors.push(
11047
+ "invalid expression: " + (e.message) + " in\n\n" +
11048
+ " " + exp + "\n\n" +
11049
+ " Raw expression: " + (text.trim()) + "\n"
11050
+ );
11051
+ }
11052
+ }
11053
+ }
11054
+
11055
+ /* */
11056
+
11057
+ function createFunction (code, errors) {
11058
+ try {
11059
+ return new Function(code)
11060
+ } catch (err) {
11061
+ errors.push({ err: err, code: code });
11062
+ return noop
11063
+ }
11064
+ }
11065
+
11066
+ function createCompileToFunctionFn (compile) {
11067
+ var cache = Object.create(null);
11068
+
11069
+ return function compileToFunctions (
11070
+ template,
11071
+ options,
11072
+ vm
11073
+ ) {
11074
+ options = extend({}, options);
11075
+ var warn$$1 = options.warn || warn;
11076
+ delete options.warn;
11077
+
11078
+ /* istanbul ignore if */
11079
+ if (process.env.NODE_ENV !== 'production') {
11080
+ // detect possible CSP restriction
11081
+ try {
11082
+ new Function('return 1');
11083
+ } catch (e) {
11084
+ if (e.toString().match(/unsafe-eval|CSP/)) {
11085
+ warn$$1(
11086
+ 'It seems you are using the standalone build of Vue.js in an ' +
11087
+ 'environment with Content Security Policy that prohibits unsafe-eval. ' +
11088
+ 'The template compiler cannot work in this environment. Consider ' +
11089
+ 'relaxing the policy to allow unsafe-eval or pre-compiling your ' +
11090
+ 'templates into render functions.'
11091
+ );
11092
+ }
11093
+ }
11094
+ }
11095
+
11096
+ // check cache
11097
+ var key = options.delimiters
11098
+ ? String(options.delimiters) + template
11099
+ : template;
11100
+ if (cache[key]) {
11101
+ return cache[key]
11102
+ }
11103
+
11104
+ // compile
11105
+ var compiled = compile(template, options);
11106
+
11107
+ // check compilation errors/tips
11108
+ if (process.env.NODE_ENV !== 'production') {
11109
+ if (compiled.errors && compiled.errors.length) {
11110
+ warn$$1(
11111
+ "Error compiling template:\n\n" + template + "\n\n" +
11112
+ compiled.errors.map(function (e) { return ("- " + e); }).join('\n') + '\n',
11113
+ vm
11114
+ );
11115
+ }
11116
+ if (compiled.tips && compiled.tips.length) {
11117
+ compiled.tips.forEach(function (msg) { return tip(msg, vm); });
11118
+ }
11119
+ }
11120
+
11121
+ // turn code into functions
11122
+ var res = {};
11123
+ var fnGenErrors = [];
11124
+ res.render = createFunction(compiled.render, fnGenErrors);
11125
+ res.staticRenderFns = compiled.staticRenderFns.map(function (code) {
11126
+ return createFunction(code, fnGenErrors)
11127
+ });
11128
+
11129
+ // check function generation errors.
11130
+ // this should only happen if there is a bug in the compiler itself.
11131
+ // mostly for codegen development use
11132
+ /* istanbul ignore if */
11133
+ if (process.env.NODE_ENV !== 'production') {
11134
+ if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) {
11135
+ warn$$1(
11136
+ "Failed to generate render function:\n\n" +
11137
+ fnGenErrors.map(function (ref) {
11138
+ var err = ref.err;
11139
+ var code = ref.code;
11140
+
11141
+ return ((err.toString()) + " in\n\n" + code + "\n");
11142
+ }).join('\n'),
11143
+ vm
11144
+ );
11145
+ }
11146
+ }
11147
+
11148
+ return (cache[key] = res)
11149
+ }
11150
+ }
11151
+
11152
+ /* */
11153
+
11154
+ function createCompilerCreator (baseCompile) {
11155
+ return function createCompiler (baseOptions) {
11156
+ function compile (
11157
+ template,
11158
+ options
11159
+ ) {
11160
+ var finalOptions = Object.create(baseOptions);
11161
+ var errors = [];
11162
+ var tips = [];
11163
+ finalOptions.warn = function (msg, tip) {
11164
+ (tip ? tips : errors).push(msg);
11165
+ };
11166
+
11167
+ if (options) {
11168
+ // merge custom modules
11169
+ if (options.modules) {
11170
+ finalOptions.modules =
11171
+ (baseOptions.modules || []).concat(options.modules);
11172
+ }
11173
+ // merge custom directives
11174
+ if (options.directives) {
11175
+ finalOptions.directives = extend(
11176
+ Object.create(baseOptions.directives || null),
11177
+ options.directives
11178
+ );
11179
+ }
11180
+ // copy other options
11181
+ for (var key in options) {
11182
+ if (key !== 'modules' && key !== 'directives') {
11183
+ finalOptions[key] = options[key];
11184
+ }
11185
+ }
11186
+ }
11187
+
11188
+ var compiled = baseCompile(template, finalOptions);
11189
+ if (process.env.NODE_ENV !== 'production') {
11190
+ errors.push.apply(errors, detectErrors(compiled.ast));
11191
+ }
11192
+ compiled.errors = errors;
11193
+ compiled.tips = tips;
11194
+ return compiled
11195
+ }
11196
+
11197
+ return {
11198
+ compile: compile,
11199
+ compileToFunctions: createCompileToFunctionFn(compile)
11200
+ }
11201
+ }
11202
+ }
11203
+
11204
+ /* */
11205
+
11206
+ // `createCompilerCreator` allows creating compilers that use alternative
11207
+ // parser/optimizer/codegen, e.g the SSR optimizing compiler.
11208
+ // Here we just export a default compiler using the default parts.
11209
+ var createCompiler = createCompilerCreator(function baseCompile (
11210
+ template,
11211
+ options
11212
+ ) {
11213
+ var ast = parse(template.trim(), options);
11214
+ if (options.optimize !== false) {
11215
+ optimize(ast, options);
11216
+ }
11217
+ var code = generate(ast, options);
11218
+ return {
11219
+ ast: ast,
11220
+ render: code.render,
11221
+ staticRenderFns: code.staticRenderFns
11222
+ }
11223
+ });
11224
+
11225
+ /* */
11226
+
11227
+ var ref$1 = createCompiler(baseOptions);
11228
+ var compileToFunctions = ref$1.compileToFunctions;
11229
+
11230
+ /* */
11231
+
11232
+ // check whether current browser encodes a char inside attribute values
11233
+ var div;
11234
+ function getShouldDecode (href) {
11235
+ div = div || document.createElement('div');
11236
+ div.innerHTML = href ? "<a href=\"\n\"/>" : "<div a=\"\n\"/>";
11237
+ return div.innerHTML.indexOf('&#10;') > 0
11238
+ }
11239
+
11240
+ // #3663: IE encodes newlines inside attribute values while other browsers don't
11241
+ var shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false;
11242
+ // #6828: chrome encodes content in a[href]
11243
+ var shouldDecodeNewlinesForHref = inBrowser ? getShouldDecode(true) : false;
11244
+
11245
+ /* */
11246
+
11247
+ var idToTemplate = cached(function (id) {
11248
+ var el = query(id);
11249
+ return el && el.innerHTML
11250
+ });
11251
+
11252
+ var mount = Vue.prototype.$mount;
11253
+ Vue.prototype.$mount = function (
11254
+ el,
11255
+ hydrating
11256
+ ) {
11257
+ el = el && query(el);
11258
+
11259
+ /* istanbul ignore if */
11260
+ if (el === document.body || el === document.documentElement) {
11261
+ process.env.NODE_ENV !== 'production' && warn(
11262
+ "Do not mount Vue to <html> or <body> - mount to normal elements instead."
11263
+ );
11264
+ return this
11265
+ }
11266
+
11267
+ var options = this.$options;
11268
+ // resolve template/el and convert to render function
11269
+ if (!options.render) {
11270
+ var template = options.template;
11271
+ if (template) {
11272
+ if (typeof template === 'string') {
11273
+ if (template.charAt(0) === '#') {
11274
+ template = idToTemplate(template);
11275
+ /* istanbul ignore if */
11276
+ if (process.env.NODE_ENV !== 'production' && !template) {
11277
+ warn(
11278
+ ("Template element not found or is empty: " + (options.template)),
11279
+ this
11280
+ );
11281
+ }
11282
+ }
11283
+ } else if (template.nodeType) {
11284
+ template = template.innerHTML;
11285
+ } else {
11286
+ if (process.env.NODE_ENV !== 'production') {
11287
+ warn('invalid template option:' + template, this);
11288
+ }
11289
+ return this
11290
+ }
11291
+ } else if (el) {
11292
+ template = getOuterHTML(el);
11293
+ }
11294
+ if (template) {
11295
+ /* istanbul ignore if */
11296
+ if (process.env.NODE_ENV !== 'production' && config.performance && mark) {
11297
+ mark('compile');
11298
+ }
11299
+
11300
+ var ref = compileToFunctions(template, {
11301
+ shouldDecodeNewlines: shouldDecodeNewlines,
11302
+ shouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref,
11303
+ delimiters: options.delimiters,
11304
+ comments: options.comments
11305
+ }, this);
11306
+ var render = ref.render;
11307
+ var staticRenderFns = ref.staticRenderFns;
11308
+ options.render = render;
11309
+ options.staticRenderFns = staticRenderFns;
11310
+
11311
+ /* istanbul ignore if */
11312
+ if (process.env.NODE_ENV !== 'production' && config.performance && mark) {
11313
+ mark('compile end');
11314
+ measure(("vue " + (this._name) + " compile"), 'compile', 'compile end');
11315
+ }
11316
+ }
11317
+ }
11318
+ return mount.call(this, el, hydrating)
11319
+ };
11320
+
11321
+ /**
11322
+ * Get outerHTML of elements, taking care
11323
+ * of SVG elements in IE as well.
11324
+ */
11325
+ function getOuterHTML (el) {
11326
+ if (el.outerHTML) {
11327
+ return el.outerHTML
11328
+ } else {
11329
+ var container = document.createElement('div');
11330
+ container.appendChild(el.cloneNode(true));
11331
+ return container.innerHTML
11332
+ }
11333
+ }
11334
+
11335
+ Vue.compile = compileToFunctions;
11336
+
11337
+ /* harmony default export */ __webpack_exports__["default"] = (Vue);
11338
+
11339
+ /* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3), __webpack_require__(4), __webpack_require__(7).setImmediate))
11340
+
11341
+ /***/ }),
11342
+ /* 3 */
11343
+ /***/ (function(module, exports) {
11344
+
11345
+ // shim for using process in browser
11346
+ var process = module.exports = {};
11347
+
11348
+ // cached from whatever global is present so that test runners that stub it
11349
+ // don't break things. But we need to wrap it in a try catch in case it is
11350
+ // wrapped in strict mode code which doesn't define any globals. It's inside a
11351
+ // function because try/catches deoptimize in certain engines.
11352
+
11353
+ var cachedSetTimeout;
11354
+ var cachedClearTimeout;
11355
+
11356
+ function defaultSetTimout() {
11357
+ throw new Error('setTimeout has not been defined');
11358
+ }
11359
+ function defaultClearTimeout () {
11360
+ throw new Error('clearTimeout has not been defined');
11361
+ }
11362
+ (function () {
11363
+ try {
11364
+ if (typeof setTimeout === 'function') {
11365
+ cachedSetTimeout = setTimeout;
11366
+ } else {
11367
+ cachedSetTimeout = defaultSetTimout;
11368
+ }
11369
+ } catch (e) {
11370
+ cachedSetTimeout = defaultSetTimout;
11371
+ }
11372
+ try {
11373
+ if (typeof clearTimeout === 'function') {
11374
+ cachedClearTimeout = clearTimeout;
11375
+ } else {
11376
+ cachedClearTimeout = defaultClearTimeout;
11377
+ }
11378
+ } catch (e) {
11379
+ cachedClearTimeout = defaultClearTimeout;
11380
+ }
11381
+ } ())
11382
+ function runTimeout(fun) {
11383
+ if (cachedSetTimeout === setTimeout) {
11384
+ //normal enviroments in sane situations
11385
+ return setTimeout(fun, 0);
11386
+ }
11387
+ // if setTimeout wasn't available but was latter defined
11388
+ if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
11389
+ cachedSetTimeout = setTimeout;
11390
+ return setTimeout(fun, 0);
11391
+ }
11392
+ try {
11393
+ // when when somebody has screwed with setTimeout but no I.E. maddness
11394
+ return cachedSetTimeout(fun, 0);
11395
+ } catch(e){
11396
+ try {
11397
+ // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
11398
+ return cachedSetTimeout.call(null, fun, 0);
11399
+ } catch(e){
11400
+ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
11401
+ return cachedSetTimeout.call(this, fun, 0);
11402
+ }
11403
+ }
11404
+
11405
+
11406
+ }
11407
+ function runClearTimeout(marker) {
11408
+ if (cachedClearTimeout === clearTimeout) {
11409
+ //normal enviroments in sane situations
11410
+ return clearTimeout(marker);
11411
+ }
11412
+ // if clearTimeout wasn't available but was latter defined
11413
+ if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
11414
+ cachedClearTimeout = clearTimeout;
11415
+ return clearTimeout(marker);
11416
+ }
11417
+ try {
11418
+ // when when somebody has screwed with setTimeout but no I.E. maddness
11419
+ return cachedClearTimeout(marker);
11420
+ } catch (e){
11421
+ try {
11422
+ // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
11423
+ return cachedClearTimeout.call(null, marker);
11424
+ } catch (e){
11425
+ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
11426
+ // Some versions of I.E. have different rules for clearTimeout vs setTimeout
11427
+ return cachedClearTimeout.call(this, marker);
11428
+ }
11429
+ }
11430
+
11431
+
11432
+
11433
+ }
11434
+ var queue = [];
11435
+ var draining = false;
11436
+ var currentQueue;
11437
+ var queueIndex = -1;
11438
+
11439
+ function cleanUpNextTick() {
11440
+ if (!draining || !currentQueue) {
11441
+ return;
11442
+ }
11443
+ draining = false;
11444
+ if (currentQueue.length) {
11445
+ queue = currentQueue.concat(queue);
11446
+ } else {
11447
+ queueIndex = -1;
11448
+ }
11449
+ if (queue.length) {
11450
+ drainQueue();
11451
+ }
11452
+ }
11453
+
11454
+ function drainQueue() {
11455
+ if (draining) {
11456
+ return;
11457
+ }
11458
+ var timeout = runTimeout(cleanUpNextTick);
11459
+ draining = true;
11460
+
11461
+ var len = queue.length;
11462
+ while(len) {
11463
+ currentQueue = queue;
11464
+ queue = [];
11465
+ while (++queueIndex < len) {
11466
+ if (currentQueue) {
11467
+ currentQueue[queueIndex].run();
11468
+ }
11469
+ }
11470
+ queueIndex = -1;
11471
+ len = queue.length;
11472
+ }
11473
+ currentQueue = null;
11474
+ draining = false;
11475
+ runClearTimeout(timeout);
11476
+ }
11477
+
11478
+ process.nextTick = function (fun) {
11479
+ var args = new Array(arguments.length - 1);
11480
+ if (arguments.length > 1) {
11481
+ for (var i = 1; i < arguments.length; i++) {
11482
+ args[i - 1] = arguments[i];
11483
+ }
11484
+ }
11485
+ queue.push(new Item(fun, args));
11486
+ if (queue.length === 1 && !draining) {
11487
+ runTimeout(drainQueue);
11488
+ }
11489
+ };
11490
+
11491
+ // v8 likes predictible objects
11492
+ function Item(fun, array) {
11493
+ this.fun = fun;
11494
+ this.array = array;
11495
+ }
11496
+ Item.prototype.run = function () {
11497
+ this.fun.apply(null, this.array);
11498
+ };
11499
+ process.title = 'browser';
11500
+ process.browser = true;
11501
+ process.env = {};
11502
+ process.argv = [];
11503
+ process.version = ''; // empty string to avoid regexp issues
11504
+ process.versions = {};
11505
+
11506
+ function noop() {}
11507
+
11508
+ process.on = noop;
11509
+ process.addListener = noop;
11510
+ process.once = noop;
11511
+ process.off = noop;
11512
+ process.removeListener = noop;
11513
+ process.removeAllListeners = noop;
11514
+ process.emit = noop;
11515
+ process.prependListener = noop;
11516
+ process.prependOnceListener = noop;
11517
+
11518
+ process.listeners = function (name) { return [] }
11519
+
11520
+ process.binding = function (name) {
11521
+ throw new Error('process.binding is not supported');
11522
+ };
11523
+
11524
+ process.cwd = function () { return '/' };
11525
+ process.chdir = function (dir) {
11526
+ throw new Error('process.chdir is not supported');
11527
+ };
11528
+ process.umask = function() { return 0; };
11529
+
11530
+
11531
+ /***/ }),
11532
+ /* 4 */
11533
+ /***/ (function(module, exports) {
11534
+
11535
+ var g;
11536
+
11537
+ // This works in non-strict mode
11538
+ g = (function() {
11539
+ return this;
11540
+ })();
11541
+
11542
+ try {
11543
+ // This works if eval is allowed (see CSP)
11544
+ g = g || Function("return this")() || (1,eval)("this");
11545
+ } catch(e) {
11546
+ // This works if the window reference is available
11547
+ if(typeof window === "object")
11548
+ g = window;
11549
+ }
11550
+
11551
+ // g can still be undefined, but nothing to do about it...
11552
+ // We return undefined, instead of nothing here, so it's
11553
+ // easier to handle this case. if(!global) { ...}
11554
+
11555
+ module.exports = g;
11556
+
11557
+
11558
+ /***/ }),
11559
+ /* 5 */
11560
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
11561
+
11562
+ "use strict";
11563
+ Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
11564
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Url", function() { return Url; });
11565
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Http", function() { return Http; });
11566
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Resource", function() { return Resource; });
11567
+ /*!
11568
+ * vue-resource v1.5.1
11569
+ * https://github.com/pagekit/vue-resource
11570
+ * Released under the MIT License.
11571
+ */
11572
+
11573
+ /**
11574
+ * Promises/A+ polyfill v1.1.4 (https://github.com/bramstein/promis)
11575
+ */
11576
+
11577
+ var RESOLVED = 0;
11578
+ var REJECTED = 1;
11579
+ var PENDING = 2;
11580
+
11581
+ function Promise$1(executor) {
11582
+
11583
+ this.state = PENDING;
11584
+ this.value = undefined;
11585
+ this.deferred = [];
11586
+
11587
+ var promise = this;
11588
+
11589
+ try {
11590
+ executor(function (x) {
11591
+ promise.resolve(x);
11592
+ }, function (r) {
11593
+ promise.reject(r);
11594
+ });
11595
+ } catch (e) {
11596
+ promise.reject(e);
11597
+ }
11598
+ }
11599
+
11600
+ Promise$1.reject = function (r) {
11601
+ return new Promise$1(function (resolve, reject) {
11602
+ reject(r);
11603
+ });
11604
+ };
11605
+
11606
+ Promise$1.resolve = function (x) {
11607
+ return new Promise$1(function (resolve, reject) {
11608
+ resolve(x);
11609
+ });
11610
+ };
11611
+
11612
+ Promise$1.all = function all(iterable) {
11613
+ return new Promise$1(function (resolve, reject) {
11614
+ var count = 0, result = [];
11615
+
11616
+ if (iterable.length === 0) {
11617
+ resolve(result);
11618
+ }
11619
+
11620
+ function resolver(i) {
11621
+ return function (x) {
11622
+ result[i] = x;
11623
+ count += 1;
11624
+
11625
+ if (count === iterable.length) {
11626
+ resolve(result);
11627
+ }
11628
+ };
11629
+ }
11630
+
11631
+ for (var i = 0; i < iterable.length; i += 1) {
11632
+ Promise$1.resolve(iterable[i]).then(resolver(i), reject);
11633
+ }
11634
+ });
11635
+ };
11636
+
11637
+ Promise$1.race = function race(iterable) {
11638
+ return new Promise$1(function (resolve, reject) {
11639
+ for (var i = 0; i < iterable.length; i += 1) {
11640
+ Promise$1.resolve(iterable[i]).then(resolve, reject);
11641
+ }
11642
+ });
11643
+ };
11644
+
11645
+ var p = Promise$1.prototype;
11646
+
11647
+ p.resolve = function resolve(x) {
11648
+ var promise = this;
11649
+
11650
+ if (promise.state === PENDING) {
11651
+ if (x === promise) {
11652
+ throw new TypeError('Promise settled with itself.');
11653
+ }
11654
+
11655
+ var called = false;
11656
+
11657
+ try {
11658
+ var then = x && x['then'];
11659
+
11660
+ if (x !== null && typeof x === 'object' && typeof then === 'function') {
11661
+ then.call(x, function (x) {
11662
+ if (!called) {
11663
+ promise.resolve(x);
11664
+ }
11665
+ called = true;
11666
+
11667
+ }, function (r) {
11668
+ if (!called) {
11669
+ promise.reject(r);
11670
+ }
11671
+ called = true;
11672
+ });
11673
+ return;
11674
+ }
11675
+ } catch (e) {
11676
+ if (!called) {
11677
+ promise.reject(e);
11678
+ }
11679
+ return;
11680
+ }
11681
+
11682
+ promise.state = RESOLVED;
11683
+ promise.value = x;
11684
+ promise.notify();
11685
+ }
11686
+ };
11687
+
11688
+ p.reject = function reject(reason) {
11689
+ var promise = this;
11690
+
11691
+ if (promise.state === PENDING) {
11692
+ if (reason === promise) {
11693
+ throw new TypeError('Promise settled with itself.');
11694
+ }
11695
+
11696
+ promise.state = REJECTED;
11697
+ promise.value = reason;
11698
+ promise.notify();
11699
+ }
11700
+ };
11701
+
11702
+ p.notify = function notify() {
11703
+ var promise = this;
11704
+
11705
+ nextTick(function () {
11706
+ if (promise.state !== PENDING) {
11707
+ while (promise.deferred.length) {
11708
+ var deferred = promise.deferred.shift(),
11709
+ onResolved = deferred[0],
11710
+ onRejected = deferred[1],
11711
+ resolve = deferred[2],
11712
+ reject = deferred[3];
11713
+
11714
+ try {
11715
+ if (promise.state === RESOLVED) {
11716
+ if (typeof onResolved === 'function') {
11717
+ resolve(onResolved.call(undefined, promise.value));
11718
+ } else {
11719
+ resolve(promise.value);
11720
+ }
11721
+ } else if (promise.state === REJECTED) {
11722
+ if (typeof onRejected === 'function') {
11723
+ resolve(onRejected.call(undefined, promise.value));
11724
+ } else {
11725
+ reject(promise.value);
11726
+ }
11727
+ }
11728
+ } catch (e) {
11729
+ reject(e);
11730
+ }
11731
+ }
11732
+ }
11733
+ });
11734
+ };
11735
+
11736
+ p.then = function then(onResolved, onRejected) {
11737
+ var promise = this;
11738
+
11739
+ return new Promise$1(function (resolve, reject) {
11740
+ promise.deferred.push([onResolved, onRejected, resolve, reject]);
11741
+ promise.notify();
11742
+ });
11743
+ };
11744
+
11745
+ p.catch = function (onRejected) {
11746
+ return this.then(undefined, onRejected);
11747
+ };
11748
+
11749
+ /**
11750
+ * Promise adapter.
11751
+ */
11752
+
11753
+ if (typeof Promise === 'undefined') {
11754
+ window.Promise = Promise$1;
11755
+ }
11756
+
11757
+ function PromiseObj(executor, context) {
11758
+
11759
+ if (executor instanceof Promise) {
11760
+ this.promise = executor;
11761
+ } else {
11762
+ this.promise = new Promise(executor.bind(context));
11763
+ }
11764
+
11765
+ this.context = context;
11766
+ }
11767
+
11768
+ PromiseObj.all = function (iterable, context) {
11769
+ return new PromiseObj(Promise.all(iterable), context);
11770
+ };
11771
+
11772
+ PromiseObj.resolve = function (value, context) {
11773
+ return new PromiseObj(Promise.resolve(value), context);
11774
+ };
11775
+
11776
+ PromiseObj.reject = function (reason, context) {
11777
+ return new PromiseObj(Promise.reject(reason), context);
11778
+ };
11779
+
11780
+ PromiseObj.race = function (iterable, context) {
11781
+ return new PromiseObj(Promise.race(iterable), context);
11782
+ };
11783
+
11784
+ var p$1 = PromiseObj.prototype;
11785
+
11786
+ p$1.bind = function (context) {
11787
+ this.context = context;
11788
+ return this;
11789
+ };
11790
+
11791
+ p$1.then = function (fulfilled, rejected) {
11792
+
11793
+ if (fulfilled && fulfilled.bind && this.context) {
11794
+ fulfilled = fulfilled.bind(this.context);
11795
+ }
11796
+
11797
+ if (rejected && rejected.bind && this.context) {
11798
+ rejected = rejected.bind(this.context);
11799
+ }
11800
+
11801
+ return new PromiseObj(this.promise.then(fulfilled, rejected), this.context);
11802
+ };
11803
+
11804
+ p$1.catch = function (rejected) {
11805
+
11806
+ if (rejected && rejected.bind && this.context) {
11807
+ rejected = rejected.bind(this.context);
11808
+ }
11809
+
11810
+ return new PromiseObj(this.promise.catch(rejected), this.context);
11811
+ };
11812
+
11813
+ p$1.finally = function (callback) {
11814
+
11815
+ return this.then(function (value) {
11816
+ callback.call(this);
11817
+ return value;
11818
+ }, function (reason) {
11819
+ callback.call(this);
11820
+ return Promise.reject(reason);
11821
+ }
11822
+ );
11823
+ };
11824
+
11825
+ /**
11826
+ * Utility functions.
11827
+ */
11828
+
11829
+ var ref = {};
11830
+ var hasOwnProperty = ref.hasOwnProperty;
11831
+ var ref$1 = [];
11832
+ var slice = ref$1.slice;
11833
+ var debug = false, ntick;
11834
+
11835
+ var inBrowser = typeof window !== 'undefined';
11836
+
11837
+ function Util (ref) {
11838
+ var config = ref.config;
11839
+ var nextTick = ref.nextTick;
11840
+
11841
+ ntick = nextTick;
11842
+ debug = config.debug || !config.silent;
11843
+ }
11844
+
11845
+ function warn(msg) {
11846
+ if (typeof console !== 'undefined' && debug) {
11847
+ console.warn('[VueResource warn]: ' + msg);
11848
+ }
11849
+ }
11850
+
11851
+ function error(msg) {
11852
+ if (typeof console !== 'undefined') {
11853
+ console.error(msg);
11854
+ }
11855
+ }
11856
+
11857
+ function nextTick(cb, ctx) {
11858
+ return ntick(cb, ctx);
11859
+ }
11860
+
11861
+ function trim(str) {
11862
+ return str ? str.replace(/^\s*|\s*$/g, '') : '';
11863
+ }
11864
+
11865
+ function trimEnd(str, chars) {
11866
+
11867
+ if (str && chars === undefined) {
11868
+ return str.replace(/\s+$/, '');
11869
+ }
11870
+
11871
+ if (!str || !chars) {
11872
+ return str;
11873
+ }
11874
+
11875
+ return str.replace(new RegExp(("[" + chars + "]+$")), '');
11876
+ }
11877
+
11878
+ function toLower(str) {
11879
+ return str ? str.toLowerCase() : '';
11880
+ }
11881
+
11882
+ function toUpper(str) {
11883
+ return str ? str.toUpperCase() : '';
11884
+ }
11885
+
11886
+ var isArray = Array.isArray;
11887
+
11888
+ function isString(val) {
11889
+ return typeof val === 'string';
11890
+ }
11891
+
11892
+ function isFunction(val) {
11893
+ return typeof val === 'function';
11894
+ }
11895
+
11896
+ function isObject(obj) {
11897
+ return obj !== null && typeof obj === 'object';
11898
+ }
11899
+
11900
+ function isPlainObject(obj) {
11901
+ return isObject(obj) && Object.getPrototypeOf(obj) == Object.prototype;
11902
+ }
11903
+
11904
+ function isBlob(obj) {
11905
+ return typeof Blob !== 'undefined' && obj instanceof Blob;
11906
+ }
11907
+
11908
+ function isFormData(obj) {
11909
+ return typeof FormData !== 'undefined' && obj instanceof FormData;
11910
+ }
11911
+
11912
+ function when(value, fulfilled, rejected) {
11913
+
11914
+ var promise = PromiseObj.resolve(value);
11915
+
11916
+ if (arguments.length < 2) {
11917
+ return promise;
11918
+ }
11919
+
11920
+ return promise.then(fulfilled, rejected);
11921
+ }
11922
+
11923
+ function options(fn, obj, opts) {
11924
+
11925
+ opts = opts || {};
11926
+
11927
+ if (isFunction(opts)) {
11928
+ opts = opts.call(obj);
11929
+ }
11930
+
11931
+ return merge(fn.bind({$vm: obj, $options: opts}), fn, {$options: opts});
11932
+ }
11933
+
11934
+ function each(obj, iterator) {
11935
+
11936
+ var i, key;
11937
+
11938
+ if (isArray(obj)) {
11939
+ for (i = 0; i < obj.length; i++) {
11940
+ iterator.call(obj[i], obj[i], i);
11941
+ }
11942
+ } else if (isObject(obj)) {
11943
+ for (key in obj) {
11944
+ if (hasOwnProperty.call(obj, key)) {
11945
+ iterator.call(obj[key], obj[key], key);
11946
+ }
11947
+ }
11948
+ }
11949
+
11950
+ return obj;
11951
+ }
11952
+
11953
+ var assign = Object.assign || _assign;
11954
+
11955
+ function merge(target) {
11956
+
11957
+ var args = slice.call(arguments, 1);
11958
+
11959
+ args.forEach(function (source) {
11960
+ _merge(target, source, true);
11961
+ });
11962
+
11963
+ return target;
11964
+ }
11965
+
11966
+ function defaults(target) {
11967
+
11968
+ var args = slice.call(arguments, 1);
11969
+
11970
+ args.forEach(function (source) {
11971
+
11972
+ for (var key in source) {
11973
+ if (target[key] === undefined) {
11974
+ target[key] = source[key];
11975
+ }
11976
+ }
11977
+
11978
+ });
11979
+
11980
+ return target;
11981
+ }
11982
+
11983
+ function _assign(target) {
11984
+
11985
+ var args = slice.call(arguments, 1);
11986
+
11987
+ args.forEach(function (source) {
11988
+ _merge(target, source);
11989
+ });
11990
+
11991
+ return target;
11992
+ }
11993
+
11994
+ function _merge(target, source, deep) {
11995
+ for (var key in source) {
11996
+ if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {
11997
+ if (isPlainObject(source[key]) && !isPlainObject(target[key])) {
11998
+ target[key] = {};
11999
+ }
12000
+ if (isArray(source[key]) && !isArray(target[key])) {
12001
+ target[key] = [];
12002
+ }
12003
+ _merge(target[key], source[key], deep);
12004
+ } else if (source[key] !== undefined) {
12005
+ target[key] = source[key];
12006
+ }
12007
+ }
12008
+ }
12009
+
12010
+ /**
12011
+ * Root Prefix Transform.
12012
+ */
12013
+
12014
+ function root (options$$1, next) {
12015
+
12016
+ var url = next(options$$1);
12017
+
12018
+ if (isString(options$$1.root) && !/^(https?:)?\//.test(url)) {
12019
+ url = trimEnd(options$$1.root, '/') + '/' + url;
12020
+ }
12021
+
12022
+ return url;
12023
+ }
12024
+
12025
+ /**
12026
+ * Query Parameter Transform.
12027
+ */
12028
+
12029
+ function query (options$$1, next) {
12030
+
12031
+ var urlParams = Object.keys(Url.options.params), query = {}, url = next(options$$1);
12032
+
12033
+ each(options$$1.params, function (value, key) {
12034
+ if (urlParams.indexOf(key) === -1) {
12035
+ query[key] = value;
12036
+ }
12037
+ });
12038
+
12039
+ query = Url.params(query);
12040
+
12041
+ if (query) {
12042
+ url += (url.indexOf('?') == -1 ? '?' : '&') + query;
12043
+ }
12044
+
12045
+ return url;
12046
+ }
12047
+
12048
+ /**
12049
+ * URL Template v2.0.6 (https://github.com/bramstein/url-template)
12050
+ */
12051
+
12052
+ function expand(url, params, variables) {
12053
+
12054
+ var tmpl = parse(url), expanded = tmpl.expand(params);
12055
+
12056
+ if (variables) {
12057
+ variables.push.apply(variables, tmpl.vars);
12058
+ }
12059
+
12060
+ return expanded;
12061
+ }
12062
+
12063
+ function parse(template) {
12064
+
12065
+ var operators = ['+', '#', '.', '/', ';', '?', '&'], variables = [];
12066
+
12067
+ return {
12068
+ vars: variables,
12069
+ expand: function expand(context) {
12070
+ return template.replace(/\{([^{}]+)\}|([^{}]+)/g, function (_, expression, literal) {
12071
+ if (expression) {
12072
+
12073
+ var operator = null, values = [];
12074
+
12075
+ if (operators.indexOf(expression.charAt(0)) !== -1) {
12076
+ operator = expression.charAt(0);
12077
+ expression = expression.substr(1);
12078
+ }
12079
+
12080
+ expression.split(/,/g).forEach(function (variable) {
12081
+ var tmp = /([^:*]*)(?::(\d+)|(\*))?/.exec(variable);
12082
+ values.push.apply(values, getValues(context, operator, tmp[1], tmp[2] || tmp[3]));
12083
+ variables.push(tmp[1]);
12084
+ });
12085
+
12086
+ if (operator && operator !== '+') {
12087
+
12088
+ var separator = ',';
12089
+
12090
+ if (operator === '?') {
12091
+ separator = '&';
12092
+ } else if (operator !== '#') {
12093
+ separator = operator;
12094
+ }
12095
+
12096
+ return (values.length !== 0 ? operator : '') + values.join(separator);
12097
+ } else {
12098
+ return values.join(',');
12099
+ }
12100
+
12101
+ } else {
12102
+ return encodeReserved(literal);
12103
+ }
12104
+ });
12105
+ }
12106
+ };
12107
+ }
12108
+
12109
+ function getValues(context, operator, key, modifier) {
12110
+
12111
+ var value = context[key], result = [];
12112
+
12113
+ if (isDefined(value) && value !== '') {
12114
+ if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
12115
+ value = value.toString();
12116
+
12117
+ if (modifier && modifier !== '*') {
12118
+ value = value.substring(0, parseInt(modifier, 10));
12119
+ }
12120
+
12121
+ result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : null));
12122
+ } else {
12123
+ if (modifier === '*') {
12124
+ if (Array.isArray(value)) {
12125
+ value.filter(isDefined).forEach(function (value) {
12126
+ result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : null));
12127
+ });
12128
+ } else {
12129
+ Object.keys(value).forEach(function (k) {
12130
+ if (isDefined(value[k])) {
12131
+ result.push(encodeValue(operator, value[k], k));
12132
+ }
12133
+ });
12134
+ }
12135
+ } else {
12136
+ var tmp = [];
12137
+
12138
+ if (Array.isArray(value)) {
12139
+ value.filter(isDefined).forEach(function (value) {
12140
+ tmp.push(encodeValue(operator, value));
12141
+ });
12142
+ } else {
12143
+ Object.keys(value).forEach(function (k) {
12144
+ if (isDefined(value[k])) {
12145
+ tmp.push(encodeURIComponent(k));
12146
+ tmp.push(encodeValue(operator, value[k].toString()));
12147
+ }
12148
+ });
12149
+ }
12150
+
12151
+ if (isKeyOperator(operator)) {
12152
+ result.push(encodeURIComponent(key) + '=' + tmp.join(','));
12153
+ } else if (tmp.length !== 0) {
12154
+ result.push(tmp.join(','));
12155
+ }
12156
+ }
12157
+ }
12158
+ } else {
12159
+ if (operator === ';') {
12160
+ result.push(encodeURIComponent(key));
12161
+ } else if (value === '' && (operator === '&' || operator === '?')) {
12162
+ result.push(encodeURIComponent(key) + '=');
12163
+ } else if (value === '') {
12164
+ result.push('');
12165
+ }
12166
+ }
12167
+
12168
+ return result;
12169
+ }
12170
+
12171
+ function isDefined(value) {
12172
+ return value !== undefined && value !== null;
12173
+ }
12174
+
12175
+ function isKeyOperator(operator) {
12176
+ return operator === ';' || operator === '&' || operator === '?';
12177
+ }
12178
+
12179
+ function encodeValue(operator, value, key) {
12180
+
12181
+ value = (operator === '+' || operator === '#') ? encodeReserved(value) : encodeURIComponent(value);
12182
+
12183
+ if (key) {
12184
+ return encodeURIComponent(key) + '=' + value;
12185
+ } else {
12186
+ return value;
12187
+ }
12188
+ }
12189
+
12190
+ function encodeReserved(str) {
12191
+ return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {
12192
+ if (!/%[0-9A-Fa-f]/.test(part)) {
12193
+ part = encodeURI(part);
12194
+ }
12195
+ return part;
12196
+ }).join('');
12197
+ }
12198
+
12199
+ /**
12200
+ * URL Template (RFC 6570) Transform.
12201
+ */
12202
+
12203
+ function template (options) {
12204
+
12205
+ var variables = [], url = expand(options.url, options.params, variables);
12206
+
12207
+ variables.forEach(function (key) {
12208
+ delete options.params[key];
12209
+ });
12210
+
12211
+ return url;
12212
+ }
12213
+
12214
+ /**
12215
+ * Service for URL templating.
12216
+ */
12217
+
12218
+ function Url(url, params) {
12219
+
12220
+ var self = this || {}, options$$1 = url, transform;
12221
+
12222
+ if (isString(url)) {
12223
+ options$$1 = {url: url, params: params};
12224
+ }
12225
+
12226
+ options$$1 = merge({}, Url.options, self.$options, options$$1);
12227
+
12228
+ Url.transforms.forEach(function (handler) {
12229
+
12230
+ if (isString(handler)) {
12231
+ handler = Url.transform[handler];
12232
+ }
12233
+
12234
+ if (isFunction(handler)) {
12235
+ transform = factory(handler, transform, self.$vm);
12236
+ }
12237
+
12238
+ });
12239
+
12240
+ return transform(options$$1);
12241
+ }
12242
+
12243
+ /**
12244
+ * Url options.
12245
+ */
12246
+
12247
+ Url.options = {
12248
+ url: '',
12249
+ root: null,
12250
+ params: {}
12251
+ };
12252
+
12253
+ /**
12254
+ * Url transforms.
12255
+ */
12256
+
12257
+ Url.transform = {template: template, query: query, root: root};
12258
+ Url.transforms = ['template', 'query', 'root'];
12259
+
12260
+ /**
12261
+ * Encodes a Url parameter string.
12262
+ *
12263
+ * @param {Object} obj
12264
+ */
12265
+
12266
+ Url.params = function (obj) {
12267
+
12268
+ var params = [], escape = encodeURIComponent;
12269
+
12270
+ params.add = function (key, value) {
12271
+
12272
+ if (isFunction(value)) {
12273
+ value = value();
12274
+ }
12275
+
12276
+ if (value === null) {
12277
+ value = '';
12278
+ }
12279
+
12280
+ this.push(escape(key) + '=' + escape(value));
12281
+ };
12282
+
12283
+ serialize(params, obj);
12284
+
12285
+ return params.join('&').replace(/%20/g, '+');
12286
+ };
12287
+
12288
+ /**
12289
+ * Parse a URL and return its components.
12290
+ *
12291
+ * @param {String} url
12292
+ */
12293
+
12294
+ Url.parse = function (url) {
12295
+
12296
+ var el = document.createElement('a');
12297
+
12298
+ if (document.documentMode) {
12299
+ el.href = url;
12300
+ url = el.href;
12301
+ }
12302
+
12303
+ el.href = url;
12304
+
12305
+ return {
12306
+ href: el.href,
12307
+ protocol: el.protocol ? el.protocol.replace(/:$/, '') : '',
12308
+ port: el.port,
12309
+ host: el.host,
12310
+ hostname: el.hostname,
12311
+ pathname: el.pathname.charAt(0) === '/' ? el.pathname : '/' + el.pathname,
12312
+ search: el.search ? el.search.replace(/^\?/, '') : '',
12313
+ hash: el.hash ? el.hash.replace(/^#/, '') : ''
12314
+ };
12315
+ };
12316
+
12317
+ function factory(handler, next, vm) {
12318
+ return function (options$$1) {
12319
+ return handler.call(vm, options$$1, next);
12320
+ };
12321
+ }
12322
+
12323
+ function serialize(params, obj, scope) {
12324
+
12325
+ var array = isArray(obj), plain = isPlainObject(obj), hash;
12326
+
12327
+ each(obj, function (value, key) {
12328
+
12329
+ hash = isObject(value) || isArray(value);
12330
+
12331
+ if (scope) {
12332
+ key = scope + '[' + (plain || hash ? key : '') + ']';
12333
+ }
12334
+
12335
+ if (!scope && array) {
12336
+ params.add(value.name, value.value);
12337
+ } else if (hash) {
12338
+ serialize(params, value, key);
12339
+ } else {
12340
+ params.add(key, value);
12341
+ }
12342
+ });
12343
+ }
12344
+
12345
+ /**
12346
+ * XDomain client (Internet Explorer).
12347
+ */
12348
+
12349
+ function xdrClient (request) {
12350
+ return new PromiseObj(function (resolve) {
12351
+
12352
+ var xdr = new XDomainRequest(), handler = function (ref) {
12353
+ var type = ref.type;
12354
+
12355
+
12356
+ var status = 0;
12357
+
12358
+ if (type === 'load') {
12359
+ status = 200;
12360
+ } else if (type === 'error') {
12361
+ status = 500;
12362
+ }
12363
+
12364
+ resolve(request.respondWith(xdr.responseText, {status: status}));
12365
+ };
12366
+
12367
+ request.abort = function () { return xdr.abort(); };
12368
+
12369
+ xdr.open(request.method, request.getUrl());
12370
+
12371
+ if (request.timeout) {
12372
+ xdr.timeout = request.timeout;
12373
+ }
12374
+
12375
+ xdr.onload = handler;
12376
+ xdr.onabort = handler;
12377
+ xdr.onerror = handler;
12378
+ xdr.ontimeout = handler;
12379
+ xdr.onprogress = function () {};
12380
+ xdr.send(request.getBody());
12381
+ });
12382
+ }
12383
+
12384
+ /**
12385
+ * CORS Interceptor.
12386
+ */
12387
+
12388
+ var SUPPORTS_CORS = inBrowser && 'withCredentials' in new XMLHttpRequest();
12389
+
12390
+ function cors (request) {
12391
+
12392
+ if (inBrowser) {
12393
+
12394
+ var orgUrl = Url.parse(location.href);
12395
+ var reqUrl = Url.parse(request.getUrl());
12396
+
12397
+ if (reqUrl.protocol !== orgUrl.protocol || reqUrl.host !== orgUrl.host) {
12398
+
12399
+ request.crossOrigin = true;
12400
+ request.emulateHTTP = false;
12401
+
12402
+ if (!SUPPORTS_CORS) {
12403
+ request.client = xdrClient;
12404
+ }
12405
+ }
12406
+ }
12407
+
12408
+ }
12409
+
12410
+ /**
12411
+ * Form data Interceptor.
12412
+ */
12413
+
12414
+ function form (request) {
12415
+
12416
+ if (isFormData(request.body)) {
12417
+ request.headers.delete('Content-Type');
12418
+ } else if (isObject(request.body) && request.emulateJSON) {
12419
+ request.body = Url.params(request.body);
12420
+ request.headers.set('Content-Type', 'application/x-www-form-urlencoded');
12421
+ }
12422
+
12423
+ }
12424
+
12425
+ /**
12426
+ * JSON Interceptor.
12427
+ */
12428
+
12429
+ function json (request) {
12430
+
12431
+ var type = request.headers.get('Content-Type') || '';
12432
+
12433
+ if (isObject(request.body) && type.indexOf('application/json') === 0) {
12434
+ request.body = JSON.stringify(request.body);
12435
+ }
12436
+
12437
+ return function (response) {
12438
+
12439
+ return response.bodyText ? when(response.text(), function (text) {
12440
+
12441
+ var type = response.headers.get('Content-Type') || '';
12442
+
12443
+ if (type.indexOf('application/json') === 0 || isJson(text)) {
12444
+
12445
+ try {
12446
+ response.body = JSON.parse(text);
12447
+ } catch (e) {
12448
+ response.body = null;
12449
+ }
12450
+
12451
+ } else {
12452
+ response.body = text;
12453
+ }
12454
+
12455
+ return response;
12456
+
12457
+ }) : response;
12458
+
12459
+ };
12460
+ }
12461
+
12462
+ function isJson(str) {
12463
+
12464
+ var start = str.match(/^\s*(\[|\{)/);
12465
+ var end = {'[': /]\s*$/, '{': /}\s*$/};
12466
+
12467
+ return start && end[start[1]].test(str);
12468
+ }
12469
+
12470
+ /**
12471
+ * JSONP client (Browser).
12472
+ */
12473
+
12474
+ function jsonpClient (request) {
12475
+ return new PromiseObj(function (resolve) {
12476
+
12477
+ var name = request.jsonp || 'callback', callback = request.jsonpCallback || '_jsonp' + Math.random().toString(36).substr(2), body = null, handler, script;
12478
+
12479
+ handler = function (ref) {
12480
+ var type = ref.type;
12481
+
12482
+
12483
+ var status = 0;
12484
+
12485
+ if (type === 'load' && body !== null) {
12486
+ status = 200;
12487
+ } else if (type === 'error') {
12488
+ status = 500;
12489
+ }
12490
+
12491
+ if (status && window[callback]) {
12492
+ delete window[callback];
12493
+ document.body.removeChild(script);
12494
+ }
12495
+
12496
+ resolve(request.respondWith(body, {status: status}));
12497
+ };
12498
+
12499
+ window[callback] = function (result) {
12500
+ body = JSON.stringify(result);
12501
+ };
12502
+
12503
+ request.abort = function () {
12504
+ handler({type: 'abort'});
12505
+ };
12506
+
12507
+ request.params[name] = callback;
12508
+
12509
+ if (request.timeout) {
12510
+ setTimeout(request.abort, request.timeout);
12511
+ }
12512
+
12513
+ script = document.createElement('script');
12514
+ script.src = request.getUrl();
12515
+ script.type = 'text/javascript';
12516
+ script.async = true;
12517
+ script.onload = handler;
12518
+ script.onerror = handler;
12519
+
12520
+ document.body.appendChild(script);
12521
+ });
12522
+ }
12523
+
12524
+ /**
12525
+ * JSONP Interceptor.
12526
+ */
12527
+
12528
+ function jsonp (request) {
12529
+
12530
+ if (request.method == 'JSONP') {
12531
+ request.client = jsonpClient;
12532
+ }
12533
+
12534
+ }
12535
+
12536
+ /**
12537
+ * Before Interceptor.
12538
+ */
12539
+
12540
+ function before (request) {
12541
+
12542
+ if (isFunction(request.before)) {
12543
+ request.before.call(this, request);
12544
+ }
12545
+
12546
+ }
12547
+
12548
+ /**
12549
+ * HTTP method override Interceptor.
12550
+ */
12551
+
12552
+ function method (request) {
12553
+
12554
+ if (request.emulateHTTP && /^(PUT|PATCH|DELETE)$/i.test(request.method)) {
12555
+ request.headers.set('X-HTTP-Method-Override', request.method);
12556
+ request.method = 'POST';
12557
+ }
12558
+
12559
+ }
12560
+
12561
+ /**
12562
+ * Header Interceptor.
12563
+ */
12564
+
12565
+ function header (request) {
12566
+
12567
+ var headers = assign({}, Http.headers.common,
12568
+ !request.crossOrigin ? Http.headers.custom : {},
12569
+ Http.headers[toLower(request.method)]
12570
+ );
12571
+
12572
+ each(headers, function (value, name) {
12573
+ if (!request.headers.has(name)) {
12574
+ request.headers.set(name, value);
12575
+ }
12576
+ });
12577
+
12578
+ }
12579
+
12580
+ /**
12581
+ * XMLHttp client (Browser).
12582
+ */
12583
+
12584
+ function xhrClient (request) {
12585
+ return new PromiseObj(function (resolve) {
12586
+
12587
+ var xhr = new XMLHttpRequest(), handler = function (event) {
12588
+
12589
+ var response = request.respondWith(
12590
+ 'response' in xhr ? xhr.response : xhr.responseText, {
12591
+ status: xhr.status === 1223 ? 204 : xhr.status, // IE9 status bug
12592
+ statusText: xhr.status === 1223 ? 'No Content' : trim(xhr.statusText)
12593
+ });
12594
+
12595
+ each(trim(xhr.getAllResponseHeaders()).split('\n'), function (row) {
12596
+ response.headers.append(row.slice(0, row.indexOf(':')), row.slice(row.indexOf(':') + 1));
12597
+ });
12598
+
12599
+ resolve(response);
12600
+ };
12601
+
12602
+ request.abort = function () { return xhr.abort(); };
12603
+
12604
+ xhr.open(request.method, request.getUrl(), true);
12605
+
12606
+ if (request.timeout) {
12607
+ xhr.timeout = request.timeout;
12608
+ }
12609
+
12610
+ if (request.responseType && 'responseType' in xhr) {
12611
+ xhr.responseType = request.responseType;
12612
+ }
12613
+
12614
+ if (request.withCredentials || request.credentials) {
12615
+ xhr.withCredentials = true;
12616
+ }
12617
+
12618
+ if (!request.crossOrigin) {
12619
+ request.headers.set('X-Requested-With', 'XMLHttpRequest');
12620
+ }
12621
+
12622
+ // deprecated use downloadProgress
12623
+ if (isFunction(request.progress) && request.method === 'GET') {
12624
+ xhr.addEventListener('progress', request.progress);
12625
+ }
12626
+
12627
+ if (isFunction(request.downloadProgress)) {
12628
+ xhr.addEventListener('progress', request.downloadProgress);
12629
+ }
12630
+
12631
+ // deprecated use uploadProgress
12632
+ if (isFunction(request.progress) && /^(POST|PUT)$/i.test(request.method)) {
12633
+ xhr.upload.addEventListener('progress', request.progress);
12634
+ }
12635
+
12636
+ if (isFunction(request.uploadProgress) && xhr.upload) {
12637
+ xhr.upload.addEventListener('progress', request.uploadProgress);
12638
+ }
12639
+
12640
+ request.headers.forEach(function (value, name) {
12641
+ xhr.setRequestHeader(name, value);
12642
+ });
12643
+
12644
+ xhr.onload = handler;
12645
+ xhr.onabort = handler;
12646
+ xhr.onerror = handler;
12647
+ xhr.ontimeout = handler;
12648
+ xhr.send(request.getBody());
12649
+ });
12650
+ }
12651
+
12652
+ /**
12653
+ * Http client (Node).
12654
+ */
12655
+
12656
+ function nodeClient (request) {
12657
+
12658
+ var client = __webpack_require__(39);
12659
+
12660
+ return new PromiseObj(function (resolve) {
12661
+
12662
+ var url = request.getUrl();
12663
+ var body = request.getBody();
12664
+ var method = request.method;
12665
+ var headers = {}, handler;
12666
+
12667
+ request.headers.forEach(function (value, name) {
12668
+ headers[name] = value;
12669
+ });
12670
+
12671
+ client(url, {body: body, method: method, headers: headers}).then(handler = function (resp) {
12672
+
12673
+ var response = request.respondWith(resp.body, {
12674
+ status: resp.statusCode,
12675
+ statusText: trim(resp.statusMessage)
12676
+ });
12677
+
12678
+ each(resp.headers, function (value, name) {
12679
+ response.headers.set(name, value);
12680
+ });
12681
+
12682
+ resolve(response);
12683
+
12684
+ }, function (error$$1) { return handler(error$$1.response); });
12685
+ });
12686
+ }
12687
+
12688
+ /**
12689
+ * Base client.
12690
+ */
12691
+
12692
+ function Client (context) {
12693
+
12694
+ var reqHandlers = [sendRequest], resHandlers = [];
12695
+
12696
+ if (!isObject(context)) {
12697
+ context = null;
12698
+ }
12699
+
12700
+ function Client(request) {
12701
+ while (reqHandlers.length) {
12702
+
12703
+ var handler = reqHandlers.pop();
12704
+
12705
+ if (isFunction(handler)) {
12706
+
12707
+ var response = (void 0), next = (void 0);
12708
+
12709
+ response = handler.call(context, request, function (val) { return next = val; }) || next;
12710
+
12711
+ if (isObject(response)) {
12712
+ return new PromiseObj(function (resolve, reject) {
12713
+
12714
+ resHandlers.forEach(function (handler) {
12715
+ response = when(response, function (response) {
12716
+ return handler.call(context, response) || response;
12717
+ }, reject);
12718
+ });
12719
+
12720
+ when(response, resolve, reject);
12721
+
12722
+ }, context);
12723
+ }
12724
+
12725
+ if (isFunction(response)) {
12726
+ resHandlers.unshift(response);
12727
+ }
12728
+
12729
+ } else {
12730
+ warn(("Invalid interceptor of type " + (typeof handler) + ", must be a function"));
12731
+ }
12732
+ }
12733
+ }
12734
+
12735
+ Client.use = function (handler) {
12736
+ reqHandlers.push(handler);
12737
+ };
12738
+
12739
+ return Client;
12740
+ }
12741
+
12742
+ function sendRequest(request) {
12743
+
12744
+ var client = request.client || (inBrowser ? xhrClient : nodeClient);
12745
+
12746
+ return client(request);
12747
+ }
12748
+
12749
+ /**
12750
+ * HTTP Headers.
12751
+ */
12752
+
12753
+ var Headers = function Headers(headers) {
12754
+ var this$1 = this;
12755
+
12756
+
12757
+ this.map = {};
12758
+
12759
+ each(headers, function (value, name) { return this$1.append(name, value); });
12760
+ };
12761
+
12762
+ Headers.prototype.has = function has (name) {
12763
+ return getName(this.map, name) !== null;
12764
+ };
12765
+
12766
+ Headers.prototype.get = function get (name) {
12767
+
12768
+ var list = this.map[getName(this.map, name)];
12769
+
12770
+ return list ? list.join() : null;
12771
+ };
12772
+
12773
+ Headers.prototype.getAll = function getAll (name) {
12774
+ return this.map[getName(this.map, name)] || [];
12775
+ };
12776
+
12777
+ Headers.prototype.set = function set (name, value) {
12778
+ this.map[normalizeName(getName(this.map, name) || name)] = [trim(value)];
12779
+ };
12780
+
12781
+ Headers.prototype.append = function append (name, value) {
12782
+
12783
+ var list = this.map[getName(this.map, name)];
12784
+
12785
+ if (list) {
12786
+ list.push(trim(value));
12787
+ } else {
12788
+ this.set(name, value);
12789
+ }
12790
+ };
12791
+
12792
+ Headers.prototype.delete = function delete$1 (name) {
12793
+ delete this.map[getName(this.map, name)];
12794
+ };
12795
+
12796
+ Headers.prototype.deleteAll = function deleteAll () {
12797
+ this.map = {};
12798
+ };
12799
+
12800
+ Headers.prototype.forEach = function forEach (callback, thisArg) {
12801
+ var this$1 = this;
12802
+
12803
+ each(this.map, function (list, name) {
12804
+ each(list, function (value) { return callback.call(thisArg, value, name, this$1); });
12805
+ });
12806
+ };
12807
+
12808
+ function getName(map, name) {
12809
+ return Object.keys(map).reduce(function (prev, curr) {
12810
+ return toLower(name) === toLower(curr) ? curr : prev;
12811
+ }, null);
12812
+ }
12813
+
12814
+ function normalizeName(name) {
12815
+
12816
+ if (/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(name)) {
12817
+ throw new TypeError('Invalid character in header field name');
12818
+ }
12819
+
12820
+ return trim(name);
12821
+ }
12822
+
12823
+ /**
12824
+ * HTTP Response.
12825
+ */
12826
+
12827
+ var Response = function Response(body, ref) {
12828
+ var url = ref.url;
12829
+ var headers = ref.headers;
12830
+ var status = ref.status;
12831
+ var statusText = ref.statusText;
12832
+
12833
+
12834
+ this.url = url;
12835
+ this.ok = status >= 200 && status < 300;
12836
+ this.status = status || 0;
12837
+ this.statusText = statusText || '';
12838
+ this.headers = new Headers(headers);
12839
+ this.body = body;
12840
+
12841
+ if (isString(body)) {
12842
+
12843
+ this.bodyText = body;
12844
+
12845
+ } else if (isBlob(body)) {
12846
+
12847
+ this.bodyBlob = body;
12848
+
12849
+ if (isBlobText(body)) {
12850
+ this.bodyText = blobText(body);
12851
+ }
12852
+ }
12853
+ };
12854
+
12855
+ Response.prototype.blob = function blob () {
12856
+ return when(this.bodyBlob);
12857
+ };
12858
+
12859
+ Response.prototype.text = function text () {
12860
+ return when(this.bodyText);
12861
+ };
12862
+
12863
+ Response.prototype.json = function json () {
12864
+ return when(this.text(), function (text) { return JSON.parse(text); });
12865
+ };
12866
+
12867
+ Object.defineProperty(Response.prototype, 'data', {
12868
+
12869
+ get: function get() {
12870
+ return this.body;
12871
+ },
12872
+
12873
+ set: function set(body) {
12874
+ this.body = body;
12875
+ }
12876
+
12877
+ });
12878
+
12879
+ function blobText(body) {
12880
+ return new PromiseObj(function (resolve) {
12881
+
12882
+ var reader = new FileReader();
12883
+
12884
+ reader.readAsText(body);
12885
+ reader.onload = function () {
12886
+ resolve(reader.result);
12887
+ };
12888
+
12889
+ });
12890
+ }
12891
+
12892
+ function isBlobText(body) {
12893
+ return body.type.indexOf('text') === 0 || body.type.indexOf('json') !== -1;
12894
+ }
12895
+
12896
+ /**
12897
+ * HTTP Request.
12898
+ */
12899
+
12900
+ var Request = function Request(options$$1) {
12901
+
12902
+ this.body = null;
12903
+ this.params = {};
12904
+
12905
+ assign(this, options$$1, {
12906
+ method: toUpper(options$$1.method || 'GET')
12907
+ });
12908
+
12909
+ if (!(this.headers instanceof Headers)) {
12910
+ this.headers = new Headers(this.headers);
12911
+ }
12912
+ };
12913
+
12914
+ Request.prototype.getUrl = function getUrl () {
12915
+ return Url(this);
12916
+ };
12917
+
12918
+ Request.prototype.getBody = function getBody () {
12919
+ return this.body;
12920
+ };
12921
+
12922
+ Request.prototype.respondWith = function respondWith (body, options$$1) {
12923
+ return new Response(body, assign(options$$1 || {}, {url: this.getUrl()}));
12924
+ };
12925
+
12926
+ /**
12927
+ * Service for sending network requests.
12928
+ */
12929
+
12930
+ var COMMON_HEADERS = {'Accept': 'application/json, text/plain, */*'};
12931
+ var JSON_CONTENT_TYPE = {'Content-Type': 'application/json;charset=utf-8'};
12932
+
12933
+ function Http(options$$1) {
12934
+
12935
+ var self = this || {}, client = Client(self.$vm);
12936
+
12937
+ defaults(options$$1 || {}, self.$options, Http.options);
12938
+
12939
+ Http.interceptors.forEach(function (handler) {
12940
+
12941
+ if (isString(handler)) {
12942
+ handler = Http.interceptor[handler];
12943
+ }
12944
+
12945
+ if (isFunction(handler)) {
12946
+ client.use(handler);
12947
+ }
12948
+
12949
+ });
12950
+
12951
+ return client(new Request(options$$1)).then(function (response) {
12952
+
12953
+ return response.ok ? response : PromiseObj.reject(response);
12954
+
12955
+ }, function (response) {
12956
+
12957
+ if (response instanceof Error) {
12958
+ error(response);
12959
+ }
12960
+
12961
+ return PromiseObj.reject(response);
12962
+ });
12963
+ }
12964
+
12965
+ Http.options = {};
12966
+
12967
+ Http.headers = {
12968
+ put: JSON_CONTENT_TYPE,
12969
+ post: JSON_CONTENT_TYPE,
12970
+ patch: JSON_CONTENT_TYPE,
12971
+ delete: JSON_CONTENT_TYPE,
12972
+ common: COMMON_HEADERS,
12973
+ custom: {}
12974
+ };
12975
+
12976
+ Http.interceptor = {before: before, method: method, jsonp: jsonp, json: json, form: form, header: header, cors: cors};
12977
+ Http.interceptors = ['before', 'method', 'jsonp', 'json', 'form', 'header', 'cors'];
12978
+
12979
+ ['get', 'delete', 'head', 'jsonp'].forEach(function (method$$1) {
12980
+
12981
+ Http[method$$1] = function (url, options$$1) {
12982
+ return this(assign(options$$1 || {}, {url: url, method: method$$1}));
12983
+ };
12984
+
12985
+ });
12986
+
12987
+ ['post', 'put', 'patch'].forEach(function (method$$1) {
12988
+
12989
+ Http[method$$1] = function (url, body, options$$1) {
12990
+ return this(assign(options$$1 || {}, {url: url, method: method$$1, body: body}));
12991
+ };
12992
+
12993
+ });
12994
+
12995
+ /**
12996
+ * Service for interacting with RESTful services.
12997
+ */
12998
+
12999
+ function Resource(url, params, actions, options$$1) {
13000
+
13001
+ var self = this || {}, resource = {};
13002
+
13003
+ actions = assign({},
13004
+ Resource.actions,
13005
+ actions
13006
+ );
13007
+
13008
+ each(actions, function (action, name) {
13009
+
13010
+ action = merge({url: url, params: assign({}, params)}, options$$1, action);
13011
+
13012
+ resource[name] = function () {
13013
+ return (self.$http || Http)(opts(action, arguments));
13014
+ };
13015
+ });
13016
+
13017
+ return resource;
13018
+ }
13019
+
13020
+ function opts(action, args) {
13021
+
13022
+ var options$$1 = assign({}, action), params = {}, body;
13023
+
13024
+ switch (args.length) {
13025
+
13026
+ case 2:
13027
+
13028
+ params = args[0];
13029
+ body = args[1];
13030
+
13031
+ break;
13032
+
13033
+ case 1:
13034
+
13035
+ if (/^(POST|PUT|PATCH)$/i.test(options$$1.method)) {
13036
+ body = args[0];
13037
+ } else {
13038
+ params = args[0];
13039
+ }
13040
+
13041
+ break;
13042
+
13043
+ case 0:
13044
+
13045
+ break;
13046
+
13047
+ default:
13048
+
13049
+ throw 'Expected up to 2 arguments [params, body], got ' + args.length + ' arguments';
13050
+ }
13051
+
13052
+ options$$1.body = body;
13053
+ options$$1.params = assign({}, options$$1.params, params);
13054
+
13055
+ return options$$1;
13056
+ }
13057
+
13058
+ Resource.actions = {
13059
+
13060
+ get: {method: 'GET'},
13061
+ save: {method: 'POST'},
13062
+ query: {method: 'GET'},
13063
+ update: {method: 'PUT'},
13064
+ remove: {method: 'DELETE'},
13065
+ delete: {method: 'DELETE'}
13066
+
13067
+ };
13068
+
13069
+ /**
13070
+ * Install plugin.
13071
+ */
13072
+
13073
+ function plugin(Vue) {
13074
+
13075
+ if (plugin.installed) {
13076
+ return;
13077
+ }
13078
+
13079
+ Util(Vue);
13080
+
13081
+ Vue.url = Url;
13082
+ Vue.http = Http;
13083
+ Vue.resource = Resource;
13084
+ Vue.Promise = PromiseObj;
13085
+
13086
+ Object.defineProperties(Vue.prototype, {
13087
+
13088
+ $url: {
13089
+ get: function get() {
13090
+ return options(Vue.url, this, this.$options.url);
13091
+ }
13092
+ },
13093
+
13094
+ $http: {
13095
+ get: function get() {
13096
+ return options(Vue.http, this, this.$options.http);
13097
+ }
13098
+ },
13099
+
13100
+ $resource: {
13101
+ get: function get() {
13102
+ return Vue.resource.bind(this);
13103
+ }
13104
+ },
13105
+
13106
+ $promise: {
13107
+ get: function get() {
13108
+ var this$1 = this;
13109
+
13110
+ return function (executor) { return new Vue.Promise(executor, this$1); };
13111
+ }
13112
+ }
13113
+
13114
+ });
13115
+ }
13116
+
13117
+ if (typeof window !== 'undefined' && window.Vue) {
13118
+ window.Vue.use(plugin);
13119
+ }
13120
+
13121
+ /* harmony default export */ __webpack_exports__["default"] = (plugin);
13122
+
13123
+
13124
+
13125
+ /***/ }),
13126
+ /* 6 */
13127
+ /***/ (function(module, exports, __webpack_require__) {
13128
+
13129
+ "use strict";
13130
+
13131
+
13132
+ var _vue = __webpack_require__(2);
13133
+
13134
+ var _vue2 = _interopRequireDefault(_vue);
13135
+
13136
+ var _main = __webpack_require__(9);
13137
+
13138
+ var _main2 = _interopRequireDefault(_main);
13139
+
13140
+ var _store = __webpack_require__(37);
13141
+
13142
+ var _store2 = _interopRequireDefault(_store);
13143
+
13144
+ var _vueJsToggleButton = __webpack_require__(42);
13145
+
13146
+ var _vueJsToggleButton2 = _interopRequireDefault(_vueJsToggleButton);
13147
+
13148
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13149
+
13150
+ /*jshint esversion: 6 */
13151
+ _vue2.default.use(_vueJsToggleButton2.default);
13152
+
13153
+ window.onload = function () {
13154
+ new _vue2.default({
13155
+ el: '#optimole-app',
13156
+ store: _store2.default,
13157
+ components: {
13158
+ App: _main2.default
13159
+ }
13160
+ });
13161
+ };
13162
+
13163
+ /***/ }),
13164
+ /* 7 */
13165
+ /***/ (function(module, exports, __webpack_require__) {
13166
+
13167
+ /* WEBPACK VAR INJECTION */(function(global) {var scope = (typeof global !== "undefined" && global) ||
13168
+ (typeof self !== "undefined" && self) ||
13169
+ window;
13170
+ var apply = Function.prototype.apply;
13171
+
13172
+ // DOM APIs, for completeness
13173
+
13174
+ exports.setTimeout = function() {
13175
+ return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);
13176
+ };
13177
+ exports.setInterval = function() {
13178
+ return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);
13179
+ };
13180
+ exports.clearTimeout =
13181
+ exports.clearInterval = function(timeout) {
13182
+ if (timeout) {
13183
+ timeout.close();
13184
+ }
13185
+ };
13186
+
13187
+ function Timeout(id, clearFn) {
13188
+ this._id = id;
13189
+ this._clearFn = clearFn;
13190
+ }
13191
+ Timeout.prototype.unref = Timeout.prototype.ref = function() {};
13192
+ Timeout.prototype.close = function() {
13193
+ this._clearFn.call(scope, this._id);
13194
+ };
13195
+
13196
+ // Does not start the time, just sets up the members needed.
13197
+ exports.enroll = function(item, msecs) {
13198
+ clearTimeout(item._idleTimeoutId);
13199
+ item._idleTimeout = msecs;
13200
+ };
13201
+
13202
+ exports.unenroll = function(item) {
13203
+ clearTimeout(item._idleTimeoutId);
13204
+ item._idleTimeout = -1;
13205
+ };
13206
+
13207
+ exports._unrefActive = exports.active = function(item) {
13208
+ clearTimeout(item._idleTimeoutId);
13209
+
13210
+ var msecs = item._idleTimeout;
13211
+ if (msecs >= 0) {
13212
+ item._idleTimeoutId = setTimeout(function onTimeout() {
13213
+ if (item._onTimeout)
13214
+ item._onTimeout();
13215
+ }, msecs);
13216
+ }
13217
+ };
13218
+
13219
+ // setimmediate attaches itself to the global object
13220
+ __webpack_require__(8);
13221
+ // On some exotic environments, it's not clear which object `setimmediate` was
13222
+ // able to install onto. Search each possibility in the same order as the
13223
+ // `setimmediate` library.
13224
+ exports.setImmediate = (typeof self !== "undefined" && self.setImmediate) ||
13225
+ (typeof global !== "undefined" && global.setImmediate) ||
13226
+ (this && this.setImmediate);
13227
+ exports.clearImmediate = (typeof self !== "undefined" && self.clearImmediate) ||
13228
+ (typeof global !== "undefined" && global.clearImmediate) ||
13229
+ (this && this.clearImmediate);
13230
+
13231
+ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))
13232
+
13233
+ /***/ }),
13234
+ /* 8 */
13235
+ /***/ (function(module, exports, __webpack_require__) {
13236
+
13237
+ /* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) {
13238
+ "use strict";
13239
+
13240
+ if (global.setImmediate) {
13241
+ return;
13242
+ }
13243
+
13244
+ var nextHandle = 1; // Spec says greater than zero
13245
+ var tasksByHandle = {};
13246
+ var currentlyRunningATask = false;
13247
+ var doc = global.document;
13248
+ var registerImmediate;
13249
+
13250
+ function setImmediate(callback) {
13251
+ // Callback can either be a function or a string
13252
+ if (typeof callback !== "function") {
13253
+ callback = new Function("" + callback);
13254
+ }
13255
+ // Copy function arguments
13256
+ var args = new Array(arguments.length - 1);
13257
+ for (var i = 0; i < args.length; i++) {
13258
+ args[i] = arguments[i + 1];
13259
+ }
13260
+ // Store and register the task
13261
+ var task = { callback: callback, args: args };
13262
+ tasksByHandle[nextHandle] = task;
13263
+ registerImmediate(nextHandle);
13264
+ return nextHandle++;
13265
+ }
13266
+
13267
+ function clearImmediate(handle) {
13268
+ delete tasksByHandle[handle];
13269
+ }
13270
+
13271
+ function run(task) {
13272
+ var callback = task.callback;
13273
+ var args = task.args;
13274
+ switch (args.length) {
13275
+ case 0:
13276
+ callback();
13277
+ break;
13278
+ case 1:
13279
+ callback(args[0]);
13280
+ break;
13281
+ case 2:
13282
+ callback(args[0], args[1]);
13283
+ break;
13284
+ case 3:
13285
+ callback(args[0], args[1], args[2]);
13286
+ break;
13287
+ default:
13288
+ callback.apply(undefined, args);
13289
+ break;
13290
+ }
13291
+ }
13292
+
13293
+ function runIfPresent(handle) {
13294
+ // From the spec: "Wait until any invocations of this algorithm started before this one have completed."
13295
+ // So if we're currently running a task, we'll need to delay this invocation.
13296
+ if (currentlyRunningATask) {
13297
+ // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a
13298
+ // "too much recursion" error.
13299
+ setTimeout(runIfPresent, 0, handle);
13300
+ } else {
13301
+ var task = tasksByHandle[handle];
13302
+ if (task) {
13303
+ currentlyRunningATask = true;
13304
+ try {
13305
+ run(task);
13306
+ } finally {
13307
+ clearImmediate(handle);
13308
+ currentlyRunningATask = false;
13309
+ }
13310
+ }
13311
+ }
13312
+ }
13313
+
13314
+ function installNextTickImplementation() {
13315
+ registerImmediate = function(handle) {
13316
+ process.nextTick(function () { runIfPresent(handle); });
13317
+ };
13318
+ }
13319
+
13320
+ function canUsePostMessage() {
13321
+ // The test against `importScripts` prevents this implementation from being installed inside a web worker,
13322
+ // where `global.postMessage` means something completely different and can't be used for this purpose.
13323
+ if (global.postMessage && !global.importScripts) {
13324
+ var postMessageIsAsynchronous = true;
13325
+ var oldOnMessage = global.onmessage;
13326
+ global.onmessage = function() {
13327
+ postMessageIsAsynchronous = false;
13328
+ };
13329
+ global.postMessage("", "*");
13330
+ global.onmessage = oldOnMessage;
13331
+ return postMessageIsAsynchronous;
13332
+ }
13333
+ }
13334
+
13335
+ function installPostMessageImplementation() {
13336
+ // Installs an event handler on `global` for the `message` event: see
13337
+ // * https://developer.mozilla.org/en/DOM/window.postMessage
13338
+ // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages
13339
+
13340
+ var messagePrefix = "setImmediate$" + Math.random() + "$";
13341
+ var onGlobalMessage = function(event) {
13342
+ if (event.source === global &&
13343
+ typeof event.data === "string" &&
13344
+ event.data.indexOf(messagePrefix) === 0) {
13345
+ runIfPresent(+event.data.slice(messagePrefix.length));
13346
+ }
13347
+ };
13348
+
13349
+ if (global.addEventListener) {
13350
+ global.addEventListener("message", onGlobalMessage, false);
13351
+ } else {
13352
+ global.attachEvent("onmessage", onGlobalMessage);
13353
+ }
13354
+
13355
+ registerImmediate = function(handle) {
13356
+ global.postMessage(messagePrefix + handle, "*");
13357
+ };
13358
+ }
13359
+
13360
+ function installMessageChannelImplementation() {
13361
+ var channel = new MessageChannel();
13362
+ channel.port1.onmessage = function(event) {
13363
+ var handle = event.data;
13364
+ runIfPresent(handle);
13365
+ };
13366
+
13367
+ registerImmediate = function(handle) {
13368
+ channel.port2.postMessage(handle);
13369
+ };
13370
+ }
13371
+
13372
+ function installReadyStateChangeImplementation() {
13373
+ var html = doc.documentElement;
13374
+ registerImmediate = function(handle) {
13375
+ // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted
13376
+ // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.
13377
+ var script = doc.createElement("script");
13378
+ script.onreadystatechange = function () {
13379
+ runIfPresent(handle);
13380
+ script.onreadystatechange = null;
13381
+ html.removeChild(script);
13382
+ script = null;
13383
+ };
13384
+ html.appendChild(script);
13385
+ };
13386
+ }
13387
+
13388
+ function installSetTimeoutImplementation() {
13389
+ registerImmediate = function(handle) {
13390
+ setTimeout(runIfPresent, 0, handle);
13391
+ };
13392
+ }
13393
+
13394
+ // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.
13395
+ var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);
13396
+ attachTo = attachTo && attachTo.setTimeout ? attachTo : global;
13397
+
13398
+ // Don't get fooled by e.g. browserify environments.
13399
+ if ({}.toString.call(global.process) === "[object process]") {
13400
+ // For Node.js before 0.9
13401
+ installNextTickImplementation();
13402
+
13403
+ } else if (canUsePostMessage()) {
13404
+ // For non-IE10 modern browsers
13405
+ installPostMessageImplementation();
13406
+
13407
+ } else if (global.MessageChannel) {
13408
+ // For web workers, where supported
13409
+ installMessageChannelImplementation();
13410
+
13411
+ } else if (doc && "onreadystatechange" in doc.createElement("script")) {
13412
+ // For IE 6–8
13413
+ installReadyStateChangeImplementation();
13414
+
13415
+ } else {
13416
+ // For older browsers
13417
+ installSetTimeoutImplementation();
13418
+ }
13419
+
13420
+ attachTo.setImmediate = setImmediate;
13421
+ attachTo.clearImmediate = clearImmediate;
13422
+ }(typeof self === "undefined" ? typeof global === "undefined" ? this : global : self));
13423
+
13424
+ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4), __webpack_require__(3)))
13425
+
13426
+ /***/ }),
13427
+ /* 9 */
13428
+ /***/ (function(module, exports, __webpack_require__) {
13429
+
13430
+ var __vue_script__, __vue_template__
13431
+ __webpack_require__(10)
13432
+ __vue_script__ = __webpack_require__(12)
13433
+ __vue_template__ = __webpack_require__(36)
13434
+ module.exports = __vue_script__ || {}
13435
+ if (module.exports.__esModule) module.exports = module.exports.default
13436
+ if (__vue_template__) { (typeof module.exports === "function" ? module.exports.options : module.exports).template = __vue_template__ }
13437
+ if (false) {(function () { module.hot.accept()
13438
+ var hotAPI = require("vue-hot-reload-api")
13439
+ hotAPI.install(require("vue"), true)
13440
+ if (!hotAPI.compatible) return
13441
+ var id = "/Users/selul/Local Sites/wordpress/app/public/wp-content/plugins/optimole-wp/assets/vue/components/main.vue"
13442
+ if (!module.hot.data) {
13443
+ hotAPI.createRecord(id, module.exports)
13444
+ } else {
13445
+ hotAPI.update(id, module.exports, __vue_template__)
13446
+ }
13447
+ })()}
13448
+
13449
+ /***/ }),
13450
+ /* 10 */
13451
+ /***/ (function(module, exports, __webpack_require__) {
13452
+
13453
+ // style-loader: Adds some css to the DOM by adding a <style> tag
13454
+
13455
+ // load the styles
13456
+ var content = __webpack_require__(11);
13457
+ if(typeof content === 'string') content = [[module.i, content, '']];
13458
+ // add the styles to the DOM
13459
+ var update = __webpack_require__(1)(content, {});
13460
+ if(content.locals) module.exports = content.locals;
13461
+ // Hot Module Replacement
13462
+ if(false) {
13463
+ // When the styles change, update the <style> tags
13464
+ if(!content.locals) {
13465
+ module.hot.accept("!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/style-rewriter.js?id=_v-3e3bd708&file=main.vue!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=style&index=0!../../../node_modules/eslint-loader/index.js!../../../node_modules/eslint-loader/index.js!./main.vue", function() {
13466
+ var newContent = require("!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/style-rewriter.js?id=_v-3e3bd708&file=main.vue!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=style&index=0!../../../node_modules/eslint-loader/index.js!../../../node_modules/eslint-loader/index.js!./main.vue");
13467
+ if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
13468
+ update(newContent);
13469
+ });
13470
+ }
13471
+ // When the module is disposed, remove the <style> tags
13472
+ module.hot.dispose(function() { update(); });
13473
+ }
13474
+
13475
+ /***/ }),
13476
+ /* 11 */
13477
+ /***/ (function(module, exports, __webpack_require__) {
13478
+
13479
+ exports = module.exports = __webpack_require__(0)();
13480
+ // imports
13481
+
13482
+
13483
+ // module
13484
+ exports.push([module.i, "#optimole-app {\n padding: 0 30px 0 20px;\n /*! bulma.io v0.7.1 | MIT License | github.com/jgthms/bulma */\n /*! minireset.css v0.0.3 | MIT License | github.com/jgthms/minireset.css */ }\n\n@keyframes spinAround {\n from {\n transform: rotate(0deg); }\n to {\n transform: rotate(359deg); } }\n #optimole-app .delete, #optimole-app .modal-close, #optimole-app .is-unselectable, #optimole-app .button, #optimole-app .file, #optimole-app .breadcrumb, #optimole-app .pagination-previous,\n #optimole-app .pagination-next,\n #optimole-app .pagination-link,\n #optimole-app .pagination-ellipsis, #optimole-app .tabs {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n #optimole-app .select:not(.is-multiple):not(.is-loading)::after, #optimole-app .navbar-link::after {\n border: 3px solid transparent;\n border-radius: 2px;\n border-right: 0;\n border-top: 0;\n content: \" \";\n display: block;\n height: 0.625em;\n margin-top: -0.4375em;\n pointer-events: none;\n position: absolute;\n top: 50%;\n transform: rotate(-45deg);\n transform-origin: center;\n width: 0.625em; }\n #optimole-app .box:not(:last-child), #optimole-app .content:not(:last-child), #optimole-app .notification:not(:last-child), #optimole-app .progress:not(:last-child), #optimole-app .table:not(:last-child), #optimole-app .table-container:not(:last-child), #optimole-app .title:not(:last-child),\n #optimole-app .subtitle:not(:last-child), #optimole-app .block:not(:last-child), #optimole-app .highlight:not(:last-child), #optimole-app .breadcrumb:not(:last-child), #optimole-app .level:not(:last-child), #optimole-app .message:not(:last-child), #optimole-app .tabs:not(:last-child) {\n margin-bottom: 1.5rem; }\n #optimole-app .delete, #optimole-app .modal-close {\n -moz-appearance: none;\n -webkit-appearance: none;\n background-color: rgba(10, 10, 10, 0.2);\n border: none;\n border-radius: 290486px;\n cursor: pointer;\n display: inline-block;\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n font-size: 0;\n height: 20px;\n max-height: 20px;\n max-width: 20px;\n min-height: 20px;\n min-width: 20px;\n outline: none;\n position: relative;\n vertical-align: top;\n width: 20px; }\n #optimole-app .delete::before, #optimole-app .modal-close::before, #optimole-app .delete::after, #optimole-app .modal-close::after {\n background-color: white;\n content: \"\";\n display: block;\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translateX(-50%) translateY(-50%) rotate(45deg);\n transform-origin: center center; }\n #optimole-app .delete::before, #optimole-app .modal-close::before {\n height: 2px;\n width: 50%; }\n #optimole-app .delete::after, #optimole-app .modal-close::after {\n height: 50%;\n width: 2px; }\n #optimole-app .delete:hover, #optimole-app .modal-close:hover, #optimole-app .delete:focus, #optimole-app .modal-close:focus {\n background-color: rgba(10, 10, 10, 0.3); }\n #optimole-app .delete:active, #optimole-app .modal-close:active {\n background-color: rgba(10, 10, 10, 0.4); }\n #optimole-app .is-small.delete, #optimole-app .is-small.modal-close {\n height: 16px;\n max-height: 16px;\n max-width: 16px;\n min-height: 16px;\n min-width: 16px;\n width: 16px; }\n #optimole-app .is-medium.delete, #optimole-app .is-medium.modal-close {\n height: 24px;\n max-height: 24px;\n max-width: 24px;\n min-height: 24px;\n min-width: 24px;\n width: 24px; }\n #optimole-app .is-large.delete, #optimole-app .is-large.modal-close {\n height: 32px;\n max-height: 32px;\n max-width: 32px;\n min-height: 32px;\n min-width: 32px;\n width: 32px; }\n #optimole-app .button.is-loading::after, #optimole-app .select.is-loading::after, #optimole-app .control.is-loading::after, #optimole-app .loader {\n animation: spinAround 500ms infinite linear;\n border: 2px solid #dbdbdb;\n border-radius: 290486px;\n border-right-color: transparent;\n border-top-color: transparent;\n content: \"\";\n display: block;\n height: 1em;\n position: relative;\n width: 1em; }\n #optimole-app .is-overlay, #optimole-app .image.is-square img, #optimole-app .image.is-1by1 img, #optimole-app .image.is-5by4 img, #optimole-app .image.is-4by3 img, #optimole-app .image.is-3by2 img, #optimole-app .image.is-5by3 img, #optimole-app .image.is-16by9 img, #optimole-app .image.is-2by1 img, #optimole-app .image.is-3by1 img, #optimole-app .image.is-4by5 img, #optimole-app .image.is-3by4 img, #optimole-app .image.is-2by3 img, #optimole-app .image.is-3by5 img, #optimole-app .image.is-9by16 img, #optimole-app .image.is-1by2 img, #optimole-app .image.is-1by3 img, #optimole-app .modal, #optimole-app .modal-background, #optimole-app .hero-video {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0; }\n #optimole-app .button, #optimole-app .input,\n #optimole-app .textarea, #optimole-app .select select, #optimole-app .file-cta,\n #optimole-app .file-name, #optimole-app .pagination-previous,\n #optimole-app .pagination-next,\n #optimole-app .pagination-link,\n #optimole-app .pagination-ellipsis {\n -moz-appearance: none;\n -webkit-appearance: none;\n -ms-flex-align: center;\n align-items: center;\n border: 1px solid transparent;\n border-radius: 4px;\n box-shadow: none;\n display: -ms-inline-flexbox;\n display: inline-flex;\n font-size: 1rem;\n height: 2.25em;\n -ms-flex-pack: start;\n justify-content: flex-start;\n line-height: 1.5;\n padding-bottom: calc(0.375em - 1px);\n padding-left: calc(0.625em - 1px);\n padding-right: calc(0.625em - 1px);\n padding-top: calc(0.375em - 1px);\n position: relative;\n vertical-align: top; }\n #optimole-app .button:focus, #optimole-app .input:focus,\n #optimole-app .textarea:focus, #optimole-app .select select:focus, #optimole-app .file-cta:focus,\n #optimole-app .file-name:focus, #optimole-app .pagination-previous:focus,\n #optimole-app .pagination-next:focus,\n #optimole-app .pagination-link:focus,\n #optimole-app .pagination-ellipsis:focus, #optimole-app .is-focused.button, #optimole-app .is-focused.input,\n #optimole-app .is-focused.textarea, #optimole-app .select select.is-focused, #optimole-app .is-focused.file-cta,\n #optimole-app .is-focused.file-name, #optimole-app .is-focused.pagination-previous,\n #optimole-app .is-focused.pagination-next,\n #optimole-app .is-focused.pagination-link,\n #optimole-app .is-focused.pagination-ellipsis, #optimole-app .button:active, #optimole-app .input:active,\n #optimole-app .textarea:active, #optimole-app .select select:active, #optimole-app .file-cta:active,\n #optimole-app .file-name:active, #optimole-app .pagination-previous:active,\n #optimole-app .pagination-next:active,\n #optimole-app .pagination-link:active,\n #optimole-app .pagination-ellipsis:active, #optimole-app .is-active.button, #optimole-app .is-active.input,\n #optimole-app .is-active.textarea, #optimole-app .select select.is-active, #optimole-app .is-active.file-cta,\n #optimole-app .is-active.file-name, #optimole-app .is-active.pagination-previous,\n #optimole-app .is-active.pagination-next,\n #optimole-app .is-active.pagination-link,\n #optimole-app .is-active.pagination-ellipsis {\n outline: none; }\n #optimole-app .button[disabled], #optimole-app .input[disabled],\n #optimole-app .textarea[disabled], #optimole-app .select select[disabled], #optimole-app .file-cta[disabled],\n #optimole-app .file-name[disabled], #optimole-app .pagination-previous[disabled],\n #optimole-app .pagination-next[disabled],\n #optimole-app .pagination-link[disabled],\n #optimole-app .pagination-ellipsis[disabled] {\n cursor: not-allowed; }\n #optimole-app html,\n #optimole-app body,\n #optimole-app p,\n #optimole-app ol,\n #optimole-app ul,\n #optimole-app li,\n #optimole-app dl,\n #optimole-app dt,\n #optimole-app dd,\n #optimole-app blockquote,\n #optimole-app figure,\n #optimole-app fieldset,\n #optimole-app legend,\n #optimole-app textarea,\n #optimole-app pre,\n #optimole-app iframe,\n #optimole-app hr,\n #optimole-app h1,\n #optimole-app h2,\n #optimole-app h3,\n #optimole-app h4,\n #optimole-app h5,\n #optimole-app h6 {\n margin: 0;\n padding: 0; }\n #optimole-app h1,\n #optimole-app h2,\n #optimole-app h3,\n #optimole-app h4,\n #optimole-app h5,\n #optimole-app h6 {\n font-size: 100%;\n font-weight: normal; }\n #optimole-app ul {\n list-style: none; }\n #optimole-app button,\n #optimole-app input,\n #optimole-app select,\n #optimole-app textarea {\n margin: 0; }\n #optimole-app html {\n box-sizing: border-box; }\n #optimole-app *, #optimole-app *::before, #optimole-app *::after {\n box-sizing: inherit; }\n #optimole-app img,\n #optimole-app audio,\n #optimole-app video {\n height: auto;\n max-width: 100%; }\n #optimole-app iframe {\n border: 0; }\n #optimole-app table {\n border-collapse: collapse;\n border-spacing: 0; }\n #optimole-app td,\n #optimole-app th {\n padding: 0;\n text-align: left; }\n #optimole-app html {\n background-color: white;\n font-size: 16px;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n min-width: 300px;\n overflow-x: hidden;\n overflow-y: scroll;\n text-rendering: optimizeLegibility;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n text-size-adjust: 100%; }\n #optimole-app article,\n #optimole-app aside,\n #optimole-app figure,\n #optimole-app footer,\n #optimole-app header,\n #optimole-app hgroup,\n #optimole-app section {\n display: block; }\n #optimole-app body,\n #optimole-app button,\n #optimole-app input,\n #optimole-app select,\n #optimole-app textarea {\n font-family: BlinkMacSystemFont, -apple-system, \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", \"Helvetica\", \"Arial\", sans-serif; }\n #optimole-app code,\n #optimole-app pre {\n -moz-osx-font-smoothing: auto;\n -webkit-font-smoothing: auto;\n font-family: monospace; }\n #optimole-app body {\n color: #4a4a4a;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5; }\n #optimole-app a {\n color: #3273dc;\n cursor: pointer;\n text-decoration: none; }\n #optimole-app a strong {\n color: currentColor; }\n #optimole-app a:hover {\n color: #363636; }\n #optimole-app code {\n background-color: whitesmoke;\n color: #ff3860;\n font-size: 0.875em;\n font-weight: normal;\n padding: 0.25em 0.5em 0.25em; }\n #optimole-app hr {\n background-color: whitesmoke;\n border: none;\n display: block;\n height: 2px;\n margin: 1.5rem 0; }\n #optimole-app img {\n height: auto;\n max-width: 100%; }\n #optimole-app input[type=\"checkbox\"],\n #optimole-app input[type=\"radio\"] {\n vertical-align: baseline; }\n #optimole-app small {\n font-size: 0.875em; }\n #optimole-app span {\n font-style: inherit;\n font-weight: inherit; }\n #optimole-app strong {\n color: #363636;\n font-weight: 700; }\n #optimole-app pre {\n -webkit-overflow-scrolling: touch;\n background-color: whitesmoke;\n color: #4a4a4a;\n font-size: 0.875em;\n overflow-x: auto;\n padding: 1.25rem 1.5rem;\n white-space: pre;\n word-wrap: normal; }\n #optimole-app pre code {\n background-color: transparent;\n color: currentColor;\n font-size: 1em;\n padding: 0; }\n #optimole-app table td,\n #optimole-app table th {\n text-align: left;\n vertical-align: top; }\n #optimole-app table th {\n color: #363636; }\n #optimole-app .is-clearfix::after {\n clear: both;\n content: \" \";\n display: table; }\n #optimole-app .is-pulled-left {\n float: left !important; }\n #optimole-app .is-pulled-right {\n float: right !important; }\n #optimole-app .is-clipped {\n overflow: hidden !important; }\n #optimole-app .is-size-1 {\n font-size: 3rem !important; }\n #optimole-app .is-size-2 {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3 {\n font-size: 2rem !important; }\n #optimole-app .is-size-4 {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5 {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6 {\n font-size: 1rem !important; }\n #optimole-app .is-size-7 {\n font-size: 0.75rem !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-size-1-mobile {\n font-size: 3rem !important; }\n #optimole-app .is-size-2-mobile {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3-mobile {\n font-size: 2rem !important; }\n #optimole-app .is-size-4-mobile {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5-mobile {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6-mobile {\n font-size: 1rem !important; }\n #optimole-app .is-size-7-mobile {\n font-size: 0.75rem !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-size-1-tablet {\n font-size: 3rem !important; }\n #optimole-app .is-size-2-tablet {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3-tablet {\n font-size: 2rem !important; }\n #optimole-app .is-size-4-tablet {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5-tablet {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6-tablet {\n font-size: 1rem !important; }\n #optimole-app .is-size-7-tablet {\n font-size: 0.75rem !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-size-1-touch {\n font-size: 3rem !important; }\n #optimole-app .is-size-2-touch {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3-touch {\n font-size: 2rem !important; }\n #optimole-app .is-size-4-touch {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5-touch {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6-touch {\n font-size: 1rem !important; }\n #optimole-app .is-size-7-touch {\n font-size: 0.75rem !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-size-1-desktop {\n font-size: 3rem !important; }\n #optimole-app .is-size-2-desktop {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3-desktop {\n font-size: 2rem !important; }\n #optimole-app .is-size-4-desktop {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5-desktop {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6-desktop {\n font-size: 1rem !important; }\n #optimole-app .is-size-7-desktop {\n font-size: 0.75rem !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-size-1-widescreen {\n font-size: 3rem !important; }\n #optimole-app .is-size-2-widescreen {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3-widescreen {\n font-size: 2rem !important; }\n #optimole-app .is-size-4-widescreen {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5-widescreen {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6-widescreen {\n font-size: 1rem !important; }\n #optimole-app .is-size-7-widescreen {\n font-size: 0.75rem !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-size-1-fullhd {\n font-size: 3rem !important; }\n #optimole-app .is-size-2-fullhd {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3-fullhd {\n font-size: 2rem !important; }\n #optimole-app .is-size-4-fullhd {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5-fullhd {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6-fullhd {\n font-size: 1rem !important; }\n #optimole-app .is-size-7-fullhd {\n font-size: 0.75rem !important; } }\n #optimole-app .has-text-centered {\n text-align: center !important; }\n #optimole-app .has-text-justified {\n text-align: justify !important; }\n #optimole-app .has-text-left {\n text-align: left !important; }\n #optimole-app .has-text-right {\n text-align: right !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .has-text-centered-mobile {\n text-align: center !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .has-text-centered-tablet {\n text-align: center !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .has-text-centered-tablet-only {\n text-align: center !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .has-text-centered-touch {\n text-align: center !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .has-text-centered-desktop {\n text-align: center !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .has-text-centered-desktop-only {\n text-align: center !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .has-text-centered-widescreen {\n text-align: center !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .has-text-centered-widescreen-only {\n text-align: center !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .has-text-centered-fullhd {\n text-align: center !important; } }\n @media screen and (max-width: 768px) {\n #optimole-app .has-text-justified-mobile {\n text-align: justify !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .has-text-justified-tablet {\n text-align: justify !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .has-text-justified-tablet-only {\n text-align: justify !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .has-text-justified-touch {\n text-align: justify !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .has-text-justified-desktop {\n text-align: justify !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .has-text-justified-desktop-only {\n text-align: justify !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .has-text-justified-widescreen {\n text-align: justify !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .has-text-justified-widescreen-only {\n text-align: justify !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .has-text-justified-fullhd {\n text-align: justify !important; } }\n @media screen and (max-width: 768px) {\n #optimole-app .has-text-left-mobile {\n text-align: left !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .has-text-left-tablet {\n text-align: left !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .has-text-left-tablet-only {\n text-align: left !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .has-text-left-touch {\n text-align: left !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .has-text-left-desktop {\n text-align: left !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .has-text-left-desktop-only {\n text-align: left !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .has-text-left-widescreen {\n text-align: left !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .has-text-left-widescreen-only {\n text-align: left !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .has-text-left-fullhd {\n text-align: left !important; } }\n @media screen and (max-width: 768px) {\n #optimole-app .has-text-right-mobile {\n text-align: right !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .has-text-right-tablet {\n text-align: right !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .has-text-right-tablet-only {\n text-align: right !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .has-text-right-touch {\n text-align: right !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .has-text-right-desktop {\n text-align: right !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .has-text-right-desktop-only {\n text-align: right !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .has-text-right-widescreen {\n text-align: right !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .has-text-right-widescreen-only {\n text-align: right !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .has-text-right-fullhd {\n text-align: right !important; } }\n #optimole-app .is-capitalized {\n text-transform: capitalize !important; }\n #optimole-app .is-lowercase {\n text-transform: lowercase !important; }\n #optimole-app .is-uppercase {\n text-transform: uppercase !important; }\n #optimole-app .is-italic {\n font-style: italic !important; }\n #optimole-app .has-text-white {\n color: white !important; }\n #optimole-app a.has-text-white:hover, #optimole-app a.has-text-white:focus {\n color: #e6e6e6 !important; }\n #optimole-app .has-background-white {\n background-color: white !important; }\n #optimole-app .has-text-black {\n color: #0a0a0a !important; }\n #optimole-app a.has-text-black:hover, #optimole-app a.has-text-black:focus {\n color: black !important; }\n #optimole-app .has-background-black {\n background-color: #0a0a0a !important; }\n #optimole-app .has-text-light {\n color: whitesmoke !important; }\n #optimole-app a.has-text-light:hover, #optimole-app a.has-text-light:focus {\n color: #dbdbdb !important; }\n #optimole-app .has-background-light {\n background-color: whitesmoke !important; }\n #optimole-app .has-text-dark {\n color: #363636 !important; }\n #optimole-app a.has-text-dark:hover, #optimole-app a.has-text-dark:focus {\n color: #1c1c1c !important; }\n #optimole-app .has-background-dark {\n background-color: #363636 !important; }\n #optimole-app .has-text-primary {\n color: #e7602a !important; }\n #optimole-app a.has-text-primary:hover, #optimole-app a.has-text-primary:focus {\n color: #c84916 !important; }\n #optimole-app .has-background-primary {\n background-color: #e7602a !important; }\n #optimole-app .has-text-link {\n color: #3273dc !important; }\n #optimole-app a.has-text-link:hover, #optimole-app a.has-text-link:focus {\n color: #205bbc !important; }\n #optimole-app .has-background-link {\n background-color: #3273dc !important; }\n #optimole-app .has-text-info {\n color: #008ec2 !important; }\n #optimole-app a.has-text-info:hover, #optimole-app a.has-text-info:focus {\n color: #00698f !important; }\n #optimole-app .has-background-info {\n background-color: #008ec2 !important; }\n #optimole-app .has-text-success {\n color: #34a85e !important; }\n #optimole-app a.has-text-success:hover, #optimole-app a.has-text-success:focus {\n color: #288148 !important; }\n #optimole-app .has-background-success {\n background-color: #34a85e !important; }\n #optimole-app .has-text-warning {\n color: #ffdd57 !important; }\n #optimole-app a.has-text-warning:hover, #optimole-app a.has-text-warning:focus {\n color: #ffd324 !important; }\n #optimole-app .has-background-warning {\n background-color: #ffdd57 !important; }\n #optimole-app .has-text-danger {\n color: #d54222 !important; }\n #optimole-app a.has-text-danger:hover, #optimole-app a.has-text-danger:focus {\n color: #a9341b !important; }\n #optimole-app .has-background-danger {\n background-color: #d54222 !important; }\n #optimole-app .has-text-black-bis {\n color: #121212 !important; }\n #optimole-app .has-background-black-bis {\n background-color: #121212 !important; }\n #optimole-app .has-text-black-ter {\n color: #242424 !important; }\n #optimole-app .has-background-black-ter {\n background-color: #242424 !important; }\n #optimole-app .has-text-grey-darker {\n color: #363636 !important; }\n #optimole-app .has-background-grey-darker {\n background-color: #363636 !important; }\n #optimole-app .has-text-grey-dark {\n color: #4a4a4a !important; }\n #optimole-app .has-background-grey-dark {\n background-color: #4a4a4a !important; }\n #optimole-app .has-text-grey {\n color: #7a7a7a !important; }\n #optimole-app .has-background-grey {\n background-color: #7a7a7a !important; }\n #optimole-app .has-text-grey-light {\n color: #b5b5b5 !important; }\n #optimole-app .has-background-grey-light {\n background-color: #b5b5b5 !important; }\n #optimole-app .has-text-grey-lighter {\n color: #dbdbdb !important; }\n #optimole-app .has-background-grey-lighter {\n background-color: #dbdbdb !important; }\n #optimole-app .has-text-white-ter {\n color: whitesmoke !important; }\n #optimole-app .has-background-white-ter {\n background-color: whitesmoke !important; }\n #optimole-app .has-text-white-bis {\n color: #fafafa !important; }\n #optimole-app .has-background-white-bis {\n background-color: #fafafa !important; }\n #optimole-app .has-text-weight-light {\n font-weight: 300 !important; }\n #optimole-app .has-text-weight-normal {\n font-weight: 400 !important; }\n #optimole-app .has-text-weight-semibold {\n font-weight: 600 !important; }\n #optimole-app .has-text-weight-bold {\n font-weight: 700 !important; }\n #optimole-app .is-block {\n display: block !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-block-mobile {\n display: block !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-block-tablet {\n display: block !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-block-tablet-only {\n display: block !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-block-touch {\n display: block !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-block-desktop {\n display: block !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-block-desktop-only {\n display: block !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-block-widescreen {\n display: block !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-block-widescreen-only {\n display: block !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-block-fullhd {\n display: block !important; } }\n #optimole-app .is-flex {\n display: -ms-flexbox !important;\n display: flex !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-flex-mobile {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-flex-tablet {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-flex-tablet-only {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-flex-touch {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-flex-desktop {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-flex-desktop-only {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-flex-widescreen {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-flex-widescreen-only {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-flex-fullhd {\n display: -ms-flexbox !important;\n display: flex !important; } }\n #optimole-app .is-inline {\n display: inline !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-inline-mobile {\n display: inline !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-inline-tablet {\n display: inline !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-inline-tablet-only {\n display: inline !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-inline-touch {\n display: inline !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-inline-desktop {\n display: inline !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-inline-desktop-only {\n display: inline !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-inline-widescreen {\n display: inline !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-inline-widescreen-only {\n display: inline !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-inline-fullhd {\n display: inline !important; } }\n #optimole-app .is-inline-block {\n display: inline-block !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-inline-block-mobile {\n display: inline-block !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-inline-block-tablet {\n display: inline-block !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-inline-block-tablet-only {\n display: inline-block !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-inline-block-touch {\n display: inline-block !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-inline-block-desktop {\n display: inline-block !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-inline-block-desktop-only {\n display: inline-block !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-inline-block-widescreen {\n display: inline-block !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-inline-block-widescreen-only {\n display: inline-block !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-inline-block-fullhd {\n display: inline-block !important; } }\n #optimole-app .is-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-inline-flex-mobile {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-inline-flex-tablet {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-inline-flex-tablet-only {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-inline-flex-touch {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-inline-flex-desktop {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-inline-flex-desktop-only {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-inline-flex-widescreen {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-inline-flex-widescreen-only {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-inline-flex-fullhd {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n #optimole-app .is-hidden {\n display: none !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-hidden-mobile {\n display: none !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-hidden-tablet {\n display: none !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-hidden-tablet-only {\n display: none !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-hidden-touch {\n display: none !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-hidden-desktop {\n display: none !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-hidden-desktop-only {\n display: none !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-hidden-widescreen {\n display: none !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-hidden-widescreen-only {\n display: none !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-hidden-fullhd {\n display: none !important; } }\n #optimole-app .is-invisible {\n visibility: hidden !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-invisible-mobile {\n visibility: hidden !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-invisible-tablet {\n visibility: hidden !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-invisible-tablet-only {\n visibility: hidden !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-invisible-touch {\n visibility: hidden !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-invisible-desktop {\n visibility: hidden !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-invisible-desktop-only {\n visibility: hidden !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-invisible-widescreen {\n visibility: hidden !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-invisible-widescreen-only {\n visibility: hidden !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-invisible-fullhd {\n visibility: hidden !important; } }\n #optimole-app .is-marginless {\n margin: 0 !important; }\n #optimole-app .is-paddingless {\n padding: 0 !important; }\n #optimole-app .is-radiusless {\n border-radius: 0 !important; }\n #optimole-app .is-shadowless {\n box-shadow: none !important; }\n #optimole-app .box {\n background-color: white;\n border-radius: 6px;\n box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);\n color: #4a4a4a;\n display: block;\n padding: 1.25rem; }\n #optimole-app a.box:hover, #optimole-app a.box:focus {\n box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #3273dc; }\n #optimole-app a.box:active {\n box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #3273dc; }\n #optimole-app .button {\n background-color: white;\n border-color: #dbdbdb;\n border-width: 1px;\n color: #363636;\n cursor: pointer;\n -ms-flex-pack: center;\n justify-content: center;\n padding-bottom: calc(0.375em - 1px);\n padding-left: 0.75em;\n padding-right: 0.75em;\n padding-top: calc(0.375em - 1px);\n text-align: center;\n white-space: nowrap; }\n #optimole-app .button strong {\n color: inherit; }\n #optimole-app .button .icon, #optimole-app .button .icon.is-small, #optimole-app .button .icon.is-medium, #optimole-app .button .icon.is-large {\n height: 1.5em;\n width: 1.5em; }\n #optimole-app .button .icon:first-child:not(:last-child) {\n margin-left: calc(-0.375em - 1px);\n margin-right: 0.1875em; }\n #optimole-app .button .icon:last-child:not(:first-child) {\n margin-left: 0.1875em;\n margin-right: calc(-0.375em - 1px); }\n #optimole-app .button .icon:first-child:last-child {\n margin-left: calc(-0.375em - 1px);\n margin-right: calc(-0.375em - 1px); }\n #optimole-app .button:hover, #optimole-app .button.is-hovered {\n border-color: #b5b5b5;\n color: #363636; }\n #optimole-app .button:focus, #optimole-app .button.is-focused {\n border-color: #3273dc;\n color: #363636; }\n #optimole-app .button:focus:not(:active), #optimole-app .button.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); }\n #optimole-app .button:active, #optimole-app .button.is-active {\n border-color: #4a4a4a;\n color: #363636; }\n #optimole-app .button.is-text {\n background-color: transparent;\n border-color: transparent;\n color: #4a4a4a;\n text-decoration: underline; }\n #optimole-app .button.is-text:hover, #optimole-app .button.is-text.is-hovered, #optimole-app .button.is-text:focus, #optimole-app .button.is-text.is-focused {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .button.is-text:active, #optimole-app .button.is-text.is-active {\n background-color: #e8e8e8;\n color: #363636; }\n #optimole-app .button.is-text[disabled] {\n background-color: transparent;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-white {\n background-color: white;\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .button.is-white:hover, #optimole-app .button.is-white.is-hovered {\n background-color: #f9f9f9;\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .button.is-white:focus, #optimole-app .button.is-white.is-focused {\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .button.is-white:focus:not(:active), #optimole-app .button.is-white.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }\n #optimole-app .button.is-white:active, #optimole-app .button.is-white.is-active {\n background-color: #f2f2f2;\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .button.is-white[disabled] {\n background-color: white;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-white.is-inverted {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .button.is-white.is-inverted:hover {\n background-color: black; }\n #optimole-app .button.is-white.is-inverted[disabled] {\n background-color: #0a0a0a;\n border-color: transparent;\n box-shadow: none;\n color: white; }\n #optimole-app .button.is-white.is-loading::after {\n border-color: transparent transparent #0a0a0a #0a0a0a !important; }\n #optimole-app .button.is-white.is-outlined {\n background-color: transparent;\n border-color: white;\n color: white; }\n #optimole-app .button.is-white.is-outlined:hover, #optimole-app .button.is-white.is-outlined:focus {\n background-color: white;\n border-color: white;\n color: #0a0a0a; }\n #optimole-app .button.is-white.is-outlined.is-loading::after {\n border-color: transparent transparent white white !important; }\n #optimole-app .button.is-white.is-outlined[disabled] {\n background-color: transparent;\n border-color: white;\n box-shadow: none;\n color: white; }\n #optimole-app .button.is-white.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #0a0a0a;\n color: #0a0a0a; }\n #optimole-app .button.is-white.is-inverted.is-outlined:hover, #optimole-app .button.is-white.is-inverted.is-outlined:focus {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .button.is-white.is-inverted.is-outlined[disabled] {\n background-color: transparent;\n border-color: #0a0a0a;\n box-shadow: none;\n color: #0a0a0a; }\n #optimole-app .button.is-black {\n background-color: #0a0a0a;\n border-color: transparent;\n color: white; }\n #optimole-app .button.is-black:hover, #optimole-app .button.is-black.is-hovered {\n background-color: #040404;\n border-color: transparent;\n color: white; }\n #optimole-app .button.is-black:focus, #optimole-app .button.is-black.is-focused {\n border-color: transparent;\n color: white; }\n #optimole-app .button.is-black:focus:not(:active), #optimole-app .button.is-black.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }\n #optimole-app .button.is-black:active, #optimole-app .button.is-black.is-active {\n background-color: black;\n border-color: transparent;\n color: white; }\n #optimole-app .button.is-black[disabled] {\n background-color: #0a0a0a;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-black.is-inverted {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .button.is-black.is-inverted:hover {\n background-color: #f2f2f2; }\n #optimole-app .button.is-black.is-inverted[disabled] {\n background-color: white;\n border-color: transparent;\n box-shadow: none;\n color: #0a0a0a; }\n #optimole-app .button.is-black.is-loading::after {\n border-color: transparent transparent white white !important; }\n #optimole-app .button.is-black.is-outlined {\n background-color: transparent;\n border-color: #0a0a0a;\n color: #0a0a0a; }\n #optimole-app .button.is-black.is-outlined:hover, #optimole-app .button.is-black.is-outlined:focus {\n background-color: #0a0a0a;\n border-color: #0a0a0a;\n color: white; }\n #optimole-app .button.is-black.is-outlined.is-loading::after {\n border-color: transparent transparent #0a0a0a #0a0a0a !important; }\n #optimole-app .button.is-black.is-outlined[disabled] {\n background-color: transparent;\n border-color: #0a0a0a;\n box-shadow: none;\n color: #0a0a0a; }\n #optimole-app .button.is-black.is-inverted.is-outlined {\n background-color: transparent;\n border-color: white;\n color: white; }\n #optimole-app .button.is-black.is-inverted.is-outlined:hover, #optimole-app .button.is-black.is-inverted.is-outlined:focus {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .button.is-black.is-inverted.is-outlined[disabled] {\n background-color: transparent;\n border-color: white;\n box-shadow: none;\n color: white; }\n #optimole-app .button.is-light {\n background-color: whitesmoke;\n border-color: transparent;\n color: #363636; }\n #optimole-app .button.is-light:hover, #optimole-app .button.is-light.is-hovered {\n background-color: #eeeeee;\n border-color: transparent;\n color: #363636; }\n #optimole-app .button.is-light:focus, #optimole-app .button.is-light.is-focused {\n border-color: transparent;\n color: #363636; }\n #optimole-app .button.is-light:focus:not(:active), #optimole-app .button.is-light.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }\n #optimole-app .button.is-light:active, #optimole-app .button.is-light.is-active {\n background-color: #e8e8e8;\n border-color: transparent;\n color: #363636; }\n #optimole-app .button.is-light[disabled] {\n background-color: whitesmoke;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-light.is-inverted {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .button.is-light.is-inverted:hover {\n background-color: #292929; }\n #optimole-app .button.is-light.is-inverted[disabled] {\n background-color: #363636;\n border-color: transparent;\n box-shadow: none;\n color: whitesmoke; }\n #optimole-app .button.is-light.is-loading::after {\n border-color: transparent transparent #363636 #363636 !important; }\n #optimole-app .button.is-light.is-outlined {\n background-color: transparent;\n border-color: whitesmoke;\n color: whitesmoke; }\n #optimole-app .button.is-light.is-outlined:hover, #optimole-app .button.is-light.is-outlined:focus {\n background-color: whitesmoke;\n border-color: whitesmoke;\n color: #363636; }\n #optimole-app .button.is-light.is-outlined.is-loading::after {\n border-color: transparent transparent whitesmoke whitesmoke !important; }\n #optimole-app .button.is-light.is-outlined[disabled] {\n background-color: transparent;\n border-color: whitesmoke;\n box-shadow: none;\n color: whitesmoke; }\n #optimole-app .button.is-light.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #363636;\n color: #363636; }\n #optimole-app .button.is-light.is-inverted.is-outlined:hover, #optimole-app .button.is-light.is-inverted.is-outlined:focus {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .button.is-light.is-inverted.is-outlined[disabled] {\n background-color: transparent;\n border-color: #363636;\n box-shadow: none;\n color: #363636; }\n #optimole-app .button.is-dark {\n background-color: #363636;\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .button.is-dark:hover, #optimole-app .button.is-dark.is-hovered {\n background-color: #2f2f2f;\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .button.is-dark:focus, #optimole-app .button.is-dark.is-focused {\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .button.is-dark:focus:not(:active), #optimole-app .button.is-dark.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }\n #optimole-app .button.is-dark:active, #optimole-app .button.is-dark.is-active {\n background-color: #292929;\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .button.is-dark[disabled] {\n background-color: #363636;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-dark.is-inverted {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .button.is-dark.is-inverted:hover {\n background-color: #e8e8e8; }\n #optimole-app .button.is-dark.is-inverted[disabled] {\n background-color: whitesmoke;\n border-color: transparent;\n box-shadow: none;\n color: #363636; }\n #optimole-app .button.is-dark.is-loading::after {\n border-color: transparent transparent whitesmoke whitesmoke !important; }\n #optimole-app .button.is-dark.is-outlined {\n background-color: transparent;\n border-color: #363636;\n color: #363636; }\n #optimole-app .button.is-dark.is-outlined:hover, #optimole-app .button.is-dark.is-outlined:focus {\n background-color: #363636;\n border-color: #363636;\n color: whitesmoke; }\n #optimole-app .button.is-dark.is-outlined.is-loading::after {\n border-color: transparent transparent #363636 #363636 !important; }\n #optimole-app .button.is-dark.is-outlined[disabled] {\n background-color: transparent;\n border-color: #363636;\n box-shadow: none;\n color: #363636; }\n #optimole-app .button.is-dark.is-inverted.is-outlined {\n background-color: transparent;\n border-color: whitesmoke;\n color: whitesmoke; }\n #optimole-app .button.is-dark.is-inverted.is-outlined:hover, #optimole-app .button.is-dark.is-inverted.is-outlined:focus {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .button.is-dark.is-inverted.is-outlined[disabled] {\n background-color: transparent;\n border-color: whitesmoke;\n box-shadow: none;\n color: whitesmoke; }\n #optimole-app .button.is-primary {\n background-color: #e7602a;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-primary:hover, #optimole-app .button.is-primary.is-hovered {\n background-color: #e6571f;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-primary:focus, #optimole-app .button.is-primary.is-focused {\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-primary:focus:not(:active), #optimole-app .button.is-primary.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(231, 96, 42, 0.25); }\n #optimole-app .button.is-primary:active, #optimole-app .button.is-primary.is-active {\n background-color: #de5119;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-primary[disabled] {\n background-color: #e7602a;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-primary.is-inverted {\n background-color: #fff;\n color: #e7602a; }\n #optimole-app .button.is-primary.is-inverted:hover {\n background-color: #f2f2f2; }\n #optimole-app .button.is-primary.is-inverted[disabled] {\n background-color: #fff;\n border-color: transparent;\n box-shadow: none;\n color: #e7602a; }\n #optimole-app .button.is-primary.is-loading::after {\n border-color: transparent transparent #fff #fff !important; }\n #optimole-app .button.is-primary.is-outlined {\n background-color: transparent;\n border-color: #e7602a;\n color: #e7602a; }\n #optimole-app .button.is-primary.is-outlined:hover, #optimole-app .button.is-primary.is-outlined:focus {\n background-color: #e7602a;\n border-color: #e7602a;\n color: #fff; }\n #optimole-app .button.is-primary.is-outlined.is-loading::after {\n border-color: transparent transparent #e7602a #e7602a !important; }\n #optimole-app .button.is-primary.is-outlined[disabled] {\n background-color: transparent;\n border-color: #e7602a;\n box-shadow: none;\n color: #e7602a; }\n #optimole-app .button.is-primary.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n color: #fff; }\n #optimole-app .button.is-primary.is-inverted.is-outlined:hover, #optimole-app .button.is-primary.is-inverted.is-outlined:focus {\n background-color: #fff;\n color: #e7602a; }\n #optimole-app .button.is-primary.is-inverted.is-outlined[disabled] {\n background-color: transparent;\n border-color: #fff;\n box-shadow: none;\n color: #fff; }\n #optimole-app .button.is-link {\n background-color: #3273dc;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-link:hover, #optimole-app .button.is-link.is-hovered {\n background-color: #276cda;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-link:focus, #optimole-app .button.is-link.is-focused {\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-link:focus:not(:active), #optimole-app .button.is-link.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); }\n #optimole-app .button.is-link:active, #optimole-app .button.is-link.is-active {\n background-color: #2366d1;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-link[disabled] {\n background-color: #3273dc;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-link.is-inverted {\n background-color: #fff;\n color: #3273dc; }\n #optimole-app .button.is-link.is-inverted:hover {\n background-color: #f2f2f2; }\n #optimole-app .button.is-link.is-inverted[disabled] {\n background-color: #fff;\n border-color: transparent;\n box-shadow: none;\n color: #3273dc; }\n #optimole-app .button.is-link.is-loading::after {\n border-color: transparent transparent #fff #fff !important; }\n #optimole-app .button.is-link.is-outlined {\n background-color: transparent;\n border-color: #3273dc;\n color: #3273dc; }\n #optimole-app .button.is-link.is-outlined:hover, #optimole-app .button.is-link.is-outlined:focus {\n background-color: #3273dc;\n border-color: #3273dc;\n color: #fff; }\n #optimole-app .button.is-link.is-outlined.is-loading::after {\n border-color: transparent transparent #3273dc #3273dc !important; }\n #optimole-app .button.is-link.is-outlined[disabled] {\n background-color: transparent;\n border-color: #3273dc;\n box-shadow: none;\n color: #3273dc; }\n #optimole-app .button.is-link.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n color: #fff; }\n #optimole-app .button.is-link.is-inverted.is-outlined:hover, #optimole-app .button.is-link.is-inverted.is-outlined:focus {\n background-color: #fff;\n color: #3273dc; }\n #optimole-app .button.is-link.is-inverted.is-outlined[disabled] {\n background-color: transparent;\n border-color: #fff;\n box-shadow: none;\n color: #fff; }\n #optimole-app .button.is-info {\n background-color: #008ec2;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-info:hover, #optimole-app .button.is-info.is-hovered {\n background-color: #0085b5;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-info:focus, #optimole-app .button.is-info.is-focused {\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-info:focus:not(:active), #optimole-app .button.is-info.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(0, 142, 194, 0.25); }\n #optimole-app .button.is-info:active, #optimole-app .button.is-info.is-active {\n background-color: #007ba9;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-info[disabled] {\n background-color: #008ec2;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-info.is-inverted {\n background-color: #fff;\n color: #008ec2; }\n #optimole-app .button.is-info.is-inverted:hover {\n background-color: #f2f2f2; }\n #optimole-app .button.is-info.is-inverted[disabled] {\n background-color: #fff;\n border-color: transparent;\n box-shadow: none;\n color: #008ec2; }\n #optimole-app .button.is-info.is-loading::after {\n border-color: transparent transparent #fff #fff !important; }\n #optimole-app .button.is-info.is-outlined {\n background-color: transparent;\n border-color: #008ec2;\n color: #008ec2; }\n #optimole-app .button.is-info.is-outlined:hover, #optimole-app .button.is-info.is-outlined:focus {\n background-color: #008ec2;\n border-color: #008ec2;\n color: #fff; }\n #optimole-app .button.is-info.is-outlined.is-loading::after {\n border-color: transparent transparent #008ec2 #008ec2 !important; }\n #optimole-app .button.is-info.is-outlined[disabled] {\n background-color: transparent;\n border-color: #008ec2;\n box-shadow: none;\n color: #008ec2; }\n #optimole-app .button.is-info.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n color: #fff; }\n #optimole-app .button.is-info.is-inverted.is-outlined:hover, #optimole-app .button.is-info.is-inverted.is-outlined:focus {\n background-color: #fff;\n color: #008ec2; }\n #optimole-app .button.is-info.is-inverted.is-outlined[disabled] {\n background-color: transparent;\n border-color: #fff;\n box-shadow: none;\n color: #fff; }\n #optimole-app .button.is-success {\n background-color: #34a85e;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-success:hover, #optimole-app .button.is-success.is-hovered {\n background-color: #319e59;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-success:focus, #optimole-app .button.is-success.is-focused {\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-success:focus:not(:active), #optimole-app .button.is-success.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(52, 168, 94, 0.25); }\n #optimole-app .button.is-success:active, #optimole-app .button.is-success.is-active {\n background-color: #2e9553;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-success[disabled] {\n background-color: #34a85e;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-success.is-inverted {\n background-color: #fff;\n color: #34a85e; }\n #optimole-app .button.is-success.is-inverted:hover {\n background-color: #f2f2f2; }\n #optimole-app .button.is-success.is-inverted[disabled] {\n background-color: #fff;\n border-color: transparent;\n box-shadow: none;\n color: #34a85e; }\n #optimole-app .button.is-success.is-loading::after {\n border-color: transparent transparent #fff #fff !important; }\n #optimole-app .button.is-success.is-outlined {\n background-color: transparent;\n border-color: #34a85e;\n color: #34a85e; }\n #optimole-app .button.is-success.is-outlined:hover, #optimole-app .button.is-success.is-outlined:focus {\n background-color: #34a85e;\n border-color: #34a85e;\n color: #fff; }\n #optimole-app .button.is-success.is-outlined.is-loading::after {\n border-color: transparent transparent #34a85e #34a85e !important; }\n #optimole-app .button.is-success.is-outlined[disabled] {\n background-color: transparent;\n border-color: #34a85e;\n box-shadow: none;\n color: #34a85e; }\n #optimole-app .button.is-success.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n color: #fff; }\n #optimole-app .button.is-success.is-inverted.is-outlined:hover, #optimole-app .button.is-success.is-inverted.is-outlined:focus {\n background-color: #fff;\n color: #34a85e; }\n #optimole-app .button.is-success.is-inverted.is-outlined[disabled] {\n background-color: transparent;\n border-color: #fff;\n box-shadow: none;\n color: #fff; }\n #optimole-app .button.is-warning {\n background-color: #ffdd57;\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning:hover, #optimole-app .button.is-warning.is-hovered {\n background-color: #ffdb4a;\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning:focus, #optimole-app .button.is-warning.is-focused {\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning:focus:not(:active), #optimole-app .button.is-warning.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }\n #optimole-app .button.is-warning:active, #optimole-app .button.is-warning.is-active {\n background-color: #ffd83d;\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning[disabled] {\n background-color: #ffdd57;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-warning.is-inverted {\n background-color: rgba(0, 0, 0, 0.7);\n color: #ffdd57; }\n #optimole-app .button.is-warning.is-inverted:hover {\n background-color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning.is-inverted[disabled] {\n background-color: rgba(0, 0, 0, 0.7);\n border-color: transparent;\n box-shadow: none;\n color: #ffdd57; }\n #optimole-app .button.is-warning.is-loading::after {\n border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; }\n #optimole-app .button.is-warning.is-outlined {\n background-color: transparent;\n border-color: #ffdd57;\n color: #ffdd57; }\n #optimole-app .button.is-warning.is-outlined:hover, #optimole-app .button.is-warning.is-outlined:focus {\n background-color: #ffdd57;\n border-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning.is-outlined.is-loading::after {\n border-color: transparent transparent #ffdd57 #ffdd57 !important; }\n #optimole-app .button.is-warning.is-outlined[disabled] {\n background-color: transparent;\n border-color: #ffdd57;\n box-shadow: none;\n color: #ffdd57; }\n #optimole-app .button.is-warning.is-inverted.is-outlined {\n background-color: transparent;\n border-color: rgba(0, 0, 0, 0.7);\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning.is-inverted.is-outlined:hover, #optimole-app .button.is-warning.is-inverted.is-outlined:focus {\n background-color: rgba(0, 0, 0, 0.7);\n color: #ffdd57; }\n #optimole-app .button.is-warning.is-inverted.is-outlined[disabled] {\n background-color: transparent;\n border-color: rgba(0, 0, 0, 0.7);\n box-shadow: none;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-danger {\n background-color: #d54222;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-danger:hover, #optimole-app .button.is-danger.is-hovered {\n background-color: #ca3f20;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-danger:focus, #optimole-app .button.is-danger.is-focused {\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-danger:focus:not(:active), #optimole-app .button.is-danger.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(213, 66, 34, 0.25); }\n #optimole-app .button.is-danger:active, #optimole-app .button.is-danger.is-active {\n background-color: #bf3b1e;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-danger[disabled] {\n background-color: #d54222;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-danger.is-inverted {\n background-color: #fff;\n color: #d54222; }\n #optimole-app .button.is-danger.is-inverted:hover {\n background-color: #f2f2f2; }\n #optimole-app .button.is-danger.is-inverted[disabled] {\n background-color: #fff;\n border-color: transparent;\n box-shadow: none;\n color: #d54222; }\n #optimole-app .button.is-danger.is-loading::after {\n border-color: transparent transparent #fff #fff !important; }\n #optimole-app .button.is-danger.is-outlined {\n background-color: transparent;\n border-color: #d54222;\n color: #d54222; }\n #optimole-app .button.is-danger.is-outlined:hover, #optimole-app .button.is-danger.is-outlined:focus {\n background-color: #d54222;\n border-color: #d54222;\n color: #fff; }\n #optimole-app .button.is-danger.is-outlined.is-loading::after {\n border-color: transparent transparent #d54222 #d54222 !important; }\n #optimole-app .button.is-danger.is-outlined[disabled] {\n background-color: transparent;\n border-color: #d54222;\n box-shadow: none;\n color: #d54222; }\n #optimole-app .button.is-danger.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n color: #fff; }\n #optimole-app .button.is-danger.is-inverted.is-outlined:hover, #optimole-app .button.is-danger.is-inverted.is-outlined:focus {\n background-color: #fff;\n color: #d54222; }\n #optimole-app .button.is-danger.is-inverted.is-outlined[disabled] {\n background-color: transparent;\n border-color: #fff;\n box-shadow: none;\n color: #fff; }\n #optimole-app .button.is-small {\n border-radius: 2px;\n font-size: 0.75rem; }\n #optimole-app .button.is-medium {\n font-size: 1.25rem; }\n #optimole-app .button.is-large {\n font-size: 1.5rem; }\n #optimole-app .button[disabled] {\n background-color: white;\n border-color: #dbdbdb;\n box-shadow: none;\n opacity: 0.5; }\n #optimole-app .button.is-fullwidth {\n display: -ms-flexbox;\n display: flex;\n width: 100%; }\n #optimole-app .button.is-loading {\n color: transparent !important;\n pointer-events: none; }\n #optimole-app .button.is-loading::after {\n position: absolute;\n left: calc(50% - (1em / 2));\n top: calc(50% - (1em / 2));\n position: absolute !important; }\n #optimole-app .button.is-static {\n background-color: whitesmoke;\n border-color: #dbdbdb;\n color: #7a7a7a;\n box-shadow: none;\n pointer-events: none; }\n #optimole-app .button.is-rounded {\n border-radius: 290486px;\n padding-left: 1em;\n padding-right: 1em; }\n #optimole-app .buttons {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n #optimole-app .buttons .button {\n margin-bottom: 0.5rem; }\n #optimole-app .buttons .button:not(:last-child) {\n margin-right: 0.5rem; }\n #optimole-app .buttons:last-child {\n margin-bottom: -0.5rem; }\n #optimole-app .buttons:not(:last-child) {\n margin-bottom: 1rem; }\n #optimole-app .buttons.has-addons .button:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n #optimole-app .buttons.has-addons .button:not(:last-child) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n margin-right: -1px; }\n #optimole-app .buttons.has-addons .button:last-child {\n margin-right: 0; }\n #optimole-app .buttons.has-addons .button:hover, #optimole-app .buttons.has-addons .button.is-hovered {\n z-index: 2; }\n #optimole-app .buttons.has-addons .button:focus, #optimole-app .buttons.has-addons .button.is-focused, #optimole-app .buttons.has-addons .button:active, #optimole-app .buttons.has-addons .button.is-active, #optimole-app .buttons.has-addons .button.is-selected {\n z-index: 3; }\n #optimole-app .buttons.has-addons .button:focus:hover, #optimole-app .buttons.has-addons .button.is-focused:hover, #optimole-app .buttons.has-addons .button:active:hover, #optimole-app .buttons.has-addons .button.is-active:hover, #optimole-app .buttons.has-addons .button.is-selected:hover {\n z-index: 4; }\n #optimole-app .buttons.has-addons .button.is-expanded {\n -ms-flex-positive: 1;\n flex-grow: 1; }\n #optimole-app .buttons.is-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .buttons.is-right {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .container {\n margin: 0 auto;\n position: relative; }\n @media screen and (min-width: 1088px) {\n #optimole-app .container {\n max-width: 960px;\n width: 960px; }\n #optimole-app .container.is-fluid {\n margin-left: 64px;\n margin-right: 64px;\n max-width: none;\n width: auto; } }\n @media screen and (max-width: 1279px) {\n #optimole-app .container.is-widescreen {\n max-width: 1152px;\n width: auto; } }\n @media screen and (max-width: 1471px) {\n #optimole-app .container.is-fullhd {\n max-width: 1344px;\n width: auto; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .container {\n max-width: 1152px;\n width: 1152px; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .container {\n max-width: 1344px;\n width: 1344px; } }\n #optimole-app .content li + li {\n margin-top: 0.25em; }\n #optimole-app .content p:not(:last-child),\n #optimole-app .content dl:not(:last-child),\n #optimole-app .content ol:not(:last-child),\n #optimole-app .content ul:not(:last-child),\n #optimole-app .content blockquote:not(:last-child),\n #optimole-app .content pre:not(:last-child),\n #optimole-app .content table:not(:last-child) {\n margin-bottom: 1em; }\n #optimole-app .content h1,\n #optimole-app .content h2,\n #optimole-app .content h3,\n #optimole-app .content h4,\n #optimole-app .content h5,\n #optimole-app .content h6 {\n color: #363636;\n font-weight: 600;\n line-height: 1.125; }\n #optimole-app .content h1 {\n font-size: 2em;\n margin-bottom: 0.5em; }\n #optimole-app .content h1:not(:first-child) {\n margin-top: 1em; }\n #optimole-app .content h2 {\n font-size: 1.75em;\n margin-bottom: 0.5714em; }\n #optimole-app .content h2:not(:first-child) {\n margin-top: 1.1428em; }\n #optimole-app .content h3 {\n font-size: 1.5em;\n margin-bottom: 0.6666em; }\n #optimole-app .content h3:not(:first-child) {\n margin-top: 1.3333em; }\n #optimole-app .content h4 {\n font-size: 1.25em;\n margin-bottom: 0.8em; }\n #optimole-app .content h5 {\n font-size: 1.125em;\n margin-bottom: 0.8888em; }\n #optimole-app .content h6 {\n font-size: 1em;\n margin-bottom: 1em; }\n #optimole-app .content blockquote {\n background-color: whitesmoke;\n border-left: 5px solid #dbdbdb;\n padding: 1.25em 1.5em; }\n #optimole-app .content ol {\n list-style: decimal outside;\n margin-left: 2em;\n margin-top: 1em; }\n #optimole-app .content ul {\n list-style: disc outside;\n margin-left: 2em;\n margin-top: 1em; }\n #optimole-app .content ul ul {\n list-style-type: circle;\n margin-top: 0.5em; }\n #optimole-app .content ul ul ul {\n list-style-type: square; }\n #optimole-app .content dd {\n margin-left: 2em; }\n #optimole-app .content figure {\n margin-left: 2em;\n margin-right: 2em;\n text-align: center; }\n #optimole-app .content figure:not(:first-child) {\n margin-top: 2em; }\n #optimole-app .content figure:not(:last-child) {\n margin-bottom: 2em; }\n #optimole-app .content figure img {\n display: inline-block; }\n #optimole-app .content figure figcaption {\n font-style: italic; }\n #optimole-app .content pre {\n -webkit-overflow-scrolling: touch;\n overflow-x: auto;\n padding: 1.25em 1.5em;\n white-space: pre;\n word-wrap: normal; }\n #optimole-app .content sup,\n #optimole-app .content sub {\n font-size: 75%; }\n #optimole-app .content table {\n width: 100%; }\n #optimole-app .content table td,\n #optimole-app .content table th {\n border: 1px solid #dbdbdb;\n border-width: 0 0 1px;\n padding: 0.5em 0.75em;\n vertical-align: top; }\n #optimole-app .content table th {\n color: #363636;\n text-align: left; }\n #optimole-app .content table thead td,\n #optimole-app .content table thead th {\n border-width: 0 0 2px;\n color: #363636; }\n #optimole-app .content table tfoot td,\n #optimole-app .content table tfoot th {\n border-width: 2px 0 0;\n color: #363636; }\n #optimole-app .content table tbody tr:last-child td,\n #optimole-app .content table tbody tr:last-child th {\n border-bottom-width: 0; }\n #optimole-app .content.is-small {\n font-size: 0.75rem; }\n #optimole-app .content.is-medium {\n font-size: 1.25rem; }\n #optimole-app .content.is-large {\n font-size: 1.5rem; }\n #optimole-app .input,\n #optimole-app .textarea {\n background-color: white;\n border-color: #dbdbdb;\n color: #363636;\n box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);\n max-width: 100%;\n width: 100%; }\n #optimole-app .input::-moz-placeholder,\n #optimole-app .textarea::-moz-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .input::-webkit-input-placeholder,\n #optimole-app .textarea::-webkit-input-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .input:-moz-placeholder,\n #optimole-app .textarea:-moz-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .input:-ms-input-placeholder,\n #optimole-app .textarea:-ms-input-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .input:hover, #optimole-app .input.is-hovered,\n #optimole-app .textarea:hover,\n #optimole-app .textarea.is-hovered {\n border-color: #b5b5b5; }\n #optimole-app .input:focus, #optimole-app .input.is-focused, #optimole-app .input:active, #optimole-app .input.is-active,\n #optimole-app .textarea:focus,\n #optimole-app .textarea.is-focused,\n #optimole-app .textarea:active,\n #optimole-app .textarea.is-active {\n border-color: #3273dc;\n box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); }\n #optimole-app .input[disabled],\n #optimole-app .textarea[disabled] {\n background-color: whitesmoke;\n border-color: whitesmoke;\n box-shadow: none;\n color: #7a7a7a; }\n #optimole-app .input[disabled]::-moz-placeholder,\n #optimole-app .textarea[disabled]::-moz-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .input[disabled]::-webkit-input-placeholder,\n #optimole-app .textarea[disabled]::-webkit-input-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .input[disabled]:-moz-placeholder,\n #optimole-app .textarea[disabled]:-moz-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .input[disabled]:-ms-input-placeholder,\n #optimole-app .textarea[disabled]:-ms-input-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .input[readonly],\n #optimole-app .textarea[readonly] {\n box-shadow: none; }\n #optimole-app .input.is-white,\n #optimole-app .textarea.is-white {\n border-color: white; }\n #optimole-app .input.is-white:focus, #optimole-app .input.is-white.is-focused, #optimole-app .input.is-white:active, #optimole-app .input.is-white.is-active,\n #optimole-app .textarea.is-white:focus,\n #optimole-app .textarea.is-white.is-focused,\n #optimole-app .textarea.is-white:active,\n #optimole-app .textarea.is-white.is-active {\n box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }\n #optimole-app .input.is-black,\n #optimole-app .textarea.is-black {\n border-color: #0a0a0a; }\n #optimole-app .input.is-black:focus, #optimole-app .input.is-black.is-focused, #optimole-app .input.is-black:active, #optimole-app .input.is-black.is-active,\n #optimole-app .textarea.is-black:focus,\n #optimole-app .textarea.is-black.is-focused,\n #optimole-app .textarea.is-black:active,\n #optimole-app .textarea.is-black.is-active {\n box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }\n #optimole-app .input.is-light,\n #optimole-app .textarea.is-light {\n border-color: whitesmoke; }\n #optimole-app .input.is-light:focus, #optimole-app .input.is-light.is-focused, #optimole-app .input.is-light:active, #optimole-app .input.is-light.is-active,\n #optimole-app .textarea.is-light:focus,\n #optimole-app .textarea.is-light.is-focused,\n #optimole-app .textarea.is-light:active,\n #optimole-app .textarea.is-light.is-active {\n box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }\n #optimole-app .input.is-dark,\n #optimole-app .textarea.is-dark {\n border-color: #363636; }\n #optimole-app .input.is-dark:focus, #optimole-app .input.is-dark.is-focused, #optimole-app .input.is-dark:active, #optimole-app .input.is-dark.is-active,\n #optimole-app .textarea.is-dark:focus,\n #optimole-app .textarea.is-dark.is-focused,\n #optimole-app .textarea.is-dark:active,\n #optimole-app .textarea.is-dark.is-active {\n box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }\n #optimole-app .input.is-primary,\n #optimole-app .textarea.is-primary {\n border-color: #e7602a; }\n #optimole-app .input.is-primary:focus, #optimole-app .input.is-primary.is-focused, #optimole-app .input.is-primary:active, #optimole-app .input.is-primary.is-active,\n #optimole-app .textarea.is-primary:focus,\n #optimole-app .textarea.is-primary.is-focused,\n #optimole-app .textarea.is-primary:active,\n #optimole-app .textarea.is-primary.is-active {\n box-shadow: 0 0 0 0.125em rgba(231, 96, 42, 0.25); }\n #optimole-app .input.is-link,\n #optimole-app .textarea.is-link {\n border-color: #3273dc; }\n #optimole-app .input.is-link:focus, #optimole-app .input.is-link.is-focused, #optimole-app .input.is-link:active, #optimole-app .input.is-link.is-active,\n #optimole-app .textarea.is-link:focus,\n #optimole-app .textarea.is-link.is-focused,\n #optimole-app .textarea.is-link:active,\n #optimole-app .textarea.is-link.is-active {\n box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); }\n #optimole-app .input.is-info,\n #optimole-app .textarea.is-info {\n border-color: #008ec2; }\n #optimole-app .input.is-info:focus, #optimole-app .input.is-info.is-focused, #optimole-app .input.is-info:active, #optimole-app .input.is-info.is-active,\n #optimole-app .textarea.is-info:focus,\n #optimole-app .textarea.is-info.is-focused,\n #optimole-app .textarea.is-info:active,\n #optimole-app .textarea.is-info.is-active {\n box-shadow: 0 0 0 0.125em rgba(0, 142, 194, 0.25); }\n #optimole-app .input.is-success,\n #optimole-app .textarea.is-success {\n border-color: #34a85e; }\n #optimole-app .input.is-success:focus, #optimole-app .input.is-success.is-focused, #optimole-app .input.is-success:active, #optimole-app .input.is-success.is-active,\n #optimole-app .textarea.is-success:focus,\n #optimole-app .textarea.is-success.is-focused,\n #optimole-app .textarea.is-success:active,\n #optimole-app .textarea.is-success.is-active {\n box-shadow: 0 0 0 0.125em rgba(52, 168, 94, 0.25); }\n #optimole-app .input.is-warning,\n #optimole-app .textarea.is-warning {\n border-color: #ffdd57; }\n #optimole-app .input.is-warning:focus, #optimole-app .input.is-warning.is-focused, #optimole-app .input.is-warning:active, #optimole-app .input.is-warning.is-active,\n #optimole-app .textarea.is-warning:focus,\n #optimole-app .textarea.is-warning.is-focused,\n #optimole-app .textarea.is-warning:active,\n #optimole-app .textarea.is-warning.is-active {\n box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }\n #optimole-app .input.is-danger,\n #optimole-app .textarea.is-danger {\n border-color: #d54222; }\n #optimole-app .input.is-danger:focus, #optimole-app .input.is-danger.is-focused, #optimole-app .input.is-danger:active, #optimole-app .input.is-danger.is-active,\n #optimole-app .textarea.is-danger:focus,\n #optimole-app .textarea.is-danger.is-focused,\n #optimole-app .textarea.is-danger:active,\n #optimole-app .textarea.is-danger.is-active {\n box-shadow: 0 0 0 0.125em rgba(213, 66, 34, 0.25); }\n #optimole-app .input.is-small,\n #optimole-app .textarea.is-small {\n border-radius: 2px;\n font-size: 0.75rem; }\n #optimole-app .input.is-medium,\n #optimole-app .textarea.is-medium {\n font-size: 1.25rem; }\n #optimole-app .input.is-large,\n #optimole-app .textarea.is-large {\n font-size: 1.5rem; }\n #optimole-app .input.is-fullwidth,\n #optimole-app .textarea.is-fullwidth {\n display: block;\n width: 100%; }\n #optimole-app .input.is-inline,\n #optimole-app .textarea.is-inline {\n display: inline;\n width: auto; }\n #optimole-app .input.is-rounded {\n border-radius: 290486px;\n padding-left: 1em;\n padding-right: 1em; }\n #optimole-app .input.is-static {\n background-color: transparent;\n border-color: transparent;\n box-shadow: none;\n padding-left: 0;\n padding-right: 0; }\n #optimole-app .textarea {\n display: block;\n max-width: 100%;\n min-width: 100%;\n padding: 0.625em;\n resize: vertical; }\n #optimole-app .textarea:not([rows]) {\n max-height: 600px;\n min-height: 120px; }\n #optimole-app .textarea[rows] {\n height: initial; }\n #optimole-app .textarea.has-fixed-size {\n resize: none; }\n #optimole-app .checkbox,\n #optimole-app .radio {\n cursor: pointer;\n display: inline-block;\n line-height: 1.25;\n position: relative; }\n #optimole-app .checkbox input,\n #optimole-app .radio input {\n cursor: pointer; }\n #optimole-app .checkbox:hover,\n #optimole-app .radio:hover {\n color: #363636; }\n #optimole-app .checkbox[disabled],\n #optimole-app .radio[disabled] {\n color: #7a7a7a;\n cursor: not-allowed; }\n #optimole-app .radio + .radio {\n margin-left: 0.5em; }\n #optimole-app .select {\n display: inline-block;\n max-width: 100%;\n position: relative;\n vertical-align: top; }\n #optimole-app .select:not(.is-multiple) {\n height: 2.25em; }\n #optimole-app .select:not(.is-multiple):not(.is-loading)::after {\n border-color: #3273dc;\n right: 1.125em;\n z-index: 4; }\n #optimole-app .select.is-rounded select {\n border-radius: 290486px;\n padding-left: 1em; }\n #optimole-app .select select {\n background-color: white;\n border-color: #dbdbdb;\n color: #363636;\n cursor: pointer;\n display: block;\n font-size: 1em;\n max-width: 100%;\n outline: none; }\n #optimole-app .select select::-moz-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .select select::-webkit-input-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .select select:-moz-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .select select:-ms-input-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .select select:hover, #optimole-app .select select.is-hovered {\n border-color: #b5b5b5; }\n #optimole-app .select select:focus, #optimole-app .select select.is-focused, #optimole-app .select select:active, #optimole-app .select select.is-active {\n border-color: #3273dc;\n box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); }\n #optimole-app .select select[disabled] {\n background-color: whitesmoke;\n border-color: whitesmoke;\n box-shadow: none;\n color: #7a7a7a; }\n #optimole-app .select select[disabled]::-moz-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .select select[disabled]::-webkit-input-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .select select[disabled]:-moz-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .select select[disabled]:-ms-input-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .select select::-ms-expand {\n display: none; }\n #optimole-app .select select[disabled]:hover {\n border-color: whitesmoke; }\n #optimole-app .select select:not([multiple]) {\n padding-right: 2.5em; }\n #optimole-app .select select[multiple] {\n height: initial;\n padding: 0; }\n #optimole-app .select select[multiple] option {\n padding: 0.5em 1em; }\n #optimole-app .select:not(.is-multiple):not(.is-loading):hover::after {\n border-color: #363636; }\n #optimole-app .select.is-white:not(:hover)::after {\n border-color: white; }\n #optimole-app .select.is-white select {\n border-color: white; }\n #optimole-app .select.is-white select:hover, #optimole-app .select.is-white select.is-hovered {\n border-color: #f2f2f2; }\n #optimole-app .select.is-white select:focus, #optimole-app .select.is-white select.is-focused, #optimole-app .select.is-white select:active, #optimole-app .select.is-white select.is-active {\n box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }\n #optimole-app .select.is-black:not(:hover)::after {\n border-color: #0a0a0a; }\n #optimole-app .select.is-black select {\n border-color: #0a0a0a; }\n #optimole-app .select.is-black select:hover, #optimole-app .select.is-black select.is-hovered {\n border-color: black; }\n #optimole-app .select.is-black select:focus, #optimole-app .select.is-black select.is-focused, #optimole-app .select.is-black select:active, #optimole-app .select.is-black select.is-active {\n box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }\n #optimole-app .select.is-light:not(:hover)::after {\n border-color: whitesmoke; }\n #optimole-app .select.is-light select {\n border-color: whitesmoke; }\n #optimole-app .select.is-light select:hover, #optimole-app .select.is-light select.is-hovered {\n border-color: #e8e8e8; }\n #optimole-app .select.is-light select:focus, #optimole-app .select.is-light select.is-focused, #optimole-app .select.is-light select:active, #optimole-app .select.is-light select.is-active {\n box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }\n #optimole-app .select.is-dark:not(:hover)::after {\n border-color: #363636; }\n #optimole-app .select.is-dark select {\n border-color: #363636; }\n #optimole-app .select.is-dark select:hover, #optimole-app .select.is-dark select.is-hovered {\n border-color: #292929; }\n #optimole-app .select.is-dark select:focus, #optimole-app .select.is-dark select.is-focused, #optimole-app .select.is-dark select:active, #optimole-app .select.is-dark select.is-active {\n box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }\n #optimole-app .select.is-primary:not(:hover)::after {\n border-color: #e7602a; }\n #optimole-app .select.is-primary select {\n border-color: #e7602a; }\n #optimole-app .select.is-primary select:hover, #optimole-app .select.is-primary select.is-hovered {\n border-color: #de5119; }\n #optimole-app .select.is-primary select:focus, #optimole-app .select.is-primary select.is-focused, #optimole-app .select.is-primary select:active, #optimole-app .select.is-primary select.is-active {\n box-shadow: 0 0 0 0.125em rgba(231, 96, 42, 0.25); }\n #optimole-app .select.is-link:not(:hover)::after {\n border-color: #3273dc; }\n #optimole-app .select.is-link select {\n border-color: #3273dc; }\n #optimole-app .select.is-link select:hover, #optimole-app .select.is-link select.is-hovered {\n border-color: #2366d1; }\n #optimole-app .select.is-link select:focus, #optimole-app .select.is-link select.is-focused, #optimole-app .select.is-link select:active, #optimole-app .select.is-link select.is-active {\n box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); }\n #optimole-app .select.is-info:not(:hover)::after {\n border-color: #008ec2; }\n #optimole-app .select.is-info select {\n border-color: #008ec2; }\n #optimole-app .select.is-info select:hover, #optimole-app .select.is-info select.is-hovered {\n border-color: #007ba9; }\n #optimole-app .select.is-info select:focus, #optimole-app .select.is-info select.is-focused, #optimole-app .select.is-info select:active, #optimole-app .select.is-info select.is-active {\n box-shadow: 0 0 0 0.125em rgba(0, 142, 194, 0.25); }\n #optimole-app .select.is-success:not(:hover)::after {\n border-color: #34a85e; }\n #optimole-app .select.is-success select {\n border-color: #34a85e; }\n #optimole-app .select.is-success select:hover, #optimole-app .select.is-success select.is-hovered {\n border-color: #2e9553; }\n #optimole-app .select.is-success select:focus, #optimole-app .select.is-success select.is-focused, #optimole-app .select.is-success select:active, #optimole-app .select.is-success select.is-active {\n box-shadow: 0 0 0 0.125em rgba(52, 168, 94, 0.25); }\n #optimole-app .select.is-warning:not(:hover)::after {\n border-color: #ffdd57; }\n #optimole-app .select.is-warning select {\n border-color: #ffdd57; }\n #optimole-app .select.is-warning select:hover, #optimole-app .select.is-warning select.is-hovered {\n border-color: #ffd83d; }\n #optimole-app .select.is-warning select:focus, #optimole-app .select.is-warning select.is-focused, #optimole-app .select.is-warning select:active, #optimole-app .select.is-warning select.is-active {\n box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }\n #optimole-app .select.is-danger:not(:hover)::after {\n border-color: #d54222; }\n #optimole-app .select.is-danger select {\n border-color: #d54222; }\n #optimole-app .select.is-danger select:hover, #optimole-app .select.is-danger select.is-hovered {\n border-color: #bf3b1e; }\n #optimole-app .select.is-danger select:focus, #optimole-app .select.is-danger select.is-focused, #optimole-app .select.is-danger select:active, #optimole-app .select.is-danger select.is-active {\n box-shadow: 0 0 0 0.125em rgba(213, 66, 34, 0.25); }\n #optimole-app .select.is-small {\n border-radius: 2px;\n font-size: 0.75rem; }\n #optimole-app .select.is-medium {\n font-size: 1.25rem; }\n #optimole-app .select.is-large {\n font-size: 1.5rem; }\n #optimole-app .select.is-disabled::after {\n border-color: #7a7a7a; }\n #optimole-app .select.is-fullwidth {\n width: 100%; }\n #optimole-app .select.is-fullwidth select {\n width: 100%; }\n #optimole-app .select.is-loading::after {\n margin-top: 0;\n position: absolute;\n right: 0.625em;\n top: 0.625em;\n transform: none; }\n #optimole-app .select.is-loading.is-small:after {\n font-size: 0.75rem; }\n #optimole-app .select.is-loading.is-medium:after {\n font-size: 1.25rem; }\n #optimole-app .select.is-loading.is-large:after {\n font-size: 1.5rem; }\n #optimole-app .file {\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: start;\n justify-content: flex-start;\n position: relative; }\n #optimole-app .file.is-white .file-cta {\n background-color: white;\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .file.is-white:hover .file-cta, #optimole-app .file.is-white.is-hovered .file-cta {\n background-color: #f9f9f9;\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .file.is-white:focus .file-cta, #optimole-app .file.is-white.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25);\n color: #0a0a0a; }\n #optimole-app .file.is-white:active .file-cta, #optimole-app .file.is-white.is-active .file-cta {\n background-color: #f2f2f2;\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .file.is-black .file-cta {\n background-color: #0a0a0a;\n border-color: transparent;\n color: white; }\n #optimole-app .file.is-black:hover .file-cta, #optimole-app .file.is-black.is-hovered .file-cta {\n background-color: #040404;\n border-color: transparent;\n color: white; }\n #optimole-app .file.is-black:focus .file-cta, #optimole-app .file.is-black.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25);\n color: white; }\n #optimole-app .file.is-black:active .file-cta, #optimole-app .file.is-black.is-active .file-cta {\n background-color: black;\n border-color: transparent;\n color: white; }\n #optimole-app .file.is-light .file-cta {\n background-color: whitesmoke;\n border-color: transparent;\n color: #363636; }\n #optimole-app .file.is-light:hover .file-cta, #optimole-app .file.is-light.is-hovered .file-cta {\n background-color: #eeeeee;\n border-color: transparent;\n color: #363636; }\n #optimole-app .file.is-light:focus .file-cta, #optimole-app .file.is-light.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25);\n color: #363636; }\n #optimole-app .file.is-light:active .file-cta, #optimole-app .file.is-light.is-active .file-cta {\n background-color: #e8e8e8;\n border-color: transparent;\n color: #363636; }\n #optimole-app .file.is-dark .file-cta {\n background-color: #363636;\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .file.is-dark:hover .file-cta, #optimole-app .file.is-dark.is-hovered .file-cta {\n background-color: #2f2f2f;\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .file.is-dark:focus .file-cta, #optimole-app .file.is-dark.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25);\n color: whitesmoke; }\n #optimole-app .file.is-dark:active .file-cta, #optimole-app .file.is-dark.is-active .file-cta {\n background-color: #292929;\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .file.is-primary .file-cta {\n background-color: #e7602a;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-primary:hover .file-cta, #optimole-app .file.is-primary.is-hovered .file-cta {\n background-color: #e6571f;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-primary:focus .file-cta, #optimole-app .file.is-primary.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(231, 96, 42, 0.25);\n color: #fff; }\n #optimole-app .file.is-primary:active .file-cta, #optimole-app .file.is-primary.is-active .file-cta {\n background-color: #de5119;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-link .file-cta {\n background-color: #3273dc;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-link:hover .file-cta, #optimole-app .file.is-link.is-hovered .file-cta {\n background-color: #276cda;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-link:focus .file-cta, #optimole-app .file.is-link.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(50, 115, 220, 0.25);\n color: #fff; }\n #optimole-app .file.is-link:active .file-cta, #optimole-app .file.is-link.is-active .file-cta {\n background-color: #2366d1;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-info .file-cta {\n background-color: #008ec2;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-info:hover .file-cta, #optimole-app .file.is-info.is-hovered .file-cta {\n background-color: #0085b5;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-info:focus .file-cta, #optimole-app .file.is-info.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(0, 142, 194, 0.25);\n color: #fff; }\n #optimole-app .file.is-info:active .file-cta, #optimole-app .file.is-info.is-active .file-cta {\n background-color: #007ba9;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-success .file-cta {\n background-color: #34a85e;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-success:hover .file-cta, #optimole-app .file.is-success.is-hovered .file-cta {\n background-color: #319e59;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-success:focus .file-cta, #optimole-app .file.is-success.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(52, 168, 94, 0.25);\n color: #fff; }\n #optimole-app .file.is-success:active .file-cta, #optimole-app .file.is-success.is-active .file-cta {\n background-color: #2e9553;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-warning .file-cta {\n background-color: #ffdd57;\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .file.is-warning:hover .file-cta, #optimole-app .file.is-warning.is-hovered .file-cta {\n background-color: #ffdb4a;\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .file.is-warning:focus .file-cta, #optimole-app .file.is-warning.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25);\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .file.is-warning:active .file-cta, #optimole-app .file.is-warning.is-active .file-cta {\n background-color: #ffd83d;\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .file.is-danger .file-cta {\n background-color: #d54222;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-danger:hover .file-cta, #optimole-app .file.is-danger.is-hovered .file-cta {\n background-color: #ca3f20;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-danger:focus .file-cta, #optimole-app .file.is-danger.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(213, 66, 34, 0.25);\n color: #fff; }\n #optimole-app .file.is-danger:active .file-cta, #optimole-app .file.is-danger.is-active .file-cta {\n background-color: #bf3b1e;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-small {\n font-size: 0.75rem; }\n #optimole-app .file.is-medium {\n font-size: 1.25rem; }\n #optimole-app .file.is-medium .file-icon .fa {\n font-size: 21px; }\n #optimole-app .file.is-large {\n font-size: 1.5rem; }\n #optimole-app .file.is-large .file-icon .fa {\n font-size: 28px; }\n #optimole-app .file.has-name .file-cta {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0; }\n #optimole-app .file.has-name .file-name {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n #optimole-app .file.has-name.is-empty .file-cta {\n border-radius: 4px; }\n #optimole-app .file.has-name.is-empty .file-name {\n display: none; }\n #optimole-app .file.is-boxed .file-label {\n -ms-flex-direction: column;\n flex-direction: column; }\n #optimole-app .file.is-boxed .file-cta {\n -ms-flex-direction: column;\n flex-direction: column;\n height: auto;\n padding: 1em 3em; }\n #optimole-app .file.is-boxed .file-name {\n border-width: 0 1px 1px; }\n #optimole-app .file.is-boxed .file-icon {\n height: 1.5em;\n width: 1.5em; }\n #optimole-app .file.is-boxed .file-icon .fa {\n font-size: 21px; }\n #optimole-app .file.is-boxed.is-small .file-icon .fa {\n font-size: 14px; }\n #optimole-app .file.is-boxed.is-medium .file-icon .fa {\n font-size: 28px; }\n #optimole-app .file.is-boxed.is-large .file-icon .fa {\n font-size: 35px; }\n #optimole-app .file.is-boxed.has-name .file-cta {\n border-radius: 4px 4px 0 0; }\n #optimole-app .file.is-boxed.has-name .file-name {\n border-radius: 0 0 4px 4px;\n border-width: 0 1px 1px; }\n #optimole-app .file.is-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .file.is-fullwidth .file-label {\n width: 100%; }\n #optimole-app .file.is-fullwidth .file-name {\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: none; }\n #optimole-app .file.is-right {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .file.is-right .file-cta {\n border-radius: 0 4px 4px 0; }\n #optimole-app .file.is-right .file-name {\n border-radius: 4px 0 0 4px;\n border-width: 1px 0 1px 1px;\n -ms-flex-order: -1;\n order: -1; }\n #optimole-app .file-label {\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex;\n cursor: pointer;\n -ms-flex-pack: start;\n justify-content: flex-start;\n overflow: hidden;\n position: relative; }\n #optimole-app .file-label:hover .file-cta {\n background-color: #eeeeee;\n color: #363636; }\n #optimole-app .file-label:hover .file-name {\n border-color: #d5d5d5; }\n #optimole-app .file-label:active .file-cta {\n background-color: #e8e8e8;\n color: #363636; }\n #optimole-app .file-label:active .file-name {\n border-color: #cfcfcf; }\n #optimole-app .file-input {\n height: 0.01em;\n left: 0;\n outline: none;\n position: absolute;\n top: 0;\n width: 0.01em; }\n #optimole-app .file-cta,\n #optimole-app .file-name {\n border-color: #dbdbdb;\n border-radius: 4px;\n font-size: 1em;\n padding-left: 1em;\n padding-right: 1em;\n white-space: nowrap; }\n #optimole-app .file-cta {\n background-color: whitesmoke;\n color: #4a4a4a; }\n #optimole-app .file-name {\n border-color: #dbdbdb;\n border-style: solid;\n border-width: 1px 1px 1px 0;\n display: block;\n max-width: 16em;\n overflow: hidden;\n text-align: left;\n text-overflow: ellipsis; }\n #optimole-app .file-icon {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex;\n height: 1em;\n -ms-flex-pack: center;\n justify-content: center;\n margin-right: 0.5em;\n width: 1em; }\n #optimole-app .file-icon .fa {\n font-size: 14px; }\n #optimole-app .label {\n color: #363636;\n display: block;\n font-size: 1rem;\n font-weight: 700; }\n #optimole-app .label:not(:last-child) {\n margin-bottom: 0.5em; }\n #optimole-app .label.is-small {\n font-size: 0.75rem; }\n #optimole-app .label.is-medium {\n font-size: 1.25rem; }\n #optimole-app .label.is-large {\n font-size: 1.5rem; }\n #optimole-app .help {\n display: block;\n font-size: 0.75rem;\n margin-top: 0.25rem; }\n #optimole-app .help.is-white {\n color: white; }\n #optimole-app .help.is-black {\n color: #0a0a0a; }\n #optimole-app .help.is-light {\n color: whitesmoke; }\n #optimole-app .help.is-dark {\n color: #363636; }\n #optimole-app .help.is-primary {\n color: #e7602a; }\n #optimole-app .help.is-link {\n color: #3273dc; }\n #optimole-app .help.is-info {\n color: #008ec2; }\n #optimole-app .help.is-success {\n color: #34a85e; }\n #optimole-app .help.is-warning {\n color: #ffdd57; }\n #optimole-app .help.is-danger {\n color: #d54222; }\n #optimole-app .field:not(:last-child) {\n margin-bottom: 0.75rem; }\n #optimole-app .field.has-addons {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n #optimole-app .field.has-addons .control:not(:last-child) {\n margin-right: -1px; }\n #optimole-app .field.has-addons .control:not(:first-child):not(:last-child) .button,\n #optimole-app .field.has-addons .control:not(:first-child):not(:last-child) .input,\n #optimole-app .field.has-addons .control:not(:first-child):not(:last-child) .select select {\n border-radius: 0; }\n #optimole-app .field.has-addons .control:first-child .button,\n #optimole-app .field.has-addons .control:first-child .input,\n #optimole-app .field.has-addons .control:first-child .select select {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0; }\n #optimole-app .field.has-addons .control:last-child .button,\n #optimole-app .field.has-addons .control:last-child .input,\n #optimole-app .field.has-addons .control:last-child .select select {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n #optimole-app .field.has-addons .control .button:hover, #optimole-app .field.has-addons .control .button.is-hovered,\n #optimole-app .field.has-addons .control .input:hover,\n #optimole-app .field.has-addons .control .input.is-hovered,\n #optimole-app .field.has-addons .control .select select:hover,\n #optimole-app .field.has-addons .control .select select.is-hovered {\n z-index: 2; }\n #optimole-app .field.has-addons .control .button:focus, #optimole-app .field.has-addons .control .button.is-focused, #optimole-app .field.has-addons .control .button:active, #optimole-app .field.has-addons .control .button.is-active,\n #optimole-app .field.has-addons .control .input:focus,\n #optimole-app .field.has-addons .control .input.is-focused,\n #optimole-app .field.has-addons .control .input:active,\n #optimole-app .field.has-addons .control .input.is-active,\n #optimole-app .field.has-addons .control .select select:focus,\n #optimole-app .field.has-addons .control .select select.is-focused,\n #optimole-app .field.has-addons .control .select select:active,\n #optimole-app .field.has-addons .control .select select.is-active {\n z-index: 3; }\n #optimole-app .field.has-addons .control .button:focus:hover, #optimole-app .field.has-addons .control .button.is-focused:hover, #optimole-app .field.has-addons .control .button:active:hover, #optimole-app .field.has-addons .control .button.is-active:hover,\n #optimole-app .field.has-addons .control .input:focus:hover,\n #optimole-app .field.has-addons .control .input.is-focused:hover,\n #optimole-app .field.has-addons .control .input:active:hover,\n #optimole-app .field.has-addons .control .input.is-active:hover,\n #optimole-app .field.has-addons .control .select select:focus:hover,\n #optimole-app .field.has-addons .control .select select.is-focused:hover,\n #optimole-app .field.has-addons .control .select select:active:hover,\n #optimole-app .field.has-addons .control .select select.is-active:hover {\n z-index: 4; }\n #optimole-app .field.has-addons .control.is-expanded {\n -ms-flex-positive: 1;\n flex-grow: 1; }\n #optimole-app .field.has-addons.has-addons-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .field.has-addons.has-addons-right {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .field.has-addons.has-addons-fullwidth .control {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .field.is-grouped {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n #optimole-app .field.is-grouped > .control {\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .field.is-grouped > .control:not(:last-child) {\n margin-bottom: 0;\n margin-right: 0.75rem; }\n #optimole-app .field.is-grouped > .control.is-expanded {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .field.is-grouped.is-grouped-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .field.is-grouped.is-grouped-right {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .field.is-grouped.is-grouped-multiline {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap; }\n #optimole-app .field.is-grouped.is-grouped-multiline > .control:last-child, #optimole-app .field.is-grouped.is-grouped-multiline > .control:not(:last-child) {\n margin-bottom: 0.75rem; }\n #optimole-app .field.is-grouped.is-grouped-multiline:last-child {\n margin-bottom: -0.75rem; }\n #optimole-app .field.is-grouped.is-grouped-multiline:not(:last-child) {\n margin-bottom: 0; }\n @media screen and (min-width: 769px), print {\n #optimole-app .field.is-horizontal {\n display: -ms-flexbox;\n display: flex; } }\n #optimole-app .field-label .label {\n font-size: inherit; }\n @media screen and (max-width: 768px) {\n #optimole-app .field-label {\n margin-bottom: 0.5rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .field-label {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n margin-right: 1.5rem;\n text-align: right; }\n #optimole-app .field-label.is-small {\n font-size: 0.75rem;\n padding-top: 0.375em; }\n #optimole-app .field-label.is-normal {\n padding-top: 0.375em; }\n #optimole-app .field-label.is-medium {\n font-size: 1.25rem;\n padding-top: 0.375em; }\n #optimole-app .field-label.is-large {\n font-size: 1.5rem;\n padding-top: 0.375em; } }\n #optimole-app .field-body .field .field {\n margin-bottom: 0; }\n @media screen and (min-width: 769px), print {\n #optimole-app .field-body {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 5;\n flex-grow: 5;\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .field-body .field {\n margin-bottom: 0; }\n #optimole-app .field-body > .field {\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .field-body > .field:not(.is-narrow) {\n -ms-flex-positive: 1;\n flex-grow: 1; }\n #optimole-app .field-body > .field:not(:last-child) {\n margin-right: 0.75rem; } }\n #optimole-app .control {\n font-size: 1rem;\n position: relative;\n text-align: left; }\n #optimole-app .control.has-icon .icon {\n color: #dbdbdb;\n height: 2.25em;\n pointer-events: none;\n position: absolute;\n top: 0;\n width: 2.25em;\n z-index: 4; }\n #optimole-app .control.has-icon .input:focus + .icon {\n color: #7a7a7a; }\n #optimole-app .control.has-icon .input.is-small + .icon {\n font-size: 0.75rem; }\n #optimole-app .control.has-icon .input.is-medium + .icon {\n font-size: 1.25rem; }\n #optimole-app .control.has-icon .input.is-large + .icon {\n font-size: 1.5rem; }\n #optimole-app .control.has-icon:not(.has-icon-right) .icon {\n left: 0; }\n #optimole-app .control.has-icon:not(.has-icon-right) .input {\n padding-left: 2.25em; }\n #optimole-app .control.has-icon.has-icon-right .icon {\n right: 0; }\n #optimole-app .control.has-icon.has-icon-right .input {\n padding-right: 2.25em; }\n #optimole-app .control.has-icons-left .input:focus ~ .icon,\n #optimole-app .control.has-icons-left .select:focus ~ .icon, #optimole-app .control.has-icons-right .input:focus ~ .icon,\n #optimole-app .control.has-icons-right .select:focus ~ .icon {\n color: #7a7a7a; }\n #optimole-app .control.has-icons-left .input.is-small ~ .icon,\n #optimole-app .control.has-icons-left .select.is-small ~ .icon, #optimole-app .control.has-icons-right .input.is-small ~ .icon,\n #optimole-app .control.has-icons-right .select.is-small ~ .icon {\n font-size: 0.75rem; }\n #optimole-app .control.has-icons-left .input.is-medium ~ .icon,\n #optimole-app .control.has-icons-left .select.is-medium ~ .icon, #optimole-app .control.has-icons-right .input.is-medium ~ .icon,\n #optimole-app .control.has-icons-right .select.is-medium ~ .icon {\n font-size: 1.25rem; }\n #optimole-app .control.has-icons-left .input.is-large ~ .icon,\n #optimole-app .control.has-icons-left .select.is-large ~ .icon, #optimole-app .control.has-icons-right .input.is-large ~ .icon,\n #optimole-app .control.has-icons-right .select.is-large ~ .icon {\n font-size: 1.5rem; }\n #optimole-app .control.has-icons-left .icon, #optimole-app .control.has-icons-right .icon {\n color: #dbdbdb;\n height: 2.25em;\n pointer-events: none;\n position: absolute;\n top: 0;\n width: 2.25em;\n z-index: 4; }\n #optimole-app .control.has-icons-left .input,\n #optimole-app .control.has-icons-left .select select {\n padding-left: 2.25em; }\n #optimole-app .control.has-icons-left .icon.is-left {\n left: 0; }\n #optimole-app .control.has-icons-right .input,\n #optimole-app .control.has-icons-right .select select {\n padding-right: 2.25em; }\n #optimole-app .control.has-icons-right .icon.is-right {\n right: 0; }\n #optimole-app .control.is-loading::after {\n position: absolute !important;\n right: 0.625em;\n top: 0.625em;\n z-index: 4; }\n #optimole-app .control.is-loading.is-small:after {\n font-size: 0.75rem; }\n #optimole-app .control.is-loading.is-medium:after {\n font-size: 1.25rem; }\n #optimole-app .control.is-loading.is-large:after {\n font-size: 1.5rem; }\n #optimole-app .icon {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-pack: center;\n justify-content: center;\n height: 1.5rem;\n width: 1.5rem; }\n #optimole-app .icon.is-small {\n height: 1rem;\n width: 1rem; }\n #optimole-app .icon.is-medium {\n height: 2rem;\n width: 2rem; }\n #optimole-app .icon.is-large {\n height: 3rem;\n width: 3rem; }\n #optimole-app .image {\n display: block;\n position: relative; }\n #optimole-app .image img {\n display: block;\n height: auto;\n width: 100%; }\n #optimole-app .image img.is-rounded {\n border-radius: 290486px; }\n #optimole-app .image.is-square img, #optimole-app .image.is-1by1 img, #optimole-app .image.is-5by4 img, #optimole-app .image.is-4by3 img, #optimole-app .image.is-3by2 img, #optimole-app .image.is-5by3 img, #optimole-app .image.is-16by9 img, #optimole-app .image.is-2by1 img, #optimole-app .image.is-3by1 img, #optimole-app .image.is-4by5 img, #optimole-app .image.is-3by4 img, #optimole-app .image.is-2by3 img, #optimole-app .image.is-3by5 img, #optimole-app .image.is-9by16 img, #optimole-app .image.is-1by2 img, #optimole-app .image.is-1by3 img {\n height: 100%;\n width: 100%; }\n #optimole-app .image.is-square, #optimole-app .image.is-1by1 {\n padding-top: 100%; }\n #optimole-app .image.is-5by4 {\n padding-top: 80%; }\n #optimole-app .image.is-4by3 {\n padding-top: 75%; }\n #optimole-app .image.is-3by2 {\n padding-top: 66.6666%; }\n #optimole-app .image.is-5by3 {\n padding-top: 60%; }\n #optimole-app .image.is-16by9 {\n padding-top: 56.25%; }\n #optimole-app .image.is-2by1 {\n padding-top: 50%; }\n #optimole-app .image.is-3by1 {\n padding-top: 33.3333%; }\n #optimole-app .image.is-4by5 {\n padding-top: 125%; }\n #optimole-app .image.is-3by4 {\n padding-top: 133.3333%; }\n #optimole-app .image.is-2by3 {\n padding-top: 150%; }\n #optimole-app .image.is-3by5 {\n padding-top: 166.6666%; }\n #optimole-app .image.is-9by16 {\n padding-top: 177.7777%; }\n #optimole-app .image.is-1by2 {\n padding-top: 200%; }\n #optimole-app .image.is-1by3 {\n padding-top: 300%; }\n #optimole-app .image.is-16x16 {\n height: 16px;\n width: 16px; }\n #optimole-app .image.is-24x24 {\n height: 24px;\n width: 24px; }\n #optimole-app .image.is-32x32 {\n height: 32px;\n width: 32px; }\n #optimole-app .image.is-48x48 {\n height: 48px;\n width: 48px; }\n #optimole-app .image.is-64x64 {\n height: 64px;\n width: 64px; }\n #optimole-app .image.is-96x96 {\n height: 96px;\n width: 96px; }\n #optimole-app .image.is-128x128 {\n height: 128px;\n width: 128px; }\n #optimole-app .notification {\n background-color: whitesmoke;\n border-radius: 4px;\n padding: 1.25rem 2.5rem 1.25rem 1.5rem;\n position: relative; }\n #optimole-app .notification a:not(.button) {\n color: currentColor;\n text-decoration: underline; }\n #optimole-app .notification strong {\n color: currentColor; }\n #optimole-app .notification code,\n #optimole-app .notification pre {\n background: white; }\n #optimole-app .notification pre code {\n background: transparent; }\n #optimole-app .notification > .delete {\n position: absolute;\n right: 0.5rem;\n top: 0.5rem; }\n #optimole-app .notification .title,\n #optimole-app .notification .subtitle,\n #optimole-app .notification .content {\n color: currentColor; }\n #optimole-app .notification.is-white {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .notification.is-black {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .notification.is-light {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .notification.is-dark {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .notification.is-primary {\n background-color: #e7602a;\n color: #fff; }\n #optimole-app .notification.is-link {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .notification.is-info {\n background-color: #008ec2;\n color: #fff; }\n #optimole-app .notification.is-success {\n background-color: #34a85e;\n color: #fff; }\n #optimole-app .notification.is-warning {\n background-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .notification.is-danger {\n background-color: #d54222;\n color: #fff; }\n #optimole-app .progress {\n -moz-appearance: none;\n -webkit-appearance: none;\n border: none;\n border-radius: 290486px;\n display: block;\n height: 1rem;\n overflow: hidden;\n padding: 0;\n width: 100%; }\n #optimole-app .progress::-webkit-progress-bar {\n background-color: #dbdbdb; }\n #optimole-app .progress::-webkit-progress-value {\n background-color: #4a4a4a; }\n #optimole-app .progress::-moz-progress-bar {\n background-color: #4a4a4a; }\n #optimole-app .progress::-ms-fill {\n background-color: #4a4a4a;\n border: none; }\n #optimole-app .progress.is-white::-webkit-progress-value {\n background-color: white; }\n #optimole-app .progress.is-white::-moz-progress-bar {\n background-color: white; }\n #optimole-app .progress.is-white::-ms-fill {\n background-color: white; }\n #optimole-app .progress.is-black::-webkit-progress-value {\n background-color: #0a0a0a; }\n #optimole-app .progress.is-black::-moz-progress-bar {\n background-color: #0a0a0a; }\n #optimole-app .progress.is-black::-ms-fill {\n background-color: #0a0a0a; }\n #optimole-app .progress.is-light::-webkit-progress-value {\n background-color: whitesmoke; }\n #optimole-app .progress.is-light::-moz-progress-bar {\n background-color: whitesmoke; }\n #optimole-app .progress.is-light::-ms-fill {\n background-color: whitesmoke; }\n #optimole-app .progress.is-dark::-webkit-progress-value {\n background-color: #363636; }\n #optimole-app .progress.is-dark::-moz-progress-bar {\n background-color: #363636; }\n #optimole-app .progress.is-dark::-ms-fill {\n background-color: #363636; }\n #optimole-app .progress.is-primary::-webkit-progress-value {\n background-color: #e7602a; }\n #optimole-app .progress.is-primary::-moz-progress-bar {\n background-color: #e7602a; }\n #optimole-app .progress.is-primary::-ms-fill {\n background-color: #e7602a; }\n #optimole-app .progress.is-link::-webkit-progress-value {\n background-color: #3273dc; }\n #optimole-app .progress.is-link::-moz-progress-bar {\n background-color: #3273dc; }\n #optimole-app .progress.is-link::-ms-fill {\n background-color: #3273dc; }\n #optimole-app .progress.is-info::-webkit-progress-value {\n background-color: #008ec2; }\n #optimole-app .progress.is-info::-moz-progress-bar {\n background-color: #008ec2; }\n #optimole-app .progress.is-info::-ms-fill {\n background-color: #008ec2; }\n #optimole-app .progress.is-success::-webkit-progress-value {\n background-color: #34a85e; }\n #optimole-app .progress.is-success::-moz-progress-bar {\n background-color: #34a85e; }\n #optimole-app .progress.is-success::-ms-fill {\n background-color: #34a85e; }\n #optimole-app .progress.is-warning::-webkit-progress-value {\n background-color: #ffdd57; }\n #optimole-app .progress.is-warning::-moz-progress-bar {\n background-color: #ffdd57; }\n #optimole-app .progress.is-warning::-ms-fill {\n background-color: #ffdd57; }\n #optimole-app .progress.is-danger::-webkit-progress-value {\n background-color: #d54222; }\n #optimole-app .progress.is-danger::-moz-progress-bar {\n background-color: #d54222; }\n #optimole-app .progress.is-danger::-ms-fill {\n background-color: #d54222; }\n #optimole-app .progress.is-small {\n height: 0.75rem; }\n #optimole-app .progress.is-medium {\n height: 1.25rem; }\n #optimole-app .progress.is-large {\n height: 1.5rem; }\n #optimole-app .table {\n background-color: white;\n color: #363636; }\n #optimole-app .table td,\n #optimole-app .table th {\n border: 1px solid #dbdbdb;\n border-width: 0 0 1px;\n padding: 0.5em 0.75em;\n vertical-align: top; }\n #optimole-app .table td.is-white,\n #optimole-app .table th.is-white {\n background-color: white;\n border-color: white;\n color: #0a0a0a; }\n #optimole-app .table td.is-black,\n #optimole-app .table th.is-black {\n background-color: #0a0a0a;\n border-color: #0a0a0a;\n color: white; }\n #optimole-app .table td.is-light,\n #optimole-app .table th.is-light {\n background-color: whitesmoke;\n border-color: whitesmoke;\n color: #363636; }\n #optimole-app .table td.is-dark,\n #optimole-app .table th.is-dark {\n background-color: #363636;\n border-color: #363636;\n color: whitesmoke; }\n #optimole-app .table td.is-primary,\n #optimole-app .table th.is-primary {\n background-color: #e7602a;\n border-color: #e7602a;\n color: #fff; }\n #optimole-app .table td.is-link,\n #optimole-app .table th.is-link {\n background-color: #3273dc;\n border-color: #3273dc;\n color: #fff; }\n #optimole-app .table td.is-info,\n #optimole-app .table th.is-info {\n background-color: #008ec2;\n border-color: #008ec2;\n color: #fff; }\n #optimole-app .table td.is-success,\n #optimole-app .table th.is-success {\n background-color: #34a85e;\n border-color: #34a85e;\n color: #fff; }\n #optimole-app .table td.is-warning,\n #optimole-app .table th.is-warning {\n background-color: #ffdd57;\n border-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .table td.is-danger,\n #optimole-app .table th.is-danger {\n background-color: #d54222;\n border-color: #d54222;\n color: #fff; }\n #optimole-app .table td.is-narrow,\n #optimole-app .table th.is-narrow {\n white-space: nowrap;\n width: 1%; }\n #optimole-app .table td.is-selected,\n #optimole-app .table th.is-selected {\n background-color: #e7602a;\n color: #fff; }\n #optimole-app .table td.is-selected a,\n #optimole-app .table td.is-selected strong,\n #optimole-app .table th.is-selected a,\n #optimole-app .table th.is-selected strong {\n color: currentColor; }\n #optimole-app .table th {\n color: #363636;\n text-align: left; }\n #optimole-app .table tr.is-selected {\n background-color: #e7602a;\n color: #fff; }\n #optimole-app .table tr.is-selected a,\n #optimole-app .table tr.is-selected strong {\n color: currentColor; }\n #optimole-app .table tr.is-selected td,\n #optimole-app .table tr.is-selected th {\n border-color: #fff;\n color: currentColor; }\n #optimole-app .table thead td,\n #optimole-app .table thead th {\n border-width: 0 0 2px;\n color: #363636; }\n #optimole-app .table tfoot td,\n #optimole-app .table tfoot th {\n border-width: 2px 0 0;\n color: #363636; }\n #optimole-app .table tbody tr:last-child td,\n #optimole-app .table tbody tr:last-child th {\n border-bottom-width: 0; }\n #optimole-app .table.is-bordered td,\n #optimole-app .table.is-bordered th {\n border-width: 1px; }\n #optimole-app .table.is-bordered tr:last-child td,\n #optimole-app .table.is-bordered tr:last-child th {\n border-bottom-width: 1px; }\n #optimole-app .table.is-fullwidth {\n width: 100%; }\n #optimole-app .table.is-hoverable tbody tr:not(.is-selected):hover {\n background-color: #fafafa; }\n #optimole-app .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover {\n background-color: whitesmoke; }\n #optimole-app .table.is-narrow td,\n #optimole-app .table.is-narrow th {\n padding: 0.25em 0.5em; }\n #optimole-app .table.is-striped tbody tr:not(.is-selected):nth-child(even) {\n background-color: #fafafa; }\n #optimole-app .table-container {\n -webkit-overflow-scrolling: touch;\n overflow: auto;\n overflow-y: hidden;\n max-width: 100%; }\n #optimole-app .tags {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n #optimole-app .tags .tag {\n margin-bottom: 0.5rem; }\n #optimole-app .tags .tag:not(:last-child) {\n margin-right: 0.5rem; }\n #optimole-app .tags:last-child {\n margin-bottom: -0.5rem; }\n #optimole-app .tags:not(:last-child) {\n margin-bottom: 1rem; }\n #optimole-app .tags.has-addons .tag {\n margin-right: 0; }\n #optimole-app .tags.has-addons .tag:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n #optimole-app .tags.has-addons .tag:not(:last-child) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0; }\n #optimole-app .tags.is-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .tags.is-centered .tag {\n margin-right: 0.25rem;\n margin-left: 0.25rem; }\n #optimole-app .tags.is-right {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .tags.is-right .tag:not(:first-child) {\n margin-left: 0.5rem; }\n #optimole-app .tags.is-right .tag:not(:last-child) {\n margin-right: 0; }\n #optimole-app .tag:not(body) {\n -ms-flex-align: center;\n align-items: center;\n background-color: whitesmoke;\n border-radius: 4px;\n color: #4a4a4a;\n display: -ms-inline-flexbox;\n display: inline-flex;\n font-size: 0.75rem;\n height: 2em;\n -ms-flex-pack: center;\n justify-content: center;\n line-height: 1.5;\n padding-left: 0.75em;\n padding-right: 0.75em;\n white-space: nowrap; }\n #optimole-app .tag:not(body) .delete {\n margin-left: 0.25rem;\n margin-right: -0.375rem; }\n #optimole-app .tag:not(body).is-white {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .tag:not(body).is-black {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .tag:not(body).is-light {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .tag:not(body).is-dark {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .tag:not(body).is-primary {\n background-color: #e7602a;\n color: #fff; }\n #optimole-app .tag:not(body).is-link {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .tag:not(body).is-info {\n background-color: #008ec2;\n color: #fff; }\n #optimole-app .tag:not(body).is-success {\n background-color: #34a85e;\n color: #fff; }\n #optimole-app .tag:not(body).is-warning {\n background-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .tag:not(body).is-danger {\n background-color: #d54222;\n color: #fff; }\n #optimole-app .tag:not(body).is-medium {\n font-size: 1rem; }\n #optimole-app .tag:not(body).is-large {\n font-size: 1.25rem; }\n #optimole-app .tag:not(body) .icon:first-child:not(:last-child) {\n margin-left: -0.375em;\n margin-right: 0.1875em; }\n #optimole-app .tag:not(body) .icon:last-child:not(:first-child) {\n margin-left: 0.1875em;\n margin-right: -0.375em; }\n #optimole-app .tag:not(body) .icon:first-child:last-child {\n margin-left: -0.375em;\n margin-right: -0.375em; }\n #optimole-app .tag:not(body).is-delete {\n margin-left: 1px;\n padding: 0;\n position: relative;\n width: 2em; }\n #optimole-app .tag:not(body).is-delete::before, #optimole-app .tag:not(body).is-delete::after {\n background-color: currentColor;\n content: \"\";\n display: block;\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translateX(-50%) translateY(-50%) rotate(45deg);\n transform-origin: center center; }\n #optimole-app .tag:not(body).is-delete::before {\n height: 1px;\n width: 50%; }\n #optimole-app .tag:not(body).is-delete::after {\n height: 50%;\n width: 1px; }\n #optimole-app .tag:not(body).is-delete:hover, #optimole-app .tag:not(body).is-delete:focus {\n background-color: #e8e8e8; }\n #optimole-app .tag:not(body).is-delete:active {\n background-color: #dbdbdb; }\n #optimole-app .tag:not(body).is-rounded {\n border-radius: 290486px; }\n #optimole-app a.tag:hover {\n text-decoration: underline; }\n #optimole-app .title,\n #optimole-app .subtitle {\n word-break: break-word; }\n #optimole-app .title em,\n #optimole-app .title span,\n #optimole-app .subtitle em,\n #optimole-app .subtitle span {\n font-weight: inherit; }\n #optimole-app .title sub,\n #optimole-app .subtitle sub {\n font-size: 0.75em; }\n #optimole-app .title sup,\n #optimole-app .subtitle sup {\n font-size: 0.75em; }\n #optimole-app .title .tag,\n #optimole-app .subtitle .tag {\n vertical-align: middle; }\n #optimole-app .title {\n color: #363636;\n font-size: 2rem;\n font-weight: 600;\n line-height: 1.125; }\n #optimole-app .title strong {\n color: inherit;\n font-weight: inherit; }\n #optimole-app .title + .highlight {\n margin-top: -0.75rem; }\n #optimole-app .title:not(.is-spaced) + .subtitle {\n margin-top: -1.25rem; }\n #optimole-app .title.is-1 {\n font-size: 3rem; }\n #optimole-app .title.is-2 {\n font-size: 2.5rem; }\n #optimole-app .title.is-3 {\n font-size: 2rem; }\n #optimole-app .title.is-4 {\n font-size: 1.5rem; }\n #optimole-app .title.is-5 {\n font-size: 1.25rem; }\n #optimole-app .title.is-6 {\n font-size: 1rem; }\n #optimole-app .title.is-7 {\n font-size: 0.75rem; }\n #optimole-app .subtitle {\n color: #4a4a4a;\n font-size: 1.25rem;\n font-weight: 400;\n line-height: 1.25; }\n #optimole-app .subtitle strong {\n color: #363636;\n font-weight: 600; }\n #optimole-app .subtitle:not(.is-spaced) + .title {\n margin-top: -1.25rem; }\n #optimole-app .subtitle.is-1 {\n font-size: 3rem; }\n #optimole-app .subtitle.is-2 {\n font-size: 2.5rem; }\n #optimole-app .subtitle.is-3 {\n font-size: 2rem; }\n #optimole-app .subtitle.is-4 {\n font-size: 1.5rem; }\n #optimole-app .subtitle.is-5 {\n font-size: 1.25rem; }\n #optimole-app .subtitle.is-6 {\n font-size: 1rem; }\n #optimole-app .subtitle.is-7 {\n font-size: 0.75rem; }\n #optimole-app .heading {\n display: block;\n font-size: 11px;\n letter-spacing: 1px;\n margin-bottom: 5px;\n text-transform: uppercase; }\n #optimole-app .highlight {\n font-weight: 400;\n max-width: 100%;\n overflow: hidden;\n padding: 0; }\n #optimole-app .highlight pre {\n overflow: auto;\n max-width: 100%; }\n #optimole-app .number {\n -ms-flex-align: center;\n align-items: center;\n background-color: whitesmoke;\n border-radius: 290486px;\n display: -ms-inline-flexbox;\n display: inline-flex;\n font-size: 1.25rem;\n height: 2em;\n -ms-flex-pack: center;\n justify-content: center;\n margin-right: 1.5rem;\n min-width: 2.5em;\n padding: 0.25rem 0.5rem;\n text-align: center;\n vertical-align: top; }\n #optimole-app .breadcrumb {\n font-size: 1rem;\n white-space: nowrap; }\n #optimole-app .breadcrumb a {\n -ms-flex-align: center;\n align-items: center;\n color: #3273dc;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n padding: 0 0.75em; }\n #optimole-app .breadcrumb a:hover {\n color: #363636; }\n #optimole-app .breadcrumb li {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .breadcrumb li:first-child a {\n padding-left: 0; }\n #optimole-app .breadcrumb li.is-active a {\n color: #363636;\n cursor: default;\n pointer-events: none; }\n #optimole-app .breadcrumb li + li::before {\n color: #b5b5b5;\n content: \"/\"; }\n #optimole-app .breadcrumb ul,\n #optimole-app .breadcrumb ol {\n -ms-flex-align: start;\n align-items: flex-start;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n #optimole-app .breadcrumb .icon:first-child {\n margin-right: 0.5em; }\n #optimole-app .breadcrumb .icon:last-child {\n margin-left: 0.5em; }\n #optimole-app .breadcrumb.is-centered ol,\n #optimole-app .breadcrumb.is-centered ul {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .breadcrumb.is-right ol,\n #optimole-app .breadcrumb.is-right ul {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .breadcrumb.is-small {\n font-size: 0.75rem; }\n #optimole-app .breadcrumb.is-medium {\n font-size: 1.25rem; }\n #optimole-app .breadcrumb.is-large {\n font-size: 1.5rem; }\n #optimole-app .breadcrumb.has-arrow-separator li + li::before {\n content: \"\\2192\"; }\n #optimole-app .breadcrumb.has-bullet-separator li + li::before {\n content: \"\\2022\"; }\n #optimole-app .breadcrumb.has-dot-separator li + li::before {\n content: \"\\B7\"; }\n #optimole-app .breadcrumb.has-succeeds-separator li + li::before {\n content: \"\\227B\"; }\n #optimole-app .card {\n background-color: white;\n box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);\n color: #4a4a4a;\n max-width: 100%;\n position: relative; }\n #optimole-app .card-header {\n background-color: none;\n -ms-flex-align: stretch;\n align-items: stretch;\n box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .card-header-title {\n -ms-flex-align: center;\n align-items: center;\n color: #363636;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-positive: 1;\n flex-grow: 1;\n font-weight: 700;\n padding: 0.75rem; }\n #optimole-app .card-header-title.is-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .card-header-icon {\n -ms-flex-align: center;\n align-items: center;\n cursor: pointer;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n padding: 0.75rem; }\n #optimole-app .card-image {\n display: block;\n position: relative; }\n #optimole-app .card-content {\n background-color: none;\n padding: 1.5rem; }\n #optimole-app .card-footer {\n background-color: none;\n border-top: 1px solid #dbdbdb;\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .card-footer-item {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -ms-flex-pack: center;\n justify-content: center;\n padding: 0.75rem; }\n #optimole-app .card-footer-item:not(:last-child) {\n border-right: 1px solid #dbdbdb; }\n #optimole-app .card .media:not(:last-child) {\n margin-bottom: 0.75rem; }\n #optimole-app .dropdown {\n display: -ms-inline-flexbox;\n display: inline-flex;\n position: relative;\n vertical-align: top; }\n #optimole-app .dropdown.is-active .dropdown-menu, #optimole-app .dropdown.is-hoverable:hover .dropdown-menu {\n display: block; }\n #optimole-app .dropdown.is-right .dropdown-menu {\n left: auto;\n right: 0; }\n #optimole-app .dropdown.is-up .dropdown-menu {\n bottom: 100%;\n padding-bottom: 4px;\n padding-top: initial;\n top: auto; }\n #optimole-app .dropdown-menu {\n display: none;\n left: 0;\n min-width: 12rem;\n padding-top: 4px;\n position: absolute;\n top: 100%;\n z-index: 20; }\n #optimole-app .dropdown-content {\n background-color: white;\n border-radius: 4px;\n box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);\n padding-bottom: 0.5rem;\n padding-top: 0.5rem; }\n #optimole-app .dropdown-item {\n color: #4a4a4a;\n display: block;\n font-size: 0.875rem;\n line-height: 1.5;\n padding: 0.375rem 1rem;\n position: relative; }\n #optimole-app a.dropdown-item {\n padding-right: 3rem;\n white-space: nowrap; }\n #optimole-app a.dropdown-item:hover {\n background-color: whitesmoke;\n color: #0a0a0a; }\n #optimole-app a.dropdown-item.is-active {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .dropdown-divider {\n background-color: #dbdbdb;\n border: none;\n display: block;\n height: 1px;\n margin: 0.5rem 0; }\n #optimole-app .level {\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between; }\n #optimole-app .level code {\n border-radius: 4px; }\n #optimole-app .level img {\n display: inline-block;\n vertical-align: top; }\n #optimole-app .level.is-mobile {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .level.is-mobile .level-left,\n #optimole-app .level.is-mobile .level-right {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .level.is-mobile .level-left + .level-right {\n margin-top: 0; }\n #optimole-app .level.is-mobile .level-item {\n margin-right: 0.75rem; }\n #optimole-app .level.is-mobile .level-item:not(:last-child) {\n margin-bottom: 0; }\n #optimole-app .level.is-mobile .level-item:not(.is-narrow) {\n -ms-flex-positive: 1;\n flex-grow: 1; }\n @media screen and (min-width: 769px), print {\n #optimole-app .level {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .level > .level-item:not(.is-narrow) {\n -ms-flex-positive: 1;\n flex-grow: 1; } }\n #optimole-app .level-item {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .level-item .title,\n #optimole-app .level-item .subtitle {\n margin-bottom: 0; }\n @media screen and (max-width: 768px) {\n #optimole-app .level-item:not(:last-child) {\n margin-bottom: 0.75rem; } }\n #optimole-app .level-left,\n #optimole-app .level-right {\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .level-left .level-item.is-flexible,\n #optimole-app .level-right .level-item.is-flexible {\n -ms-flex-positive: 1;\n flex-grow: 1; }\n @media screen and (min-width: 769px), print {\n #optimole-app .level-left .level-item:not(:last-child),\n #optimole-app .level-right .level-item:not(:last-child) {\n margin-right: 0.75rem; } }\n #optimole-app .level-left {\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n @media screen and (max-width: 768px) {\n #optimole-app .level-left + .level-right {\n margin-top: 1.5rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .level-left {\n display: -ms-flexbox;\n display: flex; } }\n #optimole-app .level-right {\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: end;\n justify-content: flex-end; }\n @media screen and (min-width: 769px), print {\n #optimole-app .level-right {\n display: -ms-flexbox;\n display: flex; } }\n #optimole-app .media {\n -ms-flex-align: start;\n align-items: flex-start;\n display: -ms-flexbox;\n display: flex;\n text-align: left; }\n #optimole-app .media .content:not(:last-child) {\n margin-bottom: 0.75rem; }\n #optimole-app .media .media {\n border-top: 1px solid rgba(219, 219, 219, 0.5);\n display: -ms-flexbox;\n display: flex;\n padding-top: 0.75rem; }\n #optimole-app .media .media .content:not(:last-child),\n #optimole-app .media .media .control:not(:last-child) {\n margin-bottom: 0.5rem; }\n #optimole-app .media .media .media {\n padding-top: 0.5rem; }\n #optimole-app .media .media .media + .media {\n margin-top: 0.5rem; }\n #optimole-app .media + .media {\n border-top: 1px solid rgba(219, 219, 219, 0.5);\n margin-top: 1rem;\n padding-top: 1rem; }\n #optimole-app .media.is-large + .media {\n margin-top: 1.5rem;\n padding-top: 1.5rem; }\n #optimole-app .media-left,\n #optimole-app .media-right {\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .media-left {\n margin-right: 1rem; }\n #optimole-app .media-right {\n margin-left: 1rem; }\n #optimole-app .media-content {\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n text-align: left; }\n #optimole-app .menu {\n font-size: 1rem; }\n #optimole-app .menu.is-small {\n font-size: 0.75rem; }\n #optimole-app .menu.is-medium {\n font-size: 1.25rem; }\n #optimole-app .menu.is-large {\n font-size: 1.5rem; }\n #optimole-app .menu-list {\n line-height: 1.25; }\n #optimole-app .menu-list a {\n border-radius: 2px;\n color: #4a4a4a;\n display: block;\n padding: 0.5em 0.75em; }\n #optimole-app .menu-list a:hover {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .menu-list a.is-active {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .menu-list li ul {\n border-left: 1px solid #dbdbdb;\n margin: 0.75em;\n padding-left: 0.75em; }\n #optimole-app .menu-label {\n color: #7a7a7a;\n font-size: 0.75em;\n letter-spacing: 0.1em;\n text-transform: uppercase; }\n #optimole-app .menu-label:not(:first-child) {\n margin-top: 1em; }\n #optimole-app .menu-label:not(:last-child) {\n margin-bottom: 1em; }\n #optimole-app .message {\n background-color: whitesmoke;\n border-radius: 4px;\n font-size: 1rem; }\n #optimole-app .message strong {\n color: currentColor; }\n #optimole-app .message a:not(.button):not(.tag) {\n color: currentColor;\n text-decoration: underline; }\n #optimole-app .message.is-small {\n font-size: 0.75rem; }\n #optimole-app .message.is-medium {\n font-size: 1.25rem; }\n #optimole-app .message.is-large {\n font-size: 1.5rem; }\n #optimole-app .message.is-white {\n background-color: white; }\n #optimole-app .message.is-white .message-header {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .message.is-white .message-body {\n border-color: white;\n color: #4d4d4d; }\n #optimole-app .message.is-black {\n background-color: #fafafa; }\n #optimole-app .message.is-black .message-header {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .message.is-black .message-body {\n border-color: #0a0a0a;\n color: #090909; }\n #optimole-app .message.is-light {\n background-color: #fafafa; }\n #optimole-app .message.is-light .message-header {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .message.is-light .message-body {\n border-color: whitesmoke;\n color: #505050; }\n #optimole-app .message.is-dark {\n background-color: #fafafa; }\n #optimole-app .message.is-dark .message-header {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .message.is-dark .message-body {\n border-color: #363636;\n color: #2a2a2a; }\n #optimole-app .message.is-primary {\n background-color: #fef8f6; }\n #optimole-app .message.is-primary .message-header {\n background-color: #e7602a;\n color: #fff; }\n #optimole-app .message.is-primary .message-body {\n border-color: #e7602a;\n color: #8e3a18; }\n #optimole-app .message.is-link {\n background-color: #f6f9fe; }\n #optimole-app .message.is-link .message-header {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .message.is-link .message-body {\n border-color: #3273dc;\n color: #22509a; }\n #optimole-app .message.is-info {\n background-color: #f5fcff; }\n #optimole-app .message.is-info .message-header {\n background-color: #008ec2;\n color: #fff; }\n #optimole-app .message.is-info .message-body {\n border-color: #008ec2;\n color: #044259; }\n #optimole-app .message.is-success {\n background-color: #f7fdf9; }\n #optimole-app .message.is-success .message-header {\n background-color: #34a85e;\n color: #fff; }\n #optimole-app .message.is-success .message-body {\n border-color: #34a85e;\n color: #1b432a; }\n #optimole-app .message.is-warning {\n background-color: #fffdf5; }\n #optimole-app .message.is-warning .message-header {\n background-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .message.is-warning .message-body {\n border-color: #ffdd57;\n color: #3b3108; }\n #optimole-app .message.is-danger {\n background-color: #fef8f6; }\n #optimole-app .message.is-danger .message-header {\n background-color: #d54222;\n color: #fff; }\n #optimole-app .message.is-danger .message-body {\n border-color: #d54222;\n color: #8d311d; }\n #optimole-app .message-header {\n -ms-flex-align: center;\n align-items: center;\n background-color: #4a4a4a;\n border-radius: 4px 4px 0 0;\n color: #fff;\n display: -ms-flexbox;\n display: flex;\n font-weight: 700;\n -ms-flex-pack: justify;\n justify-content: space-between;\n line-height: 1.25;\n padding: 0.75em 1em;\n position: relative; }\n #optimole-app .message-header .delete {\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n margin-left: 0.75em; }\n #optimole-app .message-header + .message-body {\n border-width: 0;\n border-top-left-radius: 0;\n border-top-right-radius: 0; }\n #optimole-app .message-body {\n border-color: #dbdbdb;\n border-radius: 4px;\n border-style: solid;\n border-width: 0 0 0 4px;\n color: #4a4a4a;\n padding: 1.25em 1.5em; }\n #optimole-app .message-body code,\n #optimole-app .message-body pre {\n background-color: white; }\n #optimole-app .message-body pre code {\n background-color: transparent; }\n #optimole-app .modal {\n -ms-flex-align: center;\n align-items: center;\n display: none;\n -ms-flex-pack: center;\n justify-content: center;\n overflow: hidden;\n position: fixed;\n z-index: 40; }\n #optimole-app .modal.is-active {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .modal-background {\n background-color: rgba(10, 10, 10, 0.86); }\n #optimole-app .modal-content,\n #optimole-app .modal-card {\n margin: 0 20px;\n max-height: calc(100vh - 160px);\n overflow: auto;\n position: relative;\n width: 100%; }\n @media screen and (min-width: 769px), print {\n #optimole-app .modal-content,\n #optimole-app .modal-card {\n margin: 0 auto;\n max-height: calc(100vh - 40px);\n width: 640px; } }\n #optimole-app .modal-close {\n background: none;\n height: 40px;\n position: fixed;\n right: 20px;\n top: 20px;\n width: 40px; }\n #optimole-app .modal-card {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n max-height: calc(100vh - 40px);\n overflow: hidden; }\n #optimole-app .modal-card-head,\n #optimole-app .modal-card-foot {\n -ms-flex-align: center;\n align-items: center;\n background-color: whitesmoke;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -ms-flex-pack: start;\n justify-content: flex-start;\n padding: 20px;\n position: relative; }\n #optimole-app .modal-card-head {\n border-bottom: 1px solid #dbdbdb;\n border-top-left-radius: 6px;\n border-top-right-radius: 6px; }\n #optimole-app .modal-card-title {\n color: #363636;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n font-size: 1.5rem;\n line-height: 1; }\n #optimole-app .modal-card-foot {\n border-bottom-left-radius: 6px;\n border-bottom-right-radius: 6px;\n border-top: 1px solid #dbdbdb; }\n #optimole-app .modal-card-foot .button:not(:last-child) {\n margin-right: 10px; }\n #optimole-app .modal-card-body {\n -webkit-overflow-scrolling: touch;\n background-color: white;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n overflow: auto;\n padding: 20px; }\n #optimole-app .navbar {\n background-color: white;\n min-height: 3.25rem;\n position: relative;\n z-index: 30; }\n #optimole-app .navbar.is-white {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-white .navbar-brand .navbar-link {\n color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-white .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-white .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-white .navbar-brand .navbar-link.is-active {\n background-color: #f2f2f2;\n color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-brand .navbar-link::after {\n border-color: #0a0a0a; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-white .navbar-start > .navbar-item,\n #optimole-app .navbar.is-white .navbar-start .navbar-link,\n #optimole-app .navbar.is-white .navbar-end > .navbar-item,\n #optimole-app .navbar.is-white .navbar-end .navbar-link {\n color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-white .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-white .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-white .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-white .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-white .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-white .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-white .navbar-end .navbar-link.is-active {\n background-color: #f2f2f2;\n color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-white .navbar-end .navbar-link::after {\n border-color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #f2f2f2;\n color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-dropdown a.navbar-item.is-active {\n background-color: white;\n color: #0a0a0a; } }\n #optimole-app .navbar.is-black {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .navbar.is-black .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-black .navbar-brand .navbar-link {\n color: white; }\n #optimole-app .navbar.is-black .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-black .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-black .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-black .navbar-brand .navbar-link.is-active {\n background-color: black;\n color: white; }\n #optimole-app .navbar.is-black .navbar-brand .navbar-link::after {\n border-color: white; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-black .navbar-start > .navbar-item,\n #optimole-app .navbar.is-black .navbar-start .navbar-link,\n #optimole-app .navbar.is-black .navbar-end > .navbar-item,\n #optimole-app .navbar.is-black .navbar-end .navbar-link {\n color: white; }\n #optimole-app .navbar.is-black .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-black .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-black .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-black .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-black .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-black .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-black .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-black .navbar-end .navbar-link.is-active {\n background-color: black;\n color: white; }\n #optimole-app .navbar.is-black .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-black .navbar-end .navbar-link::after {\n border-color: white; }\n #optimole-app .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: black;\n color: white; }\n #optimole-app .navbar.is-black .navbar-dropdown a.navbar-item.is-active {\n background-color: #0a0a0a;\n color: white; } }\n #optimole-app .navbar.is-light {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .navbar.is-light .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-light .navbar-brand .navbar-link {\n color: #363636; }\n #optimole-app .navbar.is-light .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-light .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-light .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-light .navbar-brand .navbar-link.is-active {\n background-color: #e8e8e8;\n color: #363636; }\n #optimole-app .navbar.is-light .navbar-brand .navbar-link::after {\n border-color: #363636; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-light .navbar-start > .navbar-item,\n #optimole-app .navbar.is-light .navbar-start .navbar-link,\n #optimole-app .navbar.is-light .navbar-end > .navbar-item,\n #optimole-app .navbar.is-light .navbar-end .navbar-link {\n color: #363636; }\n #optimole-app .navbar.is-light .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-light .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-light .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-light .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-light .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-light .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-light .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-light .navbar-end .navbar-link.is-active {\n background-color: #e8e8e8;\n color: #363636; }\n #optimole-app .navbar.is-light .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-light .navbar-end .navbar-link::after {\n border-color: #363636; }\n #optimole-app .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #e8e8e8;\n color: #363636; }\n #optimole-app .navbar.is-light .navbar-dropdown a.navbar-item.is-active {\n background-color: whitesmoke;\n color: #363636; } }\n #optimole-app .navbar.is-dark {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-dark .navbar-brand .navbar-link {\n color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-dark .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-dark .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-dark .navbar-brand .navbar-link.is-active {\n background-color: #292929;\n color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-brand .navbar-link::after {\n border-color: whitesmoke; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-dark .navbar-start > .navbar-item,\n #optimole-app .navbar.is-dark .navbar-start .navbar-link,\n #optimole-app .navbar.is-dark .navbar-end > .navbar-item,\n #optimole-app .navbar.is-dark .navbar-end .navbar-link {\n color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-dark .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-dark .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-dark .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-dark .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-dark .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-dark .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-dark .navbar-end .navbar-link.is-active {\n background-color: #292929;\n color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-dark .navbar-end .navbar-link::after {\n border-color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #292929;\n color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-dropdown a.navbar-item.is-active {\n background-color: #363636;\n color: whitesmoke; } }\n #optimole-app .navbar.is-primary {\n background-color: #e7602a;\n color: #fff; }\n #optimole-app .navbar.is-primary .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-primary .navbar-brand .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-primary .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-primary .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-primary .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-primary .navbar-brand .navbar-link.is-active {\n background-color: #de5119;\n color: #fff; }\n #optimole-app .navbar.is-primary .navbar-brand .navbar-link::after {\n border-color: #fff; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-primary .navbar-start > .navbar-item,\n #optimole-app .navbar.is-primary .navbar-start .navbar-link,\n #optimole-app .navbar.is-primary .navbar-end > .navbar-item,\n #optimole-app .navbar.is-primary .navbar-end .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-primary .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-primary .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-primary .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-primary .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-primary .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-primary .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-primary .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-primary .navbar-end .navbar-link.is-active {\n background-color: #de5119;\n color: #fff; }\n #optimole-app .navbar.is-primary .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-primary .navbar-end .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #de5119;\n color: #fff; }\n #optimole-app .navbar.is-primary .navbar-dropdown a.navbar-item.is-active {\n background-color: #e7602a;\n color: #fff; } }\n #optimole-app .navbar.is-link {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .navbar.is-link .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-link .navbar-brand .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-link .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-link .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-link .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-link .navbar-brand .navbar-link.is-active {\n background-color: #2366d1;\n color: #fff; }\n #optimole-app .navbar.is-link .navbar-brand .navbar-link::after {\n border-color: #fff; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-link .navbar-start > .navbar-item,\n #optimole-app .navbar.is-link .navbar-start .navbar-link,\n #optimole-app .navbar.is-link .navbar-end > .navbar-item,\n #optimole-app .navbar.is-link .navbar-end .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-link .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-link .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-link .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-link .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-link .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-link .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-link .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-link .navbar-end .navbar-link.is-active {\n background-color: #2366d1;\n color: #fff; }\n #optimole-app .navbar.is-link .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-link .navbar-end .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #2366d1;\n color: #fff; }\n #optimole-app .navbar.is-link .navbar-dropdown a.navbar-item.is-active {\n background-color: #3273dc;\n color: #fff; } }\n #optimole-app .navbar.is-info {\n background-color: #008ec2;\n color: #fff; }\n #optimole-app .navbar.is-info .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-info .navbar-brand .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-info .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-info .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-info .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-info .navbar-brand .navbar-link.is-active {\n background-color: #007ba9;\n color: #fff; }\n #optimole-app .navbar.is-info .navbar-brand .navbar-link::after {\n border-color: #fff; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-info .navbar-start > .navbar-item,\n #optimole-app .navbar.is-info .navbar-start .navbar-link,\n #optimole-app .navbar.is-info .navbar-end > .navbar-item,\n #optimole-app .navbar.is-info .navbar-end .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-info .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-info .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-info .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-info .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-info .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-info .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-info .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-info .navbar-end .navbar-link.is-active {\n background-color: #007ba9;\n color: #fff; }\n #optimole-app .navbar.is-info .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-info .navbar-end .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #007ba9;\n color: #fff; }\n #optimole-app .navbar.is-info .navbar-dropdown a.navbar-item.is-active {\n background-color: #008ec2;\n color: #fff; } }\n #optimole-app .navbar.is-success {\n background-color: #34a85e;\n color: #fff; }\n #optimole-app .navbar.is-success .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-success .navbar-brand .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-success .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-success .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-success .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-success .navbar-brand .navbar-link.is-active {\n background-color: #2e9553;\n color: #fff; }\n #optimole-app .navbar.is-success .navbar-brand .navbar-link::after {\n border-color: #fff; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-success .navbar-start > .navbar-item,\n #optimole-app .navbar.is-success .navbar-start .navbar-link,\n #optimole-app .navbar.is-success .navbar-end > .navbar-item,\n #optimole-app .navbar.is-success .navbar-end .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-success .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-success .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-success .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-success .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-success .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-success .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-success .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-success .navbar-end .navbar-link.is-active {\n background-color: #2e9553;\n color: #fff; }\n #optimole-app .navbar.is-success .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-success .navbar-end .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #2e9553;\n color: #fff; }\n #optimole-app .navbar.is-success .navbar-dropdown a.navbar-item.is-active {\n background-color: #34a85e;\n color: #fff; } }\n #optimole-app .navbar.is-warning {\n background-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-warning .navbar-brand .navbar-link {\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-warning .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-warning .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-warning .navbar-brand .navbar-link.is-active {\n background-color: #ffd83d;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-brand .navbar-link::after {\n border-color: rgba(0, 0, 0, 0.7); }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-warning .navbar-start > .navbar-item,\n #optimole-app .navbar.is-warning .navbar-start .navbar-link,\n #optimole-app .navbar.is-warning .navbar-end > .navbar-item,\n #optimole-app .navbar.is-warning .navbar-end .navbar-link {\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-warning .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-warning .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-warning .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-warning .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-warning .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-warning .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-warning .navbar-end .navbar-link.is-active {\n background-color: #ffd83d;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-warning .navbar-end .navbar-link::after {\n border-color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #ffd83d;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-dropdown a.navbar-item.is-active {\n background-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); } }\n #optimole-app .navbar.is-danger {\n background-color: #d54222;\n color: #fff; }\n #optimole-app .navbar.is-danger .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-danger .navbar-brand .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-danger .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-danger .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-danger .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-danger .navbar-brand .navbar-link.is-active {\n background-color: #bf3b1e;\n color: #fff; }\n #optimole-app .navbar.is-danger .navbar-brand .navbar-link::after {\n border-color: #fff; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-danger .navbar-start > .navbar-item,\n #optimole-app .navbar.is-danger .navbar-start .navbar-link,\n #optimole-app .navbar.is-danger .navbar-end > .navbar-item,\n #optimole-app .navbar.is-danger .navbar-end .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-danger .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-danger .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-danger .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-danger .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-danger .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-danger .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-danger .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-danger .navbar-end .navbar-link.is-active {\n background-color: #bf3b1e;\n color: #fff; }\n #optimole-app .navbar.is-danger .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-danger .navbar-end .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #bf3b1e;\n color: #fff; }\n #optimole-app .navbar.is-danger .navbar-dropdown a.navbar-item.is-active {\n background-color: #d54222;\n color: #fff; } }\n #optimole-app .navbar > .container {\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex;\n min-height: 3.25rem;\n width: 100%; }\n #optimole-app .navbar.has-shadow {\n box-shadow: 0 2px 0 0 whitesmoke; }\n #optimole-app .navbar.is-fixed-bottom, #optimole-app .navbar.is-fixed-top {\n left: 0;\n position: fixed;\n right: 0;\n z-index: 30; }\n #optimole-app .navbar.is-fixed-bottom {\n bottom: 0; }\n #optimole-app .navbar.is-fixed-bottom.has-shadow {\n box-shadow: 0 -2px 0 0 whitesmoke; }\n #optimole-app .navbar.is-fixed-top {\n top: 0; }\n #optimole-app html.has-navbar-fixed-top,\n #optimole-app body.has-navbar-fixed-top {\n padding-top: 3.25rem; }\n #optimole-app html.has-navbar-fixed-bottom,\n #optimole-app body.has-navbar-fixed-bottom {\n padding-bottom: 3.25rem; }\n #optimole-app .navbar-brand,\n #optimole-app .navbar-tabs {\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n min-height: 3.25rem; }\n #optimole-app .navbar-brand a.navbar-item:hover {\n background-color: transparent; }\n #optimole-app .navbar-tabs {\n -webkit-overflow-scrolling: touch;\n max-width: 100vw;\n overflow-x: auto;\n overflow-y: hidden; }\n #optimole-app .navbar-burger {\n cursor: pointer;\n display: block;\n height: 3.25rem;\n position: relative;\n width: 3.25rem;\n margin-left: auto; }\n #optimole-app .navbar-burger span {\n background-color: currentColor;\n display: block;\n height: 1px;\n left: calc(50% - 8px);\n position: absolute;\n transform-origin: center;\n transition-duration: 86ms;\n transition-property: background-color, opacity, transform;\n transition-timing-function: ease-out;\n width: 16px; }\n #optimole-app .navbar-burger span:nth-child(1) {\n top: calc(50% - 6px); }\n #optimole-app .navbar-burger span:nth-child(2) {\n top: calc(50% - 1px); }\n #optimole-app .navbar-burger span:nth-child(3) {\n top: calc(50% + 4px); }\n #optimole-app .navbar-burger:hover {\n background-color: rgba(0, 0, 0, 0.05); }\n #optimole-app .navbar-burger.is-active span:nth-child(1) {\n transform: translateY(5px) rotate(45deg); }\n #optimole-app .navbar-burger.is-active span:nth-child(2) {\n opacity: 0; }\n #optimole-app .navbar-burger.is-active span:nth-child(3) {\n transform: translateY(-5px) rotate(-45deg); }\n #optimole-app .navbar-menu {\n display: none; }\n #optimole-app .navbar-item,\n #optimole-app .navbar-link {\n color: #4a4a4a;\n display: block;\n line-height: 1.5;\n padding: 0.5rem 0.75rem;\n position: relative; }\n #optimole-app .navbar-item .icon:only-child,\n #optimole-app .navbar-link .icon:only-child {\n margin-left: -0.25rem;\n margin-right: -0.25rem; }\n #optimole-app a.navbar-item,\n #optimole-app .navbar-link {\n cursor: pointer; }\n #optimole-app a.navbar-item:hover, #optimole-app a.navbar-item.is-active,\n #optimole-app .navbar-link:hover,\n #optimole-app .navbar-link.is-active {\n background-color: #fafafa;\n color: #3273dc; }\n #optimole-app .navbar-item {\n display: block;\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .navbar-item img {\n max-height: 1.75rem; }\n #optimole-app .navbar-item.has-dropdown {\n padding: 0; }\n #optimole-app .navbar-item.is-expanded {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .navbar-item.is-tab {\n border-bottom: 1px solid transparent;\n min-height: 3.25rem;\n padding-bottom: calc(0.5rem - 1px); }\n #optimole-app .navbar-item.is-tab:hover {\n background-color: transparent;\n border-bottom-color: #3273dc; }\n #optimole-app .navbar-item.is-tab.is-active {\n background-color: transparent;\n border-bottom-color: #3273dc;\n border-bottom-style: solid;\n border-bottom-width: 3px;\n color: #3273dc;\n padding-bottom: calc(0.5rem - 3px); }\n #optimole-app .navbar-content {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .navbar-link {\n padding-right: 2.5em; }\n #optimole-app .navbar-link::after {\n border-color: #3273dc;\n margin-top: -0.375em;\n right: 1.125em; }\n #optimole-app .navbar-dropdown {\n font-size: 0.875rem;\n padding-bottom: 0.5rem;\n padding-top: 0.5rem; }\n #optimole-app .navbar-dropdown .navbar-item {\n padding-left: 1.5rem;\n padding-right: 1.5rem; }\n #optimole-app .navbar-divider {\n background-color: whitesmoke;\n border: none;\n display: none;\n height: 2px;\n margin: 0.5rem 0; }\n @media screen and (max-width: 1087px) {\n #optimole-app .navbar > .container {\n display: block; }\n #optimole-app .navbar-brand .navbar-item,\n #optimole-app .navbar-tabs .navbar-item {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .navbar-link::after {\n display: none; }\n #optimole-app .navbar-menu {\n background-color: white;\n box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1);\n padding: 0.5rem 0; }\n #optimole-app .navbar-menu.is-active {\n display: block; }\n #optimole-app .navbar.is-fixed-bottom-touch, #optimole-app .navbar.is-fixed-top-touch {\n left: 0;\n position: fixed;\n right: 0;\n z-index: 30; }\n #optimole-app .navbar.is-fixed-bottom-touch {\n bottom: 0; }\n #optimole-app .navbar.is-fixed-bottom-touch.has-shadow {\n box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }\n #optimole-app .navbar.is-fixed-top-touch {\n top: 0; }\n #optimole-app .navbar.is-fixed-top .navbar-menu, #optimole-app .navbar.is-fixed-top-touch .navbar-menu {\n -webkit-overflow-scrolling: touch;\n max-height: calc(100vh - 3.25rem);\n overflow: auto; }\n #optimole-app html.has-navbar-fixed-top-touch,\n #optimole-app body.has-navbar-fixed-top-touch {\n padding-top: 3.25rem; }\n #optimole-app html.has-navbar-fixed-bottom-touch,\n #optimole-app body.has-navbar-fixed-bottom-touch {\n padding-bottom: 3.25rem; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar,\n #optimole-app .navbar-menu,\n #optimole-app .navbar-start,\n #optimole-app .navbar-end {\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .navbar {\n min-height: 3.25rem; }\n #optimole-app .navbar.is-spaced {\n padding: 1rem 2rem; }\n #optimole-app .navbar.is-spaced .navbar-start,\n #optimole-app .navbar.is-spaced .navbar-end {\n -ms-flex-align: center;\n align-items: center; }\n #optimole-app .navbar.is-spaced a.navbar-item,\n #optimole-app .navbar.is-spaced .navbar-link {\n border-radius: 4px; }\n #optimole-app .navbar.is-transparent a.navbar-item:hover, #optimole-app .navbar.is-transparent a.navbar-item.is-active,\n #optimole-app .navbar.is-transparent .navbar-link:hover,\n #optimole-app .navbar.is-transparent .navbar-link.is-active {\n background-color: transparent !important; }\n #optimole-app .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, #optimole-app .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link {\n background-color: transparent !important; }\n #optimole-app .navbar.is-transparent .navbar-dropdown a.navbar-item:hover {\n background-color: whitesmoke;\n color: #0a0a0a; }\n #optimole-app .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active {\n background-color: whitesmoke;\n color: #3273dc; }\n #optimole-app .navbar-burger {\n display: none; }\n #optimole-app .navbar-item,\n #optimole-app .navbar-link {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .navbar-item {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .navbar-item.has-dropdown {\n -ms-flex-align: stretch;\n align-items: stretch; }\n #optimole-app .navbar-item.has-dropdown-up .navbar-link::after {\n transform: rotate(135deg) translate(0.25em, -0.25em); }\n #optimole-app .navbar-item.has-dropdown-up .navbar-dropdown {\n border-bottom: 2px solid #dbdbdb;\n border-radius: 6px 6px 0 0;\n border-top: none;\n bottom: 100%;\n box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1);\n top: auto; }\n #optimole-app .navbar-item.is-active .navbar-dropdown, #optimole-app .navbar-item.is-hoverable:hover .navbar-dropdown {\n display: block; }\n .navbar.is-spaced #optimole-app .navbar-item.is-active .navbar-dropdown, #optimole-app .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced #optimole-app .navbar-item.is-hoverable:hover .navbar-dropdown, #optimole-app .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed {\n opacity: 1;\n pointer-events: auto;\n transform: translateY(0); }\n #optimole-app .navbar-menu {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .navbar-start {\n -ms-flex-pack: start;\n justify-content: flex-start;\n margin-right: auto; }\n #optimole-app .navbar-end {\n -ms-flex-pack: end;\n justify-content: flex-end;\n margin-left: auto; }\n #optimole-app .navbar-dropdown {\n background-color: white;\n border-bottom-left-radius: 6px;\n border-bottom-right-radius: 6px;\n border-top: 2px solid #dbdbdb;\n box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1);\n display: none;\n font-size: 0.875rem;\n left: 0;\n min-width: 100%;\n position: absolute;\n top: 100%;\n z-index: 20; }\n #optimole-app .navbar-dropdown .navbar-item {\n padding: 0.375rem 1rem;\n white-space: nowrap; }\n #optimole-app .navbar-dropdown a.navbar-item {\n padding-right: 3rem; }\n #optimole-app .navbar-dropdown a.navbar-item:hover {\n background-color: whitesmoke;\n color: #0a0a0a; }\n #optimole-app .navbar-dropdown a.navbar-item.is-active {\n background-color: whitesmoke;\n color: #3273dc; }\n .navbar.is-spaced #optimole-app .navbar-dropdown, #optimole-app .navbar-dropdown.is-boxed {\n border-radius: 6px;\n border-top: none;\n box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);\n display: block;\n opacity: 0;\n pointer-events: none;\n top: calc(100% + (-4px));\n transform: translateY(-5px);\n transition-duration: 86ms;\n transition-property: opacity, transform; }\n #optimole-app .navbar-dropdown.is-right {\n left: auto;\n right: 0; }\n #optimole-app .navbar-divider {\n display: block; }\n #optimole-app .navbar > .container .navbar-brand,\n #optimole-app .container > .navbar .navbar-brand {\n margin-left: -1rem; }\n #optimole-app .navbar > .container .navbar-menu,\n #optimole-app .container > .navbar .navbar-menu {\n margin-right: -1rem; }\n #optimole-app .navbar.is-fixed-bottom-desktop, #optimole-app .navbar.is-fixed-top-desktop {\n left: 0;\n position: fixed;\n right: 0;\n z-index: 30; }\n #optimole-app .navbar.is-fixed-bottom-desktop {\n bottom: 0; }\n #optimole-app .navbar.is-fixed-bottom-desktop.has-shadow {\n box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }\n #optimole-app .navbar.is-fixed-top-desktop {\n top: 0; }\n #optimole-app html.has-navbar-fixed-top-desktop,\n #optimole-app body.has-navbar-fixed-top-desktop {\n padding-top: 3.25rem; }\n #optimole-app html.has-navbar-fixed-bottom-desktop,\n #optimole-app body.has-navbar-fixed-bottom-desktop {\n padding-bottom: 3.25rem; }\n #optimole-app html.has-spaced-navbar-fixed-top,\n #optimole-app body.has-spaced-navbar-fixed-top {\n padding-top: 5.25rem; }\n #optimole-app html.has-spaced-navbar-fixed-bottom,\n #optimole-app body.has-spaced-navbar-fixed-bottom {\n padding-bottom: 5.25rem; }\n #optimole-app a.navbar-item.is-active,\n #optimole-app .navbar-link.is-active {\n color: #0a0a0a; }\n #optimole-app a.navbar-item.is-active:not(:hover),\n #optimole-app .navbar-link.is-active:not(:hover) {\n background-color: transparent; }\n #optimole-app .navbar-item.has-dropdown:hover .navbar-link, #optimole-app .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #fafafa; } }\n #optimole-app .pagination {\n font-size: 1rem;\n margin: -0.25rem; }\n #optimole-app .pagination.is-small {\n font-size: 0.75rem; }\n #optimole-app .pagination.is-medium {\n font-size: 1.25rem; }\n #optimole-app .pagination.is-large {\n font-size: 1.5rem; }\n #optimole-app .pagination.is-rounded .pagination-previous,\n #optimole-app .pagination.is-rounded .pagination-next {\n padding-left: 1em;\n padding-right: 1em;\n border-radius: 290486px; }\n #optimole-app .pagination.is-rounded .pagination-link {\n border-radius: 290486px; }\n #optimole-app .pagination,\n #optimole-app .pagination-list {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n text-align: center; }\n #optimole-app .pagination-previous,\n #optimole-app .pagination-next,\n #optimole-app .pagination-link,\n #optimole-app .pagination-ellipsis {\n font-size: 1em;\n padding-left: 0.5em;\n padding-right: 0.5em;\n -ms-flex-pack: center;\n justify-content: center;\n margin: 0.25rem;\n text-align: center; }\n #optimole-app .pagination-previous,\n #optimole-app .pagination-next,\n #optimole-app .pagination-link {\n border-color: #dbdbdb;\n color: #363636;\n min-width: 2.25em; }\n #optimole-app .pagination-previous:hover,\n #optimole-app .pagination-next:hover,\n #optimole-app .pagination-link:hover {\n border-color: #b5b5b5;\n color: #363636; }\n #optimole-app .pagination-previous:focus,\n #optimole-app .pagination-next:focus,\n #optimole-app .pagination-link:focus {\n border-color: #3273dc; }\n #optimole-app .pagination-previous:active,\n #optimole-app .pagination-next:active,\n #optimole-app .pagination-link:active {\n box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); }\n #optimole-app .pagination-previous[disabled],\n #optimole-app .pagination-next[disabled],\n #optimole-app .pagination-link[disabled] {\n background-color: #dbdbdb;\n border-color: #dbdbdb;\n box-shadow: none;\n color: #7a7a7a;\n opacity: 0.5; }\n #optimole-app .pagination-previous,\n #optimole-app .pagination-next {\n padding-left: 0.75em;\n padding-right: 0.75em;\n white-space: nowrap; }\n #optimole-app .pagination-link.is-current {\n background-color: #3273dc;\n border-color: #3273dc;\n color: #fff; }\n #optimole-app .pagination-ellipsis {\n color: #b5b5b5;\n pointer-events: none; }\n #optimole-app .pagination-list {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap; }\n @media screen and (max-width: 768px) {\n #optimole-app .pagination {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap; }\n #optimole-app .pagination-previous,\n #optimole-app .pagination-next {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .pagination-list li {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .pagination-list {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n -ms-flex-pack: start;\n justify-content: flex-start;\n -ms-flex-order: 1;\n order: 1; }\n #optimole-app .pagination-previous {\n -ms-flex-order: 2;\n order: 2; }\n #optimole-app .pagination-next {\n -ms-flex-order: 3;\n order: 3; }\n #optimole-app .pagination {\n -ms-flex-pack: justify;\n justify-content: space-between; }\n #optimole-app .pagination.is-centered .pagination-previous {\n -ms-flex-order: 1;\n order: 1; }\n #optimole-app .pagination.is-centered .pagination-list {\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-order: 2;\n order: 2; }\n #optimole-app .pagination.is-centered .pagination-next {\n -ms-flex-order: 3;\n order: 3; }\n #optimole-app .pagination.is-right .pagination-previous {\n -ms-flex-order: 1;\n order: 1; }\n #optimole-app .pagination.is-right .pagination-next {\n -ms-flex-order: 2;\n order: 2; }\n #optimole-app .pagination.is-right .pagination-list {\n -ms-flex-pack: end;\n justify-content: flex-end;\n -ms-flex-order: 3;\n order: 3; } }\n #optimole-app .panel {\n font-size: 1rem; }\n #optimole-app .panel:not(:last-child) {\n margin-bottom: 1.5rem; }\n #optimole-app .panel-heading,\n #optimole-app .panel-tabs,\n #optimole-app .panel-block {\n border-bottom: 1px solid #dbdbdb;\n border-left: 1px solid #dbdbdb;\n border-right: 1px solid #dbdbdb; }\n #optimole-app .panel-heading:first-child,\n #optimole-app .panel-tabs:first-child,\n #optimole-app .panel-block:first-child {\n border-top: 1px solid #dbdbdb; }\n #optimole-app .panel-heading {\n background-color: whitesmoke;\n border-radius: 4px 4px 0 0;\n color: #363636;\n font-size: 1.25em;\n font-weight: 300;\n line-height: 1.25;\n padding: 0.5em 0.75em; }\n #optimole-app .panel-tabs {\n -ms-flex-align: end;\n align-items: flex-end;\n display: -ms-flexbox;\n display: flex;\n font-size: 0.875em;\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .panel-tabs a {\n border-bottom: 1px solid #dbdbdb;\n margin-bottom: -1px;\n padding: 0.5em; }\n #optimole-app .panel-tabs a.is-active {\n border-bottom-color: #4a4a4a;\n color: #363636; }\n #optimole-app .panel-list a {\n color: #4a4a4a; }\n #optimole-app .panel-list a:hover {\n color: #3273dc; }\n #optimole-app .panel-block {\n -ms-flex-align: center;\n align-items: center;\n color: #363636;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: start;\n justify-content: flex-start;\n padding: 0.5em 0.75em; }\n #optimole-app .panel-block input[type=\"checkbox\"] {\n margin-right: 0.75em; }\n #optimole-app .panel-block > .control {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n width: 100%; }\n #optimole-app .panel-block.is-wrapped {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap; }\n #optimole-app .panel-block.is-active {\n border-left-color: #3273dc;\n color: #363636; }\n #optimole-app .panel-block.is-active .panel-icon {\n color: #3273dc; }\n #optimole-app a.panel-block,\n #optimole-app label.panel-block {\n cursor: pointer; }\n #optimole-app a.panel-block:hover,\n #optimole-app label.panel-block:hover {\n background-color: whitesmoke; }\n #optimole-app .panel-icon {\n display: inline-block;\n font-size: 14px;\n height: 1em;\n line-height: 1em;\n text-align: center;\n vertical-align: top;\n width: 1em;\n color: #7a7a7a;\n margin-right: 0.75em; }\n #optimole-app .panel-icon .fa {\n font-size: inherit;\n line-height: inherit; }\n #optimole-app .tabs {\n -webkit-overflow-scrolling: touch;\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex;\n font-size: 1rem;\n -ms-flex-pack: justify;\n justify-content: space-between;\n overflow: hidden;\n overflow-x: auto;\n white-space: nowrap; }\n #optimole-app .tabs a {\n -ms-flex-align: center;\n align-items: center;\n border-bottom-color: #dbdbdb;\n border-bottom-style: solid;\n border-bottom-width: 1px;\n color: #4a4a4a;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n margin-bottom: -1px;\n padding: 0.5em 1em;\n vertical-align: top; }\n #optimole-app .tabs a:hover {\n border-bottom-color: #363636;\n color: #363636; }\n #optimole-app .tabs li {\n display: block; }\n #optimole-app .tabs li.is-active a {\n border-bottom-color: #3273dc;\n color: #3273dc; }\n #optimole-app .tabs ul {\n -ms-flex-align: center;\n align-items: center;\n border-bottom-color: #dbdbdb;\n border-bottom-style: solid;\n border-bottom-width: 1px;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n #optimole-app .tabs ul.is-left {\n padding-right: 0.75em; }\n #optimole-app .tabs ul.is-center {\n -ms-flex: none;\n flex: none;\n -ms-flex-pack: center;\n justify-content: center;\n padding-left: 0.75em;\n padding-right: 0.75em; }\n #optimole-app .tabs ul.is-right {\n -ms-flex-pack: end;\n justify-content: flex-end;\n padding-left: 0.75em; }\n #optimole-app .tabs .icon:first-child {\n margin-right: 0.5em; }\n #optimole-app .tabs .icon:last-child {\n margin-left: 0.5em; }\n #optimole-app .tabs.is-centered ul {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .tabs.is-right ul {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .tabs.is-boxed a {\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0; }\n #optimole-app .tabs.is-boxed a:hover {\n background-color: whitesmoke;\n border-bottom-color: #dbdbdb; }\n #optimole-app .tabs.is-boxed li.is-active a {\n background-color: white;\n border-color: #dbdbdb;\n border-bottom-color: transparent !important; }\n #optimole-app .tabs.is-fullwidth li {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .tabs.is-toggle a {\n border-color: #dbdbdb;\n border-style: solid;\n border-width: 1px;\n margin-bottom: 0;\n position: relative; }\n #optimole-app .tabs.is-toggle a:hover {\n background-color: whitesmoke;\n border-color: #b5b5b5;\n z-index: 2; }\n #optimole-app .tabs.is-toggle li + li {\n margin-left: -1px; }\n #optimole-app .tabs.is-toggle li:first-child a {\n border-radius: 4px 0 0 4px; }\n #optimole-app .tabs.is-toggle li:last-child a {\n border-radius: 0 4px 4px 0; }\n #optimole-app .tabs.is-toggle li.is-active a {\n background-color: #3273dc;\n border-color: #3273dc;\n color: #fff;\n z-index: 1; }\n #optimole-app .tabs.is-toggle ul {\n border-bottom: none; }\n #optimole-app .tabs.is-toggle.is-toggle-rounded li:first-child a {\n border-bottom-left-radius: 290486px;\n border-top-left-radius: 290486px;\n padding-left: 1.25em; }\n #optimole-app .tabs.is-toggle.is-toggle-rounded li:last-child a {\n border-bottom-right-radius: 290486px;\n border-top-right-radius: 290486px;\n padding-right: 1.25em; }\n #optimole-app .tabs.is-small {\n font-size: 0.75rem; }\n #optimole-app .tabs.is-medium {\n font-size: 1.25rem; }\n #optimole-app .tabs.is-large {\n font-size: 1.5rem; }\n #optimole-app .column {\n display: block;\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n padding: 0.75rem; }\n .columns.is-mobile > #optimole-app .column.is-narrow {\n -ms-flex: none;\n flex: none; }\n .columns.is-mobile > #optimole-app .column.is-full {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n .columns.is-mobile > #optimole-app .column.is-three-quarters {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n .columns.is-mobile > #optimole-app .column.is-two-thirds {\n -ms-flex: none;\n flex: none;\n width: 66.6666%; }\n .columns.is-mobile > #optimole-app .column.is-half {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n .columns.is-mobile > #optimole-app .column.is-one-third {\n -ms-flex: none;\n flex: none;\n width: 33.3333%; }\n .columns.is-mobile > #optimole-app .column.is-one-quarter {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n .columns.is-mobile > #optimole-app .column.is-one-fifth {\n -ms-flex: none;\n flex: none;\n width: 20%; }\n .columns.is-mobile > #optimole-app .column.is-two-fifths {\n -ms-flex: none;\n flex: none;\n width: 40%; }\n .columns.is-mobile > #optimole-app .column.is-three-fifths {\n -ms-flex: none;\n flex: none;\n width: 60%; }\n .columns.is-mobile > #optimole-app .column.is-four-fifths {\n -ms-flex: none;\n flex: none;\n width: 80%; }\n .columns.is-mobile > #optimole-app .column.is-offset-three-quarters {\n margin-left: 75%; }\n .columns.is-mobile > #optimole-app .column.is-offset-two-thirds {\n margin-left: 66.6666%; }\n .columns.is-mobile > #optimole-app .column.is-offset-half {\n margin-left: 50%; }\n .columns.is-mobile > #optimole-app .column.is-offset-one-third {\n margin-left: 33.3333%; }\n .columns.is-mobile > #optimole-app .column.is-offset-one-quarter {\n margin-left: 25%; }\n .columns.is-mobile > #optimole-app .column.is-offset-one-fifth {\n margin-left: 20%; }\n .columns.is-mobile > #optimole-app .column.is-offset-two-fifths {\n margin-left: 40%; }\n .columns.is-mobile > #optimole-app .column.is-offset-three-fifths {\n margin-left: 60%; }\n .columns.is-mobile > #optimole-app .column.is-offset-four-fifths {\n margin-left: 80%; }\n .columns.is-mobile > #optimole-app .column.is-1 {\n -ms-flex: none;\n flex: none;\n width: 8.33333%; }\n .columns.is-mobile > #optimole-app .column.is-offset-1 {\n margin-left: 8.33333%; }\n .columns.is-mobile > #optimole-app .column.is-2 {\n -ms-flex: none;\n flex: none;\n width: 16.66667%; }\n .columns.is-mobile > #optimole-app .column.is-offset-2 {\n margin-left: 16.66667%; }\n .columns.is-mobile > #optimole-app .column.is-3 {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n .columns.is-mobile > #optimole-app .column.is-offset-3 {\n margin-left: 25%; }\n .columns.is-mobile > #optimole-app .column.is-4 {\n -ms-flex: none;\n flex: none;\n width: 33.33333%; }\n .columns.is-mobile > #optimole-app .column.is-offset-4 {\n margin-left: 33.33333%; }\n .columns.is-mobile > #optimole-app .column.is-5 {\n -ms-flex: none;\n flex: none;\n width: 41.66667%; }\n .columns.is-mobile > #optimole-app .column.is-offset-5 {\n margin-left: 41.66667%; }\n .columns.is-mobile > #optimole-app .column.is-6 {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n .columns.is-mobile > #optimole-app .column.is-offset-6 {\n margin-left: 50%; }\n .columns.is-mobile > #optimole-app .column.is-7 {\n -ms-flex: none;\n flex: none;\n width: 58.33333%; }\n .columns.is-mobile > #optimole-app .column.is-offset-7 {\n margin-left: 58.33333%; }\n .columns.is-mobile > #optimole-app .column.is-8 {\n -ms-flex: none;\n flex: none;\n width: 66.66667%; }\n .columns.is-mobile > #optimole-app .column.is-offset-8 {\n margin-left: 66.66667%; }\n .columns.is-mobile > #optimole-app .column.is-9 {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n .columns.is-mobile > #optimole-app .column.is-offset-9 {\n margin-left: 75%; }\n .columns.is-mobile > #optimole-app .column.is-10 {\n -ms-flex: none;\n flex: none;\n width: 83.33333%; }\n .columns.is-mobile > #optimole-app .column.is-offset-10 {\n margin-left: 83.33333%; }\n .columns.is-mobile > #optimole-app .column.is-11 {\n -ms-flex: none;\n flex: none;\n width: 91.66667%; }\n .columns.is-mobile > #optimole-app .column.is-offset-11 {\n margin-left: 91.66667%; }\n .columns.is-mobile > #optimole-app .column.is-12 {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n .columns.is-mobile > #optimole-app .column.is-offset-12 {\n margin-left: 100%; }\n @media screen and (max-width: 768px) {\n #optimole-app .column.is-narrow-mobile {\n -ms-flex: none;\n flex: none; }\n #optimole-app .column.is-full-mobile {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-three-quarters-mobile {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-two-thirds-mobile {\n -ms-flex: none;\n flex: none;\n width: 66.6666%; }\n #optimole-app .column.is-half-mobile {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-one-third-mobile {\n -ms-flex: none;\n flex: none;\n width: 33.3333%; }\n #optimole-app .column.is-one-quarter-mobile {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-one-fifth-mobile {\n -ms-flex: none;\n flex: none;\n width: 20%; }\n #optimole-app .column.is-two-fifths-mobile {\n -ms-flex: none;\n flex: none;\n width: 40%; }\n #optimole-app .column.is-three-fifths-mobile {\n -ms-flex: none;\n flex: none;\n width: 60%; }\n #optimole-app .column.is-four-fifths-mobile {\n -ms-flex: none;\n flex: none;\n width: 80%; }\n #optimole-app .column.is-offset-three-quarters-mobile {\n margin-left: 75%; }\n #optimole-app .column.is-offset-two-thirds-mobile {\n margin-left: 66.6666%; }\n #optimole-app .column.is-offset-half-mobile {\n margin-left: 50%; }\n #optimole-app .column.is-offset-one-third-mobile {\n margin-left: 33.3333%; }\n #optimole-app .column.is-offset-one-quarter-mobile {\n margin-left: 25%; }\n #optimole-app .column.is-offset-one-fifth-mobile {\n margin-left: 20%; }\n #optimole-app .column.is-offset-two-fifths-mobile {\n margin-left: 40%; }\n #optimole-app .column.is-offset-three-fifths-mobile {\n margin-left: 60%; }\n #optimole-app .column.is-offset-four-fifths-mobile {\n margin-left: 80%; }\n #optimole-app .column.is-1-mobile {\n -ms-flex: none;\n flex: none;\n width: 8.33333%; }\n #optimole-app .column.is-offset-1-mobile {\n margin-left: 8.33333%; }\n #optimole-app .column.is-2-mobile {\n -ms-flex: none;\n flex: none;\n width: 16.66667%; }\n #optimole-app .column.is-offset-2-mobile {\n margin-left: 16.66667%; }\n #optimole-app .column.is-3-mobile {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-offset-3-mobile {\n margin-left: 25%; }\n #optimole-app .column.is-4-mobile {\n -ms-flex: none;\n flex: none;\n width: 33.33333%; }\n #optimole-app .column.is-offset-4-mobile {\n margin-left: 33.33333%; }\n #optimole-app .column.is-5-mobile {\n -ms-flex: none;\n flex: none;\n width: 41.66667%; }\n #optimole-app .column.is-offset-5-mobile {\n margin-left: 41.66667%; }\n #optimole-app .column.is-6-mobile {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-offset-6-mobile {\n margin-left: 50%; }\n #optimole-app .column.is-7-mobile {\n -ms-flex: none;\n flex: none;\n width: 58.33333%; }\n #optimole-app .column.is-offset-7-mobile {\n margin-left: 58.33333%; }\n #optimole-app .column.is-8-mobile {\n -ms-flex: none;\n flex: none;\n width: 66.66667%; }\n #optimole-app .column.is-offset-8-mobile {\n margin-left: 66.66667%; }\n #optimole-app .column.is-9-mobile {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-offset-9-mobile {\n margin-left: 75%; }\n #optimole-app .column.is-10-mobile {\n -ms-flex: none;\n flex: none;\n width: 83.33333%; }\n #optimole-app .column.is-offset-10-mobile {\n margin-left: 83.33333%; }\n #optimole-app .column.is-11-mobile {\n -ms-flex: none;\n flex: none;\n width: 91.66667%; }\n #optimole-app .column.is-offset-11-mobile {\n margin-left: 91.66667%; }\n #optimole-app .column.is-12-mobile {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-offset-12-mobile {\n margin-left: 100%; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .column.is-narrow, #optimole-app .column.is-narrow-tablet {\n -ms-flex: none;\n flex: none; }\n #optimole-app .column.is-full, #optimole-app .column.is-full-tablet {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-three-quarters, #optimole-app .column.is-three-quarters-tablet {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-two-thirds, #optimole-app .column.is-two-thirds-tablet {\n -ms-flex: none;\n flex: none;\n width: 66.6666%; }\n #optimole-app .column.is-half, #optimole-app .column.is-half-tablet {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-one-third, #optimole-app .column.is-one-third-tablet {\n -ms-flex: none;\n flex: none;\n width: 33.3333%; }\n #optimole-app .column.is-one-quarter, #optimole-app .column.is-one-quarter-tablet {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-one-fifth, #optimole-app .column.is-one-fifth-tablet {\n -ms-flex: none;\n flex: none;\n width: 20%; }\n #optimole-app .column.is-two-fifths, #optimole-app .column.is-two-fifths-tablet {\n -ms-flex: none;\n flex: none;\n width: 40%; }\n #optimole-app .column.is-three-fifths, #optimole-app .column.is-three-fifths-tablet {\n -ms-flex: none;\n flex: none;\n width: 60%; }\n #optimole-app .column.is-four-fifths, #optimole-app .column.is-four-fifths-tablet {\n -ms-flex: none;\n flex: none;\n width: 80%; }\n #optimole-app .column.is-offset-three-quarters, #optimole-app .column.is-offset-three-quarters-tablet {\n margin-left: 75%; }\n #optimole-app .column.is-offset-two-thirds, #optimole-app .column.is-offset-two-thirds-tablet {\n margin-left: 66.6666%; }\n #optimole-app .column.is-offset-half, #optimole-app .column.is-offset-half-tablet {\n margin-left: 50%; }\n #optimole-app .column.is-offset-one-third, #optimole-app .column.is-offset-one-third-tablet {\n margin-left: 33.3333%; }\n #optimole-app .column.is-offset-one-quarter, #optimole-app .column.is-offset-one-quarter-tablet {\n margin-left: 25%; }\n #optimole-app .column.is-offset-one-fifth, #optimole-app .column.is-offset-one-fifth-tablet {\n margin-left: 20%; }\n #optimole-app .column.is-offset-two-fifths, #optimole-app .column.is-offset-two-fifths-tablet {\n margin-left: 40%; }\n #optimole-app .column.is-offset-three-fifths, #optimole-app .column.is-offset-three-fifths-tablet {\n margin-left: 60%; }\n #optimole-app .column.is-offset-four-fifths, #optimole-app .column.is-offset-four-fifths-tablet {\n margin-left: 80%; }\n #optimole-app .column.is-1, #optimole-app .column.is-1-tablet {\n -ms-flex: none;\n flex: none;\n width: 8.33333%; }\n #optimole-app .column.is-offset-1, #optimole-app .column.is-offset-1-tablet {\n margin-left: 8.33333%; }\n #optimole-app .column.is-2, #optimole-app .column.is-2-tablet {\n -ms-flex: none;\n flex: none;\n width: 16.66667%; }\n #optimole-app .column.is-offset-2, #optimole-app .column.is-offset-2-tablet {\n margin-left: 16.66667%; }\n #optimole-app .column.is-3, #optimole-app .column.is-3-tablet {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-offset-3, #optimole-app .column.is-offset-3-tablet {\n margin-left: 25%; }\n #optimole-app .column.is-4, #optimole-app .column.is-4-tablet {\n -ms-flex: none;\n flex: none;\n width: 33.33333%; }\n #optimole-app .column.is-offset-4, #optimole-app .column.is-offset-4-tablet {\n margin-left: 33.33333%; }\n #optimole-app .column.is-5, #optimole-app .column.is-5-tablet {\n -ms-flex: none;\n flex: none;\n width: 41.66667%; }\n #optimole-app .column.is-offset-5, #optimole-app .column.is-offset-5-tablet {\n margin-left: 41.66667%; }\n #optimole-app .column.is-6, #optimole-app .column.is-6-tablet {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-offset-6, #optimole-app .column.is-offset-6-tablet {\n margin-left: 50%; }\n #optimole-app .column.is-7, #optimole-app .column.is-7-tablet {\n -ms-flex: none;\n flex: none;\n width: 58.33333%; }\n #optimole-app .column.is-offset-7, #optimole-app .column.is-offset-7-tablet {\n margin-left: 58.33333%; }\n #optimole-app .column.is-8, #optimole-app .column.is-8-tablet {\n -ms-flex: none;\n flex: none;\n width: 66.66667%; }\n #optimole-app .column.is-offset-8, #optimole-app .column.is-offset-8-tablet {\n margin-left: 66.66667%; }\n #optimole-app .column.is-9, #optimole-app .column.is-9-tablet {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-offset-9, #optimole-app .column.is-offset-9-tablet {\n margin-left: 75%; }\n #optimole-app .column.is-10, #optimole-app .column.is-10-tablet {\n -ms-flex: none;\n flex: none;\n width: 83.33333%; }\n #optimole-app .column.is-offset-10, #optimole-app .column.is-offset-10-tablet {\n margin-left: 83.33333%; }\n #optimole-app .column.is-11, #optimole-app .column.is-11-tablet {\n -ms-flex: none;\n flex: none;\n width: 91.66667%; }\n #optimole-app .column.is-offset-11, #optimole-app .column.is-offset-11-tablet {\n margin-left: 91.66667%; }\n #optimole-app .column.is-12, #optimole-app .column.is-12-tablet {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-offset-12, #optimole-app .column.is-offset-12-tablet {\n margin-left: 100%; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .column.is-narrow-touch {\n -ms-flex: none;\n flex: none; }\n #optimole-app .column.is-full-touch {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-three-quarters-touch {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-two-thirds-touch {\n -ms-flex: none;\n flex: none;\n width: 66.6666%; }\n #optimole-app .column.is-half-touch {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-one-third-touch {\n -ms-flex: none;\n flex: none;\n width: 33.3333%; }\n #optimole-app .column.is-one-quarter-touch {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-one-fifth-touch {\n -ms-flex: none;\n flex: none;\n width: 20%; }\n #optimole-app .column.is-two-fifths-touch {\n -ms-flex: none;\n flex: none;\n width: 40%; }\n #optimole-app .column.is-three-fifths-touch {\n -ms-flex: none;\n flex: none;\n width: 60%; }\n #optimole-app .column.is-four-fifths-touch {\n -ms-flex: none;\n flex: none;\n width: 80%; }\n #optimole-app .column.is-offset-three-quarters-touch {\n margin-left: 75%; }\n #optimole-app .column.is-offset-two-thirds-touch {\n margin-left: 66.6666%; }\n #optimole-app .column.is-offset-half-touch {\n margin-left: 50%; }\n #optimole-app .column.is-offset-one-third-touch {\n margin-left: 33.3333%; }\n #optimole-app .column.is-offset-one-quarter-touch {\n margin-left: 25%; }\n #optimole-app .column.is-offset-one-fifth-touch {\n margin-left: 20%; }\n #optimole-app .column.is-offset-two-fifths-touch {\n margin-left: 40%; }\n #optimole-app .column.is-offset-three-fifths-touch {\n margin-left: 60%; }\n #optimole-app .column.is-offset-four-fifths-touch {\n margin-left: 80%; }\n #optimole-app .column.is-1-touch {\n -ms-flex: none;\n flex: none;\n width: 8.33333%; }\n #optimole-app .column.is-offset-1-touch {\n margin-left: 8.33333%; }\n #optimole-app .column.is-2-touch {\n -ms-flex: none;\n flex: none;\n width: 16.66667%; }\n #optimole-app .column.is-offset-2-touch {\n margin-left: 16.66667%; }\n #optimole-app .column.is-3-touch {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-offset-3-touch {\n margin-left: 25%; }\n #optimole-app .column.is-4-touch {\n -ms-flex: none;\n flex: none;\n width: 33.33333%; }\n #optimole-app .column.is-offset-4-touch {\n margin-left: 33.33333%; }\n #optimole-app .column.is-5-touch {\n -ms-flex: none;\n flex: none;\n width: 41.66667%; }\n #optimole-app .column.is-offset-5-touch {\n margin-left: 41.66667%; }\n #optimole-app .column.is-6-touch {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-offset-6-touch {\n margin-left: 50%; }\n #optimole-app .column.is-7-touch {\n -ms-flex: none;\n flex: none;\n width: 58.33333%; }\n #optimole-app .column.is-offset-7-touch {\n margin-left: 58.33333%; }\n #optimole-app .column.is-8-touch {\n -ms-flex: none;\n flex: none;\n width: 66.66667%; }\n #optimole-app .column.is-offset-8-touch {\n margin-left: 66.66667%; }\n #optimole-app .column.is-9-touch {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-offset-9-touch {\n margin-left: 75%; }\n #optimole-app .column.is-10-touch {\n -ms-flex: none;\n flex: none;\n width: 83.33333%; }\n #optimole-app .column.is-offset-10-touch {\n margin-left: 83.33333%; }\n #optimole-app .column.is-11-touch {\n -ms-flex: none;\n flex: none;\n width: 91.66667%; }\n #optimole-app .column.is-offset-11-touch {\n margin-left: 91.66667%; }\n #optimole-app .column.is-12-touch {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-offset-12-touch {\n margin-left: 100%; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .column.is-narrow-desktop {\n -ms-flex: none;\n flex: none; }\n #optimole-app .column.is-full-desktop {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-three-quarters-desktop {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-two-thirds-desktop {\n -ms-flex: none;\n flex: none;\n width: 66.6666%; }\n #optimole-app .column.is-half-desktop {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-one-third-desktop {\n -ms-flex: none;\n flex: none;\n width: 33.3333%; }\n #optimole-app .column.is-one-quarter-desktop {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-one-fifth-desktop {\n -ms-flex: none;\n flex: none;\n width: 20%; }\n #optimole-app .column.is-two-fifths-desktop {\n -ms-flex: none;\n flex: none;\n width: 40%; }\n #optimole-app .column.is-three-fifths-desktop {\n -ms-flex: none;\n flex: none;\n width: 60%; }\n #optimole-app .column.is-four-fifths-desktop {\n -ms-flex: none;\n flex: none;\n width: 80%; }\n #optimole-app .column.is-offset-three-quarters-desktop {\n margin-left: 75%; }\n #optimole-app .column.is-offset-two-thirds-desktop {\n margin-left: 66.6666%; }\n #optimole-app .column.is-offset-half-desktop {\n margin-left: 50%; }\n #optimole-app .column.is-offset-one-third-desktop {\n margin-left: 33.3333%; }\n #optimole-app .column.is-offset-one-quarter-desktop {\n margin-left: 25%; }\n #optimole-app .column.is-offset-one-fifth-desktop {\n margin-left: 20%; }\n #optimole-app .column.is-offset-two-fifths-desktop {\n margin-left: 40%; }\n #optimole-app .column.is-offset-three-fifths-desktop {\n margin-left: 60%; }\n #optimole-app .column.is-offset-four-fifths-desktop {\n margin-left: 80%; }\n #optimole-app .column.is-1-desktop {\n -ms-flex: none;\n flex: none;\n width: 8.33333%; }\n #optimole-app .column.is-offset-1-desktop {\n margin-left: 8.33333%; }\n #optimole-app .column.is-2-desktop {\n -ms-flex: none;\n flex: none;\n width: 16.66667%; }\n #optimole-app .column.is-offset-2-desktop {\n margin-left: 16.66667%; }\n #optimole-app .column.is-3-desktop {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-offset-3-desktop {\n margin-left: 25%; }\n #optimole-app .column.is-4-desktop {\n -ms-flex: none;\n flex: none;\n width: 33.33333%; }\n #optimole-app .column.is-offset-4-desktop {\n margin-left: 33.33333%; }\n #optimole-app .column.is-5-desktop {\n -ms-flex: none;\n flex: none;\n width: 41.66667%; }\n #optimole-app .column.is-offset-5-desktop {\n margin-left: 41.66667%; }\n #optimole-app .column.is-6-desktop {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-offset-6-desktop {\n margin-left: 50%; }\n #optimole-app .column.is-7-desktop {\n -ms-flex: none;\n flex: none;\n width: 58.33333%; }\n #optimole-app .column.is-offset-7-desktop {\n margin-left: 58.33333%; }\n #optimole-app .column.is-8-desktop {\n -ms-flex: none;\n flex: none;\n width: 66.66667%; }\n #optimole-app .column.is-offset-8-desktop {\n margin-left: 66.66667%; }\n #optimole-app .column.is-9-desktop {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-offset-9-desktop {\n margin-left: 75%; }\n #optimole-app .column.is-10-desktop {\n -ms-flex: none;\n flex: none;\n width: 83.33333%; }\n #optimole-app .column.is-offset-10-desktop {\n margin-left: 83.33333%; }\n #optimole-app .column.is-11-desktop {\n -ms-flex: none;\n flex: none;\n width: 91.66667%; }\n #optimole-app .column.is-offset-11-desktop {\n margin-left: 91.66667%; }\n #optimole-app .column.is-12-desktop {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-offset-12-desktop {\n margin-left: 100%; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .column.is-narrow-widescreen {\n -ms-flex: none;\n flex: none; }\n #optimole-app .column.is-full-widescreen {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-three-quarters-widescreen {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-two-thirds-widescreen {\n -ms-flex: none;\n flex: none;\n width: 66.6666%; }\n #optimole-app .column.is-half-widescreen {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-one-third-widescreen {\n -ms-flex: none;\n flex: none;\n width: 33.3333%; }\n #optimole-app .column.is-one-quarter-widescreen {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-one-fifth-widescreen {\n -ms-flex: none;\n flex: none;\n width: 20%; }\n #optimole-app .column.is-two-fifths-widescreen {\n -ms-flex: none;\n flex: none;\n width: 40%; }\n #optimole-app .column.is-three-fifths-widescreen {\n -ms-flex: none;\n flex: none;\n width: 60%; }\n #optimole-app .column.is-four-fifths-widescreen {\n -ms-flex: none;\n flex: none;\n width: 80%; }\n #optimole-app .column.is-offset-three-quarters-widescreen {\n margin-left: 75%; }\n #optimole-app .column.is-offset-two-thirds-widescreen {\n margin-left: 66.6666%; }\n #optimole-app .column.is-offset-half-widescreen {\n margin-left: 50%; }\n #optimole-app .column.is-offset-one-third-widescreen {\n margin-left: 33.3333%; }\n #optimole-app .column.is-offset-one-quarter-widescreen {\n margin-left: 25%; }\n #optimole-app .column.is-offset-one-fifth-widescreen {\n margin-left: 20%; }\n #optimole-app .column.is-offset-two-fifths-widescreen {\n margin-left: 40%; }\n #optimole-app .column.is-offset-three-fifths-widescreen {\n margin-left: 60%; }\n #optimole-app .column.is-offset-four-fifths-widescreen {\n margin-left: 80%; }\n #optimole-app .column.is-1-widescreen {\n -ms-flex: none;\n flex: none;\n width: 8.33333%; }\n #optimole-app .column.is-offset-1-widescreen {\n margin-left: 8.33333%; }\n #optimole-app .column.is-2-widescreen {\n -ms-flex: none;\n flex: none;\n width: 16.66667%; }\n #optimole-app .column.is-offset-2-widescreen {\n margin-left: 16.66667%; }\n #optimole-app .column.is-3-widescreen {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-offset-3-widescreen {\n margin-left: 25%; }\n #optimole-app .column.is-4-widescreen {\n -ms-flex: none;\n flex: none;\n width: 33.33333%; }\n #optimole-app .column.is-offset-4-widescreen {\n margin-left: 33.33333%; }\n #optimole-app .column.is-5-widescreen {\n -ms-flex: none;\n flex: none;\n width: 41.66667%; }\n #optimole-app .column.is-offset-5-widescreen {\n margin-left: 41.66667%; }\n #optimole-app .column.is-6-widescreen {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-offset-6-widescreen {\n margin-left: 50%; }\n #optimole-app .column.is-7-widescreen {\n -ms-flex: none;\n flex: none;\n width: 58.33333%; }\n #optimole-app .column.is-offset-7-widescreen {\n margin-left: 58.33333%; }\n #optimole-app .column.is-8-widescreen {\n -ms-flex: none;\n flex: none;\n width: 66.66667%; }\n #optimole-app .column.is-offset-8-widescreen {\n margin-left: 66.66667%; }\n #optimole-app .column.is-9-widescreen {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-offset-9-widescreen {\n margin-left: 75%; }\n #optimole-app .column.is-10-widescreen {\n -ms-flex: none;\n flex: none;\n width: 83.33333%; }\n #optimole-app .column.is-offset-10-widescreen {\n margin-left: 83.33333%; }\n #optimole-app .column.is-11-widescreen {\n -ms-flex: none;\n flex: none;\n width: 91.66667%; }\n #optimole-app .column.is-offset-11-widescreen {\n margin-left: 91.66667%; }\n #optimole-app .column.is-12-widescreen {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-offset-12-widescreen {\n margin-left: 100%; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .column.is-narrow-fullhd {\n -ms-flex: none;\n flex: none; }\n #optimole-app .column.is-full-fullhd {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-three-quarters-fullhd {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-two-thirds-fullhd {\n -ms-flex: none;\n flex: none;\n width: 66.6666%; }\n #optimole-app .column.is-half-fullhd {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-one-third-fullhd {\n -ms-flex: none;\n flex: none;\n width: 33.3333%; }\n #optimole-app .column.is-one-quarter-fullhd {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-one-fifth-fullhd {\n -ms-flex: none;\n flex: none;\n width: 20%; }\n #optimole-app .column.is-two-fifths-fullhd {\n -ms-flex: none;\n flex: none;\n width: 40%; }\n #optimole-app .column.is-three-fifths-fullhd {\n -ms-flex: none;\n flex: none;\n width: 60%; }\n #optimole-app .column.is-four-fifths-fullhd {\n -ms-flex: none;\n flex: none;\n width: 80%; }\n #optimole-app .column.is-offset-three-quarters-fullhd {\n margin-left: 75%; }\n #optimole-app .column.is-offset-two-thirds-fullhd {\n margin-left: 66.6666%; }\n #optimole-app .column.is-offset-half-fullhd {\n margin-left: 50%; }\n #optimole-app .column.is-offset-one-third-fullhd {\n margin-left: 33.3333%; }\n #optimole-app .column.is-offset-one-quarter-fullhd {\n margin-left: 25%; }\n #optimole-app .column.is-offset-one-fifth-fullhd {\n margin-left: 20%; }\n #optimole-app .column.is-offset-two-fifths-fullhd {\n margin-left: 40%; }\n #optimole-app .column.is-offset-three-fifths-fullhd {\n margin-left: 60%; }\n #optimole-app .column.is-offset-four-fifths-fullhd {\n margin-left: 80%; }\n #optimole-app .column.is-1-fullhd {\n -ms-flex: none;\n flex: none;\n width: 8.33333%; }\n #optimole-app .column.is-offset-1-fullhd {\n margin-left: 8.33333%; }\n #optimole-app .column.is-2-fullhd {\n -ms-flex: none;\n flex: none;\n width: 16.66667%; }\n #optimole-app .column.is-offset-2-fullhd {\n margin-left: 16.66667%; }\n #optimole-app .column.is-3-fullhd {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-offset-3-fullhd {\n margin-left: 25%; }\n #optimole-app .column.is-4-fullhd {\n -ms-flex: none;\n flex: none;\n width: 33.33333%; }\n #optimole-app .column.is-offset-4-fullhd {\n margin-left: 33.33333%; }\n #optimole-app .column.is-5-fullhd {\n -ms-flex: none;\n flex: none;\n width: 41.66667%; }\n #optimole-app .column.is-offset-5-fullhd {\n margin-left: 41.66667%; }\n #optimole-app .column.is-6-fullhd {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-offset-6-fullhd {\n margin-left: 50%; }\n #optimole-app .column.is-7-fullhd {\n -ms-flex: none;\n flex: none;\n width: 58.33333%; }\n #optimole-app .column.is-offset-7-fullhd {\n margin-left: 58.33333%; }\n #optimole-app .column.is-8-fullhd {\n -ms-flex: none;\n flex: none;\n width: 66.66667%; }\n #optimole-app .column.is-offset-8-fullhd {\n margin-left: 66.66667%; }\n #optimole-app .column.is-9-fullhd {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-offset-9-fullhd {\n margin-left: 75%; }\n #optimole-app .column.is-10-fullhd {\n -ms-flex: none;\n flex: none;\n width: 83.33333%; }\n #optimole-app .column.is-offset-10-fullhd {\n margin-left: 83.33333%; }\n #optimole-app .column.is-11-fullhd {\n -ms-flex: none;\n flex: none;\n width: 91.66667%; }\n #optimole-app .column.is-offset-11-fullhd {\n margin-left: 91.66667%; }\n #optimole-app .column.is-12-fullhd {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-offset-12-fullhd {\n margin-left: 100%; } }\n #optimole-app .columns {\n margin-left: -0.75rem;\n margin-right: -0.75rem;\n margin-top: -0.75rem; }\n #optimole-app .columns:last-child {\n margin-bottom: -0.75rem; }\n #optimole-app .columns:not(:last-child) {\n margin-bottom: calc(1.5rem - 0.75rem); }\n #optimole-app .columns.is-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .columns.is-gapless {\n margin-left: 0;\n margin-right: 0;\n margin-top: 0; }\n #optimole-app .columns.is-gapless > .column {\n margin: 0;\n padding: 0 !important; }\n #optimole-app .columns.is-gapless:not(:last-child) {\n margin-bottom: 1.5rem; }\n #optimole-app .columns.is-gapless:last-child {\n margin-bottom: 0; }\n #optimole-app .columns.is-mobile {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .columns.is-multiline {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap; }\n #optimole-app .columns.is-vcentered {\n -ms-flex-align: center;\n align-items: center; }\n @media screen and (min-width: 769px), print {\n #optimole-app .columns:not(.is-desktop) {\n display: -ms-flexbox;\n display: flex; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .columns.is-desktop {\n display: -ms-flexbox;\n display: flex; } }\n #optimole-app .columns.is-variable {\n --columnGap: 0.75rem;\n margin-left: calc(-1 * var(--columnGap));\n margin-right: calc(-1 * var(--columnGap)); }\n #optimole-app .columns.is-variable .column {\n padding-left: var(--columnGap);\n padding-right: var(--columnGap); }\n #optimole-app .columns.is-variable.is-0 {\n --columnGap: 0rem; }\n #optimole-app .columns.is-variable.is-1 {\n --columnGap: 0.25rem; }\n #optimole-app .columns.is-variable.is-2 {\n --columnGap: 0.5rem; }\n #optimole-app .columns.is-variable.is-3 {\n --columnGap: 0.75rem; }\n #optimole-app .columns.is-variable.is-4 {\n --columnGap: 1rem; }\n #optimole-app .columns.is-variable.is-5 {\n --columnGap: 1.25rem; }\n #optimole-app .columns.is-variable.is-6 {\n --columnGap: 1.5rem; }\n #optimole-app .columns.is-variable.is-7 {\n --columnGap: 1.75rem; }\n #optimole-app .columns.is-variable.is-8 {\n --columnGap: 2rem; }\n #optimole-app .tile {\n -ms-flex-align: stretch;\n align-items: stretch;\n display: block;\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n min-height: -webkit-min-content;\n min-height: -moz-min-content;\n min-height: min-content; }\n #optimole-app .tile.is-ancestor {\n margin-left: -0.75rem;\n margin-right: -0.75rem;\n margin-top: -0.75rem; }\n #optimole-app .tile.is-ancestor:last-child {\n margin-bottom: -0.75rem; }\n #optimole-app .tile.is-ancestor:not(:last-child) {\n margin-bottom: 0.75rem; }\n #optimole-app .tile.is-child {\n margin: 0 !important; }\n #optimole-app .tile.is-parent {\n padding: 0.75rem; }\n #optimole-app .tile.is-vertical {\n -ms-flex-direction: column;\n flex-direction: column; }\n #optimole-app .tile.is-vertical > .tile.is-child:not(:last-child) {\n margin-bottom: 1.5rem !important; }\n @media screen and (min-width: 769px), print {\n #optimole-app .tile:not(.is-child) {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .tile.is-1 {\n -ms-flex: none;\n flex: none;\n width: 8.33333%; }\n #optimole-app .tile.is-2 {\n -ms-flex: none;\n flex: none;\n width: 16.66667%; }\n #optimole-app .tile.is-3 {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .tile.is-4 {\n -ms-flex: none;\n flex: none;\n width: 33.33333%; }\n #optimole-app .tile.is-5 {\n -ms-flex: none;\n flex: none;\n width: 41.66667%; }\n #optimole-app .tile.is-6 {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .tile.is-7 {\n -ms-flex: none;\n flex: none;\n width: 58.33333%; }\n #optimole-app .tile.is-8 {\n -ms-flex: none;\n flex: none;\n width: 66.66667%; }\n #optimole-app .tile.is-9 {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .tile.is-10 {\n -ms-flex: none;\n flex: none;\n width: 83.33333%; }\n #optimole-app .tile.is-11 {\n -ms-flex: none;\n flex: none;\n width: 91.66667%; }\n #optimole-app .tile.is-12 {\n -ms-flex: none;\n flex: none;\n width: 100%; } }\n #optimole-app .hero {\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: justify;\n justify-content: space-between; }\n #optimole-app .hero .navbar {\n background: none; }\n #optimole-app .hero .tabs ul {\n border-bottom: none; }\n #optimole-app .hero.is-white {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .hero.is-white a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-white strong {\n color: inherit; }\n #optimole-app .hero.is-white .title {\n color: #0a0a0a; }\n #optimole-app .hero.is-white .subtitle {\n color: rgba(10, 10, 10, 0.9); }\n #optimole-app .hero.is-white .subtitle a:not(.button),\n #optimole-app .hero.is-white .subtitle strong {\n color: #0a0a0a; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-white .navbar-menu {\n background-color: white; } }\n #optimole-app .hero.is-white .navbar-item,\n #optimole-app .hero.is-white .navbar-link {\n color: rgba(10, 10, 10, 0.7); }\n #optimole-app .hero.is-white a.navbar-item:hover, #optimole-app .hero.is-white a.navbar-item.is-active,\n #optimole-app .hero.is-white .navbar-link:hover,\n #optimole-app .hero.is-white .navbar-link.is-active {\n background-color: #f2f2f2;\n color: #0a0a0a; }\n #optimole-app .hero.is-white .tabs a {\n color: #0a0a0a;\n opacity: 0.9; }\n #optimole-app .hero.is-white .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-white .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-white .tabs.is-boxed a, #optimole-app .hero.is-white .tabs.is-toggle a {\n color: #0a0a0a; }\n #optimole-app .hero.is-white .tabs.is-boxed a:hover, #optimole-app .hero.is-white .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-white .tabs.is-boxed li.is-active a, #optimole-app .hero.is-white .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-white .tabs.is-toggle li.is-active a, #optimole-app .hero.is-white .tabs.is-toggle li.is-active a:hover {\n background-color: #0a0a0a;\n border-color: #0a0a0a;\n color: white; }\n #optimole-app .hero.is-white.is-bold {\n background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-white.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } }\n #optimole-app .hero.is-black {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .hero.is-black a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-black strong {\n color: inherit; }\n #optimole-app .hero.is-black .title {\n color: white; }\n #optimole-app .hero.is-black .subtitle {\n color: rgba(255, 255, 255, 0.9); }\n #optimole-app .hero.is-black .subtitle a:not(.button),\n #optimole-app .hero.is-black .subtitle strong {\n color: white; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-black .navbar-menu {\n background-color: #0a0a0a; } }\n #optimole-app .hero.is-black .navbar-item,\n #optimole-app .hero.is-black .navbar-link {\n color: rgba(255, 255, 255, 0.7); }\n #optimole-app .hero.is-black a.navbar-item:hover, #optimole-app .hero.is-black a.navbar-item.is-active,\n #optimole-app .hero.is-black .navbar-link:hover,\n #optimole-app .hero.is-black .navbar-link.is-active {\n background-color: black;\n color: white; }\n #optimole-app .hero.is-black .tabs a {\n color: white;\n opacity: 0.9; }\n #optimole-app .hero.is-black .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-black .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-black .tabs.is-boxed a, #optimole-app .hero.is-black .tabs.is-toggle a {\n color: white; }\n #optimole-app .hero.is-black .tabs.is-boxed a:hover, #optimole-app .hero.is-black .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-black .tabs.is-boxed li.is-active a, #optimole-app .hero.is-black .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-black .tabs.is-toggle li.is-active a, #optimole-app .hero.is-black .tabs.is-toggle li.is-active a:hover {\n background-color: white;\n border-color: white;\n color: #0a0a0a; }\n #optimole-app .hero.is-black.is-bold {\n background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-black.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } }\n #optimole-app .hero.is-light {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .hero.is-light a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-light strong {\n color: inherit; }\n #optimole-app .hero.is-light .title {\n color: #363636; }\n #optimole-app .hero.is-light .subtitle {\n color: rgba(54, 54, 54, 0.9); }\n #optimole-app .hero.is-light .subtitle a:not(.button),\n #optimole-app .hero.is-light .subtitle strong {\n color: #363636; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-light .navbar-menu {\n background-color: whitesmoke; } }\n #optimole-app .hero.is-light .navbar-item,\n #optimole-app .hero.is-light .navbar-link {\n color: rgba(54, 54, 54, 0.7); }\n #optimole-app .hero.is-light a.navbar-item:hover, #optimole-app .hero.is-light a.navbar-item.is-active,\n #optimole-app .hero.is-light .navbar-link:hover,\n #optimole-app .hero.is-light .navbar-link.is-active {\n background-color: #e8e8e8;\n color: #363636; }\n #optimole-app .hero.is-light .tabs a {\n color: #363636;\n opacity: 0.9; }\n #optimole-app .hero.is-light .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-light .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-light .tabs.is-boxed a, #optimole-app .hero.is-light .tabs.is-toggle a {\n color: #363636; }\n #optimole-app .hero.is-light .tabs.is-boxed a:hover, #optimole-app .hero.is-light .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-light .tabs.is-boxed li.is-active a, #optimole-app .hero.is-light .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-light .tabs.is-toggle li.is-active a, #optimole-app .hero.is-light .tabs.is-toggle li.is-active a:hover {\n background-color: #363636;\n border-color: #363636;\n color: whitesmoke; }\n #optimole-app .hero.is-light.is-bold {\n background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-light.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } }\n #optimole-app .hero.is-dark {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-dark strong {\n color: inherit; }\n #optimole-app .hero.is-dark .title {\n color: whitesmoke; }\n #optimole-app .hero.is-dark .subtitle {\n color: rgba(245, 245, 245, 0.9); }\n #optimole-app .hero.is-dark .subtitle a:not(.button),\n #optimole-app .hero.is-dark .subtitle strong {\n color: whitesmoke; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-dark .navbar-menu {\n background-color: #363636; } }\n #optimole-app .hero.is-dark .navbar-item,\n #optimole-app .hero.is-dark .navbar-link {\n color: rgba(245, 245, 245, 0.7); }\n #optimole-app .hero.is-dark a.navbar-item:hover, #optimole-app .hero.is-dark a.navbar-item.is-active,\n #optimole-app .hero.is-dark .navbar-link:hover,\n #optimole-app .hero.is-dark .navbar-link.is-active {\n background-color: #292929;\n color: whitesmoke; }\n #optimole-app .hero.is-dark .tabs a {\n color: whitesmoke;\n opacity: 0.9; }\n #optimole-app .hero.is-dark .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-dark .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-dark .tabs.is-boxed a, #optimole-app .hero.is-dark .tabs.is-toggle a {\n color: whitesmoke; }\n #optimole-app .hero.is-dark .tabs.is-boxed a:hover, #optimole-app .hero.is-dark .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-dark .tabs.is-boxed li.is-active a, #optimole-app .hero.is-dark .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-dark .tabs.is-toggle li.is-active a, #optimole-app .hero.is-dark .tabs.is-toggle li.is-active a:hover {\n background-color: whitesmoke;\n border-color: whitesmoke;\n color: #363636; }\n #optimole-app .hero.is-dark.is-bold {\n background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-dark.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } }\n #optimole-app .hero.is-primary {\n background-color: #e7602a;\n color: #fff; }\n #optimole-app .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-primary strong {\n color: inherit; }\n #optimole-app .hero.is-primary .title {\n color: #fff; }\n #optimole-app .hero.is-primary .subtitle {\n color: rgba(255, 255, 255, 0.9); }\n #optimole-app .hero.is-primary .subtitle a:not(.button),\n #optimole-app .hero.is-primary .subtitle strong {\n color: #fff; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-primary .navbar-menu {\n background-color: #e7602a; } }\n #optimole-app .hero.is-primary .navbar-item,\n #optimole-app .hero.is-primary .navbar-link {\n color: rgba(255, 255, 255, 0.7); }\n #optimole-app .hero.is-primary a.navbar-item:hover, #optimole-app .hero.is-primary a.navbar-item.is-active,\n #optimole-app .hero.is-primary .navbar-link:hover,\n #optimole-app .hero.is-primary .navbar-link.is-active {\n background-color: #de5119;\n color: #fff; }\n #optimole-app .hero.is-primary .tabs a {\n color: #fff;\n opacity: 0.9; }\n #optimole-app .hero.is-primary .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-primary .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-primary .tabs.is-boxed a, #optimole-app .hero.is-primary .tabs.is-toggle a {\n color: #fff; }\n #optimole-app .hero.is-primary .tabs.is-boxed a:hover, #optimole-app .hero.is-primary .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-primary .tabs.is-boxed li.is-active a, #optimole-app .hero.is-primary .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-primary .tabs.is-toggle li.is-active a, #optimole-app .hero.is-primary .tabs.is-toggle li.is-active a:hover {\n background-color: #fff;\n border-color: #fff;\n color: #e7602a; }\n #optimole-app .hero.is-primary.is-bold {\n background-image: linear-gradient(141deg, #d3230b 0%, #e7602a 71%, #ef8d3c 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-primary.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #d3230b 0%, #e7602a 71%, #ef8d3c 100%); } }\n #optimole-app .hero.is-link {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .hero.is-link a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-link strong {\n color: inherit; }\n #optimole-app .hero.is-link .title {\n color: #fff; }\n #optimole-app .hero.is-link .subtitle {\n color: rgba(255, 255, 255, 0.9); }\n #optimole-app .hero.is-link .subtitle a:not(.button),\n #optimole-app .hero.is-link .subtitle strong {\n color: #fff; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-link .navbar-menu {\n background-color: #3273dc; } }\n #optimole-app .hero.is-link .navbar-item,\n #optimole-app .hero.is-link .navbar-link {\n color: rgba(255, 255, 255, 0.7); }\n #optimole-app .hero.is-link a.navbar-item:hover, #optimole-app .hero.is-link a.navbar-item.is-active,\n #optimole-app .hero.is-link .navbar-link:hover,\n #optimole-app .hero.is-link .navbar-link.is-active {\n background-color: #2366d1;\n color: #fff; }\n #optimole-app .hero.is-link .tabs a {\n color: #fff;\n opacity: 0.9; }\n #optimole-app .hero.is-link .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-link .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-link .tabs.is-boxed a, #optimole-app .hero.is-link .tabs.is-toggle a {\n color: #fff; }\n #optimole-app .hero.is-link .tabs.is-boxed a:hover, #optimole-app .hero.is-link .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-link .tabs.is-boxed li.is-active a, #optimole-app .hero.is-link .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-link .tabs.is-toggle li.is-active a, #optimole-app .hero.is-link .tabs.is-toggle li.is-active a:hover {\n background-color: #fff;\n border-color: #fff;\n color: #3273dc; }\n #optimole-app .hero.is-link.is-bold {\n background-image: linear-gradient(141deg, #1577c6 0%, #3273dc 71%, #4366e5 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-link.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #1577c6 0%, #3273dc 71%, #4366e5 100%); } }\n #optimole-app .hero.is-info {\n background-color: #008ec2;\n color: #fff; }\n #optimole-app .hero.is-info a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-info strong {\n color: inherit; }\n #optimole-app .hero.is-info .title {\n color: #fff; }\n #optimole-app .hero.is-info .subtitle {\n color: rgba(255, 255, 255, 0.9); }\n #optimole-app .hero.is-info .subtitle a:not(.button),\n #optimole-app .hero.is-info .subtitle strong {\n color: #fff; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-info .navbar-menu {\n background-color: #008ec2; } }\n #optimole-app .hero.is-info .navbar-item,\n #optimole-app .hero.is-info .navbar-link {\n color: rgba(255, 255, 255, 0.7); }\n #optimole-app .hero.is-info a.navbar-item:hover, #optimole-app .hero.is-info a.navbar-item.is-active,\n #optimole-app .hero.is-info .navbar-link:hover,\n #optimole-app .hero.is-info .navbar-link.is-active {\n background-color: #007ba9;\n color: #fff; }\n #optimole-app .hero.is-info .tabs a {\n color: #fff;\n opacity: 0.9; }\n #optimole-app .hero.is-info .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-info .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-info .tabs.is-boxed a, #optimole-app .hero.is-info .tabs.is-toggle a {\n color: #fff; }\n #optimole-app .hero.is-info .tabs.is-boxed a:hover, #optimole-app .hero.is-info .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-info .tabs.is-boxed li.is-active a, #optimole-app .hero.is-info .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-info .tabs.is-toggle li.is-active a, #optimole-app .hero.is-info .tabs.is-toggle li.is-active a:hover {\n background-color: #fff;\n border-color: #fff;\n color: #008ec2; }\n #optimole-app .hero.is-info.is-bold {\n background-image: linear-gradient(141deg, #00818f 0%, #008ec2 71%, #007cdc 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-info.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #00818f 0%, #008ec2 71%, #007cdc 100%); } }\n #optimole-app .hero.is-success {\n background-color: #34a85e;\n color: #fff; }\n #optimole-app .hero.is-success a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-success strong {\n color: inherit; }\n #optimole-app .hero.is-success .title {\n color: #fff; }\n #optimole-app .hero.is-success .subtitle {\n color: rgba(255, 255, 255, 0.9); }\n #optimole-app .hero.is-success .subtitle a:not(.button),\n #optimole-app .hero.is-success .subtitle strong {\n color: #fff; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-success .navbar-menu {\n background-color: #34a85e; } }\n #optimole-app .hero.is-success .navbar-item,\n #optimole-app .hero.is-success .navbar-link {\n color: rgba(255, 255, 255, 0.7); }\n #optimole-app .hero.is-success a.navbar-item:hover, #optimole-app .hero.is-success a.navbar-item.is-active,\n #optimole-app .hero.is-success .navbar-link:hover,\n #optimole-app .hero.is-success .navbar-link.is-active {\n background-color: #2e9553;\n color: #fff; }\n #optimole-app .hero.is-success .tabs a {\n color: #fff;\n opacity: 0.9; }\n #optimole-app .hero.is-success .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-success .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-success .tabs.is-boxed a, #optimole-app .hero.is-success .tabs.is-toggle a {\n color: #fff; }\n #optimole-app .hero.is-success .tabs.is-boxed a:hover, #optimole-app .hero.is-success .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-success .tabs.is-boxed li.is-active a, #optimole-app .hero.is-success .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-success .tabs.is-toggle li.is-active a, #optimole-app .hero.is-success .tabs.is-toggle li.is-active a:hover {\n background-color: #fff;\n border-color: #fff;\n color: #34a85e; }\n #optimole-app .hero.is-success.is-bold {\n background-image: linear-gradient(141deg, #1f8a34 0%, #34a85e 71%, #34c27f 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-success.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #1f8a34 0%, #34a85e 71%, #34c27f 100%); } }\n #optimole-app .hero.is-warning {\n background-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-warning strong {\n color: inherit; }\n #optimole-app .hero.is-warning .title {\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .hero.is-warning .subtitle {\n color: rgba(0, 0, 0, 0.9); }\n #optimole-app .hero.is-warning .subtitle a:not(.button),\n #optimole-app .hero.is-warning .subtitle strong {\n color: rgba(0, 0, 0, 0.7); }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-warning .navbar-menu {\n background-color: #ffdd57; } }\n #optimole-app .hero.is-warning .navbar-item,\n #optimole-app .hero.is-warning .navbar-link {\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .hero.is-warning a.navbar-item:hover, #optimole-app .hero.is-warning a.navbar-item.is-active,\n #optimole-app .hero.is-warning .navbar-link:hover,\n #optimole-app .hero.is-warning .navbar-link.is-active {\n background-color: #ffd83d;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .hero.is-warning .tabs a {\n color: rgba(0, 0, 0, 0.7);\n opacity: 0.9; }\n #optimole-app .hero.is-warning .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-warning .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-warning .tabs.is-boxed a, #optimole-app .hero.is-warning .tabs.is-toggle a {\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .hero.is-warning .tabs.is-boxed a:hover, #optimole-app .hero.is-warning .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-warning .tabs.is-boxed li.is-active a, #optimole-app .hero.is-warning .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-warning .tabs.is-toggle li.is-active a, #optimole-app .hero.is-warning .tabs.is-toggle li.is-active a:hover {\n background-color: rgba(0, 0, 0, 0.7);\n border-color: rgba(0, 0, 0, 0.7);\n color: #ffdd57; }\n #optimole-app .hero.is-warning.is-bold {\n background-image: linear-gradient(141deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-warning.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); } }\n #optimole-app .hero.is-danger {\n background-color: #d54222;\n color: #fff; }\n #optimole-app .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-danger strong {\n color: inherit; }\n #optimole-app .hero.is-danger .title {\n color: #fff; }\n #optimole-app .hero.is-danger .subtitle {\n color: rgba(255, 255, 255, 0.9); }\n #optimole-app .hero.is-danger .subtitle a:not(.button),\n #optimole-app .hero.is-danger .subtitle strong {\n color: #fff; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-danger .navbar-menu {\n background-color: #d54222; } }\n #optimole-app .hero.is-danger .navbar-item,\n #optimole-app .hero.is-danger .navbar-link {\n color: rgba(255, 255, 255, 0.7); }\n #optimole-app .hero.is-danger a.navbar-item:hover, #optimole-app .hero.is-danger a.navbar-item.is-active,\n #optimole-app .hero.is-danger .navbar-link:hover,\n #optimole-app .hero.is-danger .navbar-link.is-active {\n background-color: #bf3b1e;\n color: #fff; }\n #optimole-app .hero.is-danger .tabs a {\n color: #fff;\n opacity: 0.9; }\n #optimole-app .hero.is-danger .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-danger .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-danger .tabs.is-boxed a, #optimole-app .hero.is-danger .tabs.is-toggle a {\n color: #fff; }\n #optimole-app .hero.is-danger .tabs.is-boxed a:hover, #optimole-app .hero.is-danger .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-danger .tabs.is-boxed li.is-active a, #optimole-app .hero.is-danger .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-danger .tabs.is-toggle li.is-active a, #optimole-app .hero.is-danger .tabs.is-toggle li.is-active a:hover {\n background-color: #fff;\n border-color: #fff;\n color: #d54222; }\n #optimole-app .hero.is-danger.is-bold {\n background-image: linear-gradient(141deg, #b31311 0%, #d54222 71%, #e46c2c 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-danger.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #b31311 0%, #d54222 71%, #e46c2c 100%); } }\n #optimole-app .hero.is-small .hero-body {\n padding-bottom: 1.5rem;\n padding-top: 1.5rem; }\n @media screen and (min-width: 769px), print {\n #optimole-app .hero.is-medium .hero-body {\n padding-bottom: 9rem;\n padding-top: 9rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .hero.is-large .hero-body {\n padding-bottom: 18rem;\n padding-top: 18rem; } }\n #optimole-app .hero.is-halfheight .hero-body, #optimole-app .hero.is-fullheight .hero-body {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .hero.is-halfheight .hero-body > .container, #optimole-app .hero.is-fullheight .hero-body > .container {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .hero.is-halfheight {\n min-height: 50vh; }\n #optimole-app .hero.is-fullheight {\n min-height: 100vh; }\n #optimole-app .hero-video {\n overflow: hidden; }\n #optimole-app .hero-video video {\n left: 50%;\n min-height: 100%;\n min-width: 100%;\n position: absolute;\n top: 50%;\n transform: translate3d(-50%, -50%, 0); }\n #optimole-app .hero-video.is-transparent {\n opacity: 0.3; }\n @media screen and (max-width: 768px) {\n #optimole-app .hero-video {\n display: none; } }\n #optimole-app .hero-buttons {\n margin-top: 1.5rem; }\n @media screen and (max-width: 768px) {\n #optimole-app .hero-buttons .button {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .hero-buttons .button:not(:last-child) {\n margin-bottom: 0.75rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .hero-buttons {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .hero-buttons .button:not(:last-child) {\n margin-right: 1.5rem; } }\n #optimole-app .hero-head,\n #optimole-app .hero-foot {\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .hero-body {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n padding: 3rem 1.5rem; }\n #optimole-app .section {\n padding: 3rem 1.5rem; }\n @media screen and (min-width: 1088px) {\n #optimole-app .section.is-medium {\n padding: 9rem 1.5rem; }\n #optimole-app .section.is-large {\n padding: 18rem 1.5rem; } }\n #optimole-app .footer {\n background-color: #fafafa;\n padding: 3rem 1.5rem 6rem; }\n #optimole-app .card {\n transition: all 750ms ease-in-out;\n border: 0;\n border-radius: .1875rem;\n box-shadow: 0 1px 15px 1px rgba(39, 39, 39, 0.1); }\n #optimole-app .logo {\n margin-bottom: 10px; }\n #optimole-app .logo img {\n max-width: 180px;\n margin: 0 auto; }\n #optimole-app .vue-js-switch {\n -ms-flex-item-align: center;\n -ms-grid-row-align: center;\n align-self: center; }\n #optimole-app .api-key-control {\n padding: 0 15px 0 0; }\n #optimole-app .api-key-field .button.is-danger {\n padding-left: 20px;\n padding-right: 20px; }\n #optimole-app .api-key-label, #optimole-app .label {\n -ms-flex-item-align: center;\n -ms-grid-row-align: center;\n align-self: center;\n margin: 0.5em 10px 0.5em 0;\n font-size: 1em; }\n #optimole-app .header {\n padding: 0 1.5rem 0; }\n #optimole-app .header.level {\n margin-bottom: 0; }\n #optimole-app .account img {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px; }\n #optimole-app .account .label {\n margin-bottom: 0; }\n #optimole-app .optimized-images table td, #optimole-app .optimized-images table th {\n vertical-align: middle; }\n\n.fade-enter-active, .fade-leave-active {\n transition: opacity .5s; }\n\n.fade-enter, .fade-leave-to {\n opacity: 0; }\n\n.media_page_optimole #wpbody-content > * {\n display: none !important; }\n\n.media_page_optimole #wpbody-content > #optimole-app {\n display: block !important; }\n\n#optimole-app img.optml-image {\n float: left;\n max-width: 100px;\n width: auto;\n margin: auto; }\n\n.optml-ratio-feedback .emoji {\n font-size: 1.5em; }\n\n.optml-ratio-feedback {\n float: right;\n padding-right: 20px; }\n\n.optml-image-heading {\n text-align: left; }\n\nth.optml-image-ratio-heading {\n text-align: right !important;\n font-size: 150%; }\n", ""]);
13485
+
13486
+ // exports
13487
+
13488
+
13489
+ /***/ }),
13490
+ /* 12 */
13491
+ /***/ (function(module, exports, __webpack_require__) {
13492
+
13493
+ "use strict";
13494
+
13495
+
13496
+ Object.defineProperty(exports, "__esModule", {
13497
+ value: true
13498
+ });
13499
+
13500
+ var _appHeader = __webpack_require__(13);
13501
+
13502
+ var _appHeader2 = _interopRequireDefault(_appHeader);
13503
+
13504
+ var _apiKeyForm = __webpack_require__(18);
13505
+
13506
+ var _apiKeyForm2 = _interopRequireDefault(_apiKeyForm);
13507
+
13508
+ var _cdnDetails = __webpack_require__(21);
13509
+
13510
+ var _cdnDetails2 = _interopRequireDefault(_cdnDetails);
13511
+
13512
+ var _options = __webpack_require__(26);
13513
+
13514
+ var _options2 = _interopRequireDefault(_options);
13515
+
13516
+ var _lastImages = __webpack_require__(31);
13517
+
13518
+ var _lastImages2 = _interopRequireDefault(_lastImages);
13519
+
13520
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13521
+
13522
+ exports.default = {
13523
+ components: { LastImages: _lastImages2.default }
13524
+ }; // <template>
13525
+ // <div class="card">
13526
+ // <app-header></app-header>
13527
+ // <div class="card-content">
13528
+ // <div class="content">
13529
+ // <p v-html="strings.account_needed"></p>
13530
+ // <api-key-form></api-key-form>
13531
+ // <transition name="fade" mode="out-in">
13532
+ // <div v-if="this.$store.state.connected">
13533
+ // <hr/>
13534
+ // <options></options>
13535
+ // <cdn-details v-if="this.$store.state.userData"></cdn-details>
13536
+ // <hr/>
13537
+ // <last-images :status="fetchStatus"></last-images>
13538
+ // </div>
13539
+ // </transition>
13540
+ // </div>
13541
+ // </div>
13542
+ // </div>
13543
+ // </template>
13544
+ //
13545
+ // <script>
13546
+
13547
+ module.exports = {
13548
+ name: 'app',
13549
+ data: function data() {
13550
+ return {
13551
+ strings: optimoleDashboardApp.strings,
13552
+ fetchStatus: false
13553
+ };
13554
+ },
13555
+
13556
+ components: {
13557
+ AppHeader: _appHeader2.default,
13558
+ ApiKeyForm: _apiKeyForm2.default,
13559
+ Options: _options2.default,
13560
+ CdnDetails: _cdnDetails2.default,
13561
+ LastImages: _lastImages2.default
13562
+ },
13563
+ mounted: function mounted() {
13564
+ var self = this;
13565
+ if (this.$store.state.connected) {
13566
+ this.$store.dispatch('retrieveOptimizedImages', { waitTime: 0, component: null });
13567
+ self.fetchStatus = true;
13568
+ }
13569
+ }
13570
+ };
13571
+ // </script>
13572
+ // <style lang="sass-loader">
13573
+ // @import '../../css/style.scss';
13574
+ //
13575
+ // </style>
13576
+
13577
+ /***/ }),
13578
+ /* 13 */
13579
+ /***/ (function(module, exports, __webpack_require__) {
13580
+
13581
+ var __vue_script__, __vue_template__
13582
+ __webpack_require__(14)
13583
+ __vue_script__ = __webpack_require__(16)
13584
+ __vue_template__ = __webpack_require__(17)
13585
+ module.exports = __vue_script__ || {}
13586
+ if (module.exports.__esModule) module.exports = module.exports.default
13587
+ if (__vue_template__) { (typeof module.exports === "function" ? module.exports.options : module.exports).template = __vue_template__ }
13588
+ if (false) {(function () { module.hot.accept()
13589
+ var hotAPI = require("vue-hot-reload-api")
13590
+ hotAPI.install(require("vue"), true)
13591
+ if (!hotAPI.compatible) return
13592
+ var id = "/Users/selul/Local Sites/wordpress/app/public/wp-content/plugins/optimole-wp/assets/vue/components/app-header.vue"
13593
+ if (!module.hot.data) {
13594
+ hotAPI.createRecord(id, module.exports)
13595
+ } else {
13596
+ hotAPI.update(id, module.exports, __vue_template__)
13597
+ }
13598
+ })()}
13599
+
13600
+ /***/ }),
13601
+ /* 14 */
13602
+ /***/ (function(module, exports, __webpack_require__) {
13603
+
13604
+ // style-loader: Adds some css to the DOM by adding a <style> tag
13605
+
13606
+ // load the styles
13607
+ var content = __webpack_require__(15);
13608
+ if(typeof content === 'string') content = [[module.i, content, '']];
13609
+ // add the styles to the DOM
13610
+ var update = __webpack_require__(1)(content, {});
13611
+ if(content.locals) module.exports = content.locals;
13612
+ // Hot Module Replacement
13613
+ if(false) {
13614
+ // When the styles change, update the <style> tags
13615
+ if(!content.locals) {
13616
+ module.hot.accept("!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/style-rewriter.js?id=_v-76eafe3c&file=app-header.vue&scoped=true!../../../node_modules/vue-loader/lib/selector.js?type=style&index=0!../../../node_modules/eslint-loader/index.js!../../../node_modules/eslint-loader/index.js!./app-header.vue", function() {
13617
+ var newContent = require("!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/style-rewriter.js?id=_v-76eafe3c&file=app-header.vue&scoped=true!../../../node_modules/vue-loader/lib/selector.js?type=style&index=0!../../../node_modules/eslint-loader/index.js!../../../node_modules/eslint-loader/index.js!./app-header.vue");
13618
+ if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
13619
+ update(newContent);
13620
+ });
13621
+ }
13622
+ // When the module is disposed, remove the <style> tags
13623
+ module.hot.dispose(function() { update(); });
13624
+ }
13625
+
13626
+ /***/ }),
13627
+ /* 15 */
13628
+ /***/ (function(module, exports, __webpack_require__) {
13629
+
13630
+ exports = module.exports = __webpack_require__(0)();
13631
+ // imports
13632
+
13633
+
13634
+ // module
13635
+ exports.push([module.i, "\n\t@media ( min-width: 769px ) {\n\t\t#optimole-app hr[_v-76eafe3c] {\n\t\t\tmargin: 0;\n\t\t}\n\t}\n", ""]);
13636
+
13637
+ // exports
13638
+
13639
+
13640
+ /***/ }),
13641
+ /* 16 */
13642
+ /***/ (function(module, exports, __webpack_require__) {
13643
+
13644
+ "use strict";
13645
+
13646
+
13647
+ Object.defineProperty(exports, "__esModule", {
13648
+ value: true
13649
+ });
13650
+ // <template>
13651
+ // <div>
13652
+ // <div class="header has-text-centered level">
13653
+ // <div class="level-left">
13654
+ // <a class="logo level-item" href="https://optimole.com" target="_blank">
13655
+ // <figure class="media">
13656
+ // <img :src="logo" :alt="strings.optimole + ' ' + strings.image_cdn">
13657
+ // </figure>
13658
+ // </a>
13659
+ // <h3 class="has-text-centered has-text-grey-dark is-size-4 level-item">
13660
+ // <span class="has-text-weight-semibold">
13661
+ // {{strings.image_cdn}}
13662
+ // </span>
13663
+ // </h3>
13664
+ // </div>
13665
+ // <div class="level-right">
13666
+ // <div class="tags has-addons level-item">
13667
+ // <span class="tag is-dark">{{strings.status}}</span>
13668
+ // <span v-if="connected" class="tag is-success">{{strings.connected}}</span>
13669
+ // <span v-else class="tag is-danger">{{strings.not_connected}}</span>
13670
+ // </div>
13671
+ // </div>
13672
+ // </div>
13673
+ // <hr/>
13674
+ // </div>
13675
+ // </template>
13676
+ //
13677
+ // <script>
13678
+ exports.default = {
13679
+ name: "app-header",
13680
+ data: function data() {
13681
+ return {
13682
+ logo: optimoleDashboardApp.assets_url + 'img/logo.png',
13683
+ strings: optimoleDashboardApp.strings
13684
+ };
13685
+ },
13686
+
13687
+ computed: {
13688
+ connected: function connected() {
13689
+ return this.$store.state.connected;
13690
+ }
13691
+ }
13692
+ // </script>
13693
+ //
13694
+ // <style scoped>
13695
+ // @media ( min-width: 769px ) {
13696
+ // #optimole-app hr {
13697
+ // margin: 0;
13698
+ // }
13699
+ // }
13700
+ // </style>
13701
+
13702
+ };
13703
+
13704
+ /***/ }),
13705
+ /* 17 */
13706
+ /***/ (function(module, exports) {
13707
+
13708
+ module.exports = "\n\t<div _v-76eafe3c=\"\">\n\t\t<div class=\"header has-text-centered level\" _v-76eafe3c=\"\">\n\t\t\t<div class=\"level-left\" _v-76eafe3c=\"\">\n\t\t\t\t<a class=\"logo level-item\" href=\"https://optimole.com\" target=\"_blank\" _v-76eafe3c=\"\">\n\t\t\t\t\t<figure class=\"media\" _v-76eafe3c=\"\">\n\t\t\t\t\t\t<img :src=\"logo\" :alt=\"strings.optimole + ' ' + strings.image_cdn\" _v-76eafe3c=\"\">\n\t\t\t\t\t</figure>\n\t\t\t\t</a>\n\t\t\t\t<h3 class=\"has-text-centered has-text-grey-dark is-size-4 level-item\" _v-76eafe3c=\"\">\n\t\t\t\t\t<span class=\"has-text-weight-semibold\" _v-76eafe3c=\"\">\n\t\t\t\t\t{{strings.image_cdn}}\n\t\t\t\t\t</span>\n\t\t\t\t</h3>\n\t\t\t</div>\n\t\t\t<div class=\"level-right\" _v-76eafe3c=\"\">\n\t\t\t\t<div class=\"tags has-addons level-item\" _v-76eafe3c=\"\">\n\t\t\t\t\t<span class=\"tag is-dark\" _v-76eafe3c=\"\">{{strings.status}}</span>\n\t\t\t\t\t<span v-if=\"connected\" class=\"tag is-success\" _v-76eafe3c=\"\">{{strings.connected}}</span>\n\t\t\t\t\t<span v-else=\"\" class=\"tag is-danger\" _v-76eafe3c=\"\">{{strings.not_connected}}</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<hr _v-76eafe3c=\"\">\n\t</div>\n";
13709
+
13710
+ /***/ }),
13711
+ /* 18 */
13712
+ /***/ (function(module, exports, __webpack_require__) {
13713
+
13714
+ var __vue_script__, __vue_template__
13715
+ __vue_script__ = __webpack_require__(19)
13716
+ __vue_template__ = __webpack_require__(20)
13717
+ module.exports = __vue_script__ || {}
13718
+ if (module.exports.__esModule) module.exports = module.exports.default
13719
+ if (__vue_template__) { (typeof module.exports === "function" ? module.exports.options : module.exports).template = __vue_template__ }
13720
+ if (false) {(function () { module.hot.accept()
13721
+ var hotAPI = require("vue-hot-reload-api")
13722
+ hotAPI.install(require("vue"), true)
13723
+ if (!hotAPI.compatible) return
13724
+ var id = "/Users/selul/Local Sites/wordpress/app/public/wp-content/plugins/optimole-wp/assets/vue/components/api-key-form.vue"
13725
+ if (!module.hot.data) {
13726
+ hotAPI.createRecord(id, module.exports)
13727
+ } else {
13728
+ hotAPI.update(id, module.exports, __vue_template__)
13729
+ }
13730
+ })()}
13731
+
13732
+ /***/ }),
13733
+ /* 19 */
13734
+ /***/ (function(module, exports, __webpack_require__) {
13735
+
13736
+ "use strict";
13737
+
13738
+
13739
+ Object.defineProperty(exports, "__esModule", {
13740
+ value: true
13741
+ });
13742
+ // <template>
13743
+ // <div>
13744
+ // <div class="field has-addons api-key-field">
13745
+ // <label v-if="isConnected"
13746
+ // class="label api-key-label has-text-grey-dark">{{strings.api_key_placeholder}}:</label>
13747
+ // <div class="control is-expanded api-key-control">
13748
+ // <input :type="isConnected ? 'password' : 'text'" :disabled="isConnected" name="api_key" class="input is-small"
13749
+ // :class="validKey ? '' : 'is-danger'" :placeholder="strings.api_key_placeholder"
13750
+ // v-model="apiKey">
13751
+ // </div>
13752
+ // <div class="control">
13753
+ // <button v-if="! isConnected" class="button button is-success is-small"
13754
+ // @click="connect" :class="{ 'is-loading' : this.$store.state.isConnecting }">
13755
+ // <span class="icon"><i class="dashicons dashicons-admin-plugins"></i></span>
13756
+ // <span>{{strings.connect_btn}}</span>
13757
+ // </button>
13758
+ // <button v-else class="button is-danger is-small" @click="disconnect"
13759
+ // :class="{ 'is-loading' : this.$store.state.isConnecting }">
13760
+ // <span class="icon"><i class="dashicons dashicons-dismiss"></i></span>
13761
+ // <span>{{strings.disconnect_btn}}</span>
13762
+ // </button>
13763
+ // </div>
13764
+ // </div>
13765
+ // <p v-if="! validKey" class="help is-danger">
13766
+ // {{strings.invalid_key}}
13767
+ // </p>
13768
+ // </div>
13769
+ // </template>
13770
+ //
13771
+ // <script>
13772
+ exports.default = {
13773
+ name: 'api-key-form',
13774
+ data: function data() {
13775
+ return {
13776
+ apiKey: this.$store.state.apiKey ? this.$store.state.apiKey : '',
13777
+ connected: this.$store.state.connected,
13778
+ strings: optimoleDashboardApp.strings,
13779
+ isLoading: false
13780
+ };
13781
+ },
13782
+
13783
+ computed: {
13784
+ validKey: function validKey() {
13785
+ return this.$store.state.apiKeyValidity;
13786
+ },
13787
+ isConnected: function isConnected() {
13788
+ return this.$store.state.connected;
13789
+ }
13790
+ },
13791
+ methods: {
13792
+ connect: function connect() {
13793
+ this.$store.dispatch('connectOptimole', {
13794
+ req: 'Connect to OptiMole',
13795
+ apiKey: this.apiKey
13796
+ });
13797
+ },
13798
+ disconnect: function disconnect() {
13799
+ this.apiKey = '';
13800
+ this.$store.dispatch('disconnectOptimole', {
13801
+ req: 'Disconnect from OptiMole'
13802
+ });
13803
+ }
13804
+ }
13805
+ // </script>
13806
+
13807
+ };
13808
+
13809
+ /***/ }),
13810
+ /* 20 */
13811
+ /***/ (function(module, exports) {
13812
+
13813
+ module.exports = "\n\t<div>\n\t\t<div class=\"field has-addons api-key-field\">\n\t\t\t<label v-if=\"isConnected\"\n\t\t\t\t\tclass=\"label api-key-label has-text-grey-dark\">{{strings.api_key_placeholder}}:</label>\n\t\t\t<div class=\"control is-expanded api-key-control\">\n\t\t\t\t<input :type=\"isConnected ? 'password' : 'text'\" :disabled=\"isConnected\" name=\"api_key\" class=\"input is-small\"\n\t\t\t\t\t\t:class=\"validKey ? '' : 'is-danger'\" :placeholder=\"strings.api_key_placeholder\"\n\t\t\t\t\t\tv-model=\"apiKey\">\n\t\t\t</div>\n\t\t\t<div class=\"control\">\n\t\t\t\t<button v-if=\"! isConnected\" class=\"button button is-success is-small\"\n\t\t\t\t\t\t@click=\"connect\" :class=\"{ 'is-loading' : this.$store.state.isConnecting }\">\n\t\t\t\t\t<span class=\"icon\"><i class=\"dashicons dashicons-admin-plugins\"></i></span>\n\t\t\t\t\t<span>{{strings.connect_btn}}</span>\n\t\t\t\t</button>\n\t\t\t\t<button v-else class=\"button is-danger is-small\" @click=\"disconnect\"\n\t\t\t\t\t\t:class=\"{ 'is-loading' : this.$store.state.isConnecting }\">\n\t\t\t\t\t<span class=\"icon\"><i class=\"dashicons dashicons-dismiss\"></i></span>\n\t\t\t\t\t<span>{{strings.disconnect_btn}}</span>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\t\t<p v-if=\"! validKey\" class=\"help is-danger\">\n\t\t\t{{strings.invalid_key}}\n\t\t</p>\n\t</div>\n";
13814
+
13815
+ /***/ }),
13816
+ /* 21 */
13817
+ /***/ (function(module, exports, __webpack_require__) {
13818
+
13819
+ var __vue_script__, __vue_template__
13820
+ __webpack_require__(22)
13821
+ __vue_script__ = __webpack_require__(24)
13822
+ __vue_template__ = __webpack_require__(25)
13823
+ module.exports = __vue_script__ || {}
13824
+ if (module.exports.__esModule) module.exports = module.exports.default
13825
+ if (__vue_template__) { (typeof module.exports === "function" ? module.exports.options : module.exports).template = __vue_template__ }
13826
+ if (false) {(function () { module.hot.accept()
13827
+ var hotAPI = require("vue-hot-reload-api")
13828
+ hotAPI.install(require("vue"), true)
13829
+ if (!hotAPI.compatible) return
13830
+ var id = "/Users/selul/Local Sites/wordpress/app/public/wp-content/plugins/optimole-wp/assets/vue/components/cdn-details.vue"
13831
+ if (!module.hot.data) {
13832
+ hotAPI.createRecord(id, module.exports)
13833
+ } else {
13834
+ hotAPI.update(id, module.exports, __vue_template__)
13835
+ }
13836
+ })()}
13837
+
13838
+ /***/ }),
13839
+ /* 22 */
13840
+ /***/ (function(module, exports, __webpack_require__) {
13841
+
13842
+ // style-loader: Adds some css to the DOM by adding a <style> tag
13843
+
13844
+ // load the styles
13845
+ var content = __webpack_require__(23);
13846
+ if(typeof content === 'string') content = [[module.i, content, '']];
13847
+ // add the styles to the DOM
13848
+ var update = __webpack_require__(1)(content, {});
13849
+ if(content.locals) module.exports = content.locals;
13850
+ // Hot Module Replacement
13851
+ if(false) {
13852
+ // When the styles change, update the <style> tags
13853
+ if(!content.locals) {
13854
+ module.hot.accept("!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/style-rewriter.js?id=_v-2cb4f9a2&file=cdn-details.vue&scoped=true!../../../node_modules/vue-loader/lib/selector.js?type=style&index=0!../../../node_modules/eslint-loader/index.js!../../../node_modules/eslint-loader/index.js!./cdn-details.vue", function() {
13855
+ var newContent = require("!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/style-rewriter.js?id=_v-2cb4f9a2&file=cdn-details.vue&scoped=true!../../../node_modules/vue-loader/lib/selector.js?type=style&index=0!../../../node_modules/eslint-loader/index.js!../../../node_modules/eslint-loader/index.js!./cdn-details.vue");
13856
+ if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
13857
+ update(newContent);
13858
+ });
13859
+ }
13860
+ // When the module is disposed, remove the <style> tags
13861
+ module.hot.dispose(function() { update(); });
13862
+ }
13863
+
13864
+ /***/ }),
13865
+ /* 23 */
13866
+ /***/ (function(module, exports, __webpack_require__) {
13867
+
13868
+ exports = module.exports = __webpack_require__(0)();
13869
+ // imports
13870
+
13871
+
13872
+ // module
13873
+ exports.push([module.i, "\n\t#optimole-app .label[_v-2cb4f9a2] {\n\t\tmargin-top: 0;\n\t}\n", ""]);
13874
+
13875
+ // exports
13876
+
13877
+
13878
+ /***/ }),
13879
+ /* 24 */
13880
+ /***/ (function(module, exports, __webpack_require__) {
13881
+
13882
+ "use strict";
13883
+
13884
+
13885
+ Object.defineProperty(exports, "__esModule", {
13886
+ value: true
13887
+ });
13888
+ // <template>
13889
+ // <div class="cdn-details">
13890
+ // <hr/>
13891
+ // <div class="account level has-text-centered">
13892
+ // <div class="level-left">
13893
+ // <span class="label level-item">{{strings.logged_in_as}}:</span>
13894
+ // <p class="details level-item tags has-addons">
13895
+ // <span class="tag is-light">{{userData.display_name}}</span>
13896
+ // <span class="tag is-paddingless"><img :src="userData.picture" class="image is-24x24 is-rounded" :alt="userData.display_name"></span>
13897
+ // </p>
13898
+ // </div>
13899
+ // <div class="level-right">
13900
+ // <span class="label level-item">{{strings.private_cdn_url}}:</span>
13901
+ // <p class="details level-item tag is-light">{{userData.cdn_key}}.i.optimole.com</p>
13902
+ // </div>
13903
+ // </div>
13904
+ // <hr/>
13905
+ // <div class="level stats">
13906
+ // <div class="level-left">
13907
+ // <div class="level-item">
13908
+ // <div class="tags has-addons">
13909
+ // <span class="tag is-info">{{strings.usage}}:</span>
13910
+ // <span class="tag">{{this.userData.usage_pretty}}</span>
13911
+ // </div>
13912
+ // </div>
13913
+ // </div>
13914
+ // <h4 class="level-item is-size-5 is-marginless has-text-grey">
13915
+ // {{computedPercentage()}}%
13916
+ // </h4>
13917
+ // <div class="level-right">
13918
+ // <div class="level-item">
13919
+ // <div class="tags has-addons">
13920
+ // <span class="tag is-info">{{strings.quota}}:</span>
13921
+ // <span class="tag">{{this.userData.quota_pretty}}</span>
13922
+ // </div>
13923
+ // </div>
13924
+ // </div>
13925
+ // </div>
13926
+ // <progress class="progress is-success" :value="this.userData.usage" :max="this.userData.quota">60%</progress>
13927
+ //
13928
+ // </div>
13929
+ // </template>
13930
+ //
13931
+ // <script>
13932
+ exports.default = {
13933
+ name: "cdn-details",
13934
+ data: function data() {
13935
+ return {
13936
+ userData: this.$store.state.userData,
13937
+ strings: optimoleDashboardApp.strings
13938
+ };
13939
+ },
13940
+
13941
+ methods: {
13942
+ computedPercentage: function computedPercentage() {
13943
+ return (this.userData.usage / this.userData.quota * 100).toFixed(2);
13944
+ }
13945
+ }
13946
+ // </script>
13947
+ //
13948
+ // <style scoped>
13949
+ // #optimole-app .label {
13950
+ // margin-top: 0;
13951
+ // }
13952
+ // </style>
13953
+
13954
+ };
13955
+
13956
+ /***/ }),
13957
+ /* 25 */
13958
+ /***/ (function(module, exports) {
13959
+
13960
+ module.exports = "\n\t<div class=\"cdn-details\" _v-2cb4f9a2=\"\">\n\t\t<hr _v-2cb4f9a2=\"\">\n\t\t<div class=\"account level has-text-centered\" _v-2cb4f9a2=\"\">\n\t\t\t<div class=\"level-left\" _v-2cb4f9a2=\"\">\n\t\t\t\t<span class=\"label level-item\" _v-2cb4f9a2=\"\">{{strings.logged_in_as}}:</span>\n\t\t\t\t<p class=\"details level-item tags has-addons\" _v-2cb4f9a2=\"\">\n\t\t\t\t\t<span class=\"tag is-light\" _v-2cb4f9a2=\"\">{{userData.display_name}}</span>\n\t\t\t\t\t<span class=\"tag is-paddingless\" _v-2cb4f9a2=\"\"><img :src=\"userData.picture\" class=\"image is-24x24 is-rounded\" :alt=\"userData.display_name\" _v-2cb4f9a2=\"\"></span>\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t\t<div class=\"level-right\" _v-2cb4f9a2=\"\">\n\t\t\t\t<span class=\"label level-item\" _v-2cb4f9a2=\"\">{{strings.private_cdn_url}}:</span>\n\t\t\t\t<p class=\"details level-item tag is-light\" _v-2cb4f9a2=\"\">{{userData.cdn_key}}.i.optimole.com</p>\n\t\t\t</div>\n\t\t</div>\n\t\t<hr _v-2cb4f9a2=\"\">\n\t\t<div class=\"level stats\" _v-2cb4f9a2=\"\">\n\t\t\t<div class=\"level-left\" _v-2cb4f9a2=\"\">\n\t\t\t\t<div class=\"level-item\" _v-2cb4f9a2=\"\">\n\t\t\t\t\t<div class=\"tags has-addons\" _v-2cb4f9a2=\"\">\n\t\t\t\t\t\t<span class=\"tag is-info\" _v-2cb4f9a2=\"\">{{strings.usage}}:</span>\n\t\t\t\t\t\t<span class=\"tag\" _v-2cb4f9a2=\"\">{{this.userData.usage_pretty}}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<h4 class=\"level-item is-size-5 is-marginless has-text-grey\" _v-2cb4f9a2=\"\">\n\t\t\t\t{{computedPercentage()}}%\n\t\t\t</h4>\n\t\t\t<div class=\"level-right\" _v-2cb4f9a2=\"\">\n\t\t\t\t<div class=\"level-item\" _v-2cb4f9a2=\"\">\n\t\t\t\t\t<div class=\"tags has-addons\" _v-2cb4f9a2=\"\">\n\t\t\t\t\t\t<span class=\"tag is-info\" _v-2cb4f9a2=\"\">{{strings.quota}}:</span>\n\t\t\t\t\t\t<span class=\"tag\" _v-2cb4f9a2=\"\">{{this.userData.quota_pretty}}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<progress class=\"progress is-success\" :value=\"this.userData.usage\" :max=\"this.userData.quota\" _v-2cb4f9a2=\"\">60%</progress>\n\n\t</div>\n";
13961
+
13962
+ /***/ }),
13963
+ /* 26 */
13964
+ /***/ (function(module, exports, __webpack_require__) {
13965
+
13966
+ var __vue_script__, __vue_template__
13967
+ __webpack_require__(27)
13968
+ __vue_script__ = __webpack_require__(29)
13969
+ __vue_template__ = __webpack_require__(30)
13970
+ module.exports = __vue_script__ || {}
13971
+ if (module.exports.__esModule) module.exports = module.exports.default
13972
+ if (__vue_template__) { (typeof module.exports === "function" ? module.exports.options : module.exports).template = __vue_template__ }
13973
+ if (false) {(function () { module.hot.accept()
13974
+ var hotAPI = require("vue-hot-reload-api")
13975
+ hotAPI.install(require("vue"), true)
13976
+ if (!hotAPI.compatible) return
13977
+ var id = "/Users/selul/Local Sites/wordpress/app/public/wp-content/plugins/optimole-wp/assets/vue/components/options.vue"
13978
+ if (!module.hot.data) {
13979
+ hotAPI.createRecord(id, module.exports)
13980
+ } else {
13981
+ hotAPI.update(id, module.exports, __vue_template__)
13982
+ }
13983
+ })()}
13984
+
13985
+ /***/ }),
13986
+ /* 27 */
13987
+ /***/ (function(module, exports, __webpack_require__) {
13988
+
13989
+ // style-loader: Adds some css to the DOM by adding a <style> tag
13990
+
13991
+ // load the styles
13992
+ var content = __webpack_require__(28);
13993
+ if(typeof content === 'string') content = [[module.i, content, '']];
13994
+ // add the styles to the DOM
13995
+ var update = __webpack_require__(1)(content, {});
13996
+ if(content.locals) module.exports = content.locals;
13997
+ // Hot Module Replacement
13998
+ if(false) {
13999
+ // When the styles change, update the <style> tags
14000
+ if(!content.locals) {
14001
+ module.hot.accept("!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/style-rewriter.js?id=_v-176a95ab&file=options.vue&scoped=true!../../../node_modules/vue-loader/lib/selector.js?type=style&index=0!../../../node_modules/eslint-loader/index.js!../../../node_modules/eslint-loader/index.js!./options.vue", function() {
14002
+ var newContent = require("!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/style-rewriter.js?id=_v-176a95ab&file=options.vue&scoped=true!../../../node_modules/vue-loader/lib/selector.js?type=style&index=0!../../../node_modules/eslint-loader/index.js!../../../node_modules/eslint-loader/index.js!./options.vue");
14003
+ if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
14004
+ update(newContent);
14005
+ });
14006
+ }
14007
+ // When the module is disposed, remove the <style> tags
14008
+ module.hot.dispose(function() { update(); });
14009
+ }
14010
+
14011
+ /***/ }),
14012
+ /* 28 */
14013
+ /***/ (function(module, exports, __webpack_require__) {
14014
+
14015
+ exports = module.exports = __webpack_require__(0)();
14016
+ // imports
14017
+
14018
+
14019
+ // module
14020
+ exports.push([module.i, "\n\t.saving--option[_v-176a95ab] {\n\t\topacity: .75;\n\t}\n\t\n\t.field[_v-176a95ab]:nth-child(even) {\n\t\t-ms-flex-pack: end;\n\t\t justify-content: flex-end;\n\t}\n", ""]);
14021
+
14022
+ // exports
14023
+
14024
+
14025
+ /***/ }),
14026
+ /* 29 */
14027
+ /***/ (function(module, exports, __webpack_require__) {
14028
+
14029
+ "use strict";
14030
+
14031
+
14032
+ Object.defineProperty(exports, "__esModule", {
14033
+ value: true
14034
+ });
14035
+ // <template>
14036
+ // <div class="field-body" :class="{ 'saving--option' : this.$store.state.loading }">
14037
+ // <div class="field is-horizontal">
14038
+ // <label class="label has-text-grey-dark">{{strings.enable_image_replace}}:</label>
14039
+ // <toggle-button @change="toggleOption('image_replacer')"
14040
+ // :value="imageReplacerStatus"
14041
+ // :disabled="this.$store.state.loading"
14042
+ // :labels="{checked: strings.enabled, unchecked: strings.disabled}"
14043
+ // :width="75"
14044
+ // color="#008ec2"></toggle-button>
14045
+ // </div>
14046
+ // <div class="field is-horizontal">
14047
+ // <label class="label has-text-grey-dark">{{strings.toggle_ab_item}}:</label>
14048
+ // <toggle-button @change="toggleOption('admin_bar_item')"
14049
+ // v-model="adminBarItemStatus"
14050
+ // :disabled="this.$store.state.loading"
14051
+ // :labels="{checked: strings.show, unchecked: strings.hide}"
14052
+ // :width="60"
14053
+ // color="#008ec2"></toggle-button>
14054
+ // </div>
14055
+ //
14056
+ // </div>
14057
+ //
14058
+ // </template>
14059
+ //
14060
+ // <script>
14061
+ exports.default = {
14062
+ name: "options",
14063
+ data: function data() {
14064
+ return {
14065
+ strings: optimoleDashboardApp.strings.options_strings,
14066
+ adminBarItem: optimoleDashboardApp.admin_bar_item,
14067
+ imageReplacer: optimoleDashboardApp.image_replacer
14068
+ };
14069
+ },
14070
+
14071
+ methods: {
14072
+ toggleOption: function toggleOption(optionKey) {
14073
+ this.$store.dispatch('toggleSetting', {
14074
+ req: 'Toggle ' + optionKey,
14075
+ option_key: optionKey,
14076
+ type: 'toggle'
14077
+ });
14078
+ }
14079
+ },
14080
+ computed: {
14081
+ adminBarItemStatus: {
14082
+ set: function set(value) {
14083
+ this.adminBarItem = value;
14084
+ if (value) {
14085
+ document.getElementById("wp-admin-bar-optml_image_quota").style.display = 'block';
14086
+ } else {
14087
+ document.getElementById("wp-admin-bar-optml_image_quota").style.display = 'none';
14088
+ }
14089
+ },
14090
+ get: function get() {
14091
+ return !(this.adminBarItem === 'disabled');
14092
+ }
14093
+ },
14094
+
14095
+ imageReplacerStatus: function imageReplacerStatus() {
14096
+ return !(this.imageReplacer === 'disabled');
14097
+ }
14098
+ }
14099
+ // </script>
14100
+ //
14101
+ // <style scoped>
14102
+ // .saving--option {
14103
+ // opacity: .75;
14104
+ // }
14105
+ //
14106
+ // .field:nth-child(even) {
14107
+ // justify-content: flex-end;
14108
+ // }
14109
+ // </style>
14110
+
14111
+ };
14112
+
14113
+ /***/ }),
14114
+ /* 30 */
14115
+ /***/ (function(module, exports) {
14116
+
14117
+ module.exports = "\n\t<div class=\"field-body\" :class=\"{ 'saving--option' : this.$store.state.loading }\" _v-176a95ab=\"\">\n\t\t<div class=\"field is-horizontal\" _v-176a95ab=\"\">\n\t\t\t<label class=\"label has-text-grey-dark\" _v-176a95ab=\"\">{{strings.enable_image_replace}}:</label>\n\t\t\t<toggle-button @change=\"toggleOption('image_replacer')\" :value=\"imageReplacerStatus\" :disabled=\"this.$store.state.loading\" :labels=\"{checked: strings.enabled, unchecked: strings.disabled}\" :width=\"75\" color=\"#008ec2\" _v-176a95ab=\"\"></toggle-button>\n\t\t</div>\n\t\t<div class=\"field is-horizontal\" _v-176a95ab=\"\">\n\t\t\t<label class=\"label has-text-grey-dark\" _v-176a95ab=\"\">{{strings.toggle_ab_item}}:</label>\n\t\t\t<toggle-button @change=\"toggleOption('admin_bar_item')\" v-model=\"adminBarItemStatus\" :disabled=\"this.$store.state.loading\" :labels=\"{checked: strings.show, unchecked: strings.hide}\" :width=\"60\" color=\"#008ec2\" _v-176a95ab=\"\"></toggle-button>\n\t\t</div>\n\t\n\t</div>\n\n";
14118
+
14119
+ /***/ }),
14120
+ /* 31 */
14121
+ /***/ (function(module, exports, __webpack_require__) {
14122
+
14123
+ var __vue_script__, __vue_template__
14124
+ __webpack_require__(32)
14125
+ __vue_script__ = __webpack_require__(34)
14126
+ __vue_template__ = __webpack_require__(35)
14127
+ module.exports = __vue_script__ || {}
14128
+ if (module.exports.__esModule) module.exports = module.exports.default
14129
+ if (__vue_template__) { (typeof module.exports === "function" ? module.exports.options : module.exports).template = __vue_template__ }
14130
+ if (false) {(function () { module.hot.accept()
14131
+ var hotAPI = require("vue-hot-reload-api")
14132
+ hotAPI.install(require("vue"), true)
14133
+ if (!hotAPI.compatible) return
14134
+ var id = "/Users/selul/Local Sites/wordpress/app/public/wp-content/plugins/optimole-wp/assets/vue/components/last-images.vue"
14135
+ if (!module.hot.data) {
14136
+ hotAPI.createRecord(id, module.exports)
14137
+ } else {
14138
+ hotAPI.update(id, module.exports, __vue_template__)
14139
+ }
14140
+ })()}
14141
+
14142
+ /***/ }),
14143
+ /* 32 */
14144
+ /***/ (function(module, exports, __webpack_require__) {
14145
+
14146
+ // style-loader: Adds some css to the DOM by adding a <style> tag
14147
+
14148
+ // load the styles
14149
+ var content = __webpack_require__(33);
14150
+ if(typeof content === 'string') content = [[module.i, content, '']];
14151
+ // add the styles to the DOM
14152
+ var update = __webpack_require__(1)(content, {});
14153
+ if(content.locals) module.exports = content.locals;
14154
+ // Hot Module Replacement
14155
+ if(false) {
14156
+ // When the styles change, update the <style> tags
14157
+ if(!content.locals) {
14158
+ module.hot.accept("!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/style-rewriter.js?id=_v-f0065cc8&file=last-images.vue&scoped=true!../../../node_modules/vue-loader/lib/selector.js?type=style&index=0!../../../node_modules/eslint-loader/index.js!../../../node_modules/eslint-loader/index.js!./last-images.vue", function() {
14159
+ var newContent = require("!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/style-rewriter.js?id=_v-f0065cc8&file=last-images.vue&scoped=true!../../../node_modules/vue-loader/lib/selector.js?type=style&index=0!../../../node_modules/eslint-loader/index.js!../../../node_modules/eslint-loader/index.js!./last-images.vue");
14160
+ if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
14161
+ update(newContent);
14162
+ });
14163
+ }
14164
+ // When the module is disposed, remove the <style> tags
14165
+ module.hot.dispose(function() { update(); });
14166
+ }
14167
+
14168
+ /***/ }),
14169
+ /* 33 */
14170
+ /***/ (function(module, exports, __webpack_require__) {
14171
+
14172
+ exports = module.exports = __webpack_require__(0)();
14173
+ // imports
14174
+
14175
+
14176
+ // module
14177
+ exports.push([module.i, "\n .loader[_v-f0065cc8] {\n margin: 0 auto;\n }\n\n", ""]);
14178
+
14179
+ // exports
14180
+
14181
+
14182
+ /***/ }),
14183
+ /* 34 */
14184
+ /***/ (function(module, exports, __webpack_require__) {
14185
+
14186
+ "use strict";
14187
+
14188
+
14189
+ Object.defineProperty(exports, "__esModule", {
14190
+ value: true
14191
+ });
14192
+ // <template>
14193
+ // <div>
14194
+ // <div class="optimized-images" v-if="imageData.length">
14195
+ // <h3 class="has-text-centered">{{strings.last}} {{strings.optimized_images}}</h3>
14196
+ // <table class="table is-striped is-hoverable is-fullwidth">
14197
+ // <thead>
14198
+ // <tr>
14199
+ // <th class="optml-image-heading">{{strings.image}}</th>
14200
+ // <th class="optml-image-ratio-heading">{{strings.compression}}</th>
14201
+ // </tr>
14202
+ // </thead>
14203
+ // <tbody>
14204
+ // <tr v-for="(item, index) in imageData">
14205
+ // <td><a :href="item.url" target="_blank"><img :src="item.url" class="optml-image"/></a></td>
14206
+ // <td><p
14207
+ // class="optml-ratio-feedback" v-html="compressionRate(item.ex_size_raw, item.new_size_raw)"></p>
14208
+ // </td>
14209
+ // </tr>
14210
+ // </tbody>
14211
+ // </table>
14212
+ // </div>
14213
+ // <div v-else class="loader"></div>
14214
+ // </div>
14215
+ // </template>
14216
+ //
14217
+ // <script>
14218
+ exports.default = {
14219
+ name: "last-images",
14220
+ data: function data() {
14221
+ return {
14222
+ loading: true,
14223
+ strings: optimoleDashboardApp.strings.latest_images
14224
+ };
14225
+ },
14226
+
14227
+ props: {
14228
+ status: status
14229
+ },
14230
+ mounted: function mounted() {
14231
+ this.$store.dispatch('retrieveOptimizedImages', { waitTime: 10000, component: this });
14232
+ },
14233
+
14234
+ computed: {
14235
+ imageData: function imageData() {
14236
+ return this.$store.state.optimizedImages !== null ? this.$store.state.optimizedImages : [];
14237
+ }
14238
+ },
14239
+ methods: {
14240
+ compressionRate: function compressionRate(oldSize, newSize) {
14241
+ var value = (parseFloat(oldSize / newSize * 100) - 100).toFixed(1);
14242
+ console.log(value);
14243
+ if (value < 1) {
14244
+ return this.strings.same_size;
14245
+ }
14246
+ if (value > 1 && value < 25) {
14247
+ return this.strings.small_optimization.replace('{ratio}', value.toString() + '%');
14248
+ }
14249
+ if (value > 25 && value < 100) {
14250
+ return this.strings.medium_optimization.replace('{ratio}', value.toString() + '%');
14251
+ }
14252
+ if (value > 100) {
14253
+ return this.strings.big_optimization.replace('{ratio}', (Math.floor(value / 10 + 10) / 10).toFixed(1).toString() + 'x');
14254
+ }
14255
+ }
14256
+ }
14257
+ // </script>
14258
+ //
14259
+ // <style scoped>
14260
+ // .loader {
14261
+ // margin: 0 auto;
14262
+ // }
14263
+ //
14264
+ // </style>
14265
+
14266
+ };
14267
+
14268
+ /***/ }),
14269
+ /* 35 */
14270
+ /***/ (function(module, exports) {
14271
+
14272
+ module.exports = "\n <div _v-f0065cc8=\"\">\n <div class=\"optimized-images\" v-if=\"imageData.length\" _v-f0065cc8=\"\">\n <h3 class=\"has-text-centered\" _v-f0065cc8=\"\">{{strings.last}} {{strings.optimized_images}}</h3>\n <table class=\"table is-striped is-hoverable is-fullwidth\" _v-f0065cc8=\"\">\n <thead _v-f0065cc8=\"\">\n <tr _v-f0065cc8=\"\">\n <th class=\"optml-image-heading\" _v-f0065cc8=\"\">{{strings.image}}</th>\n <th class=\"optml-image-ratio-heading\" _v-f0065cc8=\"\">{{strings.compression}}</th>\n </tr>\n </thead>\n <tbody _v-f0065cc8=\"\">\n <tr v-for=\"(item, index) in imageData\" _v-f0065cc8=\"\">\n <td _v-f0065cc8=\"\"><a :href=\"item.url\" target=\"_blank\" _v-f0065cc8=\"\"><img :src=\"item.url\" class=\"optml-image\" _v-f0065cc8=\"\"></a></td>\n <td _v-f0065cc8=\"\"><p class=\"optml-ratio-feedback\" v-html=\"compressionRate(item.ex_size_raw, item.new_size_raw)\" _v-f0065cc8=\"\"></p>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n <div v-else=\"\" class=\"loader\" _v-f0065cc8=\"\"></div>\n </div>\n";
14273
+
14274
+ /***/ }),
14275
+ /* 36 */
14276
+ /***/ (function(module, exports) {
14277
+
14278
+ module.exports = "\n\t<div class=\"card\">\n\t\t<app-header></app-header>\n\t\t<div class=\"card-content\">\n\t\t\t<div class=\"content\">\n\t\t\t\t<p v-html=\"strings.account_needed\"></p>\n\t\t\t\t<api-key-form></api-key-form>\n\t\t\t\t<transition name=\"fade\" mode=\"out-in\">\n\t\t\t\t\t<div v-if=\"this.$store.state.connected\">\n\t\t\t\t\t\t<hr/>\n\t\t\t\t\t\t<options></options>\n\t\t\t\t\t\t<cdn-details v-if=\"this.$store.state.userData\"></cdn-details>\n\t\t\t\t\t\t<hr/>\n\t\t\t\t\t\t<last-images :status=\"fetchStatus\"></last-images>\n\t\t\t\t\t</div>\n\t\t\t\t</transition>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n";
14279
+
14280
+ /***/ }),
14281
+ /* 37 */
14282
+ /***/ (function(module, exports, __webpack_require__) {
14283
+
14284
+ "use strict";
14285
+
14286
+
14287
+ Object.defineProperty(exports, "__esModule", {
14288
+ value: true
14289
+ });
14290
+
14291
+ var _vue = __webpack_require__(2);
14292
+
14293
+ var _vue2 = _interopRequireDefault(_vue);
14294
+
14295
+ var _vuex = __webpack_require__(38);
14296
+
14297
+ var _vuex2 = _interopRequireDefault(_vuex);
14298
+
14299
+ var _vueResource = __webpack_require__(5);
14300
+
14301
+ var _vueResource2 = _interopRequireDefault(_vueResource);
14302
+
14303
+ var _mutations = __webpack_require__(40);
14304
+
14305
+ var _mutations2 = _interopRequireDefault(_mutations);
14306
+
14307
+ var _actions = __webpack_require__(41);
14308
+
14309
+ var _actions2 = _interopRequireDefault(_actions);
14310
+
14311
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14312
+
14313
+ _vue2.default.use(_vuex2.default); /* global optimoleDashboardApp */
14314
+ /*jshint esversion: 6 */
14315
+
14316
+ _vue2.default.use(_vueResource2.default);
14317
+
14318
+ var store = new _vuex2.default.Store({
14319
+ state: {
14320
+ isConnecting: false,
14321
+ loading: false,
14322
+ connected: optimoleDashboardApp.connection_status ? true : false,
14323
+ apiKey: optimoleDashboardApp.api_key ? optimoleDashboardApp.api_key : '',
14324
+ apiKeyValidity: true,
14325
+ userData: optimoleDashboardApp.user_data ? optimoleDashboardApp.user_data : null,
14326
+ optimizedImages: []
14327
+ },
14328
+ mutations: _mutations2.default,
14329
+ actions: _actions2.default
14330
+ });
14331
+
14332
+ exports.default = store;
14333
+
14334
+ /***/ }),
14335
+ /* 38 */
14336
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
14337
+
14338
+ "use strict";
14339
+ Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
14340
+ /* WEBPACK VAR INJECTION */(function(process) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Store", function() { return Store; });
14341
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "install", function() { return install; });
14342
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapState", function() { return mapState; });
14343
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapMutations", function() { return mapMutations; });
14344
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapGetters", function() { return mapGetters; });
14345
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapActions", function() { return mapActions; });
14346
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createNamespacedHelpers", function() { return createNamespacedHelpers; });
14347
+ /**
14348
+ * vuex v2.5.0
14349
+ * (c) 2017 Evan You
14350
+ * @license MIT
14351
+ */
14352
+ var applyMixin = function (Vue) {
14353
+ var version = Number(Vue.version.split('.')[0]);
14354
+
14355
+ if (version >= 2) {
14356
+ Vue.mixin({ beforeCreate: vuexInit });
14357
+ } else {
14358
+ // override init and inject vuex init procedure
14359
+ // for 1.x backwards compatibility.
14360
+ var _init = Vue.prototype._init;
14361
+ Vue.prototype._init = function (options) {
14362
+ if ( options === void 0 ) options = {};
14363
+
14364
+ options.init = options.init
14365
+ ? [vuexInit].concat(options.init)
14366
+ : vuexInit;
14367
+ _init.call(this, options);
14368
+ };
14369
+ }
14370
+
14371
+ /**
14372
+ * Vuex init hook, injected into each instances init hooks list.
14373
+ */
14374
+
14375
+ function vuexInit () {
14376
+ var options = this.$options;
14377
+ // store injection
14378
+ if (options.store) {
14379
+ this.$store = typeof options.store === 'function'
14380
+ ? options.store()
14381
+ : options.store;
14382
+ } else if (options.parent && options.parent.$store) {
14383
+ this.$store = options.parent.$store;
14384
+ }
14385
+ }
14386
+ };
14387
+
14388
+ var devtoolHook =
14389
+ typeof window !== 'undefined' &&
14390
+ window.__VUE_DEVTOOLS_GLOBAL_HOOK__;
14391
+
14392
+ function devtoolPlugin (store) {
14393
+ if (!devtoolHook) { return }
14394
+
14395
+ store._devtoolHook = devtoolHook;
14396
+
14397
+ devtoolHook.emit('vuex:init', store);
14398
+
14399
+ devtoolHook.on('vuex:travel-to-state', function (targetState) {
14400
+ store.replaceState(targetState);
14401
+ });
14402
+
14403
+ store.subscribe(function (mutation, state) {
14404
+ devtoolHook.emit('vuex:mutation', mutation, state);
14405
+ });
14406
+ }
14407
+
14408
+ /**
14409
+ * Get the first item that pass the test
14410
+ * by second argument function
14411
+ *
14412
+ * @param {Array} list
14413
+ * @param {Function} f
14414
+ * @return {*}
14415
+ */
14416
+ /**
14417
+ * Deep copy the given object considering circular structure.
14418
+ * This function caches all nested objects and its copies.
14419
+ * If it detects circular structure, use cached copy to avoid infinite loop.
14420
+ *
14421
+ * @param {*} obj
14422
+ * @param {Array<Object>} cache
14423
+ * @return {*}
14424
+ */
14425
+
14426
+
14427
+ /**
14428
+ * forEach for object
14429
+ */
14430
+ function forEachValue (obj, fn) {
14431
+ Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });
14432
+ }
14433
+
14434
+ function isObject (obj) {
14435
+ return obj !== null && typeof obj === 'object'
14436
+ }
14437
+
14438
+ function isPromise (val) {
14439
+ return val && typeof val.then === 'function'
14440
+ }
14441
+
14442
+ function assert (condition, msg) {
14443
+ if (!condition) { throw new Error(("[vuex] " + msg)) }
14444
+ }
14445
+
14446
+ var Module = function Module (rawModule, runtime) {
14447
+ this.runtime = runtime;
14448
+ this._children = Object.create(null);
14449
+ this._rawModule = rawModule;
14450
+ var rawState = rawModule.state;
14451
+ this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};
14452
+ };
14453
+
14454
+ var prototypeAccessors$1 = { namespaced: { configurable: true } };
14455
+
14456
+ prototypeAccessors$1.namespaced.get = function () {
14457
+ return !!this._rawModule.namespaced
14458
+ };
14459
+
14460
+ Module.prototype.addChild = function addChild (key, module) {
14461
+ this._children[key] = module;
14462
+ };
14463
+
14464
+ Module.prototype.removeChild = function removeChild (key) {
14465
+ delete this._children[key];
14466
+ };
14467
+
14468
+ Module.prototype.getChild = function getChild (key) {
14469
+ return this._children[key]
14470
+ };
14471
+
14472
+ Module.prototype.update = function update (rawModule) {
14473
+ this._rawModule.namespaced = rawModule.namespaced;
14474
+ if (rawModule.actions) {
14475
+ this._rawModule.actions = rawModule.actions;
14476
+ }
14477
+ if (rawModule.mutations) {
14478
+ this._rawModule.mutations = rawModule.mutations;
14479
+ }
14480
+ if (rawModule.getters) {
14481
+ this._rawModule.getters = rawModule.getters;
14482
+ }
14483
+ };
14484
+
14485
+ Module.prototype.forEachChild = function forEachChild (fn) {
14486
+ forEachValue(this._children, fn);
14487
+ };
14488
+
14489
+ Module.prototype.forEachGetter = function forEachGetter (fn) {
14490
+ if (this._rawModule.getters) {
14491
+ forEachValue(this._rawModule.getters, fn);
14492
+ }
14493
+ };
14494
+
14495
+ Module.prototype.forEachAction = function forEachAction (fn) {
14496
+ if (this._rawModule.actions) {
14497
+ forEachValue(this._rawModule.actions, fn);
14498
+ }
14499
+ };
14500
+
14501
+ Module.prototype.forEachMutation = function forEachMutation (fn) {
14502
+ if (this._rawModule.mutations) {
14503
+ forEachValue(this._rawModule.mutations, fn);
14504
+ }
14505
+ };
14506
+
14507
+ Object.defineProperties( Module.prototype, prototypeAccessors$1 );
14508
+
14509
+ var ModuleCollection = function ModuleCollection (rawRootModule) {
14510
+ // register root module (Vuex.Store options)
14511
+ this.register([], rawRootModule, false);
14512
+ };
14513
+
14514
+ ModuleCollection.prototype.get = function get (path) {
14515
+ return path.reduce(function (module, key) {
14516
+ return module.getChild(key)
14517
+ }, this.root)
14518
+ };
14519
+
14520
+ ModuleCollection.prototype.getNamespace = function getNamespace (path) {
14521
+ var module = this.root;
14522
+ return path.reduce(function (namespace, key) {
14523
+ module = module.getChild(key);
14524
+ return namespace + (module.namespaced ? key + '/' : '')
14525
+ }, '')
14526
+ };
14527
+
14528
+ ModuleCollection.prototype.update = function update$1 (rawRootModule) {
14529
+ update([], this.root, rawRootModule);
14530
+ };
14531
+
14532
+ ModuleCollection.prototype.register = function register (path, rawModule, runtime) {
14533
+ var this$1 = this;
14534
+ if ( runtime === void 0 ) runtime = true;
14535
+
14536
+ if (process.env.NODE_ENV !== 'production') {
14537
+ assertRawModule(path, rawModule);
14538
+ }
14539
+
14540
+ var newModule = new Module(rawModule, runtime);
14541
+ if (path.length === 0) {
14542
+ this.root = newModule;
14543
+ } else {
14544
+ var parent = this.get(path.slice(0, -1));
14545
+ parent.addChild(path[path.length - 1], newModule);
14546
+ }
14547
+
14548
+ // register nested modules
14549
+ if (rawModule.modules) {
14550
+ forEachValue(rawModule.modules, function (rawChildModule, key) {
14551
+ this$1.register(path.concat(key), rawChildModule, runtime);
14552
+ });
14553
+ }
14554
+ };
14555
+
14556
+ ModuleCollection.prototype.unregister = function unregister (path) {
14557
+ var parent = this.get(path.slice(0, -1));
14558
+ var key = path[path.length - 1];
14559
+ if (!parent.getChild(key).runtime) { return }
14560
+
14561
+ parent.removeChild(key);
14562
+ };
14563
+
14564
+ function update (path, targetModule, newModule) {
14565
+ if (process.env.NODE_ENV !== 'production') {
14566
+ assertRawModule(path, newModule);
14567
+ }
14568
+
14569
+ // update target module
14570
+ targetModule.update(newModule);
14571
+
14572
+ // update nested modules
14573
+ if (newModule.modules) {
14574
+ for (var key in newModule.modules) {
14575
+ if (!targetModule.getChild(key)) {
14576
+ if (process.env.NODE_ENV !== 'production') {
14577
+ console.warn(
14578
+ "[vuex] trying to add a new module '" + key + "' on hot reloading, " +
14579
+ 'manual reload is needed'
14580
+ );
14581
+ }
14582
+ return
14583
+ }
14584
+ update(
14585
+ path.concat(key),
14586
+ targetModule.getChild(key),
14587
+ newModule.modules[key]
14588
+ );
14589
+ }
14590
+ }
14591
+ }
14592
+
14593
+ var functionAssert = {
14594
+ assert: function (value) { return typeof value === 'function'; },
14595
+ expected: 'function'
14596
+ };
14597
+
14598
+ var objectAssert = {
14599
+ assert: function (value) { return typeof value === 'function' ||
14600
+ (typeof value === 'object' && typeof value.handler === 'function'); },
14601
+ expected: 'function or object with "handler" function'
14602
+ };
14603
+
14604
+ var assertTypes = {
14605
+ getters: functionAssert,
14606
+ mutations: functionAssert,
14607
+ actions: objectAssert
14608
+ };
14609
+
14610
+ function assertRawModule (path, rawModule) {
14611
+ Object.keys(assertTypes).forEach(function (key) {
14612
+ if (!rawModule[key]) { return }
14613
+
14614
+ var assertOptions = assertTypes[key];
14615
+
14616
+ forEachValue(rawModule[key], function (value, type) {
14617
+ assert(
14618
+ assertOptions.assert(value),
14619
+ makeAssertionMessage(path, key, type, value, assertOptions.expected)
14620
+ );
14621
+ });
14622
+ });
14623
+ }
14624
+
14625
+ function makeAssertionMessage (path, key, type, value, expected) {
14626
+ var buf = key + " should be " + expected + " but \"" + key + "." + type + "\"";
14627
+ if (path.length > 0) {
14628
+ buf += " in module \"" + (path.join('.')) + "\"";
14629
+ }
14630
+ buf += " is " + (JSON.stringify(value)) + ".";
14631
+ return buf
14632
+ }
14633
+
14634
+ var Vue; // bind on install
14635
+
14636
+ var Store = function Store (options) {
14637
+ var this$1 = this;
14638
+ if ( options === void 0 ) options = {};
14639
+
14640
+ // Auto install if it is not done yet and `window` has `Vue`.
14641
+ // To allow users to avoid auto-installation in some cases,
14642
+ // this code should be placed here. See #731
14643
+ if (!Vue && typeof window !== 'undefined' && window.Vue) {
14644
+ install(window.Vue);
14645
+ }
14646
+
14647
+ if (process.env.NODE_ENV !== 'production') {
14648
+ assert(Vue, "must call Vue.use(Vuex) before creating a store instance.");
14649
+ assert(typeof Promise !== 'undefined', "vuex requires a Promise polyfill in this browser.");
14650
+ assert(this instanceof Store, "Store must be called with the new operator.");
14651
+ }
14652
+
14653
+ var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];
14654
+ var strict = options.strict; if ( strict === void 0 ) strict = false;
14655
+
14656
+ var state = options.state; if ( state === void 0 ) state = {};
14657
+ if (typeof state === 'function') {
14658
+ state = state() || {};
14659
+ }
14660
+
14661
+ // store internal state
14662
+ this._committing = false;
14663
+ this._actions = Object.create(null);
14664
+ this._actionSubscribers = [];
14665
+ this._mutations = Object.create(null);
14666
+ this._wrappedGetters = Object.create(null);
14667
+ this._modules = new ModuleCollection(options);
14668
+ this._modulesNamespaceMap = Object.create(null);
14669
+ this._subscribers = [];
14670
+ this._watcherVM = new Vue();
14671
+
14672
+ // bind commit and dispatch to self
14673
+ var store = this;
14674
+ var ref = this;
14675
+ var dispatch = ref.dispatch;
14676
+ var commit = ref.commit;
14677
+ this.dispatch = function boundDispatch (type, payload) {
14678
+ return dispatch.call(store, type, payload)
14679
+ };
14680
+ this.commit = function boundCommit (type, payload, options) {
14681
+ return commit.call(store, type, payload, options)
14682
+ };
14683
+
14684
+ // strict mode
14685
+ this.strict = strict;
14686
+
14687
+ // init root module.
14688
+ // this also recursively registers all sub-modules
14689
+ // and collects all module getters inside this._wrappedGetters
14690
+ installModule(this, state, [], this._modules.root);
14691
+
14692
+ // initialize the store vm, which is responsible for the reactivity
14693
+ // (also registers _wrappedGetters as computed properties)
14694
+ resetStoreVM(this, state);
14695
+
14696
+ // apply plugins
14697
+ plugins.forEach(function (plugin) { return plugin(this$1); });
14698
+
14699
+ if (Vue.config.devtools) {
14700
+ devtoolPlugin(this);
14701
+ }
14702
+ };
14703
+
14704
+ var prototypeAccessors = { state: { configurable: true } };
14705
+
14706
+ prototypeAccessors.state.get = function () {
14707
+ return this._vm._data.$$state
14708
+ };
14709
+
14710
+ prototypeAccessors.state.set = function (v) {
14711
+ if (process.env.NODE_ENV !== 'production') {
14712
+ assert(false, "Use store.replaceState() to explicit replace store state.");
14713
+ }
14714
+ };
14715
+
14716
+ Store.prototype.commit = function commit (_type, _payload, _options) {
14717
+ var this$1 = this;
14718
+
14719
+ // check object-style commit
14720
+ var ref = unifyObjectStyle(_type, _payload, _options);
14721
+ var type = ref.type;
14722
+ var payload = ref.payload;
14723
+ var options = ref.options;
14724
+
14725
+ var mutation = { type: type, payload: payload };
14726
+ var entry = this._mutations[type];
14727
+ if (!entry) {
14728
+ if (process.env.NODE_ENV !== 'production') {
14729
+ console.error(("[vuex] unknown mutation type: " + type));
14730
+ }
14731
+ return
14732
+ }
14733
+ this._withCommit(function () {
14734
+ entry.forEach(function commitIterator (handler) {
14735
+ handler(payload);
14736
+ });
14737
+ });
14738
+ this._subscribers.forEach(function (sub) { return sub(mutation, this$1.state); });
14739
+
14740
+ if (
14741
+ process.env.NODE_ENV !== 'production' &&
14742
+ options && options.silent
14743
+ ) {
14744
+ console.warn(
14745
+ "[vuex] mutation type: " + type + ". Silent option has been removed. " +
14746
+ 'Use the filter functionality in the vue-devtools'
14747
+ );
14748
+ }
14749
+ };
14750
+
14751
+ Store.prototype.dispatch = function dispatch (_type, _payload) {
14752
+ var this$1 = this;
14753
+
14754
+ // check object-style dispatch
14755
+ var ref = unifyObjectStyle(_type, _payload);
14756
+ var type = ref.type;
14757
+ var payload = ref.payload;
14758
+
14759
+ var action = { type: type, payload: payload };
14760
+ var entry = this._actions[type];
14761
+ if (!entry) {
14762
+ if (process.env.NODE_ENV !== 'production') {
14763
+ console.error(("[vuex] unknown action type: " + type));
14764
+ }
14765
+ return
14766
+ }
14767
+
14768
+ this._actionSubscribers.forEach(function (sub) { return sub(action, this$1.state); });
14769
+
14770
+ return entry.length > 1
14771
+ ? Promise.all(entry.map(function (handler) { return handler(payload); }))
14772
+ : entry[0](payload)
14773
+ };
14774
+
14775
+ Store.prototype.subscribe = function subscribe (fn) {
14776
+ return genericSubscribe(fn, this._subscribers)
14777
+ };
14778
+
14779
+ Store.prototype.subscribeAction = function subscribeAction (fn) {
14780
+ return genericSubscribe(fn, this._actionSubscribers)
14781
+ };
14782
+
14783
+ Store.prototype.watch = function watch (getter, cb, options) {
14784
+ var this$1 = this;
14785
+
14786
+ if (process.env.NODE_ENV !== 'production') {
14787
+ assert(typeof getter === 'function', "store.watch only accepts a function.");
14788
+ }
14789
+ return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)
14790
+ };
14791
+
14792
+ Store.prototype.replaceState = function replaceState (state) {
14793
+ var this$1 = this;
14794
+
14795
+ this._withCommit(function () {
14796
+ this$1._vm._data.$$state = state;
14797
+ });
14798
+ };
14799
+
14800
+ Store.prototype.registerModule = function registerModule (path, rawModule, options) {
14801
+ if ( options === void 0 ) options = {};
14802
+
14803
+ if (typeof path === 'string') { path = [path]; }
14804
+
14805
+ if (process.env.NODE_ENV !== 'production') {
14806
+ assert(Array.isArray(path), "module path must be a string or an Array.");
14807
+ assert(path.length > 0, 'cannot register the root module by using registerModule.');
14808
+ }
14809
+
14810
+ this._modules.register(path, rawModule);
14811
+ installModule(this, this.state, path, this._modules.get(path), options.preserveState);
14812
+ // reset store to update getters...
14813
+ resetStoreVM(this, this.state);
14814
+ };
14815
+
14816
+ Store.prototype.unregisterModule = function unregisterModule (path) {
14817
+ var this$1 = this;
14818
+
14819
+ if (typeof path === 'string') { path = [path]; }
14820
+
14821
+ if (process.env.NODE_ENV !== 'production') {
14822
+ assert(Array.isArray(path), "module path must be a string or an Array.");
14823
+ }
14824
+
14825
+ this._modules.unregister(path);
14826
+ this._withCommit(function () {
14827
+ var parentState = getNestedState(this$1.state, path.slice(0, -1));
14828
+ Vue.delete(parentState, path[path.length - 1]);
14829
+ });
14830
+ resetStore(this);
14831
+ };
14832
+
14833
+ Store.prototype.hotUpdate = function hotUpdate (newOptions) {
14834
+ this._modules.update(newOptions);
14835
+ resetStore(this, true);
14836
+ };
14837
+
14838
+ Store.prototype._withCommit = function _withCommit (fn) {
14839
+ var committing = this._committing;
14840
+ this._committing = true;
14841
+ fn();
14842
+ this._committing = committing;
14843
+ };
14844
+
14845
+ Object.defineProperties( Store.prototype, prototypeAccessors );
14846
+
14847
+ function genericSubscribe (fn, subs) {
14848
+ if (subs.indexOf(fn) < 0) {
14849
+ subs.push(fn);
14850
+ }
14851
+ return function () {
14852
+ var i = subs.indexOf(fn);
14853
+ if (i > -1) {
14854
+ subs.splice(i, 1);
14855
+ }
14856
+ }
14857
+ }
14858
+
14859
+ function resetStore (store, hot) {
14860
+ store._actions = Object.create(null);
14861
+ store._mutations = Object.create(null);
14862
+ store._wrappedGetters = Object.create(null);
14863
+ store._modulesNamespaceMap = Object.create(null);
14864
+ var state = store.state;
14865
+ // init all modules
14866
+ installModule(store, state, [], store._modules.root, true);
14867
+ // reset vm
14868
+ resetStoreVM(store, state, hot);
14869
+ }
14870
+
14871
+ function resetStoreVM (store, state, hot) {
14872
+ var oldVm = store._vm;
14873
+
14874
+ // bind store public getters
14875
+ store.getters = {};
14876
+ var wrappedGetters = store._wrappedGetters;
14877
+ var computed = {};
14878
+ forEachValue(wrappedGetters, function (fn, key) {
14879
+ // use computed to leverage its lazy-caching mechanism
14880
+ computed[key] = function () { return fn(store); };
14881
+ Object.defineProperty(store.getters, key, {
14882
+ get: function () { return store._vm[key]; },
14883
+ enumerable: true // for local getters
14884
+ });
14885
+ });
14886
+
14887
+ // use a Vue instance to store the state tree
14888
+ // suppress warnings just in case the user has added
14889
+ // some funky global mixins
14890
+ var silent = Vue.config.silent;
14891
+ Vue.config.silent = true;
14892
+ store._vm = new Vue({
14893
+ data: {
14894
+ $$state: state
14895
+ },
14896
+ computed: computed
14897
+ });
14898
+ Vue.config.silent = silent;
14899
+
14900
+ // enable strict mode for new vm
14901
+ if (store.strict) {
14902
+ enableStrictMode(store);
14903
+ }
14904
+
14905
+ if (oldVm) {
14906
+ if (hot) {
14907
+ // dispatch changes in all subscribed watchers
14908
+ // to force getter re-evaluation for hot reloading.
14909
+ store._withCommit(function () {
14910
+ oldVm._data.$$state = null;
14911
+ });
14912
+ }
14913
+ Vue.nextTick(function () { return oldVm.$destroy(); });
14914
+ }
14915
+ }
14916
+
14917
+ function installModule (store, rootState, path, module, hot) {
14918
+ var isRoot = !path.length;
14919
+ var namespace = store._modules.getNamespace(path);
14920
+
14921
+ // register in namespace map
14922
+ if (module.namespaced) {
14923
+ store._modulesNamespaceMap[namespace] = module;
14924
+ }
14925
+
14926
+ // set state
14927
+ if (!isRoot && !hot) {
14928
+ var parentState = getNestedState(rootState, path.slice(0, -1));
14929
+ var moduleName = path[path.length - 1];
14930
+ store._withCommit(function () {
14931
+ Vue.set(parentState, moduleName, module.state);
14932
+ });
14933
+ }
14934
+
14935
+ var local = module.context = makeLocalContext(store, namespace, path);
14936
+
14937
+ module.forEachMutation(function (mutation, key) {
14938
+ var namespacedType = namespace + key;
14939
+ registerMutation(store, namespacedType, mutation, local);
14940
+ });
14941
+
14942
+ module.forEachAction(function (action, key) {
14943
+ var type = action.root ? key : namespace + key;
14944
+ var handler = action.handler || action;
14945
+ registerAction(store, type, handler, local);
14946
+ });
14947
+
14948
+ module.forEachGetter(function (getter, key) {
14949
+ var namespacedType = namespace + key;
14950
+ registerGetter(store, namespacedType, getter, local);
14951
+ });
14952
+
14953
+ module.forEachChild(function (child, key) {
14954
+ installModule(store, rootState, path.concat(key), child, hot);
14955
+ });
14956
+ }
14957
+
14958
+ /**
14959
+ * make localized dispatch, commit, getters and state
14960
+ * if there is no namespace, just use root ones
14961
+ */
14962
+ function makeLocalContext (store, namespace, path) {
14963
+ var noNamespace = namespace === '';
14964
+
14965
+ var local = {
14966
+ dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {
14967
+ var args = unifyObjectStyle(_type, _payload, _options);
14968
+ var payload = args.payload;
14969
+ var options = args.options;
14970
+ var type = args.type;
14971
+
14972
+ if (!options || !options.root) {
14973
+ type = namespace + type;
14974
+ if (process.env.NODE_ENV !== 'production' && !store._actions[type]) {
14975
+ console.error(("[vuex] unknown local action type: " + (args.type) + ", global type: " + type));
14976
+ return
14977
+ }
14978
+ }
14979
+
14980
+ return store.dispatch(type, payload)
14981
+ },
14982
+
14983
+ commit: noNamespace ? store.commit : function (_type, _payload, _options) {
14984
+ var args = unifyObjectStyle(_type, _payload, _options);
14985
+ var payload = args.payload;
14986
+ var options = args.options;
14987
+ var type = args.type;
14988
+
14989
+ if (!options || !options.root) {
14990
+ type = namespace + type;
14991
+ if (process.env.NODE_ENV !== 'production' && !store._mutations[type]) {
14992
+ console.error(("[vuex] unknown local mutation type: " + (args.type) + ", global type: " + type));
14993
+ return
14994
+ }
14995
+ }
14996
+
14997
+ store.commit(type, payload, options);
14998
+ }
14999
+ };
15000
+
15001
+ // getters and state object must be gotten lazily
15002
+ // because they will be changed by vm update
15003
+ Object.defineProperties(local, {
15004
+ getters: {
15005
+ get: noNamespace
15006
+ ? function () { return store.getters; }
15007
+ : function () { return makeLocalGetters(store, namespace); }
15008
+ },
15009
+ state: {
15010
+ get: function () { return getNestedState(store.state, path); }
15011
+ }
15012
+ });
15013
+
15014
+ return local
15015
+ }
15016
+
15017
+ function makeLocalGetters (store, namespace) {
15018
+ var gettersProxy = {};
15019
+
15020
+ var splitPos = namespace.length;
15021
+ Object.keys(store.getters).forEach(function (type) {
15022
+ // skip if the target getter is not match this namespace
15023
+ if (type.slice(0, splitPos) !== namespace) { return }
15024
+
15025
+ // extract local getter type
15026
+ var localType = type.slice(splitPos);
15027
+
15028
+ // Add a port to the getters proxy.
15029
+ // Define as getter property because
15030
+ // we do not want to evaluate the getters in this time.
15031
+ Object.defineProperty(gettersProxy, localType, {
15032
+ get: function () { return store.getters[type]; },
15033
+ enumerable: true
15034
+ });
15035
+ });
15036
+
15037
+ return gettersProxy
15038
+ }
15039
+
15040
+ function registerMutation (store, type, handler, local) {
15041
+ var entry = store._mutations[type] || (store._mutations[type] = []);
15042
+ entry.push(function wrappedMutationHandler (payload) {
15043
+ handler.call(store, local.state, payload);
15044
+ });
15045
+ }
15046
+
15047
+ function registerAction (store, type, handler, local) {
15048
+ var entry = store._actions[type] || (store._actions[type] = []);
15049
+ entry.push(function wrappedActionHandler (payload, cb) {
15050
+ var res = handler.call(store, {
15051
+ dispatch: local.dispatch,
15052
+ commit: local.commit,
15053
+ getters: local.getters,
15054
+ state: local.state,
15055
+ rootGetters: store.getters,
15056
+ rootState: store.state
15057
+ }, payload, cb);
15058
+ if (!isPromise(res)) {
15059
+ res = Promise.resolve(res);
15060
+ }
15061
+ if (store._devtoolHook) {
15062
+ return res.catch(function (err) {
15063
+ store._devtoolHook.emit('vuex:error', err);
15064
+ throw err
15065
+ })
15066
+ } else {
15067
+ return res
15068
+ }
15069
+ });
15070
+ }
15071
+
15072
+ function registerGetter (store, type, rawGetter, local) {
15073
+ if (store._wrappedGetters[type]) {
15074
+ if (process.env.NODE_ENV !== 'production') {
15075
+ console.error(("[vuex] duplicate getter key: " + type));
15076
+ }
15077
+ return
15078
+ }
15079
+ store._wrappedGetters[type] = function wrappedGetter (store) {
15080
+ return rawGetter(
15081
+ local.state, // local state
15082
+ local.getters, // local getters
15083
+ store.state, // root state
15084
+ store.getters // root getters
15085
+ )
15086
+ };
15087
+ }
15088
+
15089
+ function enableStrictMode (store) {
15090
+ store._vm.$watch(function () { return this._data.$$state }, function () {
15091
+ if (process.env.NODE_ENV !== 'production') {
15092
+ assert(store._committing, "Do not mutate vuex store state outside mutation handlers.");
15093
+ }
15094
+ }, { deep: true, sync: true });
15095
+ }
15096
+
15097
+ function getNestedState (state, path) {
15098
+ return path.length
15099
+ ? path.reduce(function (state, key) { return state[key]; }, state)
15100
+ : state
15101
+ }
15102
+
15103
+ function unifyObjectStyle (type, payload, options) {
15104
+ if (isObject(type) && type.type) {
15105
+ options = payload;
15106
+ payload = type;
15107
+ type = type.type;
15108
+ }
15109
+
15110
+ if (process.env.NODE_ENV !== 'production') {
15111
+ assert(typeof type === 'string', ("Expects string as the type, but found " + (typeof type) + "."));
15112
+ }
15113
+
15114
+ return { type: type, payload: payload, options: options }
15115
+ }
15116
+
15117
+ function install (_Vue) {
15118
+ if (Vue && _Vue === Vue) {
15119
+ if (process.env.NODE_ENV !== 'production') {
15120
+ console.error(
15121
+ '[vuex] already installed. Vue.use(Vuex) should be called only once.'
15122
+ );
15123
+ }
15124
+ return
15125
+ }
15126
+ Vue = _Vue;
15127
+ applyMixin(Vue);
15128
+ }
15129
+
15130
+ var mapState = normalizeNamespace(function (namespace, states) {
15131
+ var res = {};
15132
+ normalizeMap(states).forEach(function (ref) {
15133
+ var key = ref.key;
15134
+ var val = ref.val;
15135
+
15136
+ res[key] = function mappedState () {
15137
+ var state = this.$store.state;
15138
+ var getters = this.$store.getters;
15139
+ if (namespace) {
15140
+ var module = getModuleByNamespace(this.$store, 'mapState', namespace);
15141
+ if (!module) {
15142
+ return
15143
+ }
15144
+ state = module.context.state;
15145
+ getters = module.context.getters;
15146
+ }
15147
+ return typeof val === 'function'
15148
+ ? val.call(this, state, getters)
15149
+ : state[val]
15150
+ };
15151
+ // mark vuex getter for devtools
15152
+ res[key].vuex = true;
15153
+ });
15154
+ return res
15155
+ });
15156
+
15157
+ var mapMutations = normalizeNamespace(function (namespace, mutations) {
15158
+ var res = {};
15159
+ normalizeMap(mutations).forEach(function (ref) {
15160
+ var key = ref.key;
15161
+ var val = ref.val;
15162
+
15163
+ res[key] = function mappedMutation () {
15164
+ var args = [], len = arguments.length;
15165
+ while ( len-- ) args[ len ] = arguments[ len ];
15166
+
15167
+ var commit = this.$store.commit;
15168
+ if (namespace) {
15169
+ var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);
15170
+ if (!module) {
15171
+ return
15172
+ }
15173
+ commit = module.context.commit;
15174
+ }
15175
+ return typeof val === 'function'
15176
+ ? val.apply(this, [commit].concat(args))
15177
+ : commit.apply(this.$store, [val].concat(args))
15178
+ };
15179
+ });
15180
+ return res
15181
+ });
15182
+
15183
+ var mapGetters = normalizeNamespace(function (namespace, getters) {
15184
+ var res = {};
15185
+ normalizeMap(getters).forEach(function (ref) {
15186
+ var key = ref.key;
15187
+ var val = ref.val;
15188
+
15189
+ val = namespace + val;
15190
+ res[key] = function mappedGetter () {
15191
+ if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {
15192
+ return
15193
+ }
15194
+ if (process.env.NODE_ENV !== 'production' && !(val in this.$store.getters)) {
15195
+ console.error(("[vuex] unknown getter: " + val));
15196
+ return
15197
+ }
15198
+ return this.$store.getters[val]
15199
+ };
15200
+ // mark vuex getter for devtools
15201
+ res[key].vuex = true;
15202
+ });
15203
+ return res
15204
+ });
15205
+
15206
+ var mapActions = normalizeNamespace(function (namespace, actions) {
15207
+ var res = {};
15208
+ normalizeMap(actions).forEach(function (ref) {
15209
+ var key = ref.key;
15210
+ var val = ref.val;
15211
+
15212
+ res[key] = function mappedAction () {
15213
+ var args = [], len = arguments.length;
15214
+ while ( len-- ) args[ len ] = arguments[ len ];
15215
+
15216
+ var dispatch = this.$store.dispatch;
15217
+ if (namespace) {
15218
+ var module = getModuleByNamespace(this.$store, 'mapActions', namespace);
15219
+ if (!module) {
15220
+ return
15221
+ }
15222
+ dispatch = module.context.dispatch;
15223
+ }
15224
+ return typeof val === 'function'
15225
+ ? val.apply(this, [dispatch].concat(args))
15226
+ : dispatch.apply(this.$store, [val].concat(args))
15227
+ };
15228
+ });
15229
+ return res
15230
+ });
15231
+
15232
+ var createNamespacedHelpers = function (namespace) { return ({
15233
+ mapState: mapState.bind(null, namespace),
15234
+ mapGetters: mapGetters.bind(null, namespace),
15235
+ mapMutations: mapMutations.bind(null, namespace),
15236
+ mapActions: mapActions.bind(null, namespace)
15237
+ }); };
15238
+
15239
+ function normalizeMap (map) {
15240
+ return Array.isArray(map)
15241
+ ? map.map(function (key) { return ({ key: key, val: key }); })
15242
+ : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })
15243
+ }
15244
+
15245
+ function normalizeNamespace (fn) {
15246
+ return function (namespace, map) {
15247
+ if (typeof namespace !== 'string') {
15248
+ map = namespace;
15249
+ namespace = '';
15250
+ } else if (namespace.charAt(namespace.length - 1) !== '/') {
15251
+ namespace += '/';
15252
+ }
15253
+ return fn(namespace, map)
15254
+ }
15255
+ }
15256
+
15257
+ function getModuleByNamespace (store, helper, namespace) {
15258
+ var module = store._modulesNamespaceMap[namespace];
15259
+ if (process.env.NODE_ENV !== 'production' && !module) {
15260
+ console.error(("[vuex] module namespace not found in " + helper + "(): " + namespace));
15261
+ }
15262
+ return module
15263
+ }
15264
+
15265
+ var index_esm = {
15266
+ Store: Store,
15267
+ install: install,
15268
+ version: '2.5.0',
15269
+ mapState: mapState,
15270
+ mapMutations: mapMutations,
15271
+ mapGetters: mapGetters,
15272
+ mapActions: mapActions,
15273
+ createNamespacedHelpers: createNamespacedHelpers
15274
+ };
15275
+
15276
+
15277
+ /* harmony default export */ __webpack_exports__["default"] = (index_esm);
15278
+
15279
+ /* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))
15280
+
15281
+ /***/ }),
15282
+ /* 39 */
15283
+ /***/ (function(module, exports) {
15284
+
15285
+ /* (ignored) */
15286
+
15287
+ /***/ }),
15288
+ /* 40 */
15289
+ /***/ (function(module, exports, __webpack_require__) {
15290
+
15291
+ "use strict";
15292
+
15293
+
15294
+ Object.defineProperty(exports, "__esModule", {
15295
+ value: true
15296
+ });
15297
+ /* jshint esversion: 6 */
15298
+ var toggleLoading = function toggleLoading(state, data) {
15299
+ state.loading = data;
15300
+ };
15301
+ var toggleConnecting = function toggleConnecting(state, data) {
15302
+ state.isConnecting = data;
15303
+ };
15304
+ var toggleKeyValidity = function toggleKeyValidity(state, data) {
15305
+ state.apiKeyValidity = data;
15306
+ };
15307
+ var toggleConnectedToOptml = function toggleConnectedToOptml(state, data) {
15308
+ state.connected = data;
15309
+ };
15310
+ var updateUserData = function updateUserData(state, data) {
15311
+ state.userData = data;
15312
+ };
15313
+ var updateOptimizedImages = function updateOptimizedImages(state, data) {
15314
+ state.optimizedImages = data.body.data;
15315
+ };
15316
+
15317
+ exports.default = {
15318
+ toggleLoading: toggleLoading,
15319
+ toggleConnecting: toggleConnecting,
15320
+ toggleKeyValidity: toggleKeyValidity,
15321
+ toggleConnectedToOptml: toggleConnectedToOptml,
15322
+ updateUserData: updateUserData,
15323
+ updateOptimizedImages: updateOptimizedImages
15324
+ };
15325
+
15326
+ /***/ }),
15327
+ /* 41 */
15328
+ /***/ (function(module, exports, __webpack_require__) {
15329
+
15330
+ "use strict";
15331
+
15332
+
15333
+ Object.defineProperty(exports, "__esModule", {
15334
+ value: true
15335
+ });
15336
+
15337
+ var _vue = __webpack_require__(2);
15338
+
15339
+ var _vue2 = _interopRequireDefault(_vue);
15340
+
15341
+ var _vueResource = __webpack_require__(5);
15342
+
15343
+ var _vueResource2 = _interopRequireDefault(_vueResource);
15344
+
15345
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15346
+
15347
+ /* jshint esversion: 6 */
15348
+ /* global optimoleDashboardApp */
15349
+ _vue2.default.use(_vueResource2.default);
15350
+
15351
+ var connectOptimole = function connectOptimole(_ref, data) {
15352
+ var commit = _ref.commit,
15353
+ state = _ref.state;
15354
+
15355
+ commit('toggleConnecting', true);
15356
+ _vue2.default.http({
15357
+ url: optimoleDashboardApp.root + '/connect',
15358
+ method: 'POST',
15359
+ headers: { 'X-WP-Nonce': optimoleDashboardApp.nonce },
15360
+ params: { 'req': data.req },
15361
+ body: {
15362
+ 'api_key': data.apiKey
15363
+ },
15364
+ responseType: 'json'
15365
+ }).then(function (response) {
15366
+ commit('toggleConnecting', false);
15367
+ if (response.body.code === 'success') {
15368
+ commit('toggleKeyValidity', true);
15369
+ commit('toggleConnectedToOptml', true);
15370
+ commit('updateUserData', response.body.data);
15371
+ console.log('%c OptiMole API connection successful.', 'color: #59B278');
15372
+ pingHomepage();
15373
+ } else {
15374
+ commit('toggleKeyValidity', false);
15375
+ console.log('%c Invalid API Key.', 'color: #E7602A');
15376
+ }
15377
+ });
15378
+ };
15379
+
15380
+ var pingHomepage = function pingHomepage() {
15381
+ _vue2.default.http({
15382
+ url: optimoleDashboardApp.home_url,
15383
+ method: 'GET',
15384
+ headers: { 'X-WP-Nonce': optimoleDashboardApp.nonce },
15385
+ params: { 'req': 'Ping Homepage' },
15386
+ responseType: 'json'
15387
+ });
15388
+ };
15389
+
15390
+ var disconnectOptimole = function disconnectOptimole(_ref2, data) {
15391
+ var commit = _ref2.commit,
15392
+ state = _ref2.state;
15393
+
15394
+ commit('toggleLoading', true, 'loading');
15395
+ _vue2.default.http({
15396
+ url: optimoleDashboardApp.root + '/disconnect',
15397
+ method: 'GET',
15398
+ headers: { 'X-WP-Nonce': optimoleDashboardApp.nonce },
15399
+ params: { 'req': data.req },
15400
+ responseType: 'json'
15401
+ }).then(function (response) {
15402
+ commit('updateUserData', null);
15403
+ commit('toggleLoading', false);
15404
+ if (response.ok) {
15405
+ commit('toggleConnectedToOptml', false);
15406
+ console.log('%c Disconnected from OptiMole API.', 'color: #59B278');
15407
+ } else {
15408
+ console.error(response);
15409
+ }
15410
+ });
15411
+ };
15412
+
15413
+ var toggleSetting = function toggleSetting(_ref3, data) {
15414
+ var commit = _ref3.commit,
15415
+ state = _ref3.state;
15416
+
15417
+ commit('toggleLoading', true, 'loading');
15418
+ _vue2.default.http({
15419
+ url: optimoleDashboardApp.root + '/update_option',
15420
+ method: 'POST',
15421
+ headers: { 'X-WP-Nonce': optimoleDashboardApp.nonce },
15422
+ params: {
15423
+ 'req': data.req,
15424
+ 'option_key': data.option_key,
15425
+ 'type': data.type ? data.type : ''
15426
+ },
15427
+ responseType: 'json'
15428
+ }).then(function (response) {
15429
+ commit('toggleLoading', false);
15430
+ if (response.ok) {
15431
+ console.log('%c ' + data.option_key + ' Toggled.', 'color: #59B278');
15432
+ } else {
15433
+ console.error(response);
15434
+ }
15435
+ });
15436
+ };
15437
+
15438
+ var retrieveOptimizedImages = function retrieveOptimizedImages(_ref4, data) {
15439
+ var commit = _ref4.commit,
15440
+ state = _ref4.state;
15441
+
15442
+ var self = this;
15443
+ setTimeout(function () {
15444
+ if (self.state.optimizedImages.length) {
15445
+ console.log('%c Images already exsist.', 'color: #59B278');
15446
+ return false;
15447
+ }
15448
+ _vue2.default.http({
15449
+ url: optimoleDashboardApp.root + '/poll_optimized_images',
15450
+ method: 'GET',
15451
+ headers: { 'X-WP-Nonce': optimoleDashboardApp.nonce },
15452
+ params: { 'req': 'Get Optimized Images' },
15453
+ responseType: 'json',
15454
+ timeout: 10000
15455
+ }).then(function (response) {
15456
+ if (response.body.code === 'success') {
15457
+ commit('updateOptimizedImages', response);
15458
+ if (data.component !== null) {
15459
+ data.component.loading = false;
15460
+ }
15461
+ console.log('%c Images Fetched.', 'color: #59B278');
15462
+ } else {
15463
+ console.log('%c No images available.', 'color: #E7602A');
15464
+ }
15465
+ });
15466
+ }, data.waitTime);
15467
+ };
15468
+
15469
+ exports.default = {
15470
+ connectOptimole: connectOptimole,
15471
+ disconnectOptimole: disconnectOptimole,
15472
+ toggleSetting: toggleSetting,
15473
+ retrieveOptimizedImages: retrieveOptimizedImages
15474
+ };
15475
+
15476
+ /***/ }),
15477
+ /* 42 */
15478
+ /***/ (function(module, exports, __webpack_require__) {
15479
+
15480
+ (function webpackUniversalModuleDefinition(root, factory) {
15481
+ if(true)
15482
+ module.exports = factory(__webpack_require__(2));
15483
+ else if(typeof define === 'function' && define.amd)
15484
+ define(["vue"], factory);
15485
+ else if(typeof exports === 'object')
15486
+ exports["vue-js-toggle-button"] = factory(require("vue"));
15487
+ else
15488
+ root["vue-js-toggle-button"] = factory(root["vue"]);
15489
+ })(this, function(__WEBPACK_EXTERNAL_MODULE_1__) {
15490
+ return /******/ (function(modules) { // webpackBootstrap
15491
+ /******/ // The module cache
15492
+ /******/ var installedModules = {};
15493
+ /******/
15494
+ /******/ // The require function
15495
+ /******/ function __webpack_require__(moduleId) {
15496
+ /******/
15497
+ /******/ // Check if module is in cache
15498
+ /******/ if(installedModules[moduleId]) {
15499
+ /******/ return installedModules[moduleId].exports;
15500
+ /******/ }
15501
+ /******/ // Create a new module (and put it into the cache)
15502
+ /******/ var module = installedModules[moduleId] = {
15503
+ /******/ i: moduleId,
15504
+ /******/ l: false,
15505
+ /******/ exports: {}
15506
+ /******/ };
15507
+ /******/
15508
+ /******/ // Execute the module function
15509
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
15510
+ /******/
15511
+ /******/ // Flag the module as loaded
15512
+ /******/ module.l = true;
15513
+ /******/
15514
+ /******/ // Return the exports of the module
15515
+ /******/ return module.exports;
15516
+ /******/ }
15517
+ /******/
15518
+ /******/
15519
+ /******/ // expose the modules object (__webpack_modules__)
15520
+ /******/ __webpack_require__.m = modules;
15521
+ /******/
15522
+ /******/ // expose the module cache
15523
+ /******/ __webpack_require__.c = installedModules;
15524
+ /******/
15525
+ /******/ // identity function for calling harmony imports with the correct context
15526
+ /******/ __webpack_require__.i = function(value) { return value; };
15527
+ /******/
15528
+ /******/ // define getter function for harmony exports
15529
+ /******/ __webpack_require__.d = function(exports, name, getter) {
15530
+ /******/ if(!__webpack_require__.o(exports, name)) {
15531
+ /******/ Object.defineProperty(exports, name, {
15532
+ /******/ configurable: false,
15533
+ /******/ enumerable: true,
15534
+ /******/ get: getter
15535
+ /******/ });
15536
+ /******/ }
15537
+ /******/ };
15538
+ /******/
15539
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
15540
+ /******/ __webpack_require__.n = function(module) {
15541
+ /******/ var getter = module && module.__esModule ?
15542
+ /******/ function getDefault() { return module['default']; } :
15543
+ /******/ function getModuleExports() { return module; };
15544
+ /******/ __webpack_require__.d(getter, 'a', getter);
15545
+ /******/ return getter;
15546
+ /******/ };
15547
+ /******/
15548
+ /******/ // Object.prototype.hasOwnProperty.call
15549
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
15550
+ /******/
15551
+ /******/ // __webpack_public_path__
15552
+ /******/ __webpack_require__.p = "/dist/";
15553
+ /******/
15554
+ /******/ // Load entry module and return exports
15555
+ /******/ return __webpack_require__(__webpack_require__.s = 3);
15556
+ /******/ })
15557
+ /************************************************************************/
15558
+ /******/ ([
15559
+ /* 0 */
15560
+ /***/ (function(module, exports, __webpack_require__) {
15561
+
15562
+
15563
+ /* styles */
15564
+ __webpack_require__(8)
15565
+
15566
+ var Component = __webpack_require__(6)(
15567
+ /* script */
15568
+ __webpack_require__(2),
15569
+ /* template */
15570
+ __webpack_require__(7),
15571
+ /* scopeId */
15572
+ "data-v-25adc6c0",
15573
+ /* cssModules */
15574
+ null
15575
+ )
15576
+
15577
+ module.exports = Component.exports
15578
+
15579
+
15580
+ /***/ }),
15581
+ /* 1 */
15582
+ /***/ (function(module, exports) {
15583
+
15584
+ module.exports = __WEBPACK_EXTERNAL_MODULE_1__;
15585
+
15586
+ /***/ }),
15587
+ /* 2 */
15588
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
15589
+
15590
+ "use strict";
15591
+ Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
15592
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
15593
+
15594
+ //
15595
+ //
15596
+ //
15597
+ //
15598
+ //
15599
+ //
15600
+ //
15601
+ //
15602
+ //
15603
+ //
15604
+ //
15605
+ //
15606
+ //
15607
+ //
15608
+ //
15609
+ //
15610
+ //
15611
+ //
15612
+ //
15613
+ //
15614
+ //
15615
+ //
15616
+ //
15617
+ //
15618
+ //
15619
+ //
15620
+
15621
+ var constants = {
15622
+ colorChecked: '#75C791',
15623
+ colorUnchecked: '#bfcbd9',
15624
+ cssColors: false,
15625
+ labelChecked: 'on',
15626
+ labelUnchecked: 'off',
15627
+ width: 50,
15628
+ height: 22,
15629
+ margin: 3,
15630
+ switchColor: '#fff'
15631
+ };
15632
+
15633
+ var contains = function contains(object, title) {
15634
+ return (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && object.hasOwnProperty(title);
15635
+ };
15636
+
15637
+ var px = function px(v) {
15638
+ return v + 'px';
15639
+ };
15640
+
15641
+ /* harmony default export */ __webpack_exports__["default"] = ({
15642
+ name: 'ToggleButton',
15643
+ props: {
15644
+ value: {
15645
+ type: Boolean,
15646
+ default: false
15647
+ },
15648
+ disabled: {
15649
+ type: Boolean,
15650
+ default: false
15651
+ },
15652
+ name: {
15653
+ type: String
15654
+ },
15655
+ sync: {
15656
+ type: Boolean,
15657
+ default: false
15658
+ },
15659
+ speed: {
15660
+ type: Number,
15661
+ default: 300
15662
+ },
15663
+ color: {
15664
+ type: [String, Object],
15665
+ validator: function validator(value) {
15666
+ return (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' ? value.checked || value.unchecked : typeof value === 'string';
15667
+ }
15668
+ },
15669
+ switchColor: {
15670
+ type: [String, Object],
15671
+ validator: function validator(value) {
15672
+ return (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' ? value.checked || value.unchecked : typeof value === 'string';
15673
+ }
15674
+ },
15675
+ cssColors: {
15676
+ type: Boolean,
15677
+ default: false
15678
+ },
15679
+ labels: {
15680
+ type: [Boolean, Object],
15681
+ default: false,
15682
+ validator: function validator(value) {
15683
+ return (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' ? value.checked || value.unchecked : typeof value === 'boolean';
15684
+ }
15685
+ },
15686
+ height: {
15687
+ type: Number,
15688
+ default: constants.height
15689
+ },
15690
+ width: {
15691
+ type: Number,
15692
+ default: constants.width
15693
+ }
15694
+ },
15695
+ computed: {
15696
+ className: function className() {
15697
+ var toggled = this.toggled,
15698
+ disabled = this.disabled;
15699
+
15700
+
15701
+ return ['vue-js-switch', { toggled: toggled, disabled: disabled }];
15702
+ },
15703
+ ariaChecked: function ariaChecked() {
15704
+ return this.toggled.toString();
15705
+ },
15706
+ coreStyle: function coreStyle() {
15707
+ return {
15708
+ width: px(this.width),
15709
+ height: px(this.height),
15710
+ backgroundColor: this.cssColors ? null : this.disabled ? this.colorDisabled : this.colorCurrent,
15711
+ borderRadius: px(Math.round(this.height / 2))
15712
+ };
15713
+ },
15714
+ buttonRadius: function buttonRadius() {
15715
+ return this.height - constants.margin * 2;
15716
+ },
15717
+ distance: function distance() {
15718
+ return px(this.width - this.height + constants.margin);
15719
+ },
15720
+ buttonStyle: function buttonStyle() {
15721
+ return {
15722
+ width: px(this.buttonRadius),
15723
+ height: px(this.buttonRadius),
15724
+ transition: 'transform ' + this.speed + 'ms',
15725
+ transform: this.toggled ? 'translate3d(' + this.distance + ', 3px, 0px)' : null,
15726
+ background: this.switchColor ? this.switchColorCurrent : undefined
15727
+ };
15728
+ },
15729
+ labelStyle: function labelStyle() {
15730
+ return {
15731
+ lineHeight: px(this.height)
15732
+ };
15733
+ },
15734
+ colorChecked: function colorChecked() {
15735
+ var color = this.color;
15736
+
15737
+
15738
+ if ((typeof color === 'undefined' ? 'undefined' : _typeof(color)) !== 'object') {
15739
+ return color || constants.colorChecked;
15740
+ }
15741
+
15742
+ return contains(color, 'checked') ? color.checked : constants.colorChecked;
15743
+ },
15744
+ colorUnchecked: function colorUnchecked() {
15745
+ var color = this.color;
15746
+
15747
+
15748
+ return contains(color, 'unchecked') ? color.unchecked : constants.colorUnchecked;
15749
+ },
15750
+ colorDisabled: function colorDisabled() {
15751
+ var color = this.color;
15752
+
15753
+
15754
+ return contains(color, 'disabled') ? color.disabled : this.colorCurrent;
15755
+ },
15756
+ colorCurrent: function colorCurrent() {
15757
+ return this.toggled ? this.colorChecked : this.colorUnchecked;
15758
+ },
15759
+ labelChecked: function labelChecked() {
15760
+ return contains(this.labels, 'checked') ? this.labels.checked : constants.labelChecked;
15761
+ },
15762
+ labelUnchecked: function labelUnchecked() {
15763
+ return contains(this.labels, 'unchecked') ? this.labels.unchecked : constants.labelUnchecked;
15764
+ },
15765
+ switchColorChecked: function switchColorChecked() {
15766
+ var switchColor = this.switchColor;
15767
+
15768
+
15769
+ return contains(switchColor, 'checked') ? switchColor.checked : constants.switchColor;
15770
+ },
15771
+ switchColorUnchecked: function switchColorUnchecked() {
15772
+ var switchColor = this.switchColor;
15773
+
15774
+
15775
+ return contains(switchColor, 'unchecked') ? switchColor.unchecked : constants.switchColor;
15776
+ },
15777
+ switchColorCurrent: function switchColorCurrent() {
15778
+ var switchColor = this.switchColor;
15779
+
15780
+
15781
+ if ((typeof switchColor === 'undefined' ? 'undefined' : _typeof(switchColor)) !== 'object') {
15782
+ return switchColor || constants.switchColor;
15783
+ }
15784
+
15785
+ return this.toggled ? this.switchColorChecked : this.switchColorUnchecked;
15786
+ }
15787
+ },
15788
+ watch: {
15789
+ value: function value(_value) {
15790
+ if (this.sync) {
15791
+ this.toggled = !!_value;
15792
+ }
15793
+ }
15794
+ },
15795
+ data: function data() {
15796
+ return {
15797
+ toggled: !!this.value
15798
+ };
15799
+ },
15800
+
15801
+ methods: {
15802
+ toggle: function toggle(event) {
15803
+ this.toggled = !this.toggled;
15804
+ this.$emit('input', this.toggled);
15805
+ this.$emit('change', {
15806
+ value: this.toggled,
15807
+ srcEvent: event
15808
+ });
15809
+ }
15810
+ }
15811
+ });
15812
+
15813
+ /***/ }),
15814
+ /* 3 */
15815
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
15816
+
15817
+ "use strict";
15818
+ Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
15819
+ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(1);
15820
+ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_vue__);
15821
+ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Button_vue__ = __webpack_require__(0);
15822
+ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Button_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__Button_vue__);
15823
+
15824
+
15825
+
15826
+ var plugin = {
15827
+ install: function install(Vue, options) {
15828
+ Vue.component('ToggleButton', __WEBPACK_IMPORTED_MODULE_1__Button_vue___default.a);
15829
+ }
15830
+ };
15831
+
15832
+ /* harmony default export */ __webpack_exports__["default"] = (plugin);
15833
+
15834
+ /***/ }),
15835
+ /* 4 */
15836
+ /***/ (function(module, exports, __webpack_require__) {
15837
+
15838
+ exports = module.exports = __webpack_require__(5)();
15839
+ // imports
15840
+
15841
+
15842
+ // module
15843
+ exports.push([module.i, ".vue-js-switch[data-v-25adc6c0]{display:inline-block;position:relative;overflow:hidden;vertical-align:middle;user-select:none;font-size:10px;cursor:pointer}.vue-js-switch .v-switch-input[data-v-25adc6c0]{display:none}.vue-js-switch .v-switch-label[data-v-25adc6c0]{position:absolute;top:0;font-weight:600;color:#fff}.vue-js-switch .v-switch-label.v-left[data-v-25adc6c0]{left:10px}.vue-js-switch .v-switch-label.v-right[data-v-25adc6c0]{right:10px}.vue-js-switch .v-switch-core[data-v-25adc6c0]{display:block;position:relative;box-sizing:border-box;outline:0;margin:0;transition:border-color .3s,background-color .3s;user-select:none}.vue-js-switch .v-switch-core .v-switch-button[data-v-25adc6c0]{display:block;position:absolute;overflow:hidden;top:0;left:0;transform:translate3d(3px,3px,0);border-radius:100%;background-color:#fff}.vue-js-switch.disabled[data-v-25adc6c0]{pointer-events:none;opacity:.6}", ""]);
15844
+
15845
+ // exports
15846
+
15847
+
15848
+ /***/ }),
15849
+ /* 5 */
15850
+ /***/ (function(module, exports) {
15851
+
15852
+ /*
15853
+ MIT License http://www.opensource.org/licenses/mit-license.php
15854
+ Author Tobias Koppers @sokra
15855
+ */
15856
+ // css base code, injected by the css-loader
15857
+ module.exports = function() {
15858
+ var list = [];
15859
+
15860
+ // return the list of modules as css string
15861
+ list.toString = function toString() {
15862
+ var result = [];
15863
+ for(var i = 0; i < this.length; i++) {
15864
+ var item = this[i];
15865
+ if(item[2]) {
15866
+ result.push("@media " + item[2] + "{" + item[1] + "}");
15867
+ } else {
15868
+ result.push(item[1]);
15869
+ }
15870
+ }
15871
+ return result.join("");
15872
+ };
15873
+
15874
+ // import a list of modules into the list
15875
+ list.i = function(modules, mediaQuery) {
15876
+ if(typeof modules === "string")
15877
+ modules = [[null, modules, ""]];
15878
+ var alreadyImportedModules = {};
15879
+ for(var i = 0; i < this.length; i++) {
15880
+ var id = this[i][0];
15881
+ if(typeof id === "number")
15882
+ alreadyImportedModules[id] = true;
15883
+ }
15884
+ for(i = 0; i < modules.length; i++) {
15885
+ var item = modules[i];
15886
+ // skip already imported module
15887
+ // this implementation is not 100% perfect for weird media query combinations
15888
+ // when a module is imported multiple times with different media queries.
15889
+ // I hope this will never occur (Hey this way we have smaller bundles)
15890
+ if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
15891
+ if(mediaQuery && !item[2]) {
15892
+ item[2] = mediaQuery;
15893
+ } else if(mediaQuery) {
15894
+ item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
15895
+ }
15896
+ list.push(item);
15897
+ }
15898
+ }
15899
+ };
15900
+ return list;
15901
+ };
15902
+
15903
+
15904
+ /***/ }),
15905
+ /* 6 */
15906
+ /***/ (function(module, exports) {
15907
+
15908
+ // this module is a runtime utility for cleaner component module output and will
15909
+ // be included in the final webpack user bundle
15910
+
15911
+ module.exports = function normalizeComponent (
15912
+ rawScriptExports,
15913
+ compiledTemplate,
15914
+ scopeId,
15915
+ cssModules
15916
+ ) {
15917
+ var esModule
15918
+ var scriptExports = rawScriptExports = rawScriptExports || {}
15919
+
15920
+ // ES6 modules interop
15921
+ var type = typeof rawScriptExports.default
15922
+ if (type === 'object' || type === 'function') {
15923
+ esModule = rawScriptExports
15924
+ scriptExports = rawScriptExports.default
15925
+ }
15926
+
15927
+ // Vue.extend constructor export interop
15928
+ var options = typeof scriptExports === 'function'
15929
+ ? scriptExports.options
15930
+ : scriptExports
15931
+
15932
+ // render functions
15933
+ if (compiledTemplate) {
15934
+ options.render = compiledTemplate.render
15935
+ options.staticRenderFns = compiledTemplate.staticRenderFns
15936
+ }
15937
+
15938
+ // scopedId
15939
+ if (scopeId) {
15940
+ options._scopeId = scopeId
15941
+ }
15942
+
15943
+ // inject cssModules
15944
+ if (cssModules) {
15945
+ var computed = Object.create(options.computed || null)
15946
+ Object.keys(cssModules).forEach(function (key) {
15947
+ var module = cssModules[key]
15948
+ computed[key] = function () { return module }
15949
+ })
15950
+ options.computed = computed
15951
+ }
15952
+
15953
+ return {
15954
+ esModule: esModule,
15955
+ exports: scriptExports,
15956
+ options: options
15957
+ }
15958
+ }
15959
+
15960
+
15961
+ /***/ }),
15962
+ /* 7 */
15963
+ /***/ (function(module, exports) {
15964
+
15965
+ module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
15966
+ return _c('label', {
15967
+ class: _vm.className,
15968
+ attrs: {
15969
+ "role": "checkbox",
15970
+ "aria-checked": _vm.ariaChecked
15971
+ }
15972
+ }, [_c('input', {
15973
+ staticClass: "v-switch-input",
15974
+ attrs: {
15975
+ "type": "checkbox",
15976
+ "name": _vm.name
15977
+ },
15978
+ on: {
15979
+ "change": function($event) {
15980
+ $event.stopPropagation();
15981
+ return _vm.toggle($event)
15982
+ }
15983
+ }
15984
+ }), _vm._v(" "), _c('div', {
15985
+ staticClass: "v-switch-core",
15986
+ style: (_vm.coreStyle)
15987
+ }, [_c('div', {
15988
+ staticClass: "v-switch-button",
15989
+ style: (_vm.buttonStyle)
15990
+ })]), _vm._v(" "), (_vm.labels) ? [(_vm.toggled) ? _c('span', {
15991
+ staticClass: "v-switch-label v-left",
15992
+ style: (_vm.labelStyle),
15993
+ domProps: {
15994
+ "innerHTML": _vm._s(_vm.labelChecked)
15995
+ }
15996
+ }) : _c('span', {
15997
+ staticClass: "v-switch-label v-right",
15998
+ style: (_vm.labelStyle),
15999
+ domProps: {
16000
+ "innerHTML": _vm._s(_vm.labelUnchecked)
16001
+ }
16002
+ })] : _vm._e()], 2)
16003
+ },staticRenderFns: []}
16004
+
16005
+ /***/ }),
16006
+ /* 8 */
16007
+ /***/ (function(module, exports, __webpack_require__) {
16008
+
16009
+ // style-loader: Adds some css to the DOM by adding a <style> tag
16010
+
16011
+ // load the styles
16012
+ var content = __webpack_require__(4);
16013
+ if(typeof content === 'string') content = [[module.i, content, '']];
16014
+ if(content.locals) module.exports = content.locals;
16015
+ // add the styles to the DOM
16016
+ var update = __webpack_require__(9)("2283861f", content, true);
16017
+
16018
+ /***/ }),
16019
+ /* 9 */
16020
+ /***/ (function(module, exports, __webpack_require__) {
16021
+
16022
+ /*
16023
+ MIT License http://www.opensource.org/licenses/mit-license.php
16024
+ Author Tobias Koppers @sokra
16025
+ Modified by Evan You @yyx990803
16026
+ */
16027
+
16028
+ var hasDocument = typeof document !== 'undefined'
16029
+
16030
+ if (typeof DEBUG !== 'undefined' && DEBUG) {
16031
+ if (!hasDocument) {
16032
+ throw new Error(
16033
+ 'vue-style-loader cannot be used in a non-browser environment. ' +
16034
+ "Use { target: 'node' } in your Webpack config to indicate a server-rendering environment."
16035
+ ) }
16036
+ }
16037
+
16038
+ var listToStyles = __webpack_require__(10)
16039
+
16040
+ /*
16041
+ type StyleObject = {
16042
+ id: number;
16043
+ parts: Array<StyleObjectPart>
16044
+ }
16045
+
16046
+ type StyleObjectPart = {
16047
+ css: string;
16048
+ media: string;
16049
+ sourceMap: ?string
16050
+ }
16051
+ */
16052
+
16053
+ var stylesInDom = {/*
16054
+ [id: number]: {
16055
+ id: number,
16056
+ refs: number,
16057
+ parts: Array<(obj?: StyleObjectPart) => void>
16058
+ }
16059
+ */}
16060
+
16061
+ var head = hasDocument && (document.head || document.getElementsByTagName('head')[0])
16062
+ var singletonElement = null
16063
+ var singletonCounter = 0
16064
+ var isProduction = false
16065
+ var noop = function () {}
16066
+
16067
+ // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
16068
+ // tags it will allow on a page
16069
+ var isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\b/.test(navigator.userAgent.toLowerCase())
16070
+
16071
+ module.exports = function (parentId, list, _isProduction) {
16072
+ isProduction = _isProduction
16073
+
16074
+ var styles = listToStyles(parentId, list)
16075
+ addStylesToDom(styles)
16076
+
16077
+ return function update (newList) {
16078
+ var mayRemove = []
16079
+ for (var i = 0; i < styles.length; i++) {
16080
+ var item = styles[i]
16081
+ var domStyle = stylesInDom[item.id]
16082
+ domStyle.refs--
16083
+ mayRemove.push(domStyle)
16084
+ }
16085
+ if (newList) {
16086
+ styles = listToStyles(parentId, newList)
16087
+ addStylesToDom(styles)
16088
+ } else {
16089
+ styles = []
16090
+ }
16091
+ for (var i = 0; i < mayRemove.length; i++) {
16092
+ var domStyle = mayRemove[i]
16093
+ if (domStyle.refs === 0) {
16094
+ for (var j = 0; j < domStyle.parts.length; j++) {
16095
+ domStyle.parts[j]()
16096
+ }
16097
+ delete stylesInDom[domStyle.id]
16098
+ }
16099
+ }
16100
+ }
16101
+ }
16102
+
16103
+ function addStylesToDom (styles /* Array<StyleObject> */) {
16104
+ for (var i = 0; i < styles.length; i++) {
16105
+ var item = styles[i]
16106
+ var domStyle = stylesInDom[item.id]
16107
+ if (domStyle) {
16108
+ domStyle.refs++
16109
+ for (var j = 0; j < domStyle.parts.length; j++) {
16110
+ domStyle.parts[j](item.parts[j])
16111
+ }
16112
+ for (; j < item.parts.length; j++) {
16113
+ domStyle.parts.push(addStyle(item.parts[j]))
16114
+ }
16115
+ if (domStyle.parts.length > item.parts.length) {
16116
+ domStyle.parts.length = item.parts.length
16117
+ }
16118
+ } else {
16119
+ var parts = []
16120
+ for (var j = 0; j < item.parts.length; j++) {
16121
+ parts.push(addStyle(item.parts[j]))
16122
+ }
16123
+ stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }
16124
+ }
16125
+ }
16126
+ }
16127
+
16128
+ function createStyleElement () {
16129
+ var styleElement = document.createElement('style')
16130
+ styleElement.type = 'text/css'
16131
+ head.appendChild(styleElement)
16132
+ return styleElement
16133
+ }
16134
+
16135
+ function addStyle (obj /* StyleObjectPart */) {
16136
+ var update, remove
16137
+ var styleElement = document.querySelector('style[data-vue-ssr-id~="' + obj.id + '"]')
16138
+
16139
+ if (styleElement) {
16140
+ if (isProduction) {
16141
+ // has SSR styles and in production mode.
16142
+ // simply do nothing.
16143
+ return noop
16144
+ } else {
16145
+ // has SSR styles but in dev mode.
16146
+ // for some reason Chrome can't handle source map in server-rendered
16147
+ // style tags - source maps in <style> only works if the style tag is
16148
+ // created and inserted dynamically. So we remove the server rendered
16149
+ // styles and inject new ones.
16150
+ styleElement.parentNode.removeChild(styleElement)
16151
+ }
16152
+ }
16153
+
16154
+ if (isOldIE) {
16155
+ // use singleton mode for IE9.
16156
+ var styleIndex = singletonCounter++
16157
+ styleElement = singletonElement || (singletonElement = createStyleElement())
16158
+ update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)
16159
+ remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)
16160
+ } else {
16161
+ // use multi-style-tag mode in all other cases
16162
+ styleElement = createStyleElement()
16163
+ update = applyToTag.bind(null, styleElement)
16164
+ remove = function () {
16165
+ styleElement.parentNode.removeChild(styleElement)
16166
+ }
16167
+ }
16168
+
16169
+ update(obj)
16170
+
16171
+ return function updateStyle (newObj /* StyleObjectPart */) {
16172
+ if (newObj) {
16173
+ if (newObj.css === obj.css &&
16174
+ newObj.media === obj.media &&
16175
+ newObj.sourceMap === obj.sourceMap) {
16176
+ return
16177
+ }
16178
+ update(obj = newObj)
16179
+ } else {
16180
+ remove()
16181
+ }
16182
+ }
16183
+ }
16184
+
16185
+ var replaceText = (function () {
16186
+ var textStore = []
16187
+
16188
+ return function (index, replacement) {
16189
+ textStore[index] = replacement
16190
+ return textStore.filter(Boolean).join('\n')
16191
+ }
16192
+ })()
16193
+
16194
+ function applyToSingletonTag (styleElement, index, remove, obj) {
16195
+ var css = remove ? '' : obj.css
16196
+
16197
+ if (styleElement.styleSheet) {
16198
+ styleElement.styleSheet.cssText = replaceText(index, css)
16199
+ } else {
16200
+ var cssNode = document.createTextNode(css)
16201
+ var childNodes = styleElement.childNodes
16202
+ if (childNodes[index]) styleElement.removeChild(childNodes[index])
16203
+ if (childNodes.length) {
16204
+ styleElement.insertBefore(cssNode, childNodes[index])
16205
+ } else {
16206
+ styleElement.appendChild(cssNode)
16207
+ }
16208
+ }
16209
+ }
16210
+
16211
+ function applyToTag (styleElement, obj) {
16212
+ var css = obj.css
16213
+ var media = obj.media
16214
+ var sourceMap = obj.sourceMap
16215
+
16216
+ if (media) {
16217
+ styleElement.setAttribute('media', media)
16218
+ }
16219
+
16220
+ if (sourceMap) {
16221
+ // https://developer.chrome.com/devtools/docs/javascript-debugging
16222
+ // this makes source maps inside style tags work properly in Chrome
16223
+ css += '\n/*# sourceURL=' + sourceMap.sources[0] + ' */'
16224
+ // http://stackoverflow.com/a/26603875
16225
+ css += '\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'
16226
+ }
16227
+
16228
+ if (styleElement.styleSheet) {
16229
+ styleElement.styleSheet.cssText = css
16230
+ } else {
16231
+ while (styleElement.firstChild) {
16232
+ styleElement.removeChild(styleElement.firstChild)
16233
+ }
16234
+ styleElement.appendChild(document.createTextNode(css))
16235
+ }
16236
+ }
16237
+
16238
+
16239
+ /***/ }),
16240
+ /* 10 */
16241
+ /***/ (function(module, exports) {
16242
+
16243
+ /**
16244
+ * Translates the list format produced by css-loader into something
16245
+ * easier to manipulate.
16246
+ */
16247
+ module.exports = function listToStyles (parentId, list) {
16248
+ var styles = []
16249
+ var newStyles = {}
16250
+ for (var i = 0; i < list.length; i++) {
16251
+ var item = list[i]
16252
+ var id = item[0]
16253
+ var css = item[1]
16254
+ var media = item[2]
16255
+ var sourceMap = item[3]
16256
+ var part = {
16257
+ id: parentId + ':' + i,
16258
+ css: css,
16259
+ media: media,
16260
+ sourceMap: sourceMap
16261
+ }
16262
+ if (!newStyles[id]) {
16263
+ styles.push(newStyles[id] = { id: id, parts: [part] })
16264
+ } else {
16265
+ newStyles[id].parts.push(part)
16266
+ }
16267
+ }
16268
+ return styles
16269
+ }
16270
+
16271
+
16272
+ /***/ })
16273
+ /******/ ]);
16274
+ });
16275
+ //# sourceMappingURL=index.js.map
16276
+
16277
+ /***/ })
16278
+ /******/ ]);
assets/js/bundle.min.js ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ !function(e){function n(t){if(o[t])return o[t].exports;var i=o[t]={i:t,l:!1,exports:{}};return e[t].call(i.exports,i,i.exports,n),i.l=!0,i.exports}var o={};n.m=e,n.c=o,n.d=function(e,o,t){n.o(e,o)||Object.defineProperty(e,o,{configurable:!1,enumerable:!0,get:t})},n.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(o,"a",o),o},n.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},n.p="/",n(n.s=5)}([function(e,n){e.exports=function(){var e=[];return e.toString=function(){for(var e=[],n=0;n<this.length;n++){var o=this[n];o[2]?e.push("@media "+o[2]+"{"+o[1]+"}"):e.push(o[1])}return e.join("")},e.i=function(n,o){"string"==typeof n&&(n=[[null,n,""]]);for(var t={},i=0;i<this.length;i++){var a=this[i][0];"number"==typeof a&&(t[a]=!0)}for(i=0;i<n.length;i++){var r=n[i];"number"==typeof r[0]&&t[r[0]]||(o&&!r[2]?r[2]=o:o&&(r[2]="("+r[2]+") and ("+o+")"),e.push(r))}},e}},function(e,n){function o(e,n){for(var o=0;o<e.length;o++){var t=e[o],i=d[t.id];if(i){i.refs++;for(var a=0;a<i.parts.length;a++)i.parts[a](t.parts[a]);for(;a<t.parts.length;a++)i.parts.push(l(t.parts[a],n))}else{for(var r=[],a=0;a<t.parts.length;a++)r.push(l(t.parts[a],n));d[t.id]={id:t.id,refs:1,parts:r}}}}function t(e){for(var n=[],o={},t=0;t<e.length;t++){var i=e[t],a=i[0],r=i[1],p=i[2],l=i[3],s={css:r,media:p,sourceMap:l};o[a]?o[a].parts.push(s):n.push(o[a]={id:a,parts:[s]})}return n}function i(e,n){var o=b(),t=v[v.length-1];if("top"===e.insertAt)t?t.nextSibling?o.insertBefore(n,t.nextSibling):o.appendChild(n):o.insertBefore(n,o.firstChild),v.push(n);else{if("bottom"!==e.insertAt)throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");o.appendChild(n)}}function a(e){e.parentNode.removeChild(e);var n=v.indexOf(e);n>=0&&v.splice(n,1)}function r(e){var n=document.createElement("style");return n.type="text/css",i(e,n),n}function p(e){var n=document.createElement("link");return n.rel="stylesheet",i(e,n),n}function l(e,n){var o,t,i;if(n.singleton){var l=g++;o=h||(h=r(n)),t=s.bind(null,o,l,!1),i=s.bind(null,o,l,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(o=p(n),t=m.bind(null,o),i=function(){a(o),o.href&&URL.revokeObjectURL(o.href)}):(o=r(n),t=c.bind(null,o),i=function(){a(o)});return t(e),function(n){if(n){if(n.css===e.css&&n.media===e.media&&n.sourceMap===e.sourceMap)return;t(e=n)}else i()}}function s(e,n,o,t){var i=o?"":t.css;if(e.styleSheet)e.styleSheet.cssText=x(n,i);else{var a=document.createTextNode(i),r=e.childNodes;r[n]&&e.removeChild(r[n]),r.length?e.insertBefore(a,r[n]):e.appendChild(a)}}function c(e,n){var o=n.css,t=n.media;if(t&&e.setAttribute("media",t),e.styleSheet)e.styleSheet.cssText=o;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(o))}}function m(e,n){var o=n.css,t=n.sourceMap;t&&(o+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+" */");var i=new Blob([o],{type:"text/css"}),a=e.href;e.href=URL.createObjectURL(i),a&&URL.revokeObjectURL(a)}var d={},f=function(e){var n;return function(){return void 0===n&&(n=e.apply(this,arguments)),n}},u=f(function(){return/msie [6-9]\b/.test(self.navigator.userAgent.toLowerCase())}),b=f(function(){return document.head||document.getElementsByTagName("head")[0]}),h=null,g=0,v=[];e.exports=function(e,n){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");n=n||{},void 0===n.singleton&&(n.singleton=u()),void 0===n.insertAt&&(n.insertAt="bottom");var i=t(e);return o(i,n),function(e){for(var a=[],r=0;r<i.length;r++){var p=i[r],l=d[p.id];l.refs--,a.push(l)}if(e){o(t(e),n)}for(var r=0;r<a.length;r++){var l=a[r];if(0===l.refs){for(var s=0;s<l.parts.length;s++)l.parts[s]();delete d[l.id]}}}};var x=function(){var e=[];return function(n,o){return e[n]=o,e.filter(Boolean).join("\n")}}()},function(e,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),function(e,o){function t(e){return void 0===e||null===e}function i(e){return void 0!==e&&null!==e}function a(e){return!0===e}function r(e){return!1===e}function p(e){return"string"==typeof e||"number"==typeof e||"symbol"==typeof e||"boolean"==typeof e}function l(e){return null!==e&&"object"==typeof e}function s(e){return"[object Object]"===la.call(e)}function c(e){return"[object RegExp]"===la.call(e)}function m(e){var n=parseFloat(String(e));return n>=0&&Math.floor(n)===n&&isFinite(e)}function d(e){return null==e?"":"object"==typeof e?JSON.stringify(e,null,2):String(e)}function f(e){var n=parseFloat(e);return isNaN(n)?e:n}function u(e,n){for(var o=Object.create(null),t=e.split(","),i=0;i<t.length;i++)o[t[i]]=!0;return n?function(e){return o[e.toLowerCase()]}:function(e){return o[e]}}function b(e,n){if(e.length){var o=e.indexOf(n);if(o>-1)return e.splice(o,1)}}function h(e,n){return ma.call(e,n)}function g(e){var n=Object.create(null);return function(o){return n[o]||(n[o]=e(o))}}function v(e,n){function o(o){var t=arguments.length;return t?t>1?e.apply(n,arguments):e.call(n,o):e.call(n)}return o._length=e.length,o}function x(e,n){return e.bind(n)}function w(e,n){n=n||0;for(var o=e.length-n,t=new Array(o);o--;)t[o]=e[o+n];return t}function k(e,n){for(var o in n)e[o]=n[o];return e}function y(e){for(var n={},o=0;o<e.length;o++)e[o]&&k(n,e[o]);return n}function _(e,n,o){}function C(e,n){if(e===n)return!0;var o=l(e),t=l(n);if(!o||!t)return!o&&!t&&String(e)===String(n);try{var i=Array.isArray(e),a=Array.isArray(n);if(i&&a)return e.length===n.length&&e.every(function(e,o){return C(e,n[o])});if(i||a)return!1;var r=Object.keys(e),p=Object.keys(n);return r.length===p.length&&r.every(function(o){return C(e[o],n[o])})}catch(e){return!1}}function $(e,n){for(var o=0;o<e.length;o++)if(C(e[o],n))return o;return-1}function z(e){var n=!1;return function(){n||(n=!0,e.apply(this,arguments))}}function j(e){var n=(e+"").charCodeAt(0);return 36===n||95===n}function O(e,n,o,t){Object.defineProperty(e,n,{value:o,enumerable:!!t,writable:!0,configurable:!0})}function A(e){if(!Ca.test(e)){var n=e.split(".");return function(e){for(var o=0;o<n.length;o++){if(!e)return;e=e[n[o]]}return e}}}function T(e){return"function"==typeof e&&/native code/.test(e.toString())}function S(e){Ha.target&&Ga.push(Ha.target),Ha.target=e}function E(){Ha.target=Ga.pop()}function M(e){return new Ka(void 0,void 0,void 0,String(e))}function P(e){var n=new Ka(e.tag,e.data,e.children,e.text,e.elm,e.context,e.componentOptions,e.asyncFactory);return n.ns=e.ns,n.isStatic=e.isStatic,n.key=e.key,n.isComment=e.isComment,n.fnContext=e.fnContext,n.fnOptions=e.fnOptions,n.fnScopeId=e.fnScopeId,n.isCloned=!0,n}function I(e){Za=e}function L(e,n,o){e.__proto__=n}function D(e,n,o){for(var t=0,i=o.length;t<i;t++){var a=o[t];O(e,a,n[a])}}function N(e,n){if(l(e)&&!(e instanceof Ka)){var o;return h(e,"__ob__")&&e.__ob__ instanceof Qa?o=e.__ob__:Za&&!Ra()&&(Array.isArray(e)||s(e))&&Object.isExtensible(e)&&!e._isVue&&(o=new Qa(e)),n&&o&&o.vmCount++,o}}function R(e,n,o,t,i){var a=new Ha,r=Object.getOwnPropertyDescriptor(e,n);if(!r||!1!==r.configurable){var p=r&&r.get;p||2!==arguments.length||(o=e[n]);var l=r&&r.set,s=!i&&N(o);Object.defineProperty(e,n,{enumerable:!0,configurable:!0,get:function(){var n=p?p.call(e):o;return Ha.target&&(a.depend(),s&&(s.dep.depend(),Array.isArray(n)&&B(n))),n},set:function(n){var t=p?p.call(e):o;n===t||n!==n&&t!==t||(l?l.call(e,n):o=n,s=!i&&N(n),a.notify())}})}}function U(e,n,o){if(Array.isArray(e)&&m(n))return e.length=Math.max(e.length,n),e.splice(n,1,o),o;if(n in e&&!(n in Object.prototype))return e[n]=o,o;var t=e.__ob__;return e._isVue||t&&t.vmCount?o:t?(R(t.value,n,o),t.dep.notify(),o):(e[n]=o,o)}function q(e,n){if(Array.isArray(e)&&m(n))return void e.splice(n,1);var o=e.__ob__;e._isVue||o&&o.vmCount||h(e,n)&&(delete e[n],o&&o.dep.notify())}function B(e){for(var n=void 0,o=0,t=e.length;o<t;o++)n=e[o],n&&n.__ob__&&n.__ob__.dep.depend(),Array.isArray(n)&&B(n)}function F(e,n){if(!n)return e;for(var o,t,i,a=Object.keys(n),r=0;r<a.length;r++)o=a[r],t=e[o],i=n[o],h(e,o)?s(t)&&s(i)&&F(t,i):U(e,o,i);return e}function H(e,n,o){return o?function(){var t="function"==typeof n?n.call(o,o):n,i="function"==typeof e?e.call(o,o):e;return t?F(t,i):i}:n?e?function(){return F("function"==typeof n?n.call(this,this):n,"function"==typeof e?e.call(this,this):e)}:n:e}function G(e,n){return n?e?e.concat(n):Array.isArray(n)?n:[n]:e}function K(e,n,o,t){var i=Object.create(e||null);return n?k(i,n):i}function V(e,n){var o=e.props;if(o){var t,i,a,r={};if(Array.isArray(o))for(t=o.length;t--;)"string"==typeof(i=o[t])&&(a=fa(i),r[a]={type:null});else if(s(o))for(var p in o)i=o[p],a=fa(p),r[a]=s(i)?i:{type:i};e.props=r}}function W(e,n){var o=e.inject;if(o){var t=e.inject={};if(Array.isArray(o))for(var i=0;i<o.length;i++)t[o[i]]={from:o[i]};else if(s(o))for(var a in o){var r=o[a];t[a]=s(r)?k({from:a},r):{from:r}}}}function J(e){var n=e.directives;if(n)for(var o in n){var t=n[o];"function"==typeof t&&(n[o]={bind:t,update:t})}}function X(e,n,o){function t(t){var i=er[t]||tr;l[t]=i(e[t],n[t],o,t)}"function"==typeof n&&(n=n.options),V(n,o),W(n,o),J(n);var i=n.extends;if(i&&(e=X(e,i,o)),n.mixins)for(var a=0,r=n.mixins.length;a<r;a++)e=X(e,n.mixins[a],o);var p,l={};for(p in e)t(p);for(p in n)h(e,p)||t(p);return l}function Y(e,n,o,t){if("string"==typeof o){var i=e[n];if(h(i,o))return i[o];var a=fa(o);if(h(i,a))return i[a];var r=ua(a);if(h(i,r))return i[r];return i[o]||i[a]||i[r]}}function Z(e,n,o,t){var i=n[e],a=!h(o,e),r=o[e],p=oe(Boolean,i.type);if(p>-1)if(a&&!h(i,"default"))r=!1;else if(""===r||r===ha(e)){var l=oe(String,i.type);(l<0||p<l)&&(r=!0)}if(void 0===r){r=Q(t,i,e);var s=Za;I(!0),N(r),I(s)}return r}function Q(e,n,o){if(h(n,"default")){var t=n.default;return e&&e.$options.propsData&&void 0===e.$options.propsData[o]&&void 0!==e._props[o]?e._props[o]:"function"==typeof t&&"Function"!==ee(n.type)?t.call(e):t}}function ee(e){var n=e&&e.toString().match(/^\s*function (\w+)/);return n?n[1]:""}function ne(e,n){return ee(e)===ee(n)}function oe(e,n){if(!Array.isArray(n))return ne(n,e)?0:-1;for(var o=0,t=n.length;o<t;o++)if(ne(n[o],e))return o;return-1}function te(e,n,o){if(n)for(var t=n;t=t.$parent;){var i=t.$options.errorCaptured;if(i)for(var a=0;a<i.length;a++)try{var r=!1===i[a].call(t,e,n,o);if(r)return}catch(e){ie(e,t,"errorCaptured hook")}}ie(e,n,o)}function ie(e,n,o){if(_a.errorHandler)try{return _a.errorHandler.call(null,e,n,o)}catch(e){ae(e,null,"config.errorHandler")}ae(e,n,o)}function ae(e,n,o){if(!za&&!ja||"undefined"==typeof console)throw e;console.error(e)}function re(){ar=!1;var e=ir.slice(0);ir.length=0;for(var n=0;n<e.length;n++)e[n]()}function pe(e){return e._withTask||(e._withTask=function(){rr=!0;var n=e.apply(null,arguments);return rr=!1,n})}function le(e,n){var o;if(ir.push(function(){if(e)try{e.call(n)}catch(e){te(e,n,"nextTick")}else o&&o(n)}),ar||(ar=!0,rr?or():nr()),!e&&"undefined"!=typeof Promise)return new Promise(function(e){o=e})}function se(e){ce(e,mr),mr.clear()}function ce(e,n){var o,t,i=Array.isArray(e);if(!(!i&&!l(e)||Object.isFrozen(e)||e instanceof Ka)){if(e.__ob__){var a=e.__ob__.dep.id;if(n.has(a))return;n.add(a)}if(i)for(o=e.length;o--;)ce(e[o],n);else for(t=Object.keys(e),o=t.length;o--;)ce(e[t[o]],n)}}function me(e){function n(){var e=arguments,o=n.fns;if(!Array.isArray(o))return o.apply(null,arguments);for(var t=o.slice(),i=0;i<t.length;i++)t[i].apply(null,e)}return n.fns=e,n}function de(e,n,o,i,a){var r,p,l,s;for(r in e)p=e[r],l=n[r],s=dr(r),t(p)||(t(l)?(t(p.fns)&&(p=e[r]=me(p)),o(s.name,p,s.once,s.capture,s.passive,s.params)):p!==l&&(l.fns=p,e[r]=l));for(r in n)t(e[r])&&(s=dr(r),i(s.name,n[r],s.capture))}function fe(e,n,o){function r(){o.apply(this,arguments),b(p.fns,r)}e instanceof Ka&&(e=e.data.hook||(e.data.hook={}));var p,l=e[n];t(l)?p=me([r]):i(l.fns)&&a(l.merged)?(p=l,p.fns.push(r)):p=me([l,r]),p.merged=!0,e[n]=p}function ue(e,n,o){var a=n.options.props;if(!t(a)){var r={},p=e.attrs,l=e.props;if(i(p)||i(l))for(var s in a){var c=ha(s);be(r,l,s,c,!0)||be(r,p,s,c,!1)}return r}}function be(e,n,o,t,a){if(i(n)){if(h(n,o))return e[o]=n[o],a||delete n[o],!0;if(h(n,t))return e[o]=n[t],a||delete n[t],!0}return!1}function he(e){for(var n=0;n<e.length;n++)if(Array.isArray(e[n]))return Array.prototype.concat.apply([],e);return e}function ge(e){return p(e)?[M(e)]:Array.isArray(e)?xe(e):void 0}function ve(e){return i(e)&&i(e.text)&&r(e.isComment)}function xe(e,n){var o,r,l,s,c=[];for(o=0;o<e.length;o++)r=e[o],t(r)||"boolean"==typeof r||(l=c.length-1,s=c[l],Array.isArray(r)?r.length>0&&(r=xe(r,(n||"")+"_"+o),ve(r[0])&&ve(s)&&(c[l]=M(s.text+r[0].text),r.shift()),c.push.apply(c,r)):p(r)?ve(s)?c[l]=M(s.text+r):""!==r&&c.push(M(r)):ve(r)&&ve(s)?c[l]=M(s.text+r.text):(a(e._isVList)&&i(r.tag)&&t(r.key)&&i(n)&&(r.key="__vlist"+n+"_"+o+"__"),c.push(r)));return c}function we(e,n){return(e.__esModule||qa&&"Module"===e[Symbol.toStringTag])&&(e=e.default),l(e)?n.extend(e):e}function ke(e,n,o,t,i){var a=Wa();return a.asyncFactory=e,a.asyncMeta={data:n,context:o,children:t,tag:i},a}function ye(e,n,o){if(a(e.error)&&i(e.errorComp))return e.errorComp;if(i(e.resolved))return e.resolved;if(a(e.loading)&&i(e.loadingComp))return e.loadingComp;if(!i(e.contexts)){var r=e.contexts=[o],p=!0,s=function(){for(var e=0,n=r.length;e<n;e++)r[e].$forceUpdate()},c=z(function(o){e.resolved=we(o,n),p||s()}),m=z(function(n){i(e.errorComp)&&(e.error=!0,s())}),d=e(c,m);return l(d)&&("function"==typeof d.then?t(e.resolved)&&d.then(c,m):i(d.component)&&"function"==typeof d.component.then&&(d.component.then(c,m),i(d.error)&&(e.errorComp=we(d.error,n)),i(d.loading)&&(e.loadingComp=we(d.loading,n),0===d.delay?e.loading=!0:setTimeout(function(){t(e.resolved)&&t(e.error)&&(e.loading=!0,s())},d.delay||200)),i(d.timeout)&&setTimeout(function(){t(e.resolved)&&m(null)},d.timeout))),p=!1,e.loading?e.loadingComp:e.resolved}e.contexts.push(o)}function _e(e){return e.isComment&&e.asyncFactory}function Ce(e){if(Array.isArray(e))for(var n=0;n<e.length;n++){var o=e[n];if(i(o)&&(i(o.componentOptions)||_e(o)))return o}}function $e(e){e._events=Object.create(null),e._hasHookEvent=!1;var n=e.$options._parentListeners;n&&Oe(e,n)}function ze(e,n,o){o?cr.$once(e,n):cr.$on(e,n)}function je(e,n){cr.$off(e,n)}function Oe(e,n,o){cr=e,de(n,o||{},ze,je,e),cr=void 0}function Ae(e,n){var o={};if(!e)return o;for(var t=0,i=e.length;t<i;t++){var a=e[t],r=a.data;if(r&&r.attrs&&r.attrs.slot&&delete r.attrs.slot,a.context!==n&&a.fnContext!==n||!r||null==r.slot)(o.default||(o.default=[])).push(a);else{var p=r.slot,l=o[p]||(o[p]=[]);"template"===a.tag?l.push.apply(l,a.children||[]):l.push(a)}}for(var s in o)o[s].every(Te)&&delete o[s];return o}function Te(e){return e.isComment&&!e.asyncFactory||" "===e.text}function Se(e,n){n=n||{};for(var o=0;o<e.length;o++)Array.isArray(e[o])?Se(e[o],n):n[e[o].key]=e[o].fn;return n}function Ee(e){var n=e.$options,o=n.parent;if(o&&!n.abstract){for(;o.$options.abstract&&o.$parent;)o=o.$parent;o.$children.push(e)}e.$parent=o,e.$root=o?o.$root:e,e.$children=[],e.$refs={},e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}function Me(e,n,o){e.$el=n,e.$options.render||(e.$options.render=Wa),Ne(e,"beforeMount");var t;return t=function(){e._update(e._render(),o)},new kr(e,t,_,null,!0),o=!1,null==e.$vnode&&(e._isMounted=!0,Ne(e,"mounted")),e}function Pe(e,n,o,t,i){var a=!!(i||e.$options._renderChildren||t.data.scopedSlots||e.$scopedSlots!==pa);if(e.$options._parentVnode=t,e.$vnode=t,e._vnode&&(e._vnode.parent=t),e.$options._renderChildren=i,e.$attrs=t.data.attrs||pa,e.$listeners=o||pa,n&&e.$options.props){I(!1);for(var r=e._props,p=e.$options._propKeys||[],l=0;l<p.length;l++){var s=p[l],c=e.$options.props;r[s]=Z(s,c,n,e)}I(!0),e.$options.propsData=n}o=o||pa;var m=e.$options._parentListeners;e.$options._parentListeners=o,Oe(e,o,m),a&&(e.$slots=Ae(i,t.context),e.$forceUpdate())}function Ie(e){for(;e&&(e=e.$parent);)if(e._inactive)return!0;return!1}function Le(e,n){if(n){if(e._directInactive=!1,Ie(e))return}else if(e._directInactive)return;if(e._inactive||null===e._inactive){e._inactive=!1;for(var o=0;o<e.$children.length;o++)Le(e.$children[o]);Ne(e,"activated")}}function De(e,n){if(!(n&&(e._directInactive=!0,Ie(e))||e._inactive)){e._inactive=!0;for(var o=0;o<e.$children.length;o++)De(e.$children[o]);Ne(e,"deactivated")}}function Ne(e,n){S();var o=e.$options[n];if(o)for(var t=0,i=o.length;t<i;t++)try{o[t].call(e)}catch(o){te(o,e,n+" hook")}e._hasHookEvent&&e.$emit("hook:"+n),E()}function Re(){xr=ur.length=br.length=0,hr={},gr=vr=!1}function Ue(){vr=!0;var e,n;for(ur.sort(function(e,n){return e.id-n.id}),xr=0;xr<ur.length;xr++)e=ur[xr],n=e.id,hr[n]=null,e.run();var o=br.slice(),t=ur.slice();Re(),Fe(o),qe(t),Ua&&_a.devtools&&Ua.emit("flush")}function qe(e){for(var n=e.length;n--;){var o=e[n],t=o.vm;t._watcher===o&&t._isMounted&&Ne(t,"updated")}}function Be(e){e._inactive=!1,br.push(e)}function Fe(e){for(var n=0;n<e.length;n++)e[n]._inactive=!0,Le(e[n],!0)}function He(e){var n=e.id;if(null==hr[n]){if(hr[n]=!0,vr){for(var o=ur.length-1;o>xr&&ur[o].id>e.id;)o--;ur.splice(o+1,0,e)}else ur.push(e);gr||(gr=!0,le(Ue))}}function Ge(e,n,o){yr.get=function(){return this[n][o]},yr.set=function(e){this[n][o]=e},Object.defineProperty(e,o,yr)}function Ke(e){e._watchers=[];var n=e.$options;n.props&&Ve(e,n.props),n.methods&&Qe(e,n.methods),n.data?We(e):N(e._data={},!0),n.computed&&Xe(e,n.computed),n.watch&&n.watch!==Pa&&en(e,n.watch)}function Ve(e,n){var o=e.$options.propsData||{},t=e._props={},i=e.$options._propKeys=[];!e.$parent||I(!1);for(var a in n)!function(a){i.push(a);var r=Z(a,n,o,e);R(t,a,r),a in e||Ge(e,"_props",a)}(a);I(!0)}function We(e){var n=e.$options.data;n=e._data="function"==typeof n?Je(n,e):n||{},s(n)||(n={});for(var o=Object.keys(n),t=e.$options.props,i=(e.$options.methods,o.length);i--;){var a=o[i];t&&h(t,a)||j(a)||Ge(e,"_data",a)}N(n,!0)}function Je(e,n){S();try{return e.call(n,n)}catch(e){return te(e,n,"data()"),{}}finally{E()}}function Xe(e,n){var o=e._computedWatchers=Object.create(null),t=Ra();for(var i in n){var a=n[i],r="function"==typeof a?a:a.get;t||(o[i]=new kr(e,r||_,_,_r)),i in e||Ye(e,i,a)}}function Ye(e,n,o){var t=!Ra();"function"==typeof o?(yr.get=t?Ze(n):o,yr.set=_):(yr.get=o.get?t&&!1!==o.cache?Ze(n):o.get:_,yr.set=o.set?o.set:_),Object.defineProperty(e,n,yr)}function Ze(e){return function(){var n=this._computedWatchers&&this._computedWatchers[e];if(n)return n.dirty&&n.evaluate(),Ha.target&&n.depend(),n.value}}function Qe(e,n){e.$options.props;for(var o in n)e[o]=null==n[o]?_:ga(n[o],e)}function en(e,n){for(var o in n){var t=n[o];if(Array.isArray(t))for(var i=0;i<t.length;i++)nn(e,o,t[i]);else nn(e,o,t)}}function nn(e,n,o,t){return s(o)&&(t=o,o=o.handler),"string"==typeof o&&(o=e[o]),e.$watch(n,o,t)}function on(e){var n=e.$options.provide;n&&(e._provided="function"==typeof n?n.call(e):n)}function tn(e){var n=an(e.$options.inject,e);n&&(I(!1),Object.keys(n).forEach(function(o){R(e,o,n[o])}),I(!0))}function an(e,n){if(e){for(var o=Object.create(null),t=qa?Reflect.ownKeys(e).filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}):Object.keys(e),i=0;i<t.length;i++){for(var a=t[i],r=e[a].from,p=n;p;){if(p._provided&&h(p._provided,r)){o[a]=p._provided[r];break}p=p.$parent}if(!p&&"default"in e[a]){var l=e[a].default;o[a]="function"==typeof l?l.call(n):l}}return o}}function rn(e,n){var o,t,a,r,p;if(Array.isArray(e)||"string"==typeof e)for(o=new Array(e.length),t=0,a=e.length;t<a;t++)o[t]=n(e[t],t);else if("number"==typeof e)for(o=new Array(e),t=0;t<e;t++)o[t]=n(t+1,t);else if(l(e))for(r=Object.keys(e),o=new Array(r.length),t=0,a=r.length;t<a;t++)p=r[t],o[t]=n(e[p],p,t);return i(o)&&(o._isVList=!0),o}function pn(e,n,o,t){var i,a=this.$scopedSlots[e];if(a)o=o||{},t&&(o=k(k({},t),o)),i=a(o)||n;else{var r=this.$slots[e];r&&(r._rendered=!0),i=r||n}var p=o&&o.slot;return p?this.$createElement("template",{slot:p},i):i}function ln(e){return Y(this.$options,"filters",e,!0)||xa}function sn(e,n){return Array.isArray(e)?-1===e.indexOf(n):e!==n}function cn(e,n,o,t,i){var a=_a.keyCodes[n]||o;return i&&t&&!_a.keyCodes[n]?sn(i,t):a?sn(a,e):t?ha(t)!==n:void 0}function mn(e,n,o,t,i){if(o)if(l(o)){Array.isArray(o)&&(o=y(o));var a;for(var r in o)!function(r){if("class"===r||"style"===r||ca(r))a=e;else{var p=e.attrs&&e.attrs.type;a=t||_a.mustUseProp(n,p,r)?e.domProps||(e.domProps={}):e.attrs||(e.attrs={})}if(!(r in a)&&(a[r]=o[r],i)){(e.on||(e.on={}))["update:"+r]=function(e){o[r]=e}}}(r)}else;return e}function dn(e,n){var o=this._staticTrees||(this._staticTrees=[]),t=o[e];return t&&!n?t:(t=o[e]=this.$options.staticRenderFns[e].call(this._renderProxy,null,this),un(t,"__static__"+e,!1),t)}function fn(e,n,o){return un(e,"__once__"+n+(o?"_"+o:""),!0),e}function un(e,n,o){if(Array.isArray(e))for(var t=0;t<e.length;t++)e[t]&&"string"!=typeof e[t]&&bn(e[t],n+"_"+t,o);else bn(e,n,o)}function bn(e,n,o){e.isStatic=!0,e.key=n,e.isOnce=o}function hn(e,n){if(n)if(s(n)){var o=e.on=e.on?k({},e.on):{};for(var t in n){var i=o[t],a=n[t];o[t]=i?[].concat(i,a):a}}else;return e}function gn(e){e._o=fn,e._n=f,e._s=d,e._l=rn,e._t=pn,e._q=C,e._i=$,e._m=dn,e._f=ln,e._k=cn,e._b=mn,e._v=M,e._e=Wa,e._u=Se,e._g=hn}function vn(e,n,o,t,i){var r,p=i.options;h(t,"_uid")?(r=Object.create(t),r._original=t):(r=t,t=t._original);var l=a(p._compiled),s=!l;this.data=e,this.props=n,this.children=o,this.parent=t,this.listeners=e.on||pa,this.injections=an(p.inject,t),this.slots=function(){return Ae(o,t)},l&&(this.$options=p,this.$slots=this.slots(),this.$scopedSlots=e.scopedSlots||pa),p._scopeId?this._c=function(e,n,o,i){var a=zn(r,e,n,o,i,s);return a&&!Array.isArray(a)&&(a.fnScopeId=p._scopeId,a.fnContext=t),a}:this._c=function(e,n,o,t){return zn(r,e,n,o,t,s)}}function xn(e,n,o,t,a){var r=e.options,p={},l=r.props;if(i(l))for(var s in l)p[s]=Z(s,l,n||pa);else i(o.attrs)&&kn(p,o.attrs),i(o.props)&&kn(p,o.props);var c=new vn(o,p,a,t,e),m=r.render.call(null,c._c,c);if(m instanceof Ka)return wn(m,o,c.parent,r);if(Array.isArray(m)){for(var d=ge(m)||[],f=new Array(d.length),u=0;u<d.length;u++)f[u]=wn(d[u],o,c.parent,r);return f}}function wn(e,n,o,t){var i=P(e);return i.fnContext=o,i.fnOptions=t,n.slot&&((i.data||(i.data={})).slot=n.slot),i}function kn(e,n){for(var o in n)e[fa(o)]=n[o]}function yn(e,n,o,r,p){if(!t(e)){var s=o.$options._base;if(l(e)&&(e=s.extend(e)),"function"==typeof e){var c;if(t(e.cid)&&(c=e,void 0===(e=ye(c,s,o))))return ke(c,n,o,r,p);n=n||{},En(e),i(n.model)&&$n(e.options,n);var m=ue(n,e,p);if(a(e.options.functional))return xn(e,m,n,o,r);var d=n.on;if(n.on=n.nativeOn,a(e.options.abstract)){var f=n.slot;n={},f&&(n.slot=f)}Cn(n);var u=e.options.name||p;return new Ka("vue-component-"+e.cid+(u?"-"+u:""),n,void 0,void 0,void 0,o,{Ctor:e,propsData:m,listeners:d,tag:p,children:r},c)}}}function _n(e,n,o,t){var a={_isComponent:!0,parent:n,_parentVnode:e,_parentElm:o||null,_refElm:t||null},r=e.data.inlineTemplate;return i(r)&&(a.render=r.render,a.staticRenderFns=r.staticRenderFns),new e.componentOptions.Ctor(a)}function Cn(e){for(var n=e.hook||(e.hook={}),o=0;o<$r.length;o++){var t=$r[o];n[t]=Cr[t]}}function $n(e,n){var o=e.model&&e.model.prop||"value",t=e.model&&e.model.event||"input";(n.props||(n.props={}))[o]=n.model.value;var a=n.on||(n.on={});i(a[t])?a[t]=[n.model.callback].concat(a[t]):a[t]=n.model.callback}function zn(e,n,o,t,i,r){return(Array.isArray(o)||p(o))&&(i=t,t=o,o=void 0),a(r)&&(i=jr),jn(e,n,o,t,i)}function jn(e,n,o,t,a){if(i(o)&&i(o.__ob__))return Wa();if(i(o)&&i(o.is)&&(n=o.is),!n)return Wa();Array.isArray(t)&&"function"==typeof t[0]&&(o=o||{},o.scopedSlots={default:t[0]},t.length=0),a===jr?t=ge(t):a===zr&&(t=he(t));var r,p;if("string"==typeof n){var l;p=e.$vnode&&e.$vnode.ns||_a.getTagNamespace(n),r=_a.isReservedTag(n)?new Ka(_a.parsePlatformTagName(n),o,t,void 0,void 0,e):i(l=Y(e.$options,"components",n))?yn(l,o,e,t,n):new Ka(n,o,t,void 0,void 0,e)}else r=yn(n,o,e,t);return Array.isArray(r)?r:i(r)?(i(p)&&On(r,p),i(o)&&An(o),r):Wa()}function On(e,n,o){if(e.ns=n,"foreignObject"===e.tag&&(n=void 0,o=!0),i(e.children))for(var r=0,p=e.children.length;r<p;r++){var l=e.children[r];i(l.tag)&&(t(l.ns)||a(o)&&"svg"!==l.tag)&&On(l,n,o)}}function An(e){l(e.style)&&se(e.style),l(e.class)&&se(e.class)}function Tn(e){e._vnode=null,e._staticTrees=null;var n=e.$options,o=e.$vnode=n._parentVnode,t=o&&o.context;e.$slots=Ae(n._renderChildren,t),e.$scopedSlots=pa,e._c=function(n,o,t,i){return zn(e,n,o,t,i,!1)},e.$createElement=function(n,o,t,i){return zn(e,n,o,t,i,!0)};var i=o&&o.data;R(e,"$attrs",i&&i.attrs||pa,null,!0),R(e,"$listeners",n._parentListeners||pa,null,!0)}function Sn(e,n){var o=e.$options=Object.create(e.constructor.options),t=n._parentVnode;o.parent=n.parent,o._parentVnode=t,o._parentElm=n._parentElm,o._refElm=n._refElm;var i=t.componentOptions;o.propsData=i.propsData,o._parentListeners=i.listeners,o._renderChildren=i.children,o._componentTag=i.tag,n.render&&(o.render=n.render,o.staticRenderFns=n.staticRenderFns)}function En(e){var n=e.options;if(e.super){var o=En(e.super);if(o!==e.superOptions){e.superOptions=o;var t=Mn(e);t&&k(e.extendOptions,t),n=e.options=X(o,e.extendOptions),n.name&&(n.components[n.name]=e)}}return n}function Mn(e){var n,o=e.options,t=e.extendOptions,i=e.sealedOptions;for(var a in o)o[a]!==i[a]&&(n||(n={}),n[a]=Pn(o[a],t[a],i[a]));return n}function Pn(e,n,o){if(Array.isArray(e)){var t=[];o=Array.isArray(o)?o:[o],n=Array.isArray(n)?n:[n];for(var i=0;i<e.length;i++)(n.indexOf(e[i])>=0||o.indexOf(e[i])<0)&&t.push(e[i]);return t}return e}function In(e){this._init(e)}function Ln(e){e.use=function(e){var n=this._installedPlugins||(this._installedPlugins=[]);if(n.indexOf(e)>-1)return this;var o=w(arguments,1);return o.unshift(this),"function"==typeof e.install?e.install.apply(e,o):"function"==typeof e&&e.apply(null,o),n.push(e),this}}function Dn(e){e.mixin=function(e){return this.options=X(this.options,e),this}}function Nn(e){e.cid=0;var n=1;e.extend=function(e){e=e||{};var o=this,t=o.cid,i=e._Ctor||(e._Ctor={});if(i[t])return i[t];var a=e.name||o.options.name,r=function(e){this._init(e)};return r.prototype=Object.create(o.prototype),r.prototype.constructor=r,r.cid=n++,r.options=X(o.options,e),r.super=o,r.options.props&&Rn(r),r.options.computed&&Un(r),r.extend=o.extend,r.mixin=o.mixin,r.use=o.use,ka.forEach(function(e){r[e]=o[e]}),a&&(r.options.components[a]=r),r.superOptions=o.options,r.extendOptions=e,r.sealedOptions=k({},r.options),i[t]=r,r}}function Rn(e){var n=e.options.props;for(var o in n)Ge(e.prototype,"_props",o)}function Un(e){var n=e.options.computed;for(var o in n)Ye(e.prototype,o,n[o])}function qn(e){ka.forEach(function(n){e[n]=function(e,o){return o?("component"===n&&s(o)&&(o.name=o.name||e,o=this.options._base.extend(o)),"directive"===n&&"function"==typeof o&&(o={bind:o,update:o}),this.options[n+"s"][e]=o,o):this.options[n+"s"][e]}})}function Bn(e){return e&&(e.Ctor.options.name||e.tag)}function Fn(e,n){return Array.isArray(e)?e.indexOf(n)>-1:"string"==typeof e?e.split(",").indexOf(n)>-1:!!c(e)&&e.test(n)}function Hn(e,n){var o=e.cache,t=e.keys,i=e._vnode;for(var a in o){var r=o[a];if(r){var p=Bn(r.componentOptions);p&&!n(p)&&Gn(o,a,t,i)}}}function Gn(e,n,o,t){var i=e[n];!i||t&&i.tag===t.tag||i.componentInstance.$destroy(),e[n]=null,b(o,n)}function Kn(e){for(var n=e.data,o=e,t=e;i(t.componentInstance);)(t=t.componentInstance._vnode)&&t.data&&(n=Vn(t.data,n));for(;i(o=o.parent);)o&&o.data&&(n=Vn(n,o.data));return Wn(n.staticClass,n.class)}function Vn(e,n){return{staticClass:Jn(e.staticClass,n.staticClass),class:i(e.class)?[e.class,n.class]:n.class}}function Wn(e,n){return i(e)||i(n)?Jn(e,Xn(n)):""}function Jn(e,n){return e?n?e+" "+n:e:n||""}function Xn(e){return Array.isArray(e)?Yn(e):l(e)?Zn(e):"string"==typeof e?e:""}function Yn(e){for(var n,o="",t=0,a=e.length;t<a;t++)i(n=Xn(e[t]))&&""!==n&&(o&&(o+=" "),o+=n);return o}function Zn(e){var n="";for(var o in e)e[o]&&(n&&(n+=" "),n+=o);return n}function Qn(e){return Zr(e)?"svg":"math"===e?"math":void 0}function eo(e){if(!za)return!0;if(ep(e))return!1;if(e=e.toLowerCase(),null!=np[e])return np[e];var n=document.createElement(e);return e.indexOf("-")>-1?np[e]=n.constructor===window.HTMLUnknownElement||n.constructor===window.HTMLElement:np[e]=/HTMLUnknownElement/.test(n.toString())}function no(e){if("string"==typeof e){var n=document.querySelector(e);return n||document.createElement("div")}return e}function oo(e,n){var o=document.createElement(e);return"select"!==e?o:(n.data&&n.data.attrs&&void 0!==n.data.attrs.multiple&&o.setAttribute("multiple","multiple"),o)}function to(e,n){return document.createElementNS(Xr[e],n)}function io(e){return document.createTextNode(e)}function ao(e){return document.createComment(e)}function ro(e,n,o){e.insertBefore(n,o)}function po(e,n){e.removeChild(n)}function lo(e,n){e.appendChild(n)}function so(e){return e.parentNode}function co(e){return e.nextSibling}function mo(e){return e.tagName}function fo(e,n){e.textContent=n}function uo(e,n){e.setAttribute(n,"")}function bo(e,n){var o=e.data.ref;if(i(o)){var t=e.context,a=e.componentInstance||e.elm,r=t.$refs;n?Array.isArray(r[o])?b(r[o],a):r[o]===a&&(r[o]=void 0):e.data.refInFor?Array.isArray(r[o])?r[o].indexOf(a)<0&&r[o].push(a):r[o]=[a]:r[o]=a}}function ho(e,n){return e.key===n.key&&(e.tag===n.tag&&e.isComment===n.isComment&&i(e.data)===i(n.data)&&go(e,n)||a(e.isAsyncPlaceholder)&&e.asyncFactory===n.asyncFactory&&t(n.asyncFactory.error))}function go(e,n){if("input"!==e.tag)return!0;var o,t=i(o=e.data)&&i(o=o.attrs)&&o.type,a=i(o=n.data)&&i(o=o.attrs)&&o.type;return t===a||op(t)&&op(a)}function vo(e,n,o){var t,a,r={};for(t=n;t<=o;++t)a=e[t].key,i(a)&&(r[a]=t);return r}function xo(e,n){(e.data.directives||n.data.directives)&&wo(e,n)}function wo(e,n){var o,t,i,a=e===ap,r=n===ap,p=ko(e.data.directives,e.context),l=ko(n.data.directives,n.context),s=[],c=[];for(o in l)t=p[o],i=l[o],t?(i.oldValue=t.value,_o(i,"update",n,e),i.def&&i.def.componentUpdated&&c.push(i)):(_o(i,"bind",n,e),i.def&&i.def.inserted&&s.push(i));if(s.length){var m=function(){for(var o=0;o<s.length;o++)_o(s[o],"inserted",n,e)};a?fe(n,"insert",m):m()}if(c.length&&fe(n,"postpatch",function(){for(var o=0;o<c.length;o++)_o(c[o],"componentUpdated",n,e)}),!a)for(o in p)l[o]||_o(p[o],"unbind",e,e,r)}function ko(e,n){var o=Object.create(null);if(!e)return o;var t,i;for(t=0;t<e.length;t++)i=e[t],i.modifiers||(i.modifiers=lp),o[yo(i)]=i,i.def=Y(n.$options,"directives",i.name,!0);return o}function yo(e){return e.rawName||e.name+"."+Object.keys(e.modifiers||{}).join(".")}function _o(e,n,o,t,i){var a=e.def&&e.def[n];if(a)try{a(o.elm,e,o,t,i)}catch(t){te(t,o.context,"directive "+e.name+" "+n+" hook")}}function Co(e,n){var o=n.componentOptions;if(!(i(o)&&!1===o.Ctor.options.inheritAttrs||t(e.data.attrs)&&t(n.data.attrs))){var a,r,p=n.elm,l=e.data.attrs||{},s=n.data.attrs||{};i(s.__ob__)&&(s=n.data.attrs=k({},s));for(a in s)r=s[a],l[a]!==r&&$o(p,a,r);(Ta||Ea)&&s.value!==l.value&&$o(p,"value",s.value);for(a in l)t(s[a])&&(Vr(a)?p.removeAttributeNS(Kr,Wr(a)):Hr(a)||p.removeAttribute(a))}}function $o(e,n,o){e.tagName.indexOf("-")>-1?zo(e,n,o):Gr(n)?Jr(o)?e.removeAttribute(n):(o="allowfullscreen"===n&&"EMBED"===e.tagName?"true":n,e.setAttribute(n,o)):Hr(n)?e.setAttribute(n,Jr(o)||"false"===o?"false":"true"):Vr(n)?Jr(o)?e.removeAttributeNS(Kr,Wr(n)):e.setAttributeNS(Kr,n,o):zo(e,n,o)}function zo(e,n,o){if(Jr(o))e.removeAttribute(n);else{if(Ta&&!Sa&&"TEXTAREA"===e.tagName&&"placeholder"===n&&!e.__ieph){var t=function(n){n.stopImmediatePropagation(),e.removeEventListener("input",t)};e.addEventListener("input",t),e.__ieph=!0}e.setAttribute(n,o)}}function jo(e,n){var o=n.elm,a=n.data,r=e.data;if(!(t(a.staticClass)&&t(a.class)&&(t(r)||t(r.staticClass)&&t(r.class)))){var p=Kn(n),l=o._transitionClasses;i(l)&&(p=Jn(p,Xn(l))),p!==o._prevClass&&(o.setAttribute("class",p),o._prevClass=p)}}function Oo(e){function n(){(r||(r=[])).push(e.slice(u,i).trim()),u=i+1}var o,t,i,a,r,p=!1,l=!1,s=!1,c=!1,m=0,d=0,f=0,u=0;for(i=0;i<e.length;i++)if(t=o,o=e.charCodeAt(i),p)39===o&&92!==t&&(p=!1);else if(l)34===o&&92!==t&&(l=!1);else if(s)96===o&&92!==t&&(s=!1);else if(c)47===o&&92!==t&&(c=!1);else if(124!==o||124===e.charCodeAt(i+1)||124===e.charCodeAt(i-1)||m||d||f){switch(o){case 34:l=!0;break;case 39:p=!0;break;case 96:s=!0;break;case 40:f++;break;case 41:f--;break;case 91:d++;break;case 93:d--;break;case 123:m++;break;case 125:m--}if(47===o){for(var b=i-1,h=void 0;b>=0&&" "===(h=e.charAt(b));b--);h&&dp.test(h)||(c=!0)}}else void 0===a?(u=i+1,a=e.slice(0,i).trim()):n();if(void 0===a?a=e.slice(0,i).trim():0!==u&&n(),r)for(i=0;i<r.length;i++)a=Ao(a,r[i]);return a}function Ao(e,n){var o=n.indexOf("(");if(o<0)return'_f("'+n+'")('+e+")";var t=n.slice(0,o),i=n.slice(o+1);return'_f("'+t+'")('+e+(")"!==i?","+i:i)}function To(e){console.error("[Vue compiler]: "+e)}function So(e,n){return e?e.map(function(e){return e[n]}).filter(function(e){return e}):[]}function Eo(e,n,o){(e.props||(e.props=[])).push({name:n,value:o}),e.plain=!1}function Mo(e,n,o){(e.attrs||(e.attrs=[])).push({name:n,value:o}),e.plain=!1}function Po(e,n,o){e.attrsMap[n]=o,e.attrsList.push({name:n,value:o})}function Io(e,n,o,t,i,a){(e.directives||(e.directives=[])).push({name:n,rawName:o,value:t,arg:i,modifiers:a}),e.plain=!1}function Lo(e,n,o,t,i,a){t=t||pa,t.capture&&(delete t.capture,n="!"+n),t.once&&(delete t.once,n="~"+n),t.passive&&(delete t.passive,n="&"+n),"click"===n&&(t.right?(n="contextmenu",delete t.right):t.middle&&(n="mouseup"));var r;t.native?(delete t.native,r=e.nativeEvents||(e.nativeEvents={})):r=e.events||(e.events={});var p={value:o.trim()};t!==pa&&(p.modifiers=t);var l=r[n];Array.isArray(l)?i?l.unshift(p):l.push(p):r[n]=l?i?[p,l]:[l,p]:p,e.plain=!1}function Do(e,n,o){var t=No(e,":"+n)||No(e,"v-bind:"+n);if(null!=t)return Oo(t);if(!1!==o){var i=No(e,n);if(null!=i)return JSON.stringify(i)}}function No(e,n,o){var t;if(null!=(t=e.attrsMap[n]))for(var i=e.attrsList,a=0,r=i.length;a<r;a++)if(i[a].name===n){i.splice(a,1);break}return o&&delete e.attrsMap[n],t}function Ro(e,n,o){var t=o||{},i=t.number,a=t.trim,r="$$v";a&&(r="(typeof $$v === 'string'? $$v.trim(): $$v)"),i&&(r="_n("+r+")");var p=Uo(n,r);e.model={value:"("+n+")",expression:'"'+n+'"',callback:"function ($$v) {"+p+"}"}}function Uo(e,n){var o=qo(e);return null===o.key?e+"="+n:"$set("+o.exp+", "+o.key+", "+n+")"}function qo(e){if(e=e.trim(),Er=e.length,e.indexOf("[")<0||e.lastIndexOf("]")<Er-1)return Ir=e.lastIndexOf("."),Ir>-1?{exp:e.slice(0,Ir),key:'"'+e.slice(Ir+1)+'"'}:{exp:e,key:null};for(Mr=e,Ir=Lr=Dr=0;!Fo();)Pr=Bo(),Ho(Pr)?Ko(Pr):91===Pr&&Go(Pr);return{exp:e.slice(0,Lr),key:e.slice(Lr+1,Dr)}}function Bo(){return Mr.charCodeAt(++Ir)}function Fo(){return Ir>=Er}function Ho(e){return 34===e||39===e}function Go(e){var n=1;for(Lr=Ir;!Fo();)if(e=Bo(),Ho(e))Ko(e);else if(91===e&&n++,93===e&&n--,0===n){Dr=Ir;break}}function Ko(e){for(var n=e;!Fo()&&(e=Bo())!==n;);}function Vo(e,n,o){Nr=o;var t=n.value,i=n.modifiers,a=e.tag,r=e.attrsMap.type;if(e.component)return Ro(e,t,i),!1;if("select"===a)Xo(e,t,i);else if("input"===a&&"checkbox"===r)Wo(e,t,i);else if("input"===a&&"radio"===r)Jo(e,t,i);else if("input"===a||"textarea"===a)Yo(e,t,i);else if(!_a.isReservedTag(a))return Ro(e,t,i),!1;return!0}function Wo(e,n,o){var t=o&&o.number,i=Do(e,"value")||"null",a=Do(e,"true-value")||"true",r=Do(e,"false-value")||"false";Eo(e,"checked","Array.isArray("+n+")?_i("+n+","+i+")>-1"+("true"===a?":("+n+")":":_q("+n+","+a+")")),Lo(e,"change","var $$a="+n+",$$el=$event.target,$$c=$$el.checked?("+a+"):("+r+");if(Array.isArray($$a)){var $$v="+(t?"_n("+i+")":i)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+Uo(n,"$$a.concat([$$v])")+")}else{$$i>-1&&("+Uo(n,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+Uo(n,"$$c")+"}",null,!0)}function Jo(e,n,o){var t=o&&o.number,i=Do(e,"value")||"null";i=t?"_n("+i+")":i,Eo(e,"checked","_q("+n+","+i+")"),Lo(e,"change",Uo(n,i),null,!0)}function Xo(e,n,o){var t=o&&o.number,i='Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return '+(t?"_n(val)":"val")+"})",a="var $$selectedVal = "+i+";";a=a+" "+Uo(n,"$event.target.multiple ? $$selectedVal : $$selectedVal[0]"),Lo(e,"change",a,null,!0)}function Yo(e,n,o){var t=e.attrsMap.type,i=o||{},a=i.lazy,r=i.number,p=i.trim,l=!a&&"range"!==t,s=a?"change":"range"===t?fp:"input",c="$event.target.value";p&&(c="$event.target.value.trim()"),r&&(c="_n("+c+")");var m=Uo(n,c);l&&(m="if($event.target.composing)return;"+m),Eo(e,"value","("+n+")"),Lo(e,s,m,null,!0),(p||r)&&Lo(e,"blur","$forceUpdate()")}function Zo(e){if(i(e[fp])){var n=Ta?"change":"input";e[n]=[].concat(e[fp],e[n]||[]),delete e[fp]}i(e[up])&&(e.change=[].concat(e[up],e.change||[]),delete e[up])}function Qo(e,n,o){var t=Rr;return function i(){null!==e.apply(null,arguments)&&nt(n,i,o,t)}}function et(e,n,o,t,i){n=pe(n),o&&(n=Qo(n,e,t)),Rr.addEventListener(e,n,Ia?{capture:t,passive:i}:t)}function nt(e,n,o,t){(t||Rr).removeEventListener(e,n._withTask||n,o)}function ot(e,n){if(!t(e.data.on)||!t(n.data.on)){var o=n.data.on||{},i=e.data.on||{};Rr=n.elm,Zo(o),de(o,i,et,nt,n.context),Rr=void 0}}function tt(e,n){if(!t(e.data.domProps)||!t(n.data.domProps)){var o,a,r=n.elm,p=e.data.domProps||{},l=n.data.domProps||{};i(l.__ob__)&&(l=n.data.domProps=k({},l));for(o in p)t(l[o])&&(r[o]="");for(o in l){if(a=l[o],"textContent"===o||"innerHTML"===o){if(n.children&&(n.children.length=0),a===p[o])continue;1===r.childNodes.length&&r.removeChild(r.childNodes[0])}if("value"===o){r._value=a;var s=t(a)?"":String(a);it(r,s)&&(r.value=s)}else r[o]=a}}}function it(e,n){return!e.composing&&("OPTION"===e.tagName||at(e,n)||rt(e,n))}function at(e,n){var o=!0;try{o=document.activeElement!==e}catch(e){}return o&&e.value!==n}function rt(e,n){var o=e.value,t=e._vModifiers;if(i(t)){if(t.lazy)return!1;if(t.number)return f(o)!==f(n);if(t.trim)return o.trim()!==n.trim()}return o!==n}function pt(e){var n=lt(e.style);return e.staticStyle?k(e.staticStyle,n):n}function lt(e){return Array.isArray(e)?y(e):"string"==typeof e?gp(e):e}function st(e,n){var o,t={};if(n)for(var i=e;i.componentInstance;)(i=i.componentInstance._vnode)&&i.data&&(o=pt(i.data))&&k(t,o);(o=pt(e.data))&&k(t,o);for(var a=e;a=a.parent;)a.data&&(o=pt(a.data))&&k(t,o);return t}function ct(e,n){var o=n.data,a=e.data;if(!(t(o.staticStyle)&&t(o.style)&&t(a.staticStyle)&&t(a.style))){var r,p,l=n.elm,s=a.staticStyle,c=a.normalizedStyle||a.style||{},m=s||c,d=lt(n.data.style)||{};n.data.normalizedStyle=i(d.__ob__)?k({},d):d;var f=st(n,!0);for(p in m)t(f[p])&&wp(l,p,"");for(p in f)(r=f[p])!==m[p]&&wp(l,p,null==r?"":r)}}function mt(e,n){if(n&&(n=n.trim()))if(e.classList)n.indexOf(" ")>-1?n.split(/\s+/).forEach(function(n){return e.classList.add(n)}):e.classList.add(n);else{var o=" "+(e.getAttribute("class")||"")+" ";o.indexOf(" "+n+" ")<0&&e.setAttribute("class",(o+n).trim())}}function dt(e,n){if(n&&(n=n.trim()))if(e.classList)n.indexOf(" ")>-1?n.split(/\s+/).forEach(function(n){return e.classList.remove(n)}):e.classList.remove(n),e.classList.length||e.removeAttribute("class");else{for(var o=" "+(e.getAttribute("class")||"")+" ",t=" "+n+" ";o.indexOf(t)>=0;)o=o.replace(t," ");o=o.trim(),o?e.setAttribute("class",o):e.removeAttribute("class")}}function ft(e){if(e){if("object"==typeof e){var n={};return!1!==e.css&&k(n,Cp(e.name||"v")),k(n,e),n}return"string"==typeof e?Cp(e):void 0}}function ut(e){Ep(function(){Ep(e)})}function bt(e,n){var o=e._transitionClasses||(e._transitionClasses=[]);o.indexOf(n)<0&&(o.push(n),mt(e,n))}function ht(e,n){e._transitionClasses&&b(e._transitionClasses,n),dt(e,n)}function gt(e,n,o){var t=vt(e,n),i=t.type,a=t.timeout,r=t.propCount;if(!i)return o();var p=i===zp?Ap:Sp,l=0,s=function(){e.removeEventListener(p,c),o()},c=function(n){n.target===e&&++l>=r&&s()};setTimeout(function(){l<r&&s()},a+1),e.addEventListener(p,c)}function vt(e,n){var o,t=window.getComputedStyle(e),i=t[Op+"Delay"].split(", "),a=t[Op+"Duration"].split(", "),r=xt(i,a),p=t[Tp+"Delay"].split(", "),l=t[Tp+"Duration"].split(", "),s=xt(p,l),c=0,m=0;return n===zp?r>0&&(o=zp,c=r,m=a.length):n===jp?s>0&&(o=jp,c=s,m=l.length):(c=Math.max(r,s),o=c>0?r>s?zp:jp:null,m=o?o===zp?a.length:l.length:0),{type:o,timeout:c,propCount:m,hasTransform:o===zp&&Mp.test(t[Op+"Property"])}}function xt(e,n){for(;e.length<n.length;)e=e.concat(e);return Math.max.apply(null,n.map(function(n,o){return wt(n)+wt(e[o])}))}function wt(e){return 1e3*Number(e.slice(0,-1))}function kt(e,n){var o=e.elm;i(o._leaveCb)&&(o._leaveCb.cancelled=!0,o._leaveCb());var a=ft(e.data.transition);if(!t(a)&&!i(o._enterCb)&&1===o.nodeType){for(var r=a.css,p=a.type,s=a.enterClass,c=a.enterToClass,m=a.enterActiveClass,d=a.appearClass,u=a.appearToClass,b=a.appearActiveClass,h=a.beforeEnter,g=a.enter,v=a.afterEnter,x=a.enterCancelled,w=a.beforeAppear,k=a.appear,y=a.afterAppear,_=a.appearCancelled,C=a.duration,$=fr,j=fr.$vnode;j&&j.parent;)j=j.parent,$=j.context;var O=!$._isMounted||!e.isRootInsert;if(!O||k||""===k){var A=O&&d?d:s,T=O&&b?b:m,S=O&&u?u:c,E=O?w||h:h,M=O&&"function"==typeof k?k:g,P=O?y||v:v,I=O?_||x:x,L=f(l(C)?C.enter:C),D=!1!==r&&!Sa,N=Ct(M),R=o._enterCb=z(function(){D&&(ht(o,S),ht(o,T)),R.cancelled?(D&&ht(o,A),I&&I(o)):P&&P(o),o._enterCb=null});e.data.show||fe(e,"insert",function(){var n=o.parentNode,t=n&&n._pending&&n._pending[e.key];t&&t.tag===e.tag&&t.elm._leaveCb&&t.elm._leaveCb(),M&&M(o,R)}),E&&E(o),D&&(bt(o,A),bt(o,T),ut(function(){ht(o,A),R.cancelled||(bt(o,S),N||(_t(L)?setTimeout(R,L):gt(o,p,R)))})),e.data.show&&(n&&n(),M&&M(o,R)),D||N||R()}}}function yt(e,n){function o(){_.cancelled||(e.data.show||((a.parentNode._pending||(a.parentNode._pending={}))[e.key]=e),u&&u(a),w&&(bt(a,c),bt(a,d),ut(function(){ht(a,c),_.cancelled||(bt(a,m),k||(_t(y)?setTimeout(_,y):gt(a,s,_)))})),b&&b(a,_),w||k||_())}var a=e.elm;i(a._enterCb)&&(a._enterCb.cancelled=!0,a._enterCb());var r=ft(e.data.transition);if(t(r)||1!==a.nodeType)return n();if(!i(a._leaveCb)){var p=r.css,s=r.type,c=r.leaveClass,m=r.leaveToClass,d=r.leaveActiveClass,u=r.beforeLeave,b=r.leave,h=r.afterLeave,g=r.leaveCancelled,v=r.delayLeave,x=r.duration,w=!1!==p&&!Sa,k=Ct(b),y=f(l(x)?x.leave:x),_=a._leaveCb=z(function(){a.parentNode&&a.parentNode._pending&&(a.parentNode._pending[e.key]=null),w&&(ht(a,m),ht(a,d)),_.cancelled?(w&&ht(a,c),g&&g(a)):(n(),h&&h(a)),a._leaveCb=null});v?v(o):o()}}function _t(e){return"number"==typeof e&&!isNaN(e)}function Ct(e){if(t(e))return!1;var n=e.fns;return i(n)?Ct(Array.isArray(n)?n[0]:n):(e._length||e.length)>1}function $t(e,n){!0!==n.data.show&&kt(n)}function zt(e,n,o){jt(e,n,o),(Ta||Ea)&&setTimeout(function(){jt(e,n,o)},0)}function jt(e,n,o){var t=n.value,i=e.multiple;if(!i||Array.isArray(t)){for(var a,r,p=0,l=e.options.length;p<l;p++)if(r=e.options[p],i)a=$(t,At(r))>-1,r.selected!==a&&(r.selected=a);else if(C(At(r),t))return void(e.selectedIndex!==p&&(e.selectedIndex=p));i||(e.selectedIndex=-1)}}function Ot(e,n){return n.every(function(n){return!C(n,e)})}function At(e){return"_value"in e?e._value:e.value}function Tt(e){e.target.composing=!0}function St(e){e.target.composing&&(e.target.composing=!1,Et(e.target,"input"))}function Et(e,n){var o=document.createEvent("HTMLEvents");o.initEvent(n,!0,!0),e.dispatchEvent(o)}function Mt(e){return!e.componentInstance||e.data&&e.data.transition?e:Mt(e.componentInstance._vnode)}function Pt(e){var n=e&&e.componentOptions;return n&&n.Ctor.options.abstract?Pt(Ce(n.children)):e}function It(e){var n={},o=e.$options;for(var t in o.propsData)n[t]=e[t];var i=o._parentListeners;for(var a in i)n[fa(a)]=i[a];return n}function Lt(e,n){if(/\d-keep-alive$/.test(n.tag))return e("keep-alive",{props:n.componentOptions.propsData})}function Dt(e){for(;e=e.parent;)if(e.data.transition)return!0}function Nt(e,n){return n.key===e.key&&n.tag===e.tag}function Rt(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function Ut(e){e.data.newPos=e.elm.getBoundingClientRect()}function qt(e){var n=e.data.pos,o=e.data.newPos,t=n.left-o.left,i=n.top-o.top;if(t||i){e.data.moved=!0;var a=e.elm.style;a.transform=a.WebkitTransform="translate("+t+"px,"+i+"px)",a.transitionDuration="0s"}}function Bt(e,n){var o=n?Jp(n):Vp;if(o.test(e)){for(var t,i,a,r=[],p=[],l=o.lastIndex=0;t=o.exec(e);){i=t.index,i>l&&(p.push(a=e.slice(l,i)),r.push(JSON.stringify(a)));var s=Oo(t[1].trim());r.push("_s("+s+")"),p.push({"@binding":s}),l=i+t[0].length}return l<e.length&&(p.push(a=e.slice(l)),r.push(JSON.stringify(a))),{expression:r.join("+"),tokens:p}}}function Ft(e,n){var o=(n.warn,No(e,"class"));o&&(e.staticClass=JSON.stringify(o));var t=Do(e,"class",!1);t&&(e.classBinding=t)}function Ht(e){var n="";return e.staticClass&&(n+="staticClass:"+e.staticClass+","),e.classBinding&&(n+="class:"+e.classBinding+","),n}function Gt(e,n){var o=(n.warn,No(e,"style"));if(o){e.staticStyle=JSON.stringify(gp(o))}var t=Do(e,"style",!1);t&&(e.styleBinding=t)}function Kt(e){var n="";return e.staticStyle&&(n+="staticStyle:"+e.staticStyle+","),e.styleBinding&&(n+="style:("+e.styleBinding+"),"),n}function Vt(e,n){var o=n?jl:zl;return e.replace(o,function(e){return $l[e]})}function Wt(e,n){function o(n){c+=n,e=e.substring(n)}function t(e,o,t){var i,p;if(null==o&&(o=c),null==t&&(t=c),e&&(p=e.toLowerCase()),e)for(i=r.length-1;i>=0&&r[i].lowerCasedTag!==p;i--);else i=0;if(i>=0){for(var l=r.length-1;l>=i;l--)n.end&&n.end(r[l].tag,o,t);r.length=i,a=i&&r[i-1].tag}else"br"===p?n.start&&n.start(e,[],!0,o,t):"p"===p&&(n.start&&n.start(e,[],!1,o,t),n.end&&n.end(e,o,t))}for(var i,a,r=[],p=n.expectHTML,l=n.isUnaryTag||va,s=n.canBeLeftOpenTag||va,c=0;e;){if(i=e,a&&_l(a)){var m=0,d=a.toLowerCase(),f=Cl[d]||(Cl[d]=new RegExp("([\\s\\S]*?)(</"+d+"[^>]*>)","i")),u=e.replace(f,function(e,o,t){return m=t.length,_l(d)||"noscript"===d||(o=o.replace(/<!\--([\s\S]*?)-->/g,"$1").replace(/<!\[CDATA\[([\s\S]*?)]]>/g,"$1")),Al(d,o)&&(o=o.slice(1)),n.chars&&n.chars(o),""});c+=e.length-u.length,e=u,t(d,c-m,c)}else{var b=e.indexOf("<");if(0===b){if(sl.test(e)){var h=e.indexOf("--\x3e");if(h>=0){n.shouldKeepComment&&n.comment(e.substring(4,h)),o(h+3);continue}}if(cl.test(e)){var g=e.indexOf("]>");if(g>=0){o(g+2);continue}}var v=e.match(ll);if(v){o(v[0].length);continue}var x=e.match(pl);if(x){var w=c;o(x[0].length),t(x[1],w,c);continue}var k=function(){var n=e.match(al);if(n){var t={tagName:n[1],attrs:[],start:c};o(n[0].length);for(var i,a;!(i=e.match(rl))&&(a=e.match(ol));)o(a[0].length),t.attrs.push(a);if(i)return t.unarySlash=i[1],o(i[0].length),t.end=c,t}}();if(k){!function(e){var o=e.tagName,i=e.unarySlash;p&&("p"===a&&nl(o)&&t(a),s(o)&&a===o&&t(o));for(var c=l(o)||!!i,m=e.attrs.length,d=new Array(m),f=0;f<m;f++){var u=e.attrs[f];ml&&-1===u[0].indexOf('""')&&(""===u[3]&&delete u[3],""===u[4]&&delete u[4],""===u[5]&&delete u[5]);var b=u[3]||u[4]||u[5]||"",h="a"===o&&"href"===u[1]?n.shouldDecodeNewlinesForHref:n.shouldDecodeNewlines;d[f]={name:u[1],value:Vt(b,h)}}c||(r.push({tag:o,lowerCasedTag:o.toLowerCase(),attrs:d}),a=o),n.start&&n.start(o,d,c,e.start,e.end)}(k),Al(a,e)&&o(1);continue}}var y=void 0,_=void 0,C=void 0;if(b>=0){for(_=e.slice(b);!(pl.test(_)||al.test(_)||sl.test(_)||cl.test(_)||(C=_.indexOf("<",1))<0);)b+=C,_=e.slice(b);y=e.substring(0,b),o(b)}b<0&&(y=e,e=""),n.chars&&y&&n.chars(y)}if(e===i){n.chars&&n.chars(e);break}}t()}function Jt(e,n,o){return{type:1,tag:e,attrsList:n,attrsMap:ui(n),parent:o,children:[]}}function Xt(e,n){function o(e){e.pre&&(p=!1),gl(e.tag)&&(l=!1);for(var o=0;o<hl.length;o++)hl[o](e,n)}dl=n.warn||To,gl=n.isPreTag||va,vl=n.mustUseProp||va,xl=n.getTagNamespace||va,ul=So(n.modules,"transformNode"),bl=So(n.modules,"preTransformNode"),hl=So(n.modules,"postTransformNode"),fl=n.delimiters;var t,i,a=[],r=!1!==n.preserveWhitespace,p=!1,l=!1;return Wt(e,{warn:dl,expectHTML:n.expectHTML,isUnaryTag:n.isUnaryTag,canBeLeftOpenTag:n.canBeLeftOpenTag,shouldDecodeNewlines:n.shouldDecodeNewlines,shouldDecodeNewlinesForHref:n.shouldDecodeNewlinesForHref,shouldKeepComment:n.comments,start:function(e,r,s){var c=i&&i.ns||xl(e);Ta&&"svg"===c&&(r=gi(r));var m=Jt(e,r,i);c&&(m.ns=c),hi(m)&&!Ra()&&(m.forbidden=!0);for(var d=0;d<bl.length;d++)m=bl[d](m,n)||m;if(p||(Yt(m),m.pre&&(p=!0)),gl(m.tag)&&(l=!0),p?Zt(m):m.processed||(oi(m),ii(m),li(m),Qt(m,n)),t?a.length||t.if&&(m.elseif||m.else)&&pi(t,{exp:m.elseif,block:m}):t=m,i&&!m.forbidden)if(m.elseif||m.else)ai(m,i);else if(m.slotScope){i.plain=!1;var f=m.slotTarget||'"default"';(i.scopedSlots||(i.scopedSlots={}))[f]=m}else i.children.push(m),m.parent=i;s?o(m):(i=m,a.push(m))},end:function(){var e=a[a.length-1],n=e.children[e.children.length-1];n&&3===n.type&&" "===n.text&&!l&&e.children.pop(),a.length-=1,i=a[a.length-1],o(e)},chars:function(e){if(i&&(!Ta||"textarea"!==i.tag||i.attrsMap.placeholder!==e)){var n=i.children;if(e=l||e.trim()?bi(i)?e:Nl(e):r&&n.length?" ":""){var o;!p&&" "!==e&&(o=Bt(e,fl))?n.push({type:2,expression:o.expression,tokens:o.tokens,text:e}):" "===e&&n.length&&" "===n[n.length-1].text||n.push({type:3,text:e})}}},comment:function(e){i.children.push({type:3,text:e,isComment:!0})}}),t}function Yt(e){null!=No(e,"v-pre")&&(e.pre=!0)}function Zt(e){var n=e.attrsList.length;if(n)for(var o=e.attrs=new Array(n),t=0;t<n;t++)o[t]={name:e.attrsList[t].name,value:JSON.stringify(e.attrsList[t].value)};else e.pre||(e.plain=!0)}function Qt(e,n){ei(e),e.plain=!e.key&&!e.attrsList.length,ni(e),si(e),ci(e);for(var o=0;o<ul.length;o++)e=ul[o](e,n)||e;mi(e)}function ei(e){var n=Do(e,"key");n&&(e.key=n)}function ni(e){var n=Do(e,"ref");n&&(e.ref=n,e.refInFor=di(e))}function oi(e){var n;if(n=No(e,"v-for")){var o=ti(n);o&&k(e,o)}}function ti(e){var n=e.match(El);if(n){var o={};o.for=n[2].trim();var t=n[1].trim().replace(Pl,""),i=t.match(Ml);return i?(o.alias=t.replace(Ml,""),o.iterator1=i[1].trim(),i[2]&&(o.iterator2=i[2].trim())):o.alias=t,o}}function ii(e){var n=No(e,"v-if");if(n)e.if=n,pi(e,{exp:n,block:e});else{null!=No(e,"v-else")&&(e.else=!0);var o=No(e,"v-else-if");o&&(e.elseif=o)}}function ai(e,n){var o=ri(n.children);o&&o.if&&pi(o,{exp:e.elseif,block:e})}function ri(e){for(var n=e.length;n--;){if(1===e[n].type)return e[n];e.pop()}}function pi(e,n){e.ifConditions||(e.ifConditions=[]),e.ifConditions.push(n)}function li(e){null!=No(e,"v-once")&&(e.once=!0)}function si(e){if("slot"===e.tag)e.slotName=Do(e,"name");else{var n;"template"===e.tag?(n=No(e,"scope"),e.slotScope=n||No(e,"slot-scope")):(n=No(e,"slot-scope"))&&(e.slotScope=n);var o=Do(e,"slot");o&&(e.slotTarget='""'===o?'"default"':o,"template"===e.tag||e.slotScope||Mo(e,"slot",o))}}function ci(e){var n;(n=Do(e,"is"))&&(e.component=n),null!=No(e,"inline-template")&&(e.inlineTemplate=!0)}function mi(e){var n,o,t,i,a,r,p,l=e.attrsList;for(n=0,o=l.length;n<o;n++)if(t=i=l[n].name,a=l[n].value,Sl.test(t))if(e.hasBindings=!0,r=fi(t),r&&(t=t.replace(Dl,"")),Ll.test(t))t=t.replace(Ll,""),a=Oo(a),p=!1,r&&(r.prop&&(p=!0,"innerHtml"===(t=fa(t))&&(t="innerHTML")),r.camel&&(t=fa(t)),r.sync&&Lo(e,"update:"+fa(t),Uo(a,"$event"))),p||!e.component&&vl(e.tag,e.attrsMap.type,t)?Eo(e,t,a):Mo(e,t,a);else if(Tl.test(t))t=t.replace(Tl,""),Lo(e,t,a,r,!1,dl);else{t=t.replace(Sl,"");var s=t.match(Il),c=s&&s[1];c&&(t=t.slice(0,-(c.length+1))),Io(e,t,i,a,c,r)}else{Mo(e,t,JSON.stringify(a)),!e.component&&"muted"===t&&vl(e.tag,e.attrsMap.type,t)&&Eo(e,t,"true")}}function di(e){for(var n=e;n;){if(void 0!==n.for)return!0;n=n.parent}return!1}function fi(e){var n=e.match(Dl);if(n){var o={};return n.forEach(function(e){o[e.slice(1)]=!0}),o}}function ui(e){for(var n={},o=0,t=e.length;o<t;o++)n[e[o].name]=e[o].value;return n}function bi(e){return"script"===e.tag||"style"===e.tag}function hi(e){return"style"===e.tag||"script"===e.tag&&(!e.attrsMap.type||"text/javascript"===e.attrsMap.type)}function gi(e){for(var n=[],o=0;o<e.length;o++){var t=e[o];Rl.test(t.name)||(t.name=t.name.replace(Ul,""),n.push(t))}return n}function vi(e,n){if("input"===e.tag){var o=e.attrsMap;if(!o["v-model"])return;var t;if((o[":type"]||o["v-bind:type"])&&(t=Do(e,"type")),o.type||t||!o["v-bind"]||(t="("+o["v-bind"]+").type"),t){var i=No(e,"v-if",!0),a=i?"&&("+i+")":"",r=null!=No(e,"v-else",!0),p=No(e,"v-else-if",!0),l=xi(e);oi(l),Po(l,"type","checkbox"),Qt(l,n),l.processed=!0,l.if="("+t+")==='checkbox'"+a,pi(l,{exp:l.if,block:l});var s=xi(e);No(s,"v-for",!0),Po(s,"type","radio"),Qt(s,n),pi(l,{exp:"("+t+")==='radio'"+a,block:s});var c=xi(e);return No(c,"v-for",!0),Po(c,":type",t),Qt(c,n),pi(l,{exp:i,block:c}),r?l.else=!0:p&&(l.elseif=p),l}}}function xi(e){return Jt(e.tag,e.attrsList.slice(),e.parent)}function wi(e,n){n.value&&Eo(e,"textContent","_s("+n.value+")")}function ki(e,n){n.value&&Eo(e,"innerHTML","_s("+n.value+")")}function yi(e,n){e&&(wl=Gl(n.staticKeys||""),kl=n.isReservedTag||va,Ci(e),$i(e,!1))}function _i(e){return u("type,tag,attrsList,attrsMap,plain,parent,children,attrs"+(e?","+e:""))}function Ci(e){if(e.static=zi(e),1===e.type){if(!kl(e.tag)&&"slot"!==e.tag&&null==e.attrsMap["inline-template"])return;for(var n=0,o=e.children.length;n<o;n++){var t=e.children[n];Ci(t),t.static||(e.static=!1)}if(e.ifConditions)for(var i=1,a=e.ifConditions.length;i<a;i++){var r=e.ifConditions[i].block;Ci(r),r.static||(e.static=!1)}}}function $i(e,n){if(1===e.type){if((e.static||e.once)&&(e.staticInFor=n),e.static&&e.children.length&&(1!==e.children.length||3!==e.children[0].type))return void(e.staticRoot=!0);if(e.staticRoot=!1,e.children)for(var o=0,t=e.children.length;o<t;o++)$i(e.children[o],n||!!e.for);if(e.ifConditions)for(var i=1,a=e.ifConditions.length;i<a;i++)$i(e.ifConditions[i].block,n)}}function zi(e){return 2!==e.type&&(3===e.type||!(!e.pre&&(e.hasBindings||e.if||e.for||sa(e.tag)||!kl(e.tag)||ji(e)||!Object.keys(e).every(wl))))}function ji(e){for(;e.parent;){if(e=e.parent,"template"!==e.tag)return!1;if(e.for)return!0}return!1}function Oi(e,n,o){var t=n?"nativeOn:{":"on:{";for(var i in e)t+='"'+i+'":'+Ai(i,e[i])+",";return t.slice(0,-1)+"}"}function Ai(e,n){if(!n)return"function(){}";if(Array.isArray(n))return"["+n.map(function(n){return Ai(e,n)}).join(",")+"]";var o=Vl.test(n.value),t=Kl.test(n.value);if(n.modifiers){var i="",a="",r=[];for(var p in n.modifiers)if(Yl[p])a+=Yl[p],Wl[p]&&r.push(p);else if("exact"===p){var l=n.modifiers;a+=Xl(["ctrl","shift","alt","meta"].filter(function(e){return!l[e]}).map(function(e){return"$event."+e+"Key"}).join("||"))}else r.push(p);r.length&&(i+=Ti(r)),a&&(i+=a);return"function($event){"+i+(o?"return "+n.value+"($event)":t?"return ("+n.value+")($event)":n.value)+"}"}return o||t?n.value:"function($event){"+n.value+"}"}function Ti(e){return"if(!('button' in $event)&&"+e.map(Si).join("&&")+")return null;"}function Si(e){var n=parseInt(e,10);if(n)return"$event.keyCode!=="+n;var o=Wl[e],t=Jl[e];return"_k($event.keyCode,"+JSON.stringify(e)+","+JSON.stringify(o)+",$event.key,"+JSON.stringify(t)+")"}function Ei(e,n){e.wrapListeners=function(e){return"_g("+e+","+n.value+")"}}function Mi(e,n){e.wrapData=function(o){return"_b("+o+",'"+e.tag+"',"+n.value+","+(n.modifiers&&n.modifiers.prop?"true":"false")+(n.modifiers&&n.modifiers.sync?",true":"")+")"}}function Pi(e,n){var o=new Ql(n);return{render:"with(this){return "+(e?Ii(e,o):'_c("div")')+"}",staticRenderFns:o.staticRenderFns}}function Ii(e,n){if(e.staticRoot&&!e.staticProcessed)return Li(e,n);if(e.once&&!e.onceProcessed)return Di(e,n);if(e.for&&!e.forProcessed)return Ui(e,n);if(e.if&&!e.ifProcessed)return Ni(e,n);if("template"!==e.tag||e.slotTarget){if("slot"===e.tag)return Qi(e,n);var o;if(e.component)o=ea(e.component,e,n);else{var t=e.plain?void 0:qi(e,n),i=e.inlineTemplate?null:Vi(e,n,!0);o="_c('"+e.tag+"'"+(t?","+t:"")+(i?","+i:"")+")"}for(var a=0;a<n.transforms.length;a++)o=n.transforms[a](e,o);return o}return Vi(e,n)||"void 0"}function Li(e,n){return e.staticProcessed=!0,n.staticRenderFns.push("with(this){return "+Ii(e,n)+"}"),"_m("+(n.staticRenderFns.length-1)+(e.staticInFor?",true":"")+")"}function Di(e,n){if(e.onceProcessed=!0,e.if&&!e.ifProcessed)return Ni(e,n);if(e.staticInFor){for(var o="",t=e.parent;t;){if(t.for){o=t.key;break}t=t.parent}return o?"_o("+Ii(e,n)+","+n.onceId+++","+o+")":Ii(e,n)}return Li(e,n)}function Ni(e,n,o,t){return e.ifProcessed=!0,Ri(e.ifConditions.slice(),n,o,t)}function Ri(e,n,o,t){function i(e){return o?o(e,n):e.once?Di(e,n):Ii(e,n)}if(!e.length)return t||"_e()";var a=e.shift();return a.exp?"("+a.exp+")?"+i(a.block)+":"+Ri(e,n,o,t):""+i(a.block)}function Ui(e,n,o,t){var i=e.for,a=e.alias,r=e.iterator1?","+e.iterator1:"",p=e.iterator2?","+e.iterator2:"";return e.forProcessed=!0,(t||"_l")+"(("+i+"),function("+a+r+p+"){return "+(o||Ii)(e,n)+"})"}function qi(e,n){var o="{",t=Bi(e,n);t&&(o+=t+","),e.key&&(o+="key:"+e.key+","),e.ref&&(o+="ref:"+e.ref+","),e.refInFor&&(o+="refInFor:true,"),e.pre&&(o+="pre:true,"),e.component&&(o+='tag:"'+e.tag+'",');for(var i=0;i<n.dataGenFns.length;i++)o+=n.dataGenFns[i](e);if(e.attrs&&(o+="attrs:{"+na(e.attrs)+"},"),e.props&&(o+="domProps:{"+na(e.props)+"},"),e.events&&(o+=Oi(e.events,!1,n.warn)+","),e.nativeEvents&&(o+=Oi(e.nativeEvents,!0,n.warn)+","),e.slotTarget&&!e.slotScope&&(o+="slot:"+e.slotTarget+","),e.scopedSlots&&(o+=Hi(e.scopedSlots,n)+","),e.model&&(o+="model:{value:"+e.model.value+",callback:"+e.model.callback+",expression:"+e.model.expression+"},"),e.inlineTemplate){var a=Fi(e,n);a&&(o+=a+",")}return o=o.replace(/,$/,"")+"}",e.wrapData&&(o=e.wrapData(o)),e.wrapListeners&&(o=e.wrapListeners(o)),o}function Bi(e,n){var o=e.directives;if(o){var t,i,a,r,p="directives:[",l=!1;for(t=0,i=o.length;t<i;t++){a=o[t],r=!0;var s=n.directives[a.name];s&&(r=!!s(e,a,n.warn)),r&&(l=!0,p+='{name:"'+a.name+'",rawName:"'+a.rawName+'"'+(a.value?",value:("+a.value+"),expression:"+JSON.stringify(a.value):"")+(a.arg?',arg:"'+a.arg+'"':"")+(a.modifiers?",modifiers:"+JSON.stringify(a.modifiers):"")+"},")}return l?p.slice(0,-1)+"]":void 0}}function Fi(e,n){var o=e.children[0];if(1===o.type){var t=Pi(o,n.options);return"inlineTemplate:{render:function(){"+t.render+"},staticRenderFns:["+t.staticRenderFns.map(function(e){return"function(){"+e+"}"}).join(",")+"]}"}}function Hi(e,n){return"scopedSlots:_u(["+Object.keys(e).map(function(o){return Gi(o,e[o],n)}).join(",")+"])"}function Gi(e,n,o){return n.for&&!n.forProcessed?Ki(e,n,o):"{key:"+e+",fn:function("+String(n.slotScope)+"){return "+("template"===n.tag?n.if?n.if+"?"+(Vi(n,o)||"undefined")+":undefined":Vi(n,o)||"undefined":Ii(n,o))+"}}"}function Ki(e,n,o){var t=n.for,i=n.alias,a=n.iterator1?","+n.iterator1:"",r=n.iterator2?","+n.iterator2:"";return n.forProcessed=!0,"_l(("+t+"),function("+i+a+r+"){return "+Gi(e,n,o)+"})"}function Vi(e,n,o,t,i){var a=e.children;if(a.length){var r=a[0];if(1===a.length&&r.for&&"template"!==r.tag&&"slot"!==r.tag)return(t||Ii)(r,n);var p=o?Wi(a,n.maybeComponent):0,l=i||Xi;return"["+a.map(function(e){return l(e,n)}).join(",")+"]"+(p?","+p:"")}}function Wi(e,n){for(var o=0,t=0;t<e.length;t++){var i=e[t];if(1===i.type){if(Ji(i)||i.ifConditions&&i.ifConditions.some(function(e){return Ji(e.block)})){o=2;break}(n(i)||i.ifConditions&&i.ifConditions.some(function(e){return n(e.block)}))&&(o=1)}}return o}function Ji(e){return void 0!==e.for||"template"===e.tag||"slot"===e.tag}function Xi(e,n){return 1===e.type?Ii(e,n):3===e.type&&e.isComment?Zi(e):Yi(e)}function Yi(e){return"_v("+(2===e.type?e.expression:oa(JSON.stringify(e.text)))+")"}function Zi(e){return"_e("+JSON.stringify(e.text)+")"}function Qi(e,n){var o=e.slotName||'"default"',t=Vi(e,n),i="_t("+o+(t?","+t:""),a=e.attrs&&"{"+e.attrs.map(function(e){return fa(e.name)+":"+e.value}).join(",")+"}",r=e.attrsMap["v-bind"];return!a&&!r||t||(i+=",null"),a&&(i+=","+a),r&&(i+=(a?"":",null")+","+r),i+")"}function ea(e,n,o){var t=n.inlineTemplate?null:Vi(n,o,!0);return"_c("+e+","+qi(n,o)+(t?","+t:"")+")"}function na(e){for(var n="",o=0;o<e.length;o++){var t=e[o];n+='"'+t.name+'":'+oa(t.value)+","}return n.slice(0,-1)}function oa(e){return e.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}function ta(e,n){try{return new Function(e)}catch(o){return n.push({err:o,code:e}),_}}function ia(e){var n=Object.create(null);return function(o,t,i){t=k({},t);t.warn;delete t.warn;var a=t.delimiters?String(t.delimiters)+o:o;if(n[a])return n[a];var r=e(o,t),p={},l=[];return p.render=ta(r.render,l),p.staticRenderFns=r.staticRenderFns.map(function(e){return ta(e,l)}),n[a]=p}}function aa(e){return yl=yl||document.createElement("div"),yl.innerHTML=e?'<a href="\n"/>':'<div a="\n"/>',yl.innerHTML.indexOf("&#10;")>0}function ra(e){if(e.outerHTML)return e.outerHTML;var n=document.createElement("div");return n.appendChild(e.cloneNode(!0)),n.innerHTML}/*!
2
+ * Vue.js v2.5.17
3
+ * (c) 2014-2018 Evan You
4
+ * Released under the MIT License.
5
+ */
6
+ var pa=Object.freeze({}),la=Object.prototype.toString,sa=u("slot,component",!0),ca=u("key,ref,slot,slot-scope,is"),ma=Object.prototype.hasOwnProperty,da=/-(\w)/g,fa=g(function(e){return e.replace(da,function(e,n){return n?n.toUpperCase():""})}),ua=g(function(e){return e.charAt(0).toUpperCase()+e.slice(1)}),ba=/\B([A-Z])/g,ha=g(function(e){return e.replace(ba,"-$1").toLowerCase()}),ga=Function.prototype.bind?x:v,va=function(e,n,o){return!1},xa=function(e){return e},wa="data-server-rendered",ka=["component","directive","filter"],ya=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured"],_a={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:va,isReservedAttr:va,isUnknownElement:va,getTagNamespace:_,parsePlatformTagName:xa,mustUseProp:va,_lifecycleHooks:ya},Ca=/[^\w.$]/,$a="__proto__"in{},za="undefined"!=typeof window,ja="undefined"!=typeof WXEnvironment&&!!WXEnvironment.platform,Oa=ja&&WXEnvironment.platform.toLowerCase(),Aa=za&&window.navigator.userAgent.toLowerCase(),Ta=Aa&&/msie|trident/.test(Aa),Sa=Aa&&Aa.indexOf("msie 9.0")>0,Ea=Aa&&Aa.indexOf("edge/")>0,Ma=(Aa&&Aa.indexOf("android"),Aa&&/iphone|ipad|ipod|ios/.test(Aa)||"ios"===Oa),Pa=(Aa&&/chrome\/\d+/.test(Aa),{}.watch),Ia=!1;if(za)try{var La={};Object.defineProperty(La,"passive",{get:function(){Ia=!0}}),window.addEventListener("test-passive",null,La)}catch(e){}var Da,Na,Ra=function(){return void 0===Da&&(Da=!za&&!ja&&void 0!==e&&"server"===e.process.env.VUE_ENV),Da},Ua=za&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__,qa="undefined"!=typeof Symbol&&T(Symbol)&&"undefined"!=typeof Reflect&&T(Reflect.ownKeys);Na="undefined"!=typeof Set&&T(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var Ba=_,Fa=0,Ha=function(){this.id=Fa++,this.subs=[]};Ha.prototype.addSub=function(e){this.subs.push(e)},Ha.prototype.removeSub=function(e){b(this.subs,e)},Ha.prototype.depend=function(){Ha.target&&Ha.target.addDep(this)},Ha.prototype.notify=function(){for(var e=this.subs.slice(),n=0,o=e.length;n<o;n++)e[n].update()},Ha.target=null;var Ga=[],Ka=function(e,n,o,t,i,a,r,p){this.tag=e,this.data=n,this.children=o,this.text=t,this.elm=i,this.ns=void 0,this.context=a,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=n&&n.key,this.componentOptions=r,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=p,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1},Va={child:{configurable:!0}};Va.child.get=function(){return this.componentInstance},Object.defineProperties(Ka.prototype,Va);var Wa=function(e){void 0===e&&(e="");var n=new Ka;return n.text=e,n.isComment=!0,n},Ja=Array.prototype,Xa=Object.create(Ja);["push","pop","shift","unshift","splice","sort","reverse"].forEach(function(e){var n=Ja[e];O(Xa,e,function(){for(var o=[],t=arguments.length;t--;)o[t]=arguments[t];var i,a=n.apply(this,o),r=this.__ob__;switch(e){case"push":case"unshift":i=o;break;case"splice":i=o.slice(2)}return i&&r.observeArray(i),r.dep.notify(),a})});var Ya=Object.getOwnPropertyNames(Xa),Za=!0,Qa=function(e){if(this.value=e,this.dep=new Ha,this.vmCount=0,O(e,"__ob__",this),Array.isArray(e)){($a?L:D)(e,Xa,Ya),this.observeArray(e)}else this.walk(e)};Qa.prototype.walk=function(e){for(var n=Object.keys(e),o=0;o<n.length;o++)R(e,n[o])},Qa.prototype.observeArray=function(e){for(var n=0,o=e.length;n<o;n++)N(e[n])};var er=_a.optionMergeStrategies;er.data=function(e,n,o){return o?H(e,n,o):n&&"function"!=typeof n?e:H(e,n)},ya.forEach(function(e){er[e]=G}),ka.forEach(function(e){er[e+"s"]=K}),er.watch=function(e,n,o,t){if(e===Pa&&(e=void 0),n===Pa&&(n=void 0),!n)return Object.create(e||null);if(!e)return n;var i={};k(i,e);for(var a in n){var r=i[a],p=n[a];r&&!Array.isArray(r)&&(r=[r]),i[a]=r?r.concat(p):Array.isArray(p)?p:[p]}return i},er.props=er.methods=er.inject=er.computed=function(e,n,o,t){if(!e)return n;var i=Object.create(null);return k(i,e),n&&k(i,n),i},er.provide=H;var nr,or,tr=function(e,n){return void 0===n?e:n},ir=[],ar=!1,rr=!1;if(void 0!==o&&T(o))or=function(){o(re)};else if("undefined"==typeof MessageChannel||!T(MessageChannel)&&"[object MessageChannelConstructor]"!==MessageChannel.toString())or=function(){setTimeout(re,0)};else{var pr=new MessageChannel,lr=pr.port2;pr.port1.onmessage=re,or=function(){lr.postMessage(1)}}if("undefined"!=typeof Promise&&T(Promise)){var sr=Promise.resolve();nr=function(){sr.then(re),Ma&&setTimeout(_)}}else nr=or;var cr,mr=new Na,dr=g(function(e){var n="&"===e.charAt(0);e=n?e.slice(1):e;var o="~"===e.charAt(0);e=o?e.slice(1):e;var t="!"===e.charAt(0);return e=t?e.slice(1):e,{name:e,once:o,capture:t,passive:n}}),fr=null,ur=[],br=[],hr={},gr=!1,vr=!1,xr=0,wr=0,kr=function(e,n,o,t,i){this.vm=e,i&&(e._watcher=this),e._watchers.push(this),t?(this.deep=!!t.deep,this.user=!!t.user,this.lazy=!!t.lazy,this.sync=!!t.sync):this.deep=this.user=this.lazy=this.sync=!1,this.cb=o,this.id=++wr,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new Na,this.newDepIds=new Na,this.expression="","function"==typeof n?this.getter=n:(this.getter=A(n),this.getter||(this.getter=function(){})),this.value=this.lazy?void 0:this.get()};kr.prototype.get=function(){S(this);var e,n=this.vm;try{e=this.getter.call(n,n)}catch(e){if(!this.user)throw e;te(e,n,'getter for watcher "'+this.expression+'"')}finally{this.deep&&se(e),E(),this.cleanupDeps()}return e},kr.prototype.addDep=function(e){var n=e.id;this.newDepIds.has(n)||(this.newDepIds.add(n),this.newDeps.push(e),this.depIds.has(n)||e.addSub(this))},kr.prototype.cleanupDeps=function(){for(var e=this,n=this.deps.length;n--;){var o=e.deps[n];e.newDepIds.has(o.id)||o.removeSub(e)}var t=this.depIds;this.depIds=this.newDepIds,this.newDepIds=t,this.newDepIds.clear(),t=this.deps,this.deps=this.newDeps,this.newDeps=t,this.newDeps.length=0},kr.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():He(this)},kr.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||l(e)||this.deep){var n=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,n)}catch(e){te(e,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,e,n)}}},kr.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},kr.prototype.depend=function(){for(var e=this,n=this.deps.length;n--;)e.deps[n].depend()},kr.prototype.teardown=function(){var e=this;if(this.active){this.vm._isBeingDestroyed||b(this.vm._watchers,this);for(var n=this.deps.length;n--;)e.deps[n].removeSub(e);this.active=!1}};var yr={enumerable:!0,configurable:!0,get:_,set:_},_r={lazy:!0};gn(vn.prototype);var Cr={init:function(e,n,o,t){if(e.componentInstance&&!e.componentInstance._isDestroyed&&e.data.keepAlive){var i=e;Cr.prepatch(i,i)}else{(e.componentInstance=_n(e,fr,o,t)).$mount(n?e.elm:void 0,n)}},prepatch:function(e,n){var o=n.componentOptions;Pe(n.componentInstance=e.componentInstance,o.propsData,o.listeners,n,o.children)},insert:function(e){var n=e.context,o=e.componentInstance;o._isMounted||(o._isMounted=!0,Ne(o,"mounted")),e.data.keepAlive&&(n._isMounted?Be(o):Le(o,!0))},destroy:function(e){var n=e.componentInstance;n._isDestroyed||(e.data.keepAlive?De(n,!0):n.$destroy())}},$r=Object.keys(Cr),zr=1,jr=2,Or=0;!function(e){e.prototype._init=function(e){var n=this;n._uid=Or++,n._isVue=!0,e&&e._isComponent?Sn(n,e):n.$options=X(En(n.constructor),e||{},n),n._renderProxy=n,n._self=n,Ee(n),$e(n),Tn(n),Ne(n,"beforeCreate"),tn(n),Ke(n),on(n),Ne(n,"created"),n.$options.el&&n.$mount(n.$options.el)}}(In),function(e){var n={};n.get=function(){return this._data};var o={};o.get=function(){return this._props},Object.defineProperty(e.prototype,"$data",n),Object.defineProperty(e.prototype,"$props",o),e.prototype.$set=U,e.prototype.$delete=q,e.prototype.$watch=function(e,n,o){var t=this;if(s(n))return nn(t,e,n,o);o=o||{},o.user=!0;var i=new kr(t,e,n,o);return o.immediate&&n.call(t,i.value),function(){i.teardown()}}}(In),function(e){var n=/^hook:/;e.prototype.$on=function(e,o){var t=this,i=this;if(Array.isArray(e))for(var a=0,r=e.length;a<r;a++)t.$on(e[a],o);else(i._events[e]||(i._events[e]=[])).push(o),n.test(e)&&(i._hasHookEvent=!0);return i},e.prototype.$once=function(e,n){function o(){t.$off(e,o),n.apply(t,arguments)}var t=this;return o.fn=n,t.$on(e,o),t},e.prototype.$off=function(e,n){var o=this,t=this;if(!arguments.length)return t._events=Object.create(null),t;if(Array.isArray(e)){for(var i=0,a=e.length;i<a;i++)o.$off(e[i],n);return t}var r=t._events[e];if(!r)return t;if(!n)return t._events[e]=null,t;if(n)for(var p,l=r.length;l--;)if((p=r[l])===n||p.fn===n){r.splice(l,1);break}return t},e.prototype.$emit=function(e){var n=this,o=n._events[e];if(o){o=o.length>1?w(o):o;for(var t=w(arguments,1),i=0,a=o.length;i<a;i++)try{o[i].apply(n,t)}catch(o){te(o,n,'event handler for "'+e+'"')}}return n}}(In),function(e){e.prototype._update=function(e,n){var o=this;o._isMounted&&Ne(o,"beforeUpdate");var t=o.$el,i=o._vnode,a=fr;fr=o,o._vnode=e,i?o.$el=o.__patch__(i,e):(o.$el=o.__patch__(o.$el,e,n,!1,o.$options._parentElm,o.$options._refElm),o.$options._parentElm=o.$options._refElm=null),fr=a,t&&(t.__vue__=null),o.$el&&(o.$el.__vue__=o),o.$vnode&&o.$parent&&o.$vnode===o.$parent._vnode&&(o.$parent.$el=o.$el)},e.prototype.$forceUpdate=function(){var e=this;e._watcher&&e._watcher.update()},e.prototype.$destroy=function(){var e=this;if(!e._isBeingDestroyed){Ne(e,"beforeDestroy"),e._isBeingDestroyed=!0;var n=e.$parent;!n||n._isBeingDestroyed||e.$options.abstract||b(n.$children,e),e._watcher&&e._watcher.teardown();for(var o=e._watchers.length;o--;)e._watchers[o].teardown();e._data.__ob__&&e._data.__ob__.vmCount--,e._isDestroyed=!0,e.__patch__(e._vnode,null),Ne(e,"destroyed"),e.$off(),e.$el&&(e.$el.__vue__=null),e.$vnode&&(e.$vnode.parent=null)}}}(In),function(e){gn(e.prototype),e.prototype.$nextTick=function(e){return le(e,this)},e.prototype._render=function(){var e=this,n=e.$options,o=n.render,t=n._parentVnode;t&&(e.$scopedSlots=t.data.scopedSlots||pa),e.$vnode=t;var i;try{i=o.call(e._renderProxy,e.$createElement)}catch(n){te(n,e,"render"),i=e._vnode}return i instanceof Ka||(i=Wa()),i.parent=t,i}}(In);var Ar=[String,RegExp,Array],Tr={name:"keep-alive",abstract:!0,props:{include:Ar,exclude:Ar,max:[String,Number]},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){var e=this;for(var n in e.cache)Gn(e.cache,n,e.keys)},mounted:function(){var e=this;this.$watch("include",function(n){Hn(e,function(e){return Fn(n,e)})}),this.$watch("exclude",function(n){Hn(e,function(e){return!Fn(n,e)})})},render:function(){var e=this.$slots.default,n=Ce(e),o=n&&n.componentOptions;if(o){var t=Bn(o),i=this,a=i.include,r=i.exclude;if(a&&(!t||!Fn(a,t))||r&&t&&Fn(r,t))return n;var p=this,l=p.cache,s=p.keys,c=null==n.key?o.Ctor.cid+(o.tag?"::"+o.tag:""):n.key;l[c]?(n.componentInstance=l[c].componentInstance,b(s,c),s.push(c)):(l[c]=n,s.push(c),this.max&&s.length>parseInt(this.max)&&Gn(l,s[0],s,this._vnode)),n.data.keepAlive=!0}return n||e&&e[0]}},Sr={KeepAlive:Tr};!function(e){var n={};n.get=function(){return _a},Object.defineProperty(e,"config",n),e.util={warn:Ba,extend:k,mergeOptions:X,defineReactive:R},e.set=U,e.delete=q,e.nextTick=le,e.options=Object.create(null),ka.forEach(function(n){e.options[n+"s"]=Object.create(null)}),e.options._base=e,k(e.options.components,Sr),Ln(e),Dn(e),Nn(e),qn(e)}(In),Object.defineProperty(In.prototype,"$isServer",{get:Ra}),Object.defineProperty(In.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(In,"FunctionalRenderContext",{value:vn}),In.version="2.5.17";var Er,Mr,Pr,Ir,Lr,Dr,Nr,Rr,Ur,qr=u("style,class"),Br=u("input,textarea,option,select,progress"),Fr=function(e,n,o){return"value"===o&&Br(e)&&"button"!==n||"selected"===o&&"option"===e||"checked"===o&&"input"===e||"muted"===o&&"video"===e},Hr=u("contenteditable,draggable,spellcheck"),Gr=u("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Kr="http://www.w3.org/1999/xlink",Vr=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},Wr=function(e){return Vr(e)?e.slice(6,e.length):""},Jr=function(e){return null==e||!1===e},Xr={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},Yr=u("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),Zr=u("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),Qr=function(e){return"pre"===e},ep=function(e){return Yr(e)||Zr(e)},np=Object.create(null),op=u("text,number,password,search,email,tel,url"),tp=Object.freeze({createElement:oo,createElementNS:to,createTextNode:io,createComment:ao,insertBefore:ro,removeChild:po,appendChild:lo,parentNode:so,nextSibling:co,tagName:mo,setTextContent:fo,setStyleScope:uo}),ip={create:function(e,n){bo(n)},update:function(e,n){e.data.ref!==n.data.ref&&(bo(e,!0),bo(n))},destroy:function(e){bo(e,!0)}},ap=new Ka("",{},[]),rp=["create","activate","update","remove","destroy"],pp={create:xo,update:xo,destroy:function(e){xo(e,ap)}},lp=Object.create(null),sp=[ip,pp],cp={create:Co,update:Co},mp={create:jo,update:jo},dp=/[\w).+\-_$\]]/,fp="__r",up="__c",bp={create:ot,update:ot},hp={create:tt,update:tt},gp=g(function(e){var n={},o=/;(?![^(]*\))/g,t=/:(.+)/;return e.split(o).forEach(function(e){if(e){var o=e.split(t);o.length>1&&(n[o[0].trim()]=o[1].trim())}}),n}),vp=/^--/,xp=/\s*!important$/,wp=function(e,n,o){if(vp.test(n))e.style.setProperty(n,o);else if(xp.test(o))e.style.setProperty(n,o.replace(xp,""),"important");else{var t=yp(n);if(Array.isArray(o))for(var i=0,a=o.length;i<a;i++)e.style[t]=o[i];else e.style[t]=o}},kp=["Webkit","Moz","ms"],yp=g(function(e){if(Ur=Ur||document.createElement("div").style,"filter"!==(e=fa(e))&&e in Ur)return e;for(var n=e.charAt(0).toUpperCase()+e.slice(1),o=0;o<kp.length;o++){var t=kp[o]+n;if(t in Ur)return t}}),_p={create:ct,update:ct},Cp=g(function(e){return{enterClass:e+"-enter",enterToClass:e+"-enter-to",enterActiveClass:e+"-enter-active",leaveClass:e+"-leave",leaveToClass:e+"-leave-to",leaveActiveClass:e+"-leave-active"}}),$p=za&&!Sa,zp="transition",jp="animation",Op="transition",Ap="transitionend",Tp="animation",Sp="animationend";$p&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Op="WebkitTransition",Ap="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Tp="WebkitAnimation",Sp="webkitAnimationEnd"));var Ep=za?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()},Mp=/\b(transform|all)(,|$)/,Pp=za?{create:$t,activate:$t,remove:function(e,n){!0!==e.data.show?yt(e,n):n()}}:{},Ip=[cp,mp,bp,hp,_p,Pp],Lp=Ip.concat(sp),Dp=function(e){function n(e){return new Ka(S.tagName(e).toLowerCase(),{},[],void 0,e)}function o(e,n){function o(){0==--o.listeners&&r(e)}return o.listeners=n,o}function r(e){var n=S.parentNode(e);i(n)&&S.removeChild(n,e)}function l(e,n,o,t,r,p,l){if(i(e.elm)&&i(p)&&(e=p[l]=P(e)),e.isRootInsert=!r,!s(e,n,o,t)){var c=e.data,m=e.children,u=e.tag;i(u)?(e.elm=e.ns?S.createElementNS(e.ns,u):S.createElement(u,e),g(e),f(e,m,n),i(c)&&h(e,n),d(o,e.elm,t)):a(e.isComment)?(e.elm=S.createComment(e.text),d(o,e.elm,t)):(e.elm=S.createTextNode(e.text),d(o,e.elm,t))}}function s(e,n,o,t){var r=e.data;if(i(r)){var p=i(e.componentInstance)&&r.keepAlive;if(i(r=r.hook)&&i(r=r.init)&&r(e,!1,o,t),i(e.componentInstance))return c(e,n),a(p)&&m(e,n,o,t),!0}}function c(e,n){i(e.data.pendingInsert)&&(n.push.apply(n,e.data.pendingInsert),e.data.pendingInsert=null),e.elm=e.componentInstance.$el,b(e)?(h(e,n),g(e)):(bo(e),n.push(e))}function m(e,n,o,t){for(var a,r=e;r.componentInstance;)if(r=r.componentInstance._vnode,i(a=r.data)&&i(a=a.transition)){for(a=0;a<A.activate.length;++a)A.activate[a](ap,r);n.push(r);break}d(o,e.elm,t)}function d(e,n,o){i(e)&&(i(o)?o.parentNode===e&&S.insertBefore(e,n,o):S.appendChild(e,n))}function f(e,n,o){if(Array.isArray(n))for(var t=0;t<n.length;++t)l(n[t],o,e.elm,null,!0,n,t);else p(e.text)&&S.appendChild(e.elm,S.createTextNode(String(e.text)))}function b(e){for(;e.componentInstance;)e=e.componentInstance._vnode;return i(e.tag)}function h(e,n){for(var o=0;o<A.create.length;++o)A.create[o](ap,e);j=e.data.hook,i(j)&&(i(j.create)&&j.create(ap,e),i(j.insert)&&n.push(e))}function g(e){var n;if(i(n=e.fnScopeId))S.setStyleScope(e.elm,n);else for(var o=e;o;)i(n=o.context)&&i(n=n.$options._scopeId)&&S.setStyleScope(e.elm,n),o=o.parent;i(n=fr)&&n!==e.context&&n!==e.fnContext&&i(n=n.$options._scopeId)&&S.setStyleScope(e.elm,n)}function v(e,n,o,t,i,a){for(;t<=i;++t)l(o[t],a,e,n,!1,o,t)}function x(e){var n,o,t=e.data;if(i(t))for(i(n=t.hook)&&i(n=n.destroy)&&n(e),n=0;n<A.destroy.length;++n)A.destroy[n](e);if(i(n=e.children))for(o=0;o<e.children.length;++o)x(e.children[o])}function w(e,n,o,t){for(;o<=t;++o){var a=n[o];i(a)&&(i(a.tag)?(k(a),x(a)):r(a.elm))}}function k(e,n){if(i(n)||i(e.data)){var t,a=A.remove.length+1;for(i(n)?n.listeners+=a:n=o(e.elm,a),i(t=e.componentInstance)&&i(t=t._vnode)&&i(t.data)&&k(t,n),t=0;t<A.remove.length;++t)A.remove[t](e,n);i(t=e.data.hook)&&i(t=t.remove)?t(e,n):n()}else r(e.elm)}function y(e,n,o,a,r){for(var p,s,c,m,d=0,f=0,u=n.length-1,b=n[0],h=n[u],g=o.length-1,x=o[0],k=o[g],y=!r;d<=u&&f<=g;)t(b)?b=n[++d]:t(h)?h=n[--u]:ho(b,x)?(C(b,x,a),b=n[++d],x=o[++f]):ho(h,k)?(C(h,k,a),h=n[--u],k=o[--g]):ho(b,k)?(C(b,k,a),y&&S.insertBefore(e,b.elm,S.nextSibling(h.elm)),b=n[++d],k=o[--g]):ho(h,x)?(C(h,x,a),y&&S.insertBefore(e,h.elm,b.elm),h=n[--u],x=o[++f]):(t(p)&&(p=vo(n,d,u)),s=i(x.key)?p[x.key]:_(x,n,d,u),t(s)?l(x,a,e,b.elm,!1,o,f):(c=n[s],ho(c,x)?(C(c,x,a),n[s]=void 0,y&&S.insertBefore(e,c.elm,b.elm)):l(x,a,e,b.elm,!1,o,f)),x=o[++f]);d>u?(m=t(o[g+1])?null:o[g+1].elm,v(e,m,o,f,g,a)):f>g&&w(e,n,d,u)}function _(e,n,o,t){for(var a=o;a<t;a++){var r=n[a];if(i(r)&&ho(e,r))return a}}function C(e,n,o,r){if(e!==n){var p=n.elm=e.elm;if(a(e.isAsyncPlaceholder))return void(i(n.asyncFactory.resolved)?z(e.elm,n,o):n.isAsyncPlaceholder=!0);if(a(n.isStatic)&&a(e.isStatic)&&n.key===e.key&&(a(n.isCloned)||a(n.isOnce)))return void(n.componentInstance=e.componentInstance);var l,s=n.data;i(s)&&i(l=s.hook)&&i(l=l.prepatch)&&l(e,n);var c=e.children,m=n.children;if(i(s)&&b(n)){for(l=0;l<A.update.length;++l)A.update[l](e,n);i(l=s.hook)&&i(l=l.update)&&l(e,n)}t(n.text)?i(c)&&i(m)?c!==m&&y(p,c,m,o,r):i(m)?(i(e.text)&&S.setTextContent(p,""),v(p,null,m,0,m.length-1,o)):i(c)?w(p,c,0,c.length-1):i(e.text)&&S.setTextContent(p,""):e.text!==n.text&&S.setTextContent(p,n.text),i(s)&&i(l=s.hook)&&i(l=l.postpatch)&&l(e,n)}}function $(e,n,o){if(a(o)&&i(e.parent))e.parent.data.pendingInsert=n;else for(var t=0;t<n.length;++t)n[t].data.hook.insert(n[t])}function z(e,n,o,t){var r,p=n.tag,l=n.data,s=n.children;if(t=t||l&&l.pre,n.elm=e,a(n.isComment)&&i(n.asyncFactory))return n.isAsyncPlaceholder=!0,!0;if(i(l)&&(i(r=l.hook)&&i(r=r.init)&&r(n,!0),i(r=n.componentInstance)))return c(n,o),!0;if(i(p)){if(i(s))if(e.hasChildNodes())if(i(r=l)&&i(r=r.domProps)&&i(r=r.innerHTML)){if(r!==e.innerHTML)return!1}else{for(var m=!0,d=e.firstChild,u=0;u<s.length;u++){if(!d||!z(d,s[u],o,t)){m=!1;break}d=d.nextSibling}if(!m||d)return!1}else f(n,s,o);if(i(l)){var b=!1;for(var g in l)if(!E(g)){b=!0,h(n,o);break}!b&&l.class&&se(l.class)}}else e.data!==n.text&&(e.data=n.text);return!0}var j,O,A={},T=e.modules,S=e.nodeOps;for(j=0;j<rp.length;++j)for(A[rp[j]]=[],O=0;O<T.length;++O)i(T[O][rp[j]])&&A[rp[j]].push(T[O][rp[j]]);var E=u("attrs,class,staticClass,staticStyle,key");return function(e,o,r,p,s,c){if(t(o))return void(i(e)&&x(e));var m=!1,d=[];if(t(e))m=!0,l(o,d,s,c);else{var f=i(e.nodeType);if(!f&&ho(e,o))C(e,o,d,p);else{if(f){if(1===e.nodeType&&e.hasAttribute(wa)&&(e.removeAttribute(wa),r=!0),a(r)&&z(e,o,d))return $(o,d,!0),e;e=n(e)}var u=e.elm,h=S.parentNode(u);if(l(o,d,u._leaveCb?null:h,S.nextSibling(u)),i(o.parent))for(var g=o.parent,v=b(o);g;){for(var k=0;k<A.destroy.length;++k)A.destroy[k](g);if(g.elm=o.elm,v){for(var y=0;y<A.create.length;++y)A.create[y](ap,g);var _=g.data.hook.insert;if(_.merged)for(var j=1;j<_.fns.length;j++)_.fns[j]()}else bo(g);g=g.parent}i(h)?w(h,[e],0,0):i(e.tag)&&x(e)}}return $(o,d,m),o.elm}}({nodeOps:tp,modules:Lp});Sa&&document.addEventListener("selectionchange",function(){var e=document.activeElement;e&&e.vmodel&&Et(e,"input")});var Np={inserted:function(e,n,o,t){"select"===o.tag?(t.elm&&!t.elm._vOptions?fe(o,"postpatch",function(){Np.componentUpdated(e,n,o)}):zt(e,n,o.context),e._vOptions=[].map.call(e.options,At)):("textarea"===o.tag||op(e.type))&&(e._vModifiers=n.modifiers,n.modifiers.lazy||(e.addEventListener("compositionstart",Tt),e.addEventListener("compositionend",St),e.addEventListener("change",St),Sa&&(e.vmodel=!0)))},componentUpdated:function(e,n,o){if("select"===o.tag){zt(e,n,o.context);var t=e._vOptions,i=e._vOptions=[].map.call(e.options,At);if(i.some(function(e,n){return!C(e,t[n])})){(e.multiple?n.value.some(function(e){return Ot(e,i)}):n.value!==n.oldValue&&Ot(n.value,i))&&Et(e,"change")}}}},Rp={bind:function(e,n,o){var t=n.value;o=Mt(o);var i=o.data&&o.data.transition,a=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;t&&i?(o.data.show=!0,kt(o,function(){e.style.display=a})):e.style.display=t?a:"none"},update:function(e,n,o){var t=n.value;!t!=!n.oldValue&&(o=Mt(o),o.data&&o.data.transition?(o.data.show=!0,t?kt(o,function(){e.style.display=e.__vOriginalDisplay}):yt(o,function(){e.style.display="none"})):e.style.display=t?e.__vOriginalDisplay:"none")},unbind:function(e,n,o,t,i){i||(e.style.display=e.__vOriginalDisplay)}},Up={model:Np,show:Rp},qp={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]},Bp={name:"transition",props:qp,abstract:!0,render:function(e){var n=this,o=this.$slots.default;if(o&&(o=o.filter(function(e){return e.tag||_e(e)}),o.length)){var t=this.mode,i=o[0];if(Dt(this.$vnode))return i;var a=Pt(i);if(!a)return i;if(this._leaving)return Lt(e,i);var r="__transition-"+this._uid+"-";a.key=null==a.key?a.isComment?r+"comment":r+a.tag:p(a.key)?0===String(a.key).indexOf(r)?a.key:r+a.key:a.key;var l=(a.data||(a.data={})).transition=It(this),s=this._vnode,c=Pt(s);if(a.data.directives&&a.data.directives.some(function(e){return"show"===e.name})&&(a.data.show=!0),c&&c.data&&!Nt(a,c)&&!_e(c)&&(!c.componentInstance||!c.componentInstance._vnode.isComment)){var m=c.data.transition=k({},l);if("out-in"===t)return this._leaving=!0,fe(m,"afterLeave",function(){n._leaving=!1,n.$forceUpdate()}),Lt(e,i);if("in-out"===t){if(_e(a))return s;var d,f=function(){d()};fe(l,"afterEnter",f),fe(l,"enterCancelled",f),fe(m,"delayLeave",function(e){d=e})}}return i}}},Fp=k({tag:String,moveClass:String},qp);delete Fp.mode;var Hp={props:Fp,render:function(e){for(var n=this.tag||this.$vnode.data.tag||"span",o=Object.create(null),t=this.prevChildren=this.children,i=this.$slots.default||[],a=this.children=[],r=It(this),p=0;p<i.length;p++){var l=i[p];if(l.tag)if(null!=l.key&&0!==String(l.key).indexOf("__vlist"))a.push(l),o[l.key]=l,(l.data||(l.data={})).transition=r;else;}if(t){for(var s=[],c=[],m=0;m<t.length;m++){var d=t[m];d.data.transition=r,d.data.pos=d.elm.getBoundingClientRect(),o[d.key]?s.push(d):c.push(d)}this.kept=e(n,null,s),this.removed=c}return e(n,null,a)},beforeUpdate:function(){this.__patch__(this._vnode,this.kept,!1,!0),this._vnode=this.kept},updated:function(){var e=this.prevChildren,n=this.moveClass||(this.name||"v")+"-move";e.length&&this.hasMove(e[0].elm,n)&&(e.forEach(Rt),e.forEach(Ut),e.forEach(qt),this._reflow=document.body.offsetHeight,e.forEach(function(e){if(e.data.moved){var o=e.elm,t=o.style;bt(o,n),t.transform=t.WebkitTransform=t.transitionDuration="",o.addEventListener(Ap,o._moveCb=function e(t){t&&!/transform$/.test(t.propertyName)||(o.removeEventListener(Ap,e),o._moveCb=null,ht(o,n))})}}))},methods:{hasMove:function(e,n){if(!$p)return!1;if(this._hasMove)return this._hasMove;var o=e.cloneNode();e._transitionClasses&&e._transitionClasses.forEach(function(e){dt(o,e)}),mt(o,n),o.style.display="none",this.$el.appendChild(o);var t=vt(o);return this.$el.removeChild(o),this._hasMove=t.hasTransform}}},Gp={Transition:Bp,TransitionGroup:Hp};In.config.mustUseProp=Fr,In.config.isReservedTag=ep,In.config.isReservedAttr=qr,In.config.getTagNamespace=Qn,In.config.isUnknownElement=eo,k(In.options.directives,Up),k(In.options.components,Gp),In.prototype.__patch__=za?Dp:_,In.prototype.$mount=function(e,n){return e=e&&za?no(e):void 0,Me(this,e,n)},za&&setTimeout(function(){_a.devtools&&Ua&&Ua.emit("init",In)},0);var Kp,Vp=/\{\{((?:.|\n)+?)\}\}/g,Wp=/[-.*+?^${}()|[\]\/\\]/g,Jp=g(function(e){var n=e[0].replace(Wp,"\\$&"),o=e[1].replace(Wp,"\\$&");return new RegExp(n+"((?:.|\\n)+?)"+o,"g")}),Xp={staticKeys:["staticClass"],transformNode:Ft,genData:Ht},Yp={staticKeys:["staticStyle"],transformNode:Gt,genData:Kt},Zp={decode:function(e){return Kp=Kp||document.createElement("div"),Kp.innerHTML=e,Kp.textContent}},Qp=u("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),el=u("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),nl=u("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),ol=/^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,tl="[a-zA-Z_][\\w\\-\\.]*",il="((?:"+tl+"\\:)?"+tl+")",al=new RegExp("^<"+il),rl=/^\s*(\/?)>/,pl=new RegExp("^<\\/"+il+"[^>]*>"),ll=/^<!DOCTYPE [^>]+>/i,sl=/^<!\--/,cl=/^<!\[/,ml=!1;"x".replace(/x(.)?/g,function(e,n){ml=""===n});var dl,fl,ul,bl,hl,gl,vl,xl,wl,kl,yl,_l=u("script,style,textarea",!0),Cl={},$l={"&lt;":"<","&gt;":">","&quot;":'"',"&amp;":"&","&#10;":"\n","&#9;":"\t"},zl=/&(?:lt|gt|quot|amp);/g,jl=/&(?:lt|gt|quot|amp|#10|#9);/g,Ol=u("pre,textarea",!0),Al=function(e,n){return e&&Ol(e)&&"\n"===n[0]},Tl=/^@|^v-on:/,Sl=/^v-|^@|^:/,El=/([^]*?)\s+(?:in|of)\s+([^]*)/,Ml=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,Pl=/^\(|\)$/g,Il=/:(.*)$/,Ll=/^:|^v-bind:/,Dl=/\.[^.]+/g,Nl=g(Zp.decode),Rl=/^xmlns:NS\d+/,Ul=/^NS\d+:/,ql={preTransformNode:vi},Bl=[Xp,Yp,ql],Fl={model:Vo,text:wi,html:ki},Hl={expectHTML:!0,modules:Bl,directives:Fl,isPreTag:Qr,isUnaryTag:Qp,mustUseProp:Fr,canBeLeftOpenTag:el,isReservedTag:ep,getTagNamespace:Qn,staticKeys:function(e){return e.reduce(function(e,n){return e.concat(n.staticKeys||[])},[]).join(",")}(Bl)},Gl=g(_i),Kl=/^([\w$_]+|\([^)]*?\))\s*=>|^function\s*\(/,Vl=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,Wl={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},Jl={esc:"Escape",tab:"Tab",enter:"Enter",space:" ",up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete"]},Xl=function(e){return"if("+e+")return null;"},Yl={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:Xl("$event.target !== $event.currentTarget"),ctrl:Xl("!$event.ctrlKey"),shift:Xl("!$event.shiftKey"),alt:Xl("!$event.altKey"),meta:Xl("!$event.metaKey"),left:Xl("'button' in $event && $event.button !== 0"),middle:Xl("'button' in $event && $event.button !== 1"),right:Xl("'button' in $event && $event.button !== 2")},Zl={on:Ei,bind:Mi,cloak:_},Ql=function(e){this.options=e,this.warn=e.warn||To,this.transforms=So(e.modules,"transformCode"),this.dataGenFns=So(e.modules,"genData"),this.directives=k(k({},Zl),e.directives);var n=e.isReservedTag||va;this.maybeComponent=function(e){return!n(e.tag)},this.onceId=0,this.staticRenderFns=[]},es=(new RegExp("\\b"+"do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,super,throw,while,yield,delete,export,import,return,switch,default,extends,finally,continue,debugger,function,arguments".split(",").join("\\b|\\b")+"\\b"),new RegExp("\\b"+"delete,typeof,void".split(",").join("\\s*\\([^\\)]*\\)|\\b")+"\\s*\\([^\\)]*\\)"),function(e){return function(n){function o(o,t){var i=Object.create(n),a=[],r=[];if(i.warn=function(e,n){(n?r:a).push(e)},t){t.modules&&(i.modules=(n.modules||[]).concat(t.modules)),t.directives&&(i.directives=k(Object.create(n.directives||null),t.directives));for(var p in t)"modules"!==p&&"directives"!==p&&(i[p]=t[p])}var l=e(o,i);return l.errors=a,l.tips=r,l}return{compile:o,compileToFunctions:ia(o)}}}(function(e,n){var o=Xt(e.trim(),n);!1!==n.optimize&&yi(o,n);var t=Pi(o,n);return{ast:o,render:t.render,staticRenderFns:t.staticRenderFns}})),ns=es(Hl),os=ns.compileToFunctions,ts=!!za&&aa(!1),is=!!za&&aa(!0),as=g(function(e){var n=no(e);return n&&n.innerHTML}),rs=In.prototype.$mount;In.prototype.$mount=function(e,n){if((e=e&&no(e))===document.body||e===document.documentElement)return this;var o=this.$options;if(!o.render){var t=o.template;if(t)if("string"==typeof t)"#"===t.charAt(0)&&(t=as(t));else{if(!t.nodeType)return this;t=t.innerHTML}else e&&(t=ra(e));if(t){var i=os(t,{shouldDecodeNewlines:ts,shouldDecodeNewlinesForHref:is,delimiters:o.delimiters,comments:o.comments},this),a=i.render,r=i.staticRenderFns;o.render=a,o.staticRenderFns=r}}return rs.call(this,e,n)},In.compile=os,n.default=In}.call(n,o(3),o(6).setImmediate)},function(e,n){var o;o=function(){return this}();try{o=o||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(o=window)}e.exports=o},function(e,n,o){"use strict";function t(e){this.state=pe,this.value=void 0,this.deferred=[];var n=this;try{e(function(e){n.resolve(e)},function(e){n.reject(e)})}catch(e){n.reject(e)}}function i(e,n){e instanceof Promise?this.promise=e:this.promise=new Promise(e.bind(n)),this.context=n}function a(e){var n=e.config,o=e.nextTick;ce=o,be=n.debug||!n.silent}function r(e){"undefined"!=typeof console&&be&&console.warn("[VueResource warn]: "+e)}function p(e){"undefined"!=typeof console&&console.error(e)}function l(e,n){return ce(e,n)}function s(e){return e?e.replace(/^\s*|\s*$/g,""):""}function c(e,n){return e&&void 0===n?e.replace(/\s+$/,""):e&&n?e.replace(new RegExp("["+n+"]+$"),""):e}function m(e){return e?e.toLowerCase():""}function d(e){return e?e.toUpperCase():""}function f(e){return"string"==typeof e}function u(e){return"function"==typeof e}function b(e){return null!==e&&"object"==typeof e}function h(e){return b(e)&&Object.getPrototypeOf(e)==Object.prototype}function g(e){return"undefined"!=typeof Blob&&e instanceof Blob}function v(e){return"undefined"!=typeof FormData&&e instanceof FormData}function x(e,n,o){var t=i.resolve(e);return arguments.length<2?t:t.then(n,o)}function w(e,n,o){return o=o||{},u(o)&&(o=o.call(n)),y(e.bind({$vm:n,$options:o}),e,{$options:o})}function k(e,n){var o,t;if(ge(e))for(o=0;o<e.length;o++)n.call(e[o],e[o],o);else if(b(e))for(t in e)de.call(e,t)&&n.call(e[t],e[t],t);return e}function y(e){return ue.call(arguments,1).forEach(function(n){$(e,n,!0)}),e}function _(e){return ue.call(arguments,1).forEach(function(n){for(var o in n)void 0===e[o]&&(e[o]=n[o])}),e}function C(e){return ue.call(arguments,1).forEach(function(n){$(e,n)}),e}function $(e,n,o){for(var t in n)o&&(h(n[t])||ge(n[t]))?(h(n[t])&&!h(e[t])&&(e[t]={}),ge(n[t])&&!ge(e[t])&&(e[t]=[]),$(e[t],n[t],o)):void 0!==n[t]&&(e[t]=n[t])}function z(e,n){var o=n(e);return f(e.root)&&!/^(https?:)?\//.test(o)&&(o=c(e.root,"/")+"/"+o),o}function j(e,n){var o=Object.keys(L.options.params),t={},i=n(e);return k(e.params,function(e,n){-1===o.indexOf(n)&&(t[n]=e)}),t=L.params(t),t&&(i+=(-1==i.indexOf("?")?"?":"&")+t),i}function O(e,n,o){var t=A(e),i=t.expand(n);return o&&o.push.apply(o,t.vars),i}function A(e){var n=["+","#",".","/",";","?","&"],o=[];return{vars:o,expand:function(t){return e.replace(/\{([^{}]+)\}|([^{}]+)/g,function(e,i,a){if(i){var r=null,p=[];if(-1!==n.indexOf(i.charAt(0))&&(r=i.charAt(0),i=i.substr(1)),i.split(/,/g).forEach(function(e){var n=/([^:*]*)(?::(\d+)|(\*))?/.exec(e);p.push.apply(p,T(t,r,n[1],n[2]||n[3])),o.push(n[1])}),r&&"+"!==r){var l=",";return"?"===r?l="&":"#"!==r&&(l=r),(0!==p.length?r:"")+p.join(l)}return p.join(",")}return P(a)})}}}function T(e,n,o,t){var i=e[o],a=[];if(S(i)&&""!==i)if("string"==typeof i||"number"==typeof i||"boolean"==typeof i)i=i.toString(),t&&"*"!==t&&(i=i.substring(0,parseInt(t,10))),a.push(M(n,i,E(n)?o:null));else if("*"===t)Array.isArray(i)?i.filter(S).forEach(function(e){a.push(M(n,e,E(n)?o:null))}):Object.keys(i).forEach(function(e){S(i[e])&&a.push(M(n,i[e],e))});else{var r=[];Array.isArray(i)?i.filter(S).forEach(function(e){r.push(M(n,e))}):Object.keys(i).forEach(function(e){S(i[e])&&(r.push(encodeURIComponent(e)),r.push(M(n,i[e].toString())))}),E(n)?a.push(encodeURIComponent(o)+"="+r.join(",")):0!==r.length&&a.push(r.join(","))}else";"===n?a.push(encodeURIComponent(o)):""!==i||"&"!==n&&"?"!==n?""===i&&a.push(""):a.push(encodeURIComponent(o)+"=");return a}function S(e){return void 0!==e&&null!==e}function E(e){return";"===e||"&"===e||"?"===e}function M(e,n,o){return n="+"===e||"#"===e?P(n):encodeURIComponent(n),o?encodeURIComponent(o)+"="+n:n}function P(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(e){return/%[0-9A-Fa-f]/.test(e)||(e=encodeURI(e)),e}).join("")}function I(e){var n=[],o=O(e.url,e.params,n);return n.forEach(function(n){delete e.params[n]}),o}function L(e,n){var o,t=this||{},i=e;return f(e)&&(i={url:e,params:n}),i=y({},L.options,t.$options,i),L.transforms.forEach(function(e){f(e)&&(e=L.transform[e]),u(e)&&(o=D(e,o,t.$vm))}),o(i)}function D(e,n,o){return function(t){return e.call(o,t,n)}}function N(e,n,o){var t,i=ge(n),a=h(n);k(n,function(n,r){t=b(n)||ge(n),o&&(r=o+"["+(a||t?r:"")+"]"),!o&&i?e.add(n.name,n.value):t?N(e,n,r):e.add(r,n)})}function R(e){return new i(function(n){var o=new XDomainRequest,t=function(t){var i=t.type,a=0;"load"===i?a=200:"error"===i&&(a=500),n(e.respondWith(o.responseText,{status:a}))};e.abort=function(){return o.abort()},o.open(e.method,e.getUrl()),e.timeout&&(o.timeout=e.timeout),o.onload=t,o.onabort=t,o.onerror=t,o.ontimeout=t,o.onprogress=function(){},o.send(e.getBody())})}function U(e){if(he){var n=L.parse(location.href),o=L.parse(e.getUrl());o.protocol===n.protocol&&o.host===n.host||(e.crossOrigin=!0,e.emulateHTTP=!1,xe||(e.client=R))}}function q(e){v(e.body)?e.headers.delete("Content-Type"):b(e.body)&&e.emulateJSON&&(e.body=L.params(e.body),e.headers.set("Content-Type","application/x-www-form-urlencoded"))}function B(e){var n=e.headers.get("Content-Type")||"";return b(e.body)&&0===n.indexOf("application/json")&&(e.body=JSON.stringify(e.body)),function(e){return e.bodyText?x(e.text(),function(n){if(0===(e.headers.get("Content-Type")||"").indexOf("application/json")||F(n))try{e.body=JSON.parse(n)}catch(n){e.body=null}else e.body=n;return e}):e}}function F(e){var n=e.match(/^\s*(\[|\{)/),o={"[":/]\s*$/,"{":/}\s*$/};return n&&o[n[1]].test(e)}function H(e){return new i(function(n){var o,t,i=e.jsonp||"callback",a=e.jsonpCallback||"_jsonp"+Math.random().toString(36).substr(2),r=null;o=function(o){var i=o.type,p=0;"load"===i&&null!==r?p=200:"error"===i&&(p=500),p&&window[a]&&(delete window[a],document.body.removeChild(t)),n(e.respondWith(r,{status:p}))},window[a]=function(e){r=JSON.stringify(e)},e.abort=function(){o({type:"abort"})},e.params[i]=a,e.timeout&&setTimeout(e.abort,e.timeout),t=document.createElement("script"),t.src=e.getUrl(),t.type="text/javascript",t.async=!0,t.onload=o,t.onerror=o,document.body.appendChild(t)})}function G(e){"JSONP"==e.method&&(e.client=H)}function K(e){u(e.before)&&e.before.call(this,e)}function V(e){e.emulateHTTP&&/^(PUT|PATCH|DELETE)$/i.test(e.method)&&(e.headers.set("X-HTTP-Method-Override",e.method),e.method="POST")}function W(e){k(ve({},te.headers.common,e.crossOrigin?{}:te.headers.custom,te.headers[m(e.method)]),function(n,o){e.headers.has(o)||e.headers.set(o,n)})}function J(e){return new i(function(n){var o=new XMLHttpRequest,t=function(t){var i=e.respondWith("response"in o?o.response:o.responseText,{status:1223===o.status?204:o.status,statusText:1223===o.status?"No Content":s(o.statusText)});k(s(o.getAllResponseHeaders()).split("\n"),function(e){i.headers.append(e.slice(0,e.indexOf(":")),e.slice(e.indexOf(":")+1))}),n(i)};e.abort=function(){return o.abort()},o.open(e.method,e.getUrl(),!0),e.timeout&&(o.timeout=e.timeout),e.responseType&&"responseType"in o&&(o.responseType=e.responseType),(e.withCredentials||e.credentials)&&(o.withCredentials=!0),e.crossOrigin||e.headers.set("X-Requested-With","XMLHttpRequest"),u(e.progress)&&"GET"===e.method&&o.addEventListener("progress",e.progress),u(e.downloadProgress)&&o.addEventListener("progress",e.downloadProgress),u(e.progress)&&/^(POST|PUT)$/i.test(e.method)&&o.upload.addEventListener("progress",e.progress),u(e.uploadProgress)&&o.upload&&o.upload.addEventListener("progress",e.uploadProgress),e.headers.forEach(function(e,n){o.setRequestHeader(n,e)}),o.onload=t,o.onabort=t,o.onerror=t,o.ontimeout=t,o.send(e.getBody())})}function X(e){var n=o(39);return new i(function(o){var t,i=e.getUrl(),a=e.getBody(),r=e.method,p={};e.headers.forEach(function(e,n){p[n]=e}),n(i,{body:a,method:r,headers:p}).then(t=function(n){var t=e.respondWith(n.body,{status:n.statusCode,statusText:s(n.statusMessage)});k(n.headers,function(e,n){t.headers.set(n,e)}),o(t)},function(e){return t(e.response)})})}function Y(e){function n(n){for(;o.length;){var a=o.pop();if(u(a)){var p=void 0,l=void 0;if(p=a.call(e,n,function(e){return l=e})||l,b(p))return new i(function(n,o){t.forEach(function(n){p=x(p,function(o){return n.call(e,o)||o},o)}),x(p,n,o)},e);u(p)&&t.unshift(p)}else r("Invalid interceptor of type "+typeof a+", must be a function")}}var o=[Z],t=[];return b(e)||(e=null),n.use=function(e){o.push(e)},n}function Z(e){return(e.client||(he?J:X))(e)}function Q(e,n){return Object.keys(e).reduce(function(e,o){return m(n)===m(o)?o:e},null)}function ee(e){if(/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return s(e)}function ne(e){return new i(function(n){var o=new FileReader;o.readAsText(e),o.onload=function(){n(o.result)}})}function oe(e){return 0===e.type.indexOf("text")||-1!==e.type.indexOf("json")}function te(e){var n=this||{},o=Y(n.$vm);return _(e||{},n.$options,te.options),te.interceptors.forEach(function(e){f(e)&&(e=te.interceptor[e]),u(e)&&o.use(e)}),o(new ye(e)).then(function(e){return e.ok?e:i.reject(e)},function(e){return e instanceof Error&&p(e),i.reject(e)})}function ie(e,n,o,t){var i=this||{},a={};return o=ve({},ie.actions,o),k(o,function(o,r){o=y({url:e,params:ve({},n)},t,o),a[r]=function(){return(i.$http||te)(ae(o,arguments))}}),a}function ae(e,n){var o,t=ve({},e),i={};switch(n.length){case 2:i=n[0],o=n[1];break;case 1:/^(POST|PUT|PATCH)$/i.test(t.method)?o=n[0]:i=n[0];break;case 0:break;default:throw"Expected up to 2 arguments [params, body], got "+n.length+" arguments"}return t.body=o,t.params=ve({},t.params,i),t}function re(e){re.installed||(a(e),e.url=L,e.http=te,e.resource=ie,e.Promise=i,Object.defineProperties(e.prototype,{$url:{get:function(){return w(e.url,this,this.$options.url)}},$http:{get:function(){return w(e.http,this,this.$options.http)}},$resource:{get:function(){return e.resource.bind(this)}},$promise:{get:function(){var n=this;return function(o){return new e.Promise(o,n)}}}}))}Object.defineProperty(n,"__esModule",{value:!0}),o.d(n,"Url",function(){return L}),o.d(n,"Http",function(){return te}),o.d(n,"Resource",function(){return ie});/*!
7
+ * vue-resource v1.5.1
8
+ * https://github.com/pagekit/vue-resource
9
+ * Released under the MIT License.
10
+ */
11
+ var pe=2;t.reject=function(e){return new t(function(n,o){o(e)})},t.resolve=function(e){return new t(function(n,o){n(e)})},t.all=function(e){return new t(function(n,o){var i=0,a=[];0===e.length&&n(a);for(var r=0;r<e.length;r+=1)t.resolve(e[r]).then(function(o){return function(t){a[o]=t,(i+=1)===e.length&&n(a)}}(r),o)})},t.race=function(e){return new t(function(n,o){for(var i=0;i<e.length;i+=1)t.resolve(e[i]).then(n,o)})};var le=t.prototype;le.resolve=function(e){var n=this;if(n.state===pe){if(e===n)throw new TypeError("Promise settled with itself.");var o=!1;try{var t=e&&e.then;if(null!==e&&"object"==typeof e&&"function"==typeof t)return void t.call(e,function(e){o||n.resolve(e),o=!0},function(e){o||n.reject(e),o=!0})}catch(e){return void(o||n.reject(e))}n.state=0,n.value=e,n.notify()}},le.reject=function(e){var n=this;if(n.state===pe){if(e===n)throw new TypeError("Promise settled with itself.");n.state=1,n.value=e,n.notify()}},le.notify=function(){var e=this;l(function(){if(e.state!==pe)for(;e.deferred.length;){var n=e.deferred.shift(),o=n[0],t=n[1],i=n[2],a=n[3];try{0===e.state?i("function"==typeof o?o.call(void 0,e.value):e.value):1===e.state&&("function"==typeof t?i(t.call(void 0,e.value)):a(e.value))}catch(e){a(e)}}})},le.then=function(e,n){var o=this;return new t(function(t,i){o.deferred.push([e,n,t,i]),o.notify()})},le.catch=function(e){return this.then(void 0,e)},"undefined"==typeof Promise&&(window.Promise=t),i.all=function(e,n){return new i(Promise.all(e),n)},i.resolve=function(e,n){return new i(Promise.resolve(e),n)},i.reject=function(e,n){return new i(Promise.reject(e),n)},i.race=function(e,n){return new i(Promise.race(e),n)};var se=i.prototype;se.bind=function(e){return this.context=e,this},se.then=function(e,n){return e&&e.bind&&this.context&&(e=e.bind(this.context)),n&&n.bind&&this.context&&(n=n.bind(this.context)),new i(this.promise.then(e,n),this.context)},se.catch=function(e){return e&&e.bind&&this.context&&(e=e.bind(this.context)),new i(this.promise.catch(e),this.context)},se.finally=function(e){return this.then(function(n){return e.call(this),n},function(n){return e.call(this),Promise.reject(n)})};var ce,me={},de=me.hasOwnProperty,fe=[],ue=fe.slice,be=!1,he="undefined"!=typeof window,ge=Array.isArray,ve=Object.assign||C;L.options={url:"",root:null,params:{}},L.transform={template:I,query:j,root:z},L.transforms=["template","query","root"],L.params=function(e){var n=[],o=encodeURIComponent;return n.add=function(e,n){u(n)&&(n=n()),null===n&&(n=""),this.push(o(e)+"="+o(n))},N(n,e),n.join("&").replace(/%20/g,"+")},L.parse=function(e){var n=document.createElement("a");return document.documentMode&&(n.href=e,e=n.href),n.href=e,{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",port:n.port,host:n.host,hostname:n.hostname,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):""}};var xe=he&&"withCredentials"in new XMLHttpRequest,we=function(e){var n=this;this.map={},k(e,function(e,o){return n.append(o,e)})};we.prototype.has=function(e){return null!==Q(this.map,e)},we.prototype.get=function(e){var n=this.map[Q(this.map,e)];return n?n.join():null},we.prototype.getAll=function(e){return this.map[Q(this.map,e)]||[]},we.prototype.set=function(e,n){this.map[ee(Q(this.map,e)||e)]=[s(n)]},we.prototype.append=function(e,n){var o=this.map[Q(this.map,e)];o?o.push(s(n)):this.set(e,n)},we.prototype.delete=function(e){delete this.map[Q(this.map,e)]},we.prototype.deleteAll=function(){this.map={}},we.prototype.forEach=function(e,n){var o=this;k(this.map,function(t,i){k(t,function(t){return e.call(n,t,i,o)})})};var ke=function(e,n){var o=n.url,t=n.headers,i=n.status,a=n.statusText;this.url=o,this.ok=i>=200&&i<300,this.status=i||0,this.statusText=a||"",this.headers=new we(t),this.body=e,f(e)?this.bodyText=e:g(e)&&(this.bodyBlob=e,oe(e)&&(this.bodyText=ne(e)))};ke.prototype.blob=function(){return x(this.bodyBlob)},ke.prototype.text=function(){return x(this.bodyText)},ke.prototype.json=function(){return x(this.text(),function(e){return JSON.parse(e)})},Object.defineProperty(ke.prototype,"data",{get:function(){return this.body},set:function(e){this.body=e}});var ye=function(e){this.body=null,this.params={},ve(this,e,{method:d(e.method||"GET")}),this.headers instanceof we||(this.headers=new we(this.headers))};ye.prototype.getUrl=function(){return L(this)},ye.prototype.getBody=function(){return this.body},ye.prototype.respondWith=function(e,n){return new ke(e,ve(n||{},{url:this.getUrl()}))};var _e={Accept:"application/json, text/plain, */*"},Ce={"Content-Type":"application/json;charset=utf-8"};te.options={},te.headers={put:Ce,post:Ce,patch:Ce,delete:Ce,common:_e,custom:{}},te.interceptor={before:K,method:V,jsonp:G,json:B,form:q,header:W,cors:U},te.interceptors=["before","method","jsonp","json","form","header","cors"],["get","delete","head","jsonp"].forEach(function(e){te[e]=function(n,o){return this(ve(o||{},{url:n,method:e}))}}),["post","put","patch"].forEach(function(e){te[e]=function(n,o,t){return this(ve(t||{},{url:n,method:e,body:o}))}}),ie.actions={get:{method:"GET"},save:{method:"POST"},query:{method:"GET"},update:{method:"PUT"},remove:{method:"DELETE"},delete:{method:"DELETE"}},"undefined"!=typeof window&&window.Vue&&window.Vue.use(re),n.default=re},function(e,n,o){"use strict";function t(e){return e&&e.__esModule?e:{default:e}}var i=o(2),a=t(i),r=o(9),p=t(r),l=o(37),s=t(l),c=o(42),m=t(c);a.default.use(m.default),window.onload=function(){new a.default({el:"#optimole-app",store:s.default,components:{App:p.default}})}},function(e,n,o){(function(e){function t(e,n){this._id=e,this._clearFn=n}var i=void 0!==e&&e||"undefined"!=typeof self&&self||window,a=Function.prototype.apply;n.setTimeout=function(){return new t(a.call(setTimeout,i,arguments),clearTimeout)},n.setInterval=function(){return new t(a.call(setInterval,i,arguments),clearInterval)},n.clearTimeout=n.clearInterval=function(e){e&&e.close()},t.prototype.unref=t.prototype.ref=function(){},t.prototype.close=function(){this._clearFn.call(i,this._id)},n.enroll=function(e,n){clearTimeout(e._idleTimeoutId),e._idleTimeout=n},n.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},n._unrefActive=n.active=function(e){clearTimeout(e._idleTimeoutId);var n=e._idleTimeout;n>=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},n))},o(7),n.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,n.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(n,o(3))},function(e,n,o){(function(e,n){!function(e,o){"use strict";function t(e){"function"!=typeof e&&(e=new Function(""+e));for(var n=new Array(arguments.length-1),o=0;o<n.length;o++)n[o]=arguments[o+1];var t={callback:e,args:n};return s[l]=t,p(l),l++}function i(e){delete s[e]}function a(e){var n=e.callback,t=e.args;switch(t.length){case 0:n();break;case 1:n(t[0]);break;case 2:n(t[0],t[1]);break;case 3:n(t[0],t[1],t[2]);break;default:n.apply(o,t)}}function r(e){if(c)setTimeout(r,0,e);else{var n=s[e];if(n){c=!0;try{a(n)}finally{i(e),c=!1}}}}if(!e.setImmediate){var p,l=1,s={},c=!1,m=e.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(e);d=d&&d.setTimeout?d:e,"[object process]"==={}.toString.call(e.process)?function(){p=function(e){n.nextTick(function(){r(e)})}}():function(){if(e.postMessage&&!e.importScripts){var n=!0,o=e.onmessage;return e.onmessage=function(){n=!1},e.postMessage("","*"),e.onmessage=o,n}}()?function(){var n="setImmediate$"+Math.random()+"$",o=function(o){o.source===e&&"string"==typeof o.data&&0===o.data.indexOf(n)&&r(+o.data.slice(n.length))};e.addEventListener?e.addEventListener("message",o,!1):e.attachEvent("onmessage",o),p=function(o){e.postMessage(n+o,"*")}}():e.MessageChannel?function(){var e=new MessageChannel;e.port1.onmessage=function(e){r(e.data)},p=function(n){e.port2.postMessage(n)}}():m&&"onreadystatechange"in m.createElement("script")?function(){var e=m.documentElement;p=function(n){var o=m.createElement("script");o.onreadystatechange=function(){r(n),o.onreadystatechange=null,e.removeChild(o),o=null},e.appendChild(o)}}():function(){p=function(e){setTimeout(r,0,e)}}(),d.setImmediate=t,d.clearImmediate=i}}("undefined"==typeof self?void 0===e?this:e:self)}).call(n,o(3),o(8))},function(e,n){function o(){throw new Error("setTimeout has not been defined")}function t(){throw new Error("clearTimeout has not been defined")}function i(e){if(c===setTimeout)return setTimeout(e,0);if((c===o||!c)&&setTimeout)return c=setTimeout,setTimeout(e,0);try{return c(e,0)}catch(n){try{return c.call(null,e,0)}catch(n){return c.call(this,e,0)}}}function a(e){if(m===clearTimeout)return clearTimeout(e);if((m===t||!m)&&clearTimeout)return m=clearTimeout,clearTimeout(e);try{return m(e)}catch(n){try{return m.call(null,e)}catch(n){return m.call(this,e)}}}function r(){b&&f&&(b=!1,f.length?u=f.concat(u):h=-1,u.length&&p())}function p(){if(!b){var e=i(r);b=!0;for(var n=u.length;n;){for(f=u,u=[];++h<n;)f&&f[h].run();h=-1,n=u.length}f=null,b=!1,a(e)}}function l(e,n){this.fun=e,this.array=n}function s(){}var c,m,d=e.exports={};!function(){try{c="function"==typeof setTimeout?setTimeout:o}catch(e){c=o}try{m="function"==typeof clearTimeout?clearTimeout:t}catch(e){m=t}}();var f,u=[],b=!1,h=-1;d.nextTick=function(e){var n=new Array(arguments.length-1);if(arguments.length>1)for(var o=1;o<arguments.length;o++)n[o-1]=arguments[o];u.push(new l(e,n)),1!==u.length||b||i(p)},l.prototype.run=function(){this.fun.apply(null,this.array)},d.title="browser",d.browser=!0,d.env={},d.argv=[],d.version="",d.versions={},d.on=s,d.addListener=s,d.once=s,d.off=s,d.removeListener=s,d.removeAllListeners=s,d.emit=s,d.prependListener=s,d.prependOnceListener=s,d.listeners=function(e){return[]},d.binding=function(e){throw new Error("process.binding is not supported")},d.cwd=function(){return"/"},d.chdir=function(e){throw new Error("process.chdir is not supported")},d.umask=function(){return 0}},function(e,n,o){var t,i;o(10),t=o(12),i=o(36),e.exports=t||{},e.exports.__esModule&&(e.exports=e.exports.default),i&&(("function"==typeof e.exports?e.exports.options:e.exports).template=i)},function(e,n,o){var t=o(11);"string"==typeof t&&(t=[[e.i,t,""]]);o(1)(t,{});t.locals&&(e.exports=t.locals)},function(e,n,o){n=e.exports=o(0)(),n.push([e.i,'#optimole-app {\n padding: 0 30px 0 20px;\n /*! bulma.io v0.7.1 | MIT License | github.com/jgthms/bulma */\n /*! minireset.css v0.0.3 | MIT License | github.com/jgthms/minireset.css */ }\n\n@keyframes spinAround {\n from {\n transform: rotate(0deg); }\n to {\n transform: rotate(359deg); } }\n #optimole-app .delete, #optimole-app .modal-close, #optimole-app .is-unselectable, #optimole-app .button, #optimole-app .file, #optimole-app .breadcrumb, #optimole-app .pagination-previous,\n #optimole-app .pagination-next,\n #optimole-app .pagination-link,\n #optimole-app .pagination-ellipsis, #optimole-app .tabs {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n #optimole-app .select:not(.is-multiple):not(.is-loading)::after, #optimole-app .navbar-link::after {\n border: 3px solid transparent;\n border-radius: 2px;\n border-right: 0;\n border-top: 0;\n content: " ";\n display: block;\n height: 0.625em;\n margin-top: -0.4375em;\n pointer-events: none;\n position: absolute;\n top: 50%;\n transform: rotate(-45deg);\n transform-origin: center;\n width: 0.625em; }\n #optimole-app .box:not(:last-child), #optimole-app .content:not(:last-child), #optimole-app .notification:not(:last-child), #optimole-app .progress:not(:last-child), #optimole-app .table:not(:last-child), #optimole-app .table-container:not(:last-child), #optimole-app .title:not(:last-child),\n #optimole-app .subtitle:not(:last-child), #optimole-app .block:not(:last-child), #optimole-app .highlight:not(:last-child), #optimole-app .breadcrumb:not(:last-child), #optimole-app .level:not(:last-child), #optimole-app .message:not(:last-child), #optimole-app .tabs:not(:last-child) {\n margin-bottom: 1.5rem; }\n #optimole-app .delete, #optimole-app .modal-close {\n -moz-appearance: none;\n -webkit-appearance: none;\n background-color: rgba(10, 10, 10, 0.2);\n border: none;\n border-radius: 290486px;\n cursor: pointer;\n display: inline-block;\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n font-size: 0;\n height: 20px;\n max-height: 20px;\n max-width: 20px;\n min-height: 20px;\n min-width: 20px;\n outline: none;\n position: relative;\n vertical-align: top;\n width: 20px; }\n #optimole-app .delete::before, #optimole-app .modal-close::before, #optimole-app .delete::after, #optimole-app .modal-close::after {\n background-color: white;\n content: "";\n display: block;\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translateX(-50%) translateY(-50%) rotate(45deg);\n transform-origin: center center; }\n #optimole-app .delete::before, #optimole-app .modal-close::before {\n height: 2px;\n width: 50%; }\n #optimole-app .delete::after, #optimole-app .modal-close::after {\n height: 50%;\n width: 2px; }\n #optimole-app .delete:hover, #optimole-app .modal-close:hover, #optimole-app .delete:focus, #optimole-app .modal-close:focus {\n background-color: rgba(10, 10, 10, 0.3); }\n #optimole-app .delete:active, #optimole-app .modal-close:active {\n background-color: rgba(10, 10, 10, 0.4); }\n #optimole-app .is-small.delete, #optimole-app .is-small.modal-close {\n height: 16px;\n max-height: 16px;\n max-width: 16px;\n min-height: 16px;\n min-width: 16px;\n width: 16px; }\n #optimole-app .is-medium.delete, #optimole-app .is-medium.modal-close {\n height: 24px;\n max-height: 24px;\n max-width: 24px;\n min-height: 24px;\n min-width: 24px;\n width: 24px; }\n #optimole-app .is-large.delete, #optimole-app .is-large.modal-close {\n height: 32px;\n max-height: 32px;\n max-width: 32px;\n min-height: 32px;\n min-width: 32px;\n width: 32px; }\n #optimole-app .button.is-loading::after, #optimole-app .select.is-loading::after, #optimole-app .control.is-loading::after, #optimole-app .loader {\n animation: spinAround 500ms infinite linear;\n border: 2px solid #dbdbdb;\n border-radius: 290486px;\n border-right-color: transparent;\n border-top-color: transparent;\n content: "";\n display: block;\n height: 1em;\n position: relative;\n width: 1em; }\n #optimole-app .is-overlay, #optimole-app .image.is-square img, #optimole-app .image.is-1by1 img, #optimole-app .image.is-5by4 img, #optimole-app .image.is-4by3 img, #optimole-app .image.is-3by2 img, #optimole-app .image.is-5by3 img, #optimole-app .image.is-16by9 img, #optimole-app .image.is-2by1 img, #optimole-app .image.is-3by1 img, #optimole-app .image.is-4by5 img, #optimole-app .image.is-3by4 img, #optimole-app .image.is-2by3 img, #optimole-app .image.is-3by5 img, #optimole-app .image.is-9by16 img, #optimole-app .image.is-1by2 img, #optimole-app .image.is-1by3 img, #optimole-app .modal, #optimole-app .modal-background, #optimole-app .hero-video {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0; }\n #optimole-app .button, #optimole-app .input,\n #optimole-app .textarea, #optimole-app .select select, #optimole-app .file-cta,\n #optimole-app .file-name, #optimole-app .pagination-previous,\n #optimole-app .pagination-next,\n #optimole-app .pagination-link,\n #optimole-app .pagination-ellipsis {\n -moz-appearance: none;\n -webkit-appearance: none;\n -ms-flex-align: center;\n align-items: center;\n border: 1px solid transparent;\n border-radius: 4px;\n box-shadow: none;\n display: -ms-inline-flexbox;\n display: inline-flex;\n font-size: 1rem;\n height: 2.25em;\n -ms-flex-pack: start;\n justify-content: flex-start;\n line-height: 1.5;\n padding-bottom: calc(0.375em - 1px);\n padding-left: calc(0.625em - 1px);\n padding-right: calc(0.625em - 1px);\n padding-top: calc(0.375em - 1px);\n position: relative;\n vertical-align: top; }\n #optimole-app .button:focus, #optimole-app .input:focus,\n #optimole-app .textarea:focus, #optimole-app .select select:focus, #optimole-app .file-cta:focus,\n #optimole-app .file-name:focus, #optimole-app .pagination-previous:focus,\n #optimole-app .pagination-next:focus,\n #optimole-app .pagination-link:focus,\n #optimole-app .pagination-ellipsis:focus, #optimole-app .is-focused.button, #optimole-app .is-focused.input,\n #optimole-app .is-focused.textarea, #optimole-app .select select.is-focused, #optimole-app .is-focused.file-cta,\n #optimole-app .is-focused.file-name, #optimole-app .is-focused.pagination-previous,\n #optimole-app .is-focused.pagination-next,\n #optimole-app .is-focused.pagination-link,\n #optimole-app .is-focused.pagination-ellipsis, #optimole-app .button:active, #optimole-app .input:active,\n #optimole-app .textarea:active, #optimole-app .select select:active, #optimole-app .file-cta:active,\n #optimole-app .file-name:active, #optimole-app .pagination-previous:active,\n #optimole-app .pagination-next:active,\n #optimole-app .pagination-link:active,\n #optimole-app .pagination-ellipsis:active, #optimole-app .is-active.button, #optimole-app .is-active.input,\n #optimole-app .is-active.textarea, #optimole-app .select select.is-active, #optimole-app .is-active.file-cta,\n #optimole-app .is-active.file-name, #optimole-app .is-active.pagination-previous,\n #optimole-app .is-active.pagination-next,\n #optimole-app .is-active.pagination-link,\n #optimole-app .is-active.pagination-ellipsis {\n outline: none; }\n #optimole-app .button[disabled], #optimole-app .input[disabled],\n #optimole-app .textarea[disabled], #optimole-app .select select[disabled], #optimole-app .file-cta[disabled],\n #optimole-app .file-name[disabled], #optimole-app .pagination-previous[disabled],\n #optimole-app .pagination-next[disabled],\n #optimole-app .pagination-link[disabled],\n #optimole-app .pagination-ellipsis[disabled] {\n cursor: not-allowed; }\n #optimole-app html,\n #optimole-app body,\n #optimole-app p,\n #optimole-app ol,\n #optimole-app ul,\n #optimole-app li,\n #optimole-app dl,\n #optimole-app dt,\n #optimole-app dd,\n #optimole-app blockquote,\n #optimole-app figure,\n #optimole-app fieldset,\n #optimole-app legend,\n #optimole-app textarea,\n #optimole-app pre,\n #optimole-app iframe,\n #optimole-app hr,\n #optimole-app h1,\n #optimole-app h2,\n #optimole-app h3,\n #optimole-app h4,\n #optimole-app h5,\n #optimole-app h6 {\n margin: 0;\n padding: 0; }\n #optimole-app h1,\n #optimole-app h2,\n #optimole-app h3,\n #optimole-app h4,\n #optimole-app h5,\n #optimole-app h6 {\n font-size: 100%;\n font-weight: normal; }\n #optimole-app ul {\n list-style: none; }\n #optimole-app button,\n #optimole-app input,\n #optimole-app select,\n #optimole-app textarea {\n margin: 0; }\n #optimole-app html {\n box-sizing: border-box; }\n #optimole-app *, #optimole-app *::before, #optimole-app *::after {\n box-sizing: inherit; }\n #optimole-app img,\n #optimole-app audio,\n #optimole-app video {\n height: auto;\n max-width: 100%; }\n #optimole-app iframe {\n border: 0; }\n #optimole-app table {\n border-collapse: collapse;\n border-spacing: 0; }\n #optimole-app td,\n #optimole-app th {\n padding: 0;\n text-align: left; }\n #optimole-app html {\n background-color: white;\n font-size: 16px;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n min-width: 300px;\n overflow-x: hidden;\n overflow-y: scroll;\n text-rendering: optimizeLegibility;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n text-size-adjust: 100%; }\n #optimole-app article,\n #optimole-app aside,\n #optimole-app figure,\n #optimole-app footer,\n #optimole-app header,\n #optimole-app hgroup,\n #optimole-app section {\n display: block; }\n #optimole-app body,\n #optimole-app button,\n #optimole-app input,\n #optimole-app select,\n #optimole-app textarea {\n font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif; }\n #optimole-app code,\n #optimole-app pre {\n -moz-osx-font-smoothing: auto;\n -webkit-font-smoothing: auto;\n font-family: monospace; }\n #optimole-app body {\n color: #4a4a4a;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5; }\n #optimole-app a {\n color: #3273dc;\n cursor: pointer;\n text-decoration: none; }\n #optimole-app a strong {\n color: currentColor; }\n #optimole-app a:hover {\n color: #363636; }\n #optimole-app code {\n background-color: whitesmoke;\n color: #ff3860;\n font-size: 0.875em;\n font-weight: normal;\n padding: 0.25em 0.5em 0.25em; }\n #optimole-app hr {\n background-color: whitesmoke;\n border: none;\n display: block;\n height: 2px;\n margin: 1.5rem 0; }\n #optimole-app img {\n height: auto;\n max-width: 100%; }\n #optimole-app input[type="checkbox"],\n #optimole-app input[type="radio"] {\n vertical-align: baseline; }\n #optimole-app small {\n font-size: 0.875em; }\n #optimole-app span {\n font-style: inherit;\n font-weight: inherit; }\n #optimole-app strong {\n color: #363636;\n font-weight: 700; }\n #optimole-app pre {\n -webkit-overflow-scrolling: touch;\n background-color: whitesmoke;\n color: #4a4a4a;\n font-size: 0.875em;\n overflow-x: auto;\n padding: 1.25rem 1.5rem;\n white-space: pre;\n word-wrap: normal; }\n #optimole-app pre code {\n background-color: transparent;\n color: currentColor;\n font-size: 1em;\n padding: 0; }\n #optimole-app table td,\n #optimole-app table th {\n text-align: left;\n vertical-align: top; }\n #optimole-app table th {\n color: #363636; }\n #optimole-app .is-clearfix::after {\n clear: both;\n content: " ";\n display: table; }\n #optimole-app .is-pulled-left {\n float: left !important; }\n #optimole-app .is-pulled-right {\n float: right !important; }\n #optimole-app .is-clipped {\n overflow: hidden !important; }\n #optimole-app .is-size-1 {\n font-size: 3rem !important; }\n #optimole-app .is-size-2 {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3 {\n font-size: 2rem !important; }\n #optimole-app .is-size-4 {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5 {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6 {\n font-size: 1rem !important; }\n #optimole-app .is-size-7 {\n font-size: 0.75rem !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-size-1-mobile {\n font-size: 3rem !important; }\n #optimole-app .is-size-2-mobile {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3-mobile {\n font-size: 2rem !important; }\n #optimole-app .is-size-4-mobile {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5-mobile {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6-mobile {\n font-size: 1rem !important; }\n #optimole-app .is-size-7-mobile {\n font-size: 0.75rem !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-size-1-tablet {\n font-size: 3rem !important; }\n #optimole-app .is-size-2-tablet {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3-tablet {\n font-size: 2rem !important; }\n #optimole-app .is-size-4-tablet {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5-tablet {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6-tablet {\n font-size: 1rem !important; }\n #optimole-app .is-size-7-tablet {\n font-size: 0.75rem !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-size-1-touch {\n font-size: 3rem !important; }\n #optimole-app .is-size-2-touch {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3-touch {\n font-size: 2rem !important; }\n #optimole-app .is-size-4-touch {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5-touch {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6-touch {\n font-size: 1rem !important; }\n #optimole-app .is-size-7-touch {\n font-size: 0.75rem !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-size-1-desktop {\n font-size: 3rem !important; }\n #optimole-app .is-size-2-desktop {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3-desktop {\n font-size: 2rem !important; }\n #optimole-app .is-size-4-desktop {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5-desktop {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6-desktop {\n font-size: 1rem !important; }\n #optimole-app .is-size-7-desktop {\n font-size: 0.75rem !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-size-1-widescreen {\n font-size: 3rem !important; }\n #optimole-app .is-size-2-widescreen {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3-widescreen {\n font-size: 2rem !important; }\n #optimole-app .is-size-4-widescreen {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5-widescreen {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6-widescreen {\n font-size: 1rem !important; }\n #optimole-app .is-size-7-widescreen {\n font-size: 0.75rem !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-size-1-fullhd {\n font-size: 3rem !important; }\n #optimole-app .is-size-2-fullhd {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3-fullhd {\n font-size: 2rem !important; }\n #optimole-app .is-size-4-fullhd {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5-fullhd {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6-fullhd {\n font-size: 1rem !important; }\n #optimole-app .is-size-7-fullhd {\n font-size: 0.75rem !important; } }\n #optimole-app .has-text-centered {\n text-align: center !important; }\n #optimole-app .has-text-justified {\n text-align: justify !important; }\n #optimole-app .has-text-left {\n text-align: left !important; }\n #optimole-app .has-text-right {\n text-align: right !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .has-text-centered-mobile {\n text-align: center !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .has-text-centered-tablet {\n text-align: center !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .has-text-centered-tablet-only {\n text-align: center !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .has-text-centered-touch {\n text-align: center !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .has-text-centered-desktop {\n text-align: center !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .has-text-centered-desktop-only {\n text-align: center !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .has-text-centered-widescreen {\n text-align: center !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .has-text-centered-widescreen-only {\n text-align: center !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .has-text-centered-fullhd {\n text-align: center !important; } }\n @media screen and (max-width: 768px) {\n #optimole-app .has-text-justified-mobile {\n text-align: justify !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .has-text-justified-tablet {\n text-align: justify !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .has-text-justified-tablet-only {\n text-align: justify !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .has-text-justified-touch {\n text-align: justify !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .has-text-justified-desktop {\n text-align: justify !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .has-text-justified-desktop-only {\n text-align: justify !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .has-text-justified-widescreen {\n text-align: justify !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .has-text-justified-widescreen-only {\n text-align: justify !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .has-text-justified-fullhd {\n text-align: justify !important; } }\n @media screen and (max-width: 768px) {\n #optimole-app .has-text-left-mobile {\n text-align: left !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .has-text-left-tablet {\n text-align: left !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .has-text-left-tablet-only {\n text-align: left !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .has-text-left-touch {\n text-align: left !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .has-text-left-desktop {\n text-align: left !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .has-text-left-desktop-only {\n text-align: left !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .has-text-left-widescreen {\n text-align: left !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .has-text-left-widescreen-only {\n text-align: left !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .has-text-left-fullhd {\n text-align: left !important; } }\n @media screen and (max-width: 768px) {\n #optimole-app .has-text-right-mobile {\n text-align: right !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .has-text-right-tablet {\n text-align: right !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .has-text-right-tablet-only {\n text-align: right !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .has-text-right-touch {\n text-align: right !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .has-text-right-desktop {\n text-align: right !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .has-text-right-desktop-only {\n text-align: right !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .has-text-right-widescreen {\n text-align: right !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .has-text-right-widescreen-only {\n text-align: right !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .has-text-right-fullhd {\n text-align: right !important; } }\n #optimole-app .is-capitalized {\n text-transform: capitalize !important; }\n #optimole-app .is-lowercase {\n text-transform: lowercase !important; }\n #optimole-app .is-uppercase {\n text-transform: uppercase !important; }\n #optimole-app .is-italic {\n font-style: italic !important; }\n #optimole-app .has-text-white {\n color: white !important; }\n #optimole-app a.has-text-white:hover, #optimole-app a.has-text-white:focus {\n color: #e6e6e6 !important; }\n #optimole-app .has-background-white {\n background-color: white !important; }\n #optimole-app .has-text-black {\n color: #0a0a0a !important; }\n #optimole-app a.has-text-black:hover, #optimole-app a.has-text-black:focus {\n color: black !important; }\n #optimole-app .has-background-black {\n background-color: #0a0a0a !important; }\n #optimole-app .has-text-light {\n color: whitesmoke !important; }\n #optimole-app a.has-text-light:hover, #optimole-app a.has-text-light:focus {\n color: #dbdbdb !important; }\n #optimole-app .has-background-light {\n background-color: whitesmoke !important; }\n #optimole-app .has-text-dark {\n color: #363636 !important; }\n #optimole-app a.has-text-dark:hover, #optimole-app a.has-text-dark:focus {\n color: #1c1c1c !important; }\n #optimole-app .has-background-dark {\n background-color: #363636 !important; }\n #optimole-app .has-text-primary {\n color: #e7602a !important; }\n #optimole-app a.has-text-primary:hover, #optimole-app a.has-text-primary:focus {\n color: #c84916 !important; }\n #optimole-app .has-background-primary {\n background-color: #e7602a !important; }\n #optimole-app .has-text-link {\n color: #3273dc !important; }\n #optimole-app a.has-text-link:hover, #optimole-app a.has-text-link:focus {\n color: #205bbc !important; }\n #optimole-app .has-background-link {\n background-color: #3273dc !important; }\n #optimole-app .has-text-info {\n color: #008ec2 !important; }\n #optimole-app a.has-text-info:hover, #optimole-app a.has-text-info:focus {\n color: #00698f !important; }\n #optimole-app .has-background-info {\n background-color: #008ec2 !important; }\n #optimole-app .has-text-success {\n color: #34a85e !important; }\n #optimole-app a.has-text-success:hover, #optimole-app a.has-text-success:focus {\n color: #288148 !important; }\n #optimole-app .has-background-success {\n background-color: #34a85e !important; }\n #optimole-app .has-text-warning {\n color: #ffdd57 !important; }\n #optimole-app a.has-text-warning:hover, #optimole-app a.has-text-warning:focus {\n color: #ffd324 !important; }\n #optimole-app .has-background-warning {\n background-color: #ffdd57 !important; }\n #optimole-app .has-text-danger {\n color: #d54222 !important; }\n #optimole-app a.has-text-danger:hover, #optimole-app a.has-text-danger:focus {\n color: #a9341b !important; }\n #optimole-app .has-background-danger {\n background-color: #d54222 !important; }\n #optimole-app .has-text-black-bis {\n color: #121212 !important; }\n #optimole-app .has-background-black-bis {\n background-color: #121212 !important; }\n #optimole-app .has-text-black-ter {\n color: #242424 !important; }\n #optimole-app .has-background-black-ter {\n background-color: #242424 !important; }\n #optimole-app .has-text-grey-darker {\n color: #363636 !important; }\n #optimole-app .has-background-grey-darker {\n background-color: #363636 !important; }\n #optimole-app .has-text-grey-dark {\n color: #4a4a4a !important; }\n #optimole-app .has-background-grey-dark {\n background-color: #4a4a4a !important; }\n #optimole-app .has-text-grey {\n color: #7a7a7a !important; }\n #optimole-app .has-background-grey {\n background-color: #7a7a7a !important; }\n #optimole-app .has-text-grey-light {\n color: #b5b5b5 !important; }\n #optimole-app .has-background-grey-light {\n background-color: #b5b5b5 !important; }\n #optimole-app .has-text-grey-lighter {\n color: #dbdbdb !important; }\n #optimole-app .has-background-grey-lighter {\n background-color: #dbdbdb !important; }\n #optimole-app .has-text-white-ter {\n color: whitesmoke !important; }\n #optimole-app .has-background-white-ter {\n background-color: whitesmoke !important; }\n #optimole-app .has-text-white-bis {\n color: #fafafa !important; }\n #optimole-app .has-background-white-bis {\n background-color: #fafafa !important; }\n #optimole-app .has-text-weight-light {\n font-weight: 300 !important; }\n #optimole-app .has-text-weight-normal {\n font-weight: 400 !important; }\n #optimole-app .has-text-weight-semibold {\n font-weight: 600 !important; }\n #optimole-app .has-text-weight-bold {\n font-weight: 700 !important; }\n #optimole-app .is-block {\n display: block !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-block-mobile {\n display: block !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-block-tablet {\n display: block !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-block-tablet-only {\n display: block !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-block-touch {\n display: block !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-block-desktop {\n display: block !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-block-desktop-only {\n display: block !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-block-widescreen {\n display: block !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-block-widescreen-only {\n display: block !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-block-fullhd {\n display: block !important; } }\n #optimole-app .is-flex {\n display: -ms-flexbox !important;\n display: flex !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-flex-mobile {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-flex-tablet {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-flex-tablet-only {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-flex-touch {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-flex-desktop {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-flex-desktop-only {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-flex-widescreen {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-flex-widescreen-only {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-flex-fullhd {\n display: -ms-flexbox !important;\n display: flex !important; } }\n #optimole-app .is-inline {\n display: inline !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-inline-mobile {\n display: inline !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-inline-tablet {\n display: inline !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-inline-tablet-only {\n display: inline !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-inline-touch {\n display: inline !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-inline-desktop {\n display: inline !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-inline-desktop-only {\n display: inline !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-inline-widescreen {\n display: inline !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-inline-widescreen-only {\n display: inline !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-inline-fullhd {\n display: inline !important; } }\n #optimole-app .is-inline-block {\n display: inline-block !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-inline-block-mobile {\n display: inline-block !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-inline-block-tablet {\n display: inline-block !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-inline-block-tablet-only {\n display: inline-block !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-inline-block-touch {\n display: inline-block !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-inline-block-desktop {\n display: inline-block !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-inline-block-desktop-only {\n display: inline-block !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-inline-block-widescreen {\n display: inline-block !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-inline-block-widescreen-only {\n display: inline-block !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-inline-block-fullhd {\n display: inline-block !important; } }\n #optimole-app .is-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-inline-flex-mobile {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-inline-flex-tablet {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-inline-flex-tablet-only {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-inline-flex-touch {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-inline-flex-desktop {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-inline-flex-desktop-only {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-inline-flex-widescreen {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-inline-flex-widescreen-only {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-inline-flex-fullhd {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n #optimole-app .is-hidden {\n display: none !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-hidden-mobile {\n display: none !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-hidden-tablet {\n display: none !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-hidden-tablet-only {\n display: none !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-hidden-touch {\n display: none !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-hidden-desktop {\n display: none !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-hidden-desktop-only {\n display: none !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-hidden-widescreen {\n display: none !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-hidden-widescreen-only {\n display: none !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-hidden-fullhd {\n display: none !important; } }\n #optimole-app .is-invisible {\n visibility: hidden !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-invisible-mobile {\n visibility: hidden !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-invisible-tablet {\n visibility: hidden !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-invisible-tablet-only {\n visibility: hidden !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-invisible-touch {\n visibility: hidden !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-invisible-desktop {\n visibility: hidden !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-invisible-desktop-only {\n visibility: hidden !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-invisible-widescreen {\n visibility: hidden !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-invisible-widescreen-only {\n visibility: hidden !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-invisible-fullhd {\n visibility: hidden !important; } }\n #optimole-app .is-marginless {\n margin: 0 !important; }\n #optimole-app .is-paddingless {\n padding: 0 !important; }\n #optimole-app .is-radiusless {\n border-radius: 0 !important; }\n #optimole-app .is-shadowless {\n box-shadow: none !important; }\n #optimole-app .box {\n background-color: white;\n border-radius: 6px;\n box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);\n color: #4a4a4a;\n display: block;\n padding: 1.25rem; }\n #optimole-app a.box:hover, #optimole-app a.box:focus {\n box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #3273dc; }\n #optimole-app a.box:active {\n box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #3273dc; }\n #optimole-app .button {\n background-color: white;\n border-color: #dbdbdb;\n border-width: 1px;\n color: #363636;\n cursor: pointer;\n -ms-flex-pack: center;\n justify-content: center;\n padding-bottom: calc(0.375em - 1px);\n padding-left: 0.75em;\n padding-right: 0.75em;\n padding-top: calc(0.375em - 1px);\n text-align: center;\n white-space: nowrap; }\n #optimole-app .button strong {\n color: inherit; }\n #optimole-app .button .icon, #optimole-app .button .icon.is-small, #optimole-app .button .icon.is-medium, #optimole-app .button .icon.is-large {\n height: 1.5em;\n width: 1.5em; }\n #optimole-app .button .icon:first-child:not(:last-child) {\n margin-left: calc(-0.375em - 1px);\n margin-right: 0.1875em; }\n #optimole-app .button .icon:last-child:not(:first-child) {\n margin-left: 0.1875em;\n margin-right: calc(-0.375em - 1px); }\n #optimole-app .button .icon:first-child:last-child {\n margin-left: calc(-0.375em - 1px);\n margin-right: calc(-0.375em - 1px); }\n #optimole-app .button:hover, #optimole-app .button.is-hovered {\n border-color: #b5b5b5;\n color: #363636; }\n #optimole-app .button:focus, #optimole-app .button.is-focused {\n border-color: #3273dc;\n color: #363636; }\n #optimole-app .button:focus:not(:active), #optimole-app .button.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); }\n #optimole-app .button:active, #optimole-app .button.is-active {\n border-color: #4a4a4a;\n color: #363636; }\n #optimole-app .button.is-text {\n background-color: transparent;\n border-color: transparent;\n color: #4a4a4a;\n text-decoration: underline; }\n #optimole-app .button.is-text:hover, #optimole-app .button.is-text.is-hovered, #optimole-app .button.is-text:focus, #optimole-app .button.is-text.is-focused {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .button.is-text:active, #optimole-app .button.is-text.is-active {\n background-color: #e8e8e8;\n color: #363636; }\n #optimole-app .button.is-text[disabled] {\n background-color: transparent;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-white {\n background-color: white;\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .button.is-white:hover, #optimole-app .button.is-white.is-hovered {\n background-color: #f9f9f9;\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .button.is-white:focus, #optimole-app .button.is-white.is-focused {\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .button.is-white:focus:not(:active), #optimole-app .button.is-white.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }\n #optimole-app .button.is-white:active, #optimole-app .button.is-white.is-active {\n background-color: #f2f2f2;\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .button.is-white[disabled] {\n background-color: white;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-white.is-inverted {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .button.is-white.is-inverted:hover {\n background-color: black; }\n #optimole-app .button.is-white.is-inverted[disabled] {\n background-color: #0a0a0a;\n border-color: transparent;\n box-shadow: none;\n color: white; }\n #optimole-app .button.is-white.is-loading::after {\n border-color: transparent transparent #0a0a0a #0a0a0a !important; }\n #optimole-app .button.is-white.is-outlined {\n background-color: transparent;\n border-color: white;\n color: white; }\n #optimole-app .button.is-white.is-outlined:hover, #optimole-app .button.is-white.is-outlined:focus {\n background-color: white;\n border-color: white;\n color: #0a0a0a; }\n #optimole-app .button.is-white.is-outlined.is-loading::after {\n border-color: transparent transparent white white !important; }\n #optimole-app .button.is-white.is-outlined[disabled] {\n background-color: transparent;\n border-color: white;\n box-shadow: none;\n color: white; }\n #optimole-app .button.is-white.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #0a0a0a;\n color: #0a0a0a; }\n #optimole-app .button.is-white.is-inverted.is-outlined:hover, #optimole-app .button.is-white.is-inverted.is-outlined:focus {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .button.is-white.is-inverted.is-outlined[disabled] {\n background-color: transparent;\n border-color: #0a0a0a;\n box-shadow: none;\n color: #0a0a0a; }\n #optimole-app .button.is-black {\n background-color: #0a0a0a;\n border-color: transparent;\n color: white; }\n #optimole-app .button.is-black:hover, #optimole-app .button.is-black.is-hovered {\n background-color: #040404;\n border-color: transparent;\n color: white; }\n #optimole-app .button.is-black:focus, #optimole-app .button.is-black.is-focused {\n border-color: transparent;\n color: white; }\n #optimole-app .button.is-black:focus:not(:active), #optimole-app .button.is-black.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }\n #optimole-app .button.is-black:active, #optimole-app .button.is-black.is-active {\n background-color: black;\n border-color: transparent;\n color: white; }\n #optimole-app .button.is-black[disabled] {\n background-color: #0a0a0a;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-black.is-inverted {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .button.is-black.is-inverted:hover {\n background-color: #f2f2f2; }\n #optimole-app .button.is-black.is-inverted[disabled] {\n background-color: white;\n border-color: transparent;\n box-shadow: none;\n color: #0a0a0a; }\n #optimole-app .button.is-black.is-loading::after {\n border-color: transparent transparent white white !important; }\n #optimole-app .button.is-black.is-outlined {\n background-color: transparent;\n border-color: #0a0a0a;\n color: #0a0a0a; }\n #optimole-app .button.is-black.is-outlined:hover, #optimole-app .button.is-black.is-outlined:focus {\n background-color: #0a0a0a;\n border-color: #0a0a0a;\n color: white; }\n #optimole-app .button.is-black.is-outlined.is-loading::after {\n border-color: transparent transparent #0a0a0a #0a0a0a !important; }\n #optimole-app .button.is-black.is-outlined[disabled] {\n background-color: transparent;\n border-color: #0a0a0a;\n box-shadow: none;\n color: #0a0a0a; }\n #optimole-app .button.is-black.is-inverted.is-outlined {\n background-color: transparent;\n border-color: white;\n color: white; }\n #optimole-app .button.is-black.is-inverted.is-outlined:hover, #optimole-app .button.is-black.is-inverted.is-outlined:focus {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .button.is-black.is-inverted.is-outlined[disabled] {\n background-color: transparent;\n border-color: white;\n box-shadow: none;\n color: white; }\n #optimole-app .button.is-light {\n background-color: whitesmoke;\n border-color: transparent;\n color: #363636; }\n #optimole-app .button.is-light:hover, #optimole-app .button.is-light.is-hovered {\n background-color: #eeeeee;\n border-color: transparent;\n color: #363636; }\n #optimole-app .button.is-light:focus, #optimole-app .button.is-light.is-focused {\n border-color: transparent;\n color: #363636; }\n #optimole-app .button.is-light:focus:not(:active), #optimole-app .button.is-light.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }\n #optimole-app .button.is-light:active, #optimole-app .button.is-light.is-active {\n background-color: #e8e8e8;\n border-color: transparent;\n color: #363636; }\n #optimole-app .button.is-light[disabled] {\n background-color: whitesmoke;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-light.is-inverted {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .button.is-light.is-inverted:hover {\n background-color: #292929; }\n #optimole-app .button.is-light.is-inverted[disabled] {\n background-color: #363636;\n border-color: transparent;\n box-shadow: none;\n color: whitesmoke; }\n #optimole-app .button.is-light.is-loading::after {\n border-color: transparent transparent #363636 #363636 !important; }\n #optimole-app .button.is-light.is-outlined {\n background-color: transparent;\n border-color: whitesmoke;\n color: whitesmoke; }\n #optimole-app .button.is-light.is-outlined:hover, #optimole-app .button.is-light.is-outlined:focus {\n background-color: whitesmoke;\n border-color: whitesmoke;\n color: #363636; }\n #optimole-app .button.is-light.is-outlined.is-loading::after {\n border-color: transparent transparent whitesmoke whitesmoke !important; }\n #optimole-app .button.is-light.is-outlined[disabled] {\n background-color: transparent;\n border-color: whitesmoke;\n box-shadow: none;\n color: whitesmoke; }\n #optimole-app .button.is-light.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #363636;\n color: #363636; }\n #optimole-app .button.is-light.is-inverted.is-outlined:hover, #optimole-app .button.is-light.is-inverted.is-outlined:focus {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .button.is-light.is-inverted.is-outlined[disabled] {\n background-color: transparent;\n border-color: #363636;\n box-shadow: none;\n color: #363636; }\n #optimole-app .button.is-dark {\n background-color: #363636;\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .button.is-dark:hover, #optimole-app .button.is-dark.is-hovered {\n background-color: #2f2f2f;\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .button.is-dark:focus, #optimole-app .button.is-dark.is-focused {\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .button.is-dark:focus:not(:active), #optimole-app .button.is-dark.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }\n #optimole-app .button.is-dark:active, #optimole-app .button.is-dark.is-active {\n background-color: #292929;\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .button.is-dark[disabled] {\n background-color: #363636;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-dark.is-inverted {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .button.is-dark.is-inverted:hover {\n background-color: #e8e8e8; }\n #optimole-app .button.is-dark.is-inverted[disabled] {\n background-color: whitesmoke;\n border-color: transparent;\n box-shadow: none;\n color: #363636; }\n #optimole-app .button.is-dark.is-loading::after {\n border-color: transparent transparent whitesmoke whitesmoke !important; }\n #optimole-app .button.is-dark.is-outlined {\n background-color: transparent;\n border-color: #363636;\n color: #363636; }\n #optimole-app .button.is-dark.is-outlined:hover, #optimole-app .button.is-dark.is-outlined:focus {\n background-color: #363636;\n border-color: #363636;\n color: whitesmoke; }\n #optimole-app .button.is-dark.is-outlined.is-loading::after {\n border-color: transparent transparent #363636 #363636 !important; }\n #optimole-app .button.is-dark.is-outlined[disabled] {\n background-color: transparent;\n border-color: #363636;\n box-shadow: none;\n color: #363636; }\n #optimole-app .button.is-dark.is-inverted.is-outlined {\n background-color: transparent;\n border-color: whitesmoke;\n color: whitesmoke; }\n #optimole-app .button.is-dark.is-inverted.is-outlined:hover, #optimole-app .button.is-dark.is-inverted.is-outlined:focus {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .button.is-dark.is-inverted.is-outlined[disabled] {\n background-color: transparent;\n border-color: whitesmoke;\n box-shadow: none;\n color: whitesmoke; }\n #optimole-app .button.is-primary {\n background-color: #e7602a;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-primary:hover, #optimole-app .button.is-primary.is-hovered {\n background-color: #e6571f;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-primary:focus, #optimole-app .button.is-primary.is-focused {\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-primary:focus:not(:active), #optimole-app .button.is-primary.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(231, 96, 42, 0.25); }\n #optimole-app .button.is-primary:active, #optimole-app .button.is-primary.is-active {\n background-color: #de5119;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-primary[disabled] {\n background-color: #e7602a;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-primary.is-inverted {\n background-color: #fff;\n color: #e7602a; }\n #optimole-app .button.is-primary.is-inverted:hover {\n background-color: #f2f2f2; }\n #optimole-app .button.is-primary.is-inverted[disabled] {\n background-color: #fff;\n border-color: transparent;\n box-shadow: none;\n color: #e7602a; }\n #optimole-app .button.is-primary.is-loading::after {\n border-color: transparent transparent #fff #fff !important; }\n #optimole-app .button.is-primary.is-outlined {\n background-color: transparent;\n border-color: #e7602a;\n color: #e7602a; }\n #optimole-app .button.is-primary.is-outlined:hover, #optimole-app .button.is-primary.is-outlined:focus {\n background-color: #e7602a;\n border-color: #e7602a;\n color: #fff; }\n #optimole-app .button.is-primary.is-outlined.is-loading::after {\n border-color: transparent transparent #e7602a #e7602a !important; }\n #optimole-app .button.is-primary.is-outlined[disabled] {\n background-color: transparent;\n border-color: #e7602a;\n box-shadow: none;\n color: #e7602a; }\n #optimole-app .button.is-primary.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n color: #fff; }\n #optimole-app .button.is-primary.is-inverted.is-outlined:hover, #optimole-app .button.is-primary.is-inverted.is-outlined:focus {\n background-color: #fff;\n color: #e7602a; }\n #optimole-app .button.is-primary.is-inverted.is-outlined[disabled] {\n background-color: transparent;\n border-color: #fff;\n box-shadow: none;\n color: #fff; }\n #optimole-app .button.is-link {\n background-color: #3273dc;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-link:hover, #optimole-app .button.is-link.is-hovered {\n background-color: #276cda;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-link:focus, #optimole-app .button.is-link.is-focused {\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-link:focus:not(:active), #optimole-app .button.is-link.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); }\n #optimole-app .button.is-link:active, #optimole-app .button.is-link.is-active {\n background-color: #2366d1;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-link[disabled] {\n background-color: #3273dc;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-link.is-inverted {\n background-color: #fff;\n color: #3273dc; }\n #optimole-app .button.is-link.is-inverted:hover {\n background-color: #f2f2f2; }\n #optimole-app .button.is-link.is-inverted[disabled] {\n background-color: #fff;\n border-color: transparent;\n box-shadow: none;\n color: #3273dc; }\n #optimole-app .button.is-link.is-loading::after {\n border-color: transparent transparent #fff #fff !important; }\n #optimole-app .button.is-link.is-outlined {\n background-color: transparent;\n border-color: #3273dc;\n color: #3273dc; }\n #optimole-app .button.is-link.is-outlined:hover, #optimole-app .button.is-link.is-outlined:focus {\n background-color: #3273dc;\n border-color: #3273dc;\n color: #fff; }\n #optimole-app .button.is-link.is-outlined.is-loading::after {\n border-color: transparent transparent #3273dc #3273dc !important; }\n #optimole-app .button.is-link.is-outlined[disabled] {\n background-color: transparent;\n border-color: #3273dc;\n box-shadow: none;\n color: #3273dc; }\n #optimole-app .button.is-link.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n color: #fff; }\n #optimole-app .button.is-link.is-inverted.is-outlined:hover, #optimole-app .button.is-link.is-inverted.is-outlined:focus {\n background-color: #fff;\n color: #3273dc; }\n #optimole-app .button.is-link.is-inverted.is-outlined[disabled] {\n background-color: transparent;\n border-color: #fff;\n box-shadow: none;\n color: #fff; }\n #optimole-app .button.is-info {\n background-color: #008ec2;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-info:hover, #optimole-app .button.is-info.is-hovered {\n background-color: #0085b5;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-info:focus, #optimole-app .button.is-info.is-focused {\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-info:focus:not(:active), #optimole-app .button.is-info.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(0, 142, 194, 0.25); }\n #optimole-app .button.is-info:active, #optimole-app .button.is-info.is-active {\n background-color: #007ba9;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-info[disabled] {\n background-color: #008ec2;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-info.is-inverted {\n background-color: #fff;\n color: #008ec2; }\n #optimole-app .button.is-info.is-inverted:hover {\n background-color: #f2f2f2; }\n #optimole-app .button.is-info.is-inverted[disabled] {\n background-color: #fff;\n border-color: transparent;\n box-shadow: none;\n color: #008ec2; }\n #optimole-app .button.is-info.is-loading::after {\n border-color: transparent transparent #fff #fff !important; }\n #optimole-app .button.is-info.is-outlined {\n background-color: transparent;\n border-color: #008ec2;\n color: #008ec2; }\n #optimole-app .button.is-info.is-outlined:hover, #optimole-app .button.is-info.is-outlined:focus {\n background-color: #008ec2;\n border-color: #008ec2;\n color: #fff; }\n #optimole-app .button.is-info.is-outlined.is-loading::after {\n border-color: transparent transparent #008ec2 #008ec2 !important; }\n #optimole-app .button.is-info.is-outlined[disabled] {\n background-color: transparent;\n border-color: #008ec2;\n box-shadow: none;\n color: #008ec2; }\n #optimole-app .button.is-info.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n color: #fff; }\n #optimole-app .button.is-info.is-inverted.is-outlined:hover, #optimole-app .button.is-info.is-inverted.is-outlined:focus {\n background-color: #fff;\n color: #008ec2; }\n #optimole-app .button.is-info.is-inverted.is-outlined[disabled] {\n background-color: transparent;\n border-color: #fff;\n box-shadow: none;\n color: #fff; }\n #optimole-app .button.is-success {\n background-color: #34a85e;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-success:hover, #optimole-app .button.is-success.is-hovered {\n background-color: #319e59;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-success:focus, #optimole-app .button.is-success.is-focused {\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-success:focus:not(:active), #optimole-app .button.is-success.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(52, 168, 94, 0.25); }\n #optimole-app .button.is-success:active, #optimole-app .button.is-success.is-active {\n background-color: #2e9553;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-success[disabled] {\n background-color: #34a85e;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-success.is-inverted {\n background-color: #fff;\n color: #34a85e; }\n #optimole-app .button.is-success.is-inverted:hover {\n background-color: #f2f2f2; }\n #optimole-app .button.is-success.is-inverted[disabled] {\n background-color: #fff;\n border-color: transparent;\n box-shadow: none;\n color: #34a85e; }\n #optimole-app .button.is-success.is-loading::after {\n border-color: transparent transparent #fff #fff !important; }\n #optimole-app .button.is-success.is-outlined {\n background-color: transparent;\n border-color: #34a85e;\n color: #34a85e; }\n #optimole-app .button.is-success.is-outlined:hover, #optimole-app .button.is-success.is-outlined:focus {\n background-color: #34a85e;\n border-color: #34a85e;\n color: #fff; }\n #optimole-app .button.is-success.is-outlined.is-loading::after {\n border-color: transparent transparent #34a85e #34a85e !important; }\n #optimole-app .button.is-success.is-outlined[disabled] {\n background-color: transparent;\n border-color: #34a85e;\n box-shadow: none;\n color: #34a85e; }\n #optimole-app .button.is-success.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n color: #fff; }\n #optimole-app .button.is-success.is-inverted.is-outlined:hover, #optimole-app .button.is-success.is-inverted.is-outlined:focus {\n background-color: #fff;\n color: #34a85e; }\n #optimole-app .button.is-success.is-inverted.is-outlined[disabled] {\n background-color: transparent;\n border-color: #fff;\n box-shadow: none;\n color: #fff; }\n #optimole-app .button.is-warning {\n background-color: #ffdd57;\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning:hover, #optimole-app .button.is-warning.is-hovered {\n background-color: #ffdb4a;\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning:focus, #optimole-app .button.is-warning.is-focused {\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning:focus:not(:active), #optimole-app .button.is-warning.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }\n #optimole-app .button.is-warning:active, #optimole-app .button.is-warning.is-active {\n background-color: #ffd83d;\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning[disabled] {\n background-color: #ffdd57;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-warning.is-inverted {\n background-color: rgba(0, 0, 0, 0.7);\n color: #ffdd57; }\n #optimole-app .button.is-warning.is-inverted:hover {\n background-color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning.is-inverted[disabled] {\n background-color: rgba(0, 0, 0, 0.7);\n border-color: transparent;\n box-shadow: none;\n color: #ffdd57; }\n #optimole-app .button.is-warning.is-loading::after {\n border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; }\n #optimole-app .button.is-warning.is-outlined {\n background-color: transparent;\n border-color: #ffdd57;\n color: #ffdd57; }\n #optimole-app .button.is-warning.is-outlined:hover, #optimole-app .button.is-warning.is-outlined:focus {\n background-color: #ffdd57;\n border-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning.is-outlined.is-loading::after {\n border-color: transparent transparent #ffdd57 #ffdd57 !important; }\n #optimole-app .button.is-warning.is-outlined[disabled] {\n background-color: transparent;\n border-color: #ffdd57;\n box-shadow: none;\n color: #ffdd57; }\n #optimole-app .button.is-warning.is-inverted.is-outlined {\n background-color: transparent;\n border-color: rgba(0, 0, 0, 0.7);\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning.is-inverted.is-outlined:hover, #optimole-app .button.is-warning.is-inverted.is-outlined:focus {\n background-color: rgba(0, 0, 0, 0.7);\n color: #ffdd57; }\n #optimole-app .button.is-warning.is-inverted.is-outlined[disabled] {\n background-color: transparent;\n border-color: rgba(0, 0, 0, 0.7);\n box-shadow: none;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-danger {\n background-color: #d54222;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-danger:hover, #optimole-app .button.is-danger.is-hovered {\n background-color: #ca3f20;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-danger:focus, #optimole-app .button.is-danger.is-focused {\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-danger:focus:not(:active), #optimole-app .button.is-danger.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(213, 66, 34, 0.25); }\n #optimole-app .button.is-danger:active, #optimole-app .button.is-danger.is-active {\n background-color: #bf3b1e;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-danger[disabled] {\n background-color: #d54222;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-danger.is-inverted {\n background-color: #fff;\n color: #d54222; }\n #optimole-app .button.is-danger.is-inverted:hover {\n background-color: #f2f2f2; }\n #optimole-app .button.is-danger.is-inverted[disabled] {\n background-color: #fff;\n border-color: transparent;\n box-shadow: none;\n color: #d54222; }\n #optimole-app .button.is-danger.is-loading::after {\n border-color: transparent transparent #fff #fff !important; }\n #optimole-app .button.is-danger.is-outlined {\n background-color: transparent;\n border-color: #d54222;\n color: #d54222; }\n #optimole-app .button.is-danger.is-outlined:hover, #optimole-app .button.is-danger.is-outlined:focus {\n background-color: #d54222;\n border-color: #d54222;\n color: #fff; }\n #optimole-app .button.is-danger.is-outlined.is-loading::after {\n border-color: transparent transparent #d54222 #d54222 !important; }\n #optimole-app .button.is-danger.is-outlined[disabled] {\n background-color: transparent;\n border-color: #d54222;\n box-shadow: none;\n color: #d54222; }\n #optimole-app .button.is-danger.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n color: #fff; }\n #optimole-app .button.is-danger.is-inverted.is-outlined:hover, #optimole-app .button.is-danger.is-inverted.is-outlined:focus {\n background-color: #fff;\n color: #d54222; }\n #optimole-app .button.is-danger.is-inverted.is-outlined[disabled] {\n background-color: transparent;\n border-color: #fff;\n box-shadow: none;\n color: #fff; }\n #optimole-app .button.is-small {\n border-radius: 2px;\n font-size: 0.75rem; }\n #optimole-app .button.is-medium {\n font-size: 1.25rem; }\n #optimole-app .button.is-large {\n font-size: 1.5rem; }\n #optimole-app .button[disabled] {\n background-color: white;\n border-color: #dbdbdb;\n box-shadow: none;\n opacity: 0.5; }\n #optimole-app .button.is-fullwidth {\n display: -ms-flexbox;\n display: flex;\n width: 100%; }\n #optimole-app .button.is-loading {\n color: transparent !important;\n pointer-events: none; }\n #optimole-app .button.is-loading::after {\n position: absolute;\n left: calc(50% - (1em / 2));\n top: calc(50% - (1em / 2));\n position: absolute !important; }\n #optimole-app .button.is-static {\n background-color: whitesmoke;\n border-color: #dbdbdb;\n color: #7a7a7a;\n box-shadow: none;\n pointer-events: none; }\n #optimole-app .button.is-rounded {\n border-radius: 290486px;\n padding-left: 1em;\n padding-right: 1em; }\n #optimole-app .buttons {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n #optimole-app .buttons .button {\n margin-bottom: 0.5rem; }\n #optimole-app .buttons .button:not(:last-child) {\n margin-right: 0.5rem; }\n #optimole-app .buttons:last-child {\n margin-bottom: -0.5rem; }\n #optimole-app .buttons:not(:last-child) {\n margin-bottom: 1rem; }\n #optimole-app .buttons.has-addons .button:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n #optimole-app .buttons.has-addons .button:not(:last-child) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n margin-right: -1px; }\n #optimole-app .buttons.has-addons .button:last-child {\n margin-right: 0; }\n #optimole-app .buttons.has-addons .button:hover, #optimole-app .buttons.has-addons .button.is-hovered {\n z-index: 2; }\n #optimole-app .buttons.has-addons .button:focus, #optimole-app .buttons.has-addons .button.is-focused, #optimole-app .buttons.has-addons .button:active, #optimole-app .buttons.has-addons .button.is-active, #optimole-app .buttons.has-addons .button.is-selected {\n z-index: 3; }\n #optimole-app .buttons.has-addons .button:focus:hover, #optimole-app .buttons.has-addons .button.is-focused:hover, #optimole-app .buttons.has-addons .button:active:hover, #optimole-app .buttons.has-addons .button.is-active:hover, #optimole-app .buttons.has-addons .button.is-selected:hover {\n z-index: 4; }\n #optimole-app .buttons.has-addons .button.is-expanded {\n -ms-flex-positive: 1;\n flex-grow: 1; }\n #optimole-app .buttons.is-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .buttons.is-right {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .container {\n margin: 0 auto;\n position: relative; }\n @media screen and (min-width: 1088px) {\n #optimole-app .container {\n max-width: 960px;\n width: 960px; }\n #optimole-app .container.is-fluid {\n margin-left: 64px;\n margin-right: 64px;\n max-width: none;\n width: auto; } }\n @media screen and (max-width: 1279px) {\n #optimole-app .container.is-widescreen {\n max-width: 1152px;\n width: auto; } }\n @media screen and (max-width: 1471px) {\n #optimole-app .container.is-fullhd {\n max-width: 1344px;\n width: auto; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .container {\n max-width: 1152px;\n width: 1152px; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .container {\n max-width: 1344px;\n width: 1344px; } }\n #optimole-app .content li + li {\n margin-top: 0.25em; }\n #optimole-app .content p:not(:last-child),\n #optimole-app .content dl:not(:last-child),\n #optimole-app .content ol:not(:last-child),\n #optimole-app .content ul:not(:last-child),\n #optimole-app .content blockquote:not(:last-child),\n #optimole-app .content pre:not(:last-child),\n #optimole-app .content table:not(:last-child) {\n margin-bottom: 1em; }\n #optimole-app .content h1,\n #optimole-app .content h2,\n #optimole-app .content h3,\n #optimole-app .content h4,\n #optimole-app .content h5,\n #optimole-app .content h6 {\n color: #363636;\n font-weight: 600;\n line-height: 1.125; }\n #optimole-app .content h1 {\n font-size: 2em;\n margin-bottom: 0.5em; }\n #optimole-app .content h1:not(:first-child) {\n margin-top: 1em; }\n #optimole-app .content h2 {\n font-size: 1.75em;\n margin-bottom: 0.5714em; }\n #optimole-app .content h2:not(:first-child) {\n margin-top: 1.1428em; }\n #optimole-app .content h3 {\n font-size: 1.5em;\n margin-bottom: 0.6666em; }\n #optimole-app .content h3:not(:first-child) {\n margin-top: 1.3333em; }\n #optimole-app .content h4 {\n font-size: 1.25em;\n margin-bottom: 0.8em; }\n #optimole-app .content h5 {\n font-size: 1.125em;\n margin-bottom: 0.8888em; }\n #optimole-app .content h6 {\n font-size: 1em;\n margin-bottom: 1em; }\n #optimole-app .content blockquote {\n background-color: whitesmoke;\n border-left: 5px solid #dbdbdb;\n padding: 1.25em 1.5em; }\n #optimole-app .content ol {\n list-style: decimal outside;\n margin-left: 2em;\n margin-top: 1em; }\n #optimole-app .content ul {\n list-style: disc outside;\n margin-left: 2em;\n margin-top: 1em; }\n #optimole-app .content ul ul {\n list-style-type: circle;\n margin-top: 0.5em; }\n #optimole-app .content ul ul ul {\n list-style-type: square; }\n #optimole-app .content dd {\n margin-left: 2em; }\n #optimole-app .content figure {\n margin-left: 2em;\n margin-right: 2em;\n text-align: center; }\n #optimole-app .content figure:not(:first-child) {\n margin-top: 2em; }\n #optimole-app .content figure:not(:last-child) {\n margin-bottom: 2em; }\n #optimole-app .content figure img {\n display: inline-block; }\n #optimole-app .content figure figcaption {\n font-style: italic; }\n #optimole-app .content pre {\n -webkit-overflow-scrolling: touch;\n overflow-x: auto;\n padding: 1.25em 1.5em;\n white-space: pre;\n word-wrap: normal; }\n #optimole-app .content sup,\n #optimole-app .content sub {\n font-size: 75%; }\n #optimole-app .content table {\n width: 100%; }\n #optimole-app .content table td,\n #optimole-app .content table th {\n border: 1px solid #dbdbdb;\n border-width: 0 0 1px;\n padding: 0.5em 0.75em;\n vertical-align: top; }\n #optimole-app .content table th {\n color: #363636;\n text-align: left; }\n #optimole-app .content table thead td,\n #optimole-app .content table thead th {\n border-width: 0 0 2px;\n color: #363636; }\n #optimole-app .content table tfoot td,\n #optimole-app .content table tfoot th {\n border-width: 2px 0 0;\n color: #363636; }\n #optimole-app .content table tbody tr:last-child td,\n #optimole-app .content table tbody tr:last-child th {\n border-bottom-width: 0; }\n #optimole-app .content.is-small {\n font-size: 0.75rem; }\n #optimole-app .content.is-medium {\n font-size: 1.25rem; }\n #optimole-app .content.is-large {\n font-size: 1.5rem; }\n #optimole-app .input,\n #optimole-app .textarea {\n background-color: white;\n border-color: #dbdbdb;\n color: #363636;\n box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);\n max-width: 100%;\n width: 100%; }\n #optimole-app .input::-moz-placeholder,\n #optimole-app .textarea::-moz-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .input::-webkit-input-placeholder,\n #optimole-app .textarea::-webkit-input-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .input:-moz-placeholder,\n #optimole-app .textarea:-moz-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .input:-ms-input-placeholder,\n #optimole-app .textarea:-ms-input-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .input:hover, #optimole-app .input.is-hovered,\n #optimole-app .textarea:hover,\n #optimole-app .textarea.is-hovered {\n border-color: #b5b5b5; }\n #optimole-app .input:focus, #optimole-app .input.is-focused, #optimole-app .input:active, #optimole-app .input.is-active,\n #optimole-app .textarea:focus,\n #optimole-app .textarea.is-focused,\n #optimole-app .textarea:active,\n #optimole-app .textarea.is-active {\n border-color: #3273dc;\n box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); }\n #optimole-app .input[disabled],\n #optimole-app .textarea[disabled] {\n background-color: whitesmoke;\n border-color: whitesmoke;\n box-shadow: none;\n color: #7a7a7a; }\n #optimole-app .input[disabled]::-moz-placeholder,\n #optimole-app .textarea[disabled]::-moz-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .input[disabled]::-webkit-input-placeholder,\n #optimole-app .textarea[disabled]::-webkit-input-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .input[disabled]:-moz-placeholder,\n #optimole-app .textarea[disabled]:-moz-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .input[disabled]:-ms-input-placeholder,\n #optimole-app .textarea[disabled]:-ms-input-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .input[readonly],\n #optimole-app .textarea[readonly] {\n box-shadow: none; }\n #optimole-app .input.is-white,\n #optimole-app .textarea.is-white {\n border-color: white; }\n #optimole-app .input.is-white:focus, #optimole-app .input.is-white.is-focused, #optimole-app .input.is-white:active, #optimole-app .input.is-white.is-active,\n #optimole-app .textarea.is-white:focus,\n #optimole-app .textarea.is-white.is-focused,\n #optimole-app .textarea.is-white:active,\n #optimole-app .textarea.is-white.is-active {\n box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }\n #optimole-app .input.is-black,\n #optimole-app .textarea.is-black {\n border-color: #0a0a0a; }\n #optimole-app .input.is-black:focus, #optimole-app .input.is-black.is-focused, #optimole-app .input.is-black:active, #optimole-app .input.is-black.is-active,\n #optimole-app .textarea.is-black:focus,\n #optimole-app .textarea.is-black.is-focused,\n #optimole-app .textarea.is-black:active,\n #optimole-app .textarea.is-black.is-active {\n box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }\n #optimole-app .input.is-light,\n #optimole-app .textarea.is-light {\n border-color: whitesmoke; }\n #optimole-app .input.is-light:focus, #optimole-app .input.is-light.is-focused, #optimole-app .input.is-light:active, #optimole-app .input.is-light.is-active,\n #optimole-app .textarea.is-light:focus,\n #optimole-app .textarea.is-light.is-focused,\n #optimole-app .textarea.is-light:active,\n #optimole-app .textarea.is-light.is-active {\n box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }\n #optimole-app .input.is-dark,\n #optimole-app .textarea.is-dark {\n border-color: #363636; }\n #optimole-app .input.is-dark:focus, #optimole-app .input.is-dark.is-focused, #optimole-app .input.is-dark:active, #optimole-app .input.is-dark.is-active,\n #optimole-app .textarea.is-dark:focus,\n #optimole-app .textarea.is-dark.is-focused,\n #optimole-app .textarea.is-dark:active,\n #optimole-app .textarea.is-dark.is-active {\n box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }\n #optimole-app .input.is-primary,\n #optimole-app .textarea.is-primary {\n border-color: #e7602a; }\n #optimole-app .input.is-primary:focus, #optimole-app .input.is-primary.is-focused, #optimole-app .input.is-primary:active, #optimole-app .input.is-primary.is-active,\n #optimole-app .textarea.is-primary:focus,\n #optimole-app .textarea.is-primary.is-focused,\n #optimole-app .textarea.is-primary:active,\n #optimole-app .textarea.is-primary.is-active {\n box-shadow: 0 0 0 0.125em rgba(231, 96, 42, 0.25); }\n #optimole-app .input.is-link,\n #optimole-app .textarea.is-link {\n border-color: #3273dc; }\n #optimole-app .input.is-link:focus, #optimole-app .input.is-link.is-focused, #optimole-app .input.is-link:active, #optimole-app .input.is-link.is-active,\n #optimole-app .textarea.is-link:focus,\n #optimole-app .textarea.is-link.is-focused,\n #optimole-app .textarea.is-link:active,\n #optimole-app .textarea.is-link.is-active {\n box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); }\n #optimole-app .input.is-info,\n #optimole-app .textarea.is-info {\n border-color: #008ec2; }\n #optimole-app .input.is-info:focus, #optimole-app .input.is-info.is-focused, #optimole-app .input.is-info:active, #optimole-app .input.is-info.is-active,\n #optimole-app .textarea.is-info:focus,\n #optimole-app .textarea.is-info.is-focused,\n #optimole-app .textarea.is-info:active,\n #optimole-app .textarea.is-info.is-active {\n box-shadow: 0 0 0 0.125em rgba(0, 142, 194, 0.25); }\n #optimole-app .input.is-success,\n #optimole-app .textarea.is-success {\n border-color: #34a85e; }\n #optimole-app .input.is-success:focus, #optimole-app .input.is-success.is-focused, #optimole-app .input.is-success:active, #optimole-app .input.is-success.is-active,\n #optimole-app .textarea.is-success:focus,\n #optimole-app .textarea.is-success.is-focused,\n #optimole-app .textarea.is-success:active,\n #optimole-app .textarea.is-success.is-active {\n box-shadow: 0 0 0 0.125em rgba(52, 168, 94, 0.25); }\n #optimole-app .input.is-warning,\n #optimole-app .textarea.is-warning {\n border-color: #ffdd57; }\n #optimole-app .input.is-warning:focus, #optimole-app .input.is-warning.is-focused, #optimole-app .input.is-warning:active, #optimole-app .input.is-warning.is-active,\n #optimole-app .textarea.is-warning:focus,\n #optimole-app .textarea.is-warning.is-focused,\n #optimole-app .textarea.is-warning:active,\n #optimole-app .textarea.is-warning.is-active {\n box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }\n #optimole-app .input.is-danger,\n #optimole-app .textarea.is-danger {\n border-color: #d54222; }\n #optimole-app .input.is-danger:focus, #optimole-app .input.is-danger.is-focused, #optimole-app .input.is-danger:active, #optimole-app .input.is-danger.is-active,\n #optimole-app .textarea.is-danger:focus,\n #optimole-app .textarea.is-danger.is-focused,\n #optimole-app .textarea.is-danger:active,\n #optimole-app .textarea.is-danger.is-active {\n box-shadow: 0 0 0 0.125em rgba(213, 66, 34, 0.25); }\n #optimole-app .input.is-small,\n #optimole-app .textarea.is-small {\n border-radius: 2px;\n font-size: 0.75rem; }\n #optimole-app .input.is-medium,\n #optimole-app .textarea.is-medium {\n font-size: 1.25rem; }\n #optimole-app .input.is-large,\n #optimole-app .textarea.is-large {\n font-size: 1.5rem; }\n #optimole-app .input.is-fullwidth,\n #optimole-app .textarea.is-fullwidth {\n display: block;\n width: 100%; }\n #optimole-app .input.is-inline,\n #optimole-app .textarea.is-inline {\n display: inline;\n width: auto; }\n #optimole-app .input.is-rounded {\n border-radius: 290486px;\n padding-left: 1em;\n padding-right: 1em; }\n #optimole-app .input.is-static {\n background-color: transparent;\n border-color: transparent;\n box-shadow: none;\n padding-left: 0;\n padding-right: 0; }\n #optimole-app .textarea {\n display: block;\n max-width: 100%;\n min-width: 100%;\n padding: 0.625em;\n resize: vertical; }\n #optimole-app .textarea:not([rows]) {\n max-height: 600px;\n min-height: 120px; }\n #optimole-app .textarea[rows] {\n height: initial; }\n #optimole-app .textarea.has-fixed-size {\n resize: none; }\n #optimole-app .checkbox,\n #optimole-app .radio {\n cursor: pointer;\n display: inline-block;\n line-height: 1.25;\n position: relative; }\n #optimole-app .checkbox input,\n #optimole-app .radio input {\n cursor: pointer; }\n #optimole-app .checkbox:hover,\n #optimole-app .radio:hover {\n color: #363636; }\n #optimole-app .checkbox[disabled],\n #optimole-app .radio[disabled] {\n color: #7a7a7a;\n cursor: not-allowed; }\n #optimole-app .radio + .radio {\n margin-left: 0.5em; }\n #optimole-app .select {\n display: inline-block;\n max-width: 100%;\n position: relative;\n vertical-align: top; }\n #optimole-app .select:not(.is-multiple) {\n height: 2.25em; }\n #optimole-app .select:not(.is-multiple):not(.is-loading)::after {\n border-color: #3273dc;\n right: 1.125em;\n z-index: 4; }\n #optimole-app .select.is-rounded select {\n border-radius: 290486px;\n padding-left: 1em; }\n #optimole-app .select select {\n background-color: white;\n border-color: #dbdbdb;\n color: #363636;\n cursor: pointer;\n display: block;\n font-size: 1em;\n max-width: 100%;\n outline: none; }\n #optimole-app .select select::-moz-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .select select::-webkit-input-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .select select:-moz-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .select select:-ms-input-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .select select:hover, #optimole-app .select select.is-hovered {\n border-color: #b5b5b5; }\n #optimole-app .select select:focus, #optimole-app .select select.is-focused, #optimole-app .select select:active, #optimole-app .select select.is-active {\n border-color: #3273dc;\n box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); }\n #optimole-app .select select[disabled] {\n background-color: whitesmoke;\n border-color: whitesmoke;\n box-shadow: none;\n color: #7a7a7a; }\n #optimole-app .select select[disabled]::-moz-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .select select[disabled]::-webkit-input-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .select select[disabled]:-moz-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .select select[disabled]:-ms-input-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .select select::-ms-expand {\n display: none; }\n #optimole-app .select select[disabled]:hover {\n border-color: whitesmoke; }\n #optimole-app .select select:not([multiple]) {\n padding-right: 2.5em; }\n #optimole-app .select select[multiple] {\n height: initial;\n padding: 0; }\n #optimole-app .select select[multiple] option {\n padding: 0.5em 1em; }\n #optimole-app .select:not(.is-multiple):not(.is-loading):hover::after {\n border-color: #363636; }\n #optimole-app .select.is-white:not(:hover)::after {\n border-color: white; }\n #optimole-app .select.is-white select {\n border-color: white; }\n #optimole-app .select.is-white select:hover, #optimole-app .select.is-white select.is-hovered {\n border-color: #f2f2f2; }\n #optimole-app .select.is-white select:focus, #optimole-app .select.is-white select.is-focused, #optimole-app .select.is-white select:active, #optimole-app .select.is-white select.is-active {\n box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }\n #optimole-app .select.is-black:not(:hover)::after {\n border-color: #0a0a0a; }\n #optimole-app .select.is-black select {\n border-color: #0a0a0a; }\n #optimole-app .select.is-black select:hover, #optimole-app .select.is-black select.is-hovered {\n border-color: black; }\n #optimole-app .select.is-black select:focus, #optimole-app .select.is-black select.is-focused, #optimole-app .select.is-black select:active, #optimole-app .select.is-black select.is-active {\n box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }\n #optimole-app .select.is-light:not(:hover)::after {\n border-color: whitesmoke; }\n #optimole-app .select.is-light select {\n border-color: whitesmoke; }\n #optimole-app .select.is-light select:hover, #optimole-app .select.is-light select.is-hovered {\n border-color: #e8e8e8; }\n #optimole-app .select.is-light select:focus, #optimole-app .select.is-light select.is-focused, #optimole-app .select.is-light select:active, #optimole-app .select.is-light select.is-active {\n box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }\n #optimole-app .select.is-dark:not(:hover)::after {\n border-color: #363636; }\n #optimole-app .select.is-dark select {\n border-color: #363636; }\n #optimole-app .select.is-dark select:hover, #optimole-app .select.is-dark select.is-hovered {\n border-color: #292929; }\n #optimole-app .select.is-dark select:focus, #optimole-app .select.is-dark select.is-focused, #optimole-app .select.is-dark select:active, #optimole-app .select.is-dark select.is-active {\n box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }\n #optimole-app .select.is-primary:not(:hover)::after {\n border-color: #e7602a; }\n #optimole-app .select.is-primary select {\n border-color: #e7602a; }\n #optimole-app .select.is-primary select:hover, #optimole-app .select.is-primary select.is-hovered {\n border-color: #de5119; }\n #optimole-app .select.is-primary select:focus, #optimole-app .select.is-primary select.is-focused, #optimole-app .select.is-primary select:active, #optimole-app .select.is-primary select.is-active {\n box-shadow: 0 0 0 0.125em rgba(231, 96, 42, 0.25); }\n #optimole-app .select.is-link:not(:hover)::after {\n border-color: #3273dc; }\n #optimole-app .select.is-link select {\n border-color: #3273dc; }\n #optimole-app .select.is-link select:hover, #optimole-app .select.is-link select.is-hovered {\n border-color: #2366d1; }\n #optimole-app .select.is-link select:focus, #optimole-app .select.is-link select.is-focused, #optimole-app .select.is-link select:active, #optimole-app .select.is-link select.is-active {\n box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); }\n #optimole-app .select.is-info:not(:hover)::after {\n border-color: #008ec2; }\n #optimole-app .select.is-info select {\n border-color: #008ec2; }\n #optimole-app .select.is-info select:hover, #optimole-app .select.is-info select.is-hovered {\n border-color: #007ba9; }\n #optimole-app .select.is-info select:focus, #optimole-app .select.is-info select.is-focused, #optimole-app .select.is-info select:active, #optimole-app .select.is-info select.is-active {\n box-shadow: 0 0 0 0.125em rgba(0, 142, 194, 0.25); }\n #optimole-app .select.is-success:not(:hover)::after {\n border-color: #34a85e; }\n #optimole-app .select.is-success select {\n border-color: #34a85e; }\n #optimole-app .select.is-success select:hover, #optimole-app .select.is-success select.is-hovered {\n border-color: #2e9553; }\n #optimole-app .select.is-success select:focus, #optimole-app .select.is-success select.is-focused, #optimole-app .select.is-success select:active, #optimole-app .select.is-success select.is-active {\n box-shadow: 0 0 0 0.125em rgba(52, 168, 94, 0.25); }\n #optimole-app .select.is-warning:not(:hover)::after {\n border-color: #ffdd57; }\n #optimole-app .select.is-warning select {\n border-color: #ffdd57; }\n #optimole-app .select.is-warning select:hover, #optimole-app .select.is-warning select.is-hovered {\n border-color: #ffd83d; }\n #optimole-app .select.is-warning select:focus, #optimole-app .select.is-warning select.is-focused, #optimole-app .select.is-warning select:active, #optimole-app .select.is-warning select.is-active {\n box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }\n #optimole-app .select.is-danger:not(:hover)::after {\n border-color: #d54222; }\n #optimole-app .select.is-danger select {\n border-color: #d54222; }\n #optimole-app .select.is-danger select:hover, #optimole-app .select.is-danger select.is-hovered {\n border-color: #bf3b1e; }\n #optimole-app .select.is-danger select:focus, #optimole-app .select.is-danger select.is-focused, #optimole-app .select.is-danger select:active, #optimole-app .select.is-danger select.is-active {\n box-shadow: 0 0 0 0.125em rgba(213, 66, 34, 0.25); }\n #optimole-app .select.is-small {\n border-radius: 2px;\n font-size: 0.75rem; }\n #optimole-app .select.is-medium {\n font-size: 1.25rem; }\n #optimole-app .select.is-large {\n font-size: 1.5rem; }\n #optimole-app .select.is-disabled::after {\n border-color: #7a7a7a; }\n #optimole-app .select.is-fullwidth {\n width: 100%; }\n #optimole-app .select.is-fullwidth select {\n width: 100%; }\n #optimole-app .select.is-loading::after {\n margin-top: 0;\n position: absolute;\n right: 0.625em;\n top: 0.625em;\n transform: none; }\n #optimole-app .select.is-loading.is-small:after {\n font-size: 0.75rem; }\n #optimole-app .select.is-loading.is-medium:after {\n font-size: 1.25rem; }\n #optimole-app .select.is-loading.is-large:after {\n font-size: 1.5rem; }\n #optimole-app .file {\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: start;\n justify-content: flex-start;\n position: relative; }\n #optimole-app .file.is-white .file-cta {\n background-color: white;\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .file.is-white:hover .file-cta, #optimole-app .file.is-white.is-hovered .file-cta {\n background-color: #f9f9f9;\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .file.is-white:focus .file-cta, #optimole-app .file.is-white.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25);\n color: #0a0a0a; }\n #optimole-app .file.is-white:active .file-cta, #optimole-app .file.is-white.is-active .file-cta {\n background-color: #f2f2f2;\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .file.is-black .file-cta {\n background-color: #0a0a0a;\n border-color: transparent;\n color: white; }\n #optimole-app .file.is-black:hover .file-cta, #optimole-app .file.is-black.is-hovered .file-cta {\n background-color: #040404;\n border-color: transparent;\n color: white; }\n #optimole-app .file.is-black:focus .file-cta, #optimole-app .file.is-black.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25);\n color: white; }\n #optimole-app .file.is-black:active .file-cta, #optimole-app .file.is-black.is-active .file-cta {\n background-color: black;\n border-color: transparent;\n color: white; }\n #optimole-app .file.is-light .file-cta {\n background-color: whitesmoke;\n border-color: transparent;\n color: #363636; }\n #optimole-app .file.is-light:hover .file-cta, #optimole-app .file.is-light.is-hovered .file-cta {\n background-color: #eeeeee;\n border-color: transparent;\n color: #363636; }\n #optimole-app .file.is-light:focus .file-cta, #optimole-app .file.is-light.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25);\n color: #363636; }\n #optimole-app .file.is-light:active .file-cta, #optimole-app .file.is-light.is-active .file-cta {\n background-color: #e8e8e8;\n border-color: transparent;\n color: #363636; }\n #optimole-app .file.is-dark .file-cta {\n background-color: #363636;\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .file.is-dark:hover .file-cta, #optimole-app .file.is-dark.is-hovered .file-cta {\n background-color: #2f2f2f;\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .file.is-dark:focus .file-cta, #optimole-app .file.is-dark.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25);\n color: whitesmoke; }\n #optimole-app .file.is-dark:active .file-cta, #optimole-app .file.is-dark.is-active .file-cta {\n background-color: #292929;\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .file.is-primary .file-cta {\n background-color: #e7602a;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-primary:hover .file-cta, #optimole-app .file.is-primary.is-hovered .file-cta {\n background-color: #e6571f;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-primary:focus .file-cta, #optimole-app .file.is-primary.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(231, 96, 42, 0.25);\n color: #fff; }\n #optimole-app .file.is-primary:active .file-cta, #optimole-app .file.is-primary.is-active .file-cta {\n background-color: #de5119;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-link .file-cta {\n background-color: #3273dc;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-link:hover .file-cta, #optimole-app .file.is-link.is-hovered .file-cta {\n background-color: #276cda;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-link:focus .file-cta, #optimole-app .file.is-link.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(50, 115, 220, 0.25);\n color: #fff; }\n #optimole-app .file.is-link:active .file-cta, #optimole-app .file.is-link.is-active .file-cta {\n background-color: #2366d1;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-info .file-cta {\n background-color: #008ec2;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-info:hover .file-cta, #optimole-app .file.is-info.is-hovered .file-cta {\n background-color: #0085b5;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-info:focus .file-cta, #optimole-app .file.is-info.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(0, 142, 194, 0.25);\n color: #fff; }\n #optimole-app .file.is-info:active .file-cta, #optimole-app .file.is-info.is-active .file-cta {\n background-color: #007ba9;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-success .file-cta {\n background-color: #34a85e;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-success:hover .file-cta, #optimole-app .file.is-success.is-hovered .file-cta {\n background-color: #319e59;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-success:focus .file-cta, #optimole-app .file.is-success.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(52, 168, 94, 0.25);\n color: #fff; }\n #optimole-app .file.is-success:active .file-cta, #optimole-app .file.is-success.is-active .file-cta {\n background-color: #2e9553;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-warning .file-cta {\n background-color: #ffdd57;\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .file.is-warning:hover .file-cta, #optimole-app .file.is-warning.is-hovered .file-cta {\n background-color: #ffdb4a;\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .file.is-warning:focus .file-cta, #optimole-app .file.is-warning.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25);\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .file.is-warning:active .file-cta, #optimole-app .file.is-warning.is-active .file-cta {\n background-color: #ffd83d;\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .file.is-danger .file-cta {\n background-color: #d54222;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-danger:hover .file-cta, #optimole-app .file.is-danger.is-hovered .file-cta {\n background-color: #ca3f20;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-danger:focus .file-cta, #optimole-app .file.is-danger.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(213, 66, 34, 0.25);\n color: #fff; }\n #optimole-app .file.is-danger:active .file-cta, #optimole-app .file.is-danger.is-active .file-cta {\n background-color: #bf3b1e;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-small {\n font-size: 0.75rem; }\n #optimole-app .file.is-medium {\n font-size: 1.25rem; }\n #optimole-app .file.is-medium .file-icon .fa {\n font-size: 21px; }\n #optimole-app .file.is-large {\n font-size: 1.5rem; }\n #optimole-app .file.is-large .file-icon .fa {\n font-size: 28px; }\n #optimole-app .file.has-name .file-cta {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0; }\n #optimole-app .file.has-name .file-name {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n #optimole-app .file.has-name.is-empty .file-cta {\n border-radius: 4px; }\n #optimole-app .file.has-name.is-empty .file-name {\n display: none; }\n #optimole-app .file.is-boxed .file-label {\n -ms-flex-direction: column;\n flex-direction: column; }\n #optimole-app .file.is-boxed .file-cta {\n -ms-flex-direction: column;\n flex-direction: column;\n height: auto;\n padding: 1em 3em; }\n #optimole-app .file.is-boxed .file-name {\n border-width: 0 1px 1px; }\n #optimole-app .file.is-boxed .file-icon {\n height: 1.5em;\n width: 1.5em; }\n #optimole-app .file.is-boxed .file-icon .fa {\n font-size: 21px; }\n #optimole-app .file.is-boxed.is-small .file-icon .fa {\n font-size: 14px; }\n #optimole-app .file.is-boxed.is-medium .file-icon .fa {\n font-size: 28px; }\n #optimole-app .file.is-boxed.is-large .file-icon .fa {\n font-size: 35px; }\n #optimole-app .file.is-boxed.has-name .file-cta {\n border-radius: 4px 4px 0 0; }\n #optimole-app .file.is-boxed.has-name .file-name {\n border-radius: 0 0 4px 4px;\n border-width: 0 1px 1px; }\n #optimole-app .file.is-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .file.is-fullwidth .file-label {\n width: 100%; }\n #optimole-app .file.is-fullwidth .file-name {\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: none; }\n #optimole-app .file.is-right {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .file.is-right .file-cta {\n border-radius: 0 4px 4px 0; }\n #optimole-app .file.is-right .file-name {\n border-radius: 4px 0 0 4px;\n border-width: 1px 0 1px 1px;\n -ms-flex-order: -1;\n order: -1; }\n #optimole-app .file-label {\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex;\n cursor: pointer;\n -ms-flex-pack: start;\n justify-content: flex-start;\n overflow: hidden;\n position: relative; }\n #optimole-app .file-label:hover .file-cta {\n background-color: #eeeeee;\n color: #363636; }\n #optimole-app .file-label:hover .file-name {\n border-color: #d5d5d5; }\n #optimole-app .file-label:active .file-cta {\n background-color: #e8e8e8;\n color: #363636; }\n #optimole-app .file-label:active .file-name {\n border-color: #cfcfcf; }\n #optimole-app .file-input {\n height: 0.01em;\n left: 0;\n outline: none;\n position: absolute;\n top: 0;\n width: 0.01em; }\n #optimole-app .file-cta,\n #optimole-app .file-name {\n border-color: #dbdbdb;\n border-radius: 4px;\n font-size: 1em;\n padding-left: 1em;\n padding-right: 1em;\n white-space: nowrap; }\n #optimole-app .file-cta {\n background-color: whitesmoke;\n color: #4a4a4a; }\n #optimole-app .file-name {\n border-color: #dbdbdb;\n border-style: solid;\n border-width: 1px 1px 1px 0;\n display: block;\n max-width: 16em;\n overflow: hidden;\n text-align: left;\n text-overflow: ellipsis; }\n #optimole-app .file-icon {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex;\n height: 1em;\n -ms-flex-pack: center;\n justify-content: center;\n margin-right: 0.5em;\n width: 1em; }\n #optimole-app .file-icon .fa {\n font-size: 14px; }\n #optimole-app .label {\n color: #363636;\n display: block;\n font-size: 1rem;\n font-weight: 700; }\n #optimole-app .label:not(:last-child) {\n margin-bottom: 0.5em; }\n #optimole-app .label.is-small {\n font-size: 0.75rem; }\n #optimole-app .label.is-medium {\n font-size: 1.25rem; }\n #optimole-app .label.is-large {\n font-size: 1.5rem; }\n #optimole-app .help {\n display: block;\n font-size: 0.75rem;\n margin-top: 0.25rem; }\n #optimole-app .help.is-white {\n color: white; }\n #optimole-app .help.is-black {\n color: #0a0a0a; }\n #optimole-app .help.is-light {\n color: whitesmoke; }\n #optimole-app .help.is-dark {\n color: #363636; }\n #optimole-app .help.is-primary {\n color: #e7602a; }\n #optimole-app .help.is-link {\n color: #3273dc; }\n #optimole-app .help.is-info {\n color: #008ec2; }\n #optimole-app .help.is-success {\n color: #34a85e; }\n #optimole-app .help.is-warning {\n color: #ffdd57; }\n #optimole-app .help.is-danger {\n color: #d54222; }\n #optimole-app .field:not(:last-child) {\n margin-bottom: 0.75rem; }\n #optimole-app .field.has-addons {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n #optimole-app .field.has-addons .control:not(:last-child) {\n margin-right: -1px; }\n #optimole-app .field.has-addons .control:not(:first-child):not(:last-child) .button,\n #optimole-app .field.has-addons .control:not(:first-child):not(:last-child) .input,\n #optimole-app .field.has-addons .control:not(:first-child):not(:last-child) .select select {\n border-radius: 0; }\n #optimole-app .field.has-addons .control:first-child .button,\n #optimole-app .field.has-addons .control:first-child .input,\n #optimole-app .field.has-addons .control:first-child .select select {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0; }\n #optimole-app .field.has-addons .control:last-child .button,\n #optimole-app .field.has-addons .control:last-child .input,\n #optimole-app .field.has-addons .control:last-child .select select {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n #optimole-app .field.has-addons .control .button:hover, #optimole-app .field.has-addons .control .button.is-hovered,\n #optimole-app .field.has-addons .control .input:hover,\n #optimole-app .field.has-addons .control .input.is-hovered,\n #optimole-app .field.has-addons .control .select select:hover,\n #optimole-app .field.has-addons .control .select select.is-hovered {\n z-index: 2; }\n #optimole-app .field.has-addons .control .button:focus, #optimole-app .field.has-addons .control .button.is-focused, #optimole-app .field.has-addons .control .button:active, #optimole-app .field.has-addons .control .button.is-active,\n #optimole-app .field.has-addons .control .input:focus,\n #optimole-app .field.has-addons .control .input.is-focused,\n #optimole-app .field.has-addons .control .input:active,\n #optimole-app .field.has-addons .control .input.is-active,\n #optimole-app .field.has-addons .control .select select:focus,\n #optimole-app .field.has-addons .control .select select.is-focused,\n #optimole-app .field.has-addons .control .select select:active,\n #optimole-app .field.has-addons .control .select select.is-active {\n z-index: 3; }\n #optimole-app .field.has-addons .control .button:focus:hover, #optimole-app .field.has-addons .control .button.is-focused:hover, #optimole-app .field.has-addons .control .button:active:hover, #optimole-app .field.has-addons .control .button.is-active:hover,\n #optimole-app .field.has-addons .control .input:focus:hover,\n #optimole-app .field.has-addons .control .input.is-focused:hover,\n #optimole-app .field.has-addons .control .input:active:hover,\n #optimole-app .field.has-addons .control .input.is-active:hover,\n #optimole-app .field.has-addons .control .select select:focus:hover,\n #optimole-app .field.has-addons .control .select select.is-focused:hover,\n #optimole-app .field.has-addons .control .select select:active:hover,\n #optimole-app .field.has-addons .control .select select.is-active:hover {\n z-index: 4; }\n #optimole-app .field.has-addons .control.is-expanded {\n -ms-flex-positive: 1;\n flex-grow: 1; }\n #optimole-app .field.has-addons.has-addons-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .field.has-addons.has-addons-right {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .field.has-addons.has-addons-fullwidth .control {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .field.is-grouped {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n #optimole-app .field.is-grouped > .control {\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .field.is-grouped > .control:not(:last-child) {\n margin-bottom: 0;\n margin-right: 0.75rem; }\n #optimole-app .field.is-grouped > .control.is-expanded {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .field.is-grouped.is-grouped-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .field.is-grouped.is-grouped-right {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .field.is-grouped.is-grouped-multiline {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap; }\n #optimole-app .field.is-grouped.is-grouped-multiline > .control:last-child, #optimole-app .field.is-grouped.is-grouped-multiline > .control:not(:last-child) {\n margin-bottom: 0.75rem; }\n #optimole-app .field.is-grouped.is-grouped-multiline:last-child {\n margin-bottom: -0.75rem; }\n #optimole-app .field.is-grouped.is-grouped-multiline:not(:last-child) {\n margin-bottom: 0; }\n @media screen and (min-width: 769px), print {\n #optimole-app .field.is-horizontal {\n display: -ms-flexbox;\n display: flex; } }\n #optimole-app .field-label .label {\n font-size: inherit; }\n @media screen and (max-width: 768px) {\n #optimole-app .field-label {\n margin-bottom: 0.5rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .field-label {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n margin-right: 1.5rem;\n text-align: right; }\n #optimole-app .field-label.is-small {\n font-size: 0.75rem;\n padding-top: 0.375em; }\n #optimole-app .field-label.is-normal {\n padding-top: 0.375em; }\n #optimole-app .field-label.is-medium {\n font-size: 1.25rem;\n padding-top: 0.375em; }\n #optimole-app .field-label.is-large {\n font-size: 1.5rem;\n padding-top: 0.375em; } }\n #optimole-app .field-body .field .field {\n margin-bottom: 0; }\n @media screen and (min-width: 769px), print {\n #optimole-app .field-body {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 5;\n flex-grow: 5;\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .field-body .field {\n margin-bottom: 0; }\n #optimole-app .field-body > .field {\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .field-body > .field:not(.is-narrow) {\n -ms-flex-positive: 1;\n flex-grow: 1; }\n #optimole-app .field-body > .field:not(:last-child) {\n margin-right: 0.75rem; } }\n #optimole-app .control {\n font-size: 1rem;\n position: relative;\n text-align: left; }\n #optimole-app .control.has-icon .icon {\n color: #dbdbdb;\n height: 2.25em;\n pointer-events: none;\n position: absolute;\n top: 0;\n width: 2.25em;\n z-index: 4; }\n #optimole-app .control.has-icon .input:focus + .icon {\n color: #7a7a7a; }\n #optimole-app .control.has-icon .input.is-small + .icon {\n font-size: 0.75rem; }\n #optimole-app .control.has-icon .input.is-medium + .icon {\n font-size: 1.25rem; }\n #optimole-app .control.has-icon .input.is-large + .icon {\n font-size: 1.5rem; }\n #optimole-app .control.has-icon:not(.has-icon-right) .icon {\n left: 0; }\n #optimole-app .control.has-icon:not(.has-icon-right) .input {\n padding-left: 2.25em; }\n #optimole-app .control.has-icon.has-icon-right .icon {\n right: 0; }\n #optimole-app .control.has-icon.has-icon-right .input {\n padding-right: 2.25em; }\n #optimole-app .control.has-icons-left .input:focus ~ .icon,\n #optimole-app .control.has-icons-left .select:focus ~ .icon, #optimole-app .control.has-icons-right .input:focus ~ .icon,\n #optimole-app .control.has-icons-right .select:focus ~ .icon {\n color: #7a7a7a; }\n #optimole-app .control.has-icons-left .input.is-small ~ .icon,\n #optimole-app .control.has-icons-left .select.is-small ~ .icon, #optimole-app .control.has-icons-right .input.is-small ~ .icon,\n #optimole-app .control.has-icons-right .select.is-small ~ .icon {\n font-size: 0.75rem; }\n #optimole-app .control.has-icons-left .input.is-medium ~ .icon,\n #optimole-app .control.has-icons-left .select.is-medium ~ .icon, #optimole-app .control.has-icons-right .input.is-medium ~ .icon,\n #optimole-app .control.has-icons-right .select.is-medium ~ .icon {\n font-size: 1.25rem; }\n #optimole-app .control.has-icons-left .input.is-large ~ .icon,\n #optimole-app .control.has-icons-left .select.is-large ~ .icon, #optimole-app .control.has-icons-right .input.is-large ~ .icon,\n #optimole-app .control.has-icons-right .select.is-large ~ .icon {\n font-size: 1.5rem; }\n #optimole-app .control.has-icons-left .icon, #optimole-app .control.has-icons-right .icon {\n color: #dbdbdb;\n height: 2.25em;\n pointer-events: none;\n position: absolute;\n top: 0;\n width: 2.25em;\n z-index: 4; }\n #optimole-app .control.has-icons-left .input,\n #optimole-app .control.has-icons-left .select select {\n padding-left: 2.25em; }\n #optimole-app .control.has-icons-left .icon.is-left {\n left: 0; }\n #optimole-app .control.has-icons-right .input,\n #optimole-app .control.has-icons-right .select select {\n padding-right: 2.25em; }\n #optimole-app .control.has-icons-right .icon.is-right {\n right: 0; }\n #optimole-app .control.is-loading::after {\n position: absolute !important;\n right: 0.625em;\n top: 0.625em;\n z-index: 4; }\n #optimole-app .control.is-loading.is-small:after {\n font-size: 0.75rem; }\n #optimole-app .control.is-loading.is-medium:after {\n font-size: 1.25rem; }\n #optimole-app .control.is-loading.is-large:after {\n font-size: 1.5rem; }\n #optimole-app .icon {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-pack: center;\n justify-content: center;\n height: 1.5rem;\n width: 1.5rem; }\n #optimole-app .icon.is-small {\n height: 1rem;\n width: 1rem; }\n #optimole-app .icon.is-medium {\n height: 2rem;\n width: 2rem; }\n #optimole-app .icon.is-large {\n height: 3rem;\n width: 3rem; }\n #optimole-app .image {\n display: block;\n position: relative; }\n #optimole-app .image img {\n display: block;\n height: auto;\n width: 100%; }\n #optimole-app .image img.is-rounded {\n border-radius: 290486px; }\n #optimole-app .image.is-square img, #optimole-app .image.is-1by1 img, #optimole-app .image.is-5by4 img, #optimole-app .image.is-4by3 img, #optimole-app .image.is-3by2 img, #optimole-app .image.is-5by3 img, #optimole-app .image.is-16by9 img, #optimole-app .image.is-2by1 img, #optimole-app .image.is-3by1 img, #optimole-app .image.is-4by5 img, #optimole-app .image.is-3by4 img, #optimole-app .image.is-2by3 img, #optimole-app .image.is-3by5 img, #optimole-app .image.is-9by16 img, #optimole-app .image.is-1by2 img, #optimole-app .image.is-1by3 img {\n height: 100%;\n width: 100%; }\n #optimole-app .image.is-square, #optimole-app .image.is-1by1 {\n padding-top: 100%; }\n #optimole-app .image.is-5by4 {\n padding-top: 80%; }\n #optimole-app .image.is-4by3 {\n padding-top: 75%; }\n #optimole-app .image.is-3by2 {\n padding-top: 66.6666%; }\n #optimole-app .image.is-5by3 {\n padding-top: 60%; }\n #optimole-app .image.is-16by9 {\n padding-top: 56.25%; }\n #optimole-app .image.is-2by1 {\n padding-top: 50%; }\n #optimole-app .image.is-3by1 {\n padding-top: 33.3333%; }\n #optimole-app .image.is-4by5 {\n padding-top: 125%; }\n #optimole-app .image.is-3by4 {\n padding-top: 133.3333%; }\n #optimole-app .image.is-2by3 {\n padding-top: 150%; }\n #optimole-app .image.is-3by5 {\n padding-top: 166.6666%; }\n #optimole-app .image.is-9by16 {\n padding-top: 177.7777%; }\n #optimole-app .image.is-1by2 {\n padding-top: 200%; }\n #optimole-app .image.is-1by3 {\n padding-top: 300%; }\n #optimole-app .image.is-16x16 {\n height: 16px;\n width: 16px; }\n #optimole-app .image.is-24x24 {\n height: 24px;\n width: 24px; }\n #optimole-app .image.is-32x32 {\n height: 32px;\n width: 32px; }\n #optimole-app .image.is-48x48 {\n height: 48px;\n width: 48px; }\n #optimole-app .image.is-64x64 {\n height: 64px;\n width: 64px; }\n #optimole-app .image.is-96x96 {\n height: 96px;\n width: 96px; }\n #optimole-app .image.is-128x128 {\n height: 128px;\n width: 128px; }\n #optimole-app .notification {\n background-color: whitesmoke;\n border-radius: 4px;\n padding: 1.25rem 2.5rem 1.25rem 1.5rem;\n position: relative; }\n #optimole-app .notification a:not(.button) {\n color: currentColor;\n text-decoration: underline; }\n #optimole-app .notification strong {\n color: currentColor; }\n #optimole-app .notification code,\n #optimole-app .notification pre {\n background: white; }\n #optimole-app .notification pre code {\n background: transparent; }\n #optimole-app .notification > .delete {\n position: absolute;\n right: 0.5rem;\n top: 0.5rem; }\n #optimole-app .notification .title,\n #optimole-app .notification .subtitle,\n #optimole-app .notification .content {\n color: currentColor; }\n #optimole-app .notification.is-white {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .notification.is-black {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .notification.is-light {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .notification.is-dark {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .notification.is-primary {\n background-color: #e7602a;\n color: #fff; }\n #optimole-app .notification.is-link {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .notification.is-info {\n background-color: #008ec2;\n color: #fff; }\n #optimole-app .notification.is-success {\n background-color: #34a85e;\n color: #fff; }\n #optimole-app .notification.is-warning {\n background-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .notification.is-danger {\n background-color: #d54222;\n color: #fff; }\n #optimole-app .progress {\n -moz-appearance: none;\n -webkit-appearance: none;\n border: none;\n border-radius: 290486px;\n display: block;\n height: 1rem;\n overflow: hidden;\n padding: 0;\n width: 100%; }\n #optimole-app .progress::-webkit-progress-bar {\n background-color: #dbdbdb; }\n #optimole-app .progress::-webkit-progress-value {\n background-color: #4a4a4a; }\n #optimole-app .progress::-moz-progress-bar {\n background-color: #4a4a4a; }\n #optimole-app .progress::-ms-fill {\n background-color: #4a4a4a;\n border: none; }\n #optimole-app .progress.is-white::-webkit-progress-value {\n background-color: white; }\n #optimole-app .progress.is-white::-moz-progress-bar {\n background-color: white; }\n #optimole-app .progress.is-white::-ms-fill {\n background-color: white; }\n #optimole-app .progress.is-black::-webkit-progress-value {\n background-color: #0a0a0a; }\n #optimole-app .progress.is-black::-moz-progress-bar {\n background-color: #0a0a0a; }\n #optimole-app .progress.is-black::-ms-fill {\n background-color: #0a0a0a; }\n #optimole-app .progress.is-light::-webkit-progress-value {\n background-color: whitesmoke; }\n #optimole-app .progress.is-light::-moz-progress-bar {\n background-color: whitesmoke; }\n #optimole-app .progress.is-light::-ms-fill {\n background-color: whitesmoke; }\n #optimole-app .progress.is-dark::-webkit-progress-value {\n background-color: #363636; }\n #optimole-app .progress.is-dark::-moz-progress-bar {\n background-color: #363636; }\n #optimole-app .progress.is-dark::-ms-fill {\n background-color: #363636; }\n #optimole-app .progress.is-primary::-webkit-progress-value {\n background-color: #e7602a; }\n #optimole-app .progress.is-primary::-moz-progress-bar {\n background-color: #e7602a; }\n #optimole-app .progress.is-primary::-ms-fill {\n background-color: #e7602a; }\n #optimole-app .progress.is-link::-webkit-progress-value {\n background-color: #3273dc; }\n #optimole-app .progress.is-link::-moz-progress-bar {\n background-color: #3273dc; }\n #optimole-app .progress.is-link::-ms-fill {\n background-color: #3273dc; }\n #optimole-app .progress.is-info::-webkit-progress-value {\n background-color: #008ec2; }\n #optimole-app .progress.is-info::-moz-progress-bar {\n background-color: #008ec2; }\n #optimole-app .progress.is-info::-ms-fill {\n background-color: #008ec2; }\n #optimole-app .progress.is-success::-webkit-progress-value {\n background-color: #34a85e; }\n #optimole-app .progress.is-success::-moz-progress-bar {\n background-color: #34a85e; }\n #optimole-app .progress.is-success::-ms-fill {\n background-color: #34a85e; }\n #optimole-app .progress.is-warning::-webkit-progress-value {\n background-color: #ffdd57; }\n #optimole-app .progress.is-warning::-moz-progress-bar {\n background-color: #ffdd57; }\n #optimole-app .progress.is-warning::-ms-fill {\n background-color: #ffdd57; }\n #optimole-app .progress.is-danger::-webkit-progress-value {\n background-color: #d54222; }\n #optimole-app .progress.is-danger::-moz-progress-bar {\n background-color: #d54222; }\n #optimole-app .progress.is-danger::-ms-fill {\n background-color: #d54222; }\n #optimole-app .progress.is-small {\n height: 0.75rem; }\n #optimole-app .progress.is-medium {\n height: 1.25rem; }\n #optimole-app .progress.is-large {\n height: 1.5rem; }\n #optimole-app .table {\n background-color: white;\n color: #363636; }\n #optimole-app .table td,\n #optimole-app .table th {\n border: 1px solid #dbdbdb;\n border-width: 0 0 1px;\n padding: 0.5em 0.75em;\n vertical-align: top; }\n #optimole-app .table td.is-white,\n #optimole-app .table th.is-white {\n background-color: white;\n border-color: white;\n color: #0a0a0a; }\n #optimole-app .table td.is-black,\n #optimole-app .table th.is-black {\n background-color: #0a0a0a;\n border-color: #0a0a0a;\n color: white; }\n #optimole-app .table td.is-light,\n #optimole-app .table th.is-light {\n background-color: whitesmoke;\n border-color: whitesmoke;\n color: #363636; }\n #optimole-app .table td.is-dark,\n #optimole-app .table th.is-dark {\n background-color: #363636;\n border-color: #363636;\n color: whitesmoke; }\n #optimole-app .table td.is-primary,\n #optimole-app .table th.is-primary {\n background-color: #e7602a;\n border-color: #e7602a;\n color: #fff; }\n #optimole-app .table td.is-link,\n #optimole-app .table th.is-link {\n background-color: #3273dc;\n border-color: #3273dc;\n color: #fff; }\n #optimole-app .table td.is-info,\n #optimole-app .table th.is-info {\n background-color: #008ec2;\n border-color: #008ec2;\n color: #fff; }\n #optimole-app .table td.is-success,\n #optimole-app .table th.is-success {\n background-color: #34a85e;\n border-color: #34a85e;\n color: #fff; }\n #optimole-app .table td.is-warning,\n #optimole-app .table th.is-warning {\n background-color: #ffdd57;\n border-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .table td.is-danger,\n #optimole-app .table th.is-danger {\n background-color: #d54222;\n border-color: #d54222;\n color: #fff; }\n #optimole-app .table td.is-narrow,\n #optimole-app .table th.is-narrow {\n white-space: nowrap;\n width: 1%; }\n #optimole-app .table td.is-selected,\n #optimole-app .table th.is-selected {\n background-color: #e7602a;\n color: #fff; }\n #optimole-app .table td.is-selected a,\n #optimole-app .table td.is-selected strong,\n #optimole-app .table th.is-selected a,\n #optimole-app .table th.is-selected strong {\n color: currentColor; }\n #optimole-app .table th {\n color: #363636;\n text-align: left; }\n #optimole-app .table tr.is-selected {\n background-color: #e7602a;\n color: #fff; }\n #optimole-app .table tr.is-selected a,\n #optimole-app .table tr.is-selected strong {\n color: currentColor; }\n #optimole-app .table tr.is-selected td,\n #optimole-app .table tr.is-selected th {\n border-color: #fff;\n color: currentColor; }\n #optimole-app .table thead td,\n #optimole-app .table thead th {\n border-width: 0 0 2px;\n color: #363636; }\n #optimole-app .table tfoot td,\n #optimole-app .table tfoot th {\n border-width: 2px 0 0;\n color: #363636; }\n #optimole-app .table tbody tr:last-child td,\n #optimole-app .table tbody tr:last-child th {\n border-bottom-width: 0; }\n #optimole-app .table.is-bordered td,\n #optimole-app .table.is-bordered th {\n border-width: 1px; }\n #optimole-app .table.is-bordered tr:last-child td,\n #optimole-app .table.is-bordered tr:last-child th {\n border-bottom-width: 1px; }\n #optimole-app .table.is-fullwidth {\n width: 100%; }\n #optimole-app .table.is-hoverable tbody tr:not(.is-selected):hover {\n background-color: #fafafa; }\n #optimole-app .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover {\n background-color: whitesmoke; }\n #optimole-app .table.is-narrow td,\n #optimole-app .table.is-narrow th {\n padding: 0.25em 0.5em; }\n #optimole-app .table.is-striped tbody tr:not(.is-selected):nth-child(even) {\n background-color: #fafafa; }\n #optimole-app .table-container {\n -webkit-overflow-scrolling: touch;\n overflow: auto;\n overflow-y: hidden;\n max-width: 100%; }\n #optimole-app .tags {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n #optimole-app .tags .tag {\n margin-bottom: 0.5rem; }\n #optimole-app .tags .tag:not(:last-child) {\n margin-right: 0.5rem; }\n #optimole-app .tags:last-child {\n margin-bottom: -0.5rem; }\n #optimole-app .tags:not(:last-child) {\n margin-bottom: 1rem; }\n #optimole-app .tags.has-addons .tag {\n margin-right: 0; }\n #optimole-app .tags.has-addons .tag:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n #optimole-app .tags.has-addons .tag:not(:last-child) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0; }\n #optimole-app .tags.is-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .tags.is-centered .tag {\n margin-right: 0.25rem;\n margin-left: 0.25rem; }\n #optimole-app .tags.is-right {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .tags.is-right .tag:not(:first-child) {\n margin-left: 0.5rem; }\n #optimole-app .tags.is-right .tag:not(:last-child) {\n margin-right: 0; }\n #optimole-app .tag:not(body) {\n -ms-flex-align: center;\n align-items: center;\n background-color: whitesmoke;\n border-radius: 4px;\n color: #4a4a4a;\n display: -ms-inline-flexbox;\n display: inline-flex;\n font-size: 0.75rem;\n height: 2em;\n -ms-flex-pack: center;\n justify-content: center;\n line-height: 1.5;\n padding-left: 0.75em;\n padding-right: 0.75em;\n white-space: nowrap; }\n #optimole-app .tag:not(body) .delete {\n margin-left: 0.25rem;\n margin-right: -0.375rem; }\n #optimole-app .tag:not(body).is-white {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .tag:not(body).is-black {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .tag:not(body).is-light {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .tag:not(body).is-dark {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .tag:not(body).is-primary {\n background-color: #e7602a;\n color: #fff; }\n #optimole-app .tag:not(body).is-link {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .tag:not(body).is-info {\n background-color: #008ec2;\n color: #fff; }\n #optimole-app .tag:not(body).is-success {\n background-color: #34a85e;\n color: #fff; }\n #optimole-app .tag:not(body).is-warning {\n background-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .tag:not(body).is-danger {\n background-color: #d54222;\n color: #fff; }\n #optimole-app .tag:not(body).is-medium {\n font-size: 1rem; }\n #optimole-app .tag:not(body).is-large {\n font-size: 1.25rem; }\n #optimole-app .tag:not(body) .icon:first-child:not(:last-child) {\n margin-left: -0.375em;\n margin-right: 0.1875em; }\n #optimole-app .tag:not(body) .icon:last-child:not(:first-child) {\n margin-left: 0.1875em;\n margin-right: -0.375em; }\n #optimole-app .tag:not(body) .icon:first-child:last-child {\n margin-left: -0.375em;\n margin-right: -0.375em; }\n #optimole-app .tag:not(body).is-delete {\n margin-left: 1px;\n padding: 0;\n position: relative;\n width: 2em; }\n #optimole-app .tag:not(body).is-delete::before, #optimole-app .tag:not(body).is-delete::after {\n background-color: currentColor;\n content: "";\n display: block;\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translateX(-50%) translateY(-50%) rotate(45deg);\n transform-origin: center center; }\n #optimole-app .tag:not(body).is-delete::before {\n height: 1px;\n width: 50%; }\n #optimole-app .tag:not(body).is-delete::after {\n height: 50%;\n width: 1px; }\n #optimole-app .tag:not(body).is-delete:hover, #optimole-app .tag:not(body).is-delete:focus {\n background-color: #e8e8e8; }\n #optimole-app .tag:not(body).is-delete:active {\n background-color: #dbdbdb; }\n #optimole-app .tag:not(body).is-rounded {\n border-radius: 290486px; }\n #optimole-app a.tag:hover {\n text-decoration: underline; }\n #optimole-app .title,\n #optimole-app .subtitle {\n word-break: break-word; }\n #optimole-app .title em,\n #optimole-app .title span,\n #optimole-app .subtitle em,\n #optimole-app .subtitle span {\n font-weight: inherit; }\n #optimole-app .title sub,\n #optimole-app .subtitle sub {\n font-size: 0.75em; }\n #optimole-app .title sup,\n #optimole-app .subtitle sup {\n font-size: 0.75em; }\n #optimole-app .title .tag,\n #optimole-app .subtitle .tag {\n vertical-align: middle; }\n #optimole-app .title {\n color: #363636;\n font-size: 2rem;\n font-weight: 600;\n line-height: 1.125; }\n #optimole-app .title strong {\n color: inherit;\n font-weight: inherit; }\n #optimole-app .title + .highlight {\n margin-top: -0.75rem; }\n #optimole-app .title:not(.is-spaced) + .subtitle {\n margin-top: -1.25rem; }\n #optimole-app .title.is-1 {\n font-size: 3rem; }\n #optimole-app .title.is-2 {\n font-size: 2.5rem; }\n #optimole-app .title.is-3 {\n font-size: 2rem; }\n #optimole-app .title.is-4 {\n font-size: 1.5rem; }\n #optimole-app .title.is-5 {\n font-size: 1.25rem; }\n #optimole-app .title.is-6 {\n font-size: 1rem; }\n #optimole-app .title.is-7 {\n font-size: 0.75rem; }\n #optimole-app .subtitle {\n color: #4a4a4a;\n font-size: 1.25rem;\n font-weight: 400;\n line-height: 1.25; }\n #optimole-app .subtitle strong {\n color: #363636;\n font-weight: 600; }\n #optimole-app .subtitle:not(.is-spaced) + .title {\n margin-top: -1.25rem; }\n #optimole-app .subtitle.is-1 {\n font-size: 3rem; }\n #optimole-app .subtitle.is-2 {\n font-size: 2.5rem; }\n #optimole-app .subtitle.is-3 {\n font-size: 2rem; }\n #optimole-app .subtitle.is-4 {\n font-size: 1.5rem; }\n #optimole-app .subtitle.is-5 {\n font-size: 1.25rem; }\n #optimole-app .subtitle.is-6 {\n font-size: 1rem; }\n #optimole-app .subtitle.is-7 {\n font-size: 0.75rem; }\n #optimole-app .heading {\n display: block;\n font-size: 11px;\n letter-spacing: 1px;\n margin-bottom: 5px;\n text-transform: uppercase; }\n #optimole-app .highlight {\n font-weight: 400;\n max-width: 100%;\n overflow: hidden;\n padding: 0; }\n #optimole-app .highlight pre {\n overflow: auto;\n max-width: 100%; }\n #optimole-app .number {\n -ms-flex-align: center;\n align-items: center;\n background-color: whitesmoke;\n border-radius: 290486px;\n display: -ms-inline-flexbox;\n display: inline-flex;\n font-size: 1.25rem;\n height: 2em;\n -ms-flex-pack: center;\n justify-content: center;\n margin-right: 1.5rem;\n min-width: 2.5em;\n padding: 0.25rem 0.5rem;\n text-align: center;\n vertical-align: top; }\n #optimole-app .breadcrumb {\n font-size: 1rem;\n white-space: nowrap; }\n #optimole-app .breadcrumb a {\n -ms-flex-align: center;\n align-items: center;\n color: #3273dc;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n padding: 0 0.75em; }\n #optimole-app .breadcrumb a:hover {\n color: #363636; }\n #optimole-app .breadcrumb li {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .breadcrumb li:first-child a {\n padding-left: 0; }\n #optimole-app .breadcrumb li.is-active a {\n color: #363636;\n cursor: default;\n pointer-events: none; }\n #optimole-app .breadcrumb li + li::before {\n color: #b5b5b5;\n content: "/"; }\n #optimole-app .breadcrumb ul,\n #optimole-app .breadcrumb ol {\n -ms-flex-align: start;\n align-items: flex-start;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n #optimole-app .breadcrumb .icon:first-child {\n margin-right: 0.5em; }\n #optimole-app .breadcrumb .icon:last-child {\n margin-left: 0.5em; }\n #optimole-app .breadcrumb.is-centered ol,\n #optimole-app .breadcrumb.is-centered ul {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .breadcrumb.is-right ol,\n #optimole-app .breadcrumb.is-right ul {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .breadcrumb.is-small {\n font-size: 0.75rem; }\n #optimole-app .breadcrumb.is-medium {\n font-size: 1.25rem; }\n #optimole-app .breadcrumb.is-large {\n font-size: 1.5rem; }\n #optimole-app .breadcrumb.has-arrow-separator li + li::before {\n content: "\\2192"; }\n #optimole-app .breadcrumb.has-bullet-separator li + li::before {\n content: "\\2022"; }\n #optimole-app .breadcrumb.has-dot-separator li + li::before {\n content: "\\B7"; }\n #optimole-app .breadcrumb.has-succeeds-separator li + li::before {\n content: "\\227B"; }\n #optimole-app .card {\n background-color: white;\n box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);\n color: #4a4a4a;\n max-width: 100%;\n position: relative; }\n #optimole-app .card-header {\n background-color: none;\n -ms-flex-align: stretch;\n align-items: stretch;\n box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .card-header-title {\n -ms-flex-align: center;\n align-items: center;\n color: #363636;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-positive: 1;\n flex-grow: 1;\n font-weight: 700;\n padding: 0.75rem; }\n #optimole-app .card-header-title.is-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .card-header-icon {\n -ms-flex-align: center;\n align-items: center;\n cursor: pointer;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n padding: 0.75rem; }\n #optimole-app .card-image {\n display: block;\n position: relative; }\n #optimole-app .card-content {\n background-color: none;\n padding: 1.5rem; }\n #optimole-app .card-footer {\n background-color: none;\n border-top: 1px solid #dbdbdb;\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .card-footer-item {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -ms-flex-pack: center;\n justify-content: center;\n padding: 0.75rem; }\n #optimole-app .card-footer-item:not(:last-child) {\n border-right: 1px solid #dbdbdb; }\n #optimole-app .card .media:not(:last-child) {\n margin-bottom: 0.75rem; }\n #optimole-app .dropdown {\n display: -ms-inline-flexbox;\n display: inline-flex;\n position: relative;\n vertical-align: top; }\n #optimole-app .dropdown.is-active .dropdown-menu, #optimole-app .dropdown.is-hoverable:hover .dropdown-menu {\n display: block; }\n #optimole-app .dropdown.is-right .dropdown-menu {\n left: auto;\n right: 0; }\n #optimole-app .dropdown.is-up .dropdown-menu {\n bottom: 100%;\n padding-bottom: 4px;\n padding-top: initial;\n top: auto; }\n #optimole-app .dropdown-menu {\n display: none;\n left: 0;\n min-width: 12rem;\n padding-top: 4px;\n position: absolute;\n top: 100%;\n z-index: 20; }\n #optimole-app .dropdown-content {\n background-color: white;\n border-radius: 4px;\n box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);\n padding-bottom: 0.5rem;\n padding-top: 0.5rem; }\n #optimole-app .dropdown-item {\n color: #4a4a4a;\n display: block;\n font-size: 0.875rem;\n line-height: 1.5;\n padding: 0.375rem 1rem;\n position: relative; }\n #optimole-app a.dropdown-item {\n padding-right: 3rem;\n white-space: nowrap; }\n #optimole-app a.dropdown-item:hover {\n background-color: whitesmoke;\n color: #0a0a0a; }\n #optimole-app a.dropdown-item.is-active {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .dropdown-divider {\n background-color: #dbdbdb;\n border: none;\n display: block;\n height: 1px;\n margin: 0.5rem 0; }\n #optimole-app .level {\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between; }\n #optimole-app .level code {\n border-radius: 4px; }\n #optimole-app .level img {\n display: inline-block;\n vertical-align: top; }\n #optimole-app .level.is-mobile {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .level.is-mobile .level-left,\n #optimole-app .level.is-mobile .level-right {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .level.is-mobile .level-left + .level-right {\n margin-top: 0; }\n #optimole-app .level.is-mobile .level-item {\n margin-right: 0.75rem; }\n #optimole-app .level.is-mobile .level-item:not(:last-child) {\n margin-bottom: 0; }\n #optimole-app .level.is-mobile .level-item:not(.is-narrow) {\n -ms-flex-positive: 1;\n flex-grow: 1; }\n @media screen and (min-width: 769px), print {\n #optimole-app .level {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .level > .level-item:not(.is-narrow) {\n -ms-flex-positive: 1;\n flex-grow: 1; } }\n #optimole-app .level-item {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .level-item .title,\n #optimole-app .level-item .subtitle {\n margin-bottom: 0; }\n @media screen and (max-width: 768px) {\n #optimole-app .level-item:not(:last-child) {\n margin-bottom: 0.75rem; } }\n #optimole-app .level-left,\n #optimole-app .level-right {\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .level-left .level-item.is-flexible,\n #optimole-app .level-right .level-item.is-flexible {\n -ms-flex-positive: 1;\n flex-grow: 1; }\n @media screen and (min-width: 769px), print {\n #optimole-app .level-left .level-item:not(:last-child),\n #optimole-app .level-right .level-item:not(:last-child) {\n margin-right: 0.75rem; } }\n #optimole-app .level-left {\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n @media screen and (max-width: 768px) {\n #optimole-app .level-left + .level-right {\n margin-top: 1.5rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .level-left {\n display: -ms-flexbox;\n display: flex; } }\n #optimole-app .level-right {\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: end;\n justify-content: flex-end; }\n @media screen and (min-width: 769px), print {\n #optimole-app .level-right {\n display: -ms-flexbox;\n display: flex; } }\n #optimole-app .media {\n -ms-flex-align: start;\n align-items: flex-start;\n display: -ms-flexbox;\n display: flex;\n text-align: left; }\n #optimole-app .media .content:not(:last-child) {\n margin-bottom: 0.75rem; }\n #optimole-app .media .media {\n border-top: 1px solid rgba(219, 219, 219, 0.5);\n display: -ms-flexbox;\n display: flex;\n padding-top: 0.75rem; }\n #optimole-app .media .media .content:not(:last-child),\n #optimole-app .media .media .control:not(:last-child) {\n margin-bottom: 0.5rem; }\n #optimole-app .media .media .media {\n padding-top: 0.5rem; }\n #optimole-app .media .media .media + .media {\n margin-top: 0.5rem; }\n #optimole-app .media + .media {\n border-top: 1px solid rgba(219, 219, 219, 0.5);\n margin-top: 1rem;\n padding-top: 1rem; }\n #optimole-app .media.is-large + .media {\n margin-top: 1.5rem;\n padding-top: 1.5rem; }\n #optimole-app .media-left,\n #optimole-app .media-right {\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .media-left {\n margin-right: 1rem; }\n #optimole-app .media-right {\n margin-left: 1rem; }\n #optimole-app .media-content {\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n text-align: left; }\n #optimole-app .menu {\n font-size: 1rem; }\n #optimole-app .menu.is-small {\n font-size: 0.75rem; }\n #optimole-app .menu.is-medium {\n font-size: 1.25rem; }\n #optimole-app .menu.is-large {\n font-size: 1.5rem; }\n #optimole-app .menu-list {\n line-height: 1.25; }\n #optimole-app .menu-list a {\n border-radius: 2px;\n color: #4a4a4a;\n display: block;\n padding: 0.5em 0.75em; }\n #optimole-app .menu-list a:hover {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .menu-list a.is-active {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .menu-list li ul {\n border-left: 1px solid #dbdbdb;\n margin: 0.75em;\n padding-left: 0.75em; }\n #optimole-app .menu-label {\n color: #7a7a7a;\n font-size: 0.75em;\n letter-spacing: 0.1em;\n text-transform: uppercase; }\n #optimole-app .menu-label:not(:first-child) {\n margin-top: 1em; }\n #optimole-app .menu-label:not(:last-child) {\n margin-bottom: 1em; }\n #optimole-app .message {\n background-color: whitesmoke;\n border-radius: 4px;\n font-size: 1rem; }\n #optimole-app .message strong {\n color: currentColor; }\n #optimole-app .message a:not(.button):not(.tag) {\n color: currentColor;\n text-decoration: underline; }\n #optimole-app .message.is-small {\n font-size: 0.75rem; }\n #optimole-app .message.is-medium {\n font-size: 1.25rem; }\n #optimole-app .message.is-large {\n font-size: 1.5rem; }\n #optimole-app .message.is-white {\n background-color: white; }\n #optimole-app .message.is-white .message-header {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .message.is-white .message-body {\n border-color: white;\n color: #4d4d4d; }\n #optimole-app .message.is-black {\n background-color: #fafafa; }\n #optimole-app .message.is-black .message-header {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .message.is-black .message-body {\n border-color: #0a0a0a;\n color: #090909; }\n #optimole-app .message.is-light {\n background-color: #fafafa; }\n #optimole-app .message.is-light .message-header {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .message.is-light .message-body {\n border-color: whitesmoke;\n color: #505050; }\n #optimole-app .message.is-dark {\n background-color: #fafafa; }\n #optimole-app .message.is-dark .message-header {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .message.is-dark .message-body {\n border-color: #363636;\n color: #2a2a2a; }\n #optimole-app .message.is-primary {\n background-color: #fef8f6; }\n #optimole-app .message.is-primary .message-header {\n background-color: #e7602a;\n color: #fff; }\n #optimole-app .message.is-primary .message-body {\n border-color: #e7602a;\n color: #8e3a18; }\n #optimole-app .message.is-link {\n background-color: #f6f9fe; }\n #optimole-app .message.is-link .message-header {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .message.is-link .message-body {\n border-color: #3273dc;\n color: #22509a; }\n #optimole-app .message.is-info {\n background-color: #f5fcff; }\n #optimole-app .message.is-info .message-header {\n background-color: #008ec2;\n color: #fff; }\n #optimole-app .message.is-info .message-body {\n border-color: #008ec2;\n color: #044259; }\n #optimole-app .message.is-success {\n background-color: #f7fdf9; }\n #optimole-app .message.is-success .message-header {\n background-color: #34a85e;\n color: #fff; }\n #optimole-app .message.is-success .message-body {\n border-color: #34a85e;\n color: #1b432a; }\n #optimole-app .message.is-warning {\n background-color: #fffdf5; }\n #optimole-app .message.is-warning .message-header {\n background-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .message.is-warning .message-body {\n border-color: #ffdd57;\n color: #3b3108; }\n #optimole-app .message.is-danger {\n background-color: #fef8f6; }\n #optimole-app .message.is-danger .message-header {\n background-color: #d54222;\n color: #fff; }\n #optimole-app .message.is-danger .message-body {\n border-color: #d54222;\n color: #8d311d; }\n #optimole-app .message-header {\n -ms-flex-align: center;\n align-items: center;\n background-color: #4a4a4a;\n border-radius: 4px 4px 0 0;\n color: #fff;\n display: -ms-flexbox;\n display: flex;\n font-weight: 700;\n -ms-flex-pack: justify;\n justify-content: space-between;\n line-height: 1.25;\n padding: 0.75em 1em;\n position: relative; }\n #optimole-app .message-header .delete {\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n margin-left: 0.75em; }\n #optimole-app .message-header + .message-body {\n border-width: 0;\n border-top-left-radius: 0;\n border-top-right-radius: 0; }\n #optimole-app .message-body {\n border-color: #dbdbdb;\n border-radius: 4px;\n border-style: solid;\n border-width: 0 0 0 4px;\n color: #4a4a4a;\n padding: 1.25em 1.5em; }\n #optimole-app .message-body code,\n #optimole-app .message-body pre {\n background-color: white; }\n #optimole-app .message-body pre code {\n background-color: transparent; }\n #optimole-app .modal {\n -ms-flex-align: center;\n align-items: center;\n display: none;\n -ms-flex-pack: center;\n justify-content: center;\n overflow: hidden;\n position: fixed;\n z-index: 40; }\n #optimole-app .modal.is-active {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .modal-background {\n background-color: rgba(10, 10, 10, 0.86); }\n #optimole-app .modal-content,\n #optimole-app .modal-card {\n margin: 0 20px;\n max-height: calc(100vh - 160px);\n overflow: auto;\n position: relative;\n width: 100%; }\n @media screen and (min-width: 769px), print {\n #optimole-app .modal-content,\n #optimole-app .modal-card {\n margin: 0 auto;\n max-height: calc(100vh - 40px);\n width: 640px; } }\n #optimole-app .modal-close {\n background: none;\n height: 40px;\n position: fixed;\n right: 20px;\n top: 20px;\n width: 40px; }\n #optimole-app .modal-card {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n max-height: calc(100vh - 40px);\n overflow: hidden; }\n #optimole-app .modal-card-head,\n #optimole-app .modal-card-foot {\n -ms-flex-align: center;\n align-items: center;\n background-color: whitesmoke;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -ms-flex-pack: start;\n justify-content: flex-start;\n padding: 20px;\n position: relative; }\n #optimole-app .modal-card-head {\n border-bottom: 1px solid #dbdbdb;\n border-top-left-radius: 6px;\n border-top-right-radius: 6px; }\n #optimole-app .modal-card-title {\n color: #363636;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n font-size: 1.5rem;\n line-height: 1; }\n #optimole-app .modal-card-foot {\n border-bottom-left-radius: 6px;\n border-bottom-right-radius: 6px;\n border-top: 1px solid #dbdbdb; }\n #optimole-app .modal-card-foot .button:not(:last-child) {\n margin-right: 10px; }\n #optimole-app .modal-card-body {\n -webkit-overflow-scrolling: touch;\n background-color: white;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n overflow: auto;\n padding: 20px; }\n #optimole-app .navbar {\n background-color: white;\n min-height: 3.25rem;\n position: relative;\n z-index: 30; }\n #optimole-app .navbar.is-white {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-white .navbar-brand .navbar-link {\n color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-white .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-white .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-white .navbar-brand .navbar-link.is-active {\n background-color: #f2f2f2;\n color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-brand .navbar-link::after {\n border-color: #0a0a0a; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-white .navbar-start > .navbar-item,\n #optimole-app .navbar.is-white .navbar-start .navbar-link,\n #optimole-app .navbar.is-white .navbar-end > .navbar-item,\n #optimole-app .navbar.is-white .navbar-end .navbar-link {\n color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-white .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-white .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-white .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-white .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-white .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-white .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-white .navbar-end .navbar-link.is-active {\n background-color: #f2f2f2;\n color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-white .navbar-end .navbar-link::after {\n border-color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #f2f2f2;\n color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-dropdown a.navbar-item.is-active {\n background-color: white;\n color: #0a0a0a; } }\n #optimole-app .navbar.is-black {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .navbar.is-black .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-black .navbar-brand .navbar-link {\n color: white; }\n #optimole-app .navbar.is-black .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-black .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-black .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-black .navbar-brand .navbar-link.is-active {\n background-color: black;\n color: white; }\n #optimole-app .navbar.is-black .navbar-brand .navbar-link::after {\n border-color: white; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-black .navbar-start > .navbar-item,\n #optimole-app .navbar.is-black .navbar-start .navbar-link,\n #optimole-app .navbar.is-black .navbar-end > .navbar-item,\n #optimole-app .navbar.is-black .navbar-end .navbar-link {\n color: white; }\n #optimole-app .navbar.is-black .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-black .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-black .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-black .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-black .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-black .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-black .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-black .navbar-end .navbar-link.is-active {\n background-color: black;\n color: white; }\n #optimole-app .navbar.is-black .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-black .navbar-end .navbar-link::after {\n border-color: white; }\n #optimole-app .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: black;\n color: white; }\n #optimole-app .navbar.is-black .navbar-dropdown a.navbar-item.is-active {\n background-color: #0a0a0a;\n color: white; } }\n #optimole-app .navbar.is-light {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .navbar.is-light .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-light .navbar-brand .navbar-link {\n color: #363636; }\n #optimole-app .navbar.is-light .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-light .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-light .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-light .navbar-brand .navbar-link.is-active {\n background-color: #e8e8e8;\n color: #363636; }\n #optimole-app .navbar.is-light .navbar-brand .navbar-link::after {\n border-color: #363636; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-light .navbar-start > .navbar-item,\n #optimole-app .navbar.is-light .navbar-start .navbar-link,\n #optimole-app .navbar.is-light .navbar-end > .navbar-item,\n #optimole-app .navbar.is-light .navbar-end .navbar-link {\n color: #363636; }\n #optimole-app .navbar.is-light .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-light .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-light .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-light .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-light .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-light .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-light .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-light .navbar-end .navbar-link.is-active {\n background-color: #e8e8e8;\n color: #363636; }\n #optimole-app .navbar.is-light .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-light .navbar-end .navbar-link::after {\n border-color: #363636; }\n #optimole-app .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #e8e8e8;\n color: #363636; }\n #optimole-app .navbar.is-light .navbar-dropdown a.navbar-item.is-active {\n background-color: whitesmoke;\n color: #363636; } }\n #optimole-app .navbar.is-dark {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-dark .navbar-brand .navbar-link {\n color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-dark .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-dark .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-dark .navbar-brand .navbar-link.is-active {\n background-color: #292929;\n color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-brand .navbar-link::after {\n border-color: whitesmoke; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-dark .navbar-start > .navbar-item,\n #optimole-app .navbar.is-dark .navbar-start .navbar-link,\n #optimole-app .navbar.is-dark .navbar-end > .navbar-item,\n #optimole-app .navbar.is-dark .navbar-end .navbar-link {\n color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-dark .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-dark .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-dark .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-dark .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-dark .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-dark .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-dark .navbar-end .navbar-link.is-active {\n background-color: #292929;\n color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-dark .navbar-end .navbar-link::after {\n border-color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #292929;\n color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-dropdown a.navbar-item.is-active {\n background-color: #363636;\n color: whitesmoke; } }\n #optimole-app .navbar.is-primary {\n background-color: #e7602a;\n color: #fff; }\n #optimole-app .navbar.is-primary .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-primary .navbar-brand .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-primary .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-primary .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-primary .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-primary .navbar-brand .navbar-link.is-active {\n background-color: #de5119;\n color: #fff; }\n #optimole-app .navbar.is-primary .navbar-brand .navbar-link::after {\n border-color: #fff; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-primary .navbar-start > .navbar-item,\n #optimole-app .navbar.is-primary .navbar-start .navbar-link,\n #optimole-app .navbar.is-primary .navbar-end > .navbar-item,\n #optimole-app .navbar.is-primary .navbar-end .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-primary .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-primary .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-primary .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-primary .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-primary .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-primary .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-primary .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-primary .navbar-end .navbar-link.is-active {\n background-color: #de5119;\n color: #fff; }\n #optimole-app .navbar.is-primary .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-primary .navbar-end .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #de5119;\n color: #fff; }\n #optimole-app .navbar.is-primary .navbar-dropdown a.navbar-item.is-active {\n background-color: #e7602a;\n color: #fff; } }\n #optimole-app .navbar.is-link {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .navbar.is-link .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-link .navbar-brand .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-link .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-link .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-link .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-link .navbar-brand .navbar-link.is-active {\n background-color: #2366d1;\n color: #fff; }\n #optimole-app .navbar.is-link .navbar-brand .navbar-link::after {\n border-color: #fff; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-link .navbar-start > .navbar-item,\n #optimole-app .navbar.is-link .navbar-start .navbar-link,\n #optimole-app .navbar.is-link .navbar-end > .navbar-item,\n #optimole-app .navbar.is-link .navbar-end .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-link .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-link .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-link .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-link .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-link .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-link .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-link .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-link .navbar-end .navbar-link.is-active {\n background-color: #2366d1;\n color: #fff; }\n #optimole-app .navbar.is-link .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-link .navbar-end .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #2366d1;\n color: #fff; }\n #optimole-app .navbar.is-link .navbar-dropdown a.navbar-item.is-active {\n background-color: #3273dc;\n color: #fff; } }\n #optimole-app .navbar.is-info {\n background-color: #008ec2;\n color: #fff; }\n #optimole-app .navbar.is-info .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-info .navbar-brand .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-info .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-info .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-info .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-info .navbar-brand .navbar-link.is-active {\n background-color: #007ba9;\n color: #fff; }\n #optimole-app .navbar.is-info .navbar-brand .navbar-link::after {\n border-color: #fff; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-info .navbar-start > .navbar-item,\n #optimole-app .navbar.is-info .navbar-start .navbar-link,\n #optimole-app .navbar.is-info .navbar-end > .navbar-item,\n #optimole-app .navbar.is-info .navbar-end .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-info .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-info .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-info .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-info .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-info .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-info .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-info .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-info .navbar-end .navbar-link.is-active {\n background-color: #007ba9;\n color: #fff; }\n #optimole-app .navbar.is-info .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-info .navbar-end .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #007ba9;\n color: #fff; }\n #optimole-app .navbar.is-info .navbar-dropdown a.navbar-item.is-active {\n background-color: #008ec2;\n color: #fff; } }\n #optimole-app .navbar.is-success {\n background-color: #34a85e;\n color: #fff; }\n #optimole-app .navbar.is-success .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-success .navbar-brand .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-success .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-success .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-success .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-success .navbar-brand .navbar-link.is-active {\n background-color: #2e9553;\n color: #fff; }\n #optimole-app .navbar.is-success .navbar-brand .navbar-link::after {\n border-color: #fff; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-success .navbar-start > .navbar-item,\n #optimole-app .navbar.is-success .navbar-start .navbar-link,\n #optimole-app .navbar.is-success .navbar-end > .navbar-item,\n #optimole-app .navbar.is-success .navbar-end .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-success .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-success .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-success .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-success .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-success .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-success .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-success .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-success .navbar-end .navbar-link.is-active {\n background-color: #2e9553;\n color: #fff; }\n #optimole-app .navbar.is-success .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-success .navbar-end .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #2e9553;\n color: #fff; }\n #optimole-app .navbar.is-success .navbar-dropdown a.navbar-item.is-active {\n background-color: #34a85e;\n color: #fff; } }\n #optimole-app .navbar.is-warning {\n background-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-warning .navbar-brand .navbar-link {\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-warning .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-warning .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-warning .navbar-brand .navbar-link.is-active {\n background-color: #ffd83d;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-brand .navbar-link::after {\n border-color: rgba(0, 0, 0, 0.7); }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-warning .navbar-start > .navbar-item,\n #optimole-app .navbar.is-warning .navbar-start .navbar-link,\n #optimole-app .navbar.is-warning .navbar-end > .navbar-item,\n #optimole-app .navbar.is-warning .navbar-end .navbar-link {\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-warning .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-warning .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-warning .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-warning .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-warning .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-warning .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-warning .navbar-end .navbar-link.is-active {\n background-color: #ffd83d;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-warning .navbar-end .navbar-link::after {\n border-color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #ffd83d;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-dropdown a.navbar-item.is-active {\n background-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); } }\n #optimole-app .navbar.is-danger {\n background-color: #d54222;\n color: #fff; }\n #optimole-app .navbar.is-danger .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-danger .navbar-brand .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-danger .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-danger .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-danger .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-danger .navbar-brand .navbar-link.is-active {\n background-color: #bf3b1e;\n color: #fff; }\n #optimole-app .navbar.is-danger .navbar-brand .navbar-link::after {\n border-color: #fff; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-danger .navbar-start > .navbar-item,\n #optimole-app .navbar.is-danger .navbar-start .navbar-link,\n #optimole-app .navbar.is-danger .navbar-end > .navbar-item,\n #optimole-app .navbar.is-danger .navbar-end .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-danger .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-danger .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-danger .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-danger .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-danger .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-danger .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-danger .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-danger .navbar-end .navbar-link.is-active {\n background-color: #bf3b1e;\n color: #fff; }\n #optimole-app .navbar.is-danger .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-danger .navbar-end .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #bf3b1e;\n color: #fff; }\n #optimole-app .navbar.is-danger .navbar-dropdown a.navbar-item.is-active {\n background-color: #d54222;\n color: #fff; } }\n #optimole-app .navbar > .container {\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex;\n min-height: 3.25rem;\n width: 100%; }\n #optimole-app .navbar.has-shadow {\n box-shadow: 0 2px 0 0 whitesmoke; }\n #optimole-app .navbar.is-fixed-bottom, #optimole-app .navbar.is-fixed-top {\n left: 0;\n position: fixed;\n right: 0;\n z-index: 30; }\n #optimole-app .navbar.is-fixed-bottom {\n bottom: 0; }\n #optimole-app .navbar.is-fixed-bottom.has-shadow {\n box-shadow: 0 -2px 0 0 whitesmoke; }\n #optimole-app .navbar.is-fixed-top {\n top: 0; }\n #optimole-app html.has-navbar-fixed-top,\n #optimole-app body.has-navbar-fixed-top {\n padding-top: 3.25rem; }\n #optimole-app html.has-navbar-fixed-bottom,\n #optimole-app body.has-navbar-fixed-bottom {\n padding-bottom: 3.25rem; }\n #optimole-app .navbar-brand,\n #optimole-app .navbar-tabs {\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n min-height: 3.25rem; }\n #optimole-app .navbar-brand a.navbar-item:hover {\n background-color: transparent; }\n #optimole-app .navbar-tabs {\n -webkit-overflow-scrolling: touch;\n max-width: 100vw;\n overflow-x: auto;\n overflow-y: hidden; }\n #optimole-app .navbar-burger {\n cursor: pointer;\n display: block;\n height: 3.25rem;\n position: relative;\n width: 3.25rem;\n margin-left: auto; }\n #optimole-app .navbar-burger span {\n background-color: currentColor;\n display: block;\n height: 1px;\n left: calc(50% - 8px);\n position: absolute;\n transform-origin: center;\n transition-duration: 86ms;\n transition-property: background-color, opacity, transform;\n transition-timing-function: ease-out;\n width: 16px; }\n #optimole-app .navbar-burger span:nth-child(1) {\n top: calc(50% - 6px); }\n #optimole-app .navbar-burger span:nth-child(2) {\n top: calc(50% - 1px); }\n #optimole-app .navbar-burger span:nth-child(3) {\n top: calc(50% + 4px); }\n #optimole-app .navbar-burger:hover {\n background-color: rgba(0, 0, 0, 0.05); }\n #optimole-app .navbar-burger.is-active span:nth-child(1) {\n transform: translateY(5px) rotate(45deg); }\n #optimole-app .navbar-burger.is-active span:nth-child(2) {\n opacity: 0; }\n #optimole-app .navbar-burger.is-active span:nth-child(3) {\n transform: translateY(-5px) rotate(-45deg); }\n #optimole-app .navbar-menu {\n display: none; }\n #optimole-app .navbar-item,\n #optimole-app .navbar-link {\n color: #4a4a4a;\n display: block;\n line-height: 1.5;\n padding: 0.5rem 0.75rem;\n position: relative; }\n #optimole-app .navbar-item .icon:only-child,\n #optimole-app .navbar-link .icon:only-child {\n margin-left: -0.25rem;\n margin-right: -0.25rem; }\n #optimole-app a.navbar-item,\n #optimole-app .navbar-link {\n cursor: pointer; }\n #optimole-app a.navbar-item:hover, #optimole-app a.navbar-item.is-active,\n #optimole-app .navbar-link:hover,\n #optimole-app .navbar-link.is-active {\n background-color: #fafafa;\n color: #3273dc; }\n #optimole-app .navbar-item {\n display: block;\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .navbar-item img {\n max-height: 1.75rem; }\n #optimole-app .navbar-item.has-dropdown {\n padding: 0; }\n #optimole-app .navbar-item.is-expanded {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .navbar-item.is-tab {\n border-bottom: 1px solid transparent;\n min-height: 3.25rem;\n padding-bottom: calc(0.5rem - 1px); }\n #optimole-app .navbar-item.is-tab:hover {\n background-color: transparent;\n border-bottom-color: #3273dc; }\n #optimole-app .navbar-item.is-tab.is-active {\n background-color: transparent;\n border-bottom-color: #3273dc;\n border-bottom-style: solid;\n border-bottom-width: 3px;\n color: #3273dc;\n padding-bottom: calc(0.5rem - 3px); }\n #optimole-app .navbar-content {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .navbar-link {\n padding-right: 2.5em; }\n #optimole-app .navbar-link::after {\n border-color: #3273dc;\n margin-top: -0.375em;\n right: 1.125em; }\n #optimole-app .navbar-dropdown {\n font-size: 0.875rem;\n padding-bottom: 0.5rem;\n padding-top: 0.5rem; }\n #optimole-app .navbar-dropdown .navbar-item {\n padding-left: 1.5rem;\n padding-right: 1.5rem; }\n #optimole-app .navbar-divider {\n background-color: whitesmoke;\n border: none;\n display: none;\n height: 2px;\n margin: 0.5rem 0; }\n @media screen and (max-width: 1087px) {\n #optimole-app .navbar > .container {\n display: block; }\n #optimole-app .navbar-brand .navbar-item,\n #optimole-app .navbar-tabs .navbar-item {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .navbar-link::after {\n display: none; }\n #optimole-app .navbar-menu {\n background-color: white;\n box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1);\n padding: 0.5rem 0; }\n #optimole-app .navbar-menu.is-active {\n display: block; }\n #optimole-app .navbar.is-fixed-bottom-touch, #optimole-app .navbar.is-fixed-top-touch {\n left: 0;\n position: fixed;\n right: 0;\n z-index: 30; }\n #optimole-app .navbar.is-fixed-bottom-touch {\n bottom: 0; }\n #optimole-app .navbar.is-fixed-bottom-touch.has-shadow {\n box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }\n #optimole-app .navbar.is-fixed-top-touch {\n top: 0; }\n #optimole-app .navbar.is-fixed-top .navbar-menu, #optimole-app .navbar.is-fixed-top-touch .navbar-menu {\n -webkit-overflow-scrolling: touch;\n max-height: calc(100vh - 3.25rem);\n overflow: auto; }\n #optimole-app html.has-navbar-fixed-top-touch,\n #optimole-app body.has-navbar-fixed-top-touch {\n padding-top: 3.25rem; }\n #optimole-app html.has-navbar-fixed-bottom-touch,\n #optimole-app body.has-navbar-fixed-bottom-touch {\n padding-bottom: 3.25rem; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar,\n #optimole-app .navbar-menu,\n #optimole-app .navbar-start,\n #optimole-app .navbar-end {\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .navbar {\n min-height: 3.25rem; }\n #optimole-app .navbar.is-spaced {\n padding: 1rem 2rem; }\n #optimole-app .navbar.is-spaced .navbar-start,\n #optimole-app .navbar.is-spaced .navbar-end {\n -ms-flex-align: center;\n align-items: center; }\n #optimole-app .navbar.is-spaced a.navbar-item,\n #optimole-app .navbar.is-spaced .navbar-link {\n border-radius: 4px; }\n #optimole-app .navbar.is-transparent a.navbar-item:hover, #optimole-app .navbar.is-transparent a.navbar-item.is-active,\n #optimole-app .navbar.is-transparent .navbar-link:hover,\n #optimole-app .navbar.is-transparent .navbar-link.is-active {\n background-color: transparent !important; }\n #optimole-app .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, #optimole-app .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link {\n background-color: transparent !important; }\n #optimole-app .navbar.is-transparent .navbar-dropdown a.navbar-item:hover {\n background-color: whitesmoke;\n color: #0a0a0a; }\n #optimole-app .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active {\n background-color: whitesmoke;\n color: #3273dc; }\n #optimole-app .navbar-burger {\n display: none; }\n #optimole-app .navbar-item,\n #optimole-app .navbar-link {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .navbar-item {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .navbar-item.has-dropdown {\n -ms-flex-align: stretch;\n align-items: stretch; }\n #optimole-app .navbar-item.has-dropdown-up .navbar-link::after {\n transform: rotate(135deg) translate(0.25em, -0.25em); }\n #optimole-app .navbar-item.has-dropdown-up .navbar-dropdown {\n border-bottom: 2px solid #dbdbdb;\n border-radius: 6px 6px 0 0;\n border-top: none;\n bottom: 100%;\n box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1);\n top: auto; }\n #optimole-app .navbar-item.is-active .navbar-dropdown, #optimole-app .navbar-item.is-hoverable:hover .navbar-dropdown {\n display: block; }\n .navbar.is-spaced #optimole-app .navbar-item.is-active .navbar-dropdown, #optimole-app .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced #optimole-app .navbar-item.is-hoverable:hover .navbar-dropdown, #optimole-app .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed {\n opacity: 1;\n pointer-events: auto;\n transform: translateY(0); }\n #optimole-app .navbar-menu {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .navbar-start {\n -ms-flex-pack: start;\n justify-content: flex-start;\n margin-right: auto; }\n #optimole-app .navbar-end {\n -ms-flex-pack: end;\n justify-content: flex-end;\n margin-left: auto; }\n #optimole-app .navbar-dropdown {\n background-color: white;\n border-bottom-left-radius: 6px;\n border-bottom-right-radius: 6px;\n border-top: 2px solid #dbdbdb;\n box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1);\n display: none;\n font-size: 0.875rem;\n left: 0;\n min-width: 100%;\n position: absolute;\n top: 100%;\n z-index: 20; }\n #optimole-app .navbar-dropdown .navbar-item {\n padding: 0.375rem 1rem;\n white-space: nowrap; }\n #optimole-app .navbar-dropdown a.navbar-item {\n padding-right: 3rem; }\n #optimole-app .navbar-dropdown a.navbar-item:hover {\n background-color: whitesmoke;\n color: #0a0a0a; }\n #optimole-app .navbar-dropdown a.navbar-item.is-active {\n background-color: whitesmoke;\n color: #3273dc; }\n .navbar.is-spaced #optimole-app .navbar-dropdown, #optimole-app .navbar-dropdown.is-boxed {\n border-radius: 6px;\n border-top: none;\n box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);\n display: block;\n opacity: 0;\n pointer-events: none;\n top: calc(100% + (-4px));\n transform: translateY(-5px);\n transition-duration: 86ms;\n transition-property: opacity, transform; }\n #optimole-app .navbar-dropdown.is-right {\n left: auto;\n right: 0; }\n #optimole-app .navbar-divider {\n display: block; }\n #optimole-app .navbar > .container .navbar-brand,\n #optimole-app .container > .navbar .navbar-brand {\n margin-left: -1rem; }\n #optimole-app .navbar > .container .navbar-menu,\n #optimole-app .container > .navbar .navbar-menu {\n margin-right: -1rem; }\n #optimole-app .navbar.is-fixed-bottom-desktop, #optimole-app .navbar.is-fixed-top-desktop {\n left: 0;\n position: fixed;\n right: 0;\n z-index: 30; }\n #optimole-app .navbar.is-fixed-bottom-desktop {\n bottom: 0; }\n #optimole-app .navbar.is-fixed-bottom-desktop.has-shadow {\n box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }\n #optimole-app .navbar.is-fixed-top-desktop {\n top: 0; }\n #optimole-app html.has-navbar-fixed-top-desktop,\n #optimole-app body.has-navbar-fixed-top-desktop {\n padding-top: 3.25rem; }\n #optimole-app html.has-navbar-fixed-bottom-desktop,\n #optimole-app body.has-navbar-fixed-bottom-desktop {\n padding-bottom: 3.25rem; }\n #optimole-app html.has-spaced-navbar-fixed-top,\n #optimole-app body.has-spaced-navbar-fixed-top {\n padding-top: 5.25rem; }\n #optimole-app html.has-spaced-navbar-fixed-bottom,\n #optimole-app body.has-spaced-navbar-fixed-bottom {\n padding-bottom: 5.25rem; }\n #optimole-app a.navbar-item.is-active,\n #optimole-app .navbar-link.is-active {\n color: #0a0a0a; }\n #optimole-app a.navbar-item.is-active:not(:hover),\n #optimole-app .navbar-link.is-active:not(:hover) {\n background-color: transparent; }\n #optimole-app .navbar-item.has-dropdown:hover .navbar-link, #optimole-app .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #fafafa; } }\n #optimole-app .pagination {\n font-size: 1rem;\n margin: -0.25rem; }\n #optimole-app .pagination.is-small {\n font-size: 0.75rem; }\n #optimole-app .pagination.is-medium {\n font-size: 1.25rem; }\n #optimole-app .pagination.is-large {\n font-size: 1.5rem; }\n #optimole-app .pagination.is-rounded .pagination-previous,\n #optimole-app .pagination.is-rounded .pagination-next {\n padding-left: 1em;\n padding-right: 1em;\n border-radius: 290486px; }\n #optimole-app .pagination.is-rounded .pagination-link {\n border-radius: 290486px; }\n #optimole-app .pagination,\n #optimole-app .pagination-list {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n text-align: center; }\n #optimole-app .pagination-previous,\n #optimole-app .pagination-next,\n #optimole-app .pagination-link,\n #optimole-app .pagination-ellipsis {\n font-size: 1em;\n padding-left: 0.5em;\n padding-right: 0.5em;\n -ms-flex-pack: center;\n justify-content: center;\n margin: 0.25rem;\n text-align: center; }\n #optimole-app .pagination-previous,\n #optimole-app .pagination-next,\n #optimole-app .pagination-link {\n border-color: #dbdbdb;\n color: #363636;\n min-width: 2.25em; }\n #optimole-app .pagination-previous:hover,\n #optimole-app .pagination-next:hover,\n #optimole-app .pagination-link:hover {\n border-color: #b5b5b5;\n color: #363636; }\n #optimole-app .pagination-previous:focus,\n #optimole-app .pagination-next:focus,\n #optimole-app .pagination-link:focus {\n border-color: #3273dc; }\n #optimole-app .pagination-previous:active,\n #optimole-app .pagination-next:active,\n #optimole-app .pagination-link:active {\n box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); }\n #optimole-app .pagination-previous[disabled],\n #optimole-app .pagination-next[disabled],\n #optimole-app .pagination-link[disabled] {\n background-color: #dbdbdb;\n border-color: #dbdbdb;\n box-shadow: none;\n color: #7a7a7a;\n opacity: 0.5; }\n #optimole-app .pagination-previous,\n #optimole-app .pagination-next {\n padding-left: 0.75em;\n padding-right: 0.75em;\n white-space: nowrap; }\n #optimole-app .pagination-link.is-current {\n background-color: #3273dc;\n border-color: #3273dc;\n color: #fff; }\n #optimole-app .pagination-ellipsis {\n color: #b5b5b5;\n pointer-events: none; }\n #optimole-app .pagination-list {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap; }\n @media screen and (max-width: 768px) {\n #optimole-app .pagination {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap; }\n #optimole-app .pagination-previous,\n #optimole-app .pagination-next {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .pagination-list li {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .pagination-list {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n -ms-flex-pack: start;\n justify-content: flex-start;\n -ms-flex-order: 1;\n order: 1; }\n #optimole-app .pagination-previous {\n -ms-flex-order: 2;\n order: 2; }\n #optimole-app .pagination-next {\n -ms-flex-order: 3;\n order: 3; }\n #optimole-app .pagination {\n -ms-flex-pack: justify;\n justify-content: space-between; }\n #optimole-app .pagination.is-centered .pagination-previous {\n -ms-flex-order: 1;\n order: 1; }\n #optimole-app .pagination.is-centered .pagination-list {\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-order: 2;\n order: 2; }\n #optimole-app .pagination.is-centered .pagination-next {\n -ms-flex-order: 3;\n order: 3; }\n #optimole-app .pagination.is-right .pagination-previous {\n -ms-flex-order: 1;\n order: 1; }\n #optimole-app .pagination.is-right .pagination-next {\n -ms-flex-order: 2;\n order: 2; }\n #optimole-app .pagination.is-right .pagination-list {\n -ms-flex-pack: end;\n justify-content: flex-end;\n -ms-flex-order: 3;\n order: 3; } }\n #optimole-app .panel {\n font-size: 1rem; }\n #optimole-app .panel:not(:last-child) {\n margin-bottom: 1.5rem; }\n #optimole-app .panel-heading,\n #optimole-app .panel-tabs,\n #optimole-app .panel-block {\n border-bottom: 1px solid #dbdbdb;\n border-left: 1px solid #dbdbdb;\n border-right: 1px solid #dbdbdb; }\n #optimole-app .panel-heading:first-child,\n #optimole-app .panel-tabs:first-child,\n #optimole-app .panel-block:first-child {\n border-top: 1px solid #dbdbdb; }\n #optimole-app .panel-heading {\n background-color: whitesmoke;\n border-radius: 4px 4px 0 0;\n color: #363636;\n font-size: 1.25em;\n font-weight: 300;\n line-height: 1.25;\n padding: 0.5em 0.75em; }\n #optimole-app .panel-tabs {\n -ms-flex-align: end;\n align-items: flex-end;\n display: -ms-flexbox;\n display: flex;\n font-size: 0.875em;\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .panel-tabs a {\n border-bottom: 1px solid #dbdbdb;\n margin-bottom: -1px;\n padding: 0.5em; }\n #optimole-app .panel-tabs a.is-active {\n border-bottom-color: #4a4a4a;\n color: #363636; }\n #optimole-app .panel-list a {\n color: #4a4a4a; }\n #optimole-app .panel-list a:hover {\n color: #3273dc; }\n #optimole-app .panel-block {\n -ms-flex-align: center;\n align-items: center;\n color: #363636;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: start;\n justify-content: flex-start;\n padding: 0.5em 0.75em; }\n #optimole-app .panel-block input[type="checkbox"] {\n margin-right: 0.75em; }\n #optimole-app .panel-block > .control {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n width: 100%; }\n #optimole-app .panel-block.is-wrapped {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap; }\n #optimole-app .panel-block.is-active {\n border-left-color: #3273dc;\n color: #363636; }\n #optimole-app .panel-block.is-active .panel-icon {\n color: #3273dc; }\n #optimole-app a.panel-block,\n #optimole-app label.panel-block {\n cursor: pointer; }\n #optimole-app a.panel-block:hover,\n #optimole-app label.panel-block:hover {\n background-color: whitesmoke; }\n #optimole-app .panel-icon {\n display: inline-block;\n font-size: 14px;\n height: 1em;\n line-height: 1em;\n text-align: center;\n vertical-align: top;\n width: 1em;\n color: #7a7a7a;\n margin-right: 0.75em; }\n #optimole-app .panel-icon .fa {\n font-size: inherit;\n line-height: inherit; }\n #optimole-app .tabs {\n -webkit-overflow-scrolling: touch;\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex;\n font-size: 1rem;\n -ms-flex-pack: justify;\n justify-content: space-between;\n overflow: hidden;\n overflow-x: auto;\n white-space: nowrap; }\n #optimole-app .tabs a {\n -ms-flex-align: center;\n align-items: center;\n border-bottom-color: #dbdbdb;\n border-bottom-style: solid;\n border-bottom-width: 1px;\n color: #4a4a4a;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n margin-bottom: -1px;\n padding: 0.5em 1em;\n vertical-align: top; }\n #optimole-app .tabs a:hover {\n border-bottom-color: #363636;\n color: #363636; }\n #optimole-app .tabs li {\n display: block; }\n #optimole-app .tabs li.is-active a {\n border-bottom-color: #3273dc;\n color: #3273dc; }\n #optimole-app .tabs ul {\n -ms-flex-align: center;\n align-items: center;\n border-bottom-color: #dbdbdb;\n border-bottom-style: solid;\n border-bottom-width: 1px;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n #optimole-app .tabs ul.is-left {\n padding-right: 0.75em; }\n #optimole-app .tabs ul.is-center {\n -ms-flex: none;\n flex: none;\n -ms-flex-pack: center;\n justify-content: center;\n padding-left: 0.75em;\n padding-right: 0.75em; }\n #optimole-app .tabs ul.is-right {\n -ms-flex-pack: end;\n justify-content: flex-end;\n padding-left: 0.75em; }\n #optimole-app .tabs .icon:first-child {\n margin-right: 0.5em; }\n #optimole-app .tabs .icon:last-child {\n margin-left: 0.5em; }\n #optimole-app .tabs.is-centered ul {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .tabs.is-right ul {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .tabs.is-boxed a {\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0; }\n #optimole-app .tabs.is-boxed a:hover {\n background-color: whitesmoke;\n border-bottom-color: #dbdbdb; }\n #optimole-app .tabs.is-boxed li.is-active a {\n background-color: white;\n border-color: #dbdbdb;\n border-bottom-color: transparent !important; }\n #optimole-app .tabs.is-fullwidth li {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .tabs.is-toggle a {\n border-color: #dbdbdb;\n border-style: solid;\n border-width: 1px;\n margin-bottom: 0;\n position: relative; }\n #optimole-app .tabs.is-toggle a:hover {\n background-color: whitesmoke;\n border-color: #b5b5b5;\n z-index: 2; }\n #optimole-app .tabs.is-toggle li + li {\n margin-left: -1px; }\n #optimole-app .tabs.is-toggle li:first-child a {\n border-radius: 4px 0 0 4px; }\n #optimole-app .tabs.is-toggle li:last-child a {\n border-radius: 0 4px 4px 0; }\n #optimole-app .tabs.is-toggle li.is-active a {\n background-color: #3273dc;\n border-color: #3273dc;\n color: #fff;\n z-index: 1; }\n #optimole-app .tabs.is-toggle ul {\n border-bottom: none; }\n #optimole-app .tabs.is-toggle.is-toggle-rounded li:first-child a {\n border-bottom-left-radius: 290486px;\n border-top-left-radius: 290486px;\n padding-left: 1.25em; }\n #optimole-app .tabs.is-toggle.is-toggle-rounded li:last-child a {\n border-bottom-right-radius: 290486px;\n border-top-right-radius: 290486px;\n padding-right: 1.25em; }\n #optimole-app .tabs.is-small {\n font-size: 0.75rem; }\n #optimole-app .tabs.is-medium {\n font-size: 1.25rem; }\n #optimole-app .tabs.is-large {\n font-size: 1.5rem; }\n #optimole-app .column {\n display: block;\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n padding: 0.75rem; }\n .columns.is-mobile > #optimole-app .column.is-narrow {\n -ms-flex: none;\n flex: none; }\n .columns.is-mobile > #optimole-app .column.is-full {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n .columns.is-mobile > #optimole-app .column.is-three-quarters {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n .columns.is-mobile > #optimole-app .column.is-two-thirds {\n -ms-flex: none;\n flex: none;\n width: 66.6666%; }\n .columns.is-mobile > #optimole-app .column.is-half {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n .columns.is-mobile > #optimole-app .column.is-one-third {\n -ms-flex: none;\n flex: none;\n width: 33.3333%; }\n .columns.is-mobile > #optimole-app .column.is-one-quarter {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n .columns.is-mobile > #optimole-app .column.is-one-fifth {\n -ms-flex: none;\n flex: none;\n width: 20%; }\n .columns.is-mobile > #optimole-app .column.is-two-fifths {\n -ms-flex: none;\n flex: none;\n width: 40%; }\n .columns.is-mobile > #optimole-app .column.is-three-fifths {\n -ms-flex: none;\n flex: none;\n width: 60%; }\n .columns.is-mobile > #optimole-app .column.is-four-fifths {\n -ms-flex: none;\n flex: none;\n width: 80%; }\n .columns.is-mobile > #optimole-app .column.is-offset-three-quarters {\n margin-left: 75%; }\n .columns.is-mobile > #optimole-app .column.is-offset-two-thirds {\n margin-left: 66.6666%; }\n .columns.is-mobile > #optimole-app .column.is-offset-half {\n margin-left: 50%; }\n .columns.is-mobile > #optimole-app .column.is-offset-one-third {\n margin-left: 33.3333%; }\n .columns.is-mobile > #optimole-app .column.is-offset-one-quarter {\n margin-left: 25%; }\n .columns.is-mobile > #optimole-app .column.is-offset-one-fifth {\n margin-left: 20%; }\n .columns.is-mobile > #optimole-app .column.is-offset-two-fifths {\n margin-left: 40%; }\n .columns.is-mobile > #optimole-app .column.is-offset-three-fifths {\n margin-left: 60%; }\n .columns.is-mobile > #optimole-app .column.is-offset-four-fifths {\n margin-left: 80%; }\n .columns.is-mobile > #optimole-app .column.is-1 {\n -ms-flex: none;\n flex: none;\n width: 8.33333%; }\n .columns.is-mobile > #optimole-app .column.is-offset-1 {\n margin-left: 8.33333%; }\n .columns.is-mobile > #optimole-app .column.is-2 {\n -ms-flex: none;\n flex: none;\n width: 16.66667%; }\n .columns.is-mobile > #optimole-app .column.is-offset-2 {\n margin-left: 16.66667%; }\n .columns.is-mobile > #optimole-app .column.is-3 {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n .columns.is-mobile > #optimole-app .column.is-offset-3 {\n margin-left: 25%; }\n .columns.is-mobile > #optimole-app .column.is-4 {\n -ms-flex: none;\n flex: none;\n width: 33.33333%; }\n .columns.is-mobile > #optimole-app .column.is-offset-4 {\n margin-left: 33.33333%; }\n .columns.is-mobile > #optimole-app .column.is-5 {\n -ms-flex: none;\n flex: none;\n width: 41.66667%; }\n .columns.is-mobile > #optimole-app .column.is-offset-5 {\n margin-left: 41.66667%; }\n .columns.is-mobile > #optimole-app .column.is-6 {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n .columns.is-mobile > #optimole-app .column.is-offset-6 {\n margin-left: 50%; }\n .columns.is-mobile > #optimole-app .column.is-7 {\n -ms-flex: none;\n flex: none;\n width: 58.33333%; }\n .columns.is-mobile > #optimole-app .column.is-offset-7 {\n margin-left: 58.33333%; }\n .columns.is-mobile > #optimole-app .column.is-8 {\n -ms-flex: none;\n flex: none;\n width: 66.66667%; }\n .columns.is-mobile > #optimole-app .column.is-offset-8 {\n margin-left: 66.66667%; }\n .columns.is-mobile > #optimole-app .column.is-9 {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n .columns.is-mobile > #optimole-app .column.is-offset-9 {\n margin-left: 75%; }\n .columns.is-mobile > #optimole-app .column.is-10 {\n -ms-flex: none;\n flex: none;\n width: 83.33333%; }\n .columns.is-mobile > #optimole-app .column.is-offset-10 {\n margin-left: 83.33333%; }\n .columns.is-mobile > #optimole-app .column.is-11 {\n -ms-flex: none;\n flex: none;\n width: 91.66667%; }\n .columns.is-mobile > #optimole-app .column.is-offset-11 {\n margin-left: 91.66667%; }\n .columns.is-mobile > #optimole-app .column.is-12 {\n