Event Calendar WD – Responsive Event Calendar plugin - Version 1.0.0

Version Description

Initial version

=

Download this release

Release Info

Developer webdorado
Plugin Icon 128x128 Event Calendar WD – Responsive Event Calendar plugin
Version 1.0.0
Comparing to
See all releases

Version 1.0.0

Files changed (178) hide show
  1. assets/Insert-icon.png +0 -0
  2. assets/add_addevent.jpg +0 -0
  3. assets/add_cdown.jpg +0 -0
  4. assets/add_fb.jpg +0 -0
  5. assets/add_filters.png +0 -0
  6. assets/add_gcal.jpg +0 -0
  7. assets/add_ical.jpg +0 -0
  8. assets/calendar_icon_90x90.png +0 -0
  9. assets/event-icon.png +0 -0
  10. assets/loading.gif +0 -0
  11. assets/organizer-icon.png +0 -0
  12. assets/pro.png +0 -0
  13. assets/spider-calendar-shortcode-icon.png +0 -0
  14. assets/spider_calendar-20.png +0 -0
  15. assets/themes-icon.png +0 -0
  16. assets/themes.jpg +0 -0
  17. assets/url-icon.png +0 -0
  18. assets/venue-icon.png +0 -0
  19. css/admin/admin.css +555 -0
  20. css/admin/evol.colorpicker.css +172 -0
  21. css/admin/featured_plugins.css +100 -0
  22. css/admin/featured_themes.css +79 -0
  23. css/admin/jquery.datetimepicker.css +418 -0
  24. css/admin/licensing.css +158 -0
  25. css/admin/mse-buttons.css +4 -0
  26. css/calendar.css +308 -0
  27. css/font-awesome/font-awesome.css +1712 -0
  28. css/font-awesome/fonts/FontAwesome.otf +0 -0
  29. css/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  30. css/font-awesome/fonts/fontawesome-webfont.svg +520 -0
  31. css/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  32. css/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  33. css/font-awesome/less/bordered-pulled.less +16 -0
  34. css/font-awesome/less/core.less +11 -0
  35. css/font-awesome/less/fixed-width.less +6 -0
  36. css/font-awesome/less/font-awesome.less +17 -0
  37. css/font-awesome/less/icons.less +552 -0
  38. css/font-awesome/less/larger.less +13 -0
  39. css/font-awesome/less/list.less +19 -0
  40. css/font-awesome/less/mixins.less +25 -0
  41. css/font-awesome/less/path.less +14 -0
  42. css/font-awesome/less/rotated-flipped.less +20 -0
  43. css/font-awesome/less/spinning.less +29 -0
  44. css/font-awesome/less/stacked.less +20 -0
  45. css/font-awesome/less/variables.less +561 -0
  46. css/font-awesome/scss/_bordered-pulled.scss +16 -0
  47. css/font-awesome/scss/_core.scss +11 -0
  48. css/font-awesome/scss/_fixed-width.scss +6 -0
  49. css/font-awesome/scss/_icons.scss +552 -0
  50. css/font-awesome/scss/_larger.scss +13 -0
  51. css/font-awesome/scss/_list.scss +19 -0
  52. css/font-awesome/scss/_mixins.scss +25 -0
  53. css/font-awesome/scss/_path.scss +14 -0
  54. css/font-awesome/scss/_rotated-flipped.scss +20 -0
  55. css/font-awesome/scss/_spinning.scss +29 -0
  56. css/font-awesome/scss/_stacked.scss +20 -0
  57. css/font-awesome/scss/_variables.scss +561 -0
  58. css/font-awesome/scss/font-awesome.scss +17 -0
  59. css/images/Add_Ons.jpg +0 -0
  60. css/images/admin_day.jpg +0 -0
  61. css/images/admin_time.jpg +0 -0
  62. css/images/arrow_down.png +0 -0
  63. css/images/arrow_left.png +0 -0
  64. css/images/arrow_right.png +0 -0
  65. css/images/arrow_up.png +0 -0
  66. css/images/close.png +0 -0
  67. css/images/date.png +0 -0
  68. css/images/day1.png +0 -0
  69. css/images/day2.png +0 -0
  70. css/images/day3.png +0 -0
  71. css/images/day4.png +0 -0
  72. css/images/day5.png +0 -0
  73. css/images/day6.png +0 -0
  74. css/images/day7.png +0 -0
  75. css/images/edit_icon.png +0 -0
  76. css/images/fb_icon.png +0 -0
  77. css/images/featured/arrow3.png +0 -0
  78. css/images/featured/best_magazine.png +0 -0
  79. css/images/featured/business_elite.png +0 -0
  80. css/images/featured/business_world.png +0 -0
  81. css/images/featured/catalog.png +0 -0
  82. css/images/featured/contact.builder.png +0 -0
  83. css/images/featured/contact.maker.png +0 -0
  84. css/images/featured/contacts.png +0 -0
  85. css/images/featured/download_plugins.png +0 -0
  86. css/images/featured/download_themes.png +0 -0
  87. css/images/featured/exclusive.png +0 -0
  88. css/images/featured/expert.png +0 -0
  89. css/images/featured/facebook.png +0 -0
  90. css/images/featured/faq.png +0 -0
  91. css/images/featured/flash.calendar.png +0 -0
  92. css/images/featured/folder.menu.png +0 -0
  93. css/images/featured/form.png +0 -0
  94. css/images/featured/magazine.png +0 -0
  95. css/images/featured/minus.png +0 -0
  96. css/images/featured/mottomag.png +0 -0
  97. css/images/featured/photo-gallery.png +0 -0
  98. css/images/featured/player.png +0 -0
  99. css/images/featured/plus.png +0 -0
  100. css/images/featured/random.post.png +0 -0
  101. css/images/featured/sauron.png +0 -0
  102. css/images/featured/slider.png +0 -0
  103. css/images/featured/twittertools.png +0 -0
  104. css/images/featured/wedding.png +0 -0
  105. css/images/featured/wedding_style.png +0 -0
  106. css/images/featured/zoom.png +0 -0
  107. css/images/gplus_icon.png +0 -0
  108. css/images/loading.gif +0 -0
  109. css/images/loc.png +0 -0
  110. css/images/org.png +0 -0
  111. css/images/search.png +0 -0
  112. css/images/select.png +0 -0
  113. css/images/select_left.png +0 -0
  114. css/images/time.png +0 -0
  115. css/images/twitter_icon.png +0 -0
  116. css/images/url-icon.png +0 -0
  117. css/style.css +2385 -0
  118. ecwd.php +28 -0
  119. ecwd_admin_class.php +308 -0
  120. ecwd_class.php +151 -0
  121. includes/calendar-class.php +1510 -0
  122. includes/ecwd-cpt-class.php +1276 -0
  123. includes/ecwd-display-class.php +884 -0
  124. includes/ecwd-event-class.php +231 -0
  125. includes/ecwd-functions.php +458 -0
  126. includes/ecwd-shortcodes.php +32 -0
  127. includes/register-settings.php +356 -0
  128. js/admin/admin.js +524 -0
  129. js/admin/datepicker.js +50 -0
  130. js/admin/editor-buttons.js +389 -0
  131. js/admin/evol.colorpicker.js +506 -0
  132. js/admin/evol.colorpicker.min.js +6 -0
  133. js/admin/jquery.datetimepicker.js +1851 -0
  134. js/gmap/demo/address.html +67 -0
  135. js/gmap/demo/autofit.html +36 -0
  136. js/gmap/demo/circle.html +105 -0
  137. js/gmap/demo/clear.html +217 -0
  138. js/gmap/demo/cluster - add real marker.html +124 -0
  139. js/gmap/demo/cluster - filter.html +154 -0
  140. js/gmap/demo/cluster - remove a marker.html +112 -0
  141. js/gmap/demo/cluster.html +167 -0
  142. js/gmap/demo/control-advanced.html +196 -0
  143. js/gmap/demo/control.html +79 -0
  144. js/gmap/demo/debug.html +35 -0
  145. js/gmap/demo/distance.html +54 -0
  146. js/gmap/demo/elevation-path.html +86 -0
  147. js/gmap/demo/elevation.html +137 -0
  148. js/gmap/demo/external/markerwithlabel.js +409 -0
  149. js/gmap/demo/geoloc.html +48 -0
  150. js/gmap/demo/groundoverlay.html +60 -0
  151. js/gmap/demo/ids.html +107 -0
  152. js/gmap/demo/imagemaptype.html +61 -0
  153. js/gmap/demo/images/m1.png +0 -0
  154. js/gmap/demo/images/m2.png +0 -0
  155. js/gmap/demo/images/m3.png +0 -0
  156. js/gmap/demo/infowindow.html +53 -0
  157. js/gmap/demo/kml - tag.html +73 -0
  158. js/gmap/demo/kml.html +59 -0
  159. js/gmap/demo/latlng.html +65 -0
  160. js/gmap/demo/map-options.html +44 -0
  161. js/gmap/demo/marker.html +33 -0
  162. js/gmap/demo/markerWithLabel.html +61 -0
  163. js/gmap/demo/markers.html +70 -0
  164. js/gmap/demo/maxzoom.html +49 -0
  165. js/gmap/demo/overlay.html +102 -0
  166. js/gmap/demo/panel.html +84 -0
  167. js/gmap/demo/polygon.html +72 -0
  168. js/gmap/demo/polyline.html +48 -0
  169. js/gmap/demo/rectangle.html +103 -0
  170. js/gmap/demo/rightclick.html +72 -0
  171. js/gmap/demo/selector.html +73 -0
  172. js/gmap/demo/streetviewpanorama.html +125 -0
  173. js/gmap/demo/tags.html +126 -0
  174. js/gmap/demo/trigger.html +39 -0
  175. js/gmap/examples/autocomplete/autocomplete.html +81 -0
  176. js/gmap/examples/autocomplete/jquery-autocomplete.css +38 -0
  177. js/gmap/examples/autocomplete/jquery-autocomplete.js +636 -0
  178. js/gmap/examples/cluster calculator/clusters.html +19 -0
assets/Insert-icon.png ADDED
Binary file
assets/add_addevent.jpg ADDED
Binary file
assets/add_cdown.jpg ADDED
Binary file
assets/add_fb.jpg ADDED
Binary file
assets/add_filters.png ADDED
Binary file
assets/add_gcal.jpg ADDED
Binary file
assets/add_ical.jpg ADDED
Binary file
assets/calendar_icon_90x90.png ADDED
Binary file
assets/event-icon.png ADDED
Binary file
assets/loading.gif ADDED
Binary file
assets/organizer-icon.png ADDED
Binary file
assets/pro.png ADDED
Binary file
assets/spider-calendar-shortcode-icon.png ADDED
Binary file
assets/spider_calendar-20.png ADDED
Binary file
assets/themes-icon.png ADDED
Binary file
assets/themes.jpg ADDED
Binary file
assets/url-icon.png ADDED
Binary file
assets/venue-icon.png ADDED
Binary file
css/admin/admin.css ADDED
@@ -0,0 +1,555 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Admin CSS file
3
+ */
4
+ #ecwd-tabs > div{
5
+ display:none;
6
+ }
7
+ #ecwd-settings{
8
+ background: #ffffff;
9
+ padding: 15px;
10
+ }
11
+ .ecwd-meta-control {
12
+ margin-bottom: 15px;
13
+ }
14
+
15
+ .ecwd-meta-control label {
16
+ display: block;
17
+ font-weight: bold;
18
+ }
19
+
20
+ #ecwd-admin-promo {
21
+ background-color: #fcf8e3;
22
+ border: 1px solid #faebbe;
23
+ color: #8a6d3b;
24
+ padding: 15px;
25
+ }
26
+
27
+ #ecwd_event_meta .inside code {
28
+ word-break: break-all;
29
+ }
30
+
31
+ .border{
32
+ border: 1px solid red;
33
+ }
34
+
35
+ /*Spider events*/
36
+ .ecwd_repeat_type_list{
37
+ float: left;
38
+ width: 30%;
39
+ }
40
+ .ecwd_repeat_advanced{
41
+ float: left;
42
+ width: 68%;
43
+ }
44
+ #ecwd_choose_day_container div label{
45
+ width: 120px;
46
+ display: inline-block;
47
+ }
48
+ #ecwd_choose_day_container div label:after{
49
+ clear: both;
50
+ }
51
+ #ecwd_choose_day_container div label input{
52
+ float: right;
53
+ margin: 1px;
54
+ }
55
+ .ecwd_icon{
56
+ max-width: 64px;
57
+ max-height: 64px;
58
+ }
59
+
60
+ .ecwd-modal .ecwd-calendar-event,
61
+ .ecwd-events .ecwd-calendar-event{
62
+ width:47%;
63
+ display: inline-block;
64
+ margin:0 20px 10px 0;
65
+ }
66
+
67
+ .ecwd-events .ecwd-calendar-event{
68
+ width:42%;
69
+ }
70
+ .ecwd-modal .ecwd-calendar-event span:first-child,
71
+ .ecwd-events .ecwd-calendar-event span:first-child{
72
+ border: 1px solid #C8C8C8;
73
+ display: inline-block;
74
+ width: 89%;
75
+ box-sizing: border-box;
76
+ padding: 2px 2px 2px 7px;
77
+ color: #7C7C7C;
78
+ white-space: nowrap;
79
+ text-overflow: ellipsis;
80
+ overflow: hidden;
81
+ float: left;
82
+ }
83
+
84
+ .ecwd-events .ecwd-calendar-event span:first-child{
85
+ width: 81%;
86
+ }
87
+ .ecwd-modal .ecwd-calendar-event:nth-child(even){
88
+ margin-right:0;
89
+ }
90
+
91
+ .ecwd-events .ecwd-calendar-event:after{
92
+ clear: both;
93
+ }
94
+
95
+ .ecwd-modal .ecwd-calendar-event .ecwd-calendar-event-add,
96
+ .ecwd-events .ecwd-calendar-event-delete{
97
+ display: inline-block;
98
+ text-align: center;
99
+ float: left;
100
+ vertical-align: middle;
101
+ border-radius: 2px;
102
+ height: 24px;
103
+ width: 24px;
104
+ color: #FFFFff;
105
+ background-color: #0074A2;
106
+ cursor: pointer;
107
+ font-size: 19px;
108
+ }
109
+
110
+
111
+ .ecwd-events .ecwd-calendar-event-edit{
112
+
113
+ }
114
+ .ecwd-events .ecwd-calendar-event-edit a{
115
+ font-size: 0;
116
+ display: inline-block;
117
+ float: left;
118
+ margin: 0 1px;
119
+ border-radius: 2px;
120
+ height: 24px;
121
+ width: 24px;
122
+ background: url("../images/edit_icon.png") no-repeat center center;
123
+ }
124
+ .ecwd-events .ecwd-calendar-event-delete{
125
+ line-height: 20px;
126
+ }
127
+
128
+ .ecwd-calendar-event-add {
129
+ cursor: pointer;
130
+ }
131
+
132
+ .ecwd-modal {
133
+ position: fixed;
134
+ font-family: Arial, Helvetica, sans-serif;
135
+ overflow-y: scroll;
136
+ top: 0;
137
+ right: 0;
138
+ bottom: 0;
139
+ left: 0;
140
+ background: rgba(0, 0, 0, 0.8);
141
+ z-index: 99999;
142
+ opacity:0;
143
+ -webkit-transition: opacity 400ms ease-in;
144
+ -moz-transition: opacity 400ms ease-in;
145
+ transition: opacity 400ms ease-in;
146
+ pointer-events: none;
147
+ }
148
+ .ecwd-modal:target {
149
+ opacity:1;
150
+ pointer-events: auto;
151
+ }
152
+ .ecwd-modal > div.ecwd-excluded-events {
153
+ width: 500px !important;
154
+ position: relative;
155
+ margin: 10% auto;
156
+ padding: 0px 20px 16px 20px !important;
157
+ border-radius: 1px;
158
+ background: #fff;
159
+ }
160
+ .ecwd-modal > div.ecwd-preview {
161
+ position: relative;
162
+ margin: 5%;
163
+ padding: 5px 20px 13px 20px;
164
+ border-radius: 1px;
165
+ background: #fff;
166
+ min-width:600px;
167
+ }
168
+
169
+ .ecwd-close {
170
+ background: url(../images/close.png);
171
+ display: inline-block;
172
+ position: absolute;
173
+ right: 0px;
174
+ height: 29px;
175
+ top: 0px;
176
+ width: 29px;
177
+ text-decoration: none;
178
+ z-index: 4;
179
+ }
180
+
181
+ .ecwd-excluded-events h2{
182
+ margin: 15px 0;
183
+ padding-bottom: 15px !important;
184
+ border-bottom: 1px solid #B2B2B2;
185
+ }
186
+
187
+ .wd_stay_active {
188
+ background: none repeat scroll 0% 0% green !important;
189
+ box-shadow: 0px 1px 3px 0px #178FE5 inset !important;
190
+ color: #FFF !important;
191
+ font-weight: 700 !important;
192
+ }
193
+ #ecwd_event_pickup_date, #ecwd_event_pickup_time {
194
+ height: 27px;
195
+ border: 1px solid #A1A1A1;
196
+ border-radius: 0;
197
+ font-size: 13px;
198
+ color: #444444;
199
+ padding: 0 5px 0 27px;
200
+ margin-top: 1px;
201
+ }
202
+
203
+ #ecwd_event_pickup_date {
204
+ background:url(../images/admin_day.jpg) no-repeat left;
205
+ margin: 1px 8px;
206
+ }
207
+ #ecwd_event_pickup_time {
208
+ background:url(../images/admin_time.jpg) no-repeat left;
209
+ }
210
+
211
+ /*TABS*/
212
+ #ecwd-tabs, #ecwd-tabs div{
213
+ background: none #ffffff;
214
+ border: 0;
215
+ }
216
+ .ecwd-tabs{
217
+ list-style-type: none;
218
+ }
219
+ .ecwd-tabs li,
220
+ #ecwd-settings-content .nav-tab-wrapper a{
221
+ display: inline-block;
222
+ border: 1px solid #A5A5A5;
223
+ }
224
+ .ecwd-tabs li a,
225
+ #ecwd-settings-content .nav-tab-wrapper a{
226
+ display: table-cell;
227
+ text-align: center;
228
+ width: 100px;
229
+ height: 30px;
230
+ vertical-align: middle;
231
+ text-decoration:none;
232
+ color:#5E5E5E;
233
+ font-size: 16px;
234
+ }
235
+
236
+ #ecwd-settings-content .nav-tab-wrapper a{
237
+ background: #ffffff;
238
+ height: 21px;
239
+ margin-right: 4px;
240
+ display: inline-block;
241
+ font-weight: normal;
242
+ padding-top: 2px;
243
+ }
244
+
245
+ .ecwd-tabs li a:focus{
246
+ box-shadow:none;
247
+ }
248
+ .ecwd-tabs li:hover a,.ecwd-tabs li.ui-state-active a,
249
+ #ecwd-settings-content .nav-tab-wrapper a:hover,#ecwd-settings-content .nav-tab-wrapper a.nav-tab-active{
250
+ color:#ffffff;
251
+ background: #0074A2;
252
+ }
253
+
254
+ #ecwd-settings-content .nav-tab-wrapper {
255
+ border-bottom:0;
256
+ padding-left: 0;
257
+ }
258
+
259
+ .ecwd-tabs li:hover,.ecwd-tabs li.ui-state-active,
260
+ #ecwd-settings-content .nav-tab-wrapper a.nav-tab-active{
261
+ border: 1px solid transparent;
262
+ }
263
+
264
+ .ecwd-tab-inner{
265
+ padding: 15px;
266
+ }
267
+
268
+ /*Preview */
269
+ .ui-selecting { background: #FECA40 !important; }
270
+ .ui-selected { background: #F39814 !important;}
271
+
272
+ .event_cal_add {
273
+ width: 350px;
274
+ height: 130px;
275
+ padding: 40px 20px 0;
276
+ border: 1px solid #cccccc;
277
+ position: absolute;
278
+ z-index: 9999;
279
+ background: #ffffff;
280
+ }
281
+ .event_cal_add .close{
282
+ display: block;
283
+ line-height: 18px;
284
+ width: 20px;
285
+ font-size: 8pt;
286
+ margin-top: 1px;
287
+ margin-right: 1px;
288
+ position: absolute;
289
+ font-family: tahoma;
290
+ text-align: center;
291
+ top: 0;
292
+ right: 0;
293
+ cursor: pointer;
294
+ background-size: contain;
295
+ height: 20px;
296
+ }
297
+
298
+ .event_cal_add .add_event_to_cal{
299
+ display: block;
300
+ cursor: pointer;
301
+ padding-bottom: 10px;
302
+ margin: 25px 0 0 0;
303
+ width: 78px;
304
+ text-align: center;
305
+ line-height: 30px;
306
+ height: 20px;
307
+ background: #e3e3e3;
308
+ border: 1px solid #eeeeee;
309
+ }
310
+ .event_cal_add .ecwd_notification{
311
+ display: block;
312
+ height: 20px;
313
+ margin: 25px 0 0 0;
314
+ }
315
+ span.ecwd_error{
316
+ color: #bc0b0b;
317
+ display: block;
318
+ padding-left: 36px;
319
+ height: 20px;
320
+
321
+ }
322
+ #ecwd_calendar_meta h3.hndle{
323
+ color:#0074A2;
324
+ text-transform:uppercase;
325
+ font-size: 17px;
326
+ }
327
+ #ecwd-settings a.button{
328
+ border: 1px solid #A1A1A1;
329
+ padding: 0px 15px;
330
+ box-shadow: none;
331
+ border-radius: 0;
332
+ color: #000;
333
+ font-weight: bold;
334
+ }
335
+ #ecwd-settings a.button:hover{
336
+ border: 1px solid transparent;
337
+ color: #fff;
338
+ background: #0074A2;
339
+ }
340
+ #ecwd-settings input[type="text"],
341
+ #ecwd-settings select,
342
+ #ecwd_theme_meta input[type="text"]:not(#ecwd_event_location),
343
+ #ecwd_calendar_meta input[type="text"]:not(.ecwd-search),
344
+ #ecwd_calendar_meta select,
345
+ #ecwd_event_meta input[type="text"]:not(#ecwd_event_date_from):not(#ecwd_event_date_to):not(#ecwd_event_location),
346
+ #ecwd_event_meta select,
347
+ #ecwd_event_meta #ecwd_event_year_month,
348
+ #ecwd-settings .form-field input, #ecwd-settings input.regular-text{
349
+ width:250px;
350
+ border: 1px solid #A1A1A1;
351
+ }
352
+ #ecwd_event_date_from,#ecwd_event_date_to{
353
+ border: 1px solid #A1A1A1;
354
+ }
355
+
356
+ #ecwd-settings input[type="checkbox"],
357
+ #ecwd_event_meta input[type="checkbox"],
358
+ #ecwd-settings input[type="radio"]{
359
+ position: absolute;
360
+ z-index: -1;
361
+ margin: 0 !important;
362
+ width: 5px !important;
363
+ height: 5px !important;
364
+ min-width: 5px !important;
365
+ }
366
+
367
+
368
+ #ecwd-settings .checkbox-div,
369
+ #ecwd_event_meta .checkbox-div{
370
+ width: 13px;
371
+ height: 12px;
372
+ background: #FDFDFD;
373
+ border: 1px solid #CBCBCB;
374
+ border-radius: 0px;
375
+ position: relative;
376
+ display: inline-block;
377
+ top: 2px;
378
+ margin-right: 7px;
379
+ margin-left: 15px;
380
+ box-sizing: content-box;
381
+ -webkit-box-sizing: content-box;
382
+ -moz-box-sizing: content-box;
383
+ }
384
+ #ecwd-settings .checkbox-div:first-child{
385
+ margin-left: 0px;
386
+ }
387
+
388
+ #ecwd-settings .checkbox-div input[type="checkbox"]:checked + label ,
389
+ #ecwd_event_meta .checkbox-div input[type="checkbox"]:checked + label ,
390
+ #ecwd-settings .checkbox-div input[type="radio"]:checked + label {
391
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
392
+ filter: alpha(opacity=100);
393
+ opacity: 1;
394
+ background: #CBCBCB;
395
+ position: absolute;
396
+ top: 2px;
397
+ }
398
+
399
+ #ecwd-settings input[type="submit"] {
400
+ background: #0074A2;
401
+ color: #ffffff;
402
+ font-weight: bold;
403
+ font-size: 15px;
404
+ border: 0;
405
+ border-radius: 0;
406
+ padding: 5px 25px;
407
+ height: auto;
408
+ }
409
+
410
+
411
+ #ecwd_event_meta .checkbox-div label,
412
+ #ecwd-settings .checkbox-div label {
413
+ cursor: pointer;
414
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
415
+ filter: alpha(opacity=0);
416
+ opacity: 0;
417
+ content: "";
418
+ position: absolute;
419
+ width: 9px;
420
+ height: 8px;
421
+ background: #CBCBCB;
422
+ border-radius: 0px;
423
+ top: 2px;
424
+ left: 2px;
425
+ }
426
+
427
+ #ecwd_calendar_meta .add_event_plus{
428
+ display:inline-block;
429
+ width:18px;
430
+ height:18px;
431
+ border-radius:100%;
432
+ background:#0074A2;
433
+ color:#ffffff;
434
+ text-shadow:1px -1px 2px #005C82;
435
+ margin-left:8px;
436
+ text-align:center;
437
+ font-weight: bold;
438
+ font-size: 15px;
439
+ line-height: 17px;
440
+ }
441
+ #ecwd_calendar_meta .ecwd-calendar-event-add a:focus{
442
+ box-shadow:none;
443
+ }
444
+ #ecwd_event_meta .repeat_format{
445
+ width: 90px;
446
+ display: inline-block;
447
+ }
448
+ #ecwd_event_meta .repeat_format_monthly{
449
+ width: 66px;
450
+ display: inline-block;
451
+ }
452
+ #ecwd_event_meta #ecwd_event_year_month{
453
+ margin: 10px 0 0 95px;
454
+ }
455
+ #ecwd_event_meta #ecwd_choose_day_container{
456
+ margin-top: 10px;
457
+ }
458
+ #ecwd_event_meta #ecwd_choose_day_container .checkbox-div{
459
+ margin-left: 0px;
460
+ }
461
+ #ecwd_event_meta .ecwd_repeat_advanced input[type="text"],
462
+ #ecwd_event_meta .ecwd_repeat_advanced select{
463
+ width: auto;
464
+ }
465
+
466
+ #ecwd_event_meta #ecwd_monthly,
467
+ #ecwd_event_meta .ecwd_event_repeat_event_div{
468
+ margin:10px 0;
469
+ }
470
+
471
+ #ecwd_event_meta .select_to_enable_disable{
472
+ width:122px !important;
473
+ }
474
+
475
+ #ecwd_theme_meta label{
476
+ display:inline-block;
477
+ width:290px;
478
+ font-weight: normal;
479
+ font-size: 15px;
480
+ }
481
+
482
+ #ecwd_theme_meta .ecwd-tab-inner > div{
483
+ margin:20px 0;
484
+ }
485
+ #ecwd_theme_meta .ecwd-tab-inner > div:first-child{
486
+ margin-top:0;
487
+ }
488
+ #ecwd_theme_meta .with_ecwd_color:after,
489
+ #ecwd-settings-content:after{
490
+ content:'';
491
+ display:table;
492
+ clear:both;
493
+ }
494
+ #ecwd_theme_meta .with_ecwd_color label{
495
+ float: left;
496
+ margin-top: 5px;
497
+ width: 293px;
498
+ }
499
+ #ecwd_theme_meta .with_ecwd_color > div{
500
+ float: left;
501
+ }
502
+ .ecwd-import-settings form{
503
+ float:left;
504
+ width:45%;
505
+ }
506
+ .ecwd-import-settings input[type=file]{
507
+ margin: 10px 0;
508
+ }
509
+ .ecwd-import-settings .ecwd-calendar-event-import{
510
+ font-size: 15px;
511
+ }
512
+
513
+ #ecwd-settings-content #add_on_title{
514
+ margin-bottom:20px;
515
+ }
516
+ #ecwd-settings-content .ecwd-add-on a{
517
+ text-decoration: none;
518
+ }
519
+ #ecwd-settings-content .ecwd-add-on h2{
520
+ color: #229DBF;
521
+ font-size: 17px;
522
+ border-bottom: 1px solid #898989;
523
+ width: 92%;
524
+ margin-bottom: 17px;
525
+ padding: 5px 0 7px 0;
526
+ }
527
+ #ecwd-settings-content .ecwd-addon-descr{
528
+ font-size: 15px;
529
+ line-height: 20px;
530
+ width: 90%;
531
+ color: #303030;
532
+ }
533
+ #ecwd-settings-content .ecwd-addon-descr a{
534
+ display: inline-block;
535
+ margin-top: 15px;
536
+ background: #229DBF url(../images/Add_Ons.jpg) no-repeat 6px center;
537
+ color: #D2EBF0;
538
+ padding: 9px 12px 9px 45px;
539
+ font-size: 17px;
540
+ border: 1px solid #93BBC7;
541
+ }
542
+ #ecwd-settings-content .ecwd-addon-descr span{
543
+ padding: 5px 0 5px 10px;
544
+ border-left: 1px solid #93CEE0;
545
+ }
546
+ #ecwd-settings-content a:focus{
547
+ outline:none;
548
+ box-shadow:none;
549
+ }
550
+ #ecwd-settings-content .ecwd-add-on{
551
+ width:310px;
552
+ float:left;
553
+ margin-right:40px;
554
+ margin-bottom:35px;
555
+ }
css/admin/evol.colorpicker.css ADDED
@@ -0,0 +1,172 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* evol.colorpicker = ColorPicker widget for jQuery UI */
2
+ /* (c) 2014 Olivier Giulieri */
3
+ /* https://github.com/evoluteur/colorpicker */
4
+
5
+ .ui-widget-content {
6
+ border: 1px solid #dddddd;
7
+ background: #eeeeee;
8
+ color: #333333;
9
+ }
10
+ .evo-pop {
11
+ z-index: 10000;
12
+ width: 204px;
13
+ padding: 3px 3px 0;
14
+ }
15
+ .evo-pop-ie {
16
+ z-index: 10000;
17
+ width: 212px;
18
+ padding: 3px;
19
+ }
20
+ .evo-palette td {
21
+ font-size: 1px;
22
+ border: solid 1px #c0c0c0;
23
+ padding: 7px;
24
+ cursor: pointer;
25
+ }
26
+ .evo-palette tr.top > td {
27
+ border-bottom: 0;
28
+ }
29
+ .evo-palette tr.in > td {
30
+ border-top: 0;
31
+ border-bottom: 0;
32
+ }
33
+ .evo-palette tr.bottom > td {
34
+ border-top: 0;
35
+ }
36
+ .evo-palette div.sep {
37
+ height: 3px;
38
+ }
39
+ .evo-palette,
40
+ .evo-palette-ie {
41
+ border-collapse: separate;
42
+ border-spacing: 4px 0px;
43
+ *border-collapse: expression('separate', cellSpacing='2px');
44
+ }
45
+ .evo-palette th,
46
+ .evo-palette-ie th {
47
+ border: 0;
48
+ padding: 5px 3px;
49
+ text-align: left;
50
+ font-weight: normal;
51
+ background: transparent !important;
52
+ }
53
+ .evo-palette-ie td {
54
+ font-size: 1px;
55
+ border: solid 1px #c0c0c0;
56
+ padding: 7px;
57
+ cursor: pointer;
58
+ }
59
+ .evo-palette2,
60
+ .evo-palette2-ie {
61
+ margin: auto;
62
+ border-collapse: collapse;
63
+ }
64
+ .evo-palette2 td,
65
+ .evo-palette2-ie td {
66
+ font-size: 1px;
67
+ cursor: pointer;
68
+ }
69
+ .evo-palette2 td {
70
+ padding: 6px 7px;
71
+ }
72
+ .evo-palette2-ie td {
73
+ padding: 5px;
74
+ }
75
+ .evo-palcenter {
76
+ padding: 5px;
77
+ text-align: center;
78
+ }
79
+ .evo-colorind,
80
+ .evo-colorind-ie,
81
+ .evo-colorind-ff {
82
+ /* border: solid 1px #c3c3c3;
83
+ width: 18px;
84
+ height: 18px;
85
+ float: right;*/
86
+ }
87
+ .evo-colorind-ie {
88
+ position: relative;
89
+ top: -23px;
90
+ }
91
+ .evo-colorbox-ie {
92
+ font-size: 8px;
93
+ padding: 3px 9px !important;
94
+ }
95
+ /*
96
+ .evo-colortxt-ie {
97
+ position:relative;
98
+ top:-6px;
99
+ }*/
100
+ .evo-pop:after,
101
+ .evo-pop-ie:after,
102
+ .evo-colorind:after,
103
+ .evo-colorind-ie:after,
104
+ .evo-colorind-ff:after,
105
+ .evo-color span:after,
106
+ .evo-cHist:after {
107
+ content: ".";
108
+ display: block;
109
+ height: 0;
110
+ clear: both;
111
+ visibility: hidden;
112
+ font-size: 0;
113
+ }
114
+ .evo-color {
115
+ width: 94px;
116
+ padding: 1px 3px 0 4px;
117
+ }
118
+ .evo-color div {
119
+ border: solid 1px #808080;
120
+ border-right: solid 1px #c0c0c0;
121
+ border-bottom: solid 1px #c0c0c0;
122
+ padding: 3px;
123
+ margin-bottom: 5px;
124
+ width: 10px;
125
+ height: 10px;
126
+ float: left;
127
+ }
128
+ .evo-color span {
129
+ font-size: 15px;
130
+ margin: 1px 0 4px 3px;
131
+ float: left;
132
+ }
133
+ .evo-sep {
134
+ height: 10px;
135
+ font-size: 0;
136
+ }
137
+ .evo-more {
138
+ padding: 4px 5px 4px;
139
+ font-size: smaller;
140
+ }
141
+ .evo-cHist {
142
+ padding: 3px;
143
+ }
144
+ .evo-cHist div {
145
+ cursor: pointer;
146
+ border: solid 1px #c0c0c0;
147
+ padding: 3px;
148
+ margin: 5px;
149
+ width: 10px;
150
+ height: 10px;
151
+ float: left;
152
+ }
153
+ .evo-transparent {
154
+ background-image: repeating-linear-gradient(135deg, #000000, #000000 1px, #ffffff 1px, #ffffff 3px);
155
+ }
156
+ .evo-tr-box {
157
+ cursor: pointer;
158
+ border: solid 1px #c0c0c0;
159
+ padding: 3px;
160
+ width: 7px;
161
+ height: 7px;
162
+ float: right;
163
+ position: relative;
164
+ right: -3px;
165
+ top: 2px;
166
+ }
167
+ a.evo-hist {
168
+ margin-left: 6px;
169
+ }
170
+ .evo-pointer {
171
+ cursor: pointer;
172
+ }
css/admin/featured_plugins.css ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ #main_featured_plugins_page #featured-plugins-list {
3
+ position:relative;
4
+ margin:0px auto;
5
+ width: 95.4%;
6
+ height:auto;
7
+ display:table;
8
+ list-style:none;
9
+ margin-left: 38px;
10
+ }
11
+
12
+ #main_featured_plugins_page #featured-plugins-list li {
13
+ float: left;
14
+ width: 17%;
15
+ margin: 20px 0px 0px 25px;
16
+ background: #FFFFFF;
17
+ border: 1px solid #B8B8B8;
18
+ height: 354px;
19
+ }
20
+
21
+ #main_featured_plugins_page #featured-plugins-list li .product {
22
+ position:relative;
23
+ height:113px;
24
+ background-color: #F1F1F1 !important;
25
+ background-position-x: 50% !important;
26
+ margin: 7px;
27
+ border: 1px solid #DEDCDC;
28
+ border-radius: 3px;
29
+ }
30
+
31
+ #main_featured_plugins_page #featured-plugins-list li .title {
32
+ width: 90%;
33
+ text-align: center;
34
+ border-bottom: 1px solid #cacaca;
35
+ margin: 0 auto;
36
+ }
37
+
38
+ #main_featured_plugins_page #featured-plugins-list li.form-maker .product {background:url(../images/featured/form.png) left center no-repeat;}
39
+ #main_featured_plugins_page #featured-plugins-list li.catalog .product {background:url(../images/featured/catalog.png) left center no-repeat;}
40
+ #main_featured_plugins_page #featured-plugins-list li.contact-maker .product {background:url(../images/featured/contact.maker.png) left center no-repeat; background-size: 61%;}
41
+ #main_featured_plugins_page #featured-plugins-list li.contacts .product {background:url(../images/featured/contacts.png) left center no-repeat;}
42
+ #main_featured_plugins_page #featured-plugins-list li.facebook .product {background:url(../images/featured/facebook.png) left center no-repeat;}
43
+ #main_featured_plugins_page #featured-plugins-list li.faq .product {background:url(../images/featured/faq.png) left center no-repeat;}
44
+ #main_featured_plugins_page #featured-plugins-list li.flash-calendar .product {background:url(../images/featured/flash.calendar.png) left center no-repeat;}
45
+ #main_featured_plugins_page #featured-plugins-list li.player .product {background:url(../images/featured/player.png) left center no-repeat; }
46
+ #main_featured_plugins_page #featured-plugins-list li.spider-calendar .product {background:url(../images/featured/spider.calendar.png) left center no-repeat;}
47
+
48
+ #main_featured_plugins_page #featured-plugins-list li.contact_form_bulder .product {background:url(../images/featured/contact.builder.png) left center no-repeat; background-size: 80%;}
49
+ #main_featured_plugins_page #featured-plugins-list li.random_post .product {background:url(../images/featured/random.post.png) left center no-repeat;}
50
+ #main_featured_plugins_page #featured-plugins-list li.slider_wd .product {background:url(../images/featured/slider.png) left center no-repeat; background-size: 50%;}
51
+ #main_featured_plugins_page #featured-plugins-list li.folder_menu .product {background:url(../images/featured/folder.menu.png) left center no-repeat;}
52
+
53
+ #main_featured_plugins_page #featured-plugins-list li.zoom .product {background:url(../images/featured/zoom.png) left center no-repeat; background-size: 85%;}
54
+ #main_featured_plugins_page #featured-plugins-list li.photo-gallery .product {background:url(../images/featured/photo-gallery.png) left center no-repeat #CACACA;
55
+ border-top-left-radius: 5px;
56
+ border-bottom-left-radius: 5px;
57
+ background-position-x: 7px;
58
+ background-size: 95px;
59
+ }
60
+ #main_featured_plugins_page #featured-plugins-list li.twitter-widget .product {background:url(../images/featured/twittertools.png) left center no-repeat #CACACA;
61
+ background-size: 85px;
62
+ background-position-x: 12px;
63
+ border-top-left-radius: 5px;
64
+ border-bottom-left-radius: 5px;}
65
+
66
+ #main_featured_plugins_page #featured-plugins-list li .title .heading {
67
+ display:block;
68
+ position:relative;
69
+ font-size: 15px;
70
+ color: #23282C;
71
+ margin: 13px 0px 13px 0px;
72
+ }
73
+
74
+ #main_featured_plugins_page #featured-plugins-list li .title p {
75
+ font-size:14px;
76
+ color:#444;
77
+ margin-left:20px;
78
+ }
79
+
80
+ #main_featured_plugins_page #featured-plugins-list li .description {
81
+ height: 127px;
82
+ width: 90%;
83
+ margin: 0 auto;
84
+ }
85
+
86
+ #main_featured_plugins_page #featured-plugins-list li .description p {
87
+ text-align: center;
88
+ width: 100%;
89
+ }
90
+
91
+ #featured-plugins-list li a.download {
92
+ display:block;
93
+ height:32px;
94
+ text-indent:-9999px;
95
+ background: url(../images/featured/download_plugins.png) center 17px no-repeat;
96
+ border-top: 1px solid #CACACA;
97
+ outline: none;
98
+ width: 90%;
99
+ margin: 0 auto;
100
+ }
css/admin/featured_themes.css ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #main_featured_themes_page #featured-themes-list {
2
+ position:relative;
3
+ margin:0px auto;
4
+ width: 95.4%;
5
+ height:auto;
6
+ display:table;
7
+ list-style:none;
8
+ margin-left: 38px;
9
+ }
10
+
11
+ #main_featured_themes_page #featured-themes-list li {
12
+ float: left;
13
+ width: 17%;
14
+ margin: 20px 0px 0px 25px;
15
+ background: #FFFFFF;
16
+ border: 1px solid #B8B8B8;
17
+ height: 405px;
18
+ }
19
+
20
+ #main_featured_themes_page #featured-themes-list li .product {
21
+ position:relative;
22
+ height: 168px;
23
+ background-color: #F1F1F1 !important;
24
+ background-size: 100% !important;
25
+ }
26
+
27
+ #main_featured_themes_page #featured-themes-list li .title {
28
+ width: 90%;
29
+ text-align: center;
30
+ border-bottom: 1px solid #cacaca;
31
+ margin: 0 auto;
32
+ }
33
+
34
+ #main_featured_themes_page #featured-themes-list li.sauron .product {background:url(../images/featured/sauron.png) left center no-repeat;}
35
+ #main_featured_themes_page #featured-themes-list li.business_elite .product {background:url(../images/featured/business_elite.png) left center no-repeat;}
36
+ #main_featured_themes_page #featured-themes-list li.mottomag .product {background:url(../images/featured/mottomag.png) left center no-repeat; }
37
+ #main_featured_themes_page #featured-themes-list li.business_world .product {background:url(../images/featured/business_world.png) left center no-repeat;}
38
+ #main_featured_themes_page #featured-themes-list li.best_magazine .product {background:url(../images/featured/best_magazine.png) left center no-repeat;}
39
+ #main_featured_themes_page #featured-themes-list li.wedding_style .product {background:url(../images/featured/wedding_style.png) left center no-repeat;}
40
+ #main_featured_themes_page #featured-themes-list li.magazine .product {background:url(../images/featured/magazine.png) left center no-repeat;}
41
+ #main_featured_themes_page #featured-themes-list li.weddings .product {background:url(../images/featured/wedding.png) left center no-repeat;}
42
+ #main_featured_themes_page #featured-themes-list li.exclusive .product {background:url(../images/featured/exclusive.png) left center no-repeat;}
43
+ #main_featured_themes_page #featured-themes-list li.expert .product {background:url(../images/featured/expert.png) left center no-repeat; background-size: 80%;}
44
+
45
+ #main_featured_themes_page #featured-themes-list li .title .heading {
46
+ display:block;
47
+ position:relative;
48
+ font-size: 15px;
49
+ color: #23282C;
50
+ margin: 13px 0px 13px 0px;
51
+ }
52
+
53
+ #main_featured_themes_page #featured-themes-list li .title p {
54
+ font-size:14px;
55
+ color:#444;
56
+ margin-left:20px;
57
+ }
58
+
59
+ #main_featured_themes_page #featured-themes-list li .description {
60
+ height:130px;
61
+ width: 90%;
62
+ margin: 0 auto;
63
+ }
64
+
65
+ #main_featured_themes_page #featured-themes-list li .description p {
66
+ text-align: center;
67
+ width: 100%;
68
+ }
69
+
70
+ #featured-themes-list li a.download {
71
+ display:block;
72
+ height:32px;
73
+ text-indent:-9999px;
74
+ background: url(../images/featured/download_themes.png) center 17px no-repeat;
75
+ border-top: 1px solid #CACACA;
76
+ outline: none;
77
+ width: 90%;
78
+ margin: 0 auto;
79
+ }
css/admin/jquery.datetimepicker.css ADDED
@@ -0,0 +1,418 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .xdsoft_datetimepicker{
2
+ box-shadow: 0 5px 15px -5px rgba(0, 0, 0, 0.506);
3
+ background: #FFFFFF;
4
+ border-bottom: 1px solid #BBBBBB;
5
+ border-left: 1px solid #CCCCCC;
6
+ border-right: 1px solid #CCCCCC;
7
+ border-top: 1px solid #CCCCCC;
8
+ color: #333333;
9
+ font-family: "Helvetica Neue", "Helvetica", "Arial", sans-serif;
10
+ padding: 8px;
11
+ padding-left: 0;
12
+ padding-top: 2px;
13
+ position: absolute;
14
+ z-index: 9999;
15
+ -moz-box-sizing: border-box;
16
+ box-sizing: border-box;
17
+ display:none;
18
+ }
19
+
20
+ .xdsoft_datetimepicker iframe {
21
+ position: absolute;
22
+ left: 0;
23
+ top: 0;
24
+ width: 75px;
25
+ height: 210px;
26
+ background: transparent;
27
+ border:none;
28
+ }
29
+ /*For IE8 or lower*/
30
+ .xdsoft_datetimepicker button {
31
+ border:none !important;
32
+ }
33
+
34
+ .xdsoft_noselect{
35
+ -webkit-touch-callout: none;
36
+ -webkit-user-select: none;
37
+ -khtml-user-select: none;
38
+ -moz-user-select: none;
39
+ -ms-user-select: none;
40
+ -o-user-select: none;
41
+ user-select: none;
42
+ }
43
+ .xdsoft_noselect::selection { background: transparent; }
44
+ .xdsoft_noselect::-moz-selection { background: transparent; }
45
+ .xdsoft_datetimepicker.xdsoft_inline{
46
+ display: inline-block;
47
+ position: static;
48
+ box-shadow: none;
49
+ }
50
+ .xdsoft_datetimepicker *{
51
+ -moz-box-sizing: border-box;
52
+ box-sizing: border-box;
53
+ padding: 0;
54
+ margin: 0;
55
+ }
56
+ .xdsoft_datetimepicker .xdsoft_datepicker, .xdsoft_datetimepicker .xdsoft_timepicker{
57
+ display:none;
58
+ }
59
+ .xdsoft_datetimepicker .xdsoft_datepicker.active, .xdsoft_datetimepicker .xdsoft_timepicker.active{
60
+ display:block;
61
+ }
62
+ .xdsoft_datetimepicker .xdsoft_datepicker{
63
+ width: 224px;
64
+ float:left;
65
+ margin-left:8px;
66
+ }
67
+ .xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_datepicker{
68
+ width: 256px;
69
+ }
70
+ .xdsoft_datetimepicker .xdsoft_timepicker{
71
+ width: 58px;
72
+ float:left;
73
+ text-align:center;
74
+ margin-left:8px;
75
+ margin-top: 0;
76
+ }
77
+ .xdsoft_datetimepicker .xdsoft_datepicker.active+.xdsoft_timepicker{
78
+ margin-top:8px;
79
+ margin-bottom:3px
80
+ }
81
+ .xdsoft_datetimepicker .xdsoft_mounthpicker{
82
+ position: relative;
83
+ text-align: center;
84
+ }
85
+
86
+ .xdsoft_datetimepicker .xdsoft_label i,
87
+ .xdsoft_datetimepicker .xdsoft_prev,
88
+ .xdsoft_datetimepicker .xdsoft_next,
89
+ .xdsoft_datetimepicker .xdsoft_today_button{
90
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Q0NBRjI1NjM0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Q0NBRjI1NjQ0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDQ0FGMjU2MTQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDQ0FGMjU2MjQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PoNEP54AAAIOSURBVHja7Jq9TsMwEMcxrZD4WpBYeKUCe+kTMCACHZh4BFfHO/AAIHZGFhYkBBsSEqxsLCAgXKhbXYOTxh9pfJVP+qutnZ5s/5Lz2Y5I03QhWji2GIcgAokWgfCxNvcOCCGKqiSqhUp0laHOne05vdEyGMfkdxJDVjgwDlEQgYQBgx+ULJaWSXXS6r/ER5FBVR8VfGftTKcITNs+a1XpcFoExREIDF14AVIFxgQUS+h520cdud6wNkC0UBw6BCO/HoCYwBhD8QCkQ/x1mwDyD4plh4D6DDV0TAGyo4HcawLIBBSLDkHeH0Mg2yVP3l4TQMZQDDsEOl/MgHQqhMNuE0D+oBh0CIr8MAKyazBH9WyBuKxDWgbXfjNf32TZ1KWm/Ap1oSk/R53UtQ5xTh3LUlMmT8gt6g51Q9p+SobxgJQ/qmsfZhWywGFSl0yBjCLJCMgXail3b7+rumdVJ2YRss4cN+r6qAHDkPWjPjdJCF4n9RmAD/V9A/Wp4NQassDjwlB6XBiCxcJQWmZZb8THFilfy/lfrTvLghq2TqTHrRMTKNJ0sIhdo15RT+RpyWwFdY96UZ/LdQKBGjcXpcc1AlSFEfLmouD+1knuxBDUVrvOBmoOC/rEcN7OQxKVeJTCiAdUzUJhA2Oez9QTkp72OTVcxDcXY8iKNkxGAJXmJCOQwOa6dhyXsOa6XwEGAKdeb5ET3rQdAAAAAElFTkSuQmCC);
91
+ }
92
+
93
+ .xdsoft_datetimepicker .xdsoft_label i{
94
+ opacity:0.5;
95
+ background-position:-92px -19px;
96
+ display: inline-block;
97
+ width: 9px;
98
+ height: 20px;
99
+ vertical-align: middle;
100
+ }
101
+
102
+ .xdsoft_datetimepicker .xdsoft_prev{
103
+ float: left;
104
+ background-position:-20px 0;
105
+ }
106
+ .xdsoft_datetimepicker .xdsoft_today_button{
107
+ float: left;
108
+ background-position:-70px 0;
109
+ margin-left:5px;
110
+ }
111
+
112
+ .xdsoft_datetimepicker .xdsoft_next{
113
+ float: right;
114
+ background-position: 0 0;
115
+ }
116
+
117
+ .xdsoft_datetimepicker .xdsoft_next,
118
+ .xdsoft_datetimepicker .xdsoft_prev ,
119
+ .xdsoft_datetimepicker .xdsoft_today_button{
120
+ background-color: transparent;
121
+ background-repeat: no-repeat;
122
+ border: 0 none currentColor;
123
+ cursor: pointer;
124
+ display: block;
125
+ height: 30px;
126
+ opacity: 0.5;
127
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
128
+ outline: medium none currentColor;
129
+ overflow: hidden;
130
+ padding: 0;
131
+ position: relative;
132
+ text-indent: 100%;
133
+ white-space: nowrap;
134
+ width: 20px;
135
+ }
136
+ .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev,
137
+ .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_next{
138
+ float:none;
139
+ background-position:-40px -15px;
140
+ height: 15px;
141
+ width: 30px;
142
+ display: block;
143
+ margin-left:14px;
144
+ margin-top:7px;
145
+ }
146
+ .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev{
147
+ background-position:-40px 0;
148
+ margin-bottom:7px;
149
+ margin-top: 0;
150
+ }
151
+ .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box{
152
+ height:151px;
153
+ overflow:hidden;
154
+ border-bottom:1px solid #DDDDDD;
155
+ }
156
+ .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div{
157
+ background: #F5F5F5;
158
+ border-top:1px solid #DDDDDD;
159
+ color: #666666;
160
+ font-size: 12px;
161
+ text-align: center;
162
+ border-collapse:collapse;
163
+ cursor:pointer;
164
+ border-bottom-width: 0;
165
+ height:25px;
166
+ line-height:25px;
167
+ }
168
+
169
+ .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div > div:first-child{
170
+ border-top-width: 0;
171
+ }
172
+ .xdsoft_datetimepicker .xdsoft_today_button:hover,
173
+ .xdsoft_datetimepicker .xdsoft_next:hover,
174
+ .xdsoft_datetimepicker .xdsoft_prev:hover {
175
+ opacity: 1;
176
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
177
+ }
178
+ .xdsoft_datetimepicker .xdsoft_label{
179
+ display: inline;
180
+ position: relative;
181
+ z-index: 9999;
182
+ margin: 0;
183
+ padding: 5px 3px;
184
+ font-size: 14px;
185
+ line-height: 20px;
186
+ font-weight: bold;
187
+ background-color: #fff;
188
+ float:left;
189
+ width:182px;
190
+ text-align:center;
191
+ cursor:pointer;
192
+ }
193
+ .xdsoft_datetimepicker .xdsoft_label:hover>span{
194
+ text-decoration:underline;
195
+ }
196
+ .xdsoft_datetimepicker .xdsoft_label:hover i{
197
+ opacity:1.0;
198
+ }
199
+ .xdsoft_datetimepicker .xdsoft_label > .xdsoft_select{
200
+ border:1px solid #ccc;
201
+ position:absolute;
202
+ right: 0;
203
+ top:30px;
204
+ z-index:101;
205
+ display:none;
206
+ background:#fff;
207
+ max-height:160px;
208
+ overflow-y:hidden;
209
+ }
210
+ .xdsoft_datetimepicker .xdsoft_label > .xdsoft_select.xdsoft_monthselect{right:-7px;}
211
+ .xdsoft_datetimepicker .xdsoft_label > .xdsoft_select.xdsoft_yearselect{right:2px;}
212
+ .xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option:hover{
213
+ color: #fff;
214
+ background: #ff8000;
215
+ }
216
+ .xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option{
217
+ padding:2px 10px 2px 5px;
218
+ text-decoration:none !important;
219
+ }
220
+ .xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option.xdsoft_current{
221
+ background: #33AAFF;
222
+ box-shadow: #178FE5 0 1px 3px 0 inset;
223
+ color:#fff;
224
+ font-weight: 700;
225
+ }
226
+ .xdsoft_datetimepicker .xdsoft_month{
227
+ width:100px;
228
+ text-align:right;
229
+ }
230
+ .xdsoft_datetimepicker .xdsoft_calendar{
231
+ clear:both;
232
+ }
233
+ .xdsoft_datetimepicker .xdsoft_year{
234
+ width: 48px;
235
+ margin-left: 5px;
236
+ }
237
+ .xdsoft_datetimepicker .xdsoft_calendar table{
238
+ border-collapse:collapse;
239
+ width:100%;
240
+
241
+ }
242
+ .xdsoft_datetimepicker .xdsoft_calendar td > div{
243
+ padding-right:5px;
244
+ }
245
+ .xdsoft_datetimepicker .xdsoft_calendar th{
246
+ height: 25px;
247
+ }
248
+ .xdsoft_datetimepicker .xdsoft_calendar td,.xdsoft_datetimepicker .xdsoft_calendar th{
249
+ width:14.2857142%;
250
+ background: #F5F5F5;
251
+ border:1px solid #DDDDDD;
252
+ color: #666666;
253
+ font-size: 12px;
254
+ text-align: right;
255
+ vertical-align: middle;
256
+ padding: 0;
257
+ border-collapse:collapse;
258
+ cursor:pointer;
259
+ height: 25px;
260
+ }
261
+ .xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar td,.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar th{
262
+ width:12.5%;
263
+ }
264
+ .xdsoft_datetimepicker .xdsoft_calendar th{
265
+ background: #F1F1F1;
266
+ }
267
+ .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_today{
268
+ color:#33AAFF;
269
+ }
270
+ .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_default,
271
+ .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current,
272
+ .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_current{
273
+ background: #33AAFF;
274
+ box-shadow: #178FE5 0 1px 3px 0 inset;
275
+ color:#fff;
276
+ font-weight: 700;
277
+ }
278
+ .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month,
279
+ .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled,
280
+ .xdsoft_datetimepicker .xdsoft_time_box >div >div.xdsoft_disabled{
281
+ opacity:0.5;
282
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
283
+ }
284
+ .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month.xdsoft_disabled{
285
+ opacity:0.2;
286
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";
287
+ }
288
+ .xdsoft_datetimepicker .xdsoft_calendar td:hover,
289
+ .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div:hover{
290
+ color: #fff !important;
291
+ background: #ff8000 !important;
292
+ box-shadow: none !important;
293
+ }
294
+ .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled:hover,
295
+ .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_disabled:hover{
296
+ color: inherit !important;
297
+ background: inherit !important;
298
+ box-shadow: inherit !important;
299
+ }
300
+ .xdsoft_datetimepicker .xdsoft_calendar th{
301
+ font-weight: 700;
302
+ text-align: center;
303
+ color: #999;
304
+ cursor:default;
305
+ }
306
+ .xdsoft_datetimepicker .xdsoft_copyright{ color:#ccc !important; font-size:10px;clear:both;float:none;margin-left:8px;}
307
+ .xdsoft_datetimepicker .xdsoft_copyright a{ color:#eee !important;}
308
+ .xdsoft_datetimepicker .xdsoft_copyright a:hover{ color:#aaa !important;}
309
+
310
+
311
+ .xdsoft_time_box{
312
+ position:relative;
313
+ border:1px solid #ccc;
314
+ }
315
+ .xdsoft_scrollbar >.xdsoft_scroller{
316
+ background:#ccc !important;
317
+ height:20px;
318
+ border-radius:3px;
319
+ }
320
+ .xdsoft_scrollbar{
321
+ position:absolute;
322
+ width:7px;
323
+ right: 0;
324
+ top: 0;
325
+ bottom: 0;
326
+ cursor:pointer;
327
+ }
328
+ .xdsoft_scroller_box{
329
+ position:relative;
330
+ }
331
+
332
+
333
+ .xdsoft_datetimepicker.xdsoft_dark{
334
+ box-shadow: 0 5px 15px -5px rgba(255, 255, 255, 0.506);
335
+ background: #000000;
336
+ border-bottom: 1px solid #444444;
337
+ border-left: 1px solid #333333;
338
+ border-right: 1px solid #333333;
339
+ border-top: 1px solid #333333;
340
+ color: #cccccc;
341
+ }
342
+
343
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box{
344
+ border-bottom:1px solid #222222;
345
+ }
346
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div{
347
+ background: #0a0a0a;
348
+ border-top:1px solid #222222;
349
+ color: #999999;
350
+ }
351
+
352
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_label{
353
+ background-color: #000;
354
+ }
355
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select{
356
+ border:1px solid #333;
357
+ background:#000;
358
+ }
359
+
360
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select > div > .xdsoft_option:hover{
361
+ color: #000;
362
+ background: #007fff;
363
+ }
364
+
365
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select > div > .xdsoft_option.xdsoft_current{
366
+ background: #cc5500;
367
+ box-shadow: #b03e00 0 1px 3px 0 inset;
368
+ color:#000;
369
+ }
370
+
371
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_label i,
372
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_prev,
373
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_next,
374
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_today_button{
375
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUExQUUzOTA0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUExQUUzOTE0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQTFBRTM4RTQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQTFBRTM4RjQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pp0VxGEAAAIASURBVHja7JrNSgMxEMebtgh+3MSLr1T1Xn2CHoSKB08+QmR8Bx9A8e7RixdB9CKCoNdexIugxFlJa7rNZneTbLIpM/CnNLsdMvNjM8l0mRCiQ9Ye61IKCAgZAUnH+mU3MMZaHYChBnJUDzWOFZdVfc5+ZFLbrWDeXPwbxIqrLLfaeS0hEBVGIRQCEiZoHQwtlGSByCCdYBl8g8egTTAWoKQMRBRBcZxYlhzhKegqMOageErsCHVkk3hXIFooDgHB1KkHIHVgzKB4ADJQ/A1jAFmAYhkQqA5TOBtocrKrgXwQA8gcFIuAIO8sQSA7hidvPwaQGZSaAYHOUWJABhWWw2EMIH9QagQERU4SArJXo0ZZL18uvaxejXt/Em8xjVBXmvFr1KVm/AJ10tRe2XnraNqaJvKE3KHuUbfK1E+VHB0q40/y3sdQSxY4FHWeKJCunP8UyDdqJZenT3ntVV5jIYCAh20vT7ioP8tpf6E2lfEMwERe+whV1MHjwZB7PBiCxcGQWwKZKD62lfGNnP/1poFAA60T7rF1UgcKd2id3KDeUS+oLWV8DfWAepOfq00CgQabi9zjcgJVYVD7PVzQUAUGAQkbNJTBICDhgwYTjDYD6XeW08ZKh+A4pYkzenOxXUbvZcWz7E8ykRMnIHGX1XPl+1m2vPYpL+2qdb8CDAARlKFEz/ZVkAAAAABJRU5ErkJggg==);
376
+ }
377
+
378
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td,
379
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th{
380
+ background: #0a0a0a;
381
+ border:1px solid #222222;
382
+ color: #999999;
383
+ }
384
+
385
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th{
386
+ background: #0e0e0e;
387
+ }
388
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_today{
389
+ color:#cc5500;
390
+ }
391
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_default,
392
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_current,
393
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_current{
394
+ background: #cc5500;
395
+ box-shadow: #b03e00 0 1px 3px 0 inset;
396
+ color:#000;
397
+ }
398
+
399
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td:hover,
400
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div:hover{
401
+ color: #000 !important;
402
+ background: #007fff !important;
403
+ }
404
+
405
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th{
406
+ color: #666;
407
+ }
408
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright{ color:#333 !important;}
409
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a{ color:#111 !important;}
410
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a:hover{ color:#555 !important;}
411
+
412
+
413
+ .xdsoft_dark .xdsoft_time_box{
414
+ border:1px solid #333;
415
+ }
416
+ .xdsoft_dark .xdsoft_scrollbar >.xdsoft_scroller{
417
+ background:#333 !important;
418
+ }
css/admin/licensing.css ADDED
@@ -0,0 +1,158 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ div#featurs_tables {
2
+ display: inline-block;
3
+ font-size: 13px;
4
+ padding-top: 95px;
5
+ text-align: left;
6
+ float: left;
7
+ }
8
+
9
+ div#featurs_tables div {
10
+ vertical-align: top;
11
+ }
12
+
13
+ div#featurs_table1 {
14
+ background-color: rgb(254, 254, 254);
15
+ display: inline-block;
16
+ position: relative;
17
+ vertical-align: top;
18
+ width: 330px;
19
+ height: 609px;
20
+ z-index: 10;
21
+ }
22
+
23
+ div#featurs_table1 span::after {
24
+ background-image: url("../images/featured/arrow3.png");
25
+ background-position: center center;
26
+ background-repeat: no-repeat;
27
+ content: "";
28
+ display: inline-block;
29
+ float: right;
30
+ height: 37px;
31
+ position: relative;
32
+ right: -21px;
33
+ top: -8px;
34
+ width: 26px;
35
+ }
36
+
37
+ div#featurs_table1 span {
38
+ border-left: 1px solid #e5e5e5;
39
+ border-right: 1px solid #e5e5e5;
40
+ border-top: 1px solid #e5e5e5;
41
+ color: #545454;
42
+ display: block;
43
+ height: 21px;
44
+ padding: 8px;
45
+ text-align: left;
46
+ }
47
+
48
+ div#featurs_table1 span:last-child,
49
+ div#featurs_table2 span:last-child,
50
+ div#featurs_table3 span:last-child {
51
+ border-bottom: 1px solid #e5e5e5;
52
+ }
53
+
54
+ div#featurs_table2 {
55
+ background-color: rgba(255, 255, 255, 0.9);
56
+ display: inline-block;
57
+ position: relative;
58
+ top: -72px;
59
+ width: 180px;
60
+ }
61
+
62
+ div#featurs_table2 span:first-child,
63
+ div#featurs_table3 span:first-child {
64
+ color: #000;
65
+ font-size: 22px;
66
+ font-weight: bold;
67
+ padding-bottom: 14px;
68
+ padding-top: 2px;
69
+ border-top: 1px solid #e5e5e5;
70
+ border-left: 1px solid #e5e5e5;
71
+ border-right: 1px solid #e5e5e5;
72
+ height: 39px;
73
+ padding-top: 18px;
74
+ }
75
+
76
+ div#featurs_table2 span:first-child {
77
+ border-left: 1px solid #e5e5e5 !important;
78
+ }
79
+
80
+ div#featurs_table2 span {
81
+ border-left: none !important;
82
+ }
83
+
84
+ div#featurs_table2 span,
85
+ div#featurs_table3 span {
86
+ border-top: 1px solid #e5e5e5;
87
+ border-right: 1px solid #e5e5e5;
88
+ border-left: 1px solid #e5e5e5;
89
+ color: #545454;
90
+ display: block;
91
+ height: 21px;
92
+ padding: 8px;
93
+ text-align: center;
94
+ }
95
+
96
+ .download a {
97
+ background-color: #fff;
98
+ border: 6px solid #dddddd;
99
+ border-radius: 50%;
100
+ box-shadow: 0 0 0 7px #eeeeee;
101
+ color: #21439c;
102
+ cursor: pointer;
103
+ display: inline-block;
104
+ font-size: 14px;
105
+ font-style: italic;
106
+ font-weight: bold;
107
+ margin-top: -4px;
108
+ outline: 0 none;
109
+ padding: 32px 9px 32px 2px;
110
+ text-align: center;
111
+ text-decoration: none;
112
+ transition-duration: 0.6s;
113
+ transition-property: border-color;
114
+ transition-timing-function: linear;
115
+ width: 72px;
116
+ }
117
+
118
+ div#featurs_table3 {
119
+ background-color: rgba(255, 255, 255, 0.6);
120
+ display: inline-block;
121
+ position: relative;
122
+ top: -72px;
123
+ width: 180px;
124
+ }
125
+
126
+ div#featurs_table2 span.yes,
127
+ div#featurs_table3 span.yes {
128
+ background-image: url("../images/featured/plus.png");
129
+ background-position: center center;
130
+ background-repeat: no-repeat;
131
+ }
132
+
133
+ span.no {
134
+ background-image: url("../images/featured/minus.png");
135
+ background-position: center center;
136
+ background-repeat: no-repeat;
137
+ }
138
+
139
+ .download input[type="submit"]:hover,
140
+ .download a:hover {
141
+ border-color: #F4762A;
142
+ }
143
+
144
+ #featurs_tables span.download {
145
+ height: 40px !important;
146
+ border-bottom: 1px solid #e5e5e5 !important;
147
+ border-left: 1px solid #e5e5e5 !important;
148
+ }
149
+
150
+ .price_big {
151
+ color: #F47629;
152
+ font-size: 22px;
153
+ }
154
+
155
+ .price {
156
+ display: block;
157
+ color: #F47629;
158
+ }
css/admin/mse-buttons.css ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+
2
+ i.mce-i-ecwd_calendar {
3
+ background: url("../../assets/Insert-icon.png") no-repeat center center;
4
+ }
css/calendar.css ADDED
@@ -0,0 +1,308 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*blue*/
2
+
3
+
4
+ .ecwd_calendar_view_tabs ul li{
5
+ border-right: 1px solid #1B4650;
6
+ border-left: 1px solid #87B5C0;
7
+ }
8
+
9
+ table.cal_blue.ecwd_calendar_container .day-without-date {
10
+ background:#F9F9F9;
11
+ }
12
+ table.cal_blue.ecwd_calendar_container .day-without-date div {
13
+ text-align:center;
14
+ }
15
+ table.cal_blue.ecwd_calendar_container .weekend {
16
+ background: #EDEDED;
17
+ }
18
+
19
+ table.cal_blue.ecwd_calendar_container .normal-day-heading, table.cal_blue.ecwd_calendar_container .weekend-heading{
20
+ background: #FFFFFF;
21
+ }
22
+
23
+
24
+ .ecwd_calendar_view_tabs ul li a{
25
+ color: #fff;
26
+ text-shadow: 0px 1px 1px #444444;
27
+ background:#10738B;
28
+ }
29
+
30
+ .ecwd_calendar_view_tabs ul li a:hover{
31
+ color: #fff;
32
+ background:#10738B;
33
+ }
34
+
35
+ .ecwd_calendar_view_tabs ul li.ecwd-selected-mode a{
36
+ background:#ffffff;
37
+ border-bottom: 1px solid rgba(0,0,0,0.2);
38
+ color:#10738B;
39
+ }
40
+
41
+ .cal_blue.ecwd_calendar_container .view-buttons a {
42
+ background:#647b9a;
43
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#7D9AC0", endColorstr="#647b9a");
44
+ background: -webkit-gradient(linear, left top, left bottom, from(#7D9AC0), to(#647b9a));
45
+ background: -moz-linear-gradient(top, #7D9AC0, #647b9a);
46
+ border:1px solid #a5b9d3;
47
+ color:#fdfefe;
48
+ font-size: 1.3em;
49
+ }
50
+
51
+ .cal_blue.ecwd_calendar_container .view-buttons a.selected {
52
+ background: #7D9AC0;
53
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#647b9a", endColorstr="#7D9AC0");
54
+ background: -webkit-gradient(linear, left top, left bottom, from(#647b9a), to(#7D9AC0));
55
+ background: -moz-linear-gradient(top, #647b9a, #7D9AC0);
56
+ }
57
+
58
+ .cal_blue.ecwd_calendar_container .calendar-heading {
59
+ text-align:center;
60
+ padding:4px 3px 3px;
61
+ height:3.25em;
62
+ color:#fdfefe;
63
+ text-shadow: 0 1px 1px rgba(1,2,2,.3);
64
+
65
+ }
66
+
67
+ .cal_blue.full .calendar-heading span {
68
+ font-size:2em;
69
+
70
+ }
71
+
72
+
73
+ .ecwd_calendar .metainfo,.event-organizers a, .event-venue a,
74
+ .event-detalis span, .event-detalis a{
75
+ color: #010101;
76
+ word-break: break-word;
77
+ }
78
+
79
+ table.cal_blue.ecwd_calendar_container select {
80
+
81
+ background: #647b9a;
82
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#f3f5f9", endColorstr="#f3f5f9");
83
+ background: -webkit-gradient(linear, left top, left bottom, from(#7D9AC0), to(#647b9a));
84
+ background: -moz-linear-gradient(top, #7D9AC0, #647b9a);
85
+ outline:none;
86
+ text-shadow: 0 1px 1px rgba(1,2,2,.3);
87
+ -webkit-box-shadow: 0 1px 2px rgba(1,2,2,.2);
88
+ -moz-box-shadow: 0 1px 2px rgba(1,2,2,.2);
89
+ box-shadow: 0 1px 2px rgba(1,2,2,.2);
90
+ }
91
+ .ecwd_calendar_view_tabs .filter-container ul{
92
+ background: #10738B;
93
+ }
94
+ table.cal_blue.ecwd_calendar_container .current-day .open-details {
95
+ background:#7D9AC0;
96
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#7D9AC0", endColorstr="#718bad");
97
+ background: -webkit-gradient(linear, left top, left bottom, from(#7D9AC0), to(#718bad));
98
+ background: -moz-linear-gradient(top, #7D9AC0, #718bad);
99
+ }
100
+
101
+ table.cal_blue.ecwd_calendar_container .close-details {
102
+ color: #262e3a;
103
+ font-size: 0.6em;
104
+ position: absolute;
105
+ right: 7px;
106
+ text-decoration: underline;
107
+ top: 3px;
108
+ }
109
+
110
+ table.cal_blue.ecwd_calendar_container .open-details {
111
+ border:4px solid #647b9a;
112
+ -webkit-box-shadow: 2px 3px 8px rgba(1,2,2,.2);
113
+ -moz-box-shadow: 2px 3px 8px rgba(1,2,2,.2);
114
+ box-shadow: 2px 3px 8px rgba(1,2,2,.2);
115
+ -moz-border-radius: 4px;
116
+ -webkit-border-radius: 4px;
117
+ border-radius: 4px;
118
+ padding:5px 5px 10px 5px;
119
+ }
120
+ table.cal_blue.ecwd_calendar_container .current-day .day-number {
121
+ color:#fdfefe;
122
+ background:#10738B;
123
+ }
124
+ @media only screen and (max-width: 768px){
125
+
126
+ .ecwd-page-full table.cal_blue.ecwd_calendar_container .has-events:after {
127
+
128
+ background-color: #10738B;
129
+ }
130
+
131
+ .ecwd_calendar.ecwd-page-full div.event-details {
132
+ border-bottom: 1px solid #CCC;
133
+ }
134
+ }
135
+
136
+
137
+ .ecwd-widget-mini .event-main-content.no-events{
138
+ padding: 8px 10px;
139
+ border: 1px solid #D5DCE2;
140
+ margin-bottom:1px !important;
141
+ background: #F9F9F9;
142
+ color: #676767;
143
+ }
144
+
145
+ .ecwd-widget-mini .event-container ,
146
+ .ecwd-widget-mini .ecwd_list .event-main-content {
147
+ border: 1px solid #D5DCE2;
148
+ margin-bottom: 1px;
149
+ background: #F9F9F9;
150
+ }
151
+ .ecwd-widget-mini .event-container:last-child {
152
+ border-bottom: 1px solid #D5DCE2 !important;
153
+ }
154
+
155
+ .ecwd_calendar.ecwd-widget-mini .ecwd-events-day-details li{
156
+ height: 100% !important;
157
+ text-indent: 0;
158
+ margin: 0 auto !important;
159
+ border-radius: 0;
160
+ border-bottom: 1px solid #CCC;
161
+ background: #ffffff !important;
162
+ padding:10px 0 !important;
163
+ color: #676767 !important;
164
+ }
165
+
166
+ table.cal_blue.mini .current-day {
167
+ color:#fdfefe;
168
+ background:#10738B;
169
+ }
170
+
171
+ table.cal_blue.mini td ul.events li {
172
+ background-color: #10738B;
173
+ }
174
+
175
+ .ecwd-poster-board .ecwd-poster-item .ecwd-event-details .date span:not(.weekday-block):not(.datenumber){
176
+ color:#ffffff;
177
+ background:#585858;
178
+ }
179
+
180
+
181
+
182
+ .ecwd-poster-board .ecwd-poster-item .post-descr{
183
+ font-size:15px;
184
+ }
185
+ .ecwd-poster-board .ecwd-poster-item .ecwd-event-header h2 a{
186
+ color:#000000
187
+ }
188
+
189
+
190
+
191
+ /*####################################*/
192
+ /*.ecwd-page-full,
193
+ .ecwd-widget-mini{
194
+ overflow:hidden;
195
+ }*/
196
+
197
+
198
+
199
+ .ecwd_calendar .filter-arrow-right,
200
+ .ecwd_calendar .filter-arrow-left{
201
+ color: #fff;
202
+ font-size: 23px;
203
+ background:#10738B;
204
+ }
205
+ .ecwd_calendar .ecwd_calendar_filters .filter-arrow-right,
206
+ .ecwd_calendar .ecwd_calendar_filters .filter-arrow-left{
207
+ color: #10738B;
208
+ background:#fff;
209
+ border: 1px solid #E5E4E4 !important;
210
+ }
211
+
212
+ .ecwd_calendar .filter-arrow-right{
213
+ border-left: 1px solid #87B5C0;
214
+ border-right: 1px solid #87B5C0;
215
+ }
216
+ .ecwd_calendar .filter-arrow-left{
217
+ border-right: 1px solid #87B5C0;
218
+ }
219
+
220
+
221
+ .calendar-head{
222
+ background: #168fb5
223
+ }
224
+
225
+
226
+
227
+ .calendar-head .previous,
228
+ .calendar-head .next{
229
+ font-size: 17px;
230
+ }
231
+
232
+ .calendar-head .current-month{
233
+ font-size:28px;
234
+ border-left:1px solid #91CEDF;
235
+ border-right:1px solid #235F71;
236
+ }
237
+ .calendar-head .current-month div{
238
+ font-size: 16px;
239
+ line-height: 16px;
240
+ }
241
+
242
+ @media only screen and (max-width: 500px){
243
+ .calendar-head .current-month div {
244
+ font-size: 13px;
245
+ line-height: 24px;
246
+ margin-top: -8px;
247
+ }
248
+ }
249
+
250
+ .calendar-head .previous{
251
+ border-right:1px solid #235F71;
252
+ }
253
+
254
+ .calendar-head .next{
255
+ border-left:1px solid #91CEDF;
256
+ }
257
+
258
+
259
+ .ecwd_calendar td .day-number{
260
+ background:#E0E0E0;
261
+ color:#5C5C5C;
262
+ }
263
+
264
+ /*############FILTERS##############*/
265
+
266
+ .ecwd-tag-container .ecwd-dropdown-menu>div:hover{
267
+ border: 1px solid #ddd !important;
268
+ background: #F5F5F5;
269
+ }
270
+
271
+ @media only screen and (max-width: 500px){
272
+ .event_dropdown_cont{
273
+ border-top: 1px solid #D5DCE2;
274
+ display:none;
275
+ padding-top: 6px;
276
+ }
277
+
278
+ div.ecwd-week-date{
279
+ background:#10738B;
280
+ }
281
+
282
+ }
283
+ /*#############LIST,WEEK VIEW###############*/
284
+
285
+ .ecwd-day-date,
286
+ .day-event-list .ecwd-week-date,
287
+ .day4-event-list .ecwd-week-date,
288
+ .week-event-list .ecwd-week-date{
289
+ background: #10738B;
290
+ }
291
+
292
+ .ecwd_list .ecwd-list-date{
293
+ background: #10738B;
294
+ }
295
+ ul.ecwd_list, ul.week-event-list, ul.day-event-list, ul.day4-event-list{
296
+ background: #f9f9f9;
297
+ }
298
+
299
+ .ecwd-pagination .page{
300
+ color: #fff;
301
+ background: #10738B;
302
+ }
303
+
304
+ .ecwd-search button,.ecwd-search button:hover {
305
+ background: #10738B;
306
+ color: #ffffff;
307
+ }
308
+
css/font-awesome/font-awesome.css ADDED
@@ -0,0 +1,1712 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
3
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4
+ */
5
+ /* FONT PATH
6
+ * -------------------------- */
7
+ @font-face {
8
+ font-family: 'FontAwesome';
9
+ src: url('fonts/fontawesome-webfont.eot?v=4.2.0');
10
+ src: url('fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');
11
+ font-weight: normal;
12
+ font-style: normal;
13
+ }
14
+ #spider_popup_wrap .fa,
15
+ div[id^="bwg_container"] .fa {
16
+ display: inline-block;
17
+ font-family: FontAwesome !important;
18
+ font-style: normal;
19
+ font-weight: normal;
20
+ line-height: 1 !important;
21
+ text-rendering: auto;
22
+ -webkit-font-smoothing: antialiased !important;
23
+ -moz-osx-font-smoothing: grayscale !important;
24
+ }
25
+ /* makes the font 33% larger relative to the icon container */
26
+ .fa-lg {
27
+ font-size: 1.33333333em;
28
+ line-height: 0.75em;
29
+ vertical-align: -15%;
30
+ }
31
+ .fa-2x {
32
+ font-size: 2em;
33
+ }
34
+ .fa-3x {
35
+ font-size: 3em;
36
+ }
37
+ .fa-4x {
38
+ font-size: 4em;
39
+ }
40
+ .fa-5x {
41
+ font-size: 5em;
42
+ }
43
+ .fa-fw {
44
+ width: 1.28571429em;
45
+ text-align: center;
46
+ }
47
+ .fa-ul {
48
+ padding-left: 0;
49
+ margin-left: 2.14285714em;
50
+ list-style-type: none;
51
+ }
52
+ .fa-ul > li {
53
+ position: relative;
54
+ }
55
+ .fa-li {
56
+ position: absolute;
57
+ left: -2.14285714em;
58
+ width: 2.14285714em;
59
+ top: 0.14285714em;
60
+ text-align: center;
61
+ }
62
+ .fa-li.fa-lg {
63
+ left: -1.85714286em;
64
+ }
65
+ .fa-border {
66
+ padding: .2em .25em .15em;
67
+ border: solid 0.08em #eeeeee;
68
+ border-radius: .1em;
69
+ }
70
+ .pull-right {
71
+ float: right;
72
+ }
73
+ .pull-left {
74
+ float: left;
75
+ }
76
+ .fa.pull-left {
77
+ margin-right: .3em;
78
+ }
79
+ .fa.pull-right {
80
+ margin-left: .3em;
81
+ }
82
+ .fa-spin {
83
+ -webkit-animation: spin 2s infinite linear;
84
+ -moz-animation: spin 2s infinite linear;
85
+ -o-animation: spin 2s infinite linear;
86
+ animation: spin 2s infinite linear;
87
+ }
88
+ @-moz-keyframes spin {
89
+ 0% {
90
+ -moz-transform: rotate(0deg);
91
+ }
92
+ 100% {
93
+ -moz-transform: rotate(359deg);
94
+ }
95
+ }
96
+ @-webkit-keyframes spin {
97
+ 0% {
98
+ -webkit-transform: rotate(0deg);
99
+ }
100
+ 100% {
101
+ -webkit-transform: rotate(359deg);
102
+ }
103
+ }
104
+ @-o-keyframes spin {
105
+ 0% {
106
+ -o-transform: rotate(0deg);
107
+ }
108
+ 100% {
109
+ -o-transform: rotate(359deg);
110
+ }
111
+ }
112
+ @-ms-keyframes spin {
113
+ 0% {
114
+ -ms-transform: rotate(0deg);
115
+ }
116
+ 100% {
117
+ -ms-transform: rotate(359deg);
118
+ }
119
+ }
120
+ @keyframes spin {
121
+ 0% {
122
+ transform: rotate(0deg);
123
+ }
124
+ 100% {
125
+ transform: rotate(359deg);
126
+ }
127
+ }
128
+ .fa-rotate-90 {
129
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
130
+ -webkit-transform: rotate(90deg);
131
+ -moz-transform: rotate(90deg);
132
+ -ms-transform: rotate(90deg);
133
+ -o-transform: rotate(90deg);
134
+ transform: rotate(90deg);
135
+ }
136
+ .fa-rotate-180 {
137
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
138
+ -webkit-transform: rotate(180deg);
139
+ -moz-transform: rotate(180deg);
140
+ -ms-transform: rotate(180deg);
141
+ -o-transform: rotate(180deg);
142
+ transform: rotate(180deg);
143
+ }
144
+ .fa-rotate-270 {
145
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
146
+ -webkit-transform: rotate(270deg);
147
+ -moz-transform: rotate(270deg);
148
+ -ms-transform: rotate(270deg);
149
+ -o-transform: rotate(270deg);
150
+ transform: rotate(270deg);
151
+ }
152
+ .fa-flip-horizontal {
153
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
154
+ -webkit-transform: scale(-1, 1);
155
+ -moz-transform: scale(-1, 1);
156
+ -ms-transform: scale(-1, 1);
157
+ -o-transform: scale(-1, 1);
158
+ transform: scale(-1, 1);
159
+ }
160
+ .fa-flip-vertical {
161
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
162
+ -webkit-transform: scale(1, -1);
163
+ -moz-transform: scale(1, -1);
164
+ -ms-transform: scale(1, -1);
165
+ -o-transform: scale(1, -1);
166
+ transform: scale(1, -1);
167
+ }
168
+ :root .fa-rotate-90,
169
+ :root .fa-rotate-180,
170
+ :root .fa-rotate-270,
171
+ :root .fa-flip-horizontal,
172
+ :root .fa-flip-vertical {
173
+ filter: none;
174
+ }
175
+ .fa-stack {
176
+ position: relative;
177
+ display: inline-block;
178
+ width: 2em;
179
+ height: 2em;
180
+ line-height: 2em;
181
+ vertical-align: middle;
182
+ }
183
+ .fa-stack-1x,
184
+ .fa-stack-2x {
185
+ position: absolute;
186
+ left: 0;
187
+ width: 100%;
188
+ text-align: center;
189
+ }
190
+ .fa-stack-1x {
191
+ line-height: inherit;
192
+ }
193
+ .fa-stack-2x {
194
+ font-size: 2em;
195
+ }
196
+ .fa-inverse {
197
+ color: #ffffff;
198
+ }
199
+ /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
200
+ readers do not read off random characters that represent icons */
201
+ .fa-glass:before {
202
+ content: "\f000";
203
+ }
204
+ .fa-music:before {
205
+ content: "\f001";
206
+ }
207
+ .fa-search:before {
208
+ content: "\f002";
209
+ }
210
+ .fa-envelope-o:before {
211
+ content: "\f003";
212
+ }
213
+ .fa-heart:before {
214
+ content: "\f004";
215
+ }
216
+ .fa-star:before {
217
+ content: "\f005";
218
+ }
219
+ .fa-star-o:before {
220
+ content: "\f006";
221
+ }
222
+ .fa-user:before {
223
+ content: "\f007";
224
+ }
225
+ .fa-film:before {
226
+ content: "\f008";
227
+ }
228
+ .fa-th-large:before {
229
+ content: "\f009";
230
+ }
231
+ .fa-th:before {
232
+ content: "\f00a";
233
+ }
234
+ .fa-th-list:before {
235
+ content: "\f00b";
236
+ }
237
+ .fa-check:before {
238
+ content: "\f00c";
239
+ }
240
+ .fa-remove:before,
241
+ .fa-close:before,
242
+ .fa-times:before {
243
+ content: "\f00d";
244
+ }
245
+ .fa-search-plus:before {
246
+ content: "\f00e";
247
+ }
248
+ .fa-search-minus:before {
249
+ content: "\f010";
250
+ }
251
+ .fa-power-off:before {
252
+ content: "\f011";
253
+ }
254
+ .fa-signal:before {
255
+ content: "\f012";
256
+ }
257
+ .fa-gear:before,
258
+ .fa-cog:before {
259
+ content: "\f013";
260
+ }
261
+ .fa-trash-o:before {
262
+ content: "\f014";
263
+ }
264
+ .fa-home:before {
265
+ content: "\f015";
266
+ }
267
+ .fa-file-o:before {
268
+ content: "\f016";
269
+ }
270
+ .fa-clock-o:before {
271
+ content: "\f017";
272
+ }
273
+ .fa-road:before {
274
+ content: "\f018";
275
+ }
276
+ .fa-download:before {
277
+ content: "\f019";
278
+ }
279
+ .fa-arrow-circle-o-down:before {
280
+ content: "\f01a";
281
+ }
282
+ .fa-arrow-circle-o-up:before {
283
+ content: "\f01b";
284
+ }
285
+ .fa-inbox:before {
286
+ content: "\f01c";
287
+ }
288
+ .fa-play-circle-o:before {
289
+ content: "\f01d";
290
+ }
291
+ .fa-rotate-right:before,
292
+ .fa-repeat:before {
293
+ content: "\f01e";
294
+ }
295
+ .fa-refresh:before {
296
+ content: "\f021";
297
+ }
298
+ .fa-list-alt:before {
299
+ content: "\f022";
300
+ }
301
+ .fa-lock:before {
302
+ content: "\f023";
303
+ }
304
+ .fa-flag:before {
305
+ content: "\f024";
306
+ }
307
+ .fa-headphones:before {
308
+ content: "\f025";
309
+ }
310
+ .fa-volume-off:before {
311
+ content: "\f026";
312
+ }
313
+ .fa-volume-down:before {
314
+ content: "\f027";
315
+ }
316
+ .fa-volume-up:before {
317
+ content: "\f028";
318
+ }
319
+ .fa-qrcode:before {
320
+ content: "\f029";
321
+ }
322
+ .fa-barcode:before {
323
+ content: "\f02a";
324
+ }
325
+ .fa-tag:before {
326
+ content: "\f02b";
327
+ }
328
+ .fa-tags:before {
329
+ content: "\f02c";
330
+ }
331
+ .fa-book:before {
332
+ content: "\f02d";
333
+ }
334
+ .fa-bookmark:before {
335
+ content: "\f02e";
336
+ }
337
+ .fa-print:before {
338
+ content: "\f02f";
339
+ }
340
+ .fa-camera:before {
341
+ content: "\f030";
342
+ }
343
+ .fa-font:before {
344
+ content: "\f031";
345
+ }
346
+ .fa-bold:before {
347
+ content: "\f032";
348
+ }
349
+ .fa-italic:before {
350
+ content: "\f033";
351
+ }
352
+ .fa-text-height:before {
353
+ content: "\f034";
354
+ }
355
+ .fa-text-width:before {
356
+ content: "\f035";
357
+ }
358
+ .fa-align-left:before {
359
+ content: "\f036";
360
+ }
361
+ .fa-align-center:before {
362
+ content: "\f037";
363
+ }
364
+ .fa-align-right:before {
365
+ content: "\f038";
366
+ }
367
+ .fa-align-justify:before {
368
+ content: "\f039";
369
+ }
370
+ .fa-list:before {
371
+ content: "\f03a";
372
+ }
373
+ .fa-dedent:before,
374
+ .fa-outdent:before {
375
+ content: "\f03b";
376
+ }
377
+ .fa-indent:before {
378
+ content: "\f03c";
379
+ }
380
+ .fa-video-camera:before {
381
+ content: "\f03d";
382
+ }
383
+ .fa-photo:before,
384
+ .fa-image:before,
385
+ .fa-picture-o:before {
386
+ content: "\f03e";
387
+ }
388
+ .fa-pencil:before {
389
+ content: "\f040";
390
+ }
391
+ .fa-map-marker:before {
392
+ content: "\f041";
393
+ }
394
+ .fa-adjust:before {
395
+ content: "\f042";
396
+ }
397
+ .fa-tint:before {
398
+ content: "\f043";
399
+ }
400
+ .fa-edit:before,
401
+ .fa-pencil-square-o:before {
402
+ content: "\f044";
403
+ }
404
+ .fa-share-square-o:before {
405
+ content: "\f045";
406
+ }
407
+ .fa-check-square-o:before {
408
+ content: "\f046";
409
+ }
410
+ .fa-arrows:before {
411
+ content: "\f047";
412
+ }
413
+ .fa-step-backward:before {
414
+ content: "\f048";
415
+ }
416
+ .fa-fast-backward:before {
417
+ content: "\f049";
418
+ }
419
+ .fa-backward:before {
420
+ content: "\f04a";
421
+ }
422
+ .fa-play:before {
423
+ content: "\f04b";
424
+ }
425
+ .fa-pause:before {
426
+ content: "\f04c";
427
+ }
428
+ .fa-stop:before {
429
+ content: "\f04d";
430
+ }
431
+ .fa-forward:before {
432
+ content: "\f04e";
433
+ }
434
+ .fa-fast-forward:before {
435
+ content: "\f050";
436
+ }
437
+ .fa-step-forward:before {
438
+ content: "\f051";
439
+ }
440
+ .fa-eject:before {
441
+ content: "\f052";
442
+ }
443
+ .fa-chevron-left:before {
444
+ content: "\f053";
445
+ }
446
+ .fa-chevron-right:before {
447
+ content: "\f054";
448
+ }
449
+ .fa-plus-circle:before {
450
+ content: "\f055";
451
+ }
452
+ .fa-minus-circle:before {
453
+ content: "\f056";
454
+ }
455
+ .fa-times-circle:before {
456
+ content: "\f057";
457
+ }
458
+ .fa-check-circle:before {
459
+ content: "\f058";
460
+ }
461
+ .fa-question-circle:before {
462
+ content: "\f059";
463
+ }
464
+ .fa-info-circle:before {
465
+ content: "\f05a";
466
+ }
467
+ .fa-crosshairs:before {
468
+ content: "\f05b";
469
+ }
470
+ .fa-times-circle-o:before {
471
+ content: "\f05c";
472
+ }
473
+ .fa-check-circle-o:before {
474
+ content: "\f05d";
475
+ }
476
+ .fa-ban:before {
477
+ content: "\f05e";
478
+ }
479
+ .fa-arrow-left:before {
480
+ content: "\f060";
481
+ }
482
+ .fa-arrow-right:before {
483
+ content: "\f061";
484
+ }
485
+ .fa-arrow-up:before {
486
+ content: "\f062";
487
+ }
488
+ .fa-arrow-down:before {
489
+ content: "\f063";
490
+ }
491
+ .fa-mail-forward:before,
492
+ .fa-share:before {
493
+ content: "\f064";
494
+ }
495
+ .fa-resize-full:before,
496
+ .fa-expand:before {
497
+ content: "\f065";
498
+ }
499
+ .fa-resize-small:before,
500
+ .fa-compress:before {
501
+ content: "\f066";
502
+ }
503
+ .fa-plus:before {
504
+ content: "\f067";
505
+ }
506
+ .fa-minus:before {
507
+ content: "\f068";
508
+ }
509
+ .fa-asterisk:before {
510
+ content: "\f069";
511
+ }
512
+ .fa-exclamation-circle:before {
513
+ content: "\f06a";
514
+ }
515
+ .fa-gift:before {
516
+ content: "\f06b";
517
+ }
518
+ .fa-leaf:before {
519
+ content: "\f06c";
520
+ }
521
+ .fa-fire:before {
522
+ content: "\f06d";
523
+ }
524
+ .fa-eye:before {
525
+ content: "\f06e";
526
+ }
527
+ .fa-eye-slash:before {
528
+ content: "\f070";
529
+ }
530
+ .fa-warning:before,
531
+ .fa-exclamation-triangle:before {
532
+ content: "\f071";
533
+ }
534
+ .fa-plane:before {
535
+ content: "\f072";
536
+ }
537
+ .fa-calendar:before {
538
+ content: "\f073";
539
+ }
540
+ .fa-random:before {
541
+ content: "\f074";
542
+ }
543
+ .fa-comment:before {
544
+ content: "\f075";
545
+ }
546
+ .fa-magnet:before {
547
+ content: "\f076";
548
+ }
549
+ .fa-chevron-up:before {
550
+ content: "\f077";
551
+ }
552
+ .fa-chevron-down:before {
553
+ content: "\f078";
554
+ }
555
+ .fa-retweet:before {
556
+ content: "\f079";
557
+ }
558
+ .fa-shopping-cart:before {
559
+ content: "\f07a";
560
+ }
561
+ .fa-folder:before {
562
+ content: "\f07b";
563
+ }
564
+ .fa-folder-open:before {
565
+ content: "\f07c";
566
+ }
567
+ .fa-resize-vertical:before,
568
+ .fa-arrows-v:before {
569
+ content: "\f07d";
570
+ }
571
+ .fa-resize-horizontal:before,
572
+ .fa-arrows-h:before {
573
+ content: "\f07e";
574
+ }
575
+ .fa-bar-chart-o:before,
576
+ .fa-bar-chart:before {
577
+ content: "\f080";
578
+ }
579
+ .fa-twitter-square:before {
580
+ content: "\f081";
581
+ }
582
+ .fa-facebook-square:before {
583
+ content: "\f082";
584
+ }
585
+ .fa-camera-retro:before {
586
+ content: "\f083";
587
+ }
588
+ .fa-key:before {
589
+ content: "\f084";
590
+ }
591
+ .fa-gears:before,
592
+ .fa-cogs:before {
593
+ content: "\f085";
594
+ }
595
+ .fa-comments:before {
596
+ content: "\f086";
597
+ }
598
+ .fa-thumbs-o-up:before {
599
+ content: "\f087";
600
+ }
601
+ .fa-thumbs-o-down:before {
602
+ content: "\f088";
603
+ }
604
+ .fa-star-half:before {
605
+ content: "\f089";
606
+ }
607
+ .fa-heart-o:before {
608
+ content: "\f08a";
609
+ }
610
+ .fa-sign-out:before {
611
+ content: "\f08b";
612
+ }
613
+ .fa-linkedin-square:before {
614
+ content: "\f08c";
615
+ }
616
+ .fa-thumb-tack:before {
617
+ content: "\f08d";
618
+ }
619
+ .fa-external-link:before {
620
+ content: "\f08e";
621
+ }
622
+ .fa-sign-in:before {
623
+ content: "\f090";
624
+ }
625
+ .fa-trophy:before {
626
+ content: "\f091";
627
+ }
628
+ .fa-github-square:before {
629
+ content: "\f092";
630
+ }
631
+ .fa-upload:before {
632
+ content: "\f093";
633
+ }
634
+ .fa-lemon-o:before {
635
+ content: "\f094";
636
+ }
637
+ .fa-phone:before {
638
+ content: "\f095";
639
+ }
640
+ .fa-square-o:before {
641
+ content: "\f096";
642
+ }
643
+ .fa-bookmark-o:before {
644
+ content: "\f097";
645
+ }
646
+ .fa-phone-square:before {
647
+ content: "\f098";
648
+ }
649
+ .fa-twitter:before {
650
+ content: "\f099";
651
+ }
652
+ .fa-facebook:before {
653
+ content: "\f09a";
654
+ }
655
+ .fa-github:before {
656
+ content: "\f09b";
657
+ }
658
+ .fa-unlock:before {
659
+ content: "\f09c";
660
+ }
661
+ .fa-credit-card:before {
662
+ content: "\f09d";
663
+ }
664
+ .fa-rss:before {
665
+ content: "\f09e";
666
+ }
667
+ .fa-hdd-o:before {
668
+ content: "\f0a0";
669
+ }
670
+ .fa-bullhorn:before {
671
+ content: "\f0a1";
672
+ }
673
+ .fa-bell:before {
674
+ content: "\f0f3";
675
+ }
676
+ .fa-certificate:before {
677
+ content: "\f0a3";
678
+ }
679
+ .fa-hand-o-right:before {
680
+ content: "\f0a4";
681
+ }
682
+ .fa-hand-o-left:before {
683
+ content: "\f0a5";
684
+ }
685
+ .fa-hand-o-up:before {
686
+ content: "\f0a6";
687
+ }
688
+ .fa-hand-o-down:before {
689
+ content: "\f0a7";
690
+ }
691
+ .fa-arrow-circle-left:before {
692
+ content: "\f0a8";
693
+ }
694
+ .fa-arrow-circle-right:before {
695
+ content: "\f0a9";
696
+ }
697
+ .fa-arrow-circle-up:before {
698
+ content: "\f0aa";
699
+ }
700
+ .fa-arrow-circle-down:before {
701
+ content: "\f0ab";
702
+ }
703
+ .fa-globe:before {
704
+ content: "\f0ac";
705
+ }
706
+ .fa-wrench:before {
707
+ content: "\f0ad";
708
+ }
709
+ .fa-tasks:before {
710
+ content: "\f0ae";
711
+ }
712
+ .fa-filter:before {
713
+ content: "\f0b0";
714
+ }
715
+ .fa-briefcase:before {
716
+ content: "\f0b1";
717
+ }
718
+ .fa-fullscreen:before,
719
+ .fa-arrows-alt:before {
720
+ content: "\f0b2";
721
+ }
722
+ .fa-group:before,
723
+ .fa-users:before {
724
+ content: "\f0c0";
725
+ }
726
+ .fa-chain:before,
727
+ .fa-link:before {
728
+ content: "\f0c1";
729
+ }
730
+ .fa-cloud:before {
731
+ content: "\f0c2";
732
+ }
733
+ .fa-flask:before {
734
+ content: "\f0c3";
735
+ }
736
+ .fa-cut:before,
737
+ .fa-scissors:before {
738
+ content: "\f0c4";
739
+ }
740
+ .fa-copy:before,
741
+ .fa-files-o:before {
742
+ content: "\f0c5";
743
+ }
744
+ .fa-paperclip:before {
745
+ content: "\f0c6";
746
+ }
747
+ .fa-save:before,
748
+ .fa-floppy-o:before {
749
+ content: "\f0c7";
750
+ }
751
+ .fa-square:before {
752
+ content: "\f0c8";
753
+ }
754
+ .fa-navicon:before,
755
+ .fa-reorder:before,
756
+ .fa-bars:before {
757
+ content: "\f0c9";
758
+ }
759
+ .fa-list-ul:before {
760
+ content: "\f0ca";
761
+ }
762
+ .fa-list-ol:before {
763
+ content: "\f0cb";
764
+ }
765
+ .fa-strikethrough:before {
766
+ content: "\f0cc";
767
+ }
768
+ .fa-underline:before {
769
+ content: "\f0cd";
770
+ }
771
+ .fa-table:before {
772
+ content: "\f0ce";
773
+ }
774
+ .fa-magic:before {
775
+ content: "\f0d0";
776
+ }
777
+ .fa-truck:before {
778
+ content: "\f0d1";
779
+ }
780
+ .fa-pinterest:before {
781
+ content: "\f0d2";
782
+ }
783
+ .fa-pinterest-square:before {
784
+ content: "\f0d3";
785
+ }
786
+ .fa-google-plus-square:before {
787
+ content: "\f0d4";
788
+ }
789
+ .fa-google-plus:before {
790
+ content: "\f0d5";
791
+ }
792
+ .fa-money:before {
793
+ content: "\f0d6";
794
+ }
795
+ .fa-caret-down:before {
796
+ content: "\f0d7";
797
+ }
798
+ .fa-caret-up:before {
799
+ content: "\f0d8";
800
+ }
801
+ .fa-caret-left:before {
802
+ content: "\f0d9";
803
+ }
804
+ .fa-caret-right:before {
805
+ content: "\f0da";
806
+ }
807
+ .fa-columns:before {
808
+ content: "\f0db";
809
+ }
810
+ .fa-unsorted:before,
811
+ .fa-sort:before {
812
+ content: "\f0dc";
813
+ }
814
+ .fa-sort-down:before,
815
+ .fa-sort-desc:before {
816
+ content: "\f0dd";
817
+ }
818
+ .fa-sort-up:before,
819
+ .fa-sort-asc:before {
820
+ content: "\f0de";
821
+ }
822
+ .fa-envelope:before {
823
+ content: "\f0e0";
824
+ }
825
+ .fa-linkedin:before {
826
+ content: "\f0e1";
827
+ }
828
+ .fa-rotate-left:before,
829
+ .fa-undo:before {
830
+ content: "\f0e2";
831
+ }
832
+ .fa-legal:before,
833
+ .fa-gavel:before {
834
+ content: "\f0e3";
835
+ }
836
+ .fa-dashboard:before,
837
+ .fa-tachometer:before {
838
+ content: "\f0e4";
839
+ }
840
+ .fa-comment-o:before {
841
+ content: "\f0e5";
842
+ }
843
+ .fa-comments-o:before {
844
+ content: "\f0e6";
845
+ }
846
+ .fa-flash:before,
847
+ .fa-bolt:before {
848
+ content: "\f0e7";
849
+ }
850
+ .fa-sitemap:before {
851
+ content: "\f0e8";
852
+ }
853
+ .fa-umbrella:before {
854
+ content: "\f0e9";
855
+ }
856
+ .fa-paste:before,
857
+ .fa-clipboard:before {
858
+ content: "\f0ea";
859
+ }
860
+ .fa-lightbulb-o:before {
861
+ content: "\f0eb";
862
+ }
863
+ .fa-exchange:before {
864
+ content: "\f0ec";
865
+ }
866
+ .fa-cloud-download:before {
867
+ content: "\f0ed";
868
+ }
869
+ .fa-cloud-upload:before {
870
+ content: "\f0ee";
871
+ }
872
+ .fa-user-md:before {
873
+ content: "\f0f0";
874
+ }
875
+ .fa-stethoscope:before {
876
+ content: "\f0f1";
877
+ }
878
+ .fa-suitcase:before {
879
+ content: "\f0f2";
880
+ }
881
+ .fa-bell-o:before {
882
+ content: "\f0a2";
883
+ }
884
+ .fa-coffee:before {
885
+ content: "\f0f4";
886
+ }
887
+ .fa-cutlery:before {
888
+ content: "\f0f5";
889
+ }
890
+ .fa-file-text-o:before {
891
+ content: "\f0f6";
892
+ }
893
+ .fa-building-o:before {
894
+ content: "\f0f7";
895
+ }
896
+ .fa-hospital-o:before {
897
+ content: "\f0f8";
898
+ }
899
+ .fa-ambulance:before {
900
+ content: "\f0f9";
901
+ }
902
+ .fa-medkit:before {
903
+ content: "\f0fa";
904
+ }
905
+ .fa-fighter-jet:before {
906
+ content: "\f0fb";
907
+ }
908
+ .fa-beer:before {
909
+ content: "\f0fc";
910
+ }
911
+ .fa-h-square:before {
912
+ content: "\f0fd";
913
+ }
914
+ .fa-plus-square:before {
915
+ content: "\f0fe";
916
+ }
917
+ .fa-angle-double-left:before {
918
+ content: "\f100";
919
+ }
920
+ .fa-angle-double-right:before {
921
+ content: "\f101";
922
+ }
923
+ .fa-angle-double-up:before {
924
+ content: "\f102";
925
+ }
926
+ .fa-angle-double-down:before {
927
+ content: "\f103";
928
+ }
929
+ .fa-angle-left:before {
930
+ content: "\f104";
931
+ }
932
+ .fa-angle-right:before {
933
+ content: "\f105";
934
+ }
935
+ .fa-angle-up:before {
936
+ content: "\f106";
937
+ }
938
+ .fa-angle-down:before {
939
+ content: "\f107";
940
+ }
941
+ .fa-desktop:before {
942
+ content: "\f108";
943
+ }
944
+ .fa-laptop:before {
945
+ content: "\f109";
946
+ }
947
+ .fa-tablet:before {
948
+ content: "\f10a";
949
+ }
950
+ .fa-mobile-phone:before,
951
+ .fa-mobile:before {
952
+ content: "\f10b";
953
+ }
954
+ .fa-circle-o:before {
955
+ content: "\f10c";
956
+ }
957
+ .fa-quote-left:before {
958
+ content: "\f10d";
959
+ }
960
+ .fa-quote-right:before {
961
+ content: "\f10e";
962
+ }
963
+ .fa-spinner:before {
964
+ content: "\f110";
965
+ }
966
+ .fa-circle:before {
967
+ content: "\f111";
968
+ }
969
+ .fa-mail-reply:before,
970
+ .fa-reply:before {
971
+ content: "\f112";
972
+ }
973
+ .fa-github-alt:before {
974
+ content: "\f113";
975
+ }
976
+ .fa-folder-o:before {
977
+ content: "\f114";
978
+ }
979
+ .fa-folder-open-o:before {
980
+ content: "\f115";
981
+ }
982
+ .fa-smile-o:before {
983
+ content: "\f118";
984
+ }
985
+ .fa-frown-o:before {
986
+ content: "\f119";
987
+ }
988
+ .fa-meh-o:before {
989
+ content: "\f11a";
990
+ }
991
+ .fa-gamepad:before {
992
+ content: "\f11b";
993
+ }
994
+ .fa-keyboard-o:before {
995
+ content: "\f11c";
996
+ }
997
+ .fa-flag-o:before {
998
+ content: "\f11d";
999
+ }
1000
+ .fa-flag-checkered:before {
1001
+ content: "\f11e";
1002
+ }
1003
+ .fa-terminal:before {
1004
+ content: "\f120";
1005
+ }
1006
+ .fa-code:before {
1007
+ content: "\f121";
1008
+ }
1009
+ .fa-mail-reply-all:before,
1010
+ .fa-reply-all:before {
1011
+ content: "\f122";
1012
+ }
1013
+ .fa-star-half-empty:before,
1014
+ .fa-star-half-full:before,
1015
+ .fa-star-half-o:before {
1016
+ content: "\f123";
1017
+ }
1018
+ .fa-location-arrow:before {
1019
+ content: "\f124";
1020
+ }
1021
+ .fa-crop:before {
1022
+ content: "\f125";
1023
+ }
1024
+ .fa-code-fork:before {
1025
+ content: "\f126";
1026
+ }
1027
+ .fa-unlink:before,
1028
+ .fa-chain-broken:before {
1029
+ content: "\f127";
1030
+ }
1031
+ .fa-question:before {
1032
+ content: "\f128";
1033
+ }
1034
+ .fa-info:before {
1035
+ content: "\f129";
1036
+ }
1037
+ .fa-exclamation:before {
1038
+ content: "\f12a";
1039
+ }
1040
+ .fa-superscript:before {
1041
+ content: "\f12b";
1042
+ }
1043
+ .fa-subscript:before {
1044
+ content: "\f12c";
1045
+ }
1046
+ .fa-eraser:before {
1047
+ content: "\f12d";
1048
+ }
1049
+ .fa-puzzle-piece:before {
1050
+ content: "\f12e";
1051
+ }
1052
+ .fa-microphone:before {
1053
+ content: "\f130";
1054
+ }
1055
+ .fa-microphone-slash:before {
1056
+ content: "\f131";
1057
+ }
1058
+ .fa-shield:before {
1059
+ content: "\f132";
1060
+ }
1061
+ .fa-calendar-o:before {
1062
+ content: "\f133";
1063
+ }
1064
+ .fa-fire-extinguisher:before {
1065
+ content: "\f134";
1066
+ }
1067
+ .fa-rocket:before {
1068
+ content: "\f135";
1069
+ }
1070
+ .fa-maxcdn:before {
1071
+ content: "\f136";
1072
+ }
1073
+ .fa-chevron-circle-left:before {
1074
+ content: "\f137";
1075
+ }
1076
+ .fa-chevron-circle-right:before {
1077
+ content: "\f138";
1078
+ }
1079
+ .fa-chevron-circle-up:before {
1080
+ content: "\f139";
1081
+ }
1082
+ .fa-chevron-circle-down:before {
1083
+ content: "\f13a";
1084
+ }
1085
+ .fa-html5:before {
1086
+ content: "\f13b";
1087
+ }
1088
+ .fa-css3:before {
1089
+ content: "\f13c";
1090
+ }
1091
+ .fa-anchor:before {
1092
+ content: "\f13d";
1093
+ }
1094
+ .fa-unlock-alt:before {
1095
+ content: "\f13e";
1096
+ }
1097
+ .fa-bullseye:before {
1098
+ content: "\f140";
1099
+ }
1100
+ .fa-ellipsis-h:before {
1101
+ content: "\f141";
1102
+ }
1103
+ .fa-ellipsis-v:before {
1104
+ content: "\f142";
1105
+ }
1106
+ .fa-rss-square:before {
1107
+ content: "\f143";
1108
+ }
1109
+ .fa-play-circle:before {
1110
+ content: "\f144";
1111
+ }
1112
+ .fa-ticket:before {
1113
+ content: "\f145";
1114
+ }
1115
+ .fa-minus-square:before {
1116
+ content: "\f146";
1117
+ }
1118
+ .fa-minus-square-o:before {
1119
+ content: "\f147";
1120
+ }
1121
+ .fa-level-up:before {
1122
+ content: "\f148";
1123
+ }
1124
+ .fa-level-down:before {
1125
+ content: "\f149";
1126
+ }
1127
+ .fa-check-square:before {
1128
+ content: "\f14a";
1129
+ }
1130
+ .fa-pencil-square:before {
1131
+ content: "\f14b";
1132
+ }
1133
+ .fa-external-link-square:before {
1134
+ content: "\f14c";
1135
+ }
1136
+ .fa-share-square:before {
1137
+ content: "\f14d";
1138
+ }
1139
+ .fa-compass:before {
1140
+ content: "\f14e";
1141
+ }
1142
+ .fa-toggle-down:before,
1143
+ .fa-caret-square-o-down:before {
1144
+ content: "\f150";
1145
+ }
1146
+ .fa-toggle-up:before,
1147
+ .fa-caret-square-o-up:before {
1148
+ content: "\f151";
1149
+ }
1150
+ .fa-toggle-right:before,
1151
+ .fa-caret-square-o-right:before {
1152
+ content: "\f152";
1153
+ }
1154
+ .fa-euro:before,
1155
+ .fa-eur:before {
1156
+ content: "\f153";
1157
+ }
1158
+ .fa-gbp:before {
1159
+ content: "\f154";
1160
+ }
1161
+ .fa-dollar:before,
1162
+ .fa-usd:before {
1163
+ content: "\f155";
1164
+ }
1165
+ .fa-rupee:before,
1166
+ .fa-inr:before {
1167
+ content: "\f156";
1168
+ }
1169
+ .fa-cny:before,
1170
+ .fa-rmb:before,
1171
+ .fa-yen:before,
1172
+ .fa-jpy:before {
1173
+ content: "\f157";
1174
+ }
1175
+ .fa-ruble:before,
1176
+ .fa-rouble:before,
1177
+ .fa-rub:before {
1178
+ content: "\f158";
1179
+ }
1180
+ .fa-won:before,
1181
+ .fa-krw:before {
1182
+ content: "\f159";
1183
+ }
1184
+ .fa-bitcoin:before,
1185
+ .fa-btc:before {
1186
+ content: "\f15a";
1187
+ }
1188
+ .fa-file:before {
1189
+ content: "\f15b";
1190
+ }
1191
+ .fa-file-text:before {
1192
+ content: "\f15c";
1193
+ }
1194
+ .fa-sort-alpha-asc:before {
1195
+ content: "\f15d";
1196
+ }
1197
+ .fa-sort-alpha-desc:before {
1198
+ content: "\f15e";
1199
+ }
1200
+ .fa-sort-amount-asc:before {
1201
+ content: "\f160";
1202
+ }
1203
+ .fa-sort-amount-desc:before {
1204
+ content: "\f161";
1205
+ }
1206
+ .fa-sort-numeric-asc:before {
1207
+ content: "\f162";
1208
+ }
1209
+ .fa-sort-numeric-desc:before {
1210
+ content: "\f163";
1211
+ }
1212
+ .fa-thumbs-up:before {
1213
+ content: "\f164";
1214
+ }
1215
+ .fa-thumbs-down:before {
1216
+ content: "\f165";
1217
+ }
1218
+ .fa-youtube-square:before {
1219
+ content: "\f166";
1220
+ }
1221
+ .fa-youtube:before {
1222
+ content: "\f167";
1223
+ }
1224
+ .fa-xing:before {
1225
+ content: "\f168";
1226
+ }
1227
+ .fa-xing-square:before {
1228
+ content: "\f169";
1229
+ }
1230
+ .fa-youtube-play:before {
1231
+ content: "\f16a";
1232
+ }
1233
+ .fa-dropbox:before {
1234
+ content: "\f16b";
1235
+ }
1236
+ .fa-stack-overflow:before {
1237
+ content: "\f16c";
1238
+ }
1239
+ .fa-instagram:before {
1240
+ content: "\f16d";
1241
+ }
1242
+ .fa-flickr:before {
1243
+ content: "\f16e";
1244
+ }
1245
+ .fa-adn:before {
1246
+ content: "\f170";
1247
+ }
1248
+ .fa-bitbucket:before {
1249
+ content: "\f171";
1250
+ }
1251
+ .fa-bitbucket-square:before {
1252
+ content: "\f172";
1253
+ }
1254
+ .fa-tumblr:before {
1255
+ content: "\f173";
1256
+ }
1257
+ .fa-tumblr-square:before {
1258
+ content: "\f174";
1259
+ }
1260
+ .fa-long-arrow-down:before {
1261
+ content: "\f175";
1262
+ }
1263
+ .fa-long-arrow-up:before {
1264
+ content: "\f176";
1265
+ }
1266
+ .fa-long-arrow-left:before {
1267
+ content: "\f177";
1268
+ }
1269
+ .fa-long-arrow-right:before {
1270
+ content: "\f178";
1271
+ }
1272
+ .fa-apple:before {
1273
+ content: "\f179";
1274
+ }
1275
+ .fa-windows:before {
1276
+ content: "\f17a";
1277
+ }
1278
+ .fa-android:before {
1279
+ content: "\f17b";
1280
+ }
1281
+ .fa-linux:before {
1282
+ content: "\f17c";
1283
+ }
1284
+ .fa-dribbble:before {
1285
+ content: "\f17d";
1286
+ }
1287
+ .fa-skype:before {
1288
+ content: "\f17e";
1289
+ }
1290
+ .fa-foursquare:before {
1291
+ content: "\f180";
1292
+ }
1293
+ .fa-trello:before {
1294
+ content: "\f181";
1295
+ }
1296
+ .fa-female:before {
1297
+ content: "\f182";
1298
+ }
1299
+ .fa-male:before {
1300
+ content: "\f183";
1301
+ }
1302
+ .fa-gittip:before {
1303
+ content: "\f184";
1304
+ }
1305
+ .fa-sun-o:before {
1306
+ content: "\f185";
1307
+ }
1308
+ .fa-moon-o:before {
1309
+ content: "\f186";
1310
+ }
1311
+ .fa-archive:before {
1312
+ content: "\f187";
1313
+ }
1314
+ .fa-bug:before {
1315
+ content: "\f188";
1316
+ }
1317
+ .fa-vk:before {
1318
+ content: "\f189";
1319
+ }
1320
+ .fa-weibo:before {
1321
+ content: "\f18a";
1322
+ }
1323
+ .fa-renren:before {
1324
+ content: "\f18b";
1325
+ }
1326
+ .fa-pagelines:before {
1327
+ content: "\f18c";
1328
+ }
1329
+ .fa-stack-exchange:before {
1330
+ content: "\f18d";
1331
+ }
1332
+ .fa-arrow-circle-o-right:before {
1333
+ content: "\f18e";
1334
+ }
1335
+ .fa-arrow-circle-o-left:before {
1336
+ content: "\f190";
1337
+ }
1338
+ .fa-toggle-left:before,
1339
+ .fa-caret-square-o-left:before {
1340
+ content: "\f191";
1341
+ }
1342
+ .fa-dot-circle-o:before {
1343
+ content: "\f192";
1344
+ }
1345
+ .fa-wheelchair:before {
1346
+ content: "\f193";
1347
+ }
1348
+ .fa-vimeo-square:before {
1349
+ content: "\f194";
1350
+ }
1351
+ .fa-turkish-lira:before,
1352
+ .fa-try:before {
1353
+ content: "\f195";
1354
+ }
1355
+ .fa-plus-square-o:before {
1356
+ content: "\f196";
1357
+ }
1358
+ .fa-space-shuttle:before {
1359
+ content: "\f197";
1360
+ }
1361
+ .fa-slack:before {
1362
+ content: "\f198";
1363
+ }
1364
+ .fa-envelope-square:before {
1365
+ content: "\f199";
1366
+ }
1367
+ .fa-wordpress:before {
1368
+ content: "\f19a";
1369
+ }
1370
+ .fa-openid:before {
1371
+ content: "\f19b";
1372
+ }
1373
+ .fa-institution:before,
1374
+ .fa-bank:before,
1375
+ .fa-university:before {
1376
+ content: "\f19c";
1377
+ }
1378
+ .fa-mortar-board:before,
1379
+ .fa-graduation-cap:before {
1380
+ content: "\f19d";
1381
+ }
1382
+ .fa-yahoo:before {
1383
+ content: "\f19e";
1384
+ }
1385
+ .fa-google:before {
1386
+ content: "\f1a0";
1387
+ }
1388
+ .fa-reddit:before {
1389
+ content: "\f1a1";
1390
+ }
1391
+ .fa-reddit-square:before {
1392
+ content: "\f1a2";
1393
+ }
1394
+ .fa-stumbleupon-circle:before {
1395
+ content: "\f1a3";
1396
+ }
1397
+ .fa-stumbleupon:before {
1398
+ content: "\f1a4";
1399
+ }
1400
+ .fa-delicious:before {
1401
+ content: "\f1a5";
1402
+ }
1403
+ .fa-digg:before {
1404
+ content: "\f1a6";
1405
+ }
1406
+ .fa-pied-piper:before {
1407
+ content: "\f1a7";
1408
+ }
1409
+ .fa-pied-piper-alt:before {
1410
+ content: "\f1a8";
1411
+ }
1412
+ .fa-drupal:before {
1413
+ content: "\f1a9";
1414
+ }
1415
+ .fa-joomla:before {
1416
+ content: "\f1aa";
1417
+ }
1418
+ .fa-language:before {
1419
+ content: "\f1ab";
1420
+ }
1421
+ .fa-fax:before {
1422
+ content: "\f1ac";
1423
+ }
1424
+ .fa-building:before {
1425
+ content: "\f1ad";
1426
+ }
1427
+ .fa-child:before {
1428
+ content: "\f1ae";
1429
+ }
1430
+ .fa-paw:before {
1431
+ content: "\f1b0";
1432
+ }
1433
+ .fa-spoon:before {
1434
+ content: "\f1b1";
1435
+ }
1436
+ .fa-cube:before {
1437
+ content: "\f1b2";
1438
+ }
1439
+ .fa-cubes:before {
1440
+ content: "\f1b3";
1441
+ }
1442
+ .fa-behance:before {
1443
+ content: "\f1b4";
1444
+ }
1445
+ .fa-behance-square:before {
1446
+ content: "\f1b5";
1447
+ }
1448
+ .fa-steam:before {
1449
+ content: "\f1b6";
1450
+ }
1451
+ .fa-steam-square:before {
1452
+ content: "\f1b7";
1453
+ }
1454
+ .fa-recycle:before {
1455
+ content: "\f1b8";
1456
+ }
1457
+ .fa-automobile:before,
1458
+ .fa-car:before {
1459
+ content: "\f1b9";
1460
+ }
1461
+ .fa-cab:before,
1462
+ .fa-taxi:before {
1463
+ content: "\f1ba";
1464
+ }
1465
+ .fa-tree:before {
1466
+ content: "\f1bb";
1467
+ }
1468
+ .fa-spotify:before {
1469
+ content: "\f1bc";
1470
+ }
1471
+ .fa-deviantart:before {
1472
+ content: "\f1bd";
1473
+ }
1474
+ .fa-soundcloud:before {
1475
+ content: "\f1be";
1476
+ }
1477
+ .fa-database:before {
1478
+ content: "\f1c0";
1479
+ }
1480
+ .fa-file-pdf-o:before {
1481
+ content: "\f1c1";
1482
+ }
1483
+ .fa-file-word-o:before {
1484
+ content: "\f1c2";
1485
+ }
1486
+ .fa-file-excel-o:before {
1487
+ content: "\f1c3";
1488
+ }
1489
+ .fa-file-powerpoint-o:before {
1490
+ content: "\f1c4";
1491
+ }
1492
+ .fa-file-photo-o:before,
1493
+ .fa-file-picture-o:before,
1494
+ .fa-file-image-o:before {
1495
+ content: "\f1c5";
1496
+ }
1497
+ .fa-file-zip-o:before,
1498
+ .fa-file-archive-o:before {
1499
+ content: "\f1c6";
1500
+ }
1501
+ .fa-file-sound-o:before,
1502
+ .fa-file-audio-o:before {
1503
+ content: "\f1c7";
1504
+ }
1505
+ .fa-file-movie-o:before,
1506
+ .fa-file-video-o:before {
1507
+ content: "\f1c8";
1508
+ }
1509
+ .fa-file-code-o:before {
1510
+ content: "\f1c9";
1511
+ }
1512
+ .fa-vine:before {
1513
+ content: "\f1ca";
1514
+ }
1515
+ .fa-codepen:before {
1516
+ content: "\f1cb";
1517
+ }
1518
+ .fa-jsfiddle:before {
1519
+ content: "\f1cc";
1520
+ }
1521
+ .fa-life-bouy:before,
1522
+ .fa-life-buoy:before,
1523
+ .fa-life-saver:before,
1524
+ .fa-support:before,
1525
+ .fa-life-ring:before {
1526
+ content: "\f1cd";
1527
+ }
1528
+ .fa-circle-o-notch:before {
1529
+ content: "\f1ce";
1530
+ }
1531
+ .fa-ra:before,
1532
+ .fa-rebel:before {
1533
+ content: "\f1d0";
1534
+ }
1535
+ .fa-ge:before,
1536
+ .fa-empire:before {
1537
+ content: "\f1d1";
1538
+ }
1539
+ .fa-git-square:before {
1540
+ content: "\f1d2";
1541
+ }
1542
+ .fa-git:before {
1543
+ content: "\f1d3";
1544
+ }
1545
+ .fa-hacker-news:before {
1546
+ content: "\f1d4";
1547
+ }
1548
+ .fa-tencent-weibo:before {
1549
+ content: "\f1d5";
1550
+ }
1551
+ .fa-qq:before {
1552
+ content: "\f1d6";
1553
+ }
1554
+ .fa-wechat:before,
1555
+ .fa-weixin:before {
1556
+ content: "\f1d7";
1557
+ }
1558
+ .fa-send:before,
1559
+ .fa-paper-plane:before {
1560
+ content: "\f1d8";
1561
+ }
1562
+ .fa-send-o:before,
1563
+ .fa-paper-plane-o:before {
1564
+ content: "\f1d9";
1565
+ }
1566
+ .fa-history:before {
1567
+ content: "\f1da";
1568
+ }
1569
+ .fa-circle-thin:before {
1570
+ content: "\f1db";
1571
+ }
1572
+ .fa-header:before {
1573
+ content: "\f1dc";
1574
+ }
1575
+ .fa-paragraph:before {
1576
+ content: "\f1dd";
1577
+ }
1578
+ .fa-sliders:before {
1579
+ content: "\f1de";
1580
+ }
1581
+ .fa-share-alt:before {
1582
+ content: "\f1e0";
1583
+ }
1584
+ .fa-share-alt-square:before {
1585
+ content: "\f1e1";
1586
+ }
1587
+ .fa-bomb:before {
1588
+ content: "\f1e2";
1589
+ }
1590
+ .fa-soccer-ball-o:before,
1591
+ .fa-futbol-o:before {
1592
+ content: "\f1e3";
1593
+ }
1594
+ .fa-tty:before {
1595
+ content: "\f1e4";
1596
+ }
1597
+ .fa-binoculars:before {
1598
+ content: "\f1e5";
1599
+ }
1600
+ .fa-plug:before {
1601
+ content: "\f1e6";
1602
+ }
1603
+ .fa-slideshare:before {
1604
+ content: "\f1e7";
1605
+ }
1606
+ .fa-twitch:before {
1607
+ content: "\f1e8";
1608
+ }
1609
+ .fa-yelp:before {
1610
+ content: "\f1e9";
1611
+ }
1612
+ .fa-newspaper-o:before {
1613
+ content: "\f1ea";
1614
+ }
1615
+ .fa-wifi:before {
1616
+ content: "\f1eb";
1617
+ }
1618
+ .fa-calculator:before {
1619
+ content: "\f1ec";
1620
+ }
1621
+ .fa-paypal:before {
1622
+ content: "\f1ed";
1623
+ }
1624
+ .fa-google-wallet:before {
1625
+ content: "\f1ee";
1626
+ }
1627
+ .fa-cc-visa:before {
1628
+ content: "\f1f0";
1629
+ }
1630
+ .fa-cc-mastercard:before {
1631
+ content: "\f1f1";
1632
+ }
1633
+ .fa-cc-discover:before {
1634
+ content: "\f1f2";
1635
+ }
1636
+ .fa-cc-amex:before {
1637
+ content: "\f1f3";
1638
+ }
1639
+ .fa-cc-paypal:before {
1640
+ content: "\f1f4";
1641
+ }
1642
+ .fa-cc-stripe:before {
1643
+ content: "\f1f5";
1644
+ }
1645
+ .fa-bell-slash:before {
1646
+ content: "\f1f6";
1647
+ }
1648
+ .fa-bell-slash-o:before {
1649
+ content: "\f1f7";
1650
+ }
1651
+ .fa-trash:before {
1652
+ content: "\f1f8";
1653
+ }
1654
+ .fa-copyright:before {
1655
+ content: "\f1f9";
1656
+ }
1657
+ .fa-at:before {
1658
+ content: "\f1fa";
1659
+ }
1660
+ .fa-eyedropper:before {
1661
+ content: "\f1fb";
1662
+ }
1663
+ .fa-paint-brush:before {
1664
+ content: "\f1fc";
1665
+ }
1666
+ .fa-birthday-cake:before {
1667
+ content: "\f1fd";
1668
+ }
1669
+ .fa-area-chart:before {
1670
+ content: "\f1fe";
1671
+ }
1672
+ .fa-pie-chart:before {
1673
+ content: "\f200";
1674
+ }
1675
+ .fa-line-chart:before {
1676
+ content: "\f201";
1677
+ }
1678
+ .fa-lastfm:before {
1679
+ content: "\f202";
1680
+ }
1681
+ .fa-lastfm-square:before {
1682
+ content: "\f203";
1683
+ }
1684
+ .fa-toggle-off:before {
1685
+ content: "\f204";
1686
+ }
1687
+ .fa-toggle-on:before {
1688
+ content: "\f205";
1689
+ }
1690
+ .fa-bicycle:before {
1691
+ content: "\f206";
1692
+ }
1693
+ .fa-bus:before {
1694
+ content: "\f207";
1695
+ }
1696
+ .fa-ioxhost:before {
1697
+ content: "\f208";
1698
+ }
1699
+ .fa-angellist:before {
1700
+ content: "\f209";
1701
+ }
1702
+ .fa-cc:before {
1703
+ content: "\f20a";
1704
+ }
1705
+ .fa-shekel:before,
1706
+ .fa-sheqel:before,
1707
+ .fa-ils:before {
1708
+ content: "\f20b";
1709
+ }
1710
+ .fa-meanpath:before {
1711
+ content: "\f20c";
1712
+ }
css/font-awesome/fonts/FontAwesome.otf ADDED
Binary file
css/font-awesome/fonts/fontawesome-webfont.eot ADDED
Binary file
css/font-awesome/fonts/fontawesome-webfont.svg ADDED
@@ -0,0 +1,520 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata></metadata>
5
+ <defs>
6
+ <font id="fontawesomeregular" horiz-adv-x="1536" >
7
+ <font-face units-per-em="1792" ascent="1536" descent="-256" />
8
+ <missing-glyph horiz-adv-x="448" />
9
+ <glyph unicode=" " horiz-adv-x="448" />
10
+ <glyph unicode="&#x09;" horiz-adv-x="448" />
11
+ <glyph unicode="&#xa0;" horiz-adv-x="448" />
12
+ <glyph unicode="&#xa8;" horiz-adv-x="1792" />
13
+ <glyph unicode="&#xa9;" horiz-adv-x="1792" />
14
+ <glyph unicode="&#xae;" horiz-adv-x="1792" />
15
+ <glyph unicode="&#xb4;" horiz-adv-x="1792" />
16
+ <glyph unicode="&#xc6;" horiz-adv-x="1792" />
17
+ <glyph unicode="&#xd8;" horiz-adv-x="1792" />
18
+ <glyph unicode="&#x2000;" horiz-adv-x="768" />
19
+ <glyph unicode="&#x2001;" horiz-adv-x="1537" />
20
+ <glyph unicode="&#x2002;" horiz-adv-x="768" />
21
+ <glyph unicode="&#x2003;" horiz-adv-x="1537" />
22
+ <glyph unicode="&#x2004;" horiz-adv-x="512" />
23
+ <glyph unicode="&#x2005;" horiz-adv-x="384" />
24
+ <glyph unicode="&#x2006;" horiz-adv-x="256" />
25
+ <glyph unicode="&#x2007;" horiz-adv-x="256" />
26
+ <glyph unicode="&#x2008;" horiz-adv-x="192" />
27
+ <glyph unicode="&#x2009;" horiz-adv-x="307" />
28
+ <glyph unicode="&#x200a;" horiz-adv-x="85" />
29
+ <glyph unicode="&#x202f;" horiz-adv-x="307" />
30
+ <glyph unicode="&#x205f;" horiz-adv-x="384" />
31
+ <glyph unicode="&#x2122;" horiz-adv-x="1792" />
32
+ <glyph unicode="&#x221e;" horiz-adv-x="1792" />
33
+ <glyph unicode="&#x2260;" horiz-adv-x="1792" />
34
+ <glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
35
+ <glyph unicode="&#xf000;" horiz-adv-x="1792" d="M1699 1350q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5z" />
36
+ <glyph unicode="&#xf001;" d="M1536 1312v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89 t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68z" />
37
+ <glyph unicode="&#xf002;" horiz-adv-x="1664" d="M1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5 t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
38
+ <glyph unicode="&#xf003;" horiz-adv-x="1792" d="M1664 32v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1664 1083v11v13.5t-0.5 13 t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317q54 43 100.5 115.5t46.5 131.5z M1792 1120v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
39
+ <glyph unicode="&#xf004;" horiz-adv-x="1792" d="M896 -128q-26 0 -44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600 q-18 -18 -44 -18z" />
40
+ <glyph unicode="&#xf005;" horiz-adv-x="1664" d="M1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455 l502 -73q56 -9 56 -46z" />
41
+ <glyph unicode="&#xf006;" horiz-adv-x="1664" d="M1137 532l306 297l-422 62l-189 382l-189 -382l-422 -62l306 -297l-73 -421l378 199l377 -199zM1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500 l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46z" />
42
+ <glyph unicode="&#xf007;" horiz-adv-x="1408" d="M1408 131q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81 t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
43
+ <glyph unicode="&#xf008;" horiz-adv-x="1920" d="M384 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 320v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 704v128q0 26 -19 45t-45 19h-128 q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 -64v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM384 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45 t45 -19h128q26 0 45 19t19 45zM1792 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 704v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1792 320v128 q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 704v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19 t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1920 1248v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
44
+ <glyph unicode="&#xf009;" horiz-adv-x="1664" d="M768 512v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM768 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 512v-384q0 -52 -38 -90t-90 -38 h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
45
+ <glyph unicode="&#xf00a;" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 288v-192q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68z" />
46
+ <glyph unicode="&#xf00b;" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h960q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68z" />
47
+ <glyph unicode="&#xf00c;" horiz-adv-x="1792" d="M1671 970q0 -40 -28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68z" />
48
+ <glyph unicode="&#xf00d;" horiz-adv-x="1408" d="M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68 t-28 -68l-294 -294l294 -294q28 -28 28 -68z" />
49
+ <glyph unicode="&#xf00e;" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224 q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5 t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
50
+ <glyph unicode="&#xf010;" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5z M1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z " />
51
+ <glyph unicode="&#xf011;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5 t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343zM896 1408v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90v640q0 52 38 90t90 38t90 -38t38 -90z" />
52
+ <glyph unicode="&#xf012;" horiz-adv-x="1792" d="M256 96v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 224v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 480v-576q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1408 864v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1376v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1472q0 14 9 23t23 9h192q14 0 23 -9t9 -23z" />
53
+ <glyph unicode="&#xf013;" d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1536 749v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108q-44 -23 -91 -38 q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5t-8 23.5v222q0 12 8 23t19 13 l186 28q14 46 39 92q-40 57 -107 138q-10 12 -10 24q0 10 9 23q26 36 98.5 107.5t94.5 71.5q13 0 26 -10l138 -107q44 23 91 38q16 136 29 186q7 28 36 28h222q14 0 24.5 -8.5t11.5 -21.5l28 -184q49 -16 90 -37l142 107q9 9 24 9q13 0 25 -10q129 -119 165 -170q7 -8 7 -22 q0 -12 -8 -23q-15 -21 -51 -66.5t-54 -70.5q26 -50 41 -98l183 -28q13 -2 21 -12.5t8 -23.5z" />
54
+ <glyph unicode="&#xf014;" horiz-adv-x="1408" d="M512 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM768 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1024 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1152 76v948h-896v-948q0 -22 7 -40.5t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832 q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" />
55
+ <glyph unicode="&#xf015;" horiz-adv-x="1664" d="M1408 544v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6zM1631 613l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5t11 21.5 l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5z" />
56
+ <glyph unicode="&#xf016;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z " />
57
+ <glyph unicode="&#xf017;" d="M896 992v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
58
+ <glyph unicode="&#xf018;" horiz-adv-x="1920" d="M1111 540v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20zM1870 73q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256 q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t26 -33l417 -1044q26 -62 26 -116z" />
59
+ <glyph unicode="&#xf019;" horiz-adv-x="1664" d="M1280 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 416v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h465l135 -136 q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68zM1339 985q17 -41 -14 -70l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q42 0 59 -39z" />
60
+ <glyph unicode="&#xf01a;" d="M1120 608q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273 t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
61
+ <glyph unicode="&#xf01b;" d="M1118 660q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198 t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
62
+ <glyph unicode="&#xf01c;" d="M1023 576h316q-1 3 -2.5 8t-2.5 8l-212 496h-708l-212 -496q-1 -2 -2.5 -8t-2.5 -8h316l95 -192h320zM1536 546v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552 q25 -61 25 -123z" />
63
+ <glyph unicode="&#xf01d;" d="M1184 640q0 -37 -32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
64
+ <glyph unicode="&#xf01e;" d="M1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q14 0 25 -9 l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59z" />
65
+ <glyph unicode="&#xf021;" d="M1511 480q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129q-19 -19 -45 -19t-45 19t-19 45v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117 q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5zM1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 22.5v7q65 268 270 434.5t480 166.5 q146 0 284 -55.5t245 -156.5l130 129q19 19 45 19t45 -19t19 -45z" />
66
+ <glyph unicode="&#xf022;" horiz-adv-x="1792" d="M384 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M384 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1536 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5z M1536 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5zM1536 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5 t9.5 -22.5zM1664 160v832q0 13 -9.5 22.5t-22.5 9.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 1248v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47 t47 -113z" />
67
+ <glyph unicode="&#xf023;" horiz-adv-x="1152" d="M320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192zM1152 672v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68z" />
68
+ <glyph unicode="&#xf024;" horiz-adv-x="1792" d="M320 1280q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48 t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -19t19 -45z" />
69
+ <glyph unicode="&#xf025;" horiz-adv-x="1664" d="M1664 650q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78 t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32q-88 0 -156.5 53.5t-90.5 136.5l-185 33l-20 49q-60 148 -60 314q0 151 67 291t179 242.5 t266 163.5t320 61t320 -61t266 -163.5t179 -242.5t67 -291z" />
70
+ <glyph unicode="&#xf026;" horiz-adv-x="768" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45z" />
71
+ <glyph unicode="&#xf027;" horiz-adv-x="1152" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142z" />
72
+ <glyph unicode="&#xf028;" horiz-adv-x="1664" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142zM1408 640q0 -153 -85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45q0 39 39 59q56 29 76 44q74 54 115.5 135.5t41.5 173.5t-41.5 173.5 t-115.5 135.5q-20 15 -76 44q-39 20 -39 59q0 26 19 45t45 19q13 0 26 -5q140 -59 225 -188.5t85 -282.5zM1664 640q0 -230 -127 -422.5t-338 -283.5q-13 -5 -26 -5q-26 0 -45 19t-19 45q0 36 39 59q7 4 22.5 10.5t22.5 10.5q46 25 82 51q123 91 192 227t69 289t-69 289 t-192 227q-36 26 -82 51q-7 4 -22.5 10.5t-22.5 10.5q-39 23 -39 59q0 26 19 45t45 19q13 0 26 -5q211 -91 338 -283.5t127 -422.5z" />
73
+ <glyph unicode="&#xf029;" horiz-adv-x="1408" d="M384 384v-128h-128v128h128zM384 1152v-128h-128v128h128zM1152 1152v-128h-128v128h128zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM896 896h384v384h-384v-384zM640 640v-640h-640v640h640zM1152 128v-128h-128v128h128zM1408 128v-128h-128v128h128z M1408 640v-384h-384v128h-128v-384h-128v640h384v-128h128v128h128zM640 1408v-640h-640v640h640zM1408 1408v-640h-640v640h640z" />
74
+ <glyph unicode="&#xf02a;" horiz-adv-x="1792" d="M63 0h-63v1408h63v-1408zM126 1h-32v1407h32v-1407zM220 1h-31v1407h31v-1407zM377 1h-31v1407h31v-1407zM534 1h-62v1407h62v-1407zM660 1h-31v1407h31v-1407zM723 1h-31v1407h31v-1407zM786 1h-31v1407h31v-1407zM943 1h-63v1407h63v-1407zM1100 1h-63v1407h63v-1407z M1226 1h-63v1407h63v-1407zM1352 1h-63v1407h63v-1407zM1446 1h-63v1407h63v-1407zM1635 1h-94v1407h94v-1407zM1698 1h-32v1407h32v-1407zM1792 0h-63v1408h63v-1408z" />
75
+ <glyph unicode="&#xf02b;" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91z" />
76
+ <glyph unicode="&#xf02c;" horiz-adv-x="1920" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91zM1899 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5h224q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91z" />
77
+ <glyph unicode="&#xf02d;" horiz-adv-x="1664" d="M1639 1058q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23 q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 9h761q74 0 114 -56t18 -130l-274 -906 q-36 -119 -71.5 -153.5t-128.5 -34.5h-869q-27 0 -38 -15q-11 -16 -1 -43q24 -70 144 -70h923q29 0 56 15.5t35 41.5l300 987q7 22 5 57q38 -15 59 -43zM575 1056q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5 t-16.5 -22.5zM492 800q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5z" />
78
+ <glyph unicode="&#xf02e;" horiz-adv-x="1280" d="M1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
79
+ <glyph unicode="&#xf02f;" horiz-adv-x="1664" d="M384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1536 576q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 576v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68 v160h-224q-13 0 -22.5 9.5t-9.5 22.5v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5z" />
80
+ <glyph unicode="&#xf030;" horiz-adv-x="1920" d="M960 864q119 0 203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5t84.5 203.5t203.5 84.5zM1664 1280q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181v896q0 106 75 181t181 75h224l51 136 q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224zM960 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
81
+ <glyph unicode="&#xf031;" horiz-adv-x="1664" d="M725 977l-170 -450q33 0 136.5 -2t160.5 -2q19 0 57 2q-87 253 -184 452zM0 -128l2 79q23 7 56 12.5t57 10.5t49.5 14.5t44.5 29t31 50.5l237 616l280 724h75h53q8 -14 11 -21l205 -480q33 -78 106 -257.5t114 -274.5q15 -34 58 -144.5t72 -168.5q20 -45 35 -57 q19 -15 88 -29.5t84 -20.5q6 -38 6 -57q0 -4 -0.5 -13t-0.5 -13q-63 0 -190 8t-191 8q-76 0 -215 -7t-178 -8q0 43 4 78l131 28q1 0 12.5 2.5t15.5 3.5t14.5 4.5t15 6.5t11 8t9 11t2.5 14q0 16 -31 96.5t-72 177.5t-42 100l-450 2q-26 -58 -76.5 -195.5t-50.5 -162.5 q0 -22 14 -37.5t43.5 -24.5t48.5 -13.5t57 -8.5t41 -4q1 -19 1 -58q0 -9 -2 -27q-58 0 -174.5 10t-174.5 10q-8 0 -26.5 -4t-21.5 -4q-80 -14 -188 -14z" />
82
+ <glyph unicode="&#xf032;" horiz-adv-x="1408" d="M555 15q74 -32 140 -32q376 0 376 335q0 114 -41 180q-27 44 -61.5 74t-67.5 46.5t-80.5 25t-84 10.5t-94.5 2q-73 0 -101 -10q0 -53 -0.5 -159t-0.5 -158q0 -8 -1 -67.5t-0.5 -96.5t4.5 -83.5t12 -66.5zM541 761q42 -7 109 -7q82 0 143 13t110 44.5t74.5 89.5t25.5 142 q0 70 -29 122.5t-79 82t-108 43.5t-124 14q-50 0 -130 -13q0 -50 4 -151t4 -152q0 -27 -0.5 -80t-0.5 -79q0 -46 1 -69zM0 -128l2 94q15 4 85 16t106 27q7 12 12.5 27t8.5 33.5t5.5 32.5t3 37.5t0.5 34v35.5v30q0 982 -22 1025q-4 8 -22 14.5t-44.5 11t-49.5 7t-48.5 4.5 t-30.5 3l-4 83q98 2 340 11.5t373 9.5q23 0 68.5 -0.5t67.5 -0.5q70 0 136.5 -13t128.5 -42t108 -71t74 -104.5t28 -137.5q0 -52 -16.5 -95.5t-39 -72t-64.5 -57.5t-73 -45t-84 -40q154 -35 256.5 -134t102.5 -248q0 -100 -35 -179.5t-93.5 -130.5t-138 -85.5t-163.5 -48.5 t-176 -14q-44 0 -132 3t-132 3q-106 0 -307 -11t-231 -12z" />
83
+ <glyph unicode="&#xf033;" horiz-adv-x="1024" d="M0 -126l17 85q6 2 81.5 21.5t111.5 37.5q28 35 41 101q1 7 62 289t114 543.5t52 296.5v25q-24 13 -54.5 18.5t-69.5 8t-58 5.5l19 103q33 -2 120 -6.5t149.5 -7t120.5 -2.5q48 0 98.5 2.5t121 7t98.5 6.5q-5 -39 -19 -89q-30 -10 -101.5 -28.5t-108.5 -33.5 q-8 -19 -14 -42.5t-9 -40t-7.5 -45.5t-6.5 -42q-27 -148 -87.5 -419.5t-77.5 -355.5q-2 -9 -13 -58t-20 -90t-16 -83.5t-6 -57.5l1 -18q17 -4 185 -31q-3 -44 -16 -99q-11 0 -32.5 -1.5t-32.5 -1.5q-29 0 -87 10t-86 10q-138 2 -206 2q-51 0 -143 -9t-121 -11z" />
84
+ <glyph unicode="&#xf034;" horiz-adv-x="1792" d="M1744 128q33 0 42 -18.5t-11 -44.5l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5t42 18.5h80v1024h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80zM81 1407l54 -27q12 -5 211 -5q44 0 132 2 t132 2q36 0 107.5 -0.5t107.5 -0.5h293q6 0 21 -0.5t20.5 0t16 3t17.5 9t15 17.5l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 48t-14.5 73.5t-7.5 35.5q-6 8 -12 12.5t-15.5 6t-13 2.5t-18 0.5t-16.5 -0.5 q-17 0 -66.5 0.5t-74.5 0.5t-64 -2t-71 -6q-9 -81 -8 -136q0 -94 2 -388t2 -455q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27 q19 42 19 383q0 101 -3 303t-3 303v117q0 2 0.5 15.5t0.5 25t-1 25.5t-3 24t-5 14q-11 12 -162 12q-33 0 -93 -12t-80 -26q-19 -13 -34 -72.5t-31.5 -111t-42.5 -53.5q-42 26 -56 44v383z" />
85
+ <glyph unicode="&#xf035;" d="M81 1407l54 -27q12 -5 211 -5q44 0 132 2t132 2q70 0 246.5 1t304.5 0.5t247 -4.5q33 -1 56 31l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 47.5t-15 73.5t-7 36q-10 13 -27 19q-5 2 -66 2q-30 0 -93 1t-103 1 t-94 -2t-96 -7q-9 -81 -8 -136l1 -152v52q0 -55 1 -154t1.5 -180t0.5 -153q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27 q7 16 11.5 74t6 145.5t1.5 155t-0.5 153.5t-0.5 89q0 7 -2.5 21.5t-2.5 22.5q0 7 0.5 44t1 73t0 76.5t-3 67.5t-6.5 32q-11 12 -162 12q-41 0 -163 -13.5t-138 -24.5q-19 -12 -34 -71.5t-31.5 -111.5t-42.5 -54q-42 26 -56 44v383zM1310 125q12 0 42 -19.5t57.5 -41.5 t59.5 -49t36 -30q26 -21 26 -49t-26 -49q-4 -3 -36 -30t-59.5 -49t-57.5 -41.5t-42 -19.5q-13 0 -20.5 10.5t-10 28.5t-2.5 33.5t1.5 33t1.5 19.5h-1024q0 -2 1.5 -19.5t1.5 -33t-2.5 -33.5t-10 -28.5t-20.5 -10.5q-12 0 -42 19.5t-57.5 41.5t-59.5 49t-36 30q-26 21 -26 49 t26 49q4 3 36 30t59.5 49t57.5 41.5t42 19.5q13 0 20.5 -10.5t10 -28.5t2.5 -33.5t-1.5 -33t-1.5 -19.5h1024q0 2 -1.5 19.5t-1.5 33t2.5 33.5t10 28.5t20.5 10.5z" />
86
+ <glyph unicode="&#xf036;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
87
+ <glyph unicode="&#xf037;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h896q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45t-45 -19 h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45z" />
88
+ <glyph unicode="&#xf038;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
89
+ <glyph unicode="&#xf039;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
90
+ <glyph unicode="&#xf03a;" horiz-adv-x="1792" d="M256 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM256 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5 t9.5 -22.5zM256 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344 q13 0 22.5 -9.5t9.5 -22.5zM256 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192 q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5z" />
91
+ <glyph unicode="&#xf03b;" horiz-adv-x="1792" d="M384 992v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23t9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
92
+ <glyph unicode="&#xf03c;" horiz-adv-x="1792" d="M352 704q0 -14 -9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
93
+ <glyph unicode="&#xf03d;" horiz-adv-x="1792" d="M1792 1184v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5 q39 -17 39 -59z" />
94
+ <glyph unicode="&#xf03e;" horiz-adv-x="1920" d="M640 960q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 576v-448h-1408v192l320 320l160 -160l512 512zM1760 1280h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216 q0 13 -9.5 22.5t-22.5 9.5zM1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
95
+ <glyph unicode="&#xf040;" d="M363 0l91 91l-235 235l-91 -91v-107h128v-128h107zM886 928q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17zM832 1120l416 -416l-832 -832h-416v416zM1515 1024q0 -53 -37 -90l-166 -166l-416 416l166 165q36 38 90 38 q53 0 91 -38l235 -234q37 -39 37 -91z" />
96
+ <glyph unicode="&#xf041;" horiz-adv-x="1024" d="M768 896q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1024 896q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179q0 212 150 362t362 150t362 -150t150 -362z" />
97
+ <glyph unicode="&#xf042;" d="M768 96v1088q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
98
+ <glyph unicode="&#xf043;" horiz-adv-x="1024" d="M512 384q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 512q0 -212 -150 -362t-362 -150t-362 150t-150 362 q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275z" />
99
+ <glyph unicode="&#xf044;" horiz-adv-x="1792" d="M888 352l116 116l-152 152l-116 -116v-56h96v-96h56zM1328 1072q-16 16 -33 -1l-350 -350q-17 -17 -1 -33t33 1l350 350q17 17 1 33zM1408 478v-190q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29zM1312 1216l288 -288l-672 -672h-288v288zM1756 1084l-92 -92 l-288 288l92 92q28 28 68 28t68 -28l152 -152q28 -28 28 -68t-28 -68z" />
100
+ <glyph unicode="&#xf045;" horiz-adv-x="1664" d="M1408 547v-259q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h255v0q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832 q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29zM1645 1043l-384 -384q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34q-8 -2 -12 -2q-16 0 -26 13q-10 14 -21 31t-39.5 68.5t-49.5 99.5 t-38.5 114t-17.5 122q0 49 3.5 91t14 90t28 88t47 81.5t68.5 74t94.5 61.5t124.5 48.5t159.5 30.5t196.5 11h160v192q0 42 39 59q13 5 25 5q26 0 45 -19l384 -384q19 -19 19 -45t-19 -45z" />
101
+ <glyph unicode="&#xf046;" horiz-adv-x="1664" d="M1408 606v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832 q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3q20 -8 20 -29zM1639 1095l-814 -814q-24 -24 -57 -24t-57 24l-430 430q-24 24 -24 57t24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110 q24 -24 24 -57t-24 -57z" />
102
+ <glyph unicode="&#xf047;" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45 t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
103
+ <glyph unicode="&#xf048;" horiz-adv-x="1024" d="M979 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19z" />
104
+ <glyph unicode="&#xf049;" horiz-adv-x="1792" d="M1747 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19l710 710 q19 19 32 13t13 -32v-710q4 11 13 19z" />
105
+ <glyph unicode="&#xf04a;" horiz-adv-x="1664" d="M1619 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-8 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45t19 45l710 710q19 19 32 13t13 -32v-710q5 11 13 19z" />
106
+ <glyph unicode="&#xf04b;" horiz-adv-x="1408" d="M1384 609l-1328 -738q-23 -13 -39.5 -3t-16.5 36v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31z" />
107
+ <glyph unicode="&#xf04c;" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45zM640 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45z" />
108
+ <glyph unicode="&#xf04d;" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
109
+ <glyph unicode="&#xf04e;" horiz-adv-x="1664" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
110
+ <glyph unicode="&#xf050;" horiz-adv-x="1792" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19l-710 -710 q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
111
+ <glyph unicode="&#xf051;" horiz-adv-x="1024" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19z" />
112
+ <glyph unicode="&#xf052;" horiz-adv-x="1538" d="M14 557l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13t13 32zM1473 0h-1408q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19z" />
113
+ <glyph unicode="&#xf053;" horiz-adv-x="1280" d="M1171 1235l-531 -531l531 -531q19 -19 19 -45t-19 -45l-166 -166q-19 -19 -45 -19t-45 19l-742 742q-19 19 -19 45t19 45l742 742q19 19 45 19t45 -19l166 -166q19 -19 19 -45t-19 -45z" />
114
+ <glyph unicode="&#xf054;" horiz-adv-x="1280" d="M1107 659l-742 -742q-19 -19 -45 -19t-45 19l-166 166q-19 19 -19 45t19 45l531 531l-531 531q-19 19 -19 45t19 45l166 166q19 19 45 19t45 -19l742 -742q19 -19 19 -45t-19 -45z" />
115
+ <glyph unicode="&#xf055;" d="M1216 576v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5 t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
116
+ <glyph unicode="&#xf056;" d="M1216 576v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 t103 -385.5z" />
117
+ <glyph unicode="&#xf057;" d="M1149 414q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45q0 -27 19 -46l90 -90q19 -19 46 -19 q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19l90 90q19 19 19 46zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
118
+ <glyph unicode="&#xf058;" d="M1284 802q0 28 -18 46l-91 90q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
119
+ <glyph unicode="&#xf059;" d="M896 160v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1152 832q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26t37.5 -59 q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
120
+ <glyph unicode="&#xf05a;" d="M1024 160v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23zM896 1056v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23 t23 -9h192q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
121
+ <glyph unicode="&#xf05b;" d="M1197 512h-109q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109 q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5zM1536 704v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v143 q-161 37 -278.5 154.5t-154.5 278.5h-143q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h143q37 161 154.5 278.5t278.5 154.5v143q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-143q161 -37 278.5 -154.5t154.5 -278.5h143q26 0 45 -19t19 -45z" />
122
+ <glyph unicode="&#xf05c;" d="M1097 457l-146 -146q-10 -10 -23 -10t-23 10l-137 137l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23 l-137 -137l137 -137q10 -10 10 -23t-10 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5 t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
123
+ <glyph unicode="&#xf05d;" d="M1171 723l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45t19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198 t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
124
+ <glyph unicode="&#xf05e;" d="M1312 643q0 161 -87 295l-754 -753q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5zM313 344l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199t-73 -274q0 -162 89 -299zM1536 643q0 -157 -61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61 t-245 164t-163.5 246t-61 300t61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5z" />
125
+ <glyph unicode="&#xf060;" d="M1536 640v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5 t32.5 -90.5z" />
126
+ <glyph unicode="&#xf061;" d="M1472 576q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90z" />
127
+ <glyph unicode="&#xf062;" horiz-adv-x="1664" d="M1611 565q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75q-38 38 -38 90q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651 q37 -39 37 -91z" />
128
+ <glyph unicode="&#xf063;" horiz-adv-x="1664" d="M1611 704q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" />
129
+ <glyph unicode="&#xf064;" horiz-adv-x="1792" d="M1792 896q0 -26 -19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22 t-13.5 30t-10.5 24q-127 285 -127 451q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45z" />
130
+ <glyph unicode="&#xf065;" d="M755 480q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23zM1536 1344v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332 q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45z" />
131
+ <glyph unicode="&#xf066;" d="M768 576v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45zM1523 1248q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45 t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23z" />
132
+ <glyph unicode="&#xf067;" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68z" />
133
+ <glyph unicode="&#xf068;" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68z" />
134
+ <glyph unicode="&#xf069;" horiz-adv-x="1664" d="M1482 486q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5t59.5 77.5l266 154l-266 154 q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5l-266 -154z" />
135
+ <glyph unicode="&#xf06a;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM896 161v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190q0 -13 10 -23t23 -10h192 q13 0 22 9.5t9 23.5zM894 505l18 621q0 12 -10 18q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5z" />
136
+ <glyph unicode="&#xf06b;" d="M928 180v56v468v192h-320v-192v-468v-56q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5zM472 1024h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68t28 -68t68 -28zM1160 1120q0 40 -28 68t-68 28q-43 0 -69 -31l-125 -161h194q40 0 68 28t28 68zM1536 864v-320 q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 77 168 77q93 0 158.5 -65.5t65.5 -158.5 t-65.5 -158.5t-158.5 -65.5h440q14 0 23 -9t9 -23z" />
137
+ <glyph unicode="&#xf06c;" horiz-adv-x="1792" d="M1280 832q0 26 -19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45q0 -26 19 -45t45 -19q24 0 45 19q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45zM1792 1030q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268 q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-30 0 -51 11t-31 24t-27 42q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 38t-16 44q-9 51 -9 104q0 115 43.5 220t119 184.5 t170.5 139t204 95.5q55 18 145 25.5t179.5 9t178.5 6t163.5 24t113.5 56.5l29.5 29.5t29.5 28t27 20t36.5 16t43.5 4.5q39 0 70.5 -46t47.5 -112t24 -124t8 -96z" />
138
+ <glyph unicode="&#xf06d;" horiz-adv-x="1408" d="M1408 -160v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1152 896q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1 q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100t113.5 -122.5t72.5 -150.5t27.5 -184z" />
139
+ <glyph unicode="&#xf06e;" horiz-adv-x="1792" d="M1664 576q-152 236 -381 353q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5 t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1792 576q0 -34 -20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69t20 69q140 229 376.5 368t499.5 139t499.5 -139t376.5 -368q20 -35 20 -69z" />
140
+ <glyph unicode="&#xf070;" horiz-adv-x="1792" d="M555 201l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353q167 -258 427 -375zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1307 1151q0 -7 -1 -9 q-105 -188 -315 -566t-316 -567l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87q-143 65 -263.5 173t-208.5 245q-20 31 -20 69t20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 18 -6t31 -15.5t33 -18.5t31.5 -18.5t19.5 -11.5 q16 -10 16 -27zM1344 704q0 -139 -79 -253.5t-209 -164.5l280 502q8 -45 8 -84zM1792 576q0 -35 -20 -69q-39 -64 -109 -145q-150 -172 -347.5 -267t-419.5 -95l74 132q212 18 392.5 137t301.5 307q-115 179 -282 294l63 112q95 -64 182.5 -153t144.5 -184q20 -34 20 -69z " />
141
+ <glyph unicode="&#xf071;" horiz-adv-x="1792" d="M1024 161v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5zM1022 535l18 459q0 12 -10 19q-13 11 -24 11h-220q-11 0 -24 -11q-10 -7 -10 -21l17 -457q0 -10 10 -16.5t24 -6.5h185 q14 0 23.5 6.5t10.5 16.5zM1008 1469l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126l768 1408q17 31 47 49t65 18t65 -18t47 -49z" />
142
+ <glyph unicode="&#xf072;" horiz-adv-x="1408" d="M1376 1376q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23q-1 13 9 25l96 97q9 9 23 9 q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12z" />
143
+ <glyph unicode="&#xf073;" horiz-adv-x="1664" d="M128 -128h288v288h-288v-288zM480 -128h320v288h-320v-288zM128 224h288v320h-288v-320zM480 224h320v320h-320v-320zM128 608h288v288h-288v-288zM864 -128h320v288h-320v-288zM480 608h320v288h-320v-288zM1248 -128h288v288h-288v-288zM864 224h320v320h-320v-320z M512 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1248 224h288v320h-288v-320zM864 608h320v288h-320v-288zM1248 608h288v288h-288v-288zM1280 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64 q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47 h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
144
+ <glyph unicode="&#xf074;" horiz-adv-x="1792" d="M666 1055q-60 -92 -137 -273q-22 45 -37 72.5t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q250 0 410 -225zM1792 256q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192q-32 0 -85 -0.5t-81 -1t-73 1 t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1792 1152q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5 v192h-256q-48 0 -87 -15t-69 -45t-51 -61.5t-45 -77.5q-32 -62 -78 -171q-29 -66 -49.5 -111t-54 -105t-64 -100t-74 -83t-90 -68.5t-106.5 -42t-128 -16.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q48 0 87 15t69 45t51 61.5t45 77.5q32 62 78 171q29 66 49.5 111 t54 105t64 100t74 83t90 68.5t106.5 42t128 16.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
145
+ <glyph unicode="&#xf075;" horiz-adv-x="1792" d="M1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281 q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5z" />
146
+ <glyph unicode="&#xf076;" d="M1536 704v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5t-98.5 362v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384 q26 0 45 -19t19 -45zM512 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45zM1536 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45z" />
147
+ <glyph unicode="&#xf077;" horiz-adv-x="1792" d="M1683 205l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5t19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5z" />
148
+ <glyph unicode="&#xf078;" horiz-adv-x="1792" d="M1683 728l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5t19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5z" />
149
+ <glyph unicode="&#xf079;" horiz-adv-x="1920" d="M1280 32q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -11 7 -21 zM1920 448q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v-416h192q26 0 45 -19t19 -45z " />
150
+ <glyph unicode="&#xf07a;" horiz-adv-x="1664" d="M640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5 l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5 t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" />
151
+ <glyph unicode="&#xf07b;" horiz-adv-x="1664" d="M1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
152
+ <glyph unicode="&#xf07c;" horiz-adv-x="1920" d="M1879 584q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43zM1536 928v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5 t-0.5 12.5v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158z" />
153
+ <glyph unicode="&#xf07d;" horiz-adv-x="768" d="M704 1216q0 -26 -19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45z" />
154
+ <glyph unicode="&#xf07e;" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
155
+ <glyph unicode="&#xf080;" horiz-adv-x="2048" d="M640 640v-512h-256v512h256zM1024 1152v-1024h-256v1024h256zM2048 0v-128h-2048v1536h128v-1408h1920zM1408 896v-768h-256v768h256zM1792 1280v-1152h-256v1152h256z" />
156
+ <glyph unicode="&#xf081;" d="M1280 926q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4 q21 -63 74.5 -104t121.5 -42q-116 -90 -261 -90q-26 0 -50 3q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5 t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
157
+ <glyph unicode="&#xf082;" d="M1536 160q0 -119 -84.5 -203.5t-203.5 -84.5h-192v608h203l30 224h-233v143q0 54 28 83t96 29l132 1v207q-96 9 -180 9q-136 0 -218 -80.5t-82 -225.5v-166h-224v-224h224v-608h-544q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960 q119 0 203.5 -84.5t84.5 -203.5v-960z" />
158
+ <glyph unicode="&#xf083;" horiz-adv-x="1792" d="M928 704q0 14 -9 23t-23 9q-66 0 -113 -47t-47 -113q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9t9 23zM1152 574q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM128 0h1536v128h-1536v-128zM1280 574q0 159 -112.5 271.5 t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM256 1216h384v128h-384v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM1792 1280v-1280q0 -53 -37.5 -90.5t-90.5 -37.5h-1536q-53 0 -90.5 37.5t-37.5 90.5v1280 q0 53 37.5 90.5t90.5 37.5h1536q53 0 90.5 -37.5t37.5 -90.5z" />
159
+ <glyph unicode="&#xf084;" horiz-adv-x="1792" d="M832 1024q0 80 -56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136t56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56t56 136zM1683 320q0 -17 -49 -66t-66 -49q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26 l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189 -131 -365l355 -355l96 96q-3 3 -26 24.5t-40 38.5t-33 36.5 t-16 28.5q0 17 49 66t66 49q13 0 23 -10q6 -6 46 -44.5t82 -79.5t86.5 -86t73 -78t28.5 -41z" />
160
+ <glyph unicode="&#xf085;" horiz-adv-x="1920" d="M896 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1664 128q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1152q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1280 731v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -10 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90q-37 -19 -77 -31q-11 -108 -23 -155q-7 -24 -30 -24h-186q-11 0 -20 7.5t-10 17.5 l-23 153q-34 10 -75 31l-118 -89q-7 -7 -20 -7q-11 0 -21 8q-144 133 -144 160q0 9 7 19q10 14 41 53t47 61q-23 44 -35 82l-152 24q-10 1 -17 9.5t-7 19.5v185q0 10 7 19.5t16 10.5l155 24q11 35 32 76q-34 48 -90 115q-7 11 -7 20q0 12 7 20q22 30 82 89t79 59q11 0 21 -7 l115 -90q34 18 77 32q11 108 23 154q7 24 30 24h186q11 0 20 -7.5t10 -17.5l23 -153q34 -10 75 -31l118 89q8 7 20 7q11 0 21 -8q144 -133 144 -160q0 -9 -7 -19q-12 -16 -42 -54t-45 -60q23 -48 34 -82l152 -23q10 -2 17 -10.5t7 -19.5zM1920 198v-140q0 -16 -149 -31 q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20 t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31zM1920 1222v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68 q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70 q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31z" />
161
+ <glyph unicode="&#xf086;" horiz-adv-x="1792" d="M1408 768q0 -139 -94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224 q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257zM1792 512q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7 q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230z" />
162
+ <glyph unicode="&#xf087;" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 768q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5 t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5q32 1 53.5 47t21.5 81zM1536 769 q0 -89 -49 -163q9 -33 9 -69q0 -77 -38 -144q3 -21 3 -43q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5h-36h-93q-96 0 -189.5 22.5t-216.5 65.5q-116 40 -138 40h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h274q36 24 137 155q58 75 107 128 q24 25 35.5 85.5t30.5 126.5t62 108q39 37 90 37q84 0 151 -32.5t102 -101.5t35 -186q0 -93 -48 -192h176q104 0 180 -76t76 -179z" />
163
+ <glyph unicode="&#xf088;" d="M256 1088q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 512q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 32 18 69t-17.5 73.5t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5 t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640h32q16 0 35.5 -9t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h352q50 0 89 38.5t39 89.5z M1536 511q0 -103 -76 -179t-180 -76h-176q48 -99 48 -192q0 -118 -35 -186q-35 -69 -102 -101.5t-151 -32.5q-51 0 -90 37q-34 33 -54 82t-25.5 90.5t-17.5 84.5t-31 64q-48 50 -107 127q-101 131 -137 155h-274q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5 h288q22 0 138 40q128 44 223 66t200 22h112q140 0 226.5 -79t85.5 -216v-5q60 -77 60 -178q0 -22 -3 -43q38 -67 38 -144q0 -36 -9 -69q49 -74 49 -163z" />
164
+ <glyph unicode="&#xf089;" horiz-adv-x="896" d="M832 1504v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41z" />
165
+ <glyph unicode="&#xf08a;" horiz-adv-x="1792" d="M1664 940q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5t-21.5 -143q0 -168 187 -355l581 -560l580 559 q188 188 188 356zM1792 940q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5 q224 0 351 -124t127 -344z" />
166
+ <glyph unicode="&#xf08b;" horiz-adv-x="1664" d="M640 96q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704 q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5zM1568 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45z" />
167
+ <glyph unicode="&#xf08c;" d="M237 122h231v694h-231v-694zM483 1030q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5zM1068 122h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694h231v388q0 38 7 56q15 35 45 59.5t74 24.5 q116 0 116 -157v-371zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
168
+ <glyph unicode="&#xf08d;" horiz-adv-x="1152" d="M480 672v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448q0 -14 9 -23t23 -9t23 9t9 23zM1152 320q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19t-19 45q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38 t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5z" />
169
+ <glyph unicode="&#xf08e;" horiz-adv-x="1792" d="M1408 608v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1792 1472v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q26 0 45 -19t19 -45z" />
170
+ <glyph unicode="&#xf090;" d="M1184 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45zM1536 992v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5 q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -203.5z" />
171
+ <glyph unicode="&#xf091;" horiz-adv-x="1664" d="M458 653q-74 162 -74 371h-256v-96q0 -78 94.5 -162t235.5 -113zM1536 928v96h-256q0 -209 -74 -371q141 29 235.5 113t94.5 162zM1664 1056v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91 t97.5 -37q75 0 133.5 -45.5t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 44.5t-173 97.5t-112 130t-41.5 143v128q0 40 28 68t68 28h288v96 q0 66 47 113t113 47h576q66 0 113 -47t47 -113v-96h288q40 0 68 -28t28 -68z" />
172
+ <glyph unicode="&#xf092;" d="M394 184q-8 -9 -20 3q-13 11 -4 19q8 9 20 -3q12 -11 4 -19zM352 245q9 -12 0 -19q-8 -6 -17 7t0 18q9 7 17 -6zM291 305q-5 -7 -13 -2q-10 5 -7 12q3 5 13 2q10 -5 7 -12zM322 271q-6 -7 -16 3q-9 11 -2 16q6 6 16 -3q9 -11 2 -16zM451 159q-4 -12 -19 -6q-17 4 -13 15 t19 7q16 -5 13 -16zM514 154q0 -11 -16 -11q-17 -2 -17 11q0 11 16 11q17 2 17 -11zM572 164q2 -10 -14 -14t-18 8t14 15q16 2 18 -9zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-224q-16 0 -24.5 1t-19.5 5t-16 14.5t-5 27.5v239q0 97 -52 142q57 6 102.5 18t94 39 t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103 q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -103t0.5 -68q0 -22 -11 -33.5t-22 -13t-33 -1.5 h-224q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
173
+ <glyph unicode="&#xf093;" horiz-adv-x="1664" d="M1280 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 288v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h427q21 -56 70.5 -92 t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68zM1339 936q-17 -40 -59 -40h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40q-17 39 14 69l448 448q18 19 45 19t45 -19l448 -448q31 -30 14 -69z" />
174
+ <glyph unicode="&#xf094;" d="M1407 710q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5 q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275zM1535 712q0 -165 -70 -327.5t-196 -288t-281 -180.5q-124 -44 -326 -44 q-57 0 -170 14.5t-169 14.5q-24 0 -72.5 -14.5t-73.5 -14.5q-73 0 -123.5 55.5t-50.5 128.5q0 24 11 68t11 67q0 40 -12.5 120.5t-12.5 121.5q0 111 18 217.5t54.5 209.5t100.5 194t150 156q78 59 232 120q194 78 316 78q60 0 175.5 -24t173.5 -24q19 0 57 5t58 5 q81 0 118 -50.5t37 -134.5q0 -23 -5 -68t-5 -68q0 -10 1 -18.5t3 -17t4 -13.5t6.5 -16t6.5 -17q16 -40 25 -118.5t9 -136.5z" />
175
+ <glyph unicode="&#xf095;" horiz-adv-x="1408" d="M1408 296q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -52.5 3.5t-57.5 12.5t-47.5 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-128 79 -264.5 215.5t-215.5 264.5q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47.5t-12.5 57.5t-3.5 52.5 q0 92 51 186q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5 -20.5t14 -24t11.5 -19q76 -137 174 -235t235 -174 q2 -1 19 -11.5t24 -14t20.5 -8.5t22.5 -5q18 0 46 28.5t53 62t55 62t50 28.5q14 0 28.5 -7t35.5 -21.5t25 -17.5q25 -15 53.5 -31t63.5 -35t54 -30q70 -35 76 -53q3 -7 3 -21z" />
176
+ <glyph unicode="&#xf096;" horiz-adv-x="1408" d="M1120 1280h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q119 0 203.5 -84.5t84.5 -203.5z" />
177
+ <glyph unicode="&#xf097;" horiz-adv-x="1280" d="M1152 1280h-1024v-1242l423 406l89 85l89 -85l423 -406v1242zM1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289 q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
178
+ <glyph unicode="&#xf098;" d="M1280 343q0 11 -2 16q-3 8 -38.5 29.5t-88.5 49.5l-53 29q-5 3 -19 13t-25 15t-21 5q-18 0 -47 -32.5t-57 -65.5t-44 -33q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170.5 126.5t-126.5 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5t-3.5 16.5q0 13 20.5 33.5t45 38.5 t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216.5 -320.5t320.5 -216.5q6 -2 30 -11t33 -12.5 t29.5 -10t33 -9t30.5 -5t34 -2.5q57 0 130.5 34t94.5 80q22 53 22 101zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
179
+ <glyph unicode="&#xf099;" horiz-adv-x="1664" d="M1620 1128q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41 q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50z" />
180
+ <glyph unicode="&#xf09a;" horiz-adv-x="1024" d="M959 1524v-264h-157q-86 0 -116 -36t-30 -108v-189h293l-39 -296h-254v-759h-306v759h-255v296h255v218q0 186 104 288.5t277 102.5q147 0 228 -12z" />
181
+ <glyph unicode="&#xf09b;" d="M1536 640q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -39.5 7t-12.5 30v211q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5 q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23 q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -89t0.5 -54q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
182
+ <glyph unicode="&#xf09c;" horiz-adv-x="1664" d="M1664 960v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5 t316.5 -131.5t131.5 -316.5z" />
183
+ <glyph unicode="&#xf09d;" horiz-adv-x="1920" d="M1760 1408q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600zM160 1280q-13 0 -22.5 -9.5t-9.5 -22.5v-224h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600zM1760 0q13 0 22.5 9.5t9.5 22.5v608h-1664v-608 q0 -13 9.5 -22.5t22.5 -9.5h1600zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" />
184
+ <glyph unicode="&#xf09e;" horiz-adv-x="1408" d="M384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 69q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5t-391.5 184.5q-25 2 -41.5 20t-16.5 43v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5 t259 -181.5q114 -113 181.5 -259t80.5 -306zM1408 67q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102q-25 1 -42.5 19.5t-17.5 43.5v143q0 28 20 46q18 18 44 18h3q262 -13 501.5 -120t425.5 -294 q187 -186 294 -425.5t120 -501.5z" />
185
+ <glyph unicode="&#xf0a0;" d="M1040 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1296 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1408 160v320q0 13 -9.5 22.5t-22.5 9.5 h-1216q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM1536 480v-320q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v320q0 25 16 75 l197 606q17 53 63 86t101 33h782q55 0 101 -33t63 -86l197 -606q16 -50 16 -75z" />
186
+ <glyph unicode="&#xf0a1;" horiz-adv-x="1792" d="M1664 896q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5 t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384zM1536 292v954q-394 -302 -768 -343v-270q377 -42 768 -341z" />
187
+ <glyph unicode="&#xf0a2;" horiz-adv-x="1792" d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM246 128h1300q-266 300 -266 832q0 51 -24 105t-69 103t-121.5 80.5t-169.5 31.5t-169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -532 -266 -832z M1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5 t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" />
188
+ <glyph unicode="&#xf0a3;" d="M1376 640l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53q-41 -12 -70 19q-31 29 -19 70 l53 186l-188 48q-40 10 -52 51q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 -188l186 53q41 12 70 -19q31 -29 19 -70 l-53 -186l188 -48q40 -10 52 -51q10 -42 -20 -70z" />
189
+ <glyph unicode="&#xf0a4;" horiz-adv-x="1792" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 768q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106 q-69 -57 -140 -57h-32v-640h32q72 0 167 -32t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90zM1792 769q0 -105 -75.5 -181t-180.5 -76h-169q-4 -62 -37 -119q3 -21 3 -43 q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5q-133 0 -322 69q-164 59 -223 59h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h288q10 0 21.5 4.5t23.5 14t22.5 18t24 22.5t20.5 21.5t19 21.5t14 17q65 74 100 129q13 21 33 62t37 72t40.5 63t55 49.5 t69.5 17.5q125 0 206.5 -67t81.5 -189q0 -68 -22 -128h374q104 0 180 -76t76 -179z" />
190
+ <glyph unicode="&#xf0a5;" horiz-adv-x="1792" d="M1376 128h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-2 3 -3.5 4.5t-4 4.5t-4.5 5q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576 q-50 0 -89 -38.5t-39 -89.5q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32zM1664 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45 t45 -19t45 19t19 45zM1792 768v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-288q-59 0 -223 -59q-190 -69 -317 -69q-142 0 -230 77.5t-87 217.5l1 5q-61 76 -61 178q0 22 3 43q-33 57 -37 119h-169q-105 0 -180.5 76t-75.5 181q0 103 76 179t180 76h374q-22 60 -22 128 q0 122 81.5 189t206.5 67q38 0 69.5 -17.5t55 -49.5t40.5 -63t37 -72t33 -62q35 -55 100 -129q2 -3 14 -17t19 -21.5t20.5 -21.5t24 -22.5t22.5 -18t23.5 -14t21.5 -4.5h288q53 0 90.5 -37.5t37.5 -90.5z" />
191
+ <glyph unicode="&#xf0a6;" d="M1280 -64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 700q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576 q-20 0 -48.5 15t-55 33t-68 33t-84.5 15q-67 0 -97.5 -44.5t-30.5 -115.5q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140v-32h640v32q0 72 32 167t64 193.5t32 179.5zM1536 705q0 -133 -69 -322q-59 -164 -59 -223v-288q0 -53 -37.5 -90.5 t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5v288q0 10 -4.5 21.5t-14 23.5t-18 22.5t-22.5 24t-21.5 20.5t-21.5 19t-17 14q-74 65 -129 100q-21 13 -62 33t-72 37t-63 40.5t-49.5 55t-17.5 69.5q0 125 67 206.5t189 81.5q68 0 128 -22v374q0 104 76 180t179 76 q105 0 181 -75.5t76 -180.5v-169q62 -4 119 -37q21 3 43 3q101 0 178 -60q139 1 219.5 -85t80.5 -227z" />
192
+ <glyph unicode="&#xf0a7;" d="M1408 576q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33 t55 33t48.5 15v-576q0 -50 38.5 -89t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5zM1280 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 580 q0 -142 -77.5 -230t-217.5 -87l-5 1q-76 -61 -178 -61q-22 0 -43 3q-54 -30 -119 -37v-169q0 -105 -76 -180.5t-181 -75.5q-103 0 -179 76t-76 180v374q-54 -22 -128 -22q-121 0 -188.5 81.5t-67.5 206.5q0 38 17.5 69.5t49.5 55t63 40.5t72 37t62 33q55 35 129 100 q3 2 17 14t21.5 19t21.5 20.5t22.5 24t18 22.5t14 23.5t4.5 21.5v288q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-288q0 -59 59 -223q69 -190 69 -317z" />
193
+ <glyph unicode="&#xf0a8;" d="M1280 576v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45t18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502q26 0 45 19t19 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
194
+ <glyph unicode="&#xf0a9;" d="M1285 640q0 27 -18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18l362 362l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
195
+ <glyph unicode="&#xf0aa;" d="M1284 641q0 27 -18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45t18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
196
+ <glyph unicode="&#xf0ab;" d="M1284 639q0 27 -18 45l-91 91q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45t18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
197
+ <glyph unicode="&#xf0ac;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1042 887q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11 q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 10.5t-9.5 10.5q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5q-3 2 -6 1.5t-4.5 -1t-4.5 -3t-5 -3.5 q-3 -2 -8.5 -3t-8.5 -2q15 5 -1 11q-10 4 -16 3q9 4 7.5 12t-8.5 14h5q-1 4 -8.5 8.5t-17.5 8.5t-13 6q-8 5 -34 9.5t-33 0.5q-5 -6 -4.5 -10.5t4 -14t3.5 -12.5q1 -6 -5.5 -13t-6.5 -12q0 -7 14 -15.5t10 -21.5q-3 -8 -16 -16t-16 -12q-5 -8 -1.5 -18.5t10.5 -16.5 q2 -2 1.5 -4t-3.5 -4.5t-5.5 -4t-6.5 -3.5l-3 -2q-11 -5 -20.5 6t-13.5 26q-7 25 -16 30q-23 8 -29 -1q-5 13 -41 26q-25 9 -58 4q6 1 0 15q-7 15 -19 12q3 6 4 17.5t1 13.5q3 13 12 23q1 1 7 8.5t9.5 13.5t0.5 6q35 -4 50 11q5 5 11.5 17t10.5 17q9 6 14 5.5t14.5 -5.5 t14.5 -5q14 -1 15.5 11t-7.5 20q12 -1 3 17q-5 7 -8 9q-12 4 -27 -5q-8 -4 2 -8q-1 1 -9.5 -10.5t-16.5 -17.5t-16 5q-1 1 -5.5 13.5t-9.5 13.5q-8 0 -16 -15q3 8 -11 15t-24 8q19 12 -8 27q-7 4 -20.5 5t-19.5 -4q-5 -7 -5.5 -11.5t5 -8t10.5 -5.5t11.5 -4t8.5 -3 q14 -10 8 -14q-2 -1 -8.5 -3.5t-11.5 -4.5t-6 -4q-3 -4 0 -14t-2 -14q-5 5 -9 17.5t-7 16.5q7 -9 -25 -6l-10 1q-4 0 -16 -2t-20.5 -1t-13.5 8q-4 8 0 20q1 4 4 2q-4 3 -11 9.5t-10 8.5q-46 -15 -94 -41q6 -1 12 1q5 2 13 6.5t10 5.5q34 14 42 7l5 5q14 -16 20 -25 q-7 4 -30 1q-20 -6 -22 -12q7 -12 5 -18q-4 3 -11.5 10t-14.5 11t-15 5q-16 0 -22 -1q-146 -80 -235 -222q7 -7 12 -8q4 -1 5 -9t2.5 -11t11.5 3q9 -8 3 -19q1 1 44 -27q19 -17 21 -21q3 -11 -10 -18q-1 2 -9 9t-9 4q-3 -5 0.5 -18.5t10.5 -12.5q-7 0 -9.5 -16t-2.5 -35.5 t-1 -23.5l2 -1q-3 -12 5.5 -34.5t21.5 -19.5q-13 -3 20 -43q6 -8 8 -9q3 -2 12 -7.5t15 -10t10 -10.5q4 -5 10 -22.5t14 -23.5q-2 -6 9.5 -20t10.5 -23q-1 0 -2.5 -1t-2.5 -1q3 -7 15.5 -14t15.5 -13q1 -3 2 -10t3 -11t8 -2q2 20 -24 62q-15 25 -17 29q-3 5 -5.5 15.5 t-4.5 14.5q2 0 6 -1.5t8.5 -3.5t7.5 -4t2 -3q-3 -7 2 -17.5t12 -18.5t17 -19t12 -13q6 -6 14 -19.5t0 -13.5q9 0 20 -10t17 -20q5 -8 8 -26t5 -24q2 -7 8.5 -13.5t12.5 -9.5l16 -8t13 -7q5 -2 18.5 -10.5t21.5 -11.5q10 -4 16 -4t14.5 2.5t13.5 3.5q15 2 29 -15t21 -21 q36 -19 55 -11q-2 -1 0.5 -7.5t8 -15.5t9 -14.5t5.5 -8.5q5 -6 18 -15t18 -15q6 4 7 9q-3 -8 7 -20t18 -10q14 3 14 32q-31 -15 -49 18q0 1 -2.5 5.5t-4 8.5t-2.5 8.5t0 7.5t5 3q9 0 10 3.5t-2 12.5t-4 13q-1 8 -11 20t-12 15q-5 -9 -16 -8t-16 9q0 -1 -1.5 -5.5t-1.5 -6.5 q-13 0 -15 1q1 3 2.5 17.5t3.5 22.5q1 4 5.5 12t7.5 14.5t4 12.5t-4.5 9.5t-17.5 2.5q-19 -1 -26 -20q-1 -3 -3 -10.5t-5 -11.5t-9 -7q-7 -3 -24 -2t-24 5q-13 8 -22.5 29t-9.5 37q0 10 2.5 26.5t3 25t-5.5 24.5q3 2 9 9.5t10 10.5q2 1 4.5 1.5t4.5 0t4 1.5t3 6q-1 1 -4 3 q-3 3 -4 3q7 -3 28.5 1.5t27.5 -1.5q15 -11 22 2q0 1 -2.5 9.5t-0.5 13.5q5 -27 29 -9q3 -3 15.5 -5t17.5 -5q3 -2 7 -5.5t5.5 -4.5t5 0.5t8.5 6.5q10 -14 12 -24q11 -40 19 -44q7 -3 11 -2t4.5 9.5t0 14t-1.5 12.5l-1 8v18l-1 8q-15 3 -18.5 12t1.5 18.5t15 18.5q1 1 8 3.5 t15.5 6.5t12.5 8q21 19 15 35q7 0 11 9q-1 0 -5 3t-7.5 5t-4.5 2q9 5 2 16q5 3 7.5 11t7.5 10q9 -12 21 -2q7 8 1 16q5 7 20.5 10.5t18.5 9.5q7 -2 8 2t1 12t3 12q4 5 15 9t13 5l17 11q3 4 0 4q18 -2 31 11q10 11 -6 20q3 6 -3 9.5t-15 5.5q3 1 11.5 0.5t10.5 1.5 q15 10 -7 16q-17 5 -43 -12zM879 10q206 36 351 189q-3 3 -12.5 4.5t-12.5 3.5q-18 7 -24 8q1 7 -2.5 13t-8 9t-12.5 8t-11 7q-2 2 -7 6t-7 5.5t-7.5 4.5t-8.5 2t-10 -1l-3 -1q-3 -1 -5.5 -2.5t-5.5 -3t-4 -3t0 -2.5q-21 17 -36 22q-5 1 -11 5.5t-10.5 7t-10 1.5t-11.5 -7 q-5 -5 -6 -15t-2 -13q-7 5 0 17.5t2 18.5q-3 6 -10.5 4.5t-12 -4.5t-11.5 -8.5t-9 -6.5t-8.5 -5.5t-8.5 -7.5q-3 -4 -6 -12t-5 -11q-2 4 -11.5 6.5t-9.5 5.5q2 -10 4 -35t5 -38q7 -31 -12 -48q-27 -25 -29 -40q-4 -22 12 -26q0 -7 -8 -20.5t-7 -21.5q0 -6 2 -16z" />
198
+ <glyph unicode="&#xf0ad;" horiz-adv-x="1664" d="M384 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1028 484l-682 -682q-37 -37 -90 -37q-52 0 -91 37l-106 108q-38 36 -38 90q0 53 38 91l681 681q39 -98 114.5 -173.5t173.5 -114.5zM1662 919q0 -39 -23 -106q-47 -134 -164.5 -217.5 t-258.5 -83.5q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q58 0 121.5 -16.5t107.5 -46.5q16 -11 16 -28t-16 -28l-293 -169v-224l193 -107q5 3 79 48.5t135.5 81t70.5 35.5q15 0 23.5 -10t8.5 -25z" />
199
+ <glyph unicode="&#xf0ae;" horiz-adv-x="1792" d="M1024 128h640v128h-640v-128zM640 640h1024v128h-1024v-128zM1280 1152h384v128h-384v-128zM1792 320v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 832v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19 t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
200
+ <glyph unicode="&#xf0b0;" horiz-adv-x="1408" d="M1403 1241q17 -41 -14 -70l-493 -493v-742q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-256 256q-19 19 -19 45v486l-493 493q-31 29 -14 70q17 39 59 39h1280q42 0 59 -39z" />
201
+ <glyph unicode="&#xf0b1;" horiz-adv-x="1792" d="M640 1280h512v128h-512v-128zM1792 640v-480q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v480h672v-160q0 -26 19 -45t45 -19h320q26 0 45 19t19 45v160h672zM1024 640v-128h-256v128h256zM1792 1120v-384h-1792v384q0 66 47 113t113 47h352v160q0 40 28 68 t68 28h576q40 0 68 -28t28 -68v-160h352q66 0 113 -47t47 -113z" />
202
+ <glyph unicode="&#xf0b2;" d="M1283 995l-355 -355l355 -355l144 144q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l144 144l-355 355l-355 -355l144 -144q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l144 -144 l355 355l-355 355l-144 -144q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v448q0 26 19 45t45 19h448q42 0 59 -40q17 -39 -14 -69l-144 -144l355 -355l355 355l-144 144q-31 30 -14 69q17 40 59 40h448q26 0 45 -19t19 -45v-448q0 -42 -39 -59q-13 -5 -25 -5q-26 0 -45 19z " />
203
+ <glyph unicode="&#xf0c0;" horiz-adv-x="1920" d="M593 640q-162 -5 -265 -128h-134q-82 0 -138 40.5t-56 118.5q0 353 124 353q6 0 43.5 -21t97.5 -42.5t119 -21.5q67 0 133 23q-5 -37 -5 -66q0 -139 81 -256zM1664 3q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5 t43 97.5t62 81t85.5 53.5t111.5 20q10 0 43 -21.5t73 -48t107 -48t135 -21.5t135 21.5t107 48t73 48t43 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM640 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75 t75 -181zM1344 896q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5zM1920 671q0 -78 -56 -118.5t-138 -40.5h-134q-103 123 -265 128q81 117 81 256q0 29 -5 66q66 -23 133 -23q59 0 119 21.5t97.5 42.5 t43.5 21q124 0 124 -353zM1792 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181z" />
204
+ <glyph unicode="&#xf0c1;" horiz-adv-x="1664" d="M1456 320q0 40 -28 68l-208 208q-28 28 -68 28q-42 0 -72 -32q3 -3 19 -18.5t21.5 -21.5t15 -19t13 -25.5t3.5 -27.5q0 -40 -28 -68t-68 -28q-15 0 -27.5 3.5t-25.5 13t-19 15t-21.5 21.5t-18.5 19q-33 -31 -33 -73q0 -40 28 -68l206 -207q27 -27 68 -27q40 0 68 26 l147 146q28 28 28 67zM753 1025q0 40 -28 68l-206 207q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l208 -208q27 -27 68 -27q42 0 72 31q-3 3 -19 18.5t-21.5 21.5t-15 19t-13 25.5t-3.5 27.5q0 40 28 68t68 28q15 0 27.5 -3.5t25.5 -13t19 -15 t21.5 -21.5t18.5 -19q33 31 33 73zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-206 207q-83 83 -83 203q0 123 88 209l-88 88q-86 -88 -208 -88q-120 0 -204 84l-208 208q-84 84 -84 204t85 203l147 146q83 83 203 83q121 0 204 -85l206 -207 q83 -83 83 -203q0 -123 -88 -209l88 -88q86 88 208 88q120 0 204 -84l208 -208q84 -84 84 -204z" />
205
+ <glyph unicode="&#xf0c2;" horiz-adv-x="1920" d="M1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5q0 132 71 241.5t187 163.5q-2 28 -2 43q0 212 150 362t362 150q158 0 286.5 -88t187.5 -230q70 62 166 62q106 0 181 -75t75 -181q0 -75 -41 -138q129 -30 213 -134.5t84 -239.5z " />
206
+ <glyph unicode="&#xf0c3;" horiz-adv-x="1664" d="M1527 88q56 -89 21.5 -152.5t-140.5 -63.5h-1152q-106 0 -140.5 63.5t21.5 152.5l503 793v399h-64q-26 0 -45 19t-19 45t19 45t45 19h512q26 0 45 -19t19 -45t-19 -45t-45 -19h-64v-399zM748 813l-272 -429h712l-272 429l-20 31v37v399h-128v-399v-37z" />
207
+ <glyph unicode="&#xf0c4;" horiz-adv-x="1792" d="M960 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1260 576l507 -398q28 -20 25 -56q-5 -35 -35 -51l-128 -64q-13 -7 -29 -7q-17 0 -31 8l-690 387l-110 -66q-8 -4 -12 -5q14 -49 10 -97q-7 -77 -56 -147.5t-132 -123.5q-132 -84 -277 -84 q-136 0 -222 78q-90 84 -79 207q7 76 56 147t131 124q132 84 278 84q83 0 151 -31q9 13 22 22l122 73l-122 73q-13 9 -22 22q-68 -31 -151 -31q-146 0 -278 84q-82 53 -131 124t-56 147q-5 59 15.5 113t63.5 93q85 79 222 79q145 0 277 -84q83 -52 132 -123t56 -148 q4 -48 -10 -97q4 -1 12 -5l110 -66l690 387q14 8 31 8q16 0 29 -7l128 -64q30 -16 35 -51q3 -36 -25 -56zM579 836q46 42 21 108t-106 117q-92 59 -192 59q-74 0 -113 -36q-46 -42 -21 -108t106 -117q92 -59 192 -59q74 0 113 36zM494 91q81 51 106 117t-21 108 q-39 36 -113 36q-100 0 -192 -59q-81 -51 -106 -117t21 -108q39 -36 113 -36q100 0 192 59zM672 704l96 -58v11q0 36 33 56l14 8l-79 47l-26 -26q-3 -3 -10 -11t-12 -12q-2 -2 -4 -3.5t-3 -2.5zM896 480l96 -32l736 576l-128 64l-768 -431v-113l-160 -96l9 -8q2 -2 7 -6 q4 -4 11 -12t11 -12l26 -26zM1600 64l128 64l-520 408l-177 -138q-2 -3 -13 -7z" />
208
+ <glyph unicode="&#xf0c5;" horiz-adv-x="1792" d="M1696 1152q40 0 68 -28t28 -68v-1216q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v288h-544q-40 0 -68 28t-28 68v672q0 40 20 88t48 76l408 408q28 28 76 48t88 20h416q40 0 68 -28t28 -68v-328q68 40 128 40h416zM1152 939l-299 -299h299v299zM512 1323l-299 -299 h299v299zM708 676l316 316v416h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h512v256q0 40 20 88t48 76zM1664 -128v1152h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h896z" />
209
+ <glyph unicode="&#xf0c6;" horiz-adv-x="1408" d="M1404 151q0 -117 -79 -196t-196 -79q-135 0 -235 100l-777 776q-113 115 -113 271q0 159 110 270t269 111q158 0 273 -113l605 -606q10 -10 10 -22q0 -16 -30.5 -46.5t-46.5 -30.5q-13 0 -23 10l-606 607q-79 77 -181 77q-106 0 -179 -75t-73 -181q0 -105 76 -181 l776 -777q63 -63 145 -63q64 0 106 42t42 106q0 82 -63 145l-581 581q-26 24 -60 24q-29 0 -48 -19t-19 -48q0 -32 25 -59l410 -410q10 -10 10 -22q0 -16 -31 -47t-47 -31q-12 0 -22 10l-410 410q-63 61 -63 149q0 82 57 139t139 57q88 0 149 -63l581 -581q100 -98 100 -235 z" />
210
+ <glyph unicode="&#xf0c7;" d="M384 0h768v384h-768v-384zM1280 0h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416zM896 928v320q0 13 -9.5 22.5t-22.5 9.5 h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5zM1536 896v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 -28 48 -76t20 -88z" />
211
+ <glyph unicode="&#xf0c8;" d="M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
212
+ <glyph unicode="&#xf0c9;" d="M1536 192v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 704v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 1216v-128q0 -26 -19 -45 t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
213
+ <glyph unicode="&#xf0ca;" horiz-adv-x="1792" d="M384 128q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 640q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1152q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z M1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
214
+ <glyph unicode="&#xf0cb;" horiz-adv-x="1792" d="M381 -84q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88zM383 543v-159h-362 q-6 36 -6 54q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t-35.5 -52.5h127v60h105zM1792 224v-192q0 -13 -9.5 -22.5 t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1123v-99h-335v99h107q0 41 0.5 122t0.5 121v12h-2q-8 -17 -50 -54l-71 76l136 127h106v-404h108zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5 t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
215
+ <glyph unicode="&#xf0cc;" horiz-adv-x="1792" d="M1760 640q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h1728zM483 704q-28 35 -51 80q-48 97 -48 188q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6 l-14 2q-50 149 -103 205q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743zM990 448h411q7 -39 7 -92q0 -111 -41 -212q-23 -55 -71 -104q-37 -35 -109 -81q-80 -48 -153 -66q-80 -21 -203 -21q-114 0 -195 23 l-140 40q-57 16 -72 28q-8 8 -8 22v13q0 108 -2 156q-1 30 0 68l2 37v44l102 2q15 -34 30 -71t22.5 -56t12.5 -27q35 -57 80 -94q43 -36 105 -57q59 -22 132 -22q64 0 139 27q77 26 122 86q47 61 47 129q0 84 -81 157q-34 29 -137 71z" />
216
+ <glyph unicode="&#xf0cd;" d="M48 1313q-37 2 -45 4l-3 88q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47 q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -13q-73 -11 -79 -17q-15 -15 -15 -41 q0 -7 1.5 -27t1.5 -31q8 -19 22 -396q6 -195 -15 -304q-15 -76 -41 -122q-38 -65 -112 -123q-75 -57 -182 -89q-109 -33 -255 -33q-167 0 -284 46q-119 47 -179 122q-61 76 -83 195q-16 80 -16 237v333q0 188 -17 213q-25 36 -147 39zM1536 -96v64q0 14 -9 23t-23 9h-1472 q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h1472q14 0 23 9t9 23z" />
217
+ <glyph unicode="&#xf0ce;" horiz-adv-x="1664" d="M512 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23 v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 160v192 q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192 q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1664 1248v-1088q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1344q66 0 113 -47t47 -113 z" />
218
+ <glyph unicode="&#xf0d0;" horiz-adv-x="1664" d="M1190 955l293 293l-107 107l-293 -293zM1637 1248q0 -27 -18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45t18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45zM286 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM636 1276 l196 -60l-196 -60l-60 -196l-60 196l-196 60l196 60l60 196zM1566 798l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM926 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98z" />
219
+ <glyph unicode="&#xf0d1;" horiz-adv-x="1792" d="M640 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM1536 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1792 1216v-1024q0 -15 -4 -26.5t-13.5 -18.5 t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5 18.5t-4 26.5q0 26 19 45t45 19v320q0 8 -0.5 35t0 38 t2.5 34.5t6.5 37t14 30.5t22.5 30l198 198q19 19 50.5 32t58.5 13h160v192q0 26 19 45t45 19h1024q26 0 45 -19t19 -45z" />
220
+ <glyph unicode="&#xf0d2;" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134 q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5q8 35 26.5 93.5t30 103t11.5 75.5q0 50 -27 83t-77 33 q-62 0 -105 -57t-43 -142q0 -73 25 -122l-99 -418q-17 -70 -13 -177q-206 91 -333 281t-127 423q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
221
+ <glyph unicode="&#xf0d3;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5q-104 0 -194.5 -28.5t-153 -76.5 t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5 t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960z" />
222
+ <glyph unicode="&#xf0d4;" d="M829 318q0 -76 -58.5 -112.5t-139.5 -36.5q-41 0 -80.5 9.5t-75.5 28.5t-58 53t-22 78q0 46 25 80t65.5 51.5t82 25t84.5 7.5q20 0 31 -2q2 -1 23 -16.5t26 -19t23 -18t24.5 -22t19 -22.5t17 -26t9 -26.5t4.5 -31.5zM755 863q0 -60 -33 -99.5t-92 -39.5q-53 0 -93 42.5 t-57.5 96.5t-17.5 106q0 61 32 104t92 43q53 0 93.5 -45t58 -101t17.5 -107zM861 1120l88 64h-265q-85 0 -161 -32t-127.5 -98t-51.5 -153q0 -93 64.5 -154.5t158.5 -61.5q22 0 43 3q-13 -29 -13 -54q0 -44 40 -94q-175 -12 -257 -63q-47 -29 -75.5 -73t-28.5 -95 q0 -43 18.5 -77.5t48.5 -56.5t69 -37t77.5 -21t76.5 -6q60 0 120.5 15.5t113.5 46t86 82.5t33 117q0 49 -20 89.5t-49 66.5t-58 47.5t-49 44t-20 44.5t15.5 42.5t37.5 39.5t44 42t37.5 59.5t15.5 82.5q0 60 -22.5 99.5t-72.5 90.5h83zM1152 672h128v64h-128v128h-64v-128 h-128v-64h128v-160h64v160zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
223
+ <glyph unicode="&#xf0d5;" horiz-adv-x="1664" d="M735 740q0 -36 32 -70.5t77.5 -68t90.5 -73.5t77 -104t32 -142q0 -90 -48 -173q-72 -122 -211 -179.5t-298 -57.5q-132 0 -246.5 41.5t-171.5 137.5q-37 60 -37 131q0 81 44.5 150t118.5 115q131 82 404 100q-32 42 -47.5 74t-15.5 73q0 36 21 85q-46 -4 -68 -4 q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q77 66 182.5 98t217.5 32h418l-138 -88h-131q74 -63 112 -133t38 -160q0 -72 -24.5 -129.5t-59 -93t-69.5 -65t-59.5 -61.5t-24.5 -66zM589 836q38 0 78 16.5t66 43.5q53 57 53 159q0 58 -17 125t-48.5 129.5 t-84.5 103.5t-117 41q-42 0 -82.5 -19.5t-65.5 -52.5q-47 -59 -47 -160q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26zM591 -37q58 0 111.5 13t99 39t73 73t27.5 109q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -48 2 q-53 0 -105 -7t-107.5 -25t-97 -46t-68.5 -74.5t-27 -105.5q0 -70 35 -123.5t91.5 -83t119 -44t127.5 -14.5zM1401 839h213v-108h-213v-219h-105v219h-212v108h212v217h105v-217z" />
224
+ <glyph unicode="&#xf0d6;" horiz-adv-x="1920" d="M768 384h384v96h-128v448h-114l-148 -137l77 -80q42 37 55 57h2v-288h-128v-96zM1280 640q0 -70 -21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142t21 142t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142zM1792 384 v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512q106 0 181 -75t75 -181h1152q0 106 75 181t181 75zM1920 1216v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45z" />
225
+ <glyph unicode="&#xf0d7;" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
226
+ <glyph unicode="&#xf0d8;" horiz-adv-x="1024" d="M1024 320q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
227
+ <glyph unicode="&#xf0d9;" horiz-adv-x="640" d="M640 1088v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45t19 45l448 448q19 19 45 19t45 -19t19 -45z" />
228
+ <glyph unicode="&#xf0da;" horiz-adv-x="640" d="M576 640q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45z" />
229
+ <glyph unicode="&#xf0db;" horiz-adv-x="1664" d="M160 0h608v1152h-640v-1120q0 -13 9.5 -22.5t22.5 -9.5zM1536 32v1120h-640v-1152h608q13 0 22.5 9.5t9.5 22.5zM1664 1248v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113z" />
230
+ <glyph unicode="&#xf0dc;" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45zM1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
231
+ <glyph unicode="&#xf0dd;" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
232
+ <glyph unicode="&#xf0de;" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
233
+ <glyph unicode="&#xf0e0;" horiz-adv-x="1792" d="M1792 826v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87zM1792 1120q0 -79 -49 -151t-122 -123 q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5q0 78 41.5 130t118.5 52h1472q65 0 112.5 -47t47.5 -113z" />
234
+ <glyph unicode="&#xf0e1;" d="M349 911v-991h-330v991h330zM370 1217q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5zM1536 488v-568h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329 q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5z" />
235
+ <glyph unicode="&#xf0e2;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298z" />
236
+ <glyph unicode="&#xf0e3;" horiz-adv-x="1792" d="M1771 0q0 -53 -37 -90l-107 -108q-39 -37 -91 -37q-53 0 -90 37l-363 364q-38 36 -38 90q0 53 43 96l-256 256l-126 -126q-14 -14 -34 -14t-34 14q2 -2 12.5 -12t12.5 -13t10 -11.5t10 -13.5t6 -13.5t5.5 -16.5t1.5 -18q0 -38 -28 -68q-3 -3 -16.5 -18t-19 -20.5 t-18.5 -16.5t-22 -15.5t-22 -9t-26 -4.5q-40 0 -68 28l-408 408q-28 28 -28 68q0 13 4.5 26t9 22t15.5 22t16.5 18.5t20.5 19t18 16.5q30 28 68 28q10 0 18 -1.5t16.5 -5.5t13.5 -6t13.5 -10t11.5 -10t13 -12.5t12 -12.5q-14 14 -14 34t14 34l348 348q14 14 34 14t34 -14 q-2 2 -12.5 12t-12.5 13t-10 11.5t-10 13.5t-6 13.5t-5.5 16.5t-1.5 18q0 38 28 68q3 3 16.5 18t19 20.5t18.5 16.5t22 15.5t22 9t26 4.5q40 0 68 -28l408 -408q28 -28 28 -68q0 -13 -4.5 -26t-9 -22t-15.5 -22t-16.5 -18.5t-20.5 -19t-18 -16.5q-30 -28 -68 -28 q-10 0 -18 1.5t-16.5 5.5t-13.5 6t-13.5 10t-11.5 10t-13 12.5t-12 12.5q14 -14 14 -34t-14 -34l-126 -126l256 -256q43 43 96 43q52 0 91 -37l363 -363q37 -39 37 -91z" />
237
+ <glyph unicode="&#xf0e4;" horiz-adv-x="1792" d="M384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM576 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1004 351l101 382q6 26 -7.5 48.5t-38.5 29.5 t-48 -6.5t-30 -39.5l-101 -382q-60 -5 -107 -43.5t-63 -98.5q-20 -77 20 -146t117 -89t146 20t89 117q16 60 -6 117t-72 91zM1664 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 1024q0 53 -37.5 90.5 t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1472 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 384q0 -261 -141 -483q-19 -29 -54 -29h-1402q-35 0 -54 29 q-141 221 -141 483q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
238
+ <glyph unicode="&#xf0e5;" horiz-adv-x="1792" d="M896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640 q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 174 120 321.5 t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" />
239
+ <glyph unicode="&#xf0e6;" horiz-adv-x="1792" d="M704 1152q-153 0 -286 -52t-211.5 -141t-78.5 -191q0 -82 53 -158t149 -132l97 -56l-35 -84q34 20 62 39l44 31l53 -10q78 -14 153 -14q153 0 286 52t211.5 141t78.5 191t-78.5 191t-211.5 141t-286 52zM704 1280q191 0 353.5 -68.5t256.5 -186.5t94 -257t-94 -257 t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224q0 139 94 257t256.5 186.5 t353.5 68.5zM1526 111q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129 q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5z" />
240
+ <glyph unicode="&#xf0e7;" horiz-adv-x="896" d="M885 970q18 -20 7 -44l-540 -1157q-13 -25 -42 -25q-4 0 -14 2q-17 5 -25.5 19t-4.5 30l197 808l-406 -101q-4 -1 -12 -1q-18 0 -31 11q-18 15 -13 39l201 825q4 14 16 23t28 9h328q19 0 32 -12.5t13 -29.5q0 -8 -5 -18l-171 -463l396 98q8 2 12 2q19 0 34 -15z" />
241
+ <glyph unicode="&#xf0e8;" horiz-adv-x="1792" d="M1792 288v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192q0 52 38 90t90 38h512v192h-96q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-96v-192h512q52 0 90 -38t38 -90v-192h96q40 0 68 -28t28 -68 z" />
242
+ <glyph unicode="&#xf0e9;" horiz-adv-x="1664" d="M896 708v-580q0 -104 -76 -180t-180 -76t-180 76t-76 180q0 26 19 45t45 19t45 -19t19 -45q0 -50 39 -89t89 -39t89 39t39 89v580q33 11 64 11t64 -11zM1664 681q0 -13 -9.5 -22.5t-22.5 -9.5q-11 0 -23 10q-49 46 -93 69t-102 23q-68 0 -128 -37t-103 -97 q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -28 -17q-18 0 -29 17q-4 6 -14.5 24t-17.5 28q-43 60 -102.5 97t-127.5 37t-127.5 -37t-102.5 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -29 -17q-17 0 -28 17q-4 6 -14.5 24t-17.5 28q-43 60 -103 97t-128 37q-58 0 -102 -23t-93 -69 q-12 -10 -23 -10q-13 0 -22.5 9.5t-9.5 22.5q0 5 1 7q45 183 172.5 319.5t298 204.5t360.5 68q140 0 274.5 -40t246.5 -113.5t194.5 -187t115.5 -251.5q1 -2 1 -7zM896 1408v-98q-42 2 -64 2t-64 -2v98q0 26 19 45t45 19t45 -19t19 -45z" />
243
+ <glyph unicode="&#xf0ea;" horiz-adv-x="1792" d="M768 -128h896v640h-416q-40 0 -68 28t-28 68v416h-384v-1152zM1024 1312v64q0 13 -9.5 22.5t-22.5 9.5h-704q-13 0 -22.5 -9.5t-9.5 -22.5v-64q0 -13 9.5 -22.5t22.5 -9.5h704q13 0 22.5 9.5t9.5 22.5zM1280 640h299l-299 299v-299zM1792 512v-672q0 -40 -28 -68t-68 -28 h-960q-40 0 -68 28t-28 68v160h-544q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1088q40 0 68 -28t28 -68v-328q21 -13 36 -28l408 -408q28 -28 48 -76t20 -88z" />
244
+ <glyph unicode="&#xf0eb;" horiz-adv-x="1024" d="M736 960q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5q0 46 -54 71t-106 25q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5q50 0 99.5 -16t87 -54t37.5 -90zM896 960q0 72 -34.5 134t-90 101.5t-123 62t-136.5 22.5t-136.5 -22.5t-123 -62t-90 -101.5t-34.5 -134 q0 -101 68 -180q10 -11 30.5 -33t30.5 -33q128 -153 141 -298h228q13 145 141 298q10 11 30.5 33t30.5 33q68 79 68 180zM1024 960q0 -155 -103 -268q-45 -49 -74.5 -87t-59.5 -95.5t-34 -107.5q47 -28 47 -82q0 -37 -25 -64q25 -27 25 -64q0 -52 -45 -81q13 -23 13 -47 q0 -46 -31.5 -71t-77.5 -25q-20 -44 -60 -70t-87 -26t-87 26t-60 70q-46 0 -77.5 25t-31.5 71q0 24 13 47q-45 29 -45 81q0 37 25 64q-25 27 -25 64q0 54 47 82q-4 50 -34 107.5t-59.5 95.5t-74.5 87q-103 113 -103 268q0 99 44.5 184.5t117 142t164 89t186.5 32.5 t186.5 -32.5t164 -89t117 -142t44.5 -184.5z" />
245
+ <glyph unicode="&#xf0ec;" horiz-adv-x="1792" d="M1792 352v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5q-12 0 -24 10l-319 320q-9 9 -9 22q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h1376q13 0 22.5 -9.5t9.5 -22.5zM1792 896q0 -14 -9 -23l-320 -320q-9 -9 -23 -9 q-13 0 -22.5 9.5t-9.5 22.5v192h-1376q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1376v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
246
+ <glyph unicode="&#xf0ed;" horiz-adv-x="1920" d="M1280 608q0 14 -9 23t-23 9h-224v352q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-352h-224q-13 0 -22.5 -9.5t-9.5 -22.5q0 -14 9 -23l352 -352q9 -9 23 -9t23 9l351 351q10 12 10 24zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
247
+ <glyph unicode="&#xf0ee;" horiz-adv-x="1920" d="M1280 672q0 14 -9 23l-352 352q-9 9 -23 9t-23 -9l-351 -351q-10 -12 -10 -24q0 -14 9 -23t23 -9h224v-352q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v352h224q13 0 22.5 9.5t9.5 22.5zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
248
+ <glyph unicode="&#xf0f0;" horiz-adv-x="1408" d="M384 192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 68 5.5 131t24 138t47.5 132.5t81 103t120 60.5q-22 -52 -22 -120v-203q-58 -20 -93 -70t-35 -111q0 -80 56 -136t136 -56 t136 56t56 136q0 61 -35.5 111t-92.5 70v203q0 62 25 93q132 -104 295 -104t295 104q25 -31 25 -93v-64q-106 0 -181 -75t-75 -181v-89q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 52 38 90t90 38t90 -38t38 -90v-89q-32 -29 -32 -71q0 -40 28 -68 t68 -28t68 28t28 68q0 42 -32 71v89q0 68 -34.5 127.5t-93.5 93.5q0 10 0.5 42.5t0 48t-2.5 41.5t-7 47t-13 40q68 -15 120 -60.5t81 -103t47.5 -132.5t24 -138t5.5 -131zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5 t271.5 -112.5t112.5 -271.5z" />
249
+ <glyph unicode="&#xf0f1;" horiz-adv-x="1408" d="M1280 832q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 832q0 -62 -35.5 -111t-92.5 -70v-395q0 -159 -131.5 -271.5t-316.5 -112.5t-316.5 112.5t-131.5 271.5v132q-164 20 -274 128t-110 252v512q0 26 19 45t45 19q6 0 16 -2q17 30 47 48 t65 18q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5q-33 0 -64 18v-402q0 -106 94 -181t226 -75t226 75t94 181v402q-31 -18 -64 -18q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q35 0 65 -18t47 -48q10 2 16 2q26 0 45 -19t19 -45v-512q0 -144 -110 -252 t-274 -128v-132q0 -106 94 -181t226 -75t226 75t94 181v395q-57 21 -92.5 70t-35.5 111q0 80 56 136t136 56t136 -56t56 -136z" />
250
+ <glyph unicode="&#xf0f2;" horiz-adv-x="1792" d="M640 1152h512v128h-512v-128zM288 1152v-1280h-64q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h64zM1408 1152v-1280h-1024v1280h128v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h128zM1792 928v-832q0 -92 -66 -158t-158 -66h-64v1280h64q92 0 158 -66 t66 -158z" />
251
+ <glyph unicode="&#xf0f3;" horiz-adv-x="1792" d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5 t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" />
252
+ <glyph unicode="&#xf0f4;" horiz-adv-x="1920" d="M1664 896q0 80 -56 136t-136 56h-64v-384h64q80 0 136 56t56 136zM0 128h1792q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM1856 896q0 -159 -112.5 -271.5t-271.5 -112.5h-64v-32q0 -92 -66 -158t-158 -66h-704q-92 0 -158 66t-66 158v736q0 26 19 45 t45 19h1152q159 0 271.5 -112.5t112.5 -271.5z" />
253
+ <glyph unicode="&#xf0f5;" horiz-adv-x="1408" d="M640 1472v-640q0 -61 -35.5 -111t-92.5 -70v-779q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v779q-57 20 -92.5 70t-35.5 111v640q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45 t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45zM1408 1472v-1600q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v512h-224q-13 0 -22.5 9.5t-9.5 22.5v800q0 132 94 226t226 94h256q26 0 45 -19t19 -45z" />
254
+ <glyph unicode="&#xf0f6;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M384 736q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64zM1120 512q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704zM1120 256q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704 q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704z" />
255
+ <glyph unicode="&#xf0f7;" horiz-adv-x="1408" d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 -128h384v1536h-1152v-1536h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM1408 1472v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45z" />
256
+ <glyph unicode="&#xf0f8;" horiz-adv-x="1408" d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 -128h384v1152h-256v-32q0 -40 -28 -68t-68 -28h-448q-40 0 -68 28t-28 68v32h-256v-1152h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM896 1056v320q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-96h-128v96q0 13 -9.5 22.5 t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v96h128v-96q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1408 1088v-1280q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1280q0 26 19 45t45 19h320 v288q0 40 28 68t68 28h448q40 0 68 -28t28 -68v-288h320q26 0 45 -19t19 -45z" />
257
+ <glyph unicode="&#xf0f9;" horiz-adv-x="1920" d="M640 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM256 640h384v256h-158q-14 -2 -22 -9l-195 -195q-7 -12 -9 -22v-30zM1536 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1664 800v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM1920 1344v-1152 q0 -26 -19 -45t-45 -19h-192q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-128q-26 0 -45 19t-19 45t19 45t45 19v416q0 26 13 58t32 51l198 198q19 19 51 32t58 13h160v320q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
258
+ <glyph unicode="&#xf0fa;" horiz-adv-x="1792" d="M1280 416v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM640 1152h512v128h-512v-128zM256 1152v-1280h-32 q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h32zM1440 1152v-1280h-1088v1280h160v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h160zM1792 928v-832q0 -92 -66 -158t-158 -66h-32v1280h32q92 0 158 -66t66 -158z" />
259
+ <glyph unicode="&#xf0fb;" horiz-adv-x="1920" d="M1920 576q-1 -32 -288 -96l-352 -32l-224 -64h-64l-293 -352h69q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-96h-160h-64v32h64v416h-160l-192 -224h-96l-32 32v192h32v32h128v8l-192 24v128l192 24v8h-128v32h-32v192l32 32h96l192 -224h160v416h-64v32h64h160h96 q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-69l293 -352h64l224 -64l352 -32q261 -58 287 -93z" />
260
+ <glyph unicode="&#xf0fc;" horiz-adv-x="1664" d="M640 640v384h-256v-256q0 -53 37.5 -90.5t90.5 -37.5h128zM1664 192v-192h-1152v192l128 192h-128q-159 0 -271.5 112.5t-112.5 271.5v320l-64 64l32 128h480l32 128h960l32 -192l-64 -32v-800z" />
261
+ <glyph unicode="&#xf0fd;" d="M1280 192v896q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-512v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-896q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h512v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
262
+ <glyph unicode="&#xf0fe;" d="M1280 576v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
263
+ <glyph unicode="&#xf100;" horiz-adv-x="1024" d="M627 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23zM1011 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23z" />
264
+ <glyph unicode="&#xf101;" horiz-adv-x="1024" d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM979 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23 l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
265
+ <glyph unicode="&#xf102;" horiz-adv-x="1152" d="M1075 224q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM1075 608q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393 q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
266
+ <glyph unicode="&#xf103;" horiz-adv-x="1152" d="M1075 672q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23zM1075 1056q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
267
+ <glyph unicode="&#xf104;" horiz-adv-x="640" d="M627 992q0 -13 -10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
268
+ <glyph unicode="&#xf105;" horiz-adv-x="640" d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
269
+ <glyph unicode="&#xf106;" horiz-adv-x="1152" d="M1075 352q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
270
+ <glyph unicode="&#xf107;" horiz-adv-x="1152" d="M1075 800q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
271
+ <glyph unicode="&#xf108;" horiz-adv-x="1920" d="M1792 544v832q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1376v-1088q0 -66 -47 -113t-113 -47h-544q0 -37 16 -77.5t32 -71t16 -43.5q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19 t-19 45q0 14 16 44t32 70t16 78h-544q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
272
+ <glyph unicode="&#xf109;" horiz-adv-x="1920" d="M416 256q-66 0 -113 47t-47 113v704q0 66 47 113t113 47h1088q66 0 113 -47t47 -113v-704q0 -66 -47 -113t-113 -47h-1088zM384 1120v-704q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5z M1760 192h160v-96q0 -40 -47 -68t-113 -28h-1600q-66 0 -113 28t-47 68v96h160h1600zM1040 96q16 0 16 16t-16 16h-160q-16 0 -16 -16t16 -16h160z" />
273
+ <glyph unicode="&#xf10a;" horiz-adv-x="1152" d="M640 128q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1024 288v960q0 13 -9.5 22.5t-22.5 9.5h-832q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h832q13 0 22.5 9.5t9.5 22.5zM1152 1248v-1088q0 -66 -47 -113t-113 -47h-832 q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h832q66 0 113 -47t47 -113z" />
274
+ <glyph unicode="&#xf10b;" horiz-adv-x="768" d="M464 128q0 33 -23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5zM672 288v704q0 13 -9.5 22.5t-22.5 9.5h-512q-13 0 -22.5 -9.5t-9.5 -22.5v-704q0 -13 9.5 -22.5t22.5 -9.5h512q13 0 22.5 9.5t9.5 22.5zM480 1136 q0 16 -16 16h-160q-16 0 -16 -16t16 -16h160q16 0 16 16zM768 1152v-1024q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v1024q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
275
+ <glyph unicode="&#xf10c;" d="M768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103 t279.5 -279.5t103 -385.5z" />
276
+ <glyph unicode="&#xf10d;" horiz-adv-x="1664" d="M768 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z M1664 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z" />
277
+ <glyph unicode="&#xf10e;" horiz-adv-x="1664" d="M768 1216v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136zM1664 1216 v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136z" />
278
+ <glyph unicode="&#xf110;" horiz-adv-x="1568" d="M496 192q0 -60 -42.5 -102t-101.5 -42q-60 0 -102 42t-42 102t42 102t102 42q59 0 101.5 -42t42.5 -102zM928 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM320 640q0 -66 -47 -113t-113 -47t-113 47t-47 113 t47 113t113 47t113 -47t47 -113zM1360 192q0 -46 -33 -79t-79 -33t-79 33t-33 79t33 79t79 33t79 -33t33 -79zM528 1088q0 -73 -51.5 -124.5t-124.5 -51.5t-124.5 51.5t-51.5 124.5t51.5 124.5t124.5 51.5t124.5 -51.5t51.5 -124.5zM992 1280q0 -80 -56 -136t-136 -56 t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1536 640q0 -40 -28 -68t-68 -28t-68 28t-28 68t28 68t68 28t68 -28t28 -68zM1328 1088q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5z" />
279
+ <glyph unicode="&#xf111;" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
280
+ <glyph unicode="&#xf112;" horiz-adv-x="1792" d="M1792 416q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19 l-512 512q-19 19 -19 45t19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333z" />
281
+ <glyph unicode="&#xf113;" horiz-adv-x="1664" d="M640 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1280 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1440 320 q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11q-152 21 -195 21q-118 0 -187 -84t-69 -204q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5zM1664 496q0 -207 -61 -331q-38 -77 -105.5 -133t-141 -86 t-170 -47.5t-171.5 -22t-167 -4.5q-78 0 -142 3t-147.5 12.5t-152.5 30t-137 51.5t-121 81t-86 115q-62 123 -62 331q0 237 136 396q-27 82 -27 170q0 116 51 218q108 0 190 -39.5t189 -123.5q147 35 309 35q148 0 280 -32q105 82 187 121t189 39q51 -102 51 -218 q0 -87 -27 -168q136 -160 136 -398z" />
282
+ <glyph unicode="&#xf114;" horiz-adv-x="1664" d="M1536 224v704q0 40 -28 68t-68 28h-704q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-960q0 -40 28 -68t68 -28h1216q40 0 68 28t28 68zM1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320 q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
283
+ <glyph unicode="&#xf115;" horiz-adv-x="1920" d="M1781 605q0 35 -53 35h-1088q-40 0 -85.5 -21.5t-71.5 -52.5l-294 -363q-18 -24 -18 -40q0 -35 53 -35h1088q40 0 86 22t71 53l294 363q18 22 18 39zM640 768h768v160q0 40 -28 68t-68 28h-576q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68 v-853l256 315q44 53 116 87.5t140 34.5zM1909 605q0 -62 -46 -120l-295 -363q-43 -53 -116 -87.5t-140 -34.5h-1088q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h192q54 0 99 -24.5t67 -70.5q15 -32 15 -68z " />
284
+ <glyph unicode="&#xf116;" horiz-adv-x="1792" />
285
+ <glyph unicode="&#xf117;" horiz-adv-x="1792" />
286
+ <glyph unicode="&#xf118;" d="M1134 461q-37 -121 -138 -195t-228 -74t-228 74t-138 195q-8 25 4 48.5t38 31.5q25 8 48.5 -4t31.5 -38q25 -80 92.5 -129.5t151.5 -49.5t151.5 49.5t92.5 129.5q8 26 32 38t49 4t37 -31.5t4 -48.5zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5 t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
287
+ <glyph unicode="&#xf119;" d="M1134 307q8 -25 -4 -48.5t-37 -31.5t-49 4t-32 38q-25 80 -92.5 129.5t-151.5 49.5t-151.5 -49.5t-92.5 -129.5q-8 -26 -31.5 -38t-48.5 -4q-26 8 -38 31.5t-4 48.5q37 121 138 195t228 74t228 -74t138 -195zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204 t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
288
+ <glyph unicode="&#xf11a;" d="M1152 448q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h640q26 0 45 -19t19 -45zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
289
+ <glyph unicode="&#xf11b;" horiz-adv-x="1920" d="M832 448v128q0 14 -9 23t-23 9h-192v192q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-192h-192q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h192v-192q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v192h192q14 0 23 9t9 23zM1408 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1920 512q0 -212 -150 -362t-362 -150q-192 0 -338 128h-220q-146 -128 -338 -128q-212 0 -362 150 t-150 362t150 362t362 150h896q212 0 362 -150t150 -362z" />
290
+ <glyph unicode="&#xf11c;" horiz-adv-x="1920" d="M384 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM512 624v-96q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h224q16 0 16 -16zM384 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 368v-96q0 -16 -16 -16 h-864q-16 0 -16 16v96q0 16 16 16h864q16 0 16 -16zM768 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM640 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1024 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16 h96q16 0 16 -16zM896 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1280 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1152 880v-96 q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 880v-352q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h112v240q0 16 16 16h96q16 0 16 -16zM1792 128v896h-1664v-896 h1664zM1920 1024v-896q0 -53 -37.5 -90.5t-90.5 -37.5h-1664q-53 0 -90.5 37.5t-37.5 90.5v896q0 53 37.5 90.5t90.5 37.5h1664q53 0 90.5 -37.5t37.5 -90.5z" />
291
+ <glyph unicode="&#xf11d;" horiz-adv-x="1792" d="M1664 491v616q-169 -91 -306 -91q-82 0 -145 32q-100 49 -184 76.5t-178 27.5q-173 0 -403 -127v-599q245 113 433 113q55 0 103.5 -7.5t98 -26t77 -31t82.5 -39.5l28 -14q44 -22 101 -22q120 0 293 92zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9 h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102 q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
292
+ <glyph unicode="&#xf11e;" horiz-adv-x="1792" d="M832 536v192q-181 -16 -384 -117v-185q205 96 384 110zM832 954v197q-172 -8 -384 -126v-189q215 111 384 118zM1664 491v184q-235 -116 -384 -71v224q-20 6 -39 15q-5 3 -33 17t-34.5 17t-31.5 15t-34.5 15.5t-32.5 13t-36 12.5t-35 8.5t-39.5 7.5t-39.5 4t-44 2 q-23 0 -49 -3v-222h19q102 0 192.5 -29t197.5 -82q19 -9 39 -15v-188q42 -17 91 -17q120 0 293 92zM1664 918v189q-169 -91 -306 -91q-45 0 -78 8v-196q148 -42 384 90zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266 q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8 q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
293
+ <glyph unicode="&#xf120;" horiz-adv-x="1664" d="M585 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23zM1664 96v-64q0 -14 -9 -23t-23 -9h-960q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h960q14 0 23 -9 t9 -23z" />
294
+ <glyph unicode="&#xf121;" horiz-adv-x="1920" d="M617 137l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23zM1208 1204l-373 -1291q-4 -13 -15.5 -19.5t-23.5 -2.5l-62 17q-13 4 -19.5 15.5t-2.5 24.5 l373 1291q4 13 15.5 19.5t23.5 2.5l62 -17q13 -4 19.5 -15.5t2.5 -24.5zM1865 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23z" />
295
+ <glyph unicode="&#xf122;" horiz-adv-x="1792" d="M640 454v-70q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-69l-397 -398q-19 -19 -19 -45t19 -45zM1792 416q0 -58 -17 -133.5t-38.5 -138t-48 -125t-40.5 -90.5l-20 -40q-8 -17 -28 -17q-6 0 -9 1 q-25 8 -23 34q43 400 -106 565q-64 71 -170.5 110.5t-267.5 52.5v-251q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-262q411 -28 599 -221q169 -173 169 -509z" />
296
+ <glyph unicode="&#xf123;" horiz-adv-x="1664" d="M1186 579l257 250l-356 52l-66 10l-30 60l-159 322v-963l59 -31l318 -168l-60 355l-12 66zM1638 841l-363 -354l86 -500q5 -33 -6 -51.5t-34 -18.5q-17 0 -40 12l-449 236l-449 -236q-23 -12 -40 -12q-23 0 -34 18.5t-6 51.5l86 500l-364 354q-32 32 -23 59.5t54 34.5 l502 73l225 455q20 41 49 41q28 0 49 -41l225 -455l502 -73q45 -7 54 -34.5t-24 -59.5z" />
297
+ <glyph unicode="&#xf124;" horiz-adv-x="1408" d="M1401 1187l-640 -1280q-17 -35 -57 -35q-5 0 -15 2q-22 5 -35.5 22.5t-13.5 39.5v576h-576q-22 0 -39.5 13.5t-22.5 35.5t4 42t29 30l1280 640q13 7 29 7q27 0 45 -19q15 -14 18.5 -34.5t-6.5 -39.5z" />
298
+ <glyph unicode="&#xf125;" horiz-adv-x="1664" d="M557 256h595v595zM512 301l595 595h-595v-595zM1664 224v-192q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v224h-864q-14 0 -23 9t-9 23v864h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224v224q0 14 9 23t23 9h192q14 0 23 -9t9 -23 v-224h851l246 247q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-247 -246v-851h224q14 0 23 -9t9 -23z" />
299
+ <glyph unicode="&#xf126;" horiz-adv-x="1024" d="M288 64q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM288 1216q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM928 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1024 1088q0 -52 -26 -96.5t-70 -69.5 q-2 -287 -226 -414q-68 -38 -203 -81q-128 -40 -169.5 -71t-41.5 -100v-26q44 -25 70 -69.5t26 -96.5q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 52 26 96.5t70 69.5v820q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136q0 -52 -26 -96.5t-70 -69.5v-497 q54 26 154 57q55 17 87.5 29.5t70.5 31t59 39.5t40.5 51t28 69.5t8.5 91.5q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136z" />
300
+ <glyph unicode="&#xf127;" horiz-adv-x="1664" d="M439 265l-256 -256q-10 -9 -23 -9q-12 0 -23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23zM608 224v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM384 448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23t9 23t23 9h320 q14 0 23 -9t9 -23zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-334 335q-21 21 -42 56l239 18l273 -274q27 -27 68 -27.5t68 26.5l147 146q28 28 28 67q0 40 -28 68l-274 275l18 239q35 -21 56 -42l336 -336q84 -86 84 -204zM1031 1044l-239 -18 l-273 274q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l274 -274l-18 -240q-35 21 -56 42l-336 336q-84 86 -84 204q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l334 -335q21 -21 42 -56zM1664 960q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9 t-9 23t9 23t23 9h320q14 0 23 -9t9 -23zM1120 1504v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM1527 1353l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" />
301
+ <glyph unicode="&#xf128;" horiz-adv-x="1024" d="M704 280v-240q0 -16 -12 -28t-28 -12h-240q-16 0 -28 12t-12 28v240q0 16 12 28t28 12h240q16 0 28 -12t12 -28zM1020 880q0 -54 -15.5 -101t-35 -76.5t-55 -59.5t-57.5 -43.5t-61 -35.5q-41 -23 -68.5 -65t-27.5 -67q0 -17 -12 -32.5t-28 -15.5h-240q-15 0 -25.5 18.5 t-10.5 37.5v45q0 83 65 156.5t143 108.5q59 27 84 56t25 76q0 42 -46.5 74t-107.5 32q-65 0 -108 -29q-35 -25 -107 -115q-13 -16 -31 -16q-12 0 -25 8l-164 125q-13 10 -15.5 25t5.5 28q160 266 464 266q80 0 161 -31t146 -83t106 -127.5t41 -158.5z" />
302
+ <glyph unicode="&#xf129;" horiz-adv-x="640" d="M640 192v-128q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64v384h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-576h64q26 0 45 -19t19 -45zM512 1344v-192q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v192 q0 26 19 45t45 19h256q26 0 45 -19t19 -45z" />
303
+ <glyph unicode="&#xf12a;" horiz-adv-x="640" d="M512 288v-224q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v224q0 26 19 45t45 19h256q26 0 45 -19t19 -45zM542 1344l-28 -768q-1 -26 -20.5 -45t-45.5 -19h-256q-26 0 -45.5 19t-20.5 45l-28 768q-1 26 17.5 45t44.5 19h320q26 0 44.5 -19t17.5 -45z" />
304
+ <glyph unicode="&#xf12b;" d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109zM1534 846v-206h-514l-3 27 q-4 28 -4 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q83 65 188 65q110 0 178 -59.5t68 -158.5q0 -56 -24.5 -103t-62 -76.5t-81.5 -58.5t-82 -50.5t-65.5 -51.5t-30.5 -63h232v80 h126z" />
305
+ <glyph unicode="&#xf12c;" d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109zM1536 -50v-206h-514l-4 27 q-3 45 -3 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q80 65 188 65q110 0 178 -59.5t68 -158.5q0 -66 -34.5 -118.5t-84 -86t-99.5 -62.5t-87 -63t-41 -73h232v80h126z" />
306
+ <glyph unicode="&#xf12d;" horiz-adv-x="1920" d="M896 128l336 384h-768l-336 -384h768zM1909 1205q15 -34 9.5 -71.5t-30.5 -65.5l-896 -1024q-38 -44 -96 -44h-768q-38 0 -69.5 20.5t-47.5 54.5q-15 34 -9.5 71.5t30.5 65.5l896 1024q38 44 96 44h768q38 0 69.5 -20.5t47.5 -54.5z" />
307
+ <glyph unicode="&#xf12e;" horiz-adv-x="1664" d="M1664 438q0 -81 -44.5 -135t-123.5 -54q-41 0 -77.5 17.5t-59 38t-56.5 38t-71 17.5q-110 0 -110 -124q0 -39 16 -115t15 -115v-5q-22 0 -33 -1q-34 -3 -97.5 -11.5t-115.5 -13.5t-98 -5q-61 0 -103 26.5t-42 83.5q0 37 17.5 71t38 56.5t38 59t17.5 77.5q0 79 -54 123.5 t-135 44.5q-84 0 -143 -45.5t-59 -127.5q0 -43 15 -83t33.5 -64.5t33.5 -53t15 -50.5q0 -45 -46 -89q-37 -35 -117 -35q-95 0 -245 24q-9 2 -27.5 4t-27.5 4l-13 2q-1 0 -3 1q-2 0 -2 1v1024q2 -1 17.5 -3.5t34 -5t21.5 -3.5q150 -24 245 -24q80 0 117 35q46 44 46 89 q0 22 -15 50.5t-33.5 53t-33.5 64.5t-15 83q0 82 59 127.5t144 45.5q80 0 134 -44.5t54 -123.5q0 -41 -17.5 -77.5t-38 -59t-38 -56.5t-17.5 -71q0 -57 42 -83.5t103 -26.5q64 0 180 15t163 17v-2q-1 -2 -3.5 -17.5t-5 -34t-3.5 -21.5q-24 -150 -24 -245q0 -80 35 -117 q44 -46 89 -46q22 0 50.5 15t53 33.5t64.5 33.5t83 15q82 0 127.5 -59t45.5 -143z" />
308
+ <glyph unicode="&#xf130;" horiz-adv-x="1152" d="M1152 832v-128q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-217 24 -364.5 187.5t-147.5 384.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -185 131.5 -316.5t316.5 -131.5 t316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45zM896 1216v-512q0 -132 -94 -226t-226 -94t-226 94t-94 226v512q0 132 94 226t226 94t226 -94t94 -226z" />
309
+ <glyph unicode="&#xf131;" horiz-adv-x="1408" d="M271 591l-101 -101q-42 103 -42 214v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -53 15 -113zM1385 1193l-361 -361v-128q0 -132 -94 -226t-226 -94q-55 0 -109 19l-96 -96q97 -51 205 -51q185 0 316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128 q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-125 13 -235 81l-254 -254q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l1234 1234q10 10 23 10t23 -10l82 -82q10 -10 10 -23 t-10 -23zM1005 1325l-621 -621v512q0 132 94 226t226 94q102 0 184.5 -59t116.5 -152z" />
310
+ <glyph unicode="&#xf132;" horiz-adv-x="1280" d="M1088 576v640h-448v-1137q119 63 213 137q235 184 235 360zM1280 1344v-768q0 -86 -33.5 -170.5t-83 -150t-118 -127.5t-126.5 -103t-121 -77.5t-89.5 -49.5t-42.5 -20q-12 -6 -26 -6t-26 6q-16 7 -42.5 20t-89.5 49.5t-121 77.5t-126.5 103t-118 127.5t-83 150 t-33.5 170.5v768q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
311
+ <glyph unicode="&#xf133;" horiz-adv-x="1664" d="M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
312
+ <glyph unicode="&#xf134;" horiz-adv-x="1408" d="M512 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 1376v-320q0 -16 -12 -25q-8 -7 -20 -7q-4 0 -7 1l-448 96q-11 2 -18 11t-7 20h-256v-102q111 -23 183.5 -111t72.5 -203v-800q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v800 q0 106 62.5 190.5t161.5 114.5v111h-32q-59 0 -115 -23.5t-91.5 -53t-66 -66.5t-40.5 -53.5t-14 -24.5q-17 -35 -57 -35q-16 0 -29 7q-23 12 -31.5 37t3.5 49q5 10 14.5 26t37.5 53.5t60.5 70t85 67t108.5 52.5q-25 42 -25 86q0 66 47 113t113 47t113 -47t47 -113 q0 -33 -14 -64h302q0 11 7 20t18 11l448 96q3 1 7 1q12 0 20 -7q12 -9 12 -25z" />
313
+ <glyph unicode="&#xf135;" horiz-adv-x="1664" d="M1440 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1664 1376q0 -249 -75.5 -430.5t-253.5 -360.5q-81 -80 -195 -176l-20 -379q-2 -16 -16 -26l-384 -224q-7 -4 -16 -4q-12 0 -23 9l-64 64q-13 14 -8 32l85 276l-281 281l-276 -85q-3 -1 -9 -1 q-14 0 -23 9l-64 64q-17 19 -5 39l224 384q10 14 26 16l379 20q96 114 176 195q188 187 358 258t431 71q14 0 24 -9.5t10 -22.5z" />
314
+ <glyph unicode="&#xf136;" horiz-adv-x="1792" d="M1745 763l-164 -763h-334l178 832q13 56 -15 88q-27 33 -83 33h-169l-204 -953h-334l204 953h-286l-204 -953h-334l204 953l-153 327h1276q101 0 189.5 -40.5t147.5 -113.5q60 -73 81 -168.5t0 -194.5z" />
315
+ <glyph unicode="&#xf137;" d="M909 141l102 102q19 19 19 45t-19 45l-307 307l307 307q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
316
+ <glyph unicode="&#xf138;" d="M717 141l454 454q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l307 -307l-307 -307q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
317
+ <glyph unicode="&#xf139;" d="M1165 397l102 102q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l307 307l307 -307q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
318
+ <glyph unicode="&#xf13a;" d="M813 237l454 454q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-307 -307l-307 307q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
319
+ <glyph unicode="&#xf13b;" horiz-adv-x="1408" d="M1130 939l16 175h-884l47 -534h612l-22 -228l-197 -53l-196 53l-13 140h-175l22 -278l362 -100h4v1l359 99l50 544h-644l-15 181h674zM0 1408h1408l-128 -1438l-578 -162l-574 162z" />
320
+ <glyph unicode="&#xf13c;" horiz-adv-x="1792" d="M275 1408h1505l-266 -1333l-804 -267l-698 267l71 356h297l-29 -147l422 -161l486 161l68 339h-1208l58 297h1209l38 191h-1208z" />
321
+ <glyph unicode="&#xf13d;" horiz-adv-x="1792" d="M960 1280q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1792 352v-352q0 -22 -20 -30q-8 -2 -12 -2q-13 0 -23 9l-93 93q-119 -143 -318.5 -226.5t-429.5 -83.5t-429.5 83.5t-318.5 226.5l-93 -93q-9 -9 -23 -9q-4 0 -12 2q-20 8 -20 30v352 q0 14 9 23t23 9h352q22 0 30 -20q8 -19 -7 -35l-100 -100q67 -91 189.5 -153.5t271.5 -82.5v647h-192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h192v163q-58 34 -93 92.5t-35 128.5q0 106 75 181t181 75t181 -75t75 -181q0 -70 -35 -128.5t-93 -92.5v-163h192q26 0 45 -19 t19 -45v-128q0 -26 -19 -45t-45 -19h-192v-647q149 20 271.5 82.5t189.5 153.5l-100 100q-15 16 -7 35q8 20 30 20h352q14 0 23 -9t9 -23z" />
322
+ <glyph unicode="&#xf13e;" horiz-adv-x="1152" d="M1056 768q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v320q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45q0 106 -75 181t-181 75t-181 -75t-75 -181 v-320h736z" />
323
+ <glyph unicode="&#xf140;" d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM1152 640q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1280 640q0 -212 -150 -362t-362 -150t-362 150 t-150 362t150 362t362 150t362 -150t150 -362zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
324
+ <glyph unicode="&#xf141;" horiz-adv-x="1408" d="M384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM896 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM1408 800v-192q0 -40 -28 -68t-68 -28h-192 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
325
+ <glyph unicode="&#xf142;" horiz-adv-x="384" d="M384 288v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 1312v-192q0 -40 -28 -68t-68 -28h-192 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
326
+ <glyph unicode="&#xf143;" d="M512 256q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM863 162q-13 232 -177 396t-396 177q-14 1 -24 -9t-10 -23v-128q0 -13 8.5 -22t21.5 -10q154 -11 264 -121t121 -264q1 -13 10 -21.5t22 -8.5h128q13 0 23 10 t9 24zM1247 161q-5 154 -56 297.5t-139.5 260t-205 205t-260 139.5t-297.5 56q-14 1 -23 -9q-10 -10 -10 -23v-128q0 -13 9 -22t22 -10q204 -7 378 -111.5t278.5 -278.5t111.5 -378q1 -13 10 -22t22 -9h128q13 0 23 10q11 9 9 23zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
327
+ <glyph unicode="&#xf144;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1152 585q32 18 32 55t-32 55l-544 320q-31 19 -64 1q-32 -19 -32 -56v-640q0 -37 32 -56 q16 -8 32 -8q17 0 32 9z" />
328
+ <glyph unicode="&#xf145;" horiz-adv-x="1792" d="M1024 1084l316 -316l-572 -572l-316 316zM813 105l618 618q19 19 19 45t-19 45l-362 362q-18 18 -45 18t-45 -18l-618 -618q-19 -19 -19 -45t19 -45l362 -362q18 -18 45 -18t45 18zM1702 742l-907 -908q-37 -37 -90.5 -37t-90.5 37l-126 126q56 56 56 136t-56 136 t-136 56t-136 -56l-125 126q-37 37 -37 90.5t37 90.5l907 906q37 37 90.5 37t90.5 -37l125 -125q-56 -56 -56 -136t56 -136t136 -56t136 56l126 -125q37 -37 37 -90.5t-37 -90.5z" />
329
+ <glyph unicode="&#xf146;" d="M1280 576v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h896q26 0 45 19t19 45zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" />
330
+ <glyph unicode="&#xf147;" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h832q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5 t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
331
+ <glyph unicode="&#xf148;" horiz-adv-x="1024" d="M1018 933q-18 -37 -58 -37h-192v-864q0 -14 -9 -23t-23 -9h-704q-21 0 -29 18q-8 20 4 35l160 192q9 11 25 11h320v640h-192q-40 0 -58 37q-17 37 9 68l320 384q18 22 49 22t49 -22l320 -384q27 -32 9 -68z" />
332
+ <glyph unicode="&#xf149;" horiz-adv-x="1024" d="M32 1280h704q13 0 22.5 -9.5t9.5 -23.5v-863h192q40 0 58 -37t-9 -69l-320 -384q-18 -22 -49 -22t-49 22l-320 384q-26 31 -9 69q18 37 58 37h192v640h-320q-14 0 -25 11l-160 192q-13 14 -4 34q9 19 29 19z" />
333
+ <glyph unicode="&#xf14a;" d="M685 237l614 614q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-467 -467l-211 211q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l358 -358q19 -19 45 -19t45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5 t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
334
+ <glyph unicode="&#xf14b;" d="M404 428l152 -152l-52 -52h-56v96h-96v56zM818 818q14 -13 -3 -30l-291 -291q-17 -17 -30 -3q-14 13 3 30l291 291q17 17 30 3zM544 128l544 544l-288 288l-544 -544v-288h288zM1152 736l92 92q28 28 28 68t-28 68l-152 152q-28 28 -68 28t-68 -28l-92 -92zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
335
+ <glyph unicode="&#xf14c;" d="M1280 608v480q0 26 -19 45t-45 19h-480q-42 0 -59 -39q-17 -41 14 -70l144 -144l-534 -534q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l534 534l144 -144q18 -19 45 -19q12 0 25 5q39 17 39 59zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
336
+ <glyph unicode="&#xf14d;" d="M1005 435l352 352q19 19 19 45t-19 45l-352 352q-30 31 -69 14q-40 -17 -40 -59v-160q-119 0 -216 -19.5t-162.5 -51t-114 -79t-76.5 -95.5t-44.5 -109t-21.5 -111.5t-5 -110.5q0 -181 167 -404q10 -12 25 -12q7 0 13 3q22 9 19 33q-44 354 62 473q46 52 130 75.5 t224 23.5v-160q0 -42 40 -59q12 -5 24 -5q26 0 45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
337
+ <glyph unicode="&#xf14e;" d="M640 448l256 128l-256 128v-256zM1024 1039v-542l-512 -256v542zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
338
+ <glyph unicode="&#xf150;" d="M1145 861q18 -35 -5 -66l-320 -448q-19 -27 -52 -27t-52 27l-320 448q-23 31 -5 66q17 35 57 35h640q40 0 57 -35zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
339
+ <glyph unicode="&#xf151;" d="M1145 419q-17 -35 -57 -35h-640q-40 0 -57 35q-18 35 5 66l320 448q19 27 52 27t52 -27l320 -448q23 -31 5 -66zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
340
+ <glyph unicode="&#xf152;" d="M1088 640q0 -33 -27 -52l-448 -320q-31 -23 -66 -5q-35 17 -35 57v640q0 40 35 57q35 18 66 -5l448 -320q27 -19 27 -52zM1280 160v960q0 14 -9 23t-23 9h-960q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h960q14 0 23 9t9 23zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
341
+ <glyph unicode="&#xf153;" horiz-adv-x="1024" d="M976 229l35 -159q3 -12 -3 -22.5t-17 -14.5l-5 -1q-4 -2 -10.5 -3.5t-16 -4.5t-21.5 -5.5t-25.5 -5t-30 -5t-33.5 -4.5t-36.5 -3t-38.5 -1q-234 0 -409 130.5t-238 351.5h-95q-13 0 -22.5 9.5t-9.5 22.5v113q0 13 9.5 22.5t22.5 9.5h66q-2 57 1 105h-67q-14 0 -23 9 t-9 23v114q0 14 9 23t23 9h98q67 210 243.5 338t400.5 128q102 0 194 -23q11 -3 20 -15q6 -11 3 -24l-43 -159q-3 -13 -14 -19.5t-24 -2.5l-4 1q-4 1 -11.5 2.5l-17.5 3.5t-22.5 3.5t-26 3t-29 2.5t-29.5 1q-126 0 -226 -64t-150 -176h468q16 0 25 -12q10 -12 7 -26 l-24 -114q-5 -26 -32 -26h-488q-3 -37 0 -105h459q15 0 25 -12q9 -12 6 -27l-24 -112q-2 -11 -11 -18.5t-20 -7.5h-387q48 -117 149.5 -185.5t228.5 -68.5q18 0 36 1.5t33.5 3.5t29.5 4.5t24.5 5t18.5 4.5l12 3l5 2q13 5 26 -2q12 -7 15 -21z" />
342
+ <glyph unicode="&#xf154;" horiz-adv-x="1024" d="M1020 399v-367q0 -14 -9 -23t-23 -9h-956q-14 0 -23 9t-9 23v150q0 13 9.5 22.5t22.5 9.5h97v383h-95q-14 0 -23 9.5t-9 22.5v131q0 14 9 23t23 9h95v223q0 171 123.5 282t314.5 111q185 0 335 -125q9 -8 10 -20.5t-7 -22.5l-103 -127q-9 -11 -22 -12q-13 -2 -23 7 q-5 5 -26 19t-69 32t-93 18q-85 0 -137 -47t-52 -123v-215h305q13 0 22.5 -9t9.5 -23v-131q0 -13 -9.5 -22.5t-22.5 -9.5h-305v-379h414v181q0 13 9 22.5t23 9.5h162q14 0 23 -9.5t9 -22.5z" />
343
+ <glyph unicode="&#xf155;" horiz-adv-x="1024" d="M978 351q0 -153 -99.5 -263.5t-258.5 -136.5v-175q0 -14 -9 -23t-23 -9h-135q-13 0 -22.5 9.5t-9.5 22.5v175q-66 9 -127.5 31t-101.5 44.5t-74 48t-46.5 37.5t-17.5 18q-17 21 -2 41l103 135q7 10 23 12q15 2 24 -9l2 -2q113 -99 243 -125q37 -8 74 -8q81 0 142.5 43 t61.5 122q0 28 -15 53t-33.5 42t-58.5 37.5t-66 32t-80 32.5q-39 16 -61.5 25t-61.5 26.5t-62.5 31t-56.5 35.5t-53.5 42.5t-43.5 49t-35.5 58t-21 66.5t-8.5 78q0 138 98 242t255 134v180q0 13 9.5 22.5t22.5 9.5h135q14 0 23 -9t9 -23v-176q57 -6 110.5 -23t87 -33.5 t63.5 -37.5t39 -29t15 -14q17 -18 5 -38l-81 -146q-8 -15 -23 -16q-14 -3 -27 7q-3 3 -14.5 12t-39 26.5t-58.5 32t-74.5 26t-85.5 11.5q-95 0 -155 -43t-60 -111q0 -26 8.5 -48t29.5 -41.5t39.5 -33t56 -31t60.5 -27t70 -27.5q53 -20 81 -31.5t76 -35t75.5 -42.5t62 -50 t53 -63.5t31.5 -76.5t13 -94z" />
344
+ <glyph unicode="&#xf156;" horiz-adv-x="898" d="M898 1066v-102q0 -14 -9 -23t-23 -9h-168q-23 -144 -129 -234t-276 -110q167 -178 459 -536q14 -16 4 -34q-8 -18 -29 -18h-195q-16 0 -25 12q-306 367 -498 571q-9 9 -9 22v127q0 13 9.5 22.5t22.5 9.5h112q132 0 212.5 43t102.5 125h-427q-14 0 -23 9t-9 23v102 q0 14 9 23t23 9h413q-57 113 -268 113h-145q-13 0 -22.5 9.5t-9.5 22.5v133q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-233q47 -61 64 -144h171q14 0 23 -9t9 -23z" />
345
+ <glyph unicode="&#xf157;" horiz-adv-x="1027" d="M603 0h-172q-13 0 -22.5 9t-9.5 23v330h-288q-13 0 -22.5 9t-9.5 23v103q0 13 9.5 22.5t22.5 9.5h288v85h-288q-13 0 -22.5 9t-9.5 23v104q0 13 9.5 22.5t22.5 9.5h214l-321 578q-8 16 0 32q10 16 28 16h194q19 0 29 -18l215 -425q19 -38 56 -125q10 24 30.5 68t27.5 61 l191 420q8 19 29 19h191q17 0 27 -16q9 -14 1 -31l-313 -579h215q13 0 22.5 -9.5t9.5 -22.5v-104q0 -14 -9.5 -23t-22.5 -9h-290v-85h290q13 0 22.5 -9.5t9.5 -22.5v-103q0 -14 -9.5 -23t-22.5 -9h-290v-330q0 -13 -9.5 -22.5t-22.5 -9.5z" />
346
+ <glyph unicode="&#xf158;" horiz-adv-x="1280" d="M1043 971q0 100 -65 162t-171 62h-320v-448h320q106 0 171 62t65 162zM1280 971q0 -193 -126.5 -315t-326.5 -122h-340v-118h505q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-505v-192q0 -14 -9.5 -23t-22.5 -9h-167q-14 0 -23 9t-9 23v192h-224q-14 0 -23 9t-9 23v128 q0 14 9 23t23 9h224v118h-224q-14 0 -23 9t-9 23v149q0 13 9 22.5t23 9.5h224v629q0 14 9 23t23 9h539q200 0 326.5 -122t126.5 -315z" />
347
+ <glyph unicode="&#xf159;" horiz-adv-x="1792" d="M514 341l81 299h-159l75 -300q1 -1 1 -3t1 -3q0 1 0.5 3.5t0.5 3.5zM630 768l35 128h-292l32 -128h225zM822 768h139l-35 128h-70zM1271 340l78 300h-162l81 -299q0 -1 0.5 -3.5t1.5 -3.5q0 1 0.5 3t0.5 3zM1382 768l33 128h-297l34 -128h230zM1792 736v-64q0 -14 -9 -23 t-23 -9h-213l-164 -616q-7 -24 -31 -24h-159q-24 0 -31 24l-166 616h-209l-167 -616q-7 -24 -31 -24h-159q-11 0 -19.5 7t-10.5 17l-160 616h-208q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h175l-33 128h-142q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h109l-89 344q-5 15 5 28 q10 12 26 12h137q26 0 31 -24l90 -360h359l97 360q7 24 31 24h126q24 0 31 -24l98 -360h365l93 360q5 24 31 24h137q16 0 26 -12q10 -13 5 -28l-91 -344h111q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-145l-34 -128h179q14 0 23 -9t9 -23z" />
348
+ <glyph unicode="&#xf15a;" horiz-adv-x="1280" d="M1167 896q18 -182 -131 -258q117 -28 175 -103t45 -214q-7 -71 -32.5 -125t-64.5 -89t-97 -58.5t-121.5 -34.5t-145.5 -15v-255h-154v251q-80 0 -122 1v-252h-154v255q-18 0 -54 0.5t-55 0.5h-200l31 183h111q50 0 58 51v402h16q-6 1 -16 1v287q-13 68 -89 68h-111v164 l212 -1q64 0 97 1v252h154v-247q82 2 122 2v245h154v-252q79 -7 140 -22.5t113 -45t82.5 -78t36.5 -114.5zM952 351q0 36 -15 64t-37 46t-57.5 30.5t-65.5 18.5t-74 9t-69 3t-64.5 -1t-47.5 -1v-338q8 0 37 -0.5t48 -0.5t53 1.5t58.5 4t57 8.5t55.5 14t47.5 21t39.5 30 t24.5 40t9.5 51zM881 827q0 33 -12.5 58.5t-30.5 42t-48 28t-55 16.5t-61.5 8t-58 2.5t-54 -1t-39.5 -0.5v-307q5 0 34.5 -0.5t46.5 0t50 2t55 5.5t51.5 11t48.5 18.5t37 27t27 38.5t9 51z" />
349
+ <glyph unicode="&#xf15b;" d="M1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472zM896 992q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544z" />
350
+ <glyph unicode="&#xf15c;" d="M1468 1060q14 -14 28 -36h-472v472q22 -14 36 -28zM992 896h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28zM1152 160v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704 q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23z" />
351
+ <glyph unicode="&#xf15d;" horiz-adv-x="1664" d="M1191 1128h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1572 -23 v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -11v-2l14 2q9 2 30 2h248v119h121zM1661 874v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162 l230 -662h70z" />
352
+ <glyph unicode="&#xf15e;" horiz-adv-x="1664" d="M1191 104h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1661 -150 v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162l230 -662h70zM1572 1001v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -10v-3l14 3q9 1 30 1h248 v119h121z" />
353
+ <glyph unicode="&#xf160;" horiz-adv-x="1792" d="M736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1792 -32v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832 q14 0 23 -9t9 -23zM1600 480v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1408 992v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1216 1504v-192q0 -14 -9 -23t-23 -9h-256 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23z" />
354
+ <glyph unicode="&#xf161;" horiz-adv-x="1792" d="M1216 -32v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192 q14 0 23 -9t9 -23zM1408 480v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1600 992v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1792 1504v-192q0 -14 -9 -23t-23 -9h-832 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832q14 0 23 -9t9 -23z" />
355
+ <glyph unicode="&#xf162;" d="M1346 223q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23 zM1486 165q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5 t82 -252.5zM1456 882v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165z" />
356
+ <glyph unicode="&#xf163;" d="M1346 1247q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9 t9 -23zM1456 -142v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165zM1486 1189q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13 q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5z" />
357
+ <glyph unicode="&#xf164;" horiz-adv-x="1664" d="M256 192q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5zM416 704v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45zM1600 704q0 -86 -55 -149q15 -44 15 -76 q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5v641q0 25 18 43.5t43 20.5q24 2 76 59t101 121q68 87 101 120q18 18 31 48t17.5 48.5 t13.5 60.5q7 39 12.5 61t19.5 52t34 50q19 19 45 19q46 0 82.5 -10.5t60 -26t40 -40.5t24 -45t12 -50t5 -45t0.5 -39q0 -38 -9.5 -76t-19 -60t-27.5 -56q-3 -6 -10 -18t-11 -22t-8 -24h277q78 0 135 -57t57 -135z" />
358
+ <glyph unicode="&#xf165;" horiz-adv-x="1664" d="M256 960q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5zM416 448v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640q0 -26 19 -45t45 -19h288q26 0 45 19t19 45zM1545 597q55 -61 55 -149q-1 -78 -57.5 -135 t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 -13.5 60.5t-17.5 48.5t-31 48q-33 33 -101 120q-49 64 -101 121 t-76 59q-25 2 -43 20.5t-18 43.5v641q0 26 19 44.5t45 19.5q35 1 158 44q77 26 120.5 39.5t121.5 29t144 15.5h17h76h36q133 -2 197 -78q58 -69 49 -181q39 -37 54 -94q17 -61 0 -117q46 -61 43 -137q0 -32 -15 -76z" />
359
+ <glyph unicode="&#xf166;" d="M919 233v157q0 50 -29 50q-17 0 -33 -16v-224q16 -16 33 -16q29 0 29 49zM1103 355h66v34q0 51 -33 51t-33 -51v-34zM532 621v-70h-80v-423h-74v423h-78v70h232zM733 495v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 16 -6 54v290h66v-270q0 -24 1 -26q1 -15 15 -15 q20 0 42 31v280h67zM985 384v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74zM1236 255v-9q0 -29 -2 -43q-3 -22 -15 -40q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86v129q0 59 20 86q29 38 80 38t78 -38 q21 -28 21 -86v-76h-133v-65q0 -51 34 -51q24 0 30 26q0 1 0.5 7t0.5 16.5v21.5h68zM785 1079v-156q0 -51 -32 -51t-32 51v156q0 52 32 52t32 -52zM1318 366q0 177 -19 260q-10 44 -43 73.5t-76 34.5q-136 15 -412 15q-275 0 -411 -15q-44 -5 -76.5 -34.5t-42.5 -73.5 q-20 -87 -20 -260q0 -176 20 -260q10 -43 42.5 -73t75.5 -35q137 -15 412 -15t412 15q43 5 75.5 35t42.5 73q20 84 20 260zM563 1017l90 296h-75l-51 -195l-53 195h-78l24 -69t23 -69q35 -103 46 -158v-201h74v201zM852 936v130q0 58 -21 87q-29 38 -78 38q-51 0 -78 -38 q-21 -29 -21 -87v-130q0 -58 21 -87q27 -38 78 -38q49 0 78 38q21 27 21 87zM1033 816h67v370h-67v-283q-22 -31 -42 -31q-15 0 -16 16q-1 2 -1 26v272h-67v-293q0 -37 6 -55q11 -27 43 -27q36 0 77 45v-40zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
360
+ <glyph unicode="&#xf167;" d="M971 292v-211q0 -67 -39 -67q-23 0 -45 22v301q22 22 45 22q39 0 39 -67zM1309 291v-46h-90v46q0 68 45 68t45 -68zM343 509h107v94h-312v-94h105v-569h100v569zM631 -60h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391q0 -49 8 -73 q12 -37 58 -37q48 0 102 61v-54zM1060 88v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89v-663h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100zM1398 98v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39 51 -106 51q-68 0 -107 -51 q-28 -37 -28 -116v-173q0 -79 29 -116q39 -51 108 -51q72 0 108 53q18 27 21 54q2 9 2 58zM790 1011v210q0 69 -43 69t-43 -69v-210q0 -70 43 -70t43 70zM1509 260q0 -234 -26 -350q-14 -59 -58 -99t-102 -46q-184 -21 -555 -21t-555 21q-58 6 -102.5 46t-57.5 99 q-26 112 -26 350q0 234 26 350q14 59 58 99t103 47q183 20 554 20t555 -20q58 -7 102.5 -47t57.5 -99q26 -112 26 -350zM511 1536h102l-121 -399v-271h-100v271q-14 74 -61 212q-37 103 -65 187h106l71 -263zM881 1203v-175q0 -81 -28 -118q-37 -51 -106 -51q-67 0 -105 51 q-28 38 -28 118v175q0 80 28 117q38 51 105 51q69 0 106 -51q28 -37 28 -117zM1216 1365v-499h-91v55q-53 -62 -103 -62q-46 0 -59 37q-8 24 -8 75v394h91v-367q0 -33 1 -35q3 -22 21 -22q27 0 57 43v381h91z" />
361
+ <glyph unicode="&#xf168;" horiz-adv-x="1408" d="M597 869q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17t0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45zM1403 1511q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37q-10 -15 -32 -15h-239q-42 0 -66 45l-339 622q18 32 531 942 q25 45 64 45h241q22 0 31 -15z" />
362
+ <glyph unicode="&#xf169;" d="M685 771q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29l125 -216v-1l-196 -346q-9 -14 0 -28q8 -13 24 -13h185q31 0 50 36zM1309 1268q-7 12 -24 12h-187q-30 0 -49 -35l-411 -729q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1 l409 723q8 16 0 28zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
363
+ <glyph unicode="&#xf16a;" horiz-adv-x="1792" d="M1280 640q0 37 -30 54l-512 320q-31 20 -65 2q-33 -18 -33 -56v-640q0 -38 33 -56q16 -8 31 -8q20 0 34 10l512 320q30 17 30 54zM1792 640q0 -96 -1 -150t-8.5 -136.5t-22.5 -147.5q-16 -73 -69 -123t-124 -58q-222 -25 -671 -25t-671 25q-71 8 -124.5 58t-69.5 123 q-14 65 -21.5 147.5t-8.5 136.5t-1 150t1 150t8.5 136.5t22.5 147.5q16 73 69 123t124 58q222 25 671 25t671 -25q71 -8 124.5 -58t69.5 -123q14 -65 21.5 -147.5t8.5 -136.5t1 -150z" />
364
+ <glyph unicode="&#xf16b;" horiz-adv-x="1792" d="M402 829l494 -305l-342 -285l-490 319zM1388 274v-108l-490 -293v-1l-1 1l-1 -1v1l-489 293v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284zM554 1418l342 -285l-494 -304l-338 270zM1390 829l338 -271l-489 -319l-343 285zM1239 1418l489 -319l-338 -270l-494 304z" />
365
+ <glyph unicode="&#xf16c;" horiz-adv-x="1408" d="M928 135v-151l-707 -1v151zM1169 481v-701l-1 -35v-1h-1132l-35 1h-1v736h121v-618h928v618h120zM241 393l704 -65l-13 -150l-705 65zM309 709l683 -183l-39 -146l-683 183zM472 1058l609 -360l-77 -130l-609 360zM832 1389l398 -585l-124 -85l-399 584zM1285 1536 l121 -697l-149 -26l-121 697z" />
366
+ <glyph unicode="&#xf16d;" d="M1362 110v648h-135q20 -63 20 -131q0 -126 -64 -232.5t-174 -168.5t-240 -62q-197 0 -337 135.5t-140 327.5q0 68 20 131h-141v-648q0 -26 17.5 -43.5t43.5 -17.5h1069q25 0 43 17.5t18 43.5zM1078 643q0 124 -90.5 211.5t-218.5 87.5q-127 0 -217.5 -87.5t-90.5 -211.5 t90.5 -211.5t217.5 -87.5q128 0 218.5 87.5t90.5 211.5zM1362 1003v165q0 28 -20 48.5t-49 20.5h-174q-29 0 -49 -20.5t-20 -48.5v-165q0 -29 20 -49t49 -20h174q29 0 49 20t20 49zM1536 1211v-1142q0 -81 -58 -139t-139 -58h-1142q-81 0 -139 58t-58 139v1142q0 81 58 139 t139 58h1142q81 0 139 -58t58 -139z" />
367
+ <glyph unicode="&#xf16e;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM698 640q0 88 -62 150t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150zM1262 640q0 88 -62 150 t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150z" />
368
+ <glyph unicode="&#xf170;" d="M768 914l201 -306h-402zM1133 384h94l-459 691l-459 -691h94l104 160h522zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
369
+ <glyph unicode="&#xf171;" horiz-adv-x="1408" d="M815 677q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82t52 58q36 18 72.5 12t64 -35.5t27.5 -67.5zM926 698q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5q4 -91 77.5 -155t165.5 -56q91 8 152 84t50 168zM1165 1240q-20 27 -56 44.5t-58 22 t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5zM1222 205q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q-86 -48 -189.5 -71.5t-202 -22t-201.5 18.5q-46 8 -81.5 18 t-76.5 27t-73 43.5t-52 61.5q-25 96 -57 292l6 16l18 9q223 -148 506.5 -148t507.5 148q21 -6 24 -23t-5 -45t-8 -37zM1403 1166q-26 -167 -111 -655q-5 -30 -27 -56t-43.5 -40t-54.5 -31q-252 -126 -610 -88q-248 27 -394 139q-15 12 -25.5 26.5t-17 35t-9 34t-6 39.5 t-5.5 35q-9 50 -26.5 150t-28 161.5t-23.5 147.5t-22 158q3 26 17.5 48.5t31.5 37.5t45 30t46 22.5t48 18.5q125 46 313 64q379 37 676 -50q155 -46 215 -122q16 -20 16.5 -51t-5.5 -54z" />
370
+ <glyph unicode="&#xf172;" d="M848 666q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5t43.5 -70.5q39 -23 81 4t36 72zM928 682q8 -66 -36 -121t-110 -61t-119 40t-56 113q-2 49 25.5 93t72.5 64q70 31 141.5 -10t81.5 -118zM1100 1073q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5 t-52.5 16t-54.5 32.5q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5zM1142 327q0 7 5.5 26.5t3 32t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6l-5 -12q26 -154 41 -210q47 -81 204 -108q249 -46 428 53q34 19 49 51.5t22.5 85.5t12.5 71z M1272 1020q9 53 -8 75q-43 55 -155 88q-216 63 -487 36q-132 -12 -226 -46q-38 -15 -59.5 -25t-47 -34t-29.5 -54q8 -68 19 -138t29 -171t24 -137q1 -5 5 -31t7 -36t12 -27t22 -28q105 -80 284 -100q259 -28 440 63q24 13 39.5 23t31 29t19.5 40q48 267 80 473zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
371
+ <glyph unicode="&#xf173;" horiz-adv-x="1024" d="M944 207l80 -237q-23 -35 -111 -66t-177 -32q-104 -2 -190.5 26t-142.5 74t-95 106t-55.5 120t-16.5 118v544h-168v215q72 26 129 69.5t91 90t58 102t34 99t15 88.5q1 5 4.5 8.5t7.5 3.5h244v-424h333v-252h-334v-518q0 -30 6.5 -56t22.5 -52.5t49.5 -41.5t81.5 -14 q78 2 134 29z" />
372
+ <glyph unicode="&#xf174;" d="M1136 75l-62 183q-44 -22 -103 -22q-36 -1 -62 10.5t-38.5 31.5t-17.5 40.5t-5 43.5v398h257v194h-256v326h-188q-8 0 -9 -10q-5 -44 -17.5 -87t-39 -95t-77 -95t-118.5 -68v-165h130v-418q0 -57 21.5 -115t65 -111t121 -85.5t176.5 -30.5q69 1 136.5 25t85.5 50z M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
373
+ <glyph unicode="&#xf175;" horiz-adv-x="768" d="M765 237q8 -19 -5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19z" />
374
+ <glyph unicode="&#xf176;" horiz-adv-x="768" d="M765 1043q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19t5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35z" />
375
+ <glyph unicode="&#xf177;" horiz-adv-x="1792" d="M1792 736v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23z" />
376
+ <glyph unicode="&#xf178;" horiz-adv-x="1792" d="M1728 643q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23z" />
377
+ <glyph unicode="&#xf179;" horiz-adv-x="1408" d="M1393 321q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503q0 228 113 374q112 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65 q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126zM1017 1494q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11q0 -4 0.5 -10t0.5 -10z" />
378
+ <glyph unicode="&#xf17a;" horiz-adv-x="1664" d="M682 530v-651l-682 94v557h682zM682 1273v-659h-682v565zM1664 530v-786l-907 125v661h907zM1664 1408v-794h-907v669z" />
379
+ <glyph unicode="&#xf17b;" horiz-adv-x="1408" d="M493 1053q16 0 27.5 11.5t11.5 27.5t-11.5 27.5t-27.5 11.5t-27 -11.5t-11 -27.5t11 -27.5t27 -11.5zM915 1053q16 0 27 11.5t11 27.5t-11 27.5t-27 11.5t-27.5 -11.5t-11.5 -27.5t11.5 -27.5t27.5 -11.5zM103 869q42 0 72 -30t30 -72v-430q0 -43 -29.5 -73t-72.5 -30 t-73 30t-30 73v430q0 42 30 72t73 30zM1163 850v-666q0 -46 -32 -78t-77 -32h-75v-227q0 -43 -30 -73t-73 -30t-73 30t-30 73v227h-138v-227q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73l-1 227h-74q-46 0 -78 32t-32 78v666h918zM931 1255q107 -55 171 -153.5t64 -215.5 h-925q0 117 64 215.5t172 153.5l-71 131q-7 13 5 20q13 6 20 -6l72 -132q95 42 201 42t201 -42l72 132q7 12 20 6q12 -7 5 -20zM1408 767v-430q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73v430q0 43 30 72.5t72 29.5q43 0 73 -29.5t30 -72.5z" />
380
+ <glyph unicode="&#xf17c;" d="M663 1125q-11 -1 -15.5 -10.5t-8.5 -9.5q-5 -1 -5 5q0 12 19 15h10zM750 1111q-4 -1 -11.5 6.5t-17.5 4.5q24 11 32 -2q3 -6 -3 -9zM399 684q-4 1 -6 -3t-4.5 -12.5t-5.5 -13.5t-10 -13q-7 -10 -1 -12q4 -1 12.5 7t12.5 18q1 3 2 7t2 6t1.5 4.5t0.5 4v3t-1 2.5t-3 2z M1254 325q0 18 -55 42q4 15 7.5 27.5t5 26t3 21.5t0.5 22.5t-1 19.5t-3.5 22t-4 20.5t-5 25t-5.5 26.5q-10 48 -47 103t-72 75q24 -20 57 -83q87 -162 54 -278q-11 -40 -50 -42q-31 -4 -38.5 18.5t-8 83.5t-11.5 107q-9 39 -19.5 69t-19.5 45.5t-15.5 24.5t-13 15t-7.5 7 q-14 62 -31 103t-29.5 56t-23.5 33t-15 40q-4 21 6 53.5t4.5 49.5t-44.5 25q-15 3 -44.5 18t-35.5 16q-8 1 -11 26t8 51t36 27q37 3 51 -30t4 -58q-11 -19 -2 -26.5t30 -0.5q13 4 13 36v37q-5 30 -13.5 50t-21 30.5t-23.5 15t-27 7.5q-107 -8 -89 -134q0 -15 -1 -15 q-9 9 -29.5 10.5t-33 -0.5t-15.5 5q1 57 -16 90t-45 34q-27 1 -41.5 -27.5t-16.5 -59.5q-1 -15 3.5 -37t13 -37.5t15.5 -13.5q10 3 16 14q4 9 -7 8q-7 0 -15.5 14.5t-9.5 33.5q-1 22 9 37t34 14q17 0 27 -21t9.5 -39t-1.5 -22q-22 -15 -31 -29q-8 -12 -27.5 -23.5 t-20.5 -12.5q-13 -14 -15.5 -27t7.5 -18q14 -8 25 -19.5t16 -19t18.5 -13t35.5 -6.5q47 -2 102 15q2 1 23 7t34.5 10.5t29.5 13t21 17.5q9 14 20 8q5 -3 6.5 -8.5t-3 -12t-16.5 -9.5q-20 -6 -56.5 -21.5t-45.5 -19.5q-44 -19 -70 -23q-25 -5 -79 2q-10 2 -9 -2t17 -19 q25 -23 67 -22q17 1 36 7t36 14t33.5 17.5t30 17t24.5 12t17.5 2.5t8.5 -11q0 -2 -1 -4.5t-4 -5t-6 -4.5t-8.5 -5t-9 -4.5t-10 -5t-9.5 -4.5q-28 -14 -67.5 -44t-66.5 -43t-49 -1q-21 11 -63 73q-22 31 -25 22q-1 -3 -1 -10q0 -25 -15 -56.5t-29.5 -55.5t-21 -58t11.5 -63 q-23 -6 -62.5 -90t-47.5 -141q-2 -18 -1.5 -69t-5.5 -59q-8 -24 -29 -3q-32 31 -36 94q-2 28 4 56q4 19 -1 18l-4 -5q-36 -65 10 -166q5 -12 25 -28t24 -20q20 -23 104 -90.5t93 -76.5q16 -15 17.5 -38t-14 -43t-45.5 -23q8 -15 29 -44.5t28 -54t7 -70.5q46 24 7 92 q-4 8 -10.5 16t-9.5 12t-2 6q3 5 13 9.5t20 -2.5q46 -52 166 -36q133 15 177 87q23 38 34 30q12 -6 10 -52q-1 -25 -23 -92q-9 -23 -6 -37.5t24 -15.5q3 19 14.5 77t13.5 90q2 21 -6.5 73.5t-7.5 97t23 70.5q15 18 51 18q1 37 34.5 53t72.5 10.5t60 -22.5zM626 1152 q3 17 -2.5 30t-11.5 15q-9 2 -9 -7q2 -5 5 -6q10 0 7 -15q-3 -20 8 -20q3 0 3 3zM1045 955q-2 8 -6.5 11.5t-13 5t-14.5 5.5q-5 3 -9.5 8t-7 8t-5.5 6.5t-4 4t-4 -1.5q-14 -16 7 -43.5t39 -31.5q9 -1 14.5 8t3.5 20zM867 1168q0 11 -5 19.5t-11 12.5t-9 3q-14 -1 -7 -7l4 -2 q14 -4 18 -31q0 -3 8 2zM921 1401q0 2 -2.5 5t-9 7t-9.5 6q-15 15 -24 15q-9 -1 -11.5 -7.5t-1 -13t-0.5 -12.5q-1 -4 -6 -10.5t-6 -9t3 -8.5q4 -3 8 0t11 9t15 9q1 1 9 1t15 2t9 7zM1486 60q20 -12 31 -24.5t12 -24t-2.5 -22.5t-15.5 -22t-23.5 -19.5t-30 -18.5 t-31.5 -16.5t-32 -15.5t-27 -13q-38 -19 -85.5 -56t-75.5 -64q-17 -16 -68 -19.5t-89 14.5q-18 9 -29.5 23.5t-16.5 25.5t-22 19.5t-47 9.5q-44 1 -130 1q-19 0 -57 -1.5t-58 -2.5q-44 -1 -79.5 -15t-53.5 -30t-43.5 -28.5t-53.5 -11.5q-29 1 -111 31t-146 43q-19 4 -51 9.5 t-50 9t-39.5 9.5t-33.5 14.5t-17 19.5q-10 23 7 66.5t18 54.5q1 16 -4 40t-10 42.5t-4.5 36.5t10.5 27q14 12 57 14t60 12q30 18 42 35t12 51q21 -73 -32 -106q-32 -20 -83 -15q-34 3 -43 -10q-13 -15 5 -57q2 -6 8 -18t8.5 -18t4.5 -17t1 -22q0 -15 -17 -49t-14 -48 q3 -17 37 -26q20 -6 84.5 -18.5t99.5 -20.5q24 -6 74 -22t82.5 -23t55.5 -4q43 6 64.5 28t23 48t-7.5 58.5t-19 52t-20 36.5q-121 190 -169 242q-68 74 -113 40q-11 -9 -15 15q-3 16 -2 38q1 29 10 52t24 47t22 42q8 21 26.5 72t29.5 78t30 61t39 54q110 143 124 195 q-12 112 -16 310q-2 90 24 151.5t106 104.5q39 21 104 21q53 1 106 -13.5t89 -41.5q57 -42 91.5 -121.5t29.5 -147.5q-5 -95 30 -214q34 -113 133 -218q55 -59 99.5 -163t59.5 -191q8 -49 5 -84.5t-12 -55.5t-20 -22q-10 -2 -23.5 -19t-27 -35.5t-40.5 -33.5t-61 -14 q-18 1 -31.5 5t-22.5 13.5t-13.5 15.5t-11.5 20.5t-9 19.5q-22 37 -41 30t-28 -49t7 -97q20 -70 1 -195q-10 -65 18 -100.5t73 -33t85 35.5q59 49 89.5 66.5t103.5 42.5q53 18 77 36.5t18.5 34.5t-25 28.5t-51.5 23.5q-33 11 -49.5 48t-15 72.5t15.5 47.5q1 -31 8 -56.5 t14.5 -40.5t20.5 -28.5t21 -19t21.5 -13t16.5 -9.5z" />
381
+ <glyph unicode="&#xf17d;" d="M1024 36q-42 241 -140 498h-2l-2 -1q-16 -6 -43 -16.5t-101 -49t-137 -82t-131 -114.5t-103 -148l-15 11q184 -150 418 -150q132 0 256 52zM839 643q-21 49 -53 111q-311 -93 -673 -93q-1 -7 -1 -21q0 -124 44 -236.5t124 -201.5q50 89 123.5 166.5t142.5 124.5t130.5 81 t99.5 48l37 13q4 1 13 3.5t13 4.5zM732 855q-120 213 -244 378q-138 -65 -234 -186t-128 -272q302 0 606 80zM1416 536q-210 60 -409 29q87 -239 128 -469q111 75 185 189.5t96 250.5zM611 1277q-1 0 -2 -1q1 1 2 1zM1201 1132q-185 164 -433 164q-76 0 -155 -19 q131 -170 246 -382q69 26 130 60.5t96.5 61.5t65.5 57t37.5 40.5zM1424 647q-3 232 -149 410l-1 -1q-9 -12 -19 -24.5t-43.5 -44.5t-71 -60.5t-100 -65t-131.5 -64.5q25 -53 44 -95q2 -6 6.5 -17.5t7.5 -16.5q36 5 74.5 7t73.5 2t69 -1.5t64 -4t56.5 -5.5t48 -6.5t36.5 -6 t25 -4.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
382
+ <glyph unicode="&#xf17e;" d="M1173 473q0 50 -19.5 91.5t-48.5 68.5t-73 49t-82.5 34t-87.5 23l-104 24q-30 7 -44 10.5t-35 11.5t-30 16t-16.5 21t-7.5 30q0 77 144 77q43 0 77 -12t54 -28.5t38 -33.5t40 -29t48 -12q47 0 75.5 32t28.5 77q0 55 -56 99.5t-142 67.5t-182 23q-68 0 -132 -15.5 t-119.5 -47t-89 -87t-33.5 -128.5q0 -61 19 -106.5t56 -75.5t80 -48.5t103 -32.5l146 -36q90 -22 112 -36q32 -20 32 -60q0 -39 -40 -64.5t-105 -25.5q-51 0 -91.5 16t-65 38.5t-45.5 45t-46 38.5t-54 16q-50 0 -75.5 -30t-25.5 -75q0 -92 122 -157.5t291 -65.5 q73 0 140 18.5t122.5 53.5t88.5 93.5t33 131.5zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5q-130 0 -234 80q-77 -16 -150 -16q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5q0 73 16 150q-80 104 -80 234q0 159 112.5 271.5t271.5 112.5q130 0 234 -80 q77 16 150 16q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -73 -16 -150q80 -104 80 -234z" />
383
+ <glyph unicode="&#xf180;" horiz-adv-x="1280" d="M1000 1102l37 194q5 23 -9 40t-35 17h-712q-23 0 -38.5 -17t-15.5 -37v-1101q0 -7 6 -1l291 352q23 26 38 33.5t48 7.5h239q22 0 37 14.5t18 29.5q24 130 37 191q4 21 -11.5 40t-36.5 19h-294q-29 0 -48 19t-19 48v42q0 29 19 47.5t48 18.5h346q18 0 35 13.5t20 29.5z M1227 1324q-15 -73 -53.5 -266.5t-69.5 -350t-35 -173.5q-6 -22 -9 -32.5t-14 -32.5t-24.5 -33t-38.5 -21t-58 -10h-271q-13 0 -22 -10q-8 -9 -426 -494q-22 -25 -58.5 -28.5t-48.5 5.5q-55 22 -55 98v1410q0 55 38 102.5t120 47.5h888q95 0 127 -53t10 -159zM1227 1324 l-158 -790q4 17 35 173.5t69.5 350t53.5 266.5z" />
384
+ <glyph unicode="&#xf181;" d="M704 192v1024q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-1024q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1376 576v640q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-640q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408 q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
385
+ <glyph unicode="&#xf182;" horiz-adv-x="1280" d="M1280 480q0 -40 -28 -68t-68 -28q-51 0 -80 43l-227 341h-45v-132l247 -411q9 -15 9 -33q0 -26 -19 -45t-45 -19h-192v-272q0 -46 -33 -79t-79 -33h-160q-46 0 -79 33t-33 79v272h-192q-26 0 -45 19t-19 45q0 18 9 33l247 411v132h-45l-227 -341q-29 -43 -80 -43 q-40 0 -68 28t-28 68q0 29 16 53l256 384q73 107 176 107h384q103 0 176 -107l256 -384q16 -24 16 -53zM864 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
386
+ <glyph unicode="&#xf183;" horiz-adv-x="1024" d="M1024 832v-416q0 -40 -28 -68t-68 -28t-68 28t-28 68v352h-64v-912q0 -46 -33 -79t-79 -33t-79 33t-33 79v464h-64v-464q0 -46 -33 -79t-79 -33t-79 33t-33 79v912h-64v-352q0 -40 -28 -68t-68 -28t-68 28t-28 68v416q0 80 56 136t136 56h640q80 0 136 -56t56 -136z M736 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
387
+ <glyph unicode="&#xf184;" d="M773 234l350 473q16 22 24.5 59t-6 85t-61.5 79q-40 26 -83 25.5t-73.5 -17.5t-54.5 -45q-36 -40 -96 -40q-59 0 -95 40q-24 28 -54.5 45t-73.5 17.5t-84 -25.5q-46 -31 -60.5 -79t-6 -85t24.5 -59zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
388
+ <glyph unicode="&#xf185;" horiz-adv-x="1792" d="M1472 640q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5zM1748 363q-4 -15 -20 -20l-292 -96v-306q0 -16 -13 -26q-15 -10 -29 -4 l-292 94l-180 -248q-10 -13 -26 -13t-26 13l-180 248l-292 -94q-14 -6 -29 4q-13 10 -13 26v306l-292 96q-16 5 -20 20q-5 17 4 29l180 248l-180 248q-9 13 -4 29q4 15 20 20l292 96v306q0 16 13 26q15 10 29 4l292 -94l180 248q9 12 26 12t26 -12l180 -248l292 94 q14 6 29 -4q13 -10 13 -26v-306l292 -96q16 -5 20 -20q5 -16 -4 -29l-180 -248l180 -248q9 -12 4 -29z" />
389
+ <glyph unicode="&#xf186;" d="M1262 233q-54 -9 -110 -9q-182 0 -337 90t-245 245t-90 337q0 192 104 357q-201 -60 -328.5 -229t-127.5 -384q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51q144 0 273.5 61.5t220.5 171.5zM1465 318q-94 -203 -283.5 -324.5t-413.5 -121.5q-156 0 -298 61 t-245 164t-164 245t-61 298q0 153 57.5 292.5t156 241.5t235.5 164.5t290 68.5q44 2 61 -39q18 -41 -15 -72q-86 -78 -131.5 -181.5t-45.5 -218.5q0 -148 73 -273t198 -198t273 -73q118 0 228 51q41 18 72 -13q14 -14 17.5 -34t-4.5 -38z" />
390
+ <glyph unicode="&#xf187;" horiz-adv-x="1792" d="M1088 704q0 26 -19 45t-45 19h-256q-26 0 -45 -19t-19 -45t19 -45t45 -19h256q26 0 45 19t19 45zM1664 896v-960q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v960q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1728 1344v-256q0 -26 -19 -45t-45 -19h-1536 q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1536q26 0 45 -19t19 -45z" />
391
+ <glyph unicode="&#xf188;" horiz-adv-x="1664" d="M1632 576q0 -26 -19 -45t-45 -19h-224q0 -171 -67 -290l208 -209q19 -19 19 -45t-19 -45q-18 -19 -45 -19t-45 19l-198 197q-5 -5 -15 -13t-42 -28.5t-65 -36.5t-82 -29t-97 -13v896h-128v-896q-51 0 -101.5 13.5t-87 33t-66 39t-43.5 32.5l-15 14l-183 -207 q-20 -21 -48 -21q-24 0 -43 16q-19 18 -20.5 44.5t15.5 46.5l202 227q-58 114 -58 274h-224q-26 0 -45 19t-19 45t19 45t45 19h224v294l-173 173q-19 19 -19 45t19 45t45 19t45 -19l173 -173h844l173 173q19 19 45 19t45 -19t19 -45t-19 -45l-173 -173v-294h224q26 0 45 -19 t19 -45zM1152 1152h-640q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5z" />
392
+ <glyph unicode="&#xf189;" horiz-adv-x="1920" d="M1917 1016q23 -64 -150 -294q-24 -32 -65 -85q-78 -100 -90 -131q-17 -41 14 -81q17 -21 81 -82h1l1 -1l1 -1l2 -2q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12q-30 21 -70 64t-68.5 77.5t-61 58 t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91t-106 151t-122.5 211t-130.5 272q-6 16 -6 27t3 16l4 6 q15 19 57 19l274 2q12 -2 23 -6.5t16 -8.5l5 -3q16 -11 24 -32q20 -50 46 -103.5t41 -81.5l16 -29q29 -60 56 -104t48.5 -68.5t41.5 -38.5t34 -14t27 5q2 1 5 5t12 22t13.5 47t9.5 81t0 125q-2 40 -9 73t-14 46l-6 12q-25 34 -85 43q-13 2 5 24q17 19 38 30q53 26 239 24 q82 -1 135 -13q20 -5 33.5 -13.5t20.5 -24t10.5 -32t3.5 -45.5t-1 -55t-2.5 -70.5t-1.5 -82.5q0 -11 -1 -42t-0.5 -48t3.5 -40.5t11.5 -39t22.5 -24.5q8 -2 17 -4t26 11t38 34.5t52 67t68 107.5q60 104 107 225q4 10 10 17.5t11 10.5l4 3l5 2.5t13 3t20 0.5l288 2 q39 5 64 -2.5t31 -16.5z" />
393
+ <glyph unicode="&#xf18a;" horiz-adv-x="1792" d="M675 252q21 34 11 69t-45 50q-34 14 -73 1t-60 -46q-22 -34 -13 -68.5t43 -50.5t74.5 -2.5t62.5 47.5zM769 373q8 13 3.5 26.5t-17.5 18.5q-14 5 -28.5 -0.5t-21.5 -18.5q-17 -31 13 -45q14 -5 29 0.5t22 18.5zM943 266q-45 -102 -158 -150t-224 -12 q-107 34 -147.5 126.5t6.5 187.5q47 93 151.5 139t210.5 19q111 -29 158.5 -119.5t2.5 -190.5zM1255 426q-9 96 -89 170t-208.5 109t-274.5 21q-223 -23 -369.5 -141.5t-132.5 -264.5q9 -96 89 -170t208.5 -109t274.5 -21q223 23 369.5 141.5t132.5 264.5zM1563 422 q0 -68 -37 -139.5t-109 -137t-168.5 -117.5t-226 -83t-270.5 -31t-275 33.5t-240.5 93t-171.5 151t-65 199.5q0 115 69.5 245t197.5 258q169 169 341.5 236t246.5 -7q65 -64 20 -209q-4 -14 -1 -20t10 -7t14.5 0.5t13.5 3.5l6 2q139 59 246 59t153 -61q45 -63 0 -178 q-2 -13 -4.5 -20t4.5 -12.5t12 -7.5t17 -6q57 -18 103 -47t80 -81.5t34 -116.5zM1489 1046q42 -47 54.5 -108.5t-6.5 -117.5q-8 -23 -29.5 -34t-44.5 -4q-23 8 -34 29.5t-4 44.5q20 63 -24 111t-107 35q-24 -5 -45 8t-25 37q-5 24 8 44.5t37 25.5q60 13 119 -5.5t101 -65.5z M1670 1209q87 -96 112.5 -222.5t-13.5 -241.5q-9 -27 -34 -40t-52 -4t-40 34t-5 52q28 82 10 172t-80 158q-62 69 -148 95.5t-173 8.5q-28 -6 -52 9.5t-30 43.5t9.5 51.5t43.5 29.5q123 26 244 -11.5t208 -134.5z" />
394
+ <glyph unicode="&#xf18b;" d="M1133 -34q-171 -94 -368 -94q-196 0 -367 94q138 87 235.5 211t131.5 268q35 -144 132.5 -268t235.5 -211zM638 1394v-485q0 -252 -126.5 -459.5t-330.5 -306.5q-181 215 -181 495q0 187 83.5 349.5t229.5 269.5t325 137zM1536 638q0 -280 -181 -495 q-204 99 -330.5 306.5t-126.5 459.5v485q179 -30 325 -137t229.5 -269.5t83.5 -349.5z" />
395
+ <glyph unicode="&#xf18c;" horiz-adv-x="1408" d="M1402 433q-32 -80 -76 -138t-91 -88.5t-99 -46.5t-101.5 -14.5t-96.5 8.5t-86.5 22t-69.5 27.5t-46 22.5l-17 10q-113 -228 -289.5 -359.5t-384.5 -132.5q-19 0 -32 13t-13 32t13 31.5t32 12.5q173 1 322.5 107.5t251.5 294.5q-36 -14 -72 -23t-83 -13t-91 2.5t-93 28.5 t-92 59t-84.5 100t-74.5 146q114 47 214 57t167.5 -7.5t124.5 -56.5t88.5 -77t56.5 -82q53 131 79 291q-7 -1 -18 -2.5t-46.5 -2.5t-69.5 0.5t-81.5 10t-88.5 23t-84 42.5t-75 65t-54.5 94.5t-28.5 127.5q70 28 133.5 36.5t112.5 -1t92 -30t73.5 -50t56 -61t42 -63t27.5 -56 t16 -39.5l4 -16q12 122 12 195q-8 6 -21.5 16t-49 44.5t-63.5 71.5t-54 93t-33 112.5t12 127t70 138.5q73 -25 127.5 -61.5t84.5 -76.5t48 -85t20.5 -89t-0.5 -85.5t-13 -76.5t-19 -62t-17 -42l-7 -15q1 -5 1 -50.5t-1 -71.5q3 7 10 18.5t30.5 43t50.5 58t71 55.5t91.5 44.5 t112 14.5t132.5 -24q-2 -78 -21.5 -141.5t-50 -104.5t-69.5 -71.5t-81.5 -45.5t-84.5 -24t-80 -9.5t-67.5 1t-46.5 4.5l-17 3q-23 -147 -73 -283q6 7 18 18.5t49.5 41t77.5 52.5t99.5 42t117.5 20t129 -23.5t137 -77.5z" />
396
+ <glyph unicode="&#xf18d;" horiz-adv-x="1280" d="M1259 283v-66q0 -85 -57.5 -144.5t-138.5 -59.5h-57l-260 -269v269h-529q-81 0 -138.5 59.5t-57.5 144.5v66h1238zM1259 609v-255h-1238v255h1238zM1259 937v-255h-1238v255h1238zM1259 1077v-67h-1238v67q0 84 57.5 143.5t138.5 59.5h846q81 0 138.5 -59.5t57.5 -143.5z " />
397
+ <glyph unicode="&#xf18e;" d="M1152 640q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
398
+ <glyph unicode="&#xf190;" d="M1152 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-192q0 -14 -9 -23t-23 -9q-12 0 -24 10l-319 319q-9 9 -9 23t9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h352q13 0 22.5 -9.5t9.5 -22.5zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
399
+ <glyph unicode="&#xf191;" d="M1024 960v-640q0 -26 -19 -45t-45 -19q-20 0 -37 12l-448 320q-27 19 -27 52t27 52l448 320q17 12 37 12q26 0 45 -19t19 -45zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5z M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
400
+ <glyph unicode="&#xf192;" d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5 t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
401
+ <glyph unicode="&#xf193;" horiz-adv-x="1664" d="M1023 349l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5zM1571 249l58 -114l-256 -128 q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5l-96 779q-2 16 6 42q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455q40 0 57 -35l228 -455z" />
402
+ <glyph unicode="&#xf194;" d="M1254 899q16 85 -21 132q-52 65 -187 45q-17 -3 -41 -12.5t-57.5 -30.5t-64.5 -48.5t-59.5 -70t-44.5 -91.5q80 7 113.5 -16t26.5 -99q-5 -52 -52 -143q-43 -78 -71 -99q-44 -32 -87 14q-23 24 -37.5 64.5t-19 73t-10 84t-8.5 71.5q-23 129 -34 164q-12 37 -35.5 69 t-50.5 40q-57 16 -127 -25q-54 -32 -136.5 -106t-122.5 -102v-7q16 -8 25.5 -26t21.5 -20q21 -3 54.5 8.5t58 10.5t41.5 -30q11 -18 18.5 -38.5t15 -48t12.5 -40.5q17 -46 53 -187q36 -146 57 -197q42 -99 103 -125q43 -12 85 -1.5t76 31.5q131 77 250 237 q104 139 172.5 292.5t82.5 226.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
403
+ <glyph unicode="&#xf195;" horiz-adv-x="1152" d="M1152 704q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160 q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
404
+ <glyph unicode="&#xf196;" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832 q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
405
+ <glyph unicode="&#xf197;" horiz-adv-x="2176" d="M620 416q-110 -64 -268 -64h-128v64h-64q-13 0 -22.5 23.5t-9.5 56.5q0 24 7 49q-58 2 -96.5 10.5t-38.5 20.5t38.5 20.5t96.5 10.5q-7 25 -7 49q0 33 9.5 56.5t22.5 23.5h64v64h128q158 0 268 -64h1113q42 -7 106.5 -18t80.5 -14q89 -15 150 -40.5t83.5 -47.5t22.5 -40 t-22.5 -40t-83.5 -47.5t-150 -40.5q-16 -3 -80.5 -14t-106.5 -18h-1113zM1739 668q53 -36 53 -92t-53 -92l81 -30q68 48 68 122t-68 122zM625 400h1015q-217 -38 -456 -80q-57 0 -113 -24t-83 -48l-28 -24l-288 -288q-26 -26 -70.5 -45t-89.5 -19h-96l-93 464h29 q157 0 273 64zM352 816h-29l93 464h96q46 0 90 -19t70 -45l288 -288q4 -4 11 -10.5t30.5 -23t48.5 -29t61.5 -23t72.5 -10.5l456 -80h-1015q-116 64 -273 64z" />
406
+ <glyph unicode="&#xf198;" horiz-adv-x="1664" d="M1519 760q62 0 103.5 -40.5t41.5 -101.5q0 -97 -93 -130l-172 -59l56 -167q7 -21 7 -47q0 -59 -42 -102t-101 -43q-47 0 -85.5 27t-53.5 72l-55 165l-310 -106l55 -164q8 -24 8 -47q0 -59 -42 -102t-102 -43q-47 0 -85 27t-53 72l-55 163l-153 -53q-29 -9 -50 -9 q-61 0 -101.5 40t-40.5 101q0 47 27.5 85t71.5 53l156 53l-105 313l-156 -54q-26 -8 -48 -8q-60 0 -101 40.5t-41 100.5q0 47 27.5 85t71.5 53l157 53l-53 159q-8 24 -8 47q0 60 42 102.5t102 42.5q47 0 85 -27t53 -72l54 -160l310 105l-54 160q-8 24 -8 47q0 59 42.5 102 t101.5 43q47 0 85.5 -27.5t53.5 -71.5l53 -161l162 55q21 6 43 6q60 0 102.5 -39.5t42.5 -98.5q0 -45 -30 -81.5t-74 -51.5l-157 -54l105 -316l164 56q24 8 46 8zM725 498l310 105l-105 315l-310 -107z" />
407
+ <glyph unicode="&#xf199;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM1280 352v436q-31 -35 -64 -55q-34 -22 -132.5 -85t-151.5 -99q-98 -69 -164 -69v0v0q-66 0 -164 69 q-46 32 -141.5 92.5t-142.5 92.5q-12 8 -33 27t-31 27v-436q0 -40 28 -68t68 -28h832q40 0 68 28t28 68zM1280 925q0 41 -27.5 70t-68.5 29h-832q-40 0 -68 -28t-28 -68q0 -37 30.5 -76.5t67.5 -64.5q47 -32 137.5 -89t129.5 -83q3 -2 17 -11.5t21 -14t21 -13t23.5 -13 t21.5 -9.5t22.5 -7.5t20.5 -2.5t20.5 2.5t22.5 7.5t21.5 9.5t23.5 13t21 13t21 14t17 11.5l267 174q35 23 66.5 62.5t31.5 73.5z" />
408
+ <glyph unicode="&#xf19a;" horiz-adv-x="1792" d="M127 640q0 163 67 313l367 -1005q-196 95 -315 281t-119 411zM1415 679q0 -19 -2.5 -38.5t-10 -49.5t-11.5 -44t-17.5 -59t-17.5 -58l-76 -256l-278 826q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-75 1 -202 10q-12 1 -20.5 -5t-11.5 -15t-1.5 -18.5t9 -16.5 t19.5 -8l80 -8l120 -328l-168 -504l-280 832q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-7 0 -23 0.5t-26 0.5q105 160 274.5 253.5t367.5 93.5q147 0 280.5 -53t238.5 -149h-10q-55 0 -92 -40.5t-37 -95.5q0 -12 2 -24t4 -21.5t8 -23t9 -21t12 -22.5t12.5 -21 t14.5 -24t14 -23q63 -107 63 -212zM909 573l237 -647q1 -6 5 -11q-126 -44 -255 -44q-112 0 -217 32zM1570 1009q95 -174 95 -369q0 -209 -104 -385.5t-279 -278.5l235 678q59 169 59 276q0 42 -6 79zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286 t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 -215q173 0 331.5 68t273 182.5t182.5 273t68 331.5t-68 331.5t-182.5 273t-273 182.5t-331.5 68t-331.5 -68t-273 -182.5t-182.5 -273t-68 -331.5t68 -331.5t182.5 -273 t273 -182.5t331.5 -68z" />
409
+ <glyph unicode="&#xf19b;" horiz-adv-x="1792" d="M1086 1536v-1536l-272 -128q-228 20 -414 102t-293 208.5t-107 272.5q0 140 100.5 263.5t275 205.5t391.5 108v-172q-217 -38 -356.5 -150t-139.5 -255q0 -152 154.5 -267t388.5 -145v1360zM1755 954l37 -390l-525 114l147 83q-119 70 -280 99v172q277 -33 481 -157z" />
410
+ <glyph unicode="&#xf19c;" horiz-adv-x="2048" d="M960 1536l960 -384v-128h-128q0 -26 -20.5 -45t-48.5 -19h-1526q-28 0 -48.5 19t-20.5 45h-128v128zM256 896h256v-768h128v768h256v-768h128v768h256v-768h128v768h256v-768h59q28 0 48.5 -19t20.5 -45v-64h-1664v64q0 26 20.5 45t48.5 19h59v768zM1851 -64 q28 0 48.5 -19t20.5 -45v-128h-1920v128q0 26 20.5 45t48.5 19h1782z" />
411
+ <glyph unicode="&#xf19d;" horiz-adv-x="2304" d="M1774 700l18 -316q4 -69 -82 -128t-235 -93.5t-323 -34.5t-323 34.5t-235 93.5t-82 128l18 316l574 -181q22 -7 48 -7t48 7zM2304 1024q0 -23 -22 -31l-1120 -352q-4 -1 -10 -1t-10 1l-652 206q-43 -34 -71 -111.5t-34 -178.5q63 -36 63 -109q0 -69 -58 -107l58 -433 q2 -14 -8 -25q-9 -11 -24 -11h-192q-15 0 -24 11q-10 11 -8 25l58 433q-58 38 -58 107q0 73 65 111q11 207 98 330l-333 104q-22 8 -22 31t22 31l1120 352q4 1 10 1t10 -1l1120 -352q22 -8 22 -31z" />
412
+ <glyph unicode="&#xf19e;" d="M859 579l13 -707q-62 11 -105 11q-41 0 -105 -11l13 707q-40 69 -168.5 295.5t-216.5 374.5t-181 287q58 -15 108 -15q43 0 111 15q63 -111 133.5 -229.5t167 -276.5t138.5 -227q37 61 109.5 177.5t117.5 190t105 176t107 189.5q54 -14 107 -14q56 0 114 14v0 q-28 -39 -60 -88.5t-49.5 -78.5t-56.5 -96t-49 -84q-146 -248 -353 -610z" />
413
+ <glyph unicode="&#xf1a0;" horiz-adv-x="1280" d="M981 197q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -49 2q-53 0 -104.5 -7t-107 -25t-97 -46t-68.5 -74.5t-27 -105.5q0 -56 23.5 -102t61 -75.5t87 -50t100 -29t101.5 -8.5q58 0 111.5 13t99 39t73 73t27.5 109zM864 1055 q0 59 -17 125.5t-48 129t-84 103.5t-117 41q-42 0 -82.5 -19.5t-66.5 -52.5q-46 -59 -46 -160q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26q37 0 77.5 16.5t65.5 43.5q53 56 53 159zM752 1536h417l-137 -88h-132q75 -63 113 -133t38 -160q0 -72 -24.5 -129.5 t-59.5 -93t-69.5 -65t-59 -61.5t-24.5 -66q0 -36 32 -70.5t77 -68t90.5 -73.5t77.5 -104t32 -142q0 -91 -49 -173q-71 -122 -209.5 -179.5t-298.5 -57.5q-132 0 -246.5 41.5t-172.5 137.5q-36 59 -36 131q0 81 44.5 150t118.5 115q131 82 404 100q-32 41 -47.5 73.5 t-15.5 73.5q0 40 21 85q-46 -4 -68 -4q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q76 66 182 98t218 32z" />
414
+ <glyph unicode="&#xf1a1;" horiz-adv-x="1984" d="M831 572q0 -56 -40.5 -96t-96.5 -40q-57 0 -98 40t-41 96q0 57 41.5 98t97.5 41t96.5 -41t40.5 -98zM1292 711q56 0 96.5 -41t40.5 -98q0 -56 -40.5 -96t-96.5 -40q-57 0 -98 40t-41 96q0 57 41.5 98t97.5 41zM1984 722q0 -62 -31 -114t-83 -82q5 -33 5 -61 q0 -121 -68.5 -230.5t-197.5 -193.5q-125 -82 -285.5 -125.5t-335.5 -43.5q-176 0 -336.5 43.5t-284.5 125.5q-129 84 -197.5 193t-68.5 231q0 29 5 66q-48 31 -77 81.5t-29 109.5q0 94 66 160t160 66q83 0 148 -55q248 158 592 164l134 423q4 14 17.5 21.5t28.5 4.5 l347 -82q22 50 68.5 81t102.5 31q77 0 131.5 -54.5t54.5 -131.5t-54.5 -132t-131.5 -55q-76 0 -130.5 54t-55.5 131l-315 74l-116 -366q327 -14 560 -166q64 58 151 58q94 0 160 -66t66 -160zM1664 1459q-45 0 -77 -32t-32 -77t32 -77t77 -32t77 32t32 77t-32 77t-77 32z M77 722q0 -67 51 -111q49 131 180 235q-36 25 -82 25q-62 0 -105.5 -43.5t-43.5 -105.5zM1567 105q112 73 171.5 166t59.5 194t-59.5 193.5t-171.5 165.5q-116 75 -265.5 115.5t-313.5 40.5t-313.5 -40.5t-265.5 -115.5q-112 -73 -171.5 -165.5t-59.5 -193.5t59.5 -194 t171.5 -166q116 -75 265.5 -115.5t313.5 -40.5t313.5 40.5t265.5 115.5zM1850 605q57 46 57 117q0 62 -43.5 105.5t-105.5 43.5q-49 0 -86 -28q131 -105 178 -238zM1258 237q11 11 27 11t27 -11t11 -27.5t-11 -27.5q-99 -99 -319 -99h-2q-220 0 -319 99q-11 11 -11 27.5 t11 27.5t27 11t27 -11q77 -77 265 -77h2q188 0 265 77z" />
415
+ <glyph unicode="&#xf1a2;" d="M950 393q7 7 17.5 7t17.5 -7t7 -18t-7 -18q-65 -64 -208 -64h-1h-1q-143 0 -207 64q-8 7 -8 18t8 18q7 7 17.5 7t17.5 -7q49 -51 172 -51h1h1q122 0 173 51zM671 613q0 -37 -26 -64t-63 -27t-63 27t-26 64t26 63t63 26t63 -26t26 -63zM1214 1049q-29 0 -50 21t-21 50 q0 30 21 51t50 21q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21zM1216 1408q132 0 226 -94t94 -227v-894q0 -133 -94 -227t-226 -94h-896q-132 0 -226 94t-94 227v894q0 133 94 227t226 94h896zM1321 596q35 14 57 45.5t22 70.5q0 51 -36 87.5t-87 36.5q-60 0 -98 -48 q-151 107 -375 115l83 265l206 -49q1 -50 36.5 -85t84.5 -35q50 0 86 35.5t36 85.5t-36 86t-86 36q-36 0 -66 -20.5t-45 -53.5l-227 54q-9 2 -17.5 -2.5t-11.5 -14.5l-95 -302q-224 -4 -381 -113q-36 43 -93 43q-51 0 -87 -36.5t-36 -87.5q0 -37 19.5 -67.5t52.5 -45.5 q-7 -25 -7 -54q0 -98 74 -181.5t201.5 -132t278.5 -48.5q150 0 277.5 48.5t201.5 132t74 181.5q0 27 -6 54zM971 702q37 0 63 -26t26 -63t-26 -64t-63 -27t-63 27t-26 64t26 63t63 26z" />
416
+ <glyph unicode="&#xf1a3;" d="M866 697l90 27v62q0 79 -58 135t-138 56t-138 -55.5t-58 -134.5v-283q0 -20 -14 -33.5t-33 -13.5t-32.5 13.5t-13.5 33.5v120h-151v-122q0 -82 57.5 -139t139.5 -57q81 0 138.5 56.5t57.5 136.5v280q0 19 13.5 33t33.5 14q19 0 32.5 -14t13.5 -33v-54zM1199 502v122h-150 v-126q0 -20 -13.5 -33.5t-33.5 -13.5q-19 0 -32.5 14t-13.5 33v123l-90 -26l-60 28v-123q0 -80 58 -137t139 -57t138.5 57t57.5 139zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103 t385.5 -103t279.5 -279.5t103 -385.5z" />
417
+ <glyph unicode="&#xf1a4;" horiz-adv-x="1920" d="M1062 824v118q0 42 -30 72t-72 30t-72 -30t-30 -72v-612q0 -175 -126 -299t-303 -124q-178 0 -303.5 125.5t-125.5 303.5v266h328v-262q0 -43 30 -72.5t72 -29.5t72 29.5t30 72.5v620q0 171 126.5 292t301.5 121q176 0 302 -122t126 -294v-136l-195 -58zM1592 602h328 v-266q0 -178 -125.5 -303.5t-303.5 -125.5q-177 0 -303 124.5t-126 300.5v268l131 -61l195 58v-270q0 -42 30 -71.5t72 -29.5t72 29.5t30 71.5v275z" />
418
+ <glyph unicode="&#xf1a5;" d="M1472 160v480h-704v704h-480q-93 0 -158.5 -65.5t-65.5 -158.5v-480h704v-704h480q93 0 158.5 65.5t65.5 158.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" />
419
+ <glyph unicode="&#xf1a6;" horiz-adv-x="2048" d="M328 1254h204v-983h-532v697h328v286zM328 435v369h-123v-369h123zM614 968v-697h205v697h-205zM614 1254v-204h205v204h-205zM901 968h533v-942h-533v163h328v82h-328v697zM1229 435v369h-123v-369h123zM1516 968h532v-942h-532v163h327v82h-327v697zM1843 435v369h-123 v-369h123z" />
420
+ <glyph unicode="&#xf1a7;" d="M1046 516q0 -64 -38 -109t-91 -45q-43 0 -70 15v277q28 17 70 17q53 0 91 -45.5t38 -109.5zM703 944q0 -64 -38 -109.5t-91 -45.5q-43 0 -70 15v277q28 17 70 17q53 0 91 -45t38 -109zM1265 513q0 134 -88 229t-213 95q-20 0 -39 -3q-23 -78 -78 -136q-87 -95 -211 -101 v-636l211 41v206q51 -19 117 -19q125 0 213 95t88 229zM922 940q0 134 -88.5 229t-213.5 95q-74 0 -141 -36h-186v-840l211 41v206q55 -19 116 -19q125 0 213.5 95t88.5 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
421
+ <glyph unicode="&#xf1a8;" horiz-adv-x="2038" d="M1222 607q75 3 143.5 -20.5t118 -58.5t101 -94.5t84 -108t75.5 -120.5q33 -56 78.5 -109t75.5 -80.5t99 -88.5q-48 -30 -108.5 -57.5t-138.5 -59t-114 -47.5q-44 37 -74 115t-43.5 164.5t-33 180.5t-42.5 168.5t-72.5 123t-122.5 48.5l-10 -2l-6 -4q4 -5 13 -14 q6 -5 28 -23.5t25.5 -22t19 -18t18 -20.5t11.5 -21t10.5 -27.5t4.5 -31t4 -40.5l1 -33q1 -26 -2.5 -57.5t-7.5 -52t-12.5 -58.5t-11.5 -53q-35 1 -101 -9.5t-98 -10.5q-39 0 -72 10q-2 16 -2 47q0 74 3 96q2 13 31.5 41.5t57 59t26.5 51.5q-24 2 -43 -24 q-36 -53 -111.5 -99.5t-136.5 -46.5q-25 0 -75.5 63t-106.5 139.5t-84 96.5q-6 4 -27 30q-482 -112 -513 -112q-16 0 -28 11t-12 27q0 15 8.5 26.5t22.5 14.5l486 106q-8 14 -8 25t5.5 17.5t16 11.5t20 7t23 4.5t18.5 4.5q4 1 15.5 7.5t17.5 6.5q15 0 28 -16t20 -33 q163 37 172 37q17 0 29.5 -11t12.5 -28q0 -15 -8.5 -26t-23.5 -14l-182 -40l-1 -16q-1 -26 81.5 -117.5t104.5 -91.5q47 0 119 80t72 129q0 36 -23.5 53t-51 18.5t-51 11.5t-23.5 34q0 16 10 34l-68 19q43 44 43 117q0 26 -5 58q82 16 144 16q44 0 71.5 -1.5t48.5 -8.5 t31 -13.5t20.5 -24.5t15.5 -33.5t17 -47.5t24 -60l50 25q-3 -40 -23 -60t-42.5 -21t-40 -6.5t-16.5 -20.5zM1282 842q-5 5 -13.5 15.5t-12 14.5t-10.5 11.5t-10 10.5l-8 8t-8.5 7.5t-8 5t-8.5 4.5q-7 3 -14.5 5t-20.5 2.5t-22 0.5h-32.5h-37.5q-126 0 -217 -43 q16 30 36 46.5t54 29.5t65.5 36t46 36.5t50 55t43.5 50.5q12 -9 28 -31.5t32 -36.5t38 -13l12 1v-76l22 -1q247 95 371 190q28 21 50 39t42.5 37.5t33 31t29.5 34t24 31t24.5 37t23 38t27 47.5t29.5 53l7 9q-2 -53 -43 -139q-79 -165 -205 -264t-306 -142q-14 -3 -42 -7.5 t-50 -9.5t-39 -14q3 -19 24.5 -46t21.5 -34q0 -11 -26 -30zM1061 -79q39 26 131.5 47.5t146.5 21.5q9 0 22.5 -15.5t28 -42.5t26 -50t24 -51t14.5 -33q-121 -45 -244 -45q-61 0 -125 11zM822 568l48 12l109 -177l-73 -48zM1323 51q3 -15 3 -16q0 -7 -17.5 -14.5t-46 -13 t-54 -9.5t-53.5 -7.5t-32 -4.5l-7 43q21 2 60.5 8.5t72 10t60.5 3.5h14zM866 679l-96 -20l-6 17q10 1 32.5 7t34.5 6q19 0 35 -10zM1061 45h31l10 -83l-41 -12v95zM1950 1535v1v-1zM1950 1535l-1 -5l-2 -2l1 3zM1950 1535l1 1z" />
422
+ <glyph unicode="&#xf1a9;" d="M1167 -50q-5 19 -24 5q-30 -22 -87 -39t-131 -17q-129 0 -193 49q-5 4 -13 4q-11 0 -26 -12q-7 -6 -7.5 -16t7.5 -20q34 -32 87.5 -46t102.5 -12.5t99 4.5q41 4 84.5 20.5t65 30t28.5 20.5q12 12 7 29zM1128 65q-19 47 -39 61q-23 15 -76 15q-47 0 -71 -10 q-29 -12 -78 -56q-26 -24 -12 -44q9 -8 17.5 -4.5t31.5 23.5q3 2 10.5 8.5t10.5 8.5t10 7t11.5 7t12.5 5t15 4.5t16.5 2.5t20.5 1q27 0 44.5 -7.5t23 -14.5t13.5 -22q10 -17 12.5 -20t12.5 1q23 12 14 34zM1483 346q0 22 -5 44.5t-16.5 45t-34 36.5t-52.5 14 q-33 0 -97 -41.5t-129 -83.5t-101 -42q-27 -1 -63.5 19t-76 49t-83.5 58t-100 49t-111 19q-115 -1 -197 -78.5t-84 -178.5q-2 -112 74 -164q29 -20 62.5 -28.5t103.5 -8.5q57 0 132 32.5t134 71t120 70.5t93 31q26 -1 65 -31.5t71.5 -67t68 -67.5t55.5 -32q35 -3 58.5 14 t55.5 63q28 41 42.5 101t14.5 106zM1536 506q0 -164 -62 -304.5t-166 -236t-242.5 -149.5t-290.5 -54t-293 57.5t-247.5 157t-170.5 241.5t-64 302q0 89 19.5 172.5t49 145.5t70.5 118.5t78.5 94t78.5 69.5t64.5 46.5t42.5 24.5q14 8 51 26.5t54.5 28.5t48 30t60.5 44 q36 28 58 72.5t30 125.5q129 -155 186 -193q44 -29 130 -68t129 -66q21 -13 39 -25t60.5 -46.5t76 -70.5t75 -95t69 -122t47 -148.5t19.5 -177.5z" />
423
+ <glyph unicode="&#xf1aa;" d="M1070 463l-160 -160l-151 -152l-30 -30q-65 -64 -151.5 -87t-171.5 -2q-16 -70 -72 -115t-129 -45q-85 0 -145 60.5t-60 145.5q0 72 44.5 128t113.5 72q-22 86 1 173t88 152l12 12l151 -152l-11 -11q-37 -37 -37 -89t37 -90q37 -37 89 -37t89 37l30 30l151 152l161 160z M729 1145l12 -12l-152 -152l-12 12q-37 37 -89 37t-89 -37t-37 -89.5t37 -89.5l29 -29l152 -152l160 -160l-151 -152l-161 160l-151 152l-30 30q-68 67 -90 159.5t5 179.5q-70 15 -115 71t-45 129q0 85 60 145.5t145 60.5q76 0 133.5 -49t69.5 -123q84 20 169.5 -3.5 t149.5 -87.5zM1536 78q0 -85 -60 -145.5t-145 -60.5q-74 0 -131 47t-71 118q-86 -28 -179.5 -6t-161.5 90l-11 12l151 152l12 -12q37 -37 89 -37t89 37t37 89t-37 89l-30 30l-152 152l-160 160l152 152l160 -160l152 -152l29 -30q64 -64 87.5 -150.5t2.5 -171.5 q76 -11 126.5 -68.5t50.5 -134.5zM1534 1202q0 -77 -51 -135t-127 -69q26 -85 3 -176.5t-90 -158.5l-12 -12l-151 152l12 12q37 37 37 89t-37 89t-89 37t-89 -37l-30 -30l-152 -152l-160 -160l-152 152l161 160l152 152l29 30q67 67 159 89.5t178 -3.5q11 75 68.5 126 t135.5 51q85 0 145 -60.5t60 -145.5z" />
424
+ <glyph unicode="&#xf1ab;" d="M654 458q-1 -3 -12.5 0.5t-31.5 11.5l-20 9q-44 20 -87 49q-7 5 -41 31.5t-38 28.5q-67 -103 -134 -181q-81 -95 -105 -110q-4 -2 -19.5 -4t-18.5 0q6 4 82 92q21 24 85.5 115t78.5 118q17 30 51 98.5t36 77.5q-8 1 -110 -33q-8 -2 -27.5 -7.5t-34.5 -9.5t-17 -5 q-2 -2 -2 -10.5t-1 -9.5q-5 -10 -31 -15q-23 -7 -47 0q-18 4 -28 21q-4 6 -5 23q6 2 24.5 5t29.5 6q58 16 105 32q100 35 102 35q10 2 43 19.5t44 21.5q9 3 21.5 8t14.5 5.5t6 -0.5q2 -12 -1 -33q0 -2 -12.5 -27t-26.5 -53.5t-17 -33.5q-25 -50 -77 -131l64 -28 q12 -6 74.5 -32t67.5 -28q4 -1 10.5 -25.5t4.5 -30.5zM449 944q3 -15 -4 -28q-12 -23 -50 -38q-30 -12 -60 -12q-26 3 -49 26q-14 15 -18 41l1 3q3 -3 19.5 -5t26.5 0t58 16q36 12 55 14q17 0 21 -17zM1147 815l63 -227l-139 42zM39 15l694 232v1032l-694 -233v-1031z M1280 332l102 -31l-181 657l-100 31l-216 -536l102 -31l45 110l211 -65zM777 1294l573 -184v380zM1088 -29l158 -13l-54 -160l-40 66q-130 -83 -276 -108q-58 -12 -91 -12h-84q-79 0 -199.5 39t-183.5 85q-8 7 -8 16q0 8 5 13.5t13 5.5q4 0 18 -7.5t30.5 -16.5t20.5 -11 q73 -37 159.5 -61.5t157.5 -24.5q95 0 167 14.5t157 50.5q15 7 30.5 15.5t34 19t28.5 16.5zM1536 1050v-1079l-774 246q-14 -6 -375 -127.5t-368 -121.5q-13 0 -18 13q0 1 -1 3v1078q3 9 4 10q5 6 20 11q106 35 149 50v384l558 -198q2 0 160.5 55t316 108.5t161.5 53.5 q20 0 20 -21v-418z" />
425
+ <glyph unicode="&#xf1ac;" horiz-adv-x="1792" d="M288 1152q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-128q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h128zM1664 989q58 -34 93 -93t35 -128v-768q0 -106 -75 -181t-181 -75h-864q-66 0 -113 47t-47 113v1536q0 40 28 68t68 28h672q40 0 88 -20t76 -48 l152 -152q28 -28 48 -76t20 -88v-163zM928 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 512v128q0 14 -9 23 t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128 q14 0 23 9t9 23zM1184 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 256v128q0 14 -9 23t-23 9h-128 q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1536 896v256h-160q-40 0 -68 28t-28 68v160h-640v-512h896z" />
426
+ <glyph unicode="&#xf1ad;" d="M1344 1536q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280zM512 1248v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 992v-64q0 -14 9 -23t23 -9h64q14 0 23 9 t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 736v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 480v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 160v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64 q14 0 23 9t9 23zM384 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 -96v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9 t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM896 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 928v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 160v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64 q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9 t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23z" />
427
+ <glyph unicode="&#xf1ae;" horiz-adv-x="1280" d="M1188 988l-292 -292v-824q0 -46 -33 -79t-79 -33t-79 33t-33 79v384h-64v-384q0 -46 -33 -79t-79 -33t-79 33t-33 79v824l-292 292q-28 28 -28 68t28 68t68 28t68 -28l228 -228h368l228 228q28 28 68 28t68 -28t28 -68t-28 -68zM864 1152q0 -93 -65.5 -158.5 t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
428
+ <glyph unicode="&#xf1b0;" horiz-adv-x="1664" d="M780 1064q0 -60 -19 -113.5t-63 -92.5t-105 -39q-76 0 -138 57.5t-92 135.5t-30 151q0 60 19 113.5t63 92.5t105 39q77 0 138.5 -57.5t91.5 -135t30 -151.5zM438 581q0 -80 -42 -139t-119 -59q-76 0 -141.5 55.5t-100.5 133.5t-35 152q0 80 42 139.5t119 59.5 q76 0 141.5 -55.5t100.5 -134t35 -152.5zM832 608q118 0 255 -97.5t229 -237t92 -254.5q0 -46 -17 -76.5t-48.5 -45t-64.5 -20t-76 -5.5q-68 0 -187.5 45t-182.5 45q-66 0 -192.5 -44.5t-200.5 -44.5q-183 0 -183 146q0 86 56 191.5t139.5 192.5t187.5 146t193 59zM1071 819 q-61 0 -105 39t-63 92.5t-19 113.5q0 74 30 151.5t91.5 135t138.5 57.5q61 0 105 -39t63 -92.5t19 -113.5q0 -73 -30 -151t-92 -135.5t-138 -57.5zM1503 923q77 0 119 -59.5t42 -139.5q0 -74 -35 -152t-100.5 -133.5t-141.5 -55.5q-77 0 -119 59t-42 139q0 74 35 152.5 t100.5 134t141.5 55.5z" />
429
+ <glyph unicode="&#xf1b1;" horiz-adv-x="768" d="M704 1008q0 -145 -57 -243.5t-152 -135.5l45 -821q2 -26 -16 -45t-44 -19h-192q-26 0 -44 19t-16 45l45 821q-95 37 -152 135.5t-57 243.5q0 128 42.5 249.5t117.5 200t160 78.5t160 -78.5t117.5 -200t42.5 -249.5z" />
430
+ <glyph unicode="&#xf1b2;" horiz-adv-x="1792" d="M896 -93l640 349v636l-640 -233v-752zM832 772l698 254l-698 254l-698 -254zM1664 1024v-768q0 -35 -18 -65t-49 -47l-704 -384q-28 -16 -61 -16t-61 16l-704 384q-31 17 -49 47t-18 65v768q0 40 23 73t61 47l704 256q22 8 44 8t44 -8l704 -256q38 -14 61 -47t23 -73z " />
431
+ <glyph unicode="&#xf1b3;" horiz-adv-x="2304" d="M640 -96l384 192v314l-384 -164v-342zM576 358l404 173l-404 173l-404 -173zM1664 -96l384 192v314l-384 -164v-342zM1600 358l404 173l-404 173l-404 -173zM1152 651l384 165v266l-384 -164v-267zM1088 1030l441 189l-441 189l-441 -189zM2176 512v-416q0 -36 -19 -67 t-52 -47l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-5 2 -7 4q-2 -2 -7 -4l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-33 16 -52 47t-19 67v416q0 38 21.5 70t56.5 48l434 186v400q0 38 21.5 70t56.5 48l448 192q23 10 50 10t50 -10l448 -192q35 -16 56.5 -48t21.5 -70 v-400l434 -186q36 -16 57 -48t21 -70z" />
432
+ <glyph unicode="&#xf1b4;" horiz-adv-x="2048" d="M1848 1197h-511v-124h511v124zM1596 771q-90 0 -146 -52.5t-62 -142.5h408q-18 195 -200 195zM1612 186q63 0 122 32t76 87h221q-100 -307 -427 -307q-214 0 -340.5 132t-126.5 347q0 208 130.5 345.5t336.5 137.5q138 0 240.5 -68t153 -179t50.5 -248q0 -17 -2 -47h-658 q0 -111 57.5 -171.5t166.5 -60.5zM277 236h296q205 0 205 167q0 180 -199 180h-302v-347zM277 773h281q78 0 123.5 36.5t45.5 113.5q0 144 -190 144h-260v-294zM0 1282h594q87 0 155 -14t126.5 -47.5t90 -96.5t31.5 -154q0 -181 -172 -263q114 -32 172 -115t58 -204 q0 -75 -24.5 -136.5t-66 -103.5t-98.5 -71t-121 -42t-134 -13h-611v1260z" />
433
+ <glyph unicode="&#xf1b5;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM499 1041h-371v-787h382q117 0 197 57.5t80 170.5q0 158 -143 200q107 52 107 164q0 57 -19.5 96.5 t-56.5 60.5t-79 29.5t-97 8.5zM477 723h-176v184h163q119 0 119 -90q0 -94 -106 -94zM486 388h-185v217h189q124 0 124 -113q0 -104 -128 -104zM1136 356q-68 0 -104 38t-36 107h411q1 10 1 30q0 132 -74.5 220.5t-203.5 88.5q-128 0 -210 -86t-82 -216q0 -135 79 -217 t213 -82q205 0 267 191h-138q-11 -34 -47.5 -54t-75.5 -20zM1126 722q113 0 124 -122h-254q4 56 39 89t91 33zM964 988h319v-77h-319v77z" />
434
+ <glyph unicode="&#xf1b6;" horiz-adv-x="1792" d="M1582 954q0 -101 -71.5 -172.5t-172.5 -71.5t-172.5 71.5t-71.5 172.5t71.5 172.5t172.5 71.5t172.5 -71.5t71.5 -172.5zM812 212q0 104 -73 177t-177 73q-27 0 -54 -6l104 -42q77 -31 109.5 -106.5t1.5 -151.5q-31 -77 -107 -109t-152 -1q-21 8 -62 24.5t-61 24.5 q32 -60 91 -96.5t130 -36.5q104 0 177 73t73 177zM1642 953q0 126 -89.5 215.5t-215.5 89.5q-127 0 -216.5 -89.5t-89.5 -215.5q0 -127 89.5 -216t216.5 -89q126 0 215.5 89t89.5 216zM1792 953q0 -189 -133.5 -322t-321.5 -133l-437 -319q-12 -129 -109 -218t-229 -89 q-121 0 -214 76t-118 192l-230 92v429l389 -157q79 48 173 48q13 0 35 -2l284 407q2 187 135.5 319t320.5 132q188 0 321.5 -133.5t133.5 -321.5z" />
435
+ <glyph unicode="&#xf1b7;" d="M1242 889q0 80 -57 136.5t-137 56.5t-136.5 -57t-56.5 -136q0 -80 56.5 -136.5t136.5 -56.5t137 56.5t57 136.5zM632 301q0 -83 -58 -140.5t-140 -57.5q-56 0 -103 29t-72 77q52 -20 98 -40q60 -24 120 1.5t85 86.5q24 60 -1.5 120t-86.5 84l-82 33q22 5 42 5 q82 0 140 -57.5t58 -140.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v153l172 -69q20 -92 93.5 -152t168.5 -60q104 0 181 70t87 173l345 252q150 0 255.5 105.5t105.5 254.5q0 150 -105.5 255.5t-255.5 105.5 q-148 0 -253 -104.5t-107 -252.5l-225 -322q-9 1 -28 1q-75 0 -137 -37l-297 119v468q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5zM1289 887q0 -100 -71 -170.5t-171 -70.5t-170.5 70.5t-70.5 170.5t70.5 171t170.5 71q101 0 171.5 -70.5t70.5 -171.5z " />
436
+ <glyph unicode="&#xf1b8;" horiz-adv-x="1792" d="M836 367l-15 -368l-2 -22l-420 29q-36 3 -67 31.5t-47 65.5q-11 27 -14.5 55t4 65t12 55t21.5 64t19 53q78 -12 509 -28zM449 953l180 -379l-147 92q-63 -72 -111.5 -144.5t-72.5 -125t-39.5 -94.5t-18.5 -63l-4 -21l-190 357q-17 26 -18 56t6 47l8 18q35 63 114 188 l-140 86zM1680 436l-188 -359q-12 -29 -36.5 -46.5t-43.5 -20.5l-18 -4q-71 -7 -219 -12l8 -164l-230 367l211 362l7 -173q170 -16 283 -5t170 33zM895 1360q-47 -63 -265 -435l-317 187l-19 12l225 356q20 31 60 45t80 10q24 -2 48.5 -12t42 -21t41.5 -33t36 -34.5 t36 -39.5t32 -35zM1550 1053l212 -363q18 -37 12.5 -76t-27.5 -74q-13 -20 -33 -37t-38 -28t-48.5 -22t-47 -16t-51.5 -14t-46 -12q-34 72 -265 436l313 195zM1407 1279l142 83l-220 -373l-419 20l151 86q-34 89 -75 166t-75.5 123.5t-64.5 80t-47 46.5l-17 13l405 -1 q31 3 58 -10.5t39 -28.5l11 -15q39 -61 112 -190z" />
437
+ <glyph unicode="&#xf1b9;" horiz-adv-x="2048" d="M480 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM516 768h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5zM1888 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM2048 544v-384 q0 -14 -9 -23t-23 -9h-96v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-1024v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5t179 63.5h768q98 0 179 -63.5t104 -157.5 l105 -419h28q93 0 158.5 -65.5t65.5 -158.5z" />
438
+ <glyph unicode="&#xf1ba;" horiz-adv-x="2048" d="M1824 640q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-96v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-1024v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5 t179 63.5h128v224q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-224h128q98 0 179 -63.5t104 -157.5l105 -419h28zM320 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM516 640h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5z M1728 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47z" />
439
+ <glyph unicode="&#xf1bb;" d="M1504 64q0 -26 -19 -45t-45 -19h-462q1 -17 6 -87.5t5 -108.5q0 -25 -18 -42.5t-43 -17.5h-320q-25 0 -43 17.5t-18 42.5q0 38 5 108.5t6 87.5h-462q-26 0 -45 19t-19 45t19 45l402 403h-229q-26 0 -45 19t-19 45t19 45l402 403h-197q-26 0 -45 19t-19 45t19 45l384 384 q19 19 45 19t45 -19l384 -384q19 -19 19 -45t-19 -45t-45 -19h-197l402 -403q19 -19 19 -45t-19 -45t-45 -19h-229l402 -403q19 -19 19 -45z" />
440
+ <glyph unicode="&#xf1bc;" d="M1127 326q0 32 -30 51q-193 115 -447 115q-133 0 -287 -34q-42 -9 -42 -52q0 -20 13.5 -34.5t35.5 -14.5q5 0 37 8q132 27 243 27q226 0 397 -103q19 -11 33 -11q19 0 33 13.5t14 34.5zM1223 541q0 40 -35 61q-237 141 -548 141q-153 0 -303 -42q-48 -13 -48 -64 q0 -25 17.5 -42.5t42.5 -17.5q7 0 37 8q122 33 251 33q279 0 488 -124q24 -13 38 -13q25 0 42.5 17.5t17.5 42.5zM1331 789q0 47 -40 70q-126 73 -293 110.5t-343 37.5q-204 0 -364 -47q-23 -7 -38.5 -25.5t-15.5 -48.5q0 -31 20.5 -52t51.5 -21q11 0 40 8q133 37 307 37 q159 0 309.5 -34t253.5 -95q21 -12 40 -12q29 0 50.5 20.5t21.5 51.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
441
+ <glyph unicode="&#xf1bd;" d="M1397 1408q58 0 98.5 -40.5t40.5 -98.5v-1258q0 -58 -40.5 -98.5t-98.5 -40.5h-1258q-58 0 -98.5 40.5t-40.5 98.5v1258q0 58 40.5 98.5t98.5 40.5h1258zM1465 11v1258q0 28 -20 48t-48 20h-1258q-28 0 -48 -20t-20 -48v-1258q0 -28 20 -48t48 -20h1258q28 0 48 20t20 48 zM694 749l188 -387l533 145v-496q0 -7 -5.5 -12.5t-12.5 -5.5h-1258q-7 0 -12.5 5.5t-5.5 12.5v141l711 195l-212 439q4 1 12 2.5t12 1.5q170 32 303.5 21.5t221 -46t143.5 -94.5q27 -28 -25 -42q-64 -16 -256 -62l-97 198q-111 7 -240 -16zM1397 1287q7 0 12.5 -5.5 t5.5 -12.5v-428q-85 30 -188 52q-294 64 -645 12l-18 -3l-65 134h-233l85 -190q-132 -51 -230 -137v560q0 7 5.5 12.5t12.5 5.5h1258zM286 387q-14 -3 -26 4.5t-14 21.5q-24 203 166 305l129 -270z" />
442
+ <glyph unicode="&#xf1be;" horiz-adv-x="2304" d="M784 164l16 241l-16 523q-1 10 -7.5 17t-16.5 7q-9 0 -16 -7t-7 -17l-14 -523l14 -241q1 -10 7.5 -16.5t15.5 -6.5q22 0 24 23zM1080 193l11 211l-12 586q0 16 -13 24q-8 5 -16 5t-16 -5q-13 -8 -13 -24l-1 -6l-10 -579q0 -1 11 -236v-1q0 -10 6 -17q9 -11 23 -11 q11 0 20 9q9 7 9 20zM35 533l20 -128l-20 -126q-2 -9 -9 -9t-9 9l-17 126l17 128q2 9 9 9t9 -9zM121 612l26 -207l-26 -203q-2 -9 -10 -9q-9 0 -9 10l-23 202l23 207q0 9 9 9q8 0 10 -9zM401 159zM213 650l25 -245l-25 -237q0 -11 -11 -11q-10 0 -12 11l-21 237l21 245 q2 12 12 12q11 0 11 -12zM307 657l23 -252l-23 -244q-2 -13 -14 -13q-13 0 -13 13l-21 244l21 252q0 13 13 13q12 0 14 -13zM401 639l21 -234l-21 -246q-2 -16 -16 -16q-6 0 -10.5 4.5t-4.5 11.5l-20 246l20 234q0 6 4.5 10.5t10.5 4.5q14 0 16 -15zM784 164zM495 785 l21 -380l-21 -246q0 -7 -5 -12.5t-12 -5.5q-16 0 -18 18l-18 246l18 380q2 18 18 18q7 0 12 -5.5t5 -12.5zM589 871l19 -468l-19 -244q0 -8 -5.5 -13.5t-13.5 -5.5q-18 0 -20 19l-16 244l16 468q2 19 20 19q8 0 13.5 -5.5t5.5 -13.5zM687 911l18 -506l-18 -242 q-2 -21 -22 -21q-19 0 -21 21l-16 242l16 506q0 9 6.5 15.5t14.5 6.5q9 0 15 -6.5t7 -15.5zM1079 169v0v0zM881 915l15 -510l-15 -239q0 -10 -7.5 -17.5t-17.5 -7.5t-17 7t-8 18l-14 239l14 510q0 11 7.5 18t17.5 7t17.5 -7t7.5 -18zM980 896l14 -492l-14 -236q0 -11 -8 -19 t-19 -8t-19 8t-9 19l-12 236l12 492q1 12 9 20t19 8t18.5 -8t8.5 -20zM1192 404l-14 -231v0q0 -13 -9 -22t-22 -9t-22 9t-10 22l-6 114l-6 117l12 636v3q2 15 12 24q9 7 20 7q8 0 15 -5q14 -8 16 -26zM2304 423q0 -117 -83 -199.5t-200 -82.5h-786q-13 2 -22 11t-9 22v899 q0 23 28 33q85 34 181 34q195 0 338 -131.5t160 -323.5q53 22 110 22q117 0 200 -83t83 -201z" />
443
+ <glyph unicode="&#xf1c0;" d="M768 768q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 0q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127 t443 -43zM768 384q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 1536q208 0 385 -34.5t280 -93.5t103 -128v-128q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5 t-103 128v128q0 69 103 128t280 93.5t385 34.5z" />
444
+ <glyph unicode="&#xf1c1;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M894 465q33 -26 84 -56q59 7 117 7q147 0 177 -49q16 -22 2 -52q0 -1 -1 -2l-2 -2v-1q-6 -38 -71 -38q-48 0 -115 20t-130 53q-221 -24 -392 -83q-153 -262 -242 -262q-15 0 -28 7l-24 12q-1 1 -6 5q-10 10 -6 36q9 40 56 91.5t132 96.5q14 9 23 -6q2 -2 2 -4q52 85 107 197 q68 136 104 262q-24 82 -30.5 159.5t6.5 127.5q11 40 42 40h21h1q23 0 35 -15q18 -21 9 -68q-2 -6 -4 -8q1 -3 1 -8v-30q-2 -123 -14 -192q55 -164 146 -238zM318 54q52 24 137 158q-51 -40 -87.5 -84t-49.5 -74zM716 974q-15 -42 -2 -132q1 7 7 44q0 3 7 43q1 4 4 8 q-1 1 -1 2t-0.5 1.5t-0.5 1.5q-1 22 -13 36q0 -1 -1 -2v-2zM592 313q135 54 284 81q-2 1 -13 9.5t-16 13.5q-76 67 -127 176q-27 -86 -83 -197q-30 -56 -45 -83zM1238 329q-24 24 -140 24q76 -28 124 -28q14 0 18 1q0 1 -2 3z" />
445
+ <glyph unicode="&#xf1c2;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M233 768v-107h70l164 -661h159l128 485q7 20 10 46q2 16 2 24h4l3 -24q1 -3 3.5 -20t5.5 -26l128 -485h159l164 661h70v107h-300v-107h90l-99 -438q-5 -20 -7 -46l-2 -21h-4l-3 21q-1 5 -4 21t-5 25l-144 545h-114l-144 -545q-2 -9 -4.5 -24.5t-3.5 -21.5l-4 -21h-4l-2 21 q-2 26 -7 46l-99 438h90v107h-300z" />
446
+ <glyph unicode="&#xf1c3;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M429 106v-106h281v106h-75l103 161q5 7 10 16.5t7.5 13.5t3.5 4h2q1 -4 5 -10q2 -4 4.5 -7.5t6 -8t6.5 -8.5l107 -161h-76v-106h291v106h-68l-192 273l195 282h67v107h-279v-107h74l-103 -159q-4 -7 -10 -16.5t-9 -13.5l-2 -3h-2q-1 4 -5 10q-6 11 -17 23l-106 159h76v107 h-290v-107h68l189 -272l-194 -283h-68z" />
447
+ <glyph unicode="&#xf1c4;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M416 106v-106h327v106h-93v167h137q76 0 118 15q67 23 106.5 87t39.5 146q0 81 -37 141t-100 87q-48 19 -130 19h-368v-107h92v-555h-92zM769 386h-119v268h120q52 0 83 -18q56 -33 56 -115q0 -89 -62 -120q-31 -15 -78 -15z" />
448
+ <glyph unicode="&#xf1c5;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M1280 320v-320h-1024v192l192 192l128 -128l384 384zM448 512q-80 0 -136 56t-56 136t56 136t136 56t136 -56t56 -136t-56 -136t-136 -56z" />
449
+ <glyph unicode="&#xf1c6;" d="M640 1152v128h-128v-128h128zM768 1024v128h-128v-128h128zM640 896v128h-128v-128h128zM768 768v128h-128v-128h128zM1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400 v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-128v-128h-128v128h-512v-1536h1280zM781 593l107 -349q8 -27 8 -52q0 -83 -72.5 -137.5t-183.5 -54.5t-183.5 54.5t-72.5 137.5q0 25 8 52q21 63 120 396v128h128v-128h79 q22 0 39 -13t23 -34zM640 128q53 0 90.5 19t37.5 45t-37.5 45t-90.5 19t-90.5 -19t-37.5 -45t37.5 -45t90.5 -19z" />
450
+ <glyph unicode="&#xf1c7;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M620 686q20 -8 20 -30v-544q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-166 167h-131q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h131l166 167q16 15 35 7zM1037 -3q31 0 50 24q129 159 129 363t-129 363q-16 21 -43 24t-47 -14q-21 -17 -23.5 -43.5t14.5 -47.5 q100 -123 100 -282t-100 -282q-17 -21 -14.5 -47.5t23.5 -42.5q18 -15 40 -15zM826 145q27 0 47 20q87 93 87 219t-87 219q-18 19 -45 20t-46 -17t-20 -44.5t18 -46.5q52 -57 52 -131t-52 -131q-19 -20 -18 -46.5t20 -44.5q20 -17 44 -17z" />
451
+ <glyph unicode="&#xf1c8;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M768 768q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-384q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h384zM1260 766q20 -8 20 -30v-576q0 -22 -20 -30q-8 -2 -12 -2q-14 0 -23 9l-265 266v90l265 266q9 9 23 9q4 0 12 -2z" />
452
+ <glyph unicode="&#xf1c9;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M480 768q8 11 21 12.5t24 -6.5l51 -38q11 -8 12.5 -21t-6.5 -24l-182 -243l182 -243q8 -11 6.5 -24t-12.5 -21l-51 -38q-11 -8 -24 -6.5t-21 12.5l-226 301q-14 19 0 38zM1282 467q14 -19 0 -38l-226 -301q-8 -11 -21 -12.5t-24 6.5l-51 38q-11 8 -12.5 21t6.5 24l182 243 l-182 243q-8 11 -6.5 24t12.5 21l51 38q11 8 24 6.5t21 -12.5zM662 6q-13 2 -20.5 13t-5.5 24l138 831q2 13 13 20.5t24 5.5l63 -10q13 -2 20.5 -13t5.5 -24l-138 -831q-2 -13 -13 -20.5t-24 -5.5z" />
453
+ <glyph unicode="&#xf1ca;" d="M1497 709v-198q-101 -23 -198 -23q-65 -136 -165.5 -271t-181.5 -215.5t-128 -106.5q-80 -45 -162 3q-28 17 -60.5 43.5t-85 83.5t-102.5 128.5t-107.5 184t-105.5 244t-91.5 314.5t-70.5 390h283q26 -218 70 -398.5t104.5 -317t121.5 -235.5t140 -195q169 169 287 406 q-142 72 -223 220t-81 333q0 192 104 314.5t284 122.5q178 0 273 -105.5t95 -297.5q0 -159 -58 -286q-7 -1 -19.5 -3t-46 -2t-63 6t-62 25.5t-50.5 51.5q31 103 31 184q0 87 -29 132t-79 45q-53 0 -85 -49.5t-32 -140.5q0 -186 105 -293.5t267 -107.5q62 0 121 14z" />
454
+ <glyph unicode="&#xf1cb;" horiz-adv-x="1792" d="M216 367l603 -402v359l-334 223zM154 511l193 129l-193 129v-258zM973 -35l603 402l-269 180l-334 -223v-359zM896 458l272 182l-272 182l-272 -182zM485 733l334 223v359l-603 -402zM1445 640l193 -129v258zM1307 733l269 180l-603 402v-359zM1792 913v-546 q0 -41 -34 -64l-819 -546q-21 -13 -43 -13t-43 13l-819 546q-34 23 -34 64v546q0 41 34 64l819 546q21 13 43 13t43 -13l819 -546q34 -23 34 -64z" />
455
+ <glyph unicode="&#xf1cc;" horiz-adv-x="2048" d="M1800 764q111 -46 179.5 -145.5t68.5 -221.5q0 -164 -118 -280.5t-285 -116.5q-4 0 -11.5 0.5t-10.5 0.5h-1209h-1h-2h-5q-170 10 -288 125.5t-118 280.5q0 110 55 203t147 147q-12 39 -12 82q0 115 82 196t199 81q95 0 172 -58q75 154 222.5 248t326.5 94 q166 0 306 -80.5t221.5 -218.5t81.5 -301q0 -6 -0.5 -18t-0.5 -18zM468 498q0 -122 84 -193t208 -71q137 0 240 99q-16 20 -47.5 56.5t-43.5 50.5q-67 -65 -144 -65q-55 0 -93.5 33.5t-38.5 87.5q0 53 38.5 87t91.5 34q44 0 84.5 -21t73 -55t65 -75t69 -82t77 -75t97 -55 t121.5 -21q121 0 204.5 71.5t83.5 190.5q0 121 -84 192t-207 71q-143 0 -241 -97q14 -16 29.5 -34t34.5 -40t29 -34q66 64 142 64q52 0 92 -33t40 -84q0 -57 -37 -91.5t-94 -34.5q-43 0 -82.5 21t-72 55t-65.5 75t-69.5 82t-77.5 75t-96.5 55t-118.5 21q-122 0 -207 -70.5 t-85 -189.5z" />
456
+ <glyph unicode="&#xf1cd;" horiz-adv-x="1792" d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 1408q-190 0 -361 -90l194 -194q82 28 167 28t167 -28l194 194q-171 90 -361 90zM218 279l194 194 q-28 82 -28 167t28 167l-194 194q-90 -171 -90 -361t90 -361zM896 -128q190 0 361 90l-194 194q-82 -28 -167 -28t-167 28l-194 -194q171 -90 361 -90zM896 256q159 0 271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5 t271.5 -112.5zM1380 473l194 -194q90 171 90 361t-90 361l-194 -194q28 -82 28 -167t-28 -167z" />
457
+ <glyph unicode="&#xf1ce;" horiz-adv-x="1792" d="M1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348q0 222 101 414.5t276.5 317t390.5 155.5v-260q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 q0 230 -145.5 406t-366.5 221v260q215 -31 390.5 -155.5t276.5 -317t101 -414.5z" />
458
+ <glyph unicode="&#xf1d0;" horiz-adv-x="1792" d="M19 662q8 217 116 406t305 318h5q0 -1 -1 -3q-8 -8 -28 -33.5t-52 -76.5t-60 -110.5t-44.5 -135.5t-14 -150.5t39 -157.5t108.5 -154q50 -50 102 -69.5t90.5 -11.5t69.5 23.5t47 32.5l16 16q39 51 53 116.5t6.5 122.5t-21 107t-26.5 80l-14 29q-10 25 -30.5 49.5t-43 41 t-43.5 29.5t-35 19l-13 6l104 115q39 -17 78 -52t59 -61l19 -27q1 48 -18.5 103.5t-40.5 87.5l-20 31l161 183l160 -181q-33 -46 -52.5 -102.5t-22.5 -90.5l-4 -33q22 37 61.5 72.5t67.5 52.5l28 17l103 -115q-44 -14 -85 -50t-60 -65l-19 -29q-31 -56 -48 -133.5t-7 -170 t57 -156.5q33 -45 77.5 -60.5t85 -5.5t76 26.5t57.5 33.5l21 16q60 53 96.5 115t48.5 121.5t10 121.5t-18 118t-37 107.5t-45.5 93t-45 72t-34.5 47.5l-13 17q-14 13 -7 13l10 -3q40 -29 62.5 -46t62 -50t64 -58t58.5 -65t55.5 -77t45.5 -88t38 -103t23.5 -117t10.5 -136 q3 -259 -108 -465t-312 -321t-456 -115q-185 0 -351 74t-283.5 198t-184 293t-60.5 353z" />
459
+ <glyph unicode="&#xf1d1;" horiz-adv-x="1792" d="M874 -102v-66q-208 6 -385 109.5t-283 275.5l58 34q29 -49 73 -99l65 57q148 -168 368 -212l-17 -86q65 -12 121 -13zM276 428l-83 -28q22 -60 49 -112l-57 -33q-98 180 -98 385t98 385l57 -33q-30 -56 -49 -112l82 -28q-35 -100 -35 -212q0 -109 36 -212zM1528 251 l58 -34q-106 -172 -283 -275.5t-385 -109.5v66q56 1 121 13l-17 86q220 44 368 212l65 -57q44 50 73 99zM1377 805l-233 -80q14 -42 14 -85t-14 -85l232 -80q-31 -92 -98 -169l-185 162q-57 -67 -147 -85l48 -241q-52 -10 -98 -10t-98 10l48 241q-90 18 -147 85l-185 -162 q-67 77 -98 169l232 80q-14 42 -14 85t14 85l-233 80q33 93 99 169l185 -162q59 68 147 86l-48 240q44 10 98 10t98 -10l-48 -240q88 -18 147 -86l185 162q66 -76 99 -169zM874 1448v-66q-65 -2 -121 -13l17 -86q-220 -42 -368 -211l-65 56q-38 -42 -73 -98l-57 33 q106 172 282 275.5t385 109.5zM1705 640q0 -205 -98 -385l-57 33q27 52 49 112l-83 28q36 103 36 212q0 112 -35 212l82 28q-19 56 -49 112l57 33q98 -180 98 -385zM1585 1063l-57 -33q-35 56 -73 98l-65 -56q-148 169 -368 211l17 86q-56 11 -121 13v66q209 -6 385 -109.5 t282 -275.5zM1748 640q0 173 -67.5 331t-181.5 272t-272 181.5t-331 67.5t-331 -67.5t-272 -181.5t-181.5 -272t-67.5 -331t67.5 -331t181.5 -272t272 -181.5t331 -67.5t331 67.5t272 181.5t181.5 272t67.5 331zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71 t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
460
+ <glyph unicode="&#xf1d2;" d="M582 228q0 -66 -93 -66q-107 0 -107 63q0 64 98 64q102 0 102 -61zM546 694q0 -85 -74 -85q-77 0 -77 84q0 90 77 90q36 0 55 -25.5t19 -63.5zM712 769v125q-78 -29 -135 -29q-50 29 -110 29q-86 0 -145 -57t-59 -143q0 -50 29.5 -102t73.5 -67v-3q-38 -17 -38 -85 q0 -53 41 -77v-3q-113 -37 -113 -139q0 -45 20 -78.5t54 -51t72 -25.5t81 -8q224 0 224 188q0 67 -48 99t-126 46q-27 5 -51.5 20.5t-24.5 39.5q0 44 49 52q77 15 122 70t45 134q0 24 -10 52q37 9 49 13zM771 350h137q-2 27 -2 82v387q0 46 2 69h-137q3 -23 3 -71v-392 q0 -50 -3 -75zM1280 366v121q-30 -21 -68 -21q-53 0 -53 82v225h52q9 0 26.5 -1t26.5 -1v117h-105q0 82 3 102h-140q4 -24 4 -55v-47h-60v-117q36 3 37 3q3 0 11 -0.5t12 -0.5v-2h-2v-217q0 -37 2.5 -64t11.5 -56.5t24.5 -48.5t43.5 -31t66 -12q64 0 108 24zM924 1072 q0 36 -24 63.5t-60 27.5t-60.5 -27t-24.5 -64q0 -36 25 -62.5t60 -26.5t59.5 27t24.5 62zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
461
+ <glyph unicode="&#xf1d3;" horiz-adv-x="1792" d="M595 22q0 100 -165 100q-158 0 -158 -104q0 -101 172 -101q151 0 151 105zM536 777q0 61 -30 102t-89 41q-124 0 -124 -145q0 -135 124 -135q119 0 119 137zM805 1101v-202q-36 -12 -79 -22q16 -43 16 -84q0 -127 -73 -216.5t-197 -112.5q-40 -8 -59.5 -27t-19.5 -58 q0 -31 22.5 -51.5t58 -32t78.5 -22t86 -25.5t78.5 -37.5t58 -64t22.5 -98.5q0 -304 -363 -304q-69 0 -130 12.5t-116 41t-87.5 82t-32.5 127.5q0 165 182 225v4q-67 41 -67 126q0 109 63 137v4q-72 24 -119.5 108.5t-47.5 165.5q0 139 95 231.5t235 92.5q96 0 178 -47 q98 0 218 47zM1123 220h-222q4 45 4 134v609q0 94 -4 128h222q-4 -33 -4 -124v-613q0 -89 4 -134zM1724 442v-196q-71 -39 -174 -39q-62 0 -107 20t-70 50t-39.5 78t-18.5 92t-4 103v351h2v4q-7 0 -19 1t-18 1q-21 0 -59 -6v190h96v76q0 54 -6 89h227q-6 -41 -6 -165h171 v-190q-15 0 -43.5 2t-42.5 2h-85v-365q0 -131 87 -131q61 0 109 33zM1148 1389q0 -58 -39 -101.5t-96 -43.5q-58 0 -98 43.5t-40 101.5q0 59 39.5 103t98.5 44q58 0 96.5 -44.5t38.5 -102.5z" />
462
+ <glyph unicode="&#xf1d4;" d="M825 547l343 588h-150q-21 -39 -63.5 -118.5t-68 -128.5t-59.5 -118.5t-60 -128.5h-3q-21 48 -44.5 97t-52 105.5t-46.5 92t-54 104.5t-49 95h-150l323 -589v-435h134v436zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
463
+ <glyph unicode="&#xf1d5;" horiz-adv-x="1280" d="M842 964q0 -80 -57 -136.5t-136 -56.5q-60 0 -111 35q-62 -67 -115 -146q-247 -371 -202 -859q1 -22 -12.5 -38.5t-34.5 -18.5h-5q-20 0 -35 13.5t-17 33.5q-14 126 -3.5 247.5t29.5 217t54 186t69 155.5t74 125q61 90 132 165q-16 35 -16 77q0 80 56.5 136.5t136.5 56.5 t136.5 -56.5t56.5 -136.5zM1223 953q0 -158 -78 -292t-212.5 -212t-292.5 -78q-64 0 -131 14q-21 5 -32.5 23.5t-6.5 39.5q5 20 23 31.5t39 7.5q51 -13 108 -13q97 0 186 38t153 102t102 153t38 186t-38 186t-102 153t-153 102t-186 38t-186 -38t-153 -102t-102 -153 t-38 -186q0 -114 52 -218q10 -20 3.5 -40t-25.5 -30t-39.5 -3t-30.5 26q-64 123 -64 265q0 119 46.5 227t124.5 186t186 124t226 46q158 0 292.5 -78t212.5 -212.5t78 -292.5z" />
464
+ <glyph unicode="&#xf1d6;" horiz-adv-x="1792" d="M270 730q-8 19 -8 52q0 20 11 49t24 45q-1 22 7.5 53t22.5 43q0 139 92.5 288.5t217.5 209.5q139 66 324 66q133 0 266 -55q49 -21 90 -48t71 -56t55 -68t42 -74t32.5 -84.5t25.5 -89.5t22 -98l1 -5q55 -83 55 -150q0 -14 -9 -40t-9 -38q0 -1 1.5 -3.5t3.5 -5t2 -3.5 q77 -114 120.5 -214.5t43.5 -208.5q0 -43 -19.5 -100t-55.5 -57q-9 0 -19.5 7.5t-19 17.5t-19 26t-16 26.5t-13.5 26t-9 17.5q-1 1 -3 1l-5 -4q-59 -154 -132 -223q20 -20 61.5 -38.5t69 -41.5t35.5 -65q-2 -4 -4 -16t-7 -18q-64 -97 -302 -97q-53 0 -110.5 9t-98 20 t-104.5 30q-15 5 -23 7q-14 4 -46 4.5t-40 1.5q-41 -45 -127.5 -65t-168.5 -20q-35 0 -69 1.5t-93 9t-101 20.5t-74.5 40t-32.5 64q0 40 10 59.5t41 48.5q11 2 40.5 13t49.5 12q4 0 14 2q2 2 2 4l-2 3q-48 11 -108 105.5t-73 156.5l-5 3q-4 0 -12 -20q-18 -41 -54.5 -74.5 t-77.5 -37.5h-1q-4 0 -6 4.5t-5 5.5q-23 54 -23 100q0 275 252 466z" />
465
+ <glyph unicode="&#xf1d7;" horiz-adv-x="2048" d="M580 1075q0 41 -25 66t-66 25q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 66 24.5t25 65.5zM1323 568q0 28 -25.5 50t-65.5 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q40 0 65.5 22t25.5 51zM1087 1075q0 41 -24.5 66t-65.5 25 q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 65.5 24.5t24.5 65.5zM1722 568q0 28 -26 50t-65 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q39 0 65 22t26 51zM1456 965q-31 4 -70 4q-169 0 -311 -77t-223.5 -208.5t-81.5 -287.5 q0 -78 23 -152q-35 -3 -68 -3q-26 0 -50 1.5t-55 6.5t-44.5 7t-54.5 10.5t-50 10.5l-253 -127l72 218q-290 203 -290 490q0 169 97.5 311t264 223.5t363.5 81.5q176 0 332.5 -66t262 -182.5t136.5 -260.5zM2048 404q0 -117 -68.5 -223.5t-185.5 -193.5l55 -181l-199 109 q-150 -37 -218 -37q-169 0 -311 70.5t-223.5 191.5t-81.5 264t81.5 264t223.5 191.5t311 70.5q161 0 303 -70.5t227.5 -192t85.5 -263.5z" />
466
+ <glyph unicode="&#xf1d8;" horiz-adv-x="1792" d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-453 185l-242 -295q-18 -23 -49 -23q-13 0 -22 4q-19 7 -30.5 23.5t-11.5 36.5v349l864 1059l-1069 -925l-395 162q-37 14 -40 55q-2 40 32 59l1664 960q15 9 32 9q20 0 36 -11z" />
467
+ <glyph unicode="&#xf1d9;" horiz-adv-x="1792" d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-527 215l-298 -327q-18 -21 -47 -21q-14 0 -23 4q-19 7 -30 23.5t-11 36.5v452l-472 193q-37 14 -40 55q-3 39 32 59l1664 960q35 21 68 -2zM1422 26l221 1323l-1434 -827l336 -137 l863 639l-478 -797z" />
468
+ <glyph unicode="&#xf1da;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298zM896 928v-448q0 -14 -9 -23 t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23z" />
469
+ <glyph unicode="&#xf1db;" d="M768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
470
+ <glyph unicode="&#xf1dc;" horiz-adv-x="1792" d="M1682 -128q-44 0 -132.5 3.5t-133.5 3.5q-44 0 -132 -3.5t-132 -3.5q-24 0 -37 20.5t-13 45.5q0 31 17 46t39 17t51 7t45 15q33 21 33 140l-1 391q0 21 -1 31q-13 4 -50 4h-675q-38 0 -51 -4q-1 -10 -1 -31l-1 -371q0 -142 37 -164q16 -10 48 -13t57 -3.5t45 -15 t20 -45.5q0 -26 -12.5 -48t-36.5 -22q-47 0 -139.5 3.5t-138.5 3.5q-43 0 -128 -3.5t-127 -3.5q-23 0 -35.5 21t-12.5 45q0 30 15.5 45t36 17.5t47.5 7.5t42 15q33 23 33 143l-1 57v813q0 3 0.5 26t0 36.5t-1.5 38.5t-3.5 42t-6.5 36.5t-11 31.5t-16 18q-15 10 -45 12t-53 2 t-41 14t-18 45q0 26 12 48t36 22q46 0 138.5 -3.5t138.5 -3.5q42 0 126.5 3.5t126.5 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17 -43.5t-38.5 -14.5t-49.5 -4t-43 -13q-35 -21 -35 -160l1 -320q0 -21 1 -32q13 -3 39 -3h699q25 0 38 3q1 11 1 32l1 320q0 139 -35 160 q-18 11 -58.5 12.5t-66 13t-25.5 49.5q0 26 12.5 48t37.5 22q44 0 132 -3.5t132 -3.5q43 0 129 3.5t129 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17.5 -44t-40 -14.5t-51.5 -3t-44 -12.5q-35 -23 -35 -161l1 -943q0 -119 34 -140q16 -10 46 -13.5t53.5 -4.5t41.5 -15.5t18 -44.5 q0 -26 -12 -48t-36 -22z" />
471
+ <glyph unicode="&#xf1dd;" horiz-adv-x="1280" d="M1278 1347v-73q0 -29 -18.5 -61t-42.5 -32q-50 0 -54 -1q-26 -6 -32 -31q-3 -11 -3 -64v-1152q0 -25 -18 -43t-43 -18h-108q-25 0 -43 18t-18 43v1218h-143v-1218q0 -25 -17.5 -43t-43.5 -18h-108q-26 0 -43.5 18t-17.5 43v496q-147 12 -245 59q-126 58 -192 179 q-64 117 -64 259q0 166 88 286q88 118 209 159q111 37 417 37h479q25 0 43 -18t18 -43z" />
472
+ <glyph unicode="&#xf1de;" d="M352 128v-128h-352v128h352zM704 256q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM864 640v-128h-864v128h864zM224 1152v-128h-224v128h224zM1536 128v-128h-736v128h736zM576 1280q26 0 45 -19t19 -45v-256 q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1216 768q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1536 640v-128h-224v128h224zM1536 1152v-128h-864v128h864z" />
473
+ <glyph unicode="&#xf1e0;" d="M1216 512q133 0 226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5q0 12 2 34l-360 180q-92 -86 -218 -86q-133 0 -226.5 93.5t-93.5 226.5t93.5 226.5t226.5 93.5q126 0 218 -86l360 180q-2 22 -2 34q0 133 93.5 226.5t226.5 93.5 t226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5q-126 0 -218 86l-360 -180q2 -22 2 -34t-2 -34l360 -180q92 86 218 86z" />
474
+ <glyph unicode="&#xf1e1;" d="M1280 341q0 88 -62.5 151t-150.5 63q-84 0 -145 -58l-241 120q2 16 2 23t-2 23l241 120q61 -58 145 -58q88 0 150.5 63t62.5 151t-62.5 150.5t-150.5 62.5t-151 -62.5t-63 -150.5q0 -7 2 -23l-241 -120q-62 57 -145 57q-88 0 -150.5 -62.5t-62.5 -150.5t62.5 -150.5 t150.5 -62.5q83 0 145 57l241 -120q-2 -16 -2 -23q0 -88 63 -150.5t151 -62.5t150.5 62.5t62.5 150.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
475
+ <glyph unicode="&#xf1e2;" horiz-adv-x="1792" d="M571 947q-10 25 -34 35t-49 0q-108 -44 -191 -127t-127 -191q-10 -25 0 -49t35 -34q13 -5 24 -5q42 0 60 40q34 84 98.5 148.5t148.5 98.5q25 11 35 35t0 49zM1513 1303l46 -46l-244 -243l68 -68q19 -19 19 -45.5t-19 -45.5l-64 -64q89 -161 89 -343q0 -143 -55.5 -273.5 t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5q182 0 343 -89l64 64q19 19 45.5 19t45.5 -19l68 -68zM1521 1359q-10 -10 -22 -10q-13 0 -23 10l-91 90q-9 10 -9 23t9 23q10 9 23 9t23 -9l90 -91 q10 -9 10 -22.5t-10 -22.5zM1751 1129q-11 -9 -23 -9t-23 9l-90 91q-10 9 -10 22.5t10 22.5q9 10 22.5 10t22.5 -10l91 -90q9 -10 9 -23t-9 -23zM1792 1312q0 -14 -9 -23t-23 -9h-96q-14 0 -23 9t-9 23t9 23t23 9h96q14 0 23 -9t9 -23zM1600 1504v-96q0 -14 -9 -23t-23 -9 t-23 9t-9 23v96q0 14 9 23t23 9t23 -9t9 -23zM1751 1449l-91 -90q-10 -10 -22 -10q-13 0 -23 10q-10 9 -10 22.5t10 22.5l90 91q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" />
476
+ <glyph unicode="&#xf1e3;" horiz-adv-x="1792" d="M609 720l287 208l287 -208l-109 -336h-355zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM1515 186q149 203 149 454v3l-102 -89l-240 224l63 323 l134 -12q-150 206 -389 282l53 -124l-287 -159l-287 159l53 124q-239 -76 -389 -282l135 12l62 -323l-240 -224l-102 89v-3q0 -251 149 -454l30 132l326 -40l139 -298l-116 -69q117 -39 240 -39t240 39l-116 69l139 298l326 40z" />
477
+ <glyph unicode="&#xf1e4;" horiz-adv-x="1792" d="M448 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM256 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM832 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM66 768q-28 0 -47 19t-19 46v129h514v-129q0 -27 -19 -46t-46 -19h-383zM1216 224v-192q0 -14 -9 -23t-23 -9h-192 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1600 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23 zM1408 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1016v-13h-514v10q0 104 -382 102q-382 -1 -382 -102v-10h-514v13q0 17 8.5 43t34 64t65.5 75.5t110.5 76t160 67.5t224 47.5t293.5 18.5t293 -18.5t224 -47.5 t160.5 -67.5t110.5 -76t65.5 -75.5t34 -64t8.5 -43zM1792 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 962v-129q0 -27 -19 -46t-46 -19h-384q-27 0 -46 19t-19 46v129h514z" />
478
+ <glyph unicode="&#xf1e5;" horiz-adv-x="1792" d="M704 1216v-768q0 -26 -19 -45t-45 -19v-576q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v512l249 873q7 23 31 23h424zM1024 1216v-704h-256v704h256zM1792 320v-512q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v576q-26 0 -45 19t-19 45v768h424q24 0 31 -23z M736 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23zM1408 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23z" />
479
+ <glyph unicode="&#xf1e6;" horiz-adv-x="1792" d="M1755 1083q37 -37 37 -90t-37 -91l-401 -400l150 -150l-160 -160q-163 -163 -389.5 -186.5t-411.5 100.5l-362 -362h-181v181l362 362q-124 185 -100.5 411.5t186.5 389.5l160 160l150 -150l400 401q38 37 91 37t90 -37t37 -90.5t-37 -90.5l-400 -401l234 -234l401 400 q38 37 91 37t90 -37z" />
480
+ <glyph unicode="&#xf1e7;" horiz-adv-x="1792" d="M873 796q0 -83 -63.5 -142.5t-152.5 -59.5t-152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59t152.5 -59t63.5 -143zM1375 796q0 -83 -63 -142.5t-153 -59.5q-89 0 -152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59q90 0 153 -59t63 -143zM1600 616v667q0 87 -32 123.5 t-111 36.5h-1112q-83 0 -112.5 -34t-29.5 -126v-673q43 -23 88.5 -40t81 -28t81 -18.5t71 -11t70 -4t58.5 -0.5t56.5 2t44.5 2q68 1 95 -27q6 -6 10 -9q26 -25 61 -51q7 91 118 87q5 0 36.5 -1.5t43 -2t45.5 -1t53 1t54.5 4.5t61 8.5t62 13.5t67 19.5t67.5 27t72 34.5z M1763 621q-121 -149 -372 -252q84 -285 -23 -465q-66 -113 -183 -148q-104 -32 -182 15q-86 51 -82 164l-1 326v1q-8 2 -24.5 6t-23.5 5l-1 -338q4 -114 -83 -164q-79 -47 -183 -15q-117 36 -182 150q-105 180 -22 463q-251 103 -372 252q-25 37 -4 63t60 -1q3 -2 11 -7 t11 -8v694q0 72 47 123t114 51h1257q67 0 114 -51t47 -123v-694l21 15q39 27 60 1t-4 -63z" />
481
+ <glyph unicode="&#xf1e8;" horiz-adv-x="1792" d="M896 1102v-434h-145v434h145zM1294 1102v-434h-145v434h145zM1294 342l253 254v795h-1194v-1049h326v-217l217 217h398zM1692 1536v-1013l-434 -434h-326l-217 -217h-217v217h-398v1158l109 289h1483z" />
482
+ <glyph unicode="&#xf1e9;" d="M773 217v-127q-1 -292 -6 -305q-12 -32 -51 -40q-54 -9 -181.5 38t-162.5 89q-13 15 -17 36q-1 12 4 26q4 10 34 47t181 216q1 0 60 70q15 19 39.5 24.5t49.5 -3.5q24 -10 37.5 -29t12.5 -42zM624 468q-3 -55 -52 -70l-120 -39q-275 -88 -292 -88q-35 2 -54 36 q-12 25 -17 75q-8 76 1 166.5t30 124.5t56 32q13 0 202 -77q70 -29 115 -47l84 -34q23 -9 35.5 -30.5t11.5 -48.5zM1450 171q-7 -54 -91.5 -161t-135.5 -127q-37 -14 -63 7q-14 10 -184 287l-47 77q-14 21 -11.5 46t19.5 46q35 43 83 26q1 -1 119 -40q203 -66 242 -79.5 t47 -20.5q28 -22 22 -61zM778 803q5 -102 -54 -122q-58 -17 -114 71l-378 598q-8 35 19 62q41 43 207.5 89.5t224.5 31.5q40 -10 49 -45q3 -18 22 -305.5t24 -379.5zM1440 695q3 -39 -26 -59q-15 -10 -329 -86q-67 -15 -91 -23l1 2q-23 -6 -46 4t-37 32q-30 47 0 87 q1 1 75 102q125 171 150 204t34 39q28 19 65 2q48 -23 123 -133.5t81 -167.5v-3z" />
483
+ <glyph unicode="&#xf1ea;" horiz-adv-x="2048" d="M1024 1024h-384v-384h384v384zM1152 384v-128h-640v128h640zM1152 1152v-640h-640v640h640zM1792 384v-128h-512v128h512zM1792 640v-128h-512v128h512zM1792 896v-128h-512v128h512zM1792 1152v-128h-512v128h512zM256 192v960h-128v-960q0 -26 19 -45t45 -19t45 19 t19 45zM1920 192v1088h-1536v-1088q0 -33 -11 -64h1483q26 0 45 19t19 45zM2048 1408v-1216q0 -80 -56 -136t-136 -56h-1664q-80 0 -136 56t-56 136v1088h256v128h1792z" />
484
+ <glyph unicode="&#xf1eb;" horiz-adv-x="2048" d="M1024 13q-20 0 -93 73.5t-73 93.5q0 32 62.5 54t103.5 22t103.5 -22t62.5 -54q0 -20 -73 -93.5t-93 -73.5zM1294 284q-2 0 -40 25t-101.5 50t-128.5 25t-128.5 -25t-101 -50t-40.5 -25q-18 0 -93.5 75t-75.5 93q0 13 10 23q78 77 196 121t233 44t233 -44t196 -121 q10 -10 10 -23q0 -18 -75.5 -93t-93.5 -75zM1567 556q-11 0 -23 8q-136 105 -252 154.5t-268 49.5q-85 0 -170.5 -22t-149 -53t-113.5 -62t-79 -53t-31 -22q-17 0 -92 75t-75 93q0 12 10 22q132 132 320 205t380 73t380 -73t320 -205q10 -10 10 -22q0 -18 -75 -93t-92 -75z M1838 827q-11 0 -22 9q-179 157 -371.5 236.5t-420.5 79.5t-420.5 -79.5t-371.5 -236.5q-11 -9 -22 -9q-17 0 -92.5 75t-75.5 93q0 13 10 23q187 186 445 288t527 102t527 -102t445 -288q10 -10 10 -23q0 -18 -75.5 -93t-92.5 -75z" />
485
+ <glyph unicode="&#xf1ec;" horiz-adv-x="1792" d="M384 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5 t37.5 90.5zM384 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 768q0 53 -37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1536 0v384q0 52 -38 90t-90 38t-90 -38t-38 -90v-384q0 -52 38 -90t90 -38t90 38t38 90zM1152 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z M1536 1088v256q0 26 -19 45t-45 19h-1280q-26 0 -45 -19t-19 -45v-256q0 -26 19 -45t45 -19h1280q26 0 45 19t19 45zM1536 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1408v-1536q0 -52 -38 -90t-90 -38 h-1408q-52 0 -90 38t-38 90v1536q0 52 38 90t90 38h1408q52 0 90 -38t38 -90z" />
486
+ <glyph unicode="&#xf1ed;" horiz-adv-x="1792" d="M1112 1090q0 159 -237 159h-70q-32 0 -59.5 -21.5t-34.5 -52.5l-63 -276q-2 -5 -2 -16q0 -24 17 -39.5t41 -15.5h53q69 0 128.5 13t112.5 41t83.5 81.5t30.5 126.5zM1716 938q0 -265 -220 -428q-219 -161 -612 -161h-61q-32 0 -59 -21.5t-34 -52.5l-73 -316 q-8 -36 -40.5 -61.5t-69.5 -25.5h-213q-31 0 -53 20t-22 51q0 10 13 65h151q34 0 64 23.5t38 56.5l73 316q8 33 37.5 57t63.5 24h61q390 0 607 160t217 421q0 129 -51 207q183 -92 183 -335zM1533 1123q0 -264 -221 -428q-218 -161 -612 -161h-60q-32 0 -59.5 -22t-34.5 -53 l-73 -315q-8 -36 -40 -61.5t-69 -25.5h-214q-31 0 -52.5 19.5t-21.5 51.5q0 8 2 20l300 1301q8 36 40.5 61.5t69.5 25.5h444q68 0 125 -4t120.5 -15t113.5 -30t96.5 -50.5t77.5 -74t49.5 -103.5t18.5 -136z" />
487
+ <glyph unicode="&#xf1ee;" horiz-adv-x="1792" d="M602 949q19 -61 31 -123.5t17 -141.5t-14 -159t-62 -145q-21 81 -67 157t-95.5 127t-99 90.5t-78.5 57.5t-33 19q-62 34 -81.5 100t14.5 128t101 81.5t129 -14.5q138 -83 238 -177zM927 1236q11 -25 20.5 -46t36.5 -100.5t42.5 -150.5t25.5 -179.5t0 -205.5t-47.5 -209.5 t-105.5 -208.5q-51 -72 -138 -72q-54 0 -98 31q-57 40 -69 109t28 127q60 85 81 195t13 199.5t-32 180.5t-39 128t-22 52q-31 63 -8.5 129.5t85.5 97.5q34 17 75 17q47 0 88.5 -25t63.5 -69zM1248 567q-17 -160 -72 -311q-17 131 -63 246q25 174 -5 361q-27 178 -94 342 q114 -90 212 -211q9 -37 15 -80q26 -179 7 -347zM1520 1440q9 -17 23.5 -49.5t43.5 -117.5t50.5 -178t34 -227.5t5 -269t-47 -300t-112.5 -323.5q-22 -48 -66 -75.5t-95 -27.5q-39 0 -74 16q-67 31 -92.5 100t4.5 136q58 126 90 257.5t37.5 239.5t-3.5 213.5t-26.5 180.5 t-38.5 138.5t-32.5 90t-15.5 32.5q-34 65 -11.5 135.5t87.5 104.5q37 20 81 20q49 0 91.5 -25.5t66.5 -70.5z" />
488
+ <glyph unicode="&#xf1f0;" horiz-adv-x="2304" d="M1975 546h-138q14 37 66 179l3 9q4 10 10 26t9 26l12 -55zM531 611l-58 295q-11 54 -75 54h-268l-2 -13q311 -79 403 -336zM710 960l-162 -438l-17 89q-26 70 -85 129.5t-131 88.5l135 -510h175l261 641h-176zM849 318h166l104 642h-166zM1617 944q-69 27 -149 27 q-123 0 -201 -59t-79 -153q-1 -102 145 -174q48 -23 67 -41t19 -39q0 -30 -30 -46t-69 -16q-86 0 -156 33l-22 11l-23 -144q74 -34 185 -34q130 -1 208.5 59t80.5 160q0 106 -140 174q-49 25 -71 42t-22 38q0 22 24.5 38.5t70.5 16.5q70 1 124 -24l15 -8zM2042 960h-128 q-65 0 -87 -54l-246 -588h174l35 96h212q5 -22 20 -96h154zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
489
+ <glyph unicode="&#xf1f1;" horiz-adv-x="2304" d="M671 603h-13q-47 0 -47 -32q0 -22 20 -22q17 0 28 15t12 39zM1066 639h62v3q1 4 0.5 6.5t-1 7t-2 8t-4.5 6.5t-7.5 5t-11.5 2q-28 0 -36 -38zM1606 603h-12q-48 0 -48 -32q0 -22 20 -22q17 0 28 15t12 39zM1925 629q0 41 -30 41q-19 0 -31 -20t-12 -51q0 -42 28 -42 q20 0 32.5 20t12.5 52zM480 770h87l-44 -262h-56l32 201l-71 -201h-39l-4 200l-34 -200h-53l44 262h81l2 -163zM733 663q0 -6 -4 -42q-16 -101 -17 -113h-47l1 22q-20 -26 -58 -26q-23 0 -37.5 16t-14.5 42q0 39 26 60.5t73 21.5q14 0 23 -1q0 3 0.5 5.5t1 4.5t0.5 3 q0 20 -36 20q-29 0 -59 -10q0 4 7 48q38 11 67 11q74 0 74 -62zM889 721l-8 -49q-22 3 -41 3q-27 0 -27 -17q0 -8 4.5 -12t21.5 -11q40 -19 40 -60q0 -72 -87 -71q-34 0 -58 6q0 2 7 49q29 -8 51 -8q32 0 32 19q0 7 -4.5 11.5t-21.5 12.5q-43 20 -43 59q0 72 84 72 q30 0 50 -4zM977 721h28l-7 -52h-29q-2 -17 -6.5 -40.5t-7 -38.5t-2.5 -18q0 -16 19 -16q8 0 16 2l-8 -47q-21 -7 -40 -7q-43 0 -45 47q0 12 8 56q3 20 25 146h55zM1180 648q0 -23 -7 -52h-111q-3 -22 10 -33t38 -11q30 0 58 14l-9 -54q-30 -8 -57 -8q-95 0 -95 95 q0 55 27.5 90.5t69.5 35.5q35 0 55.5 -21t20.5 -56zM1319 722q-13 -23 -22 -62q-22 2 -31 -24t-25 -128h-56l3 14q22 130 29 199h51l-3 -33q14 21 25.5 29.5t28.5 4.5zM1506 763l-9 -57q-28 14 -50 14q-31 0 -51 -27.5t-20 -70.5q0 -30 13.5 -47t38.5 -17q21 0 48 13 l-10 -59q-28 -8 -50 -8q-45 0 -71.5 30.5t-26.5 82.5q0 70 35.5 114.5t91.5 44.5q26 0 61 -13zM1668 663q0 -18 -4 -42q-13 -79 -17 -113h-46l1 22q-20 -26 -59 -26q-23 0 -37 16t-14 42q0 39 25.5 60.5t72.5 21.5q15 0 23 -1q2 7 2 13q0 20 -36 20q-29 0 -59 -10q0 4 8 48 q38 11 67 11q73 0 73 -62zM1809 722q-14 -24 -21 -62q-23 2 -31.5 -23t-25.5 -129h-56l3 14q19 104 29 199h52q0 -11 -4 -33q15 21 26.5 29.5t27.5 4.5zM1950 770h56l-43 -262h-53l3 19q-23 -23 -52 -23q-31 0 -49.5 24t-18.5 64q0 53 27.5 92t64.5 39q31 0 53 -29z M2061 640q0 148 -72.5 273t-198 198t-273.5 73q-181 0 -328 -110q127 -116 171 -284h-50q-44 150 -158 253q-114 -103 -158 -253h-50q44 168 171 284q-147 110 -328 110q-148 0 -273.5 -73t-198 -198t-72.5 -273t72.5 -273t198 -198t273.5 -73q181 0 328 110 q-120 111 -165 264h50q46 -138 152 -233q106 95 152 233h50q-45 -153 -165 -264q147 -110 328 -110q148 0 273.5 73t198 198t72.5 273zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
490
+ <glyph unicode="&#xf1f2;" horiz-adv-x="2304" d="M313 759q0 -51 -36 -84q-29 -26 -89 -26h-17v220h17q61 0 89 -27q36 -31 36 -83zM2089 824q0 -52 -64 -52h-19v101h20q63 0 63 -49zM380 759q0 74 -50 120.5t-129 46.5h-95v-333h95q74 0 119 38q60 51 60 128zM410 593h65v333h-65v-333zM730 694q0 40 -20.5 62t-75.5 42 q-29 10 -39.5 19t-10.5 23q0 16 13.5 26.5t34.5 10.5q29 0 53 -27l34 44q-41 37 -98 37q-44 0 -74 -27.5t-30 -67.5q0 -35 18 -55.5t64 -36.5q37 -13 45 -19q19 -12 19 -34q0 -20 -14 -33.5t-36 -13.5q-48 0 -71 44l-42 -40q44 -64 115 -64q51 0 83 30.5t32 79.5zM1008 604 v77q-37 -37 -78 -37q-49 0 -80.5 32.5t-31.5 82.5q0 48 31.5 81.5t77.5 33.5q43 0 81 -38v77q-40 20 -80 20q-74 0 -125.5 -50.5t-51.5 -123.5t51 -123.5t125 -50.5q42 0 81 19zM2240 0v527q-65 -40 -144.5 -84t-237.5 -117t-329.5 -137.5t-417.5 -134.5t-504 -118h1569 q26 0 45 19t19 45zM1389 757q0 75 -53 128t-128 53t-128 -53t-53 -128t53 -128t128 -53t128 53t53 128zM1541 584l144 342h-71l-90 -224l-89 224h-71l142 -342h35zM1714 593h184v56h-119v90h115v56h-115v74h119v57h-184v-333zM2105 593h80l-105 140q76 16 76 94q0 47 -31 73 t-87 26h-97v-333h65v133h9zM2304 1274v-1268q0 -56 -38.5 -95t-93.5 -39h-2040q-55 0 -93.5 39t-38.5 95v1268q0 56 38.5 95t93.5 39h2040q55 0 93.5 -39t38.5 -95z" />
491
+ <glyph unicode="&#xf1f3;" horiz-adv-x="2304" d="M119 854h89l-45 108zM740 328l74 79l-70 79h-163v-49h142v-55h-142v-54h159zM898 406l99 -110v217zM1186 453q0 33 -40 33h-84v-69h83q41 0 41 36zM1475 457q0 29 -42 29h-82v-61h81q43 0 43 32zM1197 923q0 29 -42 29h-82v-60h81q43 0 43 31zM1656 854h89l-44 108z M699 1009v-271h-66v212l-94 -212h-57l-94 212v-212h-132l-25 60h-135l-25 -60h-70l116 271h96l110 -257v257h106l85 -184l77 184h108zM1255 453q0 -20 -5.5 -35t-14 -25t-22.5 -16.5t-26 -10t-31.5 -4.5t-31.5 -1t-32.5 0.5t-29.5 0.5v-91h-126l-80 90l-83 -90h-256v271h260 l80 -89l82 89h207q109 0 109 -89zM964 794v-56h-217v271h217v-57h-152v-49h148v-55h-148v-54h152zM2304 235v-229q0 -55 -38.5 -94.5t-93.5 -39.5h-2040q-55 0 -93.5 39.5t-38.5 94.5v678h111l25 61h55l25 -61h218v46l19 -46h113l20 47v-47h541v99l10 1q10 0 10 -14v-86h279 v23q23 -12 55 -18t52.5 -6.5t63 0.5t51.5 1l25 61h56l25 -61h227v58l34 -58h182v378h-180v-44l-25 44h-185v-44l-23 44h-249q-69 0 -109 -22v22h-172v-22q-24 22 -73 22h-628l-43 -97l-43 97h-198v-44l-22 44h-169l-78 -179v391q0 55 38.5 94.5t93.5 39.5h2040 q55 0 93.5 -39.5t38.5 -94.5v-678h-120q-51 0 -81 -22v22h-177q-55 0 -78 -22v22h-316v-22q-31 22 -87 22h-209v-22q-23 22 -91 22h-234l-54 -58l-50 58h-349v-378h343l55 59l52 -59h211v89h21q59 0 90 13v-102h174v99h8q8 0 10 -2t2 -10v-87h529q57 0 88 24v-24h168 q60 0 95 17zM1546 469q0 -23 -12 -43t-34 -29q25 -9 34 -26t9 -46v-54h-65v45q0 33 -12 43.5t-46 10.5h-69v-99h-65v271h154q48 0 77 -15t29 -58zM1269 936q0 -24 -12.5 -44t-33.5 -29q26 -9 34.5 -25.5t8.5 -46.5v-53h-65q0 9 0.5 26.5t0 25t-3 18.5t-8.5 16t-17.5 8.5 t-29.5 3.5h-70v-98h-64v271l153 -1q49 0 78 -14.5t29 -57.5zM1798 327v-56h-216v271h216v-56h-151v-49h148v-55h-148v-54zM1372 1009v-271h-66v271h66zM2065 357q0 -86 -102 -86h-126v58h126q34 0 34 25q0 16 -17 21t-41.5 5t-49.5 3.5t-42 22.5t-17 55q0 39 26 60t66 21 h130v-57h-119q-36 0 -36 -25q0 -16 17.5 -20.5t42 -4t49 -2.5t42 -21.5t17.5 -54.5zM2304 407v-101q-24 -35 -88 -35h-125v58h125q33 0 33 25q0 13 -12.5 19t-31 5.5t-40 2t-40 8t-31 24t-12.5 48.5q0 39 26.5 60t66.5 21h129v-57h-118q-36 0 -36 -25q0 -20 29 -22t68.5 -5 t56.5 -26zM2139 1008v-270h-92l-122 203v-203h-132l-26 60h-134l-25 -60h-75q-129 0 -129 133q0 138 133 138h63v-59q-7 0 -28 1t-28.5 0.5t-23 -2t-21.5 -6.5t-14.5 -13.5t-11.5 -23t-3 -33.5q0 -38 13.5 -58t49.5 -20h29l92 213h97l109 -256v256h99l114 -188v188h66z" />
492
+ <glyph unicode="&#xf1f4;" horiz-adv-x="2304" d="M322 689h-15q-19 0 -19 18q0 28 19 85q5 15 15 19.5t28 4.5q77 0 77 -49q0 -41 -30.5 -59.5t-74.5 -18.5zM664 528q-47 0 -47 29q0 62 123 62l3 -3q-5 -88 -79 -88zM1438 687h-15q-19 0 -19 19q0 28 19 85q5 15 14.5 19t28.5 4q77 0 77 -49q0 -41 -30.5 -59.5 t-74.5 -18.5zM1780 527q-47 0 -47 30q0 62 123 62l3 -3q-5 -89 -79 -89zM373 894h-128q-8 0 -14.5 -4t-8.5 -7.5t-7 -12.5q-3 -7 -45 -190t-42 -192q0 -7 5.5 -12.5t13.5 -5.5h62q25 0 32.5 34.5l15 69t32.5 34.5q47 0 87.5 7.5t80.5 24.5t63.5 52.5t23.5 84.5 q0 36 -14.5 61t-41 36.5t-53.5 15.5t-62 4zM719 798q-38 0 -74 -6q-2 0 -8.5 -1t-9 -1.5l-7.5 -1.5t-7.5 -2t-6.5 -3t-6.5 -4t-5 -5t-4.5 -7t-4 -9q-9 -29 -9 -39t9 -10q5 0 21.5 5t19.5 6q30 8 58 8q74 0 74 -36q0 -11 -10 -14q-8 -2 -18 -3t-21.5 -1.5t-17.5 -1.5 q-38 -4 -64.5 -10t-56.5 -19.5t-45.5 -39t-15.5 -62.5q0 -38 26 -59.5t64 -21.5q24 0 45.5 6.5t33 13t38.5 23.5q-3 -7 -3 -15t5.5 -13.5t12.5 -5.5h56q1 1 7 3.5t7.5 3.5t5 3.5t5 5.5t2.5 8l45 194q4 13 4 30q0 81 -145 81zM1247 793h-74q-22 0 -39 -23q-5 -7 -29.5 -51 t-46.5 -81.5t-26 -38.5l-5 4q0 77 -27 166q-1 5 -3.5 8.5t-6 6.5t-6.5 5t-8.5 3t-8.5 1.5t-9.5 1t-9 0.5h-10h-8.5q-38 0 -38 -21l1 -5q5 -53 25 -151t25 -143q2 -16 2 -24q0 -19 -30.5 -61.5t-30.5 -58.5q0 -13 40 -13q61 0 76 25l245 415q10 20 10 26q0 9 -8 9zM1489 892 h-129q-18 0 -29 -23q-6 -13 -46.5 -191.5t-40.5 -190.5q0 -20 43 -20h7.5h9h9t9.5 1t8.5 2t8.5 3t6.5 4.5t5.5 6t3 8.5l21 91q2 10 10.5 17t19.5 7q47 0 87.5 7t80.5 24.5t63.5 52.5t23.5 84q0 36 -14.5 61t-41 36.5t-53.5 15.5t-62 4zM1835 798q-26 0 -74 -6 q-38 -6 -48 -16q-7 -8 -11 -19q-8 -24 -8 -39q0 -10 8 -10q1 0 41 12q30 8 58 8q74 0 74 -36q0 -12 -10 -14q-4 -1 -57 -7q-38 -4 -64.5 -10t-56.5 -19.5t-45.5 -39t-15.5 -62.5t26 -58.5t64 -21.5q24 0 45 6t34 13t38 24q-3 -15 -3 -16q0 -5 2 -8.5t6.5 -5.5t8 -3.5 t10.5 -2t9.5 -0.5h9.5h8q42 0 48 25l45 194q3 15 3 31q0 81 -145 81zM2157 889h-55q-25 0 -33 -40q-10 -44 -36.5 -167t-42.5 -190v-5q0 -16 16 -18h1h57q10 0 18.5 6.5t10.5 16.5l83 374h-1l1 5q0 7 -5.5 12.5t-13.5 5.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048 q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
493
+ <glyph unicode="&#xf1f5;" horiz-adv-x="2304" d="M1597 633q0 -69 -21 -106q-19 -35 -52 -35q-23 0 -41 9v224q29 30 57 30q57 0 57 -122zM2035 669h-110q6 98 56 98q51 0 54 -98zM476 534q0 59 -33 91.5t-101 57.5q-36 13 -52 24t-16 25q0 26 38 26q58 0 124 -33l18 112q-67 32 -149 32q-77 0 -123 -38q-48 -39 -48 -109 q0 -58 32.5 -90.5t99.5 -56.5q39 -14 54.5 -25.5t15.5 -27.5q0 -31 -48 -31q-29 0 -70 12.5t-72 30.5l-18 -113q72 -41 168 -41q81 0 129 37q51 41 51 117zM771 749l19 111h-96v135l-129 -21l-18 -114l-46 -8l-17 -103h62v-219q0 -84 44 -120q38 -30 111 -30q32 0 79 11v118 q-32 -7 -44 -7q-42 0 -42 50v197h77zM1087 724v139q-15 3 -28 3q-32 0 -55.5 -16t-33.5 -46l-10 56h-131v-471h150v306q26 31 82 31q16 0 26 -2zM1124 389h150v471h-150v-471zM1746 638q0 122 -45 179q-40 52 -111 52q-64 0 -117 -56l-8 47h-132v-645l150 25v151 q36 -11 68 -11q83 0 134 56q61 65 61 202zM1278 986q0 33 -23 56t-56 23t-56 -23t-23 -56t23 -56.5t56 -23.5t56 23.5t23 56.5zM2176 629q0 113 -48 176q-50 64 -144 64q-96 0 -151.5 -66t-55.5 -180q0 -128 63 -188q55 -55 161 -55q101 0 160 40l-16 103q-57 -31 -128 -31 q-43 0 -63 19q-23 19 -28 66h248q2 14 2 52zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
494
+ <glyph unicode="&#xf1f6;" horiz-adv-x="2048" d="M1558 684q61 -356 298 -556q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5zM1024 -176q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5zM2026 1424q8 -10 7.5 -23.5t-10.5 -22.5 l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5 l418 363q10 8 23.5 7t21.5 -11z" />
495
+ <glyph unicode="&#xf1f7;" horiz-adv-x="2048" d="M1040 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM503 315l877 760q-42 88 -132.5 146.5t-223.5 58.5q-93 0 -169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -384 -137 -645zM1856 128 q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5l149 129h757q-166 187 -227 459l111 97q61 -356 298 -556zM1942 1520l84 -96q8 -10 7.5 -23.5t-10.5 -22.5l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161 q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5l418 363q10 8 23.5 7t21.5 -11z" />
496
+ <glyph unicode="&#xf1f8;" horiz-adv-x="1408" d="M512 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM768 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1024 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704 q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167 q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" />
497
+ <glyph unicode="&#xf1f9;" d="M1150 462v-109q0 -50 -36.5 -89t-94 -60.5t-118 -32.5t-117.5 -11q-205 0 -342.5 139t-137.5 346q0 203 136 339t339 136q34 0 75.5 -4.5t93 -18t92.5 -34t69 -56.5t28 -81v-109q0 -16 -16 -16h-118q-16 0 -16 16v70q0 43 -65.5 67.5t-137.5 24.5q-140 0 -228.5 -91.5 t-88.5 -237.5q0 -151 91.5 -249.5t233.5 -98.5q68 0 138 24t70 66v70q0 7 4.5 11.5t10.5 4.5h119q6 0 11 -4.5t5 -11.5zM768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
498
+ <glyph unicode="&#xf1fa;" d="M972 761q0 108 -53.5 169t-147.5 61q-63 0 -124 -30.5t-110 -84.5t-79.5 -137t-30.5 -180q0 -112 53.5 -173t150.5 -61q96 0 176 66.5t122.5 166t42.5 203.5zM1536 640q0 -111 -37 -197t-98.5 -135t-131.5 -74.5t-145 -27.5q-6 0 -15.5 -0.5t-16.5 -0.5q-95 0 -142 53 q-28 33 -33 83q-52 -66 -131.5 -110t-173.5 -44q-161 0 -249.5 95.5t-88.5 269.5q0 157 66 290t179 210.5t246 77.5q87 0 155 -35.5t106 -99.5l2 19l11 56q1 6 5.5 12t9.5 6h118q5 0 13 -11q5 -5 3 -16l-120 -614q-5 -24 -5 -48q0 -39 12.5 -52t44.5 -13q28 1 57 5.5t73 24 t77 50t57 89.5t24 137q0 292 -174 466t-466 174q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51q228 0 405 144q11 9 24 8t21 -12l41 -49q8 -12 7 -24q-2 -13 -12 -22q-102 -83 -227.5 -128t-258.5 -45q-156 0 -298 61 t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q344 0 556 -212t212 -556z" />
499
+ <glyph unicode="&#xf1fb;" horiz-adv-x="1792" d="M1698 1442q94 -94 94 -226.5t-94 -225.5l-225 -223l104 -104q10 -10 10 -23t-10 -23l-210 -210q-10 -10 -23 -10t-23 10l-105 105l-603 -603q-37 -37 -90 -37h-203l-256 -128l-64 64l128 256v203q0 53 37 90l603 603l-105 105q-10 10 -10 23t10 23l210 210q10 10 23 10 t23 -10l104 -104l223 225q93 94 225.5 94t226.5 -94zM512 64l576 576l-192 192l-576 -576v-192h192z" />
500
+ <glyph unicode="&#xf1fc;" horiz-adv-x="1792" d="M1615 1536q70 0 122.5 -46.5t52.5 -116.5q0 -63 -45 -151q-332 -629 -465 -752q-97 -91 -218 -91q-126 0 -216.5 92.5t-90.5 219.5q0 128 92 212l638 579q59 54 130 54zM706 502q39 -76 106.5 -130t150.5 -76l1 -71q4 -213 -129.5 -347t-348.5 -134q-123 0 -218 46.5 t-152.5 127.5t-86.5 183t-29 220q7 -5 41 -30t62 -44.5t59 -36.5t46 -17q41 0 55 37q25 66 57.5 112.5t69.5 76t88 47.5t103 25.5t125 10.5z" />
501
+ <glyph unicode="&#xf1fd;" horiz-adv-x="1792" d="M1792 128v-384h-1792v384q45 0 85 14t59 27.5t47 37.5q30 27 51.5 38t56.5 11t55.5 -11t52.5 -38q29 -25 47 -38t58 -27t86 -14q45 0 85 14.5t58 27t48 37.5q21 19 32.5 27t31 15t43.5 7q35 0 56.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14t85 14t59 27.5t47 37.5 q30 27 51.5 38t56.5 11q34 0 55.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14zM1792 448v-192q-35 0 -55.5 11t-52.5 38q-29 25 -47 38t-58 27t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-22 -19 -33 -27t-31 -15t-44 -7q-35 0 -56.5 11t-51.5 38q-29 25 -47 38t-58 27 t-86 14q-45 0 -85 -14.5t-58 -27t-48 -37.5q-21 -19 -32.5 -27t-31 -15t-43.5 -7q-35 0 -56.5 11t-51.5 38q-28 24 -47 37.5t-59 27.5t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-30 -27 -51.5 -38t-56.5 -11v192q0 80 56 136t136 56h64v448h256v-448h256v448h256v-448h256v448 h256v-448h64q80 0 136 -56t56 -136zM512 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1024 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51 t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1536 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150z" />
502
+ <glyph unicode="&#xf1fe;" horiz-adv-x="2048" d="M2048 0v-128h-2048v1536h128v-1408h1920zM1664 1024l256 -896h-1664v576l448 576l576 -576z" />
503
+ <glyph unicode="&#xf200;" horiz-adv-x="1792" d="M768 646l546 -546q-106 -108 -247.5 -168t-298.5 -60q-209 0 -385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103v-762zM955 640h773q0 -157 -60 -298.5t-168 -247.5zM1664 768h-768v768q209 0 385.5 -103t279.5 -279.5t103 -385.5z" />
504
+ <glyph unicode="&#xf201;" horiz-adv-x="2048" d="M2048 0v-128h-2048v1536h128v-1408h1920zM1920 1248v-435q0 -21 -19.5 -29.5t-35.5 7.5l-121 121l-633 -633q-10 -10 -23 -10t-23 10l-233 233l-416 -416l-192 192l585 585q10 10 23 10t23 -10l233 -233l464 464l-121 121q-16 16 -7.5 35.5t29.5 19.5h435q14 0 23 -9 t9 -23z" />
505
+ <glyph unicode="&#xf202;" horiz-adv-x="1792" d="M1292 832q0 -6 10 -41q10 -29 25 -49.5t41 -34t44 -20t55 -16.5q325 -91 325 -332q0 -146 -105.5 -242.5t-254.5 -96.5q-59 0 -111.5 18.5t-91.5 45.5t-77 74.5t-63 87.5t-53.5 103.5t-43.5 103t-39.5 106.5t-35.5 95q-32 81 -61.5 133.5t-73.5 96.5t-104 64t-142 20 q-96 0 -183 -55.5t-138 -144.5t-51 -185q0 -160 106.5 -279.5t263.5 -119.5q177 0 258 95q56 63 83 116l84 -152q-15 -34 -44 -70l1 -1q-131 -152 -388 -152q-147 0 -269.5 79t-190.5 207.5t-68 274.5q0 105 43.5 206t116 176.5t172 121.5t204.5 46q87 0 159 -19t123.5 -50 t95 -80t72.5 -99t58.5 -117t50.5 -124.5t50 -130.5t55 -127q96 -200 233 -200q81 0 138.5 48.5t57.5 128.5q0 42 -19 72t-50.5 46t-72.5 31.5t-84.5 27t-87.5 34t-81 52t-65 82t-39 122.5q-3 16 -3 33q0 110 87.5 192t198.5 78q78 -3 120.5 -14.5t90.5 -53.5h-1 q12 -11 23 -24.5t26 -36t19 -27.5l-129 -99q-26 49 -54 70v1q-23 21 -97 21q-49 0 -84 -33t-35 -83z" />
506
+ <glyph unicode="&#xf203;" d="M1432 484q0 173 -234 239q-35 10 -53 16.5t-38 25t-29 46.5q0 2 -2 8.5t-3 12t-1 7.5q0 36 24.5 59.5t60.5 23.5q54 0 71 -15h-1q20 -15 39 -51l93 71q-39 54 -49 64q-33 29 -67.5 39t-85.5 10q-80 0 -142 -57.5t-62 -137.5q0 -7 2 -23q16 -96 64.5 -140t148.5 -73 q29 -8 49 -15.5t45 -21.5t38.5 -34.5t13.5 -46.5v-5q1 -58 -40.5 -93t-100.5 -35q-97 0 -167 144q-23 47 -51.5 121.5t-48 125.5t-54 110.5t-74 95.5t-103.5 60.5t-147 24.5q-101 0 -192 -56t-144 -148t-50 -192v-1q4 -108 50.5 -199t133.5 -147.5t196 -56.5q186 0 279 110 q20 27 31 51l-60 109q-42 -80 -99 -116t-146 -36q-115 0 -191 87t-76 204q0 105 82 189t186 84q112 0 170 -53.5t104 -172.5q8 -21 25.5 -68.5t28.5 -76.5t31.5 -74.5t38.5 -74t45.5 -62.5t55.5 -53.5t66 -33t80 -13.5q107 0 183 69.5t76 174.5zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
507
+ <glyph unicode="&#xf204;" horiz-adv-x="2048" d="M1152 640q0 104 -40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM1920 640q0 104 -40.5 198.5 t-109.5 163.5t-163.5 109.5t-198.5 40.5h-386q119 -90 188.5 -224t69.5 -288t-69.5 -288t-188.5 -224h386q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM2048 640q0 -130 -51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5 t-136.5 204t-51 248.5t51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5z" />
508
+ <glyph unicode="&#xf205;" horiz-adv-x="2048" d="M0 640q0 130 51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5t-51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5t-136.5 204t-51 248.5zM1408 128q104 0 198.5 40.5t163.5 109.5 t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5z" />
509
+ <glyph unicode="&#xf206;" horiz-adv-x="2304" d="M762 384h-314q-40 0 -57.5 35t6.5 67l188 251q-65 31 -137 31q-132 0 -226 -94t-94 -226t94 -226t226 -94q115 0 203 72.5t111 183.5zM576 512h186q-18 85 -75 148zM1056 512l288 384h-480l-99 -132q105 -103 126 -252h165zM2176 448q0 132 -94 226t-226 94 q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94t226 94t94 226zM2304 448q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 97 39.5 183.5t109.5 149.5l-65 98l-353 -469 q-18 -26 -51 -26h-197q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q114 0 215 -55l137 183h-224q-26 0 -45 19t-19 45t19 45t45 19h384v-128h435l-85 128h-222q-26 0 -45 19t-19 45t19 45t45 19h256q33 0 53 -28l267 -400 q91 44 192 44q185 0 316.5 -131.5t131.5 -316.5z" />
510
+ <glyph unicode="&#xf207;" d="M384 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1362 716l-72 384q-5 23 -22.5 37.5t-40.5 14.5 h-918q-23 0 -40.5 -14.5t-22.5 -37.5l-72 -384q-5 -30 14 -53t49 -23h1062q30 0 49 23t14 53zM1136 1328q0 20 -14 34t-34 14h-640q-20 0 -34 -14t-14 -34t14 -34t34 -14h640q20 0 34 14t14 34zM1536 603v-603h-128v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5v128h-768v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5v128h-128v603q0 112 25 223l103 454q9 78 97.5 137t230 89t312.5 30t312.5 -30t230 -89t97.5 -137l105 -454q23 -102 23 -223z" />
511
+ <glyph unicode="&#xf208;" horiz-adv-x="2048" d="M1463 704q0 -35 -25 -60.5t-61 -25.5h-702q-36 0 -61 25.5t-25 60.5t25 60.5t61 25.5h702q36 0 61 -25.5t25 -60.5zM1677 704q0 86 -23 170h-982q-36 0 -61 25t-25 60q0 36 25 61t61 25h908q-88 143 -235 227t-320 84q-177 0 -327.5 -87.5t-238 -237.5t-87.5 -327 q0 -86 23 -170h982q36 0 61 -25t25 -60q0 -36 -25 -61t-61 -25h-908q88 -143 235.5 -227t320.5 -84q132 0 253 51.5t208 139t139 208t52 253.5zM2048 959q0 -35 -25 -60t-61 -25h-131q17 -85 17 -170q0 -167 -65.5 -319.5t-175.5 -263t-262.5 -176t-319.5 -65.5 q-246 0 -448.5 133t-301.5 350h-189q-36 0 -61 25t-25 61q0 35 25 60t61 25h132q-17 85 -17 170q0 167 65.5 319.5t175.5 263t262.5 176t320.5 65.5q245 0 447.5 -133t301.5 -350h188q36 0 61 -25t25 -61z" />
512
+ <glyph unicode="&#xf209;" horiz-adv-x="1280" d="M953 1158l-114 -328l117 -21q165 451 165 518q0 56 -38 56q-57 0 -130 -225zM654 471l33 -88q37 42 71 67l-33 5.5t-38.5 7t-32.5 8.5zM362 1367q0 -98 159 -521q18 10 49 10q15 0 75 -5l-121 351q-75 220 -123 220q-19 0 -29 -17.5t-10 -37.5zM283 608q0 -36 51.5 -119 t117.5 -153t100 -70q14 0 25.5 13t11.5 27q0 24 -32 102q-13 32 -32 72t-47.5 89t-61.5 81t-62 32q-20 0 -45.5 -27t-25.5 -47zM125 273q0 -41 25 -104q59 -145 183.5 -227t281.5 -82q227 0 382 170q152 169 152 427q0 43 -1 67t-11.5 62t-30.5 56q-56 49 -211.5 75.5 t-270.5 26.5q-37 0 -49 -11q-12 -5 -12 -35q0 -34 21.5 -60t55.5 -40t77.5 -23.5t87.5 -11.5t85 -4t70 0h23q24 0 40 -19q15 -19 19 -55q-28 -28 -96 -54q-61 -22 -93 -46q-64 -46 -108.5 -114t-44.5 -137q0 -31 18.5 -88.5t18.5 -87.5l-3 -12q-4 -12 -4 -14 q-137 10 -146 216q-8 -2 -41 -2q2 -7 2 -21q0 -53 -40.5 -89.5t-94.5 -36.5q-82 0 -166.5 78t-84.5 159q0 34 33 67q52 -64 60 -76q77 -104 133 -104q12 0 26.5 8.5t14.5 20.5q0 34 -87.5 145t-116.5 111q-43 0 -70 -44.5t-27 -90.5zM11 264q0 101 42.5 163t136.5 88 q-28 74 -28 104q0 62 61 123t122 61q29 0 70 -15q-163 462 -163 567q0 80 41 130.5t119 50.5q131 0 325 -581q6 -17 8 -23q6 16 29 79.5t43.5 118.5t54 127.5t64.5 123t70.5 86.5t76.5 36q71 0 112 -49t41 -122q0 -108 -159 -550q61 -15 100.5 -46t58.5 -78t26 -93.5 t7 -110.5q0 -150 -47 -280t-132 -225t-211 -150t-278 -55q-111 0 -223 42q-149 57 -258 191.5t-109 286.5z" />
513
+ <glyph unicode="&#xf20a;" horiz-adv-x="2048" d="M785 528h207q-14 -158 -98.5 -248.5t-214.5 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-203q-5 64 -35.5 99t-81.5 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t40 -51.5t66 -18q95 0 109 139zM1497 528h206 q-14 -158 -98 -248.5t-214 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-204q-4 64 -35 99t-81 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t39.5 -51.5t65.5 -18q49 0 76.5 38t33.5 101zM1856 647q0 207 -15.5 307 t-60.5 161q-6 8 -13.5 14t-21.5 15t-16 11q-86 63 -697 63q-625 0 -710 -63q-5 -4 -17.5 -11.5t-21 -14t-14.5 -14.5q-45 -60 -60 -159.5t-15 -308.5q0 -208 15 -307.5t60 -160.5q6 -8 15 -15t20.5 -14t17.5 -12q44 -33 239.5 -49t470.5 -16q610 0 697 65q5 4 17 11t20.5 14 t13.5 16q46 60 61 159t15 309zM2048 1408v-1536h-2048v1536h2048z" />
514
+ <glyph unicode="&#xf20b;" d="M992 912v-496q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v496q0 112 -80 192t-192 80h-272v-1152q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v1344q0 14 9 23t23 9h464q135 0 249 -66.5t180.5 -180.5t66.5 -249zM1376 1376v-880q0 -135 -66.5 -249t-180.5 -180.5 t-249 -66.5h-464q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h160q14 0 23 -9t9 -23v-768h272q112 0 192 80t80 192v880q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
515
+ <glyph unicode="&#xf20c;" d="M1311 694v-114q0 -24 -13.5 -38t-37.5 -14h-202q-24 0 -38 14t-14 38v114q0 24 14 38t38 14h202q24 0 37.5 -14t13.5 -38zM821 464v250q0 53 -32.5 85.5t-85.5 32.5h-133q-68 0 -96 -52q-28 52 -96 52h-130q-53 0 -85.5 -32.5t-32.5 -85.5v-250q0 -22 21 -22h55 q22 0 22 22v230q0 24 13.5 38t38.5 14h94q24 0 38 -14t14 -38v-230q0 -22 21 -22h54q22 0 22 22v230q0 24 14 38t38 14h97q24 0 37.5 -14t13.5 -38v-230q0 -22 22 -22h55q21 0 21 22zM1410 560v154q0 53 -33 85.5t-86 32.5h-264q-53 0 -86 -32.5t-33 -85.5v-410 q0 -21 22 -21h55q21 0 21 21v180q31 -42 94 -42h191q53 0 86 32.5t33 85.5zM1536 1176v-1072q0 -96 -68 -164t-164 -68h-1072q-96 0 -164 68t-68 164v1072q0 96 68 164t164 68h1072q96 0 164 -68t68 -164z" />
516
+ <glyph unicode="&#xf20d;" horiz-adv-x="1792" />
517
+ <glyph unicode="&#xf20e;" horiz-adv-x="1792" />
518
+ <glyph unicode="&#xf500;" horiz-adv-x="1792" />
519
+ </font>
520
+ </defs></svg>
css/font-awesome/fonts/fontawesome-webfont.ttf ADDED
Binary file
css/font-awesome/fonts/fontawesome-webfont.woff ADDED
Binary file
css/font-awesome/less/bordered-pulled.less ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Bordered & Pulled
2
+ // -------------------------
3
+
4
+ .@{fa-css-prefix}-border {
5
+ padding: .2em .25em .15em;
6
+ border: solid .08em @fa-border-color;
7
+ border-radius: .1em;
8
+ }
9
+
10
+ .pull-right { float: right; }
11
+ .pull-left { float: left; }
12
+
13
+ .@{fa-css-prefix} {
14
+ &.pull-left { margin-right: .3em; }
15
+ &.pull-right { margin-left: .3em; }
16
+ }
css/font-awesome/less/core.less ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ // Base Class Definition
2
+ // -------------------------
3
+
4
+ .@{fa-css-prefix} {
5
+ display: inline-block;
6
+ font: normal normal normal 14px/1 FontAwesome; // shortening font declaration
7
+ font-size: inherit; // can't have font-size inherit on line above, so need to override
8
+ text-rendering: auto; // optimizelegibility throws things off #1094
9
+ -webkit-font-smoothing: antialiased;
10
+ -moz-osx-font-smoothing: grayscale;
11
+ }
css/font-awesome/less/fixed-width.less ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ // Fixed Width Icons
2
+ // -------------------------
3
+ .@{fa-css-prefix}-fw {
4
+ width: (18em / 14);
5
+ text-align: center;
6
+ }
css/font-awesome/less/font-awesome.less ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
3
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4
+ */
5
+
6
+ @import "variables.less";
7
+ @import "mixins.less";
8
+ @import "path.less";
9
+ @import "core.less";
10
+ @import "larger.less";
11
+ @import "fixed-width.less";
12
+ @import "list.less";
13
+ @import "bordered-pulled.less";
14
+ @import "spinning.less";
15
+ @import "rotated-flipped.less";
16
+ @import "stacked.less";
17
+ @import "icons.less";
css/font-awesome/less/icons.less ADDED
@@ -0,0 +1,552 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
2
+ readers do not read off random characters that represent icons */
3
+
4
+ .@{fa-css-prefix}-glass:before { content: @fa-var-glass; }
5
+ .@{fa-css-prefix}-music:before { content: @fa-var-music; }
6
+ .@{fa-css-prefix}-search:before { content: @fa-var-search; }
7
+ .@{fa-css-prefix}-envelope-o:before { content: @fa-var-envelope-o; }
8
+ .@{fa-css-prefix}-heart:before { content: @fa-var-heart; }
9
+ .@{fa-css-prefix}-star:before { content: @fa-var-star; }
10
+ .@{fa-css-prefix}-star-o:before { content: @fa-var-star-o; }
11
+ .@{fa-css-prefix}-user:before { content: @fa-var-user; }
12
+ .@{fa-css-prefix}-film:before { content: @fa-var-film; }
13
+ .@{fa-css-prefix}-th-large:before { content: @fa-var-th-large; }
14
+ .@{fa-css-prefix}-th:before { content: @fa-var-th; }
15
+ .@{fa-css-prefix}-th-list:before { content: @fa-var-th-list; }
16
+ .@{fa-css-prefix}-check:before { content: @fa-var-check; }
17
+ .@{fa-css-prefix}-remove:before,
18
+ .@{fa-css-prefix}-close:before,
19
+ .@{fa-css-prefix}-times:before { content: @fa-var-times; }
20
+ .@{fa-css-prefix}-search-plus:before { content: @fa-var-search-plus; }
21
+ .@{fa-css-prefix}-search-minus:before { content: @fa-var-search-minus; }
22
+ .@{fa-css-prefix}-power-off:before { content: @fa-var-power-off; }
23
+ .@{fa-css-prefix}-signal:before { content: @fa-var-signal; }
24
+ .@{fa-css-prefix}-gear:before,
25
+ .@{fa-css-prefix}-cog:before { content: @fa-var-cog; }
26
+ .@{fa-css-prefix}-trash-o:before { content: @fa-var-trash-o; }
27
+ .@{fa-css-prefix}-home:before { content: @fa-var-home; }
28
+ .@{fa-css-prefix}-file-o:before { content: @fa-var-file-o; }
29
+ .@{fa-css-prefix}-clock-o:before { content: @fa-var-clock-o; }
30
+ .@{fa-css-prefix}-road:before { content: @fa-var-road; }
31
+ .@{fa-css-prefix}-download:before { content: @fa-var-download; }
32
+ .@{fa-css-prefix}-arrow-circle-o-down:before { content: @fa-var-arrow-circle-o-down; }
33
+ .@{fa-css-prefix}-arrow-circle-o-up:before { content: @fa-var-arrow-circle-o-up; }
34
+ .@{fa-css-prefix}-inbox:before { content: @fa-var-inbox; }
35
+ .@{fa-css-prefix}-play-circle-o:before { content: @fa-var-play-circle-o; }
36
+ .@{fa-css-prefix}-rotate-right:before,
37
+ .@{fa-css-prefix}-repeat:before { content: @fa-var-repeat; }
38
+ .@{fa-css-prefix}-refresh:before { content: @fa-var-refresh; }
39
+ .@{fa-css-prefix}-list-alt:before { content: @fa-var-list-alt; }
40
+ .@{fa-css-prefix}-lock:before { content: @fa-var-lock; }
41
+ .@{fa-css-prefix}-flag:before { content: @fa-var-flag; }
42
+ .@{fa-css-prefix}-headphones:before { content: @fa-var-headphones; }
43
+ .@{fa-css-prefix}-volume-off:before { content: @fa-var-volume-off; }
44
+ .@{fa-css-prefix}-volume-down:before { content: @fa-var-volume-down; }
45
+ .@{fa-css-prefix}-volume-up:before { content: @fa-var-volume-up; }
46
+ .@{fa-css-prefix}-qrcode:before { content: @fa-var-qrcode; }
47
+ .@{fa-css-prefix}-barcode:before { content: @fa-var-barcode; }
48
+ .@{fa-css-prefix}-tag:before { content: @fa-var-tag; }
49
+ .@{fa-css-prefix}-tags:before { content: @fa-var-tags; }
50
+ .@{fa-css-prefix}-book:before { content: @fa-var-book; }
51
+ .@{fa-css-prefix}-bookmark:before { content: @fa-var-bookmark; }
52
+ .@{fa-css-prefix}-print:before { content: @fa-var-print; }
53
+ .@{fa-css-prefix}-camera:before { content: @fa-var-camera; }
54
+ .@{fa-css-prefix}-font:before { content: @fa-var-font; }
55
+ .@{fa-css-prefix}-bold:before { content: @fa-var-bold; }
56
+ .@{fa-css-prefix}-italic:before { content: @fa-var-italic; }
57
+ .@{fa-css-prefix}-text-height:before { content: @fa-var-text-height; }
58
+ .@{fa-css-prefix}-text-width:before { content: @fa-var-text-width; }
59
+ .@{fa-css-prefix}-align-left:before { content: @fa-var-align-left; }
60
+ .@{fa-css-prefix}-align-center:before { content: @fa-var-align-center; }
61
+ .@{fa-css-prefix}-align-right:before { content: @fa-var-align-right; }
62
+ .@{fa-css-prefix}-align-justify:before { content: @fa-var-align-justify; }
63
+ .@{fa-css-prefix}-list:before { content: @fa-var-list; }
64
+ .@{fa-css-prefix}-dedent:before,
65
+ .@{fa-css-prefix}-outdent:before { content: @fa-var-outdent; }
66
+ .@{fa-css-prefix}-indent:before { content: @fa-var-indent; }
67
+ .@{fa-css-prefix}-video-camera:before { content: @fa-var-video-camera; }
68
+ .@{fa-css-prefix}-photo:before,
69
+ .@{fa-css-prefix}-image:before,
70
+ .@{fa-css-prefix}-picture-o:before { content: @fa-var-picture-o; }
71
+ .@{fa-css-prefix}-pencil:before { content: @fa-var-pencil; }
72
+ .@{fa-css-prefix}-map-marker:before { content: @fa-var-map-marker; }
73
+ .@{fa-css-prefix}-adjust:before { content: @fa-var-adjust; }
74
+ .@{fa-css-prefix}-tint:before { content: @fa-var-tint; }
75
+ .@{fa-css-prefix}-edit:before,
76
+ .@{fa-css-prefix}-pencil-square-o:before { content: @fa-var-pencil-square-o; }
77
+ .@{fa-css-prefix}-share-square-o:before { content: @fa-var-share-square-o; }
78
+ .@{fa-css-prefix}-check-square-o:before { content: @fa-var-check-square-o; }
79
+ .@{fa-css-prefix}-arrows:before { content: @fa-var-arrows; }
80
+ .@{fa-css-prefix}-step-backward:before { content: @fa-var-step-backward; }
81
+ .@{fa-css-prefix}-fast-backward:before { content: @fa-var-fast-backward; }
82
+ .@{fa-css-prefix}-backward:before { content: @fa-var-backward; }
83
+ .@{fa-css-prefix}-play:before { content: @fa-var-play; }
84
+ .@{fa-css-prefix}-pause:before { content: @fa-var-pause; }
85
+ .@{fa-css-prefix}-stop:before { content: @fa-var-stop; }
86
+ .@{fa-css-prefix}-forward:before { content: @fa-var-forward; }
87
+ .@{fa-css-prefix}-fast-forward:before { content: @fa-var-fast-forward; }
88
+ .@{fa-css-prefix}-step-forward:before { content: @fa-var-step-forward; }
89
+ .@{fa-css-prefix}-eject:before { content: @fa-var-eject; }
90
+ .@{fa-css-prefix}-chevron-left:before { content: @fa-var-chevron-left; }
91
+ .@{fa-css-prefix}-chevron-right:before { content: @fa-var-chevron-right; }
92
+ .@{fa-css-prefix}-plus-circle:before { content: @fa-var-plus-circle; }
93
+ .@{fa-css-prefix}-minus-circle:before { content: @fa-var-minus-circle; }
94
+ .@{fa-css-prefix}-times-circle:before { content: @fa-var-times-circle; }
95
+ .@{fa-css-prefix}-check-circle:before { content: @fa-var-check-circle; }
96
+ .@{fa-css-prefix}-question-circle:before { content: @fa-var-question-circle; }
97
+ .@{fa-css-prefix}-info-circle:before { content: @fa-var-info-circle; }
98
+ .@{fa-css-prefix}-crosshairs:before { content: @fa-var-crosshairs; }
99
+ .@{fa-css-prefix}-times-circle-o:before { content: @fa-var-times-circle-o; }
100
+ .@{fa-css-prefix}-check-circle-o:before { content: @fa-var-check-circle-o; }
101
+ .@{fa-css-prefix}-ban:before { content: @fa-var-ban; }
102
+ .@{fa-css-prefix}-arrow-left:before { content: @fa-var-arrow-left; }
103
+ .@{fa-css-prefix}-arrow-right:before { content: @fa-var-arrow-right; }
104
+ .@{fa-css-prefix}-arrow-up:before { content: @fa-var-arrow-up; }
105
+ .@{fa-css-prefix}-arrow-down:before { content: @fa-var-arrow-down; }
106
+ .@{fa-css-prefix}-mail-forward:before,
107
+ .@{fa-css-prefix}-share:before { content: @fa-var-share; }
108
+ .@{fa-css-prefix}-expand:before { content: @fa-var-expand; }
109
+ .@{fa-css-prefix}-compress:before { content: @fa-var-compress; }
110
+ .@{fa-css-prefix}-plus:before { content: @fa-var-plus; }
111
+ .@{fa-css-prefix}-minus:before { content: @fa-var-minus; }
112
+ .@{fa-css-prefix}-asterisk:before { content: @fa-var-asterisk; }
113
+ .@{fa-css-prefix}-exclamation-circle:before { content: @fa-var-exclamation-circle; }
114
+ .@{fa-css-prefix}-gift:before { content: @fa-var-gift; }
115
+ .@{fa-css-prefix}-leaf:before { content: @fa-var-leaf; }
116
+ .@{fa-css-prefix}-fire:before { content: @fa-var-fire; }
117
+ .@{fa-css-prefix}-eye:before { content: @fa-var-eye; }
118
+ .@{fa-css-prefix}-eye-slash:before { content: @fa-var-eye-slash; }
119
+ .@{fa-css-prefix}-warning:before,
120
+ .@{fa-css-prefix}-exclamation-triangle:before { content: @fa-var-exclamation-triangle; }
121
+ .@{fa-css-prefix}-plane:before { content: @fa-var-plane; }
122
+ .@{fa-css-prefix}-calendar:before { content: @fa-var-calendar; }
123
+ .@{fa-css-prefix}-random:before { content: @fa-var-random; }
124
+ .@{fa-css-prefix}-comment:before { content: @fa-var-comment; }
125
+ .@{fa-css-prefix}-magnet:before { content: @fa-var-magnet; }
126
+ .@{fa-css-prefix}-chevron-up:before { content: @fa-var-chevron-up; }
127
+ .@{fa-css-prefix}-chevron-down:before { content: @fa-var-chevron-down; }
128
+ .@{fa-css-prefix}-retweet:before { content: @fa-var-retweet; }
129
+ .@{fa-css-prefix}-shopping-cart:before { content: @fa-var-shopping-cart; }
130
+ .@{fa-css-prefix}-folder:before { content: @fa-var-folder; }
131
+ .@{fa-css-prefix}-folder-open:before { content: @fa-var-folder-open; }
132
+ .@{fa-css-prefix}-arrows-v:before { content: @fa-var-arrows-v; }
133
+ .@{fa-css-prefix}-arrows-h:before { content: @fa-var-arrows-h; }
134
+ .@{fa-css-prefix}-bar-chart-o:before,
135
+ .@{fa-css-prefix}-bar-chart:before { content: @fa-var-bar-chart; }
136
+ .@{fa-css-prefix}-twitter-square:before { content: @fa-var-twitter-square; }
137
+ .@{fa-css-prefix}-facebook-square:before { content: @fa-var-facebook-square; }
138
+ .@{fa-css-prefix}-camera-retro:before { content: @fa-var-camera-retro; }
139
+ .@{fa-css-prefix}-key:before { content: @fa-var-key; }
140
+ .@{fa-css-prefix}-gears:before,
141
+ .@{fa-css-prefix}-cogs:before { content: @fa-var-cogs; }
142
+ .@{fa-css-prefix}-comments:before { content: @fa-var-comments; }
143
+ .@{fa-css-prefix}-thumbs-o-up:before { content: @fa-var-thumbs-o-up; }
144
+ .@{fa-css-prefix}-thumbs-o-down:before { content: @fa-var-thumbs-o-down; }
145
+ .@{fa-css-prefix}-star-half:before { content: @fa-var-star-half; }
146
+ .@{fa-css-prefix}-heart-o:before { content: @fa-var-heart-o; }
147
+ .@{fa-css-prefix}-sign-out:before { content: @fa-var-sign-out; }
148
+ .@{fa-css-prefix}-linkedin-square:before { content: @fa-var-linkedin-square; }
149
+ .@{fa-css-prefix}-thumb-tack:before { content: @fa-var-thumb-tack; }
150
+ .@{fa-css-prefix}-external-link:before { content: @fa-var-external-link; }
151
+ .@{fa-css-prefix}-sign-in:before { content: @fa-var-sign-in; }
152
+ .@{fa-css-prefix}-trophy:before { content: @fa-var-trophy; }
153
+ .@{fa-css-prefix}-github-square:before { content: @fa-var-github-square; }
154
+ .@{fa-css-prefix}-upload:before { content: @fa-var-upload; }
155
+ .@{fa-css-prefix}-lemon-o:before { content: @fa-var-lemon-o; }
156
+ .@{fa-css-prefix}-phone:before { content: @fa-var-phone; }
157
+ .@{fa-css-prefix}-square-o:before { content: @fa-var-square-o; }
158
+ .@{fa-css-prefix}-bookmark-o:before { content: @fa-var-bookmark-o; }
159
+ .@{fa-css-prefix}-phone-square:before { content: @fa-var-phone-square; }
160
+ .@{fa-css-prefix}-twitter:before { content: @fa-var-twitter; }
161
+ .@{fa-css-prefix}-facebook:before { content: @fa-var-facebook; }
162
+ .@{fa-css-prefix}-github:before { content: @fa-var-github; }
163
+ .@{fa-css-prefix}-unlock:before { content: @fa-var-unlock; }
164
+ .@{fa-css-prefix}-credit-card:before { content: @fa-var-credit-card; }
165
+ .@{fa-css-prefix}-rss:before { content: @fa-var-rss; }
166
+ .@{fa-css-prefix}-hdd-o:before { content: @fa-var-hdd-o; }
167
+ .@{fa-css-prefix}-bullhorn:before { content: @fa-var-bullhorn; }
168
+ .@{fa-css-prefix}-bell:before { content: @fa-var-bell; }
169
+ .@{fa-css-prefix}-certificate:before { content: @fa-var-certificate; }
170
+ .@{fa-css-prefix}-hand-o-right:before { content: @fa-var-hand-o-right; }
171
+ .@{fa-css-prefix}-hand-o-left:before { content: @fa-var-hand-o-left; }
172
+ .@{fa-css-prefix}-hand-o-up:before { content: @fa-var-hand-o-up; }
173
+ .@{fa-css-prefix}-hand-o-down:before { content: @fa-var-hand-o-down; }
174
+ .@{fa-css-prefix}-arrow-circle-left:before { content: @fa-var-arrow-circle-left; }
175
+ .@{fa-css-prefix}-arrow-circle-right:before { content: @fa-var-arrow-circle-right; }
176
+ .@{fa-css-prefix}-arrow-circle-up:before { content: @fa-var-arrow-circle-up; }
177
+ .@{fa-css-prefix}-arrow-circle-down:before { content: @fa-var-arrow-circle-down; }
178
+ .@{fa-css-prefix}-globe:before { content: @fa-var-globe; }
179
+ .@{fa-css-prefix}-wrench:before { content: @fa-var-wrench; }
180
+ .@{fa-css-prefix}-tasks:before { content: @fa-var-tasks; }
181
+ .@{fa-css-prefix}-filter:before { content: @fa-var-filter; }
182
+ .@{fa-css-prefix}-briefcase:before { content: @fa-var-briefcase; }
183
+ .@{fa-css-prefix}-arrows-alt:before { content: @fa-var-arrows-alt; }
184
+ .@{fa-css-prefix}-group:before,
185
+ .@{fa-css-prefix}-users:before { content: @fa-var-users; }
186
+ .@{fa-css-prefix}-chain:before,
187
+ .@{fa-css-prefix}-link:before { content: @fa-var-link; }
188
+ .@{fa-css-prefix}-cloud:before { content: @fa-var-cloud; }
189
+ .@{fa-css-prefix}-flask:before { content: @fa-var-flask; }
190
+ .@{fa-css-prefix}-cut:before,
191
+ .@{fa-css-prefix}-scissors:before { content: @fa-var-scissors; }
192
+ .@{fa-css-prefix}-copy:before,
193
+ .@{fa-css-prefix}-files-o:before { content: @fa-var-files-o; }
194
+ .@{fa-css-prefix}-paperclip:before { content: @fa-var-paperclip; }
195
+ .@{fa-css-prefix}-save:before,
196
+ .@{fa-css-prefix}-floppy-o:before { content: @fa-var-floppy-o; }
197
+ .@{fa-css-prefix}-square:before { content: @fa-var-square; }
198
+ .@{fa-css-prefix}-navicon:before,
199
+ .@{fa-css-prefix}-reorder:before,
200
+ .@{fa-css-prefix}-bars:before { content: @fa-var-bars; }
201
+ .@{fa-css-prefix}-list-ul:before { content: @fa-var-list-ul; }
202
+ .@{fa-css-prefix}-list-ol:before { content: @fa-var-list-ol; }
203
+ .@{fa-css-prefix}-strikethrough:before { content: @fa-var-strikethrough; }
204
+ .@{fa-css-prefix}-underline:before { content: @fa-var-underline; }
205
+ .@{fa-css-prefix}-table:before { content: @fa-var-table; }
206
+ .@{fa-css-prefix}-magic:before { content: @fa-var-magic; }
207
+ .@{fa-css-prefix}-truck:before { content: @fa-var-truck; }
208
+ .@{fa-css-prefix}-pinterest:before { content: @fa-var-pinterest; }
209
+ .@{fa-css-prefix}-pinterest-square:before { content: @fa-var-pinterest-square; }
210
+ .@{fa-css-prefix}-google-plus-square:before { content: @fa-var-google-plus-square; }
211
+ .@{fa-css-prefix}-google-plus:before { content: @fa-var-google-plus; }
212
+ .@{fa-css-prefix}-money:before { content: @fa-var-money; }
213
+ .@{fa-css-prefix}-caret-down:before { content: @fa-var-caret-down; }
214
+ .@{fa-css-prefix}-caret-up:before { content: @fa-var-caret-up; }
215
+ .@{fa-css-prefix}-caret-left:before { content: @fa-var-caret-left; }
216
+ .@{fa-css-prefix}-caret-right:before { content: @fa-var-caret-right; }
217
+ .@{fa-css-prefix}-columns:before { content: @fa-var-columns; }
218
+ .@{fa-css-prefix}-unsorted:before,
219
+ .@{fa-css-prefix}-sort:before { content: @fa-var-sort; }
220
+ .@{fa-css-prefix}-sort-down:before,
221
+ .@{fa-css-prefix}-sort-desc:before { content: @fa-var-sort-desc; }
222
+ .@{fa-css-prefix}-sort-up:before,
223
+ .@{fa-css-prefix}-sort-asc:before { content: @fa-var-sort-asc; }
224
+ .@{fa-css-prefix}-envelope:before { content: @fa-var-envelope; }
225
+ .@{fa-css-prefix}-linkedin:before { content: @fa-var-linkedin; }
226
+ .@{fa-css-prefix}-rotate-left:before,
227
+ .@{fa-css-prefix}-undo:before { content: @fa-var-undo; }
228
+ .@{fa-css-prefix}-legal:before,
229
+ .@{fa-css-prefix}-gavel:before { content: @fa-var-gavel; }
230
+ .@{fa-css-prefix}-dashboard:before,
231
+ .@{fa-css-prefix}-tachometer:before { content: @fa-var-tachometer; }
232
+ .@{fa-css-prefix}-comment-o:before { content: @fa-var-comment-o; }
233
+ .@{fa-css-prefix}-comments-o:before { content: @fa-var-comments-o; }
234
+ .@{fa-css-prefix}-flash:before,
235
+ .@{fa-css-prefix}-bolt:before { content: @fa-var-bolt; }
236
+ .@{fa-css-prefix}-sitemap:before { content: @fa-var-sitemap; }
237
+ .@{fa-css-prefix}-umbrella:before { content: @fa-var-umbrella; }
238
+ .@{fa-css-prefix}-paste:before,
239
+ .@{fa-css-prefix}-clipboard:before { content: @fa-var-clipboard; }
240
+ .@{fa-css-prefix}-lightbulb-o:before { content: @fa-var-lightbulb-o; }
241
+ .@{fa-css-prefix}-exchange:before { content: @fa-var-exchange; }
242
+ .@{fa-css-prefix}-cloud-download:before { content: @fa-var-cloud-download; }
243
+ .@{fa-css-prefix}-cloud-upload:before { content: @fa-var-cloud-upload; }
244
+ .@{fa-css-prefix}-user-md:before { content: @fa-var-user-md; }
245
+ .@{fa-css-prefix}-stethoscope:before { content: @fa-var-stethoscope; }
246
+ .@{fa-css-prefix}-suitcase:before { content: @fa-var-suitcase; }
247
+ .@{fa-css-prefix}-bell-o:before { content: @fa-var-bell-o; }
248
+ .@{fa-css-prefix}-coffee:before { content: @fa-var-coffee; }
249
+ .@{fa-css-prefix}-cutlery:before { content: @fa-var-cutlery; }
250
+ .@{fa-css-prefix}-file-text-o:before { content: @fa-var-file-text-o; }
251
+ .@{fa-css-prefix}-building-o:before { content: @fa-var-building-o; }
252
+ .@{fa-css-prefix}-hospital-o:before { content: @fa-var-hospital-o; }
253
+ .@{fa-css-prefix}-ambulance:before { content: @fa-var-ambulance; }
254
+ .@{fa-css-prefix}-medkit:before { content: @fa-var-medkit; }
255
+ .@{fa-css-prefix}-fighter-jet:before { content: @fa-var-fighter-jet; }
256
+ .@{fa-css-prefix}-beer:before { content: @fa-var-beer; }
257
+ .@{fa-css-prefix}-h-square:before { content: @fa-var-h-square; }
258
+ .@{fa-css-prefix}-plus-square:before { content: @fa-var-plus-square; }
259
+ .@{fa-css-prefix}-angle-double-left:before { content: @fa-var-angle-double-left; }
260
+ .@{fa-css-prefix}-angle-double-right:before { content: @fa-var-angle-double-right; }
261
+ .@{fa-css-prefix}-angle-double-up:before { content: @fa-var-angle-double-up; }
262
+ .@{fa-css-prefix}-angle-double-down:before { content: @fa-var-angle-double-down; }
263
+ .@{fa-css-prefix}-angle-left:before { content: @fa-var-angle-left; }
264
+ .@{fa-css-prefix}-angle-right:before { content: @fa-var-angle-right; }
265
+ .@{fa-css-prefix}-angle-up:before { content: @fa-var-angle-up; }
266
+ .@{fa-css-prefix}-angle-down:before { content: @fa-var-angle-down; }
267
+ .@{fa-css-prefix}-desktop:before { content: @fa-var-desktop; }
268
+ .@{fa-css-prefix}-laptop:before { content: @fa-var-laptop; }
269
+ .@{fa-css-prefix}-tablet:before { content: @fa-var-tablet; }
270
+ .@{fa-css-prefix}-mobile-phone:before,
271
+ .@{fa-css-prefix}-mobile:before { content: @fa-var-mobile; }
272
+ .@{fa-css-prefix}-circle-o:before { content: @fa-var-circle-o; }
273
+ .@{fa-css-prefix}-quote-left:before { content: @fa-var-quote-left; }
274
+ .@{fa-css-prefix}-quote-right:before { content: @fa-var-quote-right; }
275
+ .@{fa-css-prefix}-spinner:before { content: @fa-var-spinner; }
276
+ .@{fa-css-prefix}-circle:before { content: @fa-var-circle; }
277
+ .@{fa-css-prefix}-mail-reply:before,
278
+ .@{fa-css-prefix}-reply:before { content: @fa-var-reply; }
279
+ .@{fa-css-prefix}-github-alt:before { content: @fa-var-github-alt; }
280
+ .@{fa-css-prefix}-folder-o:before { content: @fa-var-folder-o; }
281
+ .@{fa-css-prefix}-folder-open-o:before { content: @fa-var-folder-open-o; }
282
+ .@{fa-css-prefix}-smile-o:before { content: @fa-var-smile-o; }
283
+ .@{fa-css-prefix}-frown-o:before { content: @fa-var-frown-o; }
284
+ .@{fa-css-prefix}-meh-o:before { content: @fa-var-meh-o; }
285
+ .@{fa-css-prefix}-gamepad:before { content: @fa-var-gamepad; }
286
+ .@{fa-css-prefix}-keyboard-o:before { content: @fa-var-keyboard-o; }
287
+ .@{fa-css-prefix}-flag-o:before { content: @fa-var-flag-o; }
288
+ .@{fa-css-prefix}-flag-checkered:before { content: @fa-var-flag-checkered; }
289
+ .@{fa-css-prefix}-terminal:before { content: @fa-var-terminal; }
290
+ .@{fa-css-prefix}-code:before { content: @fa-var-code; }
291
+ .@{fa-css-prefix}-mail-reply-all:before,
292
+ .@{fa-css-prefix}-reply-all:before { content: @fa-var-reply-all; }
293
+ .@{fa-css-prefix}-star-half-empty:before,
294
+ .@{fa-css-prefix}-star-half-full:before,
295
+ .@{fa-css-prefix}-star-half-o:before { content: @fa-var-star-half-o; }
296
+ .@{fa-css-prefix}-location-arrow:before { content: @fa-var-location-arrow; }
297
+ .@{fa-css-prefix}-crop:before { content: @fa-var-crop; }
298
+ .@{fa-css-prefix}-code-fork:before { content: @fa-var-code-fork; }
299
+ .@{fa-css-prefix}-unlink:before,
300
+ .@{fa-css-prefix}-chain-broken:before { content: @fa-var-chain-broken; }
301
+ .@{fa-css-prefix}-question:before { content: @fa-var-question; }
302
+ .@{fa-css-prefix}-info:before { content: @fa-var-info; }
303
+ .@{fa-css-prefix}-exclamation:before { content: @fa-var-exclamation; }
304
+ .@{fa-css-prefix}-superscript:before { content: @fa-var-superscript; }
305
+ .@{fa-css-prefix}-subscript:before { content: @fa-var-subscript; }
306
+ .@{fa-css-prefix}-eraser:before { content: @fa-var-eraser; }
307
+ .@{fa-css-prefix}-puzzle-piece:before { content: @fa-var-puzzle-piece; }
308
+ .@{fa-css-prefix}-microphone:before { content: @fa-var-microphone; }
309
+ .@{fa-css-prefix}-microphone-slash:before { content: @fa-var-microphone-slash; }
310
+ .@{fa-css-prefix}-shield:before { content: @fa-var-shield; }
311
+ .@{fa-css-prefix}-calendar-o:before { content: @fa-var-calendar-o; }
312
+ .@{fa-css-prefix}-fire-extinguisher:before { content: @fa-var-fire-extinguisher; }
313
+ .@{fa-css-prefix}-rocket:before { content: @fa-var-rocket; }
314
+ .@{fa-css-prefix}-maxcdn:before { content: @fa-var-maxcdn; }
315
+ .@{fa-css-prefix}-chevron-circle-left:before { content: @fa-var-chevron-circle-left; }
316
+ .@{fa-css-prefix}-chevron-circle-right:before { content: @fa-var-chevron-circle-right; }
317
+ .@{fa-css-prefix}-chevron-circle-up:before { content: @fa-var-chevron-circle-up; }
318
+ .@{fa-css-prefix}-chevron-circle-down:before { content: @fa-var-chevron-circle-down; }
319
+ .@{fa-css-prefix}-html5:before { content: @fa-var-html5; }
320
+ .@{fa-css-prefix}-css3:before { content: @fa-var-css3; }
321
+ .@{fa-css-prefix}-anchor:before { content: @fa-var-anchor; }
322
+ .@{fa-css-prefix}-unlock-alt:before { content: @fa-var-unlock-alt; }
323
+ .@{fa-css-prefix}-bullseye:before { content: @fa-var-bullseye; }
324
+ .@{fa-css-prefix}-ellipsis-h:before { content: @fa-var-ellipsis-h; }
325
+ .@{fa-css-prefix}-ellipsis-v:before { content: @fa-var-ellipsis-v; }
326
+ .@{fa-css-prefix}-rss-square:before { content: @fa-var-rss-square; }
327
+ .@{fa-css-prefix}-play-circle:before { content: @fa-var-play-circle; }
328
+ .@{fa-css-prefix}-ticket:before { content: @fa-var-ticket; }
329
+ .@{fa-css-prefix}-minus-square:before { content: @fa-var-minus-square; }
330
+ .@{fa-css-prefix}-minus-square-o:before { content: @fa-var-minus-square-o; }
331
+ .@{fa-css-prefix}-level-up:before { content: @fa-var-level-up; }
332
+ .@{fa-css-prefix}-level-down:before { content: @fa-var-level-down; }
333
+ .@{fa-css-prefix}-check-square:before { content: @fa-var-check-square; }
334
+ .@{fa-css-prefix}-pencil-square:before { content: @fa-var-pencil-square; }
335
+ .@{fa-css-prefix}-external-link-square:before { content: @fa-var-external-link-square; }
336
+ .@{fa-css-prefix}-share-square:before { content: @fa-var-share-square; }
337
+ .@{fa-css-prefix}-compass:before { content: @fa-var-compass; }
338
+ .@{fa-css-prefix}-toggle-down:before,
339
+ .@{fa-css-prefix}-caret-square-o-down:before { content: @fa-var-caret-square-o-down; }
340
+ .@{fa-css-prefix}-toggle-up:before,
341
+ .@{fa-css-prefix}-caret-square-o-up:before { content: @fa-var-caret-square-o-up; }
342
+ .@{fa-css-prefix}-toggle-right:before,
343
+ .@{fa-css-prefix}-caret-square-o-right:before { content: @fa-var-caret-square-o-right; }
344
+ .@{fa-css-prefix}-euro:before,
345
+ .@{fa-css-prefix}-eur:before { content: @fa-var-eur; }
346
+ .@{fa-css-prefix}-gbp:before { content: @fa-var-gbp; }
347
+ .@{fa-css-prefix}-dollar:before,
348
+ .@{fa-css-prefix}-usd:before { content: @fa-var-usd; }
349
+ .@{fa-css-prefix}-rupee:before,
350
+ .@{fa-css-prefix}-inr:before { content: @fa-var-inr; }
351
+ .@{fa-css-prefix}-cny:before,
352
+ .@{fa-css-prefix}-rmb:before,
353
+ .@{fa-css-prefix}-yen:before,
354
+ .@{fa-css-prefix}-jpy:before { content: @fa-var-jpy; }
355
+ .@{fa-css-prefix}-ruble:before,
356
+ .@{fa-css-prefix}-rouble:before,
357
+ .@{fa-css-prefix}-rub:before { content: @fa-var-rub; }
358
+ .@{fa-css-prefix}-won:before,
359
+ .@{fa-css-prefix}-krw:before { content: @fa-var-krw; }
360
+ .@{fa-css-prefix}-bitcoin:before,
361
+ .@{fa-css-prefix}-btc:before { content: @fa-var-btc; }
362
+ .@{fa-css-prefix}-file:before { content: @fa-var-file; }
363
+ .@{fa-css-prefix}-file-text:before { content: @fa-var-file-text; }
364
+ .@{fa-css-prefix}-sort-alpha-asc:before { content: @fa-var-sort-alpha-asc; }
365
+ .@{fa-css-prefix}-sort-alpha-desc:before { content: @fa-var-sort-alpha-desc; }
366
+ .@{fa-css-prefix}-sort-amount-asc:before { content: @fa-var-sort-amount-asc; }
367
+ .@{fa-css-prefix}-sort-amount-desc:before { content: @fa-var-sort-amount-desc; }
368
+ .@{fa-css-prefix}-sort-numeric-asc:before { content: @fa-var-sort-numeric-asc; }
369
+ .@{fa-css-prefix}-sort-numeric-desc:before { content: @fa-var-sort-numeric-desc; }
370
+ .@{fa-css-prefix}-thumbs-up:before { content: @fa-var-thumbs-up; }
371
+ .@{fa-css-prefix}-thumbs-down:before { content: @fa-var-thumbs-down; }
372
+ .@{fa-css-prefix}-youtube-square:before { content: @fa-var-youtube-square; }
373
+ .@{fa-css-prefix}-youtube:before { content: @fa-var-youtube; }
374
+ .@{fa-css-prefix}-xing:before { content: @fa-var-xing; }
375
+ .@{fa-css-prefix}-xing-square:before { content: @fa-var-xing-square; }
376
+ .@{fa-css-prefix}-youtube-play:before { content: @fa-var-youtube-play; }
377
+ .@{fa-css-prefix}-dropbox:before { content: @fa-var-dropbox; }
378
+ .@{fa-css-prefix}-stack-overflow:before { content: @fa-var-stack-overflow; }
379
+ .@{fa-css-prefix}-instagram:before { content: @fa-var-instagram; }
380
+ .@{fa-css-prefix}-flickr:before { content: @fa-var-flickr; }
381
+ .@{fa-css-prefix}-adn:before { content: @fa-var-adn; }
382
+ .@{fa-css-prefix}-bitbucket:before { content: @fa-var-bitbucket; }
383
+ .@{fa-css-prefix}-bitbucket-square:before { content: @fa-var-bitbucket-square; }
384
+ .@{fa-css-prefix}-tumblr:before { content: @fa-var-tumblr; }
385
+ .@{fa-css-prefix}-tumblr-square:before { content: @fa-var-tumblr-square; }
386
+ .@{fa-css-prefix}-long-arrow-down:before { content: @fa-var-long-arrow-down; }
387
+ .@{fa-css-prefix}-long-arrow-up:before { content: @fa-var-long-arrow-up; }
388
+ .@{fa-css-prefix}-long-arrow-left:before { content: @fa-var-long-arrow-left; }
389
+ .@{fa-css-prefix}-long-arrow-right:before { content: @fa-var-long-arrow-right; }
390
+ .@{fa-css-prefix}-apple:before { content: @fa-var-apple; }
391
+ .@{fa-css-prefix}-windows:before { content: @fa-var-windows; }
392
+ .@{fa-css-prefix}-android:before { content: @fa-var-android; }
393
+ .@{fa-css-prefix}-linux:before { content: @fa-var-linux; }
394
+ .@{fa-css-prefix}-dribbble:before { content: @fa-var-dribbble; }
395
+ .@{fa-css-prefix}-skype:before { content: @fa-var-skype; }
396
+ .@{fa-css-prefix}-foursquare:before { content: @fa-var-foursquare; }
397
+ .@{fa-css-prefix}-trello:before { content: @fa-var-trello; }
398
+ .@{fa-css-prefix}-female:before { content: @fa-var-female; }
399
+ .@{fa-css-prefix}-male:before { content: @fa-var-male; }
400
+ .@{fa-css-prefix}-gittip:before { content: @fa-var-gittip; }
401
+ .@{fa-css-prefix}-sun-o:before { content: @fa-var-sun-o; }
402
+ .@{fa-css-prefix}-moon-o:before { content: @fa-var-moon-o; }
403
+ .@{fa-css-prefix}-archive:before { content: @fa-var-archive; }
404
+ .@{fa-css-prefix}-bug:before { content: @fa-var-bug; }
405
+ .@{fa-css-prefix}-vk:before { content: @fa-var-vk; }
406
+ .@{fa-css-prefix}-weibo:before { content: @fa-var-weibo; }
407
+ .@{fa-css-prefix}-renren:before { content: @fa-var-renren; }
408
+ .@{fa-css-prefix}-pagelines:before { content: @fa-var-pagelines; }
409
+ .@{fa-css-prefix}-stack-exchange:before { content: @fa-var-stack-exchange; }
410
+ .@{fa-css-prefix}-arrow-circle-o-right:before { content: @fa-var-arrow-circle-o-right; }
411
+ .@{fa-css-prefix}-arrow-circle-o-left:before { content: @fa-var-arrow-circle-o-left; }
412
+ .@{fa-css-prefix}-toggle-left:before,
413
+ .@{fa-css-prefix}-caret-square-o-left:before { content: @fa-var-caret-square-o-left; }
414
+ .@{fa-css-prefix}-dot-circle-o:before { content: @fa-var-dot-circle-o; }
415
+ .@{fa-css-prefix}-wheelchair:before { content: @fa-var-wheelchair; }
416
+ .@{fa-css-prefix}-vimeo-square:before { content: @fa-var-vimeo-square; }
417
+ .@{fa-css-prefix}-turkish-lira:before,
418
+ .@{fa-css-prefix}-try:before { content: @fa-var-try; }
419
+ .@{fa-css-prefix}-plus-square-o:before { content: @fa-var-plus-square-o; }
420
+ .@{fa-css-prefix}-space-shuttle:before { content: @fa-var-space-shuttle; }
421
+ .@{fa-css-prefix}-slack:before { content: @fa-var-slack; }
422
+ .@{fa-css-prefix}-envelope-square:before { content: @fa-var-envelope-square; }
423
+ .@{fa-css-prefix}-wordpress:before { content: @fa-var-wordpress; }
424
+ .@{fa-css-prefix}-openid:before { content: @fa-var-openid; }
425
+ .@{fa-css-prefix}-institution:before,
426
+ .@{fa-css-prefix}-bank:before,
427
+ .@{fa-css-prefix}-university:before { content: @fa-var-university; }
428
+ .@{fa-css-prefix}-mortar-board:before,
429
+ .@{fa-css-prefix}-graduation-cap:before { content: @fa-var-graduation-cap; }
430
+ .@{fa-css-prefix}-yahoo:before { content: @fa-var-yahoo; }
431
+ .@{fa-css-prefix}-google:before { content: @fa-var-google; }
432
+ .@{fa-css-prefix}-reddit:before { content: @fa-var-reddit; }
433
+ .@{fa-css-prefix}-reddit-square:before { content: @fa-var-reddit-square; }
434
+ .@{fa-css-prefix}-stumbleupon-circle:before { content: @fa-var-stumbleupon-circle; }
435
+ .@{fa-css-prefix}-stumbleupon:before { content: @fa-var-stumbleupon; }
436
+ .@{fa-css-prefix}-delicious:before { content: @fa-var-delicious; }
437
+ .@{fa-css-prefix}-digg:before { content: @fa-var-digg; }
438
+ .@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; }
439
+ .@{fa-css-prefix}-pied-piper-alt:before { content: @fa-var-pied-piper-alt; }
440
+ .@{fa-css-prefix}-drupal:before { content: @fa-var-drupal; }
441
+ .@{fa-css-prefix}-joomla:before { content: @fa-var-joomla; }
442
+ .@{fa-css-prefix}-language:before { content: @fa-var-language; }
443
+ .@{fa-css-prefix}-fax:before { content: @fa-var-fax; }
444
+ .@{fa-css-prefix}-building:before { content: @fa-var-building; }
445
+ .@{fa-css-prefix}-child:before { content: @fa-var-child; }
446
+ .@{fa-css-prefix}-paw:before { content: @fa-var-paw; }
447
+ .@{fa-css-prefix}-spoon:before { content: @fa-var-spoon; }
448
+ .@{fa-css-prefix}-cube:before { content: @fa-var-cube; }
449
+ .@{fa-css-prefix}-cubes:before { content: @fa-var-cubes; }
450
+ .@{fa-css-prefix}-behance:before { content: @fa-var-behance; }
451
+ .@{fa-css-prefix}-behance-square:before { content: @fa-var-behance-square; }
452
+ .@{fa-css-prefix}-steam:before { content: @fa-var-steam; }
453
+ .@{fa-css-prefix}-steam-square:before { content: @fa-var-steam-square; }
454
+ .@{fa-css-prefix}-recycle:before { content: @fa-var-recycle; }
455
+ .@{fa-css-prefix}-automobile:before,
456
+ .@{fa-css-prefix}-car:before { content: @fa-var-car; }
457
+ .@{fa-css-prefix}-cab:before,
458
+ .@{fa-css-prefix}-taxi:before { content: @fa-var-taxi; }
459
+ .@{fa-css-prefix}-tree:before { content: @fa-var-tree; }
460
+ .@{fa-css-prefix}-spotify:before { content: @fa-var-spotify; }
461
+ .@{fa-css-prefix}-deviantart:before { content: @fa-var-deviantart; }
462
+ .@{fa-css-prefix}-soundcloud:before { content: @fa-var-soundcloud; }
463
+ .@{fa-css-prefix}-database:before { content: @fa-var-database; }
464
+ .@{fa-css-prefix}-file-pdf-o:before { content: @fa-var-file-pdf-o; }
465
+ .@{fa-css-prefix}-file-word-o:before { content: @fa-var-file-word-o; }
466
+ .@{fa-css-prefix}-file-excel-o:before { content: @fa-var-file-excel-o; }
467
+ .@{fa-css-prefix}-file-powerpoint-o:before { content: @fa-var-file-powerpoint-o; }
468
+ .@{fa-css-prefix}-file-photo-o:before,
469
+ .@{fa-css-prefix}-file-picture-o:before,
470
+ .@{fa-css-prefix}-file-image-o:before { content: @fa-var-file-image-o; }
471
+ .@{fa-css-prefix}-file-zip-o:before,
472
+ .@{fa-css-prefix}-file-archive-o:before { content: @fa-var-file-archive-o; }
473
+ .@{fa-css-prefix}-file-sound-o:before,
474
+ .@{fa-css-prefix}-file-audio-o:before { content: @fa-var-file-audio-o; }
475
+ .@{fa-css-prefix}-file-movie-o:before,
476
+ .@{fa-css-prefix}-file-video-o:before { content: @fa-var-file-video-o; }
477
+ .@{fa-css-prefix}-file-code-o:before { content: @fa-var-file-code-o; }
478
+ .@{fa-css-prefix}-vine:before { content: @fa-var-vine; }
479
+ .@{fa-css-prefix}-codepen:before { content: @fa-var-codepen; }
480
+ .@{fa-css-prefix}-jsfiddle:before { content: @fa-var-jsfiddle; }
481
+ .@{fa-css-prefix}-life-bouy:before,
482
+ .@{fa-css-prefix}-life-buoy:before,
483
+ .@{fa-css-prefix}-life-saver:before,
484
+ .@{fa-css-prefix}-support:before,
485
+ .@{fa-css-prefix}-life-ring:before { content: @fa-var-life-ring; }
486
+ .@{fa-css-prefix}-circle-o-notch:before { content: @fa-var-circle-o-notch; }
487
+ .@{fa-css-prefix}-ra:before,
488
+ .@{fa-css-prefix}-rebel:before { content: @fa-var-rebel; }
489
+ .@{fa-css-prefix}-ge:before,
490
+ .@{fa-css-prefix}-empire:before { content: @fa-var-empire; }
491
+ .@{fa-css-prefix}-git-square:before { content: @fa-var-git-square; }
492
+ .@{fa-css-prefix}-git:before { content: @fa-var-git; }
493
+ .@{fa-css-prefix}-hacker-news:before { content: @fa-var-hacker-news; }
494
+ .@{fa-css-prefix}-tencent-weibo:before { content: @fa-var-tencent-weibo; }
495
+ .@{fa-css-prefix}-qq:before { content: @fa-var-qq; }
496
+ .@{fa-css-prefix}-wechat:before,
497
+ .@{fa-css-prefix}-weixin:before { content: @fa-var-weixin; }
498
+ .@{fa-css-prefix}-send:before,
499
+ .@{fa-css-prefix}-paper-plane:before { content: @fa-var-paper-plane; }
500
+ .@{fa-css-prefix}-send-o:before,
501
+ .@{fa-css-prefix}-paper-plane-o:before { content: @fa-var-paper-plane-o; }
502
+ .@{fa-css-prefix}-history:before { content: @fa-var-history; }
503
+ .@{fa-css-prefix}-circle-thin:before { content: @fa-var-circle-thin; }
504
+ .@{fa-css-prefix}-header:before { content: @fa-var-header; }
505
+ .@{fa-css-prefix}-paragraph:before { content: @fa-var-paragraph; }
506
+ .@{fa-css-prefix}-sliders:before { content: @fa-var-sliders; }
507
+ .@{fa-css-prefix}-share-alt:before { content: @fa-var-share-alt; }
508
+ .@{fa-css-prefix}-share-alt-square:before { content: @fa-var-share-alt-square; }
509
+ .@{fa-css-prefix}-bomb:before { content: @fa-var-bomb; }
510
+ .@{fa-css-prefix}-soccer-ball-o:before,
511
+ .@{fa-css-prefix}-futbol-o:before { content: @fa-var-futbol-o; }
512
+ .@{fa-css-prefix}-tty:before { content: @fa-var-tty; }
513
+ .@{fa-css-prefix}-binoculars:before { content: @fa-var-binoculars; }
514
+ .@{fa-css-prefix}-plug:before { content: @fa-var-plug; }
515
+ .@{fa-css-prefix}-slideshare:before { content: @fa-var-slideshare; }
516
+ .@{fa-css-prefix}-twitch:before { content: @fa-var-twitch; }
517
+ .@{fa-css-prefix}-yelp:before { content: @fa-var-yelp; }
518
+ .@{fa-css-prefix}-newspaper-o:before { content: @fa-var-newspaper-o; }
519
+ .@{fa-css-prefix}-wifi:before { content: @fa-var-wifi; }
520
+ .@{fa-css-prefix}-calculator:before { content: @fa-var-calculator; }
521
+ .@{fa-css-prefix}-paypal:before { content: @fa-var-paypal; }
522
+ .@{fa-css-prefix}-google-wallet:before { content: @fa-var-google-wallet; }
523
+ .@{fa-css-prefix}-cc-visa:before { content: @fa-var-cc-visa; }
524
+ .@{fa-css-prefix}-cc-mastercard:before { content: @fa-var-cc-mastercard; }
525
+ .@{fa-css-prefix}-cc-discover:before { content: @fa-var-cc-discover; }
526
+ .@{fa-css-prefix}-cc-amex:before { content: @fa-var-cc-amex; }
527
+ .@{fa-css-prefix}-cc-paypal:before { content: @fa-var-cc-paypal; }
528
+ .@{fa-css-prefix}-cc-stripe:before { content: @fa-var-cc-stripe; }
529
+ .@{fa-css-prefix}-bell-slash:before { content: @fa-var-bell-slash; }
530
+ .@{fa-css-prefix}-bell-slash-o:before { content: @fa-var-bell-slash-o; }
531
+ .@{fa-css-prefix}-trash:before { content: @fa-var-trash; }
532
+ .@{fa-css-prefix}-copyright:before { content: @fa-var-copyright; }
533
+ .@{fa-css-prefix}-at:before { content: @fa-var-at; }
534
+ .@{fa-css-prefix}-eyedropper:before { content: @fa-var-eyedropper; }
535
+ .@{fa-css-prefix}-paint-brush:before { content: @fa-var-paint-brush; }
536
+ .@{fa-css-prefix}-birthday-cake:before { content: @fa-var-birthday-cake; }
537
+ .@{fa-css-prefix}-area-chart:before { content: @fa-var-area-chart; }
538
+ .@{fa-css-prefix}-pie-chart:before { content: @fa-var-pie-chart; }
539
+ .@{fa-css-prefix}-line-chart:before { content: @fa-var-line-chart; }
540
+ .@{fa-css-prefix}-lastfm:before { content: @fa-var-lastfm; }
541
+ .@{fa-css-prefix}-lastfm-square:before { content: @fa-var-lastfm-square; }
542
+ .@{fa-css-prefix}-toggle-off:before { content: @fa-var-toggle-off; }
543
+ .@{fa-css-prefix}-toggle-on:before { content: @fa-var-toggle-on; }
544
+ .@{fa-css-prefix}-bicycle:before { content: @fa-var-bicycle; }
545
+ .@{fa-css-prefix}-bus:before { content: @fa-var-bus; }
546
+ .@{fa-css-prefix}-ioxhost:before { content: @fa-var-ioxhost; }
547
+ .@{fa-css-prefix}-angellist:before { content: @fa-var-angellist; }
548
+ .@{fa-css-prefix}-cc:before { content: @fa-var-cc; }
549
+ .@{fa-css-prefix}-shekel:before,
550
+ .@{fa-css-prefix}-sheqel:before,
551
+ .@{fa-css-prefix}-ils:before { content: @fa-var-ils; }
552
+ .@{fa-css-prefix}-meanpath:before { content: @fa-var-meanpath; }
css/font-awesome/less/larger.less ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Icon Sizes
2
+ // -------------------------
3
+
4
+ /* makes the font 33% larger relative to the icon container */
5
+ .@{fa-css-prefix}-lg {
6
+ font-size: (4em / 3);
7
+ line-height: (3em / 4);
8
+ vertical-align: -15%;
9
+ }
10
+ .@{fa-css-prefix}-2x { font-size: 2em; }
11
+ .@{fa-css-prefix}-3x { font-size: 3em; }
12
+ .@{fa-css-prefix}-4x { font-size: 4em; }
13
+ .@{fa-css-prefix}-5x { font-size: 5em; }
css/font-awesome/less/list.less ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // List Icons
2
+ // -------------------------
3
+
4
+ .@{fa-css-prefix}-ul {
5
+ padding-left: 0;
6
+ margin-left: @fa-li-width;
7
+ list-style-type: none;
8
+ > li { position: relative; }
9
+ }
10
+ .@{fa-css-prefix}-li {
11
+ position: absolute;
12
+ left: -@fa-li-width;
13
+ width: @fa-li-width;
14
+ top: (2em / 14);
15
+ text-align: center;
16
+ &.@{fa-css-prefix}-lg {
17
+ left: (-@fa-li-width + (4em / 14));
18
+ }
19
+ }
css/font-awesome/less/mixins.less ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Mixins
2
+ // --------------------------
3
+
4
+ .fa-icon() {
5
+ display: inline-block;
6
+ font: normal normal normal 14px/1 FontAwesome; // shortening font declaration
7
+ font-size: inherit; // can't have font-size inherit on line above, so need to override
8
+ text-rendering: auto; // optimizelegibility throws things off #1094
9
+ -webkit-font-smoothing: antialiased;
10
+ -moz-osx-font-smoothing: grayscale;
11
+ }
12
+
13
+ .fa-icon-rotate(@degrees, @rotation) {
14
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation);
15
+ -webkit-transform: rotate(@degrees);
16
+ -ms-transform: rotate(@degrees);
17
+ transform: rotate(@degrees);
18
+ }
19
+
20
+ .fa-icon-flip(@horiz, @vert, @rotation) {
21
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation, mirror=1);
22
+ -webkit-transform: scale(@horiz, @vert);
23
+ -ms-transform: scale(@horiz, @vert);
24
+ transform: scale(@horiz, @vert);
25
+ }
css/font-awesome/less/path.less ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* FONT PATH
2
+ * -------------------------- */
3
+
4
+ @font-face {
5
+ font-family: 'FontAwesome';
6
+ src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}');
7
+ src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'),
8
+ url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'),
9
+ url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'),
10
+ url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg');
11
+ // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
12
+ font-weight: normal;
13
+ font-style: normal;
14
+ }
css/font-awesome/less/rotated-flipped.less ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Rotated & Flipped Icons
2
+ // -------------------------
3
+
4
+ .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); }
5
+ .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }
6
+ .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }
7
+
8
+ .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }
9
+ .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); }
10
+
11
+ // Hook for IE8-9
12
+ // -------------------------
13
+
14
+ :root .@{fa-css-prefix}-rotate-90,
15
+ :root .@{fa-css-prefix}-rotate-180,
16
+ :root .@{fa-css-prefix}-rotate-270,
17
+ :root .@{fa-css-prefix}-flip-horizontal,
18
+ :root .@{fa-css-prefix}-flip-vertical {
19
+ filter: none;
20
+ }
css/font-awesome/less/spinning.less ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Spinning Icons
2
+ // --------------------------
3
+
4
+ .@{fa-css-prefix}-spin {
5
+ -webkit-animation: fa-spin 2s infinite linear;
6
+ animation: fa-spin 2s infinite linear;
7
+ }
8
+
9
+ @-webkit-keyframes fa-spin {
10
+ 0% {
11
+ -webkit-transform: rotate(0deg);
12
+ transform: rotate(0deg);
13
+ }
14
+ 100% {
15
+ -webkit-transform: rotate(359deg);
16
+ transform: rotate(359deg);
17
+ }
18
+ }
19
+
20
+ @keyframes fa-spin {
21
+ 0% {
22
+ -webkit-transform: rotate(0deg);
23
+ transform: rotate(0deg);
24
+ }
25
+ 100% {
26
+ -webkit-transform: rotate(359deg);
27
+ transform: rotate(359deg);
28
+ }
29
+ }
css/font-awesome/less/stacked.less ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Stacked Icons
2
+ // -------------------------
3
+
4
+ .@{fa-css-prefix}-stack {
5
+ position: relative;
6
+ display: inline-block;
7
+ width: 2em;
8
+ height: 2em;
9
+ line-height: 2em;
10
+ vertical-align: middle;
11
+ }
12
+ .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {
13
+ position: absolute;
14
+ left: 0;
15
+ width: 100%;
16
+ text-align: center;
17
+ }
18
+ .@{fa-css-prefix}-stack-1x { line-height: inherit; }
19
+ .@{fa-css-prefix}-stack-2x { font-size: 2em; }
20
+ .@{fa-css-prefix}-inverse { color: @fa-inverse; }
css/font-awesome/less/variables.less ADDED
@@ -0,0 +1,561 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Variables
2
+ // --------------------------
3
+
4
+ @fa-font-path: "../fonts";
5
+ //@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts"; // for referencing Bootstrap CDN font files directly
6
+ @fa-css-prefix: fa;
7
+ @fa-version: "4.2.0";
8
+ @fa-border-color: #eee;
9
+ @fa-inverse: #fff;
10
+ @fa-li-width: (30em / 14);
11
+
12
+ @fa-var-adjust: "\f042";
13
+ @fa-var-adn: "\f170";
14
+ @fa-var-align-center: "\f037";
15
+ @fa-var-align-justify: "\f039";
16
+ @fa-var-align-left: "\f036";
17
+ @fa-var-align-right: "\f038";
18
+ @fa-var-ambulance: "\f0f9";
19
+ @fa-var-anchor: "\f13d";
20
+ @fa-var-android: "\f17b";
21
+ @fa-var-angellist: "\f209";
22
+ @fa-var-angle-double-down: "\f103";
23
+ @fa-var-angle-double-left: "\f100";
24
+ @fa-var-angle-double-right: "\f101";
25
+ @fa-var-angle-double-up: "\f102";
26
+ @fa-var-angle-down: "\f107";
27
+ @fa-var-angle-left: "\f104";
28
+ @fa-var-angle-right: "\f105";
29
+ @fa-var-angle-up: "\f106";
30
+ @fa-var-apple: "\f179";
31
+ @fa-var-archive: "\f187";
32
+ @fa-var-area-chart: "\f1fe";
33
+ @fa-var-arrow-circle-down: "\f0ab";
34
+ @fa-var-arrow-circle-left: "\f0a8";
35
+ @fa-var-arrow-circle-o-down: "\f01a";
36
+ @fa-var-arrow-circle-o-left: "\f190";
37
+ @fa-var-arrow-circle-o-right: "\f18e";
38
+ @fa-var-arrow-circle-o-up: "\f01b";
39
+ @fa-var-arrow-circle-right: "\f0a9";
40
+ @fa-var-arrow-circle-up: "\f0aa";
41
+ @fa-var-arrow-down: "\f063";
42
+ @fa-var-arrow-left: "\f060";
43
+ @fa-var-arrow-right: "\f061";
44
+ @fa-var-arrow-up: "\f062";
45
+ @fa-var-arrows: "\f047";
46
+ @fa-var-arrows-alt: "\f0b2";
47
+ @fa-var-arrows-h: "\f07e";
48
+ @fa-var-arrows-v: "\f07d";
49
+ @fa-var-asterisk: "\f069";
50
+ @fa-var-at: "\f1fa";
51
+ @fa-var-automobile: "\f1b9";
52
+ @fa-var-backward: "\f04a";
53
+ @fa-var-ban: "\f05e";
54
+ @fa-var-bank: "\f19c";
55
+ @fa-var-bar-chart: "\f080";
56
+ @fa-var-bar-chart-o: "\f080";
57
+ @fa-var-barcode: "\f02a";
58
+ @fa-var-bars: "\f0c9";
59
+ @fa-var-beer: "\f0fc";
60
+ @fa-var-behance: "\f1b4";
61
+ @fa-var-behance-square: "\f1b5";
62
+ @fa-var-bell: "\f0f3";
63
+ @fa-var-bell-o: "\f0a2";
64
+ @fa-var-bell-slash: "\f1f6";
65
+ @fa-var-bell-slash-o: "\f1f7";
66
+ @fa-var-bicycle: "\f206";
67
+ @fa-var-binoculars: "\f1e5";
68
+ @fa-var-birthday-cake: "\f1fd";
69
+ @fa-var-bitbucket: "\f171";
70
+ @fa-var-bitbucket-square: "\f172";
71
+ @fa-var-bitcoin: "\f15a";
72
+ @fa-var-bold: "\f032";
73
+ @fa-var-bolt: "\f0e7";
74
+ @fa-var-bomb: "\f1e2";
75
+ @fa-var-book: "\f02d";
76
+ @fa-var-bookmark: "\f02e";
77
+ @fa-var-bookmark-o: "\f097";
78
+ @fa-var-briefcase: "\f0b1";
79
+ @fa-var-btc: "\f15a";
80
+ @fa-var-bug: "\f188";
81
+ @fa-var-building: "\f1ad";
82
+ @fa-var-building-o: "\f0f7";
83
+ @fa-var-bullhorn: "\f0a1";
84
+ @fa-var-bullseye: "\f140";
85
+ @fa-var-bus: "\f207";
86
+ @fa-var-cab: "\f1ba";
87
+ @fa-var-calculator: "\f1ec";
88
+ @fa-var-calendar: "\f073";
89
+ @fa-var-calendar-o: "\f133";
90
+ @fa-var-camera: "\f030";
91
+ @fa-var-camera-retro: "\f083";
92
+ @fa-var-car: "\f1b9";
93
+ @fa-var-caret-down: "\f0d7";
94
+ @fa-var-caret-left: "\f0d9";
95
+ @fa-var-caret-right: "\f0da";
96
+ @fa-var-caret-square-o-down: "\f150";
97
+ @fa-var-caret-square-o-left: "\f191";
98
+ @fa-var-caret-square-o-right: "\f152";
99
+ @fa-var-caret-square-o-up: "\f151";
100
+ @fa-var-caret-up: "\f0d8";
101
+ @fa-var-cc: "\f20a";
102
+ @fa-var-cc-amex: "\f1f3";
103
+ @fa-var-cc-discover: "\f1f2";
104
+ @fa-var-cc-mastercard: "\f1f1";
105
+ @fa-var-cc-paypal: "\f1f4";
106
+ @fa-var-cc-stripe: "\f1f5";
107
+ @fa-var-cc-visa: "\f1f0";
108
+ @fa-var-certificate: "\f0a3";
109
+ @fa-var-chain: "\f0c1";
110
+ @fa-var-chain-broken: "\f127";
111
+ @fa-var-check: "\f00c";
112
+ @fa-var-check-circle: "\f058";
113
+ @fa-var-check-circle-o: "\f05d";
114
+ @fa-var-check-square: "\f14a";
115
+ @fa-var-check-square-o: "\f046";
116
+ @fa-var-chevron-circle-down: "\f13a";
117
+ @fa-var-chevron-circle-left: "\f137";
118
+ @fa-var-chevron-circle-right: "\f138";
119
+ @fa-var-chevron-circle-up: "\f139";
120
+ @fa-var-chevron-down: "\f078";
121
+ @fa-var-chevron-left: "\f053";
122
+ @fa-var-chevron-right: "\f054";
123
+ @fa-var-chevron-up: "\f077";
124
+ @fa-var-child: "\f1ae";
125
+ @fa-var-circle: "\f111";
126
+ @fa-var-circle-o: "\f10c";
127
+ @fa-var-circle-o-notch: "\f1ce";
128
+ @fa-var-circle-thin: "\f1db";
129
+ @fa-var-clipboard: "\f0ea";
130
+ @fa-var-clock-o: "\f017";
131
+ @fa-var-close: "\f00d";
132
+ @fa-var-cloud: "\f0c2";
133
+ @fa-var-cloud-download: "\f0ed";
134
+ @fa-var-cloud-upload: "\f0ee";
135
+ @fa-var-cny: "\f157";
136
+ @fa-var-code: "\f121";
137
+ @fa-var-code-fork: "\f126";
138
+ @fa-var-codepen: "\f1cb";
139
+ @fa-var-coffee: "\f0f4";
140
+ @fa-var-cog: "\f013";
141
+ @fa-var-cogs: "\f085";
142
+ @fa-var-columns: "\f0db";
143
+ @fa-var-comment: "\f075";
144
+ @fa-var-comment-o: "\f0e5";
145
+ @fa-var-comments: "\f086";
146
+ @fa-var-comments-o: "\f0e6";
147
+ @fa-var-compass: "\f14e";
148
+ @fa-var-compress: "\f066";
149
+ @fa-var-copy: "\f0c5";
150
+ @fa-var-copyright: "\f1f9";
151
+ @fa-var-credit-card: "\f09d";
152
+ @fa-var-crop: "\f125";
153
+ @fa-var-crosshairs: "\f05b";
154
+ @fa-var-css3: "\f13c";
155
+ @fa-var-cube: "\f1b2";
156
+ @fa-var-cubes: "\f1b3";
157
+ @fa-var-cut: "\f0c4";
158
+ @fa-var-cutlery: "\f0f5";
159
+ @fa-var-dashboard: "\f0e4";
160
+ @fa-var-database: "\f1c0";
161
+ @fa-var-dedent: "\f03b";
162
+ @fa-var-delicious: "\f1a5";
163
+ @fa-var-desktop: "\f108";
164
+ @fa-var-deviantart: "\f1bd";
165
+ @fa-var-digg: "\f1a6";
166
+ @fa-var-dollar: "\f155";
167
+ @fa-var-dot-circle-o: "\f192";
168
+ @fa-var-download: "\f019";
169
+ @fa-var-dribbble: "\f17d";
170
+ @fa-var-dropbox: "\f16b";
171
+ @fa-var-drupal: "\f1a9";
172
+ @fa-var-edit: "\f044";
173
+ @fa-var-eject: "\f052";
174
+ @fa-var-ellipsis-h: "\f141";
175
+ @fa-var-ellipsis-v: "\f142";
176
+ @fa-var-empire: "\f1d1";
177
+ @fa-var-envelope: "\f0e0";
178
+ @fa-var-envelope-o: "\f003";
179
+ @fa-var-envelope-square: "\f199";
180
+ @fa-var-eraser: "\f12d";
181
+ @fa-var-eur: "\f153";
182
+ @fa-var-euro: "\f153";
183
+ @fa-var-exchange: "\f0ec";
184
+ @fa-var-exclamation: "\f12a";
185
+ @fa-var-exclamation-circle: "\f06a";
186
+ @fa-var-exclamation-triangle: "\f071";
187
+ @fa-var-expand: "\f065";
188
+ @fa-var-external-link: "\f08e";
189
+ @fa-var-external-link-square: "\f14c";
190
+ @fa-var-eye: "\f06e";
191
+ @fa-var-eye-slash: "\f070";
192
+ @fa-var-eyedropper: "\f1fb";
193
+ @fa-var-facebook: "\f09a";
194
+ @fa-var-facebook-square: "\f082";
195
+ @fa-var-fast-backward: "\f049";
196
+ @fa-var-fast-forward: "\f050";
197
+ @fa-var-fax: "\f1ac";
198
+ @fa-var-female: "\f182";
199
+ @fa-var-fighter-jet: "\f0fb";
200
+ @fa-var-file: "\f15b";
201
+ @fa-var-file-archive-o: "\f1c6";
202
+ @fa-var-file-audio-o: "\f1c7";
203
+ @fa-var-file-code-o: "\f1c9";
204
+ @fa-var-file-excel-o: "\f1c3";
205
+ @fa-var-file-image-o: "\f1c5";
206
+ @fa-var-file-movie-o: "\f1c8";
207
+ @fa-var-file-o: "\f016";
208
+ @fa-var-file-pdf-o: "\f1c1";
209
+ @fa-var-file-photo-o: "\f1c5";
210
+ @fa-var-file-picture-o: "\f1c5";
211
+ @fa-var-file-powerpoint-o: "\f1c4";
212
+ @fa-var-file-sound-o: "\f1c7";
213
+ @fa-var-file-text: "\f15c";
214
+ @fa-var-file-text-o: "\f0f6";
215
+ @fa-var-file-video-o: "\f1c8";
216
+ @fa-var-file-word-o: "\f1c2";
217
+ @fa-var-file-zip-o: "\f1c6";
218
+ @fa-var-files-o: "\f0c5";
219
+ @fa-var-film: "\f008";
220
+ @fa-var-filter: "\f0b0";
221
+ @fa-var-fire: "\f06d";
222
+ @fa-var-fire-extinguisher: "\f134";
223
+ @fa-var-flag: "\f024";
224
+ @fa-var-flag-checkered: "\f11e";
225
+ @fa-var-flag-o: "\f11d";
226
+ @fa-var-flash: "\f0e7";
227
+ @fa-var-flask: "\f0c3";
228
+ @fa-var-flickr: "\f16e";
229
+ @fa-var-floppy-o: "\f0c7";
230
+ @fa-var-folder: "\f07b";
231
+ @fa-var-folder-o: "\f114";
232
+ @fa-var-folder-open: "\f07c";
233
+ @fa-var-folder-open-o: "\f115";
234
+ @fa-var-font: "\f031";
235
+ @fa-var-forward: "\f04e";
236
+ @fa-var-foursquare: "\f180";
237
+ @fa-var-frown-o: "\f119";
238
+ @fa-var-futbol-o: "\f1e3";
239
+ @fa-var-gamepad: "\f11b";
240
+ @fa-var-gavel: "\f0e3";
241
+ @fa-var-gbp: "\f154";
242
+ @fa-var-ge: "\f1d1";
243
+ @fa-var-gear: "\f013";
244
+ @fa-var-gears: "\f085";
245
+ @fa-var-gift: "\f06b";
246
+ @fa-var-git: "\f1d3";
247
+ @fa-var-git-square: "\f1d2";
248
+ @fa-var-github: "\f09b";
249
+ @fa-var-github-alt: "\f113";
250
+ @fa-var-github-square: "\f092";
251
+ @fa-var-gittip: "\f184";
252
+ @fa-var-glass: "\f000";
253
+ @fa-var-globe: "\f0ac";
254
+ @fa-var-google: "\f1a0";
255
+ @fa-var-google-plus: "\f0d5";
256
+ @fa-var-google-plus-square: "\f0d4";
257
+ @fa-var-google-wallet: "\f1ee";
258
+ @fa-var-graduation-cap: "\f19d";
259
+ @fa-var-group: "\f0c0";
260
+ @fa-var-h-square: "\f0fd";
261
+ @fa-var-hacker-news: "\f1d4";
262
+ @fa-var-hand-o-down: "\f0a7";
263
+ @fa-var-hand-o-left: "\f0a5";
264
+ @fa-var-hand-o-right: "\f0a4";
265
+ @fa-var-hand-o-up: "\f0a6";
266
+ @fa-var-hdd-o: "\f0a0";
267
+ @fa-var-header: "\f1dc";
268
+ @fa-var-headphones: "\f025";
269
+ @fa-var-heart: "\f004";
270
+ @fa-var-heart-o: "\f08a";
271
+ @fa-var-history: "\f1da";
272
+ @fa-var-home: "\f015";
273
+ @fa-var-hospital-o: "\f0f8";
274
+ @fa-var-html5: "\f13b";
275
+ @fa-var-ils: "\f20b";
276
+ @fa-var-image: "\f03e";
277
+ @fa-var-inbox: "\f01c";
278
+ @fa-var-indent: "\f03c";
279
+ @fa-var-info: "\f129";
280
+ @fa-var-info-circle: "\f05a";
281
+ @fa-var-inr: "\f156";
282
+ @fa-var-instagram: "\f16d";
283
+ @fa-var-institution: "\f19c";
284
+ @fa-var-ioxhost: "\f208";
285
+ @fa-var-italic: "\f033";
286
+ @fa-var-joomla: "\f1aa";
287
+ @fa-var-jpy: "\f157";
288
+ @fa-var-jsfiddle: "\f1cc";
289
+ @fa-var-key: "\f084";
290
+ @fa-var-keyboard-o: "\f11c";
291
+ @fa-var-krw: "\f159";
292
+ @fa-var-language: "\f1ab";
293
+ @fa-var-laptop: "\f109";
294
+ @fa-var-lastfm: "\f202";
295
+ @fa-var-lastfm-square: "\f203";
296
+ @fa-var-leaf: "\f06c";
297
+ @fa-var-legal: "\f0e3";
298
+ @fa-var-lemon-o: "\f094";
299
+ @fa-var-level-down: "\f149";
300
+ @fa-var-level-up: "\f148";
301
+ @fa-var-life-bouy: "\f1cd";
302
+ @fa-var-life-buoy: "\f1cd";
303
+ @fa-var-life-ring: "\f1cd";
304
+ @fa-var-life-saver: "\f1cd";
305
+ @fa-var-lightbulb-o: "\f0eb";
306
+ @fa-var-line-chart: "\f201";
307
+ @fa-var-link: "\f0c1";
308
+ @fa-var-linkedin: "\f0e1";
309
+ @fa-var-linkedin-square: "\f08c";
310
+ @fa-var-linux: "\f17c";
311
+ @fa-var-list: "\f03a";
312
+ @fa-var-list-alt: "\f022";
313
+ @fa-var-list-ol: "\f0cb";
314
+ @fa-var-list-ul: "\f0ca";
315
+ @fa-var-location-arrow: "\f124";
316
+ @fa-var-lock: "\f023";
317
+ @fa-var-long-arrow-down: "\f175";
318
+ @fa-var-long-arrow-left: "\f177";
319
+ @fa-var-long-arrow-right: "\f178";
320
+ @fa-var-long-arrow-up: "\f176";
321
+ @fa-var-magic: "\f0d0";
322
+ @fa-var-magnet: "\f076";
323
+ @fa-var-mail-forward: "\f064";
324
+ @fa-var-mail-reply: "\f112";
325
+ @fa-var-mail-reply-all: "\f122";
326
+ @fa-var-male: "\f183";
327
+ @fa-var-map-marker: "\f041";
328
+ @fa-var-maxcdn: "\f136";
329
+ @fa-var-meanpath: "\f20c";
330
+ @fa-var-medkit: "\f0fa";
331
+ @fa-var-meh-o: "\f11a";
332
+ @fa-var-microphone: "\f130";
333
+ @fa-var-microphone-slash: "\f131";
334
+ @fa-var-minus: "\f068";
335
+ @fa-var-minus-circle: "\f056";
336
+ @fa-var-minus-square: "\f146";
337
+ @fa-var-minus-square-o: "\f147";
338
+ @fa-var-mobile: "\f10b";
339
+ @fa-var-mobile-phone: "\f10b";
340
+ @fa-var-money: "\f0d6";
341
+ @fa-var-moon-o: "\f186";
342
+ @fa-var-mortar-board: "\f19d";
343
+ @fa-var-music: "\f001";
344
+ @fa-var-navicon: "\f0c9";
345
+ @fa-var-newspaper-o: "\f1ea";
346
+ @fa-var-openid: "\f19b";
347
+ @fa-var-outdent: "\f03b";
348
+ @fa-var-pagelines: "\f18c";
349
+ @fa-var-paint-brush: "\f1fc";
350
+ @fa-var-paper-plane: "\f1d8";
351
+ @fa-var-paper-plane-o: "\f1d9";
352
+ @fa-var-paperclip: "\f0c6";
353
+ @fa-var-paragraph: "\f1dd";
354
+ @fa-var-paste: "\f0ea";
355
+ @fa-var-pause: "\f04c";
356
+ @fa-var-paw: "\f1b0";
357
+ @fa-var-paypal: "\f1ed";
358
+ @fa-var-pencil: "\f040";
359
+ @fa-var-pencil-square: "\f14b";
360
+ @fa-var-pencil-square-o: "\f044";
361
+ @fa-var-phone: "\f095";
362
+ @fa-var-phone-square: "\f098";
363
+ @fa-var-photo: "\f03e";
364
+ @fa-var-picture-o: "\f03e";
365
+ @fa-var-pie-chart: "\f200";
366
+ @fa-var-pied-piper: "\f1a7";
367
+ @fa-var-pied-piper-alt: "\f1a8";
368
+ @fa-var-pinterest: "\f0d2";
369
+ @fa-var-pinterest-square: "\f0d3";
370
+ @fa-var-plane: "\f072";
371
+ @fa-var-play: "\f04b";
372
+ @fa-var-play-circle: "\f144";
373
+ @fa-var-play-circle-o: "\f01d";
374
+ @fa-var-plug: "\f1e6";
375
+ @fa-var-plus: "\f067";
376
+ @fa-var-plus-circle: "\f055";
377
+ @fa-var-plus-square: "\f0fe";
378
+ @fa-var-plus-square-o: "\f196";
379
+ @fa-var-power-off: "\f011";
380
+ @fa-var-print: "\f02f";
381
+ @fa-var-puzzle-piece: "\f12e";
382
+ @fa-var-qq: "\f1d6";
383
+ @fa-var-qrcode: "\f029";
384
+ @fa-var-question: "\f128";
385
+ @fa-var-question-circle: "\f059";
386
+ @fa-var-quote-left: "\f10d";
387
+ @fa-var-quote-right: "\f10e";
388
+ @fa-var-ra: "\f1d0";
389
+ @fa-var-random: "\f074";
390
+ @fa-var-rebel: "\f1d0";
391
+ @fa-var-recycle: "\f1b8";
392
+ @fa-var-reddit: "\f1a1";
393
+ @fa-var-reddit-square: "\f1a2";
394
+ @fa-var-refresh: "\f021";
395
+ @fa-var-remove: "\f00d";
396
+ @fa-var-renren: "\f18b";
397
+ @fa-var-reorder: "\f0c9";
398
+ @fa-var-repeat: "\f01e";
399
+ @fa-var-reply: "\f112";
400
+ @fa-var-reply-all: "\f122";
401
+ @fa-var-retweet: "\f079";
402
+ @fa-var-rmb: "\f157";
403
+ @fa-var-road: "\f018";
404
+ @fa-var-rocket: "\f135";
405
+ @fa-var-rotate-left: "\f0e2";
406
+ @fa-var-rotate-right: "\f01e";
407
+ @fa-var-rouble: "\f158";
408
+ @fa-var-rss: "\f09e";
409
+ @fa-var-rss-square: "\f143";
410
+ @fa-var-rub: "\f158";
411
+ @fa-var-ruble: "\f158";
412
+ @fa-var-rupee: "\f156";
413
+ @fa-var-save: "\f0c7";
414
+ @fa-var-scissors: "\f0c4";
415
+ @fa-var-search: "\f002";
416
+ @fa-var-search-minus: "\f010";
417
+ @fa-var-search-plus: "\f00e";
418
+ @fa-var-send: "\f1d8";
419
+ @fa-var-send-o: "\f1d9";
420
+ @fa-var-share: "\f064";
421
+ @fa-var-share-alt: "\f1e0";
422
+ @fa-var-share-alt-square: "\f1e1";
423
+ @fa-var-share-square: "\f14d";
424
+ @fa-var-share-square-o: "\f045";
425
+ @fa-var-shekel: "\f20b";
426
+ @fa-var-sheqel: "\f20b";
427
+ @fa-var-shield: "\f132";
428
+ @fa-var-shopping-cart: "\f07a";
429
+ @fa-var-sign-in: "\f090";
430
+ @fa-var-sign-out: "\f08b";
431
+ @fa-var-signal: "\f012";
432
+ @fa-var-sitemap: "\f0e8";
433
+ @fa-var-skype: "\f17e";
434
+ @fa-var-slack: "\f198";
435
+ @fa-var-sliders: "\f1de";
436
+ @fa-var-slideshare: "\f1e7";
437
+ @fa-var-smile-o: "\f118";
438
+ @fa-var-soccer-ball-o: "\f1e3";
439
+ @fa-var-sort: "\f0dc";
440
+ @fa-var-sort-alpha-asc: "\f15d";
441
+ @fa-var-sort-alpha-desc: "\f15e";
442
+ @fa-var-sort-amount-asc: "\f160";
443
+ @fa-var-sort-amount-desc: "\f161";
444
+ @fa-var-sort-asc: "\f0de";
445
+ @fa-var-sort-desc: "\f0dd";
446
+ @fa-var-sort-down: "\f0dd";
447
+ @fa-var-sort-numeric-asc: "\f162";
448
+ @fa-var-sort-numeric-desc: "\f163";
449
+ @fa-var-sort-up: "\f0de";
450
+ @fa-var-soundcloud: "\f1be";
451
+ @fa-var-space-shuttle: "\f197";
452
+ @fa-var-spinner: "\f110";
453
+ @fa-var-spoon: "\f1b1";
454
+ @fa-var-spotify: "\f1bc";
455
+ @fa-var-square: "\f0c8";
456
+ @fa-var-square-o: "\f096";
457
+ @fa-var-stack-exchange: "\f18d";
458
+ @fa-var-stack-overflow: "\f16c";
459
+ @fa-var-star: "\f005";
460
+ @fa-var-star-half: "\f089";
461
+ @fa-var-star-half-empty: "\f123";
462
+ @fa-var-star-half-full: "\f123";
463
+ @fa-var-star-half-o: "\f123";
464
+ @fa-var-star-o: "\f006";
465
+ @fa-var-steam: "\f1b6";
466
+ @fa-var-steam-square: "\f1b7";
467
+ @fa-var-step-backward: "\f048";
468
+ @fa-var-step-forward: "\f051";
469
+ @fa-var-stethoscope: "\f0f1";
470
+ @fa-var-stop: "\f04d";
471
+ @fa-var-strikethrough: "\f0cc";
472
+ @fa-var-stumbleupon: "\f1a4";
473
+ @fa-var-stumbleupon-circle: "\f1a3";
474
+ @fa-var-subscript: "\f12c";
475
+ @fa-var-suitcase: "\f0f2";
476
+ @fa-var-sun-o: "\f185";
477
+ @fa-var-superscript: "\f12b";
478
+ @fa-var-support: "\f1cd";
479
+ @fa-var-table: "\f0ce";
480
+ @fa-var-tablet: "\f10a";
481
+ @fa-var-tachometer: "\f0e4";
482
+ @fa-var-tag: "\f02b";
483
+ @fa-var-tags: "\f02c";
484
+ @fa-var-tasks: "\f0ae";
485
+ @fa-var-taxi: "\f1ba";
486
+ @fa-var-tencent-weibo: "\f1d5";
487
+ @fa-var-terminal: "\f120";
488
+ @fa-var-text-height: "\f034";
489
+ @fa-var-text-width: "\f035";
490
+ @fa-var-th: "\f00a";
491
+ @fa-var-th-large: "\f009";
492
+ @fa-var-th-list: "\f00b";
493
+ @fa-var-thumb-tack: "\f08d";
494
+ @fa-var-thumbs-down: "\f165";
495
+ @fa-var-thumbs-o-down: "\f088";
496
+ @fa-var-thumbs-o-up: "\f087";
497
+ @fa-var-thumbs-up: "\f164";
498
+ @fa-var-ticket: "\f145";
499
+ @fa-var-times: "\f00d";
500
+ @fa-var-times-circle: "\f057";
501
+ @fa-var-times-circle-o: "\f05c";
502
+ @fa-var-tint: "\f043";
503
+ @fa-var-toggle-down: "\f150";
504
+ @fa-var-toggle-left: "\f191";
505
+ @fa-var-toggle-off: "\f204";
506
+ @fa-var-toggle-on: "\f205";
507
+ @fa-var-toggle-right: "\f152";
508
+ @fa-var-toggle-up: "\f151";
509
+ @fa-var-trash: "\f1f8";
510
+ @fa-var-trash-o: "\f014";
511
+ @fa-var-tree: "\f1bb";
512
+ @fa-var-trello: "\f181";
513
+ @fa-var-trophy: "\f091";
514
+ @fa-var-truck: "\f0d1";
515
+ @fa-var-try: "\f195";
516
+ @fa-var-tty: "\f1e4";
517
+ @fa-var-tumblr: "\f173";
518
+ @fa-var-tumblr-square: "\f174";
519
+ @fa-var-turkish-lira: "\f195";
520
+ @fa-var-twitch: "\f1e8";
521
+ @fa-var-twitter: "\f099";
522
+ @fa-var-twitter-square: "\f081";
523
+ @fa-var-umbrella: "\f0e9";
524
+ @fa-var-underline: "\f0cd";
525
+ @fa-var-undo: "\f0e2";
526
+ @fa-var-university: "\f19c";
527
+ @fa-var-unlink: "\f127";
528
+ @fa-var-unlock: "\f09c";
529
+ @fa-var-unlock-alt: "\f13e";
530
+ @fa-var-unsorted: "\f0dc";
531
+ @fa-var-upload: "\f093";
532
+ @fa-var-usd: "\f155";
533
+ @fa-var-user: "\f007";
534
+ @fa-var-user-md: "\f0f0";
535
+ @fa-var-users: "\f0c0";
536
+ @fa-var-video-camera: "\f03d";
537
+ @fa-var-vimeo-square: "\f194";
538
+ @fa-var-vine: "\f1ca";
539
+ @fa-var-vk: "\f189";
540
+ @fa-var-volume-down: "\f027";
541
+ @fa-var-volume-off: "\f026";
542
+ @fa-var-volume-up: "\f028";
543
+ @fa-var-warning: "\f071";
544
+ @fa-var-wechat: "\f1d7";
545
+ @fa-var-weibo: "\f18a";
546
+ @fa-var-weixin: "\f1d7";
547
+ @fa-var-wheelchair: "\f193";
548
+ @fa-var-wifi: "\f1eb";
549
+ @fa-var-windows: "\f17a";
550
+ @fa-var-won: "\f159";
551
+ @fa-var-wordpress: "\f19a";
552
+ @fa-var-wrench: "\f0ad";
553
+ @fa-var-xing: "\f168";
554
+ @fa-var-xing-square: "\f169";
555
+ @fa-var-yahoo: "\f19e";
556
+ @fa-var-yelp: "\f1e9";
557
+ @fa-var-yen: "\f157";
558
+ @fa-var-youtube: "\f167";
559
+ @fa-var-youtube-play: "\f16a";
560
+ @fa-var-youtube-square: "\f166";
561
+
css/font-awesome/scss/_bordered-pulled.scss ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Bordered & Pulled
2
+ // -------------------------
3
+
4
+ .#{$fa-css-prefix}-border {
5
+ padding: .2em .25em .15em;
6
+ border: solid .08em $fa-border-color;
7
+ border-radius: .1em;
8
+ }
9
+
10
+ .pull-right { float: right; }
11
+ .pull-left { float: left; }
12
+
13
+ .#{$fa-css-prefix} {
14
+ &.pull-left { margin-right: .3em; }
15
+ &.pull-right { margin-left: .3em; }
16
+ }
css/font-awesome/scss/_core.scss ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ // Base Class Definition
2
+ // -------------------------
3
+
4
+ .#{$fa-css-prefix} {
5
+ display: inline-block;
6
+ font: normal normal normal 14px/1 FontAwesome; // shortening font declaration
7
+ font-size: inherit; // can't have font-size inherit on line above, so need to override
8
+ text-rendering: auto; // optimizelegibility throws things off #1094
9
+ -webkit-font-smoothing: antialiased;
10
+ -moz-osx-font-smoothing: grayscale;
11
+ }
css/font-awesome/scss/_fixed-width.scss ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ // Fixed Width Icons
2
+ // -------------------------
3
+ .#{$fa-css-prefix}-fw {
4
+ width: (18em / 14);
5
+ text-align: center;
6
+ }
css/font-awesome/scss/_icons.scss ADDED
@@ -0,0 +1,552 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
2
+ readers do not read off random characters that represent icons */
3
+
4
+ .#{$fa-css-prefix}-glass:before { content: $fa-var-glass; }
5
+ .#{$fa-css-prefix}-music:before { content: $fa-var-music; }
6
+ .#{$fa-css-prefix}-search:before { content: $fa-var-search; }
7
+ .#{$fa-css-prefix}-envelope-o:before { content: $fa-var-envelope-o; }
8
+ .#{$fa-css-prefix}-heart:before { content: $fa-var-heart; }
9
+ .#{$fa-css-prefix}-star:before { content: $fa-var-star; }
10
+ .#{$fa-css-prefix}-star-o:before { content: $fa-var-star-o; }
11
+ .#{$fa-css-prefix}-user:before { content: $fa-var-user; }
12
+ .#{$fa-css-prefix}-film:before { content: $fa-var-film; }
13
+ .#{$fa-css-prefix}-th-large:before { content: $fa-var-th-large; }
14
+ .#{$fa-css-prefix}-th:before { content: $fa-var-th; }
15
+ .#{$fa-css-prefix}-th-list:before { content: $fa-var-th-list; }
16
+ .#{$fa-css-prefix}-check:before { content: $fa-var-check; }
17
+ .#{$fa-css-prefix}-remove:before,
18
+ .#{$fa-css-prefix}-close:before,
19
+ .#{$fa-css-prefix}-times:before { content: $fa-var-times; }
20
+ .#{$fa-css-prefix}-search-plus:before { content: $fa-var-search-plus; }
21
+ .#{$fa-css-prefix}-search-minus:before { content: $fa-var-search-minus; }
22
+ .#{$fa-css-prefix}-power-off:before { content: $fa-var-power-off; }
23
+ .#{$fa-css-prefix}-signal:before { content: $fa-var-signal; }
24
+ .#{$fa-css-prefix}-gear:before,
25
+ .#{$fa-css-prefix}-cog:before { content: $fa-var-cog; }
26
+ .#{$fa-css-prefix}-trash-o:before { content: $fa-var-trash-o; }
27
+ .#{$fa-css-prefix}-home:before { content: $fa-var-home; }
28
+ .#{$fa-css-prefix}-file-o:before { content: $fa-var-file-o; }
29
+ .#{$fa-css-prefix}-clock-o:before { content: $fa-var-clock-o; }
30
+ .#{$fa-css-prefix}-road:before { content: $fa-var-road; }
31
+ .#{$fa-css-prefix}-download:before { content: $fa-var-download; }
32
+ .#{$fa-css-prefix}-arrow-circle-o-down:before { content: $fa-var-arrow-circle-o-down; }
33
+ .#{$fa-css-prefix}-arrow-circle-o-up:before { content: $fa-var-arrow-circle-o-up; }
34
+ .#{$fa-css-prefix}-inbox:before { content: $fa-var-inbox; }
35
+ .#{$fa-css-prefix}-play-circle-o:before { content: $fa-var-play-circle-o; }
36
+ .#{$fa-css-prefix}-rotate-right:before,
37
+ .#{$fa-css-prefix}-repeat:before { content: $fa-var-repeat; }
38
+ .#{$fa-css-prefix}-refresh:before { content: $fa-var-refresh; }
39
+ .#{$fa-css-prefix}-list-alt:before { content: $fa-var-list-alt; }
40
+ .#{$fa-css-prefix}-lock:before { content: $fa-var-lock; }
41
+ .#{$fa-css-prefix}-flag:before { content: $fa-var-flag; }
42
+ .#{$fa-css-prefix}-headphones:before { content: $fa-var-headphones; }
43
+ .#{$fa-css-prefix}-volume-off:before { content: $fa-var-volume-off; }
44
+ .#{$fa-css-prefix}-volume-down:before { content: $fa-var-volume-down; }
45
+ .#{$fa-css-prefix}-volume-up:before { content: $fa-var-volume-up; }
46
+ .#{$fa-css-prefix}-qrcode:before { content: $fa-var-qrcode; }
47
+ .#{$fa-css-prefix}-barcode:before { content: $fa-var-barcode; }
48
+ .#{$fa-css-prefix}-tag:before { content: $fa-var-tag; }
49
+ .#{$fa-css-prefix}-tags:before { content: $fa-var-tags; }
50
+ .#{$fa-css-prefix}-book:before { content: $fa-var-book; }
51
+ .#{$fa-css-prefix}-bookmark:before { content: $fa-var-bookmark; }
52
+ .#{$fa-css-prefix}-print:before { content: $fa-var-print; }
53
+ .#{$fa-css-prefix}-camera:before { content: $fa-var-camera; }
54
+ .#{$fa-css-prefix}-font:before { content: $fa-var-font; }
55
+ .#{$fa-css-prefix}-bold:before { content: $fa-var-bold; }
56
+ .#{$fa-css-prefix}-italic:before { content: $fa-var-italic; }
57
+ .#{$fa-css-prefix}-text-height:before { content: $fa-var-text-height; }
58
+ .#{$fa-css-prefix}-text-width:before { content: $fa-var-text-width; }
59
+ .#{$fa-css-prefix}-align-left:before { content: $fa-var-align-left; }
60
+ .#{$fa-css-prefix}-align-center:before { content: $fa-var-align-center; }
61
+ .#{$fa-css-prefix}-align-right:before { content: $fa-var-align-right; }
62
+ .#{$fa-css-prefix}-align-justify:before { content: $fa-var-align-justify; }
63
+ .#{$fa-css-prefix}-list:before { content: $fa-var-list; }
64
+ .#{$fa-css-prefix}-dedent:before,
65
+ .#{$fa-css-prefix}-outdent:before { content: $fa-var-outdent; }
66
+ .#{$fa-css-prefix}-indent:before { content: $fa-var-indent; }
67
+ .#{$fa-css-prefix}-video-camera:before { content: $fa-var-video-camera; }
68
+ .#{$fa-css-prefix}-photo:before,
69
+ .#{$fa-css-prefix}-image:before,
70
+ .#{$fa-css-prefix}-picture-o:before { content: $fa-var-picture-o; }
71
+ .#{$fa-css-prefix}-pencil:before { content: $fa-var-pencil; }
72
+ .#{$fa-css-prefix}-map-marker:before { content: $fa-var-map-marker; }
73
+ .#{$fa-css-prefix}-adjust:before { content: $fa-var-adjust; }
74
+ .#{$fa-css-prefix}-tint:before { content: $fa-var-tint; }
75
+ .#{$fa-css-prefix}-edit:before,
76
+ .#{$fa-css-prefix}-pencil-square-o:before { content: $fa-var-pencil-square-o; }
77
+ .#{$fa-css-prefix}-share-square-o:before { content: $fa-var-share-square-o; }
78
+ .#{$fa-css-prefix}-check-square-o:before { content: $fa-var-check-square-o; }
79
+ .#{$fa-css-prefix}-arrows:before { content: $fa-var-arrows; }
80
+ .#{$fa-css-prefix}-step-backward:before { content: $fa-var-step-backward; }
81
+ .#{$fa-css-prefix}-fast-backward:before { content: $fa-var-fast-backward; }
82
+ .#{$fa-css-prefix}-backward:before { content: $fa-var-backward; }
83
+ .#{$fa-css-prefix}-play:before { content: $fa-var-play; }
84
+ .#{$fa-css-prefix}-pause:before { content: $fa-var-pause; }
85
+ .#{$fa-css-prefix}-stop:before { content: $fa-var-stop; }
86
+ .#{$fa-css-prefix}-forward:before { content: $fa-var-forward; }
87
+ .#{$fa-css-prefix}-fast-forward:before { content: $fa-var-fast-forward; }
88
+ .#{$fa-css-prefix}-step-forward:before { content: $fa-var-step-forward; }
89
+ .#{$fa-css-prefix}-eject:before { content: $fa-var-eject; }
90
+ .#{$fa-css-prefix}-chevron-left:before { content: $fa-var-chevron-left; }
91
+ .#{$fa-css-prefix}-chevron-right:before { content: $fa-var-chevron-right; }
92
+ .#{$fa-css-prefix}-plus-circle:before { content: $fa-var-plus-circle; }
93
+ .#{$fa-css-prefix}-minus-circle:before { content: $fa-var-minus-circle; }
94
+ .#{$fa-css-prefix}-times-circle:before { content: $fa-var-times-circle; }
95
+ .#{$fa-css-prefix}-check-circle:before { content: $fa-var-check-circle; }
96
+ .#{$fa-css-prefix}-question-circle:before { content: $fa-var-question-circle; }
97
+ .#{$fa-css-prefix}-info-circle:before { content: $fa-var-info-circle; }
98
+ .#{$fa-css-prefix}-crosshairs:before { content: $fa-var-crosshairs; }
99
+ .#{$fa-css-prefix}-times-circle-o:before { content: $fa-var-times-circle-o; }
100
+ .#{$fa-css-prefix}-check-circle-o:before { content: $fa-var-check-circle-o; }
101
+ .#{$fa-css-prefix}-ban:before { content: $fa-var-ban; }
102
+ .#{$fa-css-prefix}-arrow-left:before { content: $fa-var-arrow-left; }
103
+ .#{$fa-css-prefix}-arrow-right:before { content: $fa-var-arrow-right; }
104
+ .#{$fa-css-prefix}-arrow-up:before { content: $fa-var-arrow-up; }
105
+ .#{$fa-css-prefix}-arrow-down:before { content: $fa-var-arrow-down; }
106
+ .#{$fa-css-prefix}-mail-forward:before,
107
+ .#{$fa-css-prefix}-share:before { content: $fa-var-share; }
108
+ .#{$fa-css-prefix}-expand:before { content: $fa-var-expand; }
109
+ .#{$fa-css-prefix}-compress:before { content: $fa-var-compress; }
110
+ .#{$fa-css-prefix}-plus:before { content: $fa-var-plus; }
111
+ .#{$fa-css-prefix}-minus:before { content: $fa-var-minus; }
112
+ .#{$fa-css-prefix}-asterisk:before { content: $fa-var-asterisk; }
113
+ .#{$fa-css-prefix}-exclamation-circle:before { content: $fa-var-exclamation-circle; }
114
+ .#{$fa-css-prefix}-gift:before { content: $fa-var-gift; }
115
+ .#{$fa-css-prefix}-leaf:before { content: $fa-var-leaf; }
116
+ .#{$fa-css-prefix}-fire:before { content: $fa-var-fire; }
117
+ .#{$fa-css-prefix}-eye:before { content: $fa-var-eye; }
118
+ .#{$fa-css-prefix}-eye-slash:before { content: $fa-var-eye-slash; }
119
+ .#{$fa-css-prefix}-warning:before,
120
+ .#{$fa-css-prefix}-exclamation-triangle:before { content: $fa-var-exclamation-triangle; }
121
+ .#{$fa-css-prefix}-plane:before { content: $fa-var-plane; }
122
+ .#{$fa-css-prefix}-calendar:before { content: $fa-var-calendar; }
123
+ .#{$fa-css-prefix}-random:before { content: $fa-var-random; }
124
+ .#{$fa-css-prefix}-comment:before { content: $fa-var-comment; }
125
+ .#{$fa-css-prefix}-magnet:before { content: $fa-var-magnet; }
126
+ .#{$fa-css-prefix}-chevron-up:before { content: $fa-var-chevron-up; }
127
+ .#{$fa-css-prefix}-chevron-down:before { content: $fa-var-chevron-down; }
128
+ .#{$fa-css-prefix}-retweet:before { content: $fa-var-retweet; }
129
+ .#{$fa-css-prefix}-shopping-cart:before { content: $fa-var-shopping-cart; }
130
+ .#{$fa-css-prefix}-folder:before { content: $fa-var-folder; }
131
+ .#{$fa-css-prefix}-folder-open:before { content: $fa-var-folder-open; }
132
+ .#{$fa-css-prefix}-arrows-v:before { content: $fa-var-arrows-v; }
133
+ .#{$fa-css-prefix}-arrows-h:before { content: $fa-var-arrows-h; }
134
+ .#{$fa-css-prefix}-bar-chart-o:before,
135
+ .#{$fa-css-prefix}-bar-chart:before { content: $fa-var-bar-chart; }
136
+ .#{$fa-css-prefix}-twitter-square:before { content: $fa-var-twitter-square; }
137
+ .#{$fa-css-prefix}-facebook-square:before { content: $fa-var-facebook-square; }
138
+ .#{$fa-css-prefix}-camera-retro:before { content: $fa-var-camera-retro; }
139
+ .#{$fa-css-prefix}-key:before { content: $fa-var-key; }
140
+ .#{$fa-css-prefix}-gears:before,
141
+ .#{$fa-css-prefix}-cogs:before { content: $fa-var-cogs; }
142
+ .#{$fa-css-prefix}-comments:before { content: $fa-var-comments; }
143
+ .#{$fa-css-prefix}-thumbs-o-up:before { content: $fa-var-thumbs-o-up; }
144
+ .#{$fa-css-prefix}-thumbs-o-down:before { content: $fa-var-thumbs-o-down; }
145
+ .#{$fa-css-prefix}-star-half:before { content: $fa-var-star-half; }
146
+ .#{$fa-css-prefix}-heart-o:before { content: $fa-var-heart-o; }
147
+ .#{$fa-css-prefix}-sign-out:before { content: $fa-var-sign-out; }
148
+ .#{$fa-css-prefix}-linkedin-square:before { content: $fa-var-linkedin-square; }
149
+ .#{$fa-css-prefix}-thumb-tack:before { content: $fa-var-thumb-tack; }
150
+ .#{$fa-css-prefix}-external-link:before { content: $fa-var-external-link; }
151
+ .#{$fa-css-prefix}-sign-in:before { content: $fa-var-sign-in; }
152
+ .#{$fa-css-prefix}-trophy:before { content: $fa-var-trophy; }
153
+ .#{$fa-css-prefix}-github-square:before { content: $fa-var-github-square; }
154
+ .#{$fa-css-prefix}-upload:before { content: $fa-var-upload; }
155
+ .#{$fa-css-prefix}-lemon-o:before { content: $fa-var-lemon-o; }
156
+ .#{$fa-css-prefix}-phone:before { content: $fa-var-phone; }
157
+ .#{$fa-css-prefix}-square-o:before { content: $fa-var-square-o; }
158
+ .#{$fa-css-prefix}-bookmark-o:before { content: $fa-var-bookmark-o; }
159
+ .#{$fa-css-prefix}-phone-square:before { content: $fa-var-phone-square; }
160
+ .#{$fa-css-prefix}-twitter:before { content: $fa-var-twitter; }
161
+ .#{$fa-css-prefix}-facebook:before { content: $fa-var-facebook; }
162
+ .#{$fa-css-prefix}-github:before { content: $fa-var-github; }
163
+ .#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; }
164
+ .#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; }
165
+ .#{$fa-css-prefix}-rss:before { content: $fa-var-rss; }
166
+ .#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; }
167
+ .#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; }
168
+ .#{$fa-css-prefix}-bell:before { content: $fa-var-bell; }
169
+ .#{$fa-css-prefix}-certificate:before { content: $fa-var-certificate; }
170
+ .#{$fa-css-prefix}-hand-o-right:before { content: $fa-var-hand-o-right; }
171
+ .#{$fa-css-prefix}-hand-o-left:before { content: $fa-var-hand-o-left; }
172
+ .#{$fa-css-prefix}-hand-o-up:before { content: $fa-var-hand-o-up; }
173
+ .#{$fa-css-prefix}-hand-o-down:before { content: $fa-var-hand-o-down; }
174
+ .#{$fa-css-prefix}-arrow-circle-left:before { content: $fa-var-arrow-circle-left; }
175
+ .#{$fa-css-prefix}-arrow-circle-right:before { content: $fa-var-arrow-circle-right; }
176
+ .#{$fa-css-prefix}-arrow-circle-up:before { content: $fa-var-arrow-circle-up; }
177
+ .#{$fa-css-prefix}-arrow-circle-down:before { content: $fa-var-arrow-circle-down; }
178
+ .#{$fa-css-prefix}-globe:before { content: $fa-var-globe; }
179
+ .#{$fa-css-prefix}-wrench:before { content: $fa-var-wrench; }
180
+ .#{$fa-css-prefix}-tasks:before { content: $fa-var-tasks; }
181
+ .#{$fa-css-prefix}-filter:before { content: $fa-var-filter; }
182
+ .#{$fa-css-prefix}-briefcase:before { content: $fa-var-briefcase; }
183
+ .#{$fa-css-prefix}-arrows-alt:before { content: $fa-var-arrows-alt; }
184
+ .#{$fa-css-prefix}-group:before,
185
+ .#{$fa-css-prefix}-users:before { content: $fa-var-users; }
186
+ .#{$fa-css-prefix}-chain:before,
187
+ .#{$fa-css-prefix}-link:before { content: $fa-var-link; }
188
+ .#{$fa-css-prefix}-cloud:before { content: $fa-var-cloud; }
189
+ .#{$fa-css-prefix}-flask:before { content: $fa-var-flask; }
190
+ .#{$fa-css-prefix}-cut:before,
191
+ .#{$fa-css-prefix}-scissors:before { content: $fa-var-scissors; }
192
+ .#{$fa-css-prefix}-copy:before,
193
+ .#{$fa-css-prefix}-files-o:before { content: $fa-var-files-o; }
194
+ .#{$fa-css-prefix}-paperclip:before { content: $fa-var-paperclip; }
195
+ .#{$fa-css-prefix}-save:before,
196
+ .#{$fa-css-prefix}-floppy-o:before { content: $fa-var-floppy-o; }
197
+ .#{$fa-css-prefix}-square:before { content: $fa-var-square; }
198
+ .#{$fa-css-prefix}-navicon:before,
199
+ .#{$fa-css-prefix}-reorder:before,
200
+ .#{$fa-css-prefix}-bars:before { content: $fa-var-bars; }
201
+ .#{$fa-css-prefix}-list-ul:before { content: $fa-var-list-ul; }
202
+ .#{$fa-css-prefix}-list-ol:before { content: $fa-var-list-ol; }
203
+ .#{$fa-css-prefix}-strikethrough:before { content: $fa-var-strikethrough; }
204
+ .#{$fa-css-prefix}-underline:before { content: $fa-var-underline; }
205
+ .#{$fa-css-prefix}-table:before { content: $fa-var-table; }
206
+ .#{$fa-css-prefix}-magic:before { content: $fa-var-magic; }
207
+ .#{$fa-css-prefix}-truck:before { content: $fa-var-truck; }
208
+ .#{$fa-css-prefix}-pinterest:before { content: $fa-var-pinterest; }
209
+ .#{$fa-css-prefix}-pinterest-square:before { content: $fa-var-pinterest-square; }
210
+ .#{$fa-css-prefix}-google-plus-square:before { content: $fa-var-google-plus-square; }
211
+ .#{$fa-css-prefix}-google-plus:before { content: $fa-var-google-plus; }
212
+ .#{$fa-css-prefix}-money:before { content: $fa-var-money; }
213
+ .#{$fa-css-prefix}-caret-down:before { content: $fa-var-caret-down; }
214
+ .#{$fa-css-prefix}-caret-up:before { content: $fa-var-caret-up; }
215
+ .#{$fa-css-prefix}-caret-left:before { content: $fa-var-caret-left; }
216
+ .#{$fa-css-prefix}-caret-right:before { content: $fa-var-caret-right; }
217
+ .#{$fa-css-prefix}-columns:before { content: $fa-var-columns; }
218
+ .#{$fa-css-prefix}-unsorted:before,
219
+ .#{$fa-css-prefix}-sort:before { content: $fa-var-sort; }
220
+ .#{$fa-css-prefix}-sort-down:before,
221
+ .#{$fa-css-prefix}-sort-desc:before { content: $fa-var-sort-desc; }
222
+ .#{$fa-css-prefix}-sort-up:before,
223
+ .#{$fa-css-prefix}-sort-asc:before { content: $fa-var-sort-asc; }
224
+ .#{$fa-css-prefix}-envelope:before { content: $fa-var-envelope; }
225
+ .#{$fa-css-prefix}-linkedin:before { content: $fa-var-linkedin; }
226
+ .#{$fa-css-prefix}-rotate-left:before,
227
+ .#{$fa-css-prefix}-undo:before { content: $fa-var-undo; }
228
+ .#{$fa-css-prefix}-legal:before,
229
+ .#{$fa-css-prefix}-gavel:before { content: $fa-var-gavel; }
230
+ .#{$fa-css-prefix}-dashboard:before,
231
+ .#{$fa-css-prefix}-tachometer:before { content: $fa-var-tachometer; }
232
+ .#{$fa-css-prefix}-comment-o:before { content: $fa-var-comment-o; }
233
+ .#{$fa-css-prefix}-comments-o:before { content: $fa-var-comments-o; }
234
+ .#{$fa-css-prefix}-flash:before,
235
+ .#{$fa-css-prefix}-bolt:before { content: $fa-var-bolt; }
236
+ .#{$fa-css-prefix}-sitemap:before { content: $fa-var-sitemap; }
237
+ .#{$fa-css-prefix}-umbrella:before { content: $fa-var-umbrella; }
238
+ .#{$fa-css-prefix}-paste:before,
239
+ .#{$fa-css-prefix}-clipboard:before { content: $fa-var-clipboard; }
240
+ .#{$fa-css-prefix}-lightbulb-o:before { content: $fa-var-lightbulb-o; }
241
+ .#{$fa-css-prefix}-exchange:before { content: $fa-var-exchange; }
242
+ .#{$fa-css-prefix}-cloud-download:before { content: $fa-var-cloud-download; }
243
+ .#{$fa-css-prefix}-cloud-upload:before { content: $fa-var-cloud-upload; }
244
+ .#{$fa-css-prefix}-user-md:before { content: $fa-var-user-md; }
245
+ .#{$fa-css-prefix}-stethoscope:before { content: $fa-var-stethoscope; }
246
+ .#{$fa-css-prefix}-suitcase:before { content: $fa-var-suitcase; }
247
+ .#{$fa-css-prefix}-bell-o:before { content: $fa-var-bell-o; }
248
+ .#{$fa-css-prefix}-coffee:before { content: $fa-var-coffee; }
249
+ .#{$fa-css-prefix}-cutlery:before { content: $fa-var-cutlery; }
250
+ .#{$fa-css-prefix}-file-text-o:before { content: $fa-var-file-text-o; }
251
+ .#{$fa-css-prefix}-building-o:before { content: $fa-var-building-o; }
252
+ .#{$fa-css-prefix}-hospital-o:before { content: $fa-var-hospital-o; }
253
+ .#{$fa-css-prefix}-ambulance:before { content: $fa-var-ambulance; }
254
+ .#{$fa-css-prefix}-medkit:before { content: $fa-var-medkit; }
255
+ .#{$fa-css-prefix}-fighter-jet:before { content: $fa-var-fighter-jet; }
256
+ .#{$fa-css-prefix}-beer:before { content: $fa-var-beer; }
257
+ .#{$fa-css-prefix}-h-square:before { content: $fa-var-h-square; }
258
+ .#{$fa-css-prefix}-plus-square:before { content: $fa-var-plus-square; }
259
+ .#{$fa-css-prefix}-angle-double-left:before { content: $fa-var-angle-double-left; }
260
+ .#{$fa-css-prefix}-angle-double-right:before { content: $fa-var-angle-double-right; }
261
+ .#{$fa-css-prefix}-angle-double-up:before { content: $fa-var-angle-double-up; }
262
+ .#{$fa-css-prefix}-angle-double-down:before { content: $fa-var-angle-double-down; }
263
+ .#{$fa-css-prefix}-angle-left:before { content: $fa-var-angle-left; }
264
+ .#{$fa-css-prefix}-angle-right:before { content: $fa-var-angle-right; }
265
+ .#{$fa-css-prefix}-angle-up:before { content: $fa-var-angle-up; }
266
+ .#{$fa-css-prefix}-angle-down:before { content: $fa-var-angle-down; }
267
+ .#{$fa-css-prefix}-desktop:before { content: $fa-var-desktop; }
268
+ .#{$fa-css-prefix}-laptop:before { content: $fa-var-laptop; }
269
+ .#{$fa-css-prefix}-tablet:before { content: $fa-var-tablet; }
270
+ .#{$fa-css-prefix}-mobile-phone:before,
271
+ .#{$fa-css-prefix}-mobile:before { content: $fa-var-mobile; }
272
+ .#{$fa-css-prefix}-circle-o:before { content: $fa-var-circle-o; }
273
+ .#{$fa-css-prefix}-quote-left:before { content: $fa-var-quote-left; }
274
+ .#{$fa-css-prefix}-quote-right:before { content: $fa-var-quote-right; }
275
+ .#{$fa-css-prefix}-spinner:before { content: $fa-var-spinner; }
276
+ .#{$fa-css-prefix}-circle:before { content: $fa-var-circle; }
277
+ .#{$fa-css-prefix}-mail-reply:before,
278
+ .#{$fa-css-prefix}-reply:before { content: $fa-var-reply; }
279
+ .#{$fa-css-prefix}-github-alt:before { content: $fa-var-github-alt; }
280
+ .#{$fa-css-prefix}-folder-o:before { content: $fa-var-folder-o; }
281
+ .#{$fa-css-prefix}-folder-open-o:before { content: $fa-var-folder-open-o; }
282
+ .#{$fa-css-prefix}-smile-o:before { content: $fa-var-smile-o; }
283
+ .#{$fa-css-prefix}-frown-o:before { content: $fa-var-frown-o; }
284
+ .#{$fa-css-prefix}-meh-o:before { content: $fa-var-meh-o; }
285
+ .#{$fa-css-prefix}-gamepad:before { content: $fa-var-gamepad; }
286
+ .#{$fa-css-prefix}-keyboard-o:before { content: $fa-var-keyboard-o; }
287
+ .#{$fa-css-prefix}-flag-o:before { content: $fa-var-flag-o; }
288
+ .#{$fa-css-prefix}-flag-checkered:before { content: $fa-var-flag-checkered; }
289
+ .#{$fa-css-prefix}-terminal:before { content: $fa-var-terminal; }
290
+ .#{$fa-css-prefix}-code:before { content: $fa-var-code; }
291
+ .#{$fa-css-prefix}-mail-reply-all:before,
292
+ .#{$fa-css-prefix}-reply-all:before { content: $fa-var-reply-all; }
293
+ .#{$fa-css-prefix}-star-half-empty:before,
294
+ .#{$fa-css-prefix}-star-half-full:before,
295
+ .#{$fa-css-prefix}-star-half-o:before { content: $fa-var-star-half-o; }
296
+ .#{$fa-css-prefix}-location-arrow:before { content: $fa-var-location-arrow; }
297
+ .#{$fa-css-prefix}-crop:before { content: $fa-var-crop; }
298
+ .#{$fa-css-prefix}-code-fork:before { content: $fa-var-code-fork; }
299
+ .#{$fa-css-prefix}-unlink:before,
300
+ .#{$fa-css-prefix}-chain-broken:before { content: $fa-var-chain-broken; }
301
+ .#{$fa-css-prefix}-question:before { content: $fa-var-question; }
302
+ .#{$fa-css-prefix}-info:before { content: $fa-var-info; }
303
+ .#{$fa-css-prefix}-exclamation:before { content: $fa-var-exclamation; }
304
+ .#{$fa-css-prefix}-superscript:before { content: $fa-var-superscript; }
305
+ .#{$fa-css-prefix}-subscript:before { content: $fa-var-subscript; }
306
+ .#{$fa-css-prefix}-eraser:before { content: $fa-var-eraser; }
307
+ .#{$fa-css-prefix}-puzzle-piece:before { content: $fa-var-puzzle-piece; }
308
+ .#{$fa-css-prefix}-microphone:before { content: $fa-var-microphone; }
309
+ .#{$fa-css-prefix}-microphone-slash:before { content: $fa-var-microphone-slash; }
310
+ .#{$fa-css-prefix}-shield:before { content: $fa-var-shield; }
311
+ .#{$fa-css-prefix}-calendar-o:before { content: $fa-var-calendar-o; }
312
+ .#{$fa-css-prefix}-fire-extinguisher:before { content: $fa-var-fire-extinguisher; }
313
+ .#{$fa-css-prefix}-rocket:before { content: $fa-var-rocket; }
314
+ .#{$fa-css-prefix}-maxcdn:before { content: $fa-var-maxcdn; }
315
+ .#{$fa-css-prefix}-chevron-circle-left:before { content: $fa-var-chevron-circle-left; }
316
+ .#{$fa-css-prefix}-chevron-circle-right:before { content: $fa-var-chevron-circle-right; }
317
+ .#{$fa-css-prefix}-chevron-circle-up:before { content: $fa-var-chevron-circle-up; }
318
+ .#{$fa-css-prefix}-chevron-circle-down:before { content: $fa-var-chevron-circle-down; }
319
+ .#{$fa-css-prefix}-html5:before { content: $fa-var-html5; }
320
+ .#{$fa-css-prefix}-css3:before { content: $fa-var-css3; }
321
+ .#{$fa-css-prefix}-anchor:before { content: $fa-var-anchor; }
322
+ .#{$fa-css-prefix}-unlock-alt:before { content: $fa-var-unlock-alt; }
323
+ .#{$fa-css-prefix}-bullseye:before { content: $fa-var-bullseye; }
324
+ .#{$fa-css-prefix}-ellipsis-h:before { content: $fa-var-ellipsis-h; }
325
+ .#{$fa-css-prefix}-ellipsis-v:before { content: $fa-var-ellipsis-v; }
326
+ .#{$fa-css-prefix}-rss-square:before { content: $fa-var-rss-square; }
327
+ .#{$fa-css-prefix}-play-circle:before { content: $fa-var-play-circle; }
328
+ .#{$fa-css-prefix}-ticket:before { content: $fa-var-ticket; }
329
+ .#{$fa-css-prefix}-minus-square:before { content: $fa-var-minus-square; }
330
+ .#{$fa-css-prefix}-minus-square-o:before { content: $fa-var-minus-square-o; }
331
+ .#{$fa-css-prefix}-level-up:before { content: $fa-var-level-up; }
332
+ .#{$fa-css-prefix}-level-down:before { content: $fa-var-level-down; }
333
+ .#{$fa-css-prefix}-check-square:before { content: $fa-var-check-square; }
334
+ .#{$fa-css-prefix}-pencil-square:before { content: $fa-var-pencil-square; }
335
+ .#{$fa-css-prefix}-external-link-square:before { content: $fa-var-external-link-square; }
336
+ .#{$fa-css-prefix}-share-square:before { content: $fa-var-share-square; }
337
+ .#{$fa-css-prefix}-compass:before { content: $fa-var-compass; }
338
+ .#{$fa-css-prefix}-toggle-down:before,
339
+ .#{$fa-css-prefix}-caret-square-o-down:before { content: $fa-var-caret-square-o-down; }
340
+ .#{$fa-css-prefix}-toggle-up:before,
341
+ .#{$fa-css-prefix}-caret-square-o-up:before { content: $fa-var-caret-square-o-up; }
342
+ .#{$fa-css-prefix}-toggle-right:before,
343
+ .#{$fa-css-prefix}-caret-square-o-right:before { content: $fa-var-caret-square-o-right; }
344
+ .#{$fa-css-prefix}-euro:before,
345
+ .#{$fa-css-prefix}-eur:before { content: $fa-var-eur; }
346
+ .#{$fa-css-prefix}-gbp:before { content: $fa-var-gbp; }
347
+ .#{$fa-css-prefix}-dollar:before,
348
+ .#{$fa-css-prefix}-usd:before { content: $fa-var-usd; }
349
+ .#{$fa-css-prefix}-rupee:before,
350
+ .#{$fa-css-prefix}-inr:before { content: $fa-var-inr; }
351
+ .#{$fa-css-prefix}-cny:before,
352
+ .#{$fa-css-prefix}-rmb:before,
353
+ .#{$fa-css-prefix}-yen:before,
354
+ .#{$fa-css-prefix}-jpy:before { content: $fa-var-jpy; }
355
+ .#{$fa-css-prefix}-ruble:before,
356
+ .#{$fa-css-prefix}-rouble:before,
357
+ .#{$fa-css-prefix}-rub:before { content: $fa-var-rub; }
358
+ .#{$fa-css-prefix}-won:before,
359
+ .#{$fa-css-prefix}-krw:before { content: $fa-var-krw; }
360
+ .#{$fa-css-prefix}-bitcoin:before,
361
+ .#{$fa-css-prefix}-btc:before { content: $fa-var-btc; }
362
+ .#{$fa-css-prefix}-file:before { content: $fa-var-file; }
363
+ .#{$fa-css-prefix}-file-text:before { content: $fa-var-file-text; }
364
+ .#{$fa-css-prefix}-sort-alpha-asc:before { content: $fa-var-sort-alpha-asc; }
365
+ .#{$fa-css-prefix}-sort-alpha-desc:before { content: $fa-var-sort-alpha-desc; }
366
+ .#{$fa-css-prefix}-sort-amount-asc:before { content: $fa-var-sort-amount-asc; }
367
+ .#{$fa-css-prefix}-sort-amount-desc:before { content: $fa-var-sort-amount-desc; }
368
+ .#{$fa-css-prefix}-sort-numeric-asc:before { content: $fa-var-sort-numeric-asc; }
369
+ .#{$fa-css-prefix}-sort-numeric-desc:before { content: $fa-var-sort-numeric-desc; }
370
+ .#{$fa-css-prefix}-thumbs-up:before { content: $fa-var-thumbs-up; }
371
+ .#{$fa-css-prefix}-thumbs-down:before { content: $fa-var-thumbs-down; }
372
+ .#{$fa-css-prefix}-youtube-square:before { content: $fa-var-youtube-square; }
373
+ .#{$fa-css-prefix}-youtube:before { content: $fa-var-youtube; }
374
+ .#{$fa-css-prefix}-xing:before { content: $fa-var-xing; }
375
+ .#{$fa-css-prefix}-xing-square:before { content: $fa-var-xing-square; }
376
+ .#{$fa-css-prefix}-youtube-play:before { content: $fa-var-youtube-play; }
377
+ .#{$fa-css-prefix}-dropbox:before { content: $fa-var-dropbox; }
378
+ .#{$fa-css-prefix}-stack-overflow:before { content: $fa-var-stack-overflow; }
379
+ .#{$fa-css-prefix}-instagram:before { content: $fa-var-instagram; }
380
+ .#{$fa-css-prefix}-flickr:before { content: $fa-var-flickr; }
381
+ .#{$fa-css-prefix}-adn:before { content: $fa-var-adn; }
382
+ .#{$fa-css-prefix}-bitbucket:before { content: $fa-var-bitbucket; }
383
+ .#{$fa-css-prefix}-bitbucket-square:before { content: $fa-var-bitbucket-square; }
384
+ .#{$fa-css-prefix}-tumblr:before { content: $fa-var-tumblr; }
385
+ .#{$fa-css-prefix}-tumblr-square:before { content: $fa-var-tumblr-square; }
386
+ .#{$fa-css-prefix}-long-arrow-down:before { content: $fa-var-long-arrow-down; }
387
+ .#{$fa-css-prefix}-long-arrow-up:before { content: $fa-var-long-arrow-up; }
388
+ .#{$fa-css-prefix}-long-arrow-left:before { content: $fa-var-long-arrow-left; }
389
+ .#{$fa-css-prefix}-long-arrow-right:before { content: $fa-var-long-arrow-right; }
390
+ .#{$fa-css-prefix}-apple:before { content: $fa-var-apple; }
391
+ .#{$fa-css-prefix}-windows:before { content: $fa-var-windows; }
392
+ .#{$fa-css-prefix}-android:before { content: $fa-var-android; }
393
+ .#{$fa-css-prefix}-linux:before { content: $fa-var-linux; }
394
+ .#{$fa-css-prefix}-dribbble:before { content: $fa-var-dribbble; }
395
+ .#{$fa-css-prefix}-skype:before { content: $fa-var-skype; }
396
+ .#{$fa-css-prefix}-foursquare:before { content: $fa-var-foursquare; }
397
+ .#{$fa-css-prefix}-trello:before { content: $fa-var-trello; }
398
+ .#{$fa-css-prefix}-female:before { content: $fa-var-female; }
399
+ .#{$fa-css-prefix}-male:before { content: $fa-var-male; }
400
+ .#{$fa-css-prefix}-gittip:before { content: $fa-var-gittip; }
401
+ .#{$fa-css-prefix}-sun-o:before { content: $fa-var-sun-o; }
402
+ .#{$fa-css-prefix}-moon-o:before { content: $fa-var-moon-o; }
403
+ .#{$fa-css-prefix}-archive:before { content: $fa-var-archive; }
404
+ .#{$fa-css-prefix}-bug:before { content: $fa-var-bug; }
405
+ .#{$fa-css-prefix}-vk:before { content: $fa-var-vk; }
406
+ .#{$fa-css-prefix}-weibo:before { content: $fa-var-weibo; }
407
+ .#{$fa-css-prefix}-renren:before { content: $fa-var-renren; }
408
+ .#{$fa-css-prefix}-pagelines:before { content: $fa-var-pagelines; }
409
+ .#{$fa-css-prefix}-stack-exchange:before { content: $fa-var-stack-exchange; }
410
+ .#{$fa-css-prefix}-arrow-circle-o-right:before { content: $fa-var-arrow-circle-o-right; }
411
+ .#{$fa-css-prefix}-arrow-circle-o-left:before { content: $fa-var-arrow-circle-o-left; }
412
+ .#{$fa-css-prefix}-toggle-left:before,
413
+ .#{$fa-css-prefix}-caret-square-o-left:before { content: $fa-var-caret-square-o-left; }
414
+ .#{$fa-css-prefix}-dot-circle-o:before { content: $fa-var-dot-circle-o; }
415
+ .#{$fa-css-prefix}-wheelchair:before { content: $fa-var-wheelchair; }
416
+ .#{$fa-css-prefix}-vimeo-square:before { content: $fa-var-vimeo-square; }
417
+ .#{$fa-css-prefix}-turkish-lira:before,
418
+ .#{$fa-css-prefix}-try:before { content: $fa-var-try; }
419
+ .#{$fa-css-prefix}-plus-square-o:before { content: $fa-var-plus-square-o; }
420
+ .#{$fa-css-prefix}-space-shuttle:before { content: $fa-var-space-shuttle; }
421
+ .#{$fa-css-prefix}-slack:before { content: $fa-var-slack; }
422
+ .#{$fa-css-prefix}-envelope-square:before { content: $fa-var-envelope-square; }
423
+ .#{$fa-css-prefix}-wordpress:before { content: $fa-var-wordpress; }
424
+ .#{$fa-css-prefix}-openid:before { content: $fa-var-openid; }
425
+ .#{$fa-css-prefix}-institution:before,
426
+ .#{$fa-css-prefix}-bank:before,
427
+ .#{$fa-css-prefix}-university:before { content: $fa-var-university; }
428
+ .#{$fa-css-prefix}-mortar-board:before,
429
+ .#{$fa-css-prefix}-graduation-cap:before { content: $fa-var-graduation-cap; }
430
+ .#{$fa-css-prefix}-yahoo:before { content: $fa-var-yahoo; }
431
+ .#{$fa-css-prefix}-google:before { content: $fa-var-google; }
432
+ .#{$fa-css-prefix}-reddit:before { content: $fa-var-reddit; }
433
+ .#{$fa-css-prefix}-reddit-square:before { content: $fa-var-reddit-square; }
434
+ .#{$fa-css-prefix}-stumbleupon-circle:before { content: $fa-var-stumbleupon-circle; }
435
+ .#{$fa-css-prefix}-stumbleupon:before { content: $fa-var-stumbleupon; }
436
+ .#{$fa-css-prefix}-delicious:before { content: $fa-var-delicious; }
437
+ .#{$fa-css-prefix}-digg:before { content: $fa-var-digg; }
438
+ .#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; }
439
+ .#{$fa-css-prefix}-pied-piper-alt:before { content: $fa-var-pied-piper-alt; }
440
+ .#{$fa-css-prefix}-drupal:before { content: $fa-var-drupal; }
441
+ .#{$fa-css-prefix}-joomla:before { content: $fa-var-joomla; }
442
+ .#{$fa-css-prefix}-language:before { content: $fa-var-language; }
443
+ .#{$fa-css-prefix}-fax:before { content: $fa-var-fax; }
444
+ .#{$fa-css-prefix}-building:before { content: $fa-var-building; }
445
+ .#{$fa-css-prefix}-child:before { content: $fa-var-child; }
446
+ .#{$fa-css-prefix}-paw:before { content: $fa-var-paw; }
447
+ .#{$fa-css-prefix}-spoon:before { content: $fa-var-spoon; }
448
+ .#{$fa-css-prefix}-cube:before { content: $fa-var-cube; }
449
+ .#{$fa-css-prefix}-cubes:before { content: $fa-var-cubes; }
450
+ .#{$fa-css-prefix}-behance:before { content: $fa-var-behance; }
451
+ .#{$fa-css-prefix}-behance-square:before { content: $fa-var-behance-square; }
452
+ .#{$fa-css-prefix}-steam:before { content: $fa-var-steam; }
453
+ .#{$fa-css-prefix}-steam-square:before { content: $fa-var-steam-square; }
454
+ .#{$fa-css-prefix}-recycle:before { content: $fa-var-recycle; }
455
+ .#{$fa-css-prefix}-automobile:before,
456
+ .#{$fa-css-prefix}-car:before { content: $fa-var-car; }
457
+ .#{$fa-css-prefix}-cab:before,
458
+ .#{$fa-css-prefix}-taxi:before { content: $fa-var-taxi; }
459
+ .#{$fa-css-prefix}-tree:before { content: $fa-var-tree; }
460
+ .#{$fa-css-prefix}-spotify:before { content: $fa-var-spotify; }
461
+ .#{$fa-css-prefix}-deviantart:before { content: $fa-var-deviantart; }
462
+ .#{$fa-css-prefix}-soundcloud:before { content: $fa-var-soundcloud; }
463
+ .#{$fa-css-prefix}-database:before { content: $fa-var-database; }
464
+ .#{$fa-css-prefix}-file-pdf-o:before { content: $fa-var-file-pdf-o; }
465
+ .#{$fa-css-prefix}-file-word-o:before { content: $fa-var-file-word-o; }
466
+ .#{$fa-css-prefix}-file-excel-o:before { content: $fa-var-file-excel-o; }
467
+ .#{$fa-css-prefix}-file-powerpoint-o:before { content: $fa-var-file-powerpoint-o; }
468
+ .#{$fa-css-prefix}-file-photo-o:before,
469
+ .#{$fa-css-prefix}-file-picture-o:before,
470
+ .#{$fa-css-prefix}-file-image-o:before { content: $fa-var-file-image-o; }
471
+ .#{$fa-css-prefix}-file-zip-o:before,
472
+ .#{$fa-css-prefix}-file-archive-o:before { content: $fa-var-file-archive-o; }
473
+ .#{$fa-css-prefix}-file-sound-o:before,
474
+ .#{$fa-css-prefix}-file-audio-o:before { content: $fa-var-file-audio-o; }
475
+ .#{$fa-css-prefix}-file-movie-o:before,
476
+ .#{$fa-css-prefix}-file-video-o:before { content: $fa-var-file-video-o; }
477
+ .#{$fa-css-prefix}-file-code-o:before { content: $fa-var-file-code-o; }
478
+ .#{$fa-css-prefix}-vine:before { content: $fa-var-vine; }
479
+ .#{$fa-css-prefix}-codepen:before { content: $fa-var-codepen; }
480
+ .#{$fa-css-prefix}-jsfiddle:before { content: $fa-var-jsfiddle; }
481
+ .#{$fa-css-prefix}-life-bouy:before,
482
+ .#{$fa-css-prefix}-life-buoy:before,
483
+ .#{$fa-css-prefix}-life-saver:before,
484
+ .#{$fa-css-prefix}-support:before,
485
+ .#{$fa-css-prefix}-life-ring:before { content: $fa-var-life-ring; }
486
+ .#{$fa-css-prefix}-circle-o-notch:before { content: $fa-var-circle-o-notch; }
487
+ .#{$fa-css-prefix}-ra:before,
488
+ .#{$fa-css-prefix}-rebel:before { content: $fa-var-rebel; }
489
+ .#{$fa-css-prefix}-ge:before,
490
+ .#{$fa-css-prefix}-empire:before { content: $fa-var-empire; }
491
+ .#{$fa-css-prefix}-git-square:before { content: $fa-var-git-square; }
492
+ .#{$fa-css-prefix}-git:before { content: $fa-var-git; }
493
+ .#{$fa-css-prefix}-hacker-news:before { content: $fa-var-hacker-news; }
494
+ .#{$fa-css-prefix}-tencent-weibo:before { content: $fa-var-tencent-weibo; }
495
+ .#{$fa-css-prefix}-qq:before { content: $fa-var-qq; }
496
+ .#{$fa-css-prefix}-wechat:before,
497
+ .#{$fa-css-prefix}-weixin:before { content: $fa-var-weixin; }
498
+ .#{$fa-css-prefix}-send:before,
499
+ .#{$fa-css-prefix}-paper-plane:before { content: $fa-var-paper-plane; }
500
+ .#{$fa-css-prefix}-send-o:before,
501
+ .#{$fa-css-prefix}-paper-plane-o:before { content: $fa-var-paper-plane-o; }
502
+ .#{$fa-css-prefix}-history:before { content: $fa-var-history; }
503
+ .#{$fa-css-prefix}-circle-thin:before { content: $fa-var-circle-thin; }
504
+ .#{$fa-css-prefix}-header:before { content: $fa-var-header; }
505
+ .#{$fa-css-prefix}-paragraph:before { content: $fa-var-paragraph; }
506
+ .#{$fa-css-prefix}-sliders:before { content: $fa-var-sliders; }
507
+ .#{$fa-css-prefix}-share-alt:before { content: $fa-var-share-alt; }
508
+ .#{$fa-css-prefix}-share-alt-square:before { content: $fa-var-share-alt-square; }
509
+ .#{$fa-css-prefix}-bomb:before { content: $fa-var-bomb; }
510
+ .#{$fa-css-prefix}-soccer-ball-o:before,
511
+ .#{$fa-css-prefix}-futbol-o:before { content: $fa-var-futbol-o; }
512
+ .#{$fa-css-prefix}-tty:before { content: $fa-var-tty; }
513
+ .#{$fa-css-prefix}-binoculars:before { content: $fa-var-binoculars; }
514
+ .#{$fa-css-prefix}-plug:before { content: $fa-var-plug; }
515
+ .#{$fa-css-prefix}-slideshare:before { content: $fa-var-slideshare; }
516
+ .#{$fa-css-prefix}-twitch:before { content: $fa-var-twitch; }
517
+ .#{$fa-css-prefix}-yelp:before { content: $fa-var-yelp; }
518
+ .#{$fa-css-prefix}-newspaper-o:before { content: $fa-var-newspaper-o; }
519
+ .#{$fa-css-prefix}-wifi:before { content: $fa-var-wifi; }
520
+ .#{$fa-css-prefix}-calculator:before { content: $fa-var-calculator; }
521
+ .#{$fa-css-prefix}-paypal:before { content: $fa-var-paypal; }
522
+ .#{$fa-css-prefix}-google-wallet:before { content: $fa-var-google-wallet; }
523
+ .#{$fa-css-prefix}-cc-visa:before { content: $fa-var-cc-visa; }
524
+ .#{$fa-css-prefix}-cc-mastercard:before { content: $fa-var-cc-mastercard; }
525
+ .#{$fa-css-prefix}-cc-discover:before { content: $fa-var-cc-discover; }
526
+ .#{$fa-css-prefix}-cc-amex:before { content: $fa-var-cc-amex; }
527
+ .#{$fa-css-prefix}-cc-paypal:before { content: $fa-var-cc-paypal; }
528
+ .#{$fa-css-prefix}-cc-stripe:before { content: $fa-var-cc-stripe; }
529
+ .#{$fa-css-prefix}-bell-slash:before { content: $fa-var-bell-slash; }
530
+ .#{$fa-css-prefix}-bell-slash-o:before { content: $fa-var-bell-slash-o; }
531
+ .#{$fa-css-prefix}-trash:before { content: $fa-var-trash; }
532
+ .#{$fa-css-prefix}-copyright:before { content: $fa-var-copyright; }
533
+ .#{$fa-css-prefix}-at:before { content: $fa-var-at; }
534
+ .#{$fa-css-prefix}-eyedropper:before { content: $fa-var-eyedropper; }
535
+ .#{$fa-css-prefix}-paint-brush:before { content: $fa-var-paint-brush; }
536
+ .#{$fa-css-prefix}-birthday-cake:before { content: $fa-var-birthday-cake; }
537
+ .#{$fa-css-prefix}-area-chart:before { content: $fa-var-area-chart; }
538
+ .#{$fa-css-prefix}-pie-chart:before { content: $fa-var-pie-chart; }
539
+ .#{$fa-css-prefix}-line-chart:before { content: $fa-var-line-chart; }
540
+ .#{$fa-css-prefix}-lastfm:before { content: $fa-var-lastfm; }
541
+ .#{$fa-css-prefix}-lastfm-square:before { content: $fa-var-lastfm-square; }
542
+ .#{$fa-css-prefix}-toggle-off:before { content: $fa-var-toggle-off; }
543
+ .#{$fa-css-prefix}-toggle-on:before { content: $fa-var-toggle-on; }
544
+ .#{$fa-css-prefix}-bicycle:before { content: $fa-var-bicycle; }
545
+ .#{$fa-css-prefix}-bus:before { content: $fa-var-bus; }
546
+ .#{$fa-css-prefix}-ioxhost:before { content: $fa-var-ioxhost; }
547
+ .#{$fa-css-prefix}-angellist:before { content: $fa-var-angellist; }
548
+ .#{$fa-css-prefix}-cc:before { content: $fa-var-cc; }
549
+ .#{$fa-css-prefix}-shekel:before,
550
+ .#{$fa-css-prefix}-sheqel:before,
551
+ .#{$fa-css-prefix}-ils:before { content: $fa-var-ils; }
552
+ .#{$fa-css-prefix}-meanpath:before { content: $fa-var-meanpath; }
css/font-awesome/scss/_larger.scss ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Icon Sizes
2
+ // -------------------------
3
+
4
+ /* makes the font 33% larger relative to the icon container */
5
+ .#{$fa-css-prefix}-lg {
6
+ font-size: (4em / 3);
7
+ line-height: (3em / 4);
8
+ vertical-align: -15%;
9
+ }
10
+ .#{$fa-css-prefix}-2x { font-size: 2em; }
11
+ .#{$fa-css-prefix}-3x { font-size: 3em; }
12
+ .#{$fa-css-prefix}-4x { font-size: 4em; }
13
+ .#{$fa-css-prefix}-5x { font-size: 5em; }
css/font-awesome/scss/_list.scss ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // List Icons
2
+ // -------------------------
3
+
4
+ .#{$fa-css-prefix}-ul {
5
+ padding-left: 0;
6
+ margin-left: $fa-li-width;
7
+ list-style-type: none;
8
+ > li { position: relative; }
9
+ }
10
+ .#{$fa-css-prefix}-li {
11
+ position: absolute;
12
+ left: -$fa-li-width;
13
+ width: $fa-li-width;
14
+ top: (2em / 14);
15
+ text-align: center;
16
+ &.#{$fa-css-prefix}-lg {
17
+ left: -$fa-li-width + (4em / 14);
18
+ }
19
+ }
css/font-awesome/scss/_mixins.scss ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Mixins
2
+ // --------------------------
3
+
4
+ @mixin fa-icon() {
5
+ display: inline-block;
6
+ font: normal normal normal 14px/1 FontAwesome; // shortening font declaration
7
+ font-size: inherit; // can't have font-size inherit on line above, so need to override
8
+ text-rendering: auto; // optimizelegibility throws things off #1094
9
+ -webkit-font-smoothing: antialiased;
10
+ -moz-osx-font-smoothing: grayscale;
11
+ }
12
+
13
+ @mixin fa-icon-rotate($degrees, $rotation) {
14
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation});
15
+ -webkit-transform: rotate($degrees);
16
+ -ms-transform: rotate($degrees);
17
+ transform: rotate($degrees);
18
+ }
19
+
20
+ @mixin fa-icon-flip($horiz, $vert, $rotation) {
21
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation});
22
+ -webkit-transform: scale($horiz, $vert);
23
+ -ms-transform: scale($horiz, $vert);
24
+ transform: scale($horiz, $vert);
25
+ }
css/font-awesome/scss/_path.scss ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* FONT PATH
2
+ * -------------------------- */
3
+
4
+ @font-face {
5
+ font-family: 'FontAwesome';
6
+ src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}');
7
+ src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'),
8
+ url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'),
9
+ url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'),
10
+ url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg');
11
+ //src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
12
+ font-weight: normal;
13
+ font-style: normal;
14
+ }
css/font-awesome/scss/_rotated-flipped.scss ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Rotated & Flipped Icons
2
+ // -------------------------
3
+
4
+ .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); }
5
+ .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }
6
+ .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }
7
+
8
+ .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }
9
+ .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); }
10
+
11
+ // Hook for IE8-9
12
+ // -------------------------
13
+
14
+ :root .#{$fa-css-prefix}-rotate-90,
15
+ :root .#{$fa-css-prefix}-rotate-180,
16
+ :root .#{$fa-css-prefix}-rotate-270,
17
+ :root .#{$fa-css-prefix}-flip-horizontal,
18
+ :root .#{$fa-css-prefix}-flip-vertical {
19
+ filter: none;
20
+ }
css/font-awesome/scss/_spinning.scss ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Spinning Icons
2
+ // --------------------------
3
+
4
+ .#{$fa-css-prefix}-spin {
5
+ -webkit-animation: fa-spin 2s infinite linear;
6
+ animation: fa-spin 2s infinite linear;
7
+ }
8
+
9
+ @-webkit-keyframes fa-spin {
10
+ 0% {
11
+ -webkit-transform: rotate(0deg);
12
+ transform: rotate(0deg);
13
+ }
14
+ 100% {
15
+ -webkit-transform: rotate(359deg);
16
+ transform: rotate(359deg);
17
+ }
18
+ }
19
+
20
+ @keyframes fa-spin {
21
+ 0% {
22
+ -webkit-transform: rotate(0deg);
23
+ transform: rotate(0deg);
24
+ }
25
+ 100% {
26
+ -webkit-transform: rotate(359deg);
27
+ transform: rotate(359deg);
28
+ }
29
+ }
css/font-awesome/scss/_stacked.scss ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Stacked Icons
2
+ // -------------------------
3
+
4
+ .#{$fa-css-prefix}-stack {
5
+ position: relative;
6
+ display: inline-block;
7
+ width: 2em;
8
+ height: 2em;
9
+ line-height: 2em;
10
+ vertical-align: middle;
11
+ }
12
+ .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x {
13
+ position: absolute;
14
+ left: 0;
15
+ width: 100%;
16
+ text-align: center;
17
+ }
18
+ .#{$fa-css-prefix}-stack-1x { line-height: inherit; }
19
+ .#{$fa-css-prefix}-stack-2x { font-size: 2em; }
20
+ .#{$fa-css-prefix}-inverse { color: $fa-inverse; }
css/font-awesome/scss/_variables.scss ADDED
@@ -0,0 +1,561 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Variables
2
+ // --------------------------
3
+
4
+ $fa-font-path: "../fonts" !default;
5
+ //$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts" !default; // for referencing Bootstrap CDN font files directly
6
+ $fa-css-prefix: fa !default;
7
+ $fa-version: "4.2.0" !default;
8
+ $fa-border-color: #eee !default;
9
+ $fa-inverse: #fff !default;
10
+ $fa-li-width: (30em / 14) !default;
11
+
12
+ $fa-var-adjust: "\f042";
13
+ $fa-var-adn: "\f170";
14
+ $fa-var-align-center: "\f037";
15
+ $fa-var-align-justify: "\f039";
16
+ $fa-var-align-left: "\f036";
17
+ $fa-var-align-right: "\f038";
18
+ $fa-var-ambulance: "\f0f9";
19
+ $fa-var-anchor: "\f13d";
20
+ $fa-var-android: "\f17b";
21
+ $fa-var-angellist: "\f209";
22
+ $fa-var-angle-double-down: "\f103";
23
+ $fa-var-angle-double-left: "\f100";
24
+ $fa-var-angle-double-right: "\f101";
25
+ $fa-var-angle-double-up: "\f102";
26
+ $fa-var-angle-down: "\f107";
27
+ $fa-var-angle-left: "\f104";
28
+ $fa-var-angle-right: "\f105";
29
+ $fa-var-angle-up: "\f106";
30
+ $fa-var-apple: "\f179";
31
+ $fa-var-archive: "\f187";
32
+ $fa-var-area-chart: "\f1fe";
33
+ $fa-var-arrow-circle-down: "\f0ab";
34
+ $fa-var-arrow-circle-left: "\f0a8";
35
+ $fa-var-arrow-circle-o-down: "\f01a";
36
+ $fa-var-arrow-circle-o-left: "\f190";
37
+ $fa-var-arrow-circle-o-right: "\f18e";
38
+ $fa-var-arrow-circle-o-up: "\f01b";
39
+ $fa-var-arrow-circle-right: "\f0a9";
40
+ $fa-var-arrow-circle-up: "\f0aa";
41
+ $fa-var-arrow-down: "\f063";
42
+ $fa-var-arrow-left: "\f060";
43
+ $fa-var-arrow-right: "\f061";
44
+ $fa-var-arrow-up: "\f062";
45
+ $fa-var-arrows: "\f047";
46
+ $fa-var-arrows-alt: "\f0b2";
47
+ $fa-var-arrows-h: "\f07e";
48
+ $fa-var-arrows-v: "\f07d";
49
+ $fa-var-asterisk: "\f069";
50
+ $fa-var-at: "\f1fa";
51
+ $fa-var-automobile: "\f1b9";
52
+ $fa-var-backward: "\f04a";
53
+ $fa-var-ban: "\f05e";
54
+ $fa-var-bank: "\f19c";
55
+ $fa-var-bar-chart: "\f080";
56
+ $fa-var-bar-chart-o: "\f080";
57
+ $fa-var-barcode: "\f02a";
58
+ $fa-var-bars: "\f0c9";
59
+ $fa-var-beer: "\f0fc";
60
+ $fa-var-behance: "\f1b4";
61
+ $fa-var-behance-square: "\f1b5";
62
+ $fa-var-bell: "\f0f3";
63
+ $fa-var-bell-o: "\f0a2";
64
+ $fa-var-bell-slash: "\f1f6";
65
+ $fa-var-bell-slash-o: "\f1f7";
66
+ $fa-var-bicycle: "\f206";
67
+ $fa-var-binoculars: "\f1e5";
68
+ $fa-var-birthday-cake: "\f1fd";
69
+ $fa-var-bitbucket: "\f171";
70
+ $fa-var-bitbucket-square: "\f172";
71
+ $fa-var-bitcoin: "\f15a";
72
+ $fa-var-bold: "\f032";
73
+ $fa-var-bolt: "\f0e7";
74
+ $fa-var-bomb: "\f1e2";
75
+ $fa-var-book: "\f02d";
76
+ $fa-var-bookmark: "\f02e";
77
+ $fa-var-bookmark-o: "\f097";
78
+ $fa-var-briefcase: "\f0b1";
79
+ $fa-var-btc: "\f15a";
80
+ $fa-var-bug: "\f188";
81
+ $fa-var-building: "\f1ad";
82
+ $fa-var-building-o: "\f0f7";
83
+ $fa-var-bullhorn: "\f0a1";
84
+ $fa-var-bullseye: "\f140";
85
+ $fa-var-bus: "\f207";
86
+ $fa-var-cab: "\f1ba";
87
+ $fa-var-calculator: "\f1ec";
88
+ $fa-var-calendar: "\f073";
89
+ $fa-var-calendar-o: "\f133";
90
+ $fa-var-camera: "\f030";
91
+ $fa-var-camera-retro: "\f083";
92
+ $fa-var-car: "\f1b9";
93
+ $fa-var-caret-down: "\f0d7";
94
+ $fa-var-caret-left: "\f0d9";
95
+ $fa-var-caret-right: "\f0da";
96
+ $fa-var-caret-square-o-down: "\f150";
97
+ $fa-var-caret-square-o-left: "\f191";
98
+ $fa-var-caret-square-o-right: "\f152";
99
+ $fa-var-caret-square-o-up: "\f151";
100
+ $fa-var-caret-up: "\f0d8";
101
+ $fa-var-cc: "\f20a";
102
+ $fa-var-cc-amex: "\f1f3";
103
+ $fa-var-cc-discover: "\f1f2";
104
+ $fa-var-cc-mastercard: "\f1f1";
105
+ $fa-var-cc-paypal: "\f1f4";
106
+ $fa-var-cc-stripe: "\f1f5";
107
+ $fa-var-cc-visa: "\f1f0";
108
+ $fa-var-certificate: "\f0a3";
109
+ $fa-var-chain: "\f0c1";
110
+ $fa-var-chain-broken: "\f127";
111
+ $fa-var-check: "\f00c";
112
+ $fa-var-check-circle: "\f058";
113
+ $fa-var-check-circle-o: "\f05d";
114
+ $fa-var-check-square: "\f14a";
115
+ $fa-var-check-square-o: "\f046";
116
+ $fa-var-chevron-circle-down: "\f13a";
117
+ $fa-var-chevron-circle-left: "\f137";
118
+ $fa-var-chevron-circle-right: "\f138";
119
+ $fa-var-chevron-circle-up: "\f139";
120
+ $fa-var-chevron-down: "\f078";
121
+ $fa-var-chevron-left: "\f053";
122
+ $fa-var-chevron-right: "\f054";
123
+ $fa-var-chevron-up: "\f077";
124
+ $fa-var-child: "\f1ae";
125
+ $fa-var-circle: "\f111";
126
+ $fa-var-circle-o: "\f10c";
127
+ $fa-var-circle-o-notch: "\f1ce";
128
+ $fa-var-circle-thin: "\f1db";
129
+ $fa-var-clipboard: "\f0ea";
130
+ $fa-var-clock-o: "\f017";
131
+ $fa-var-close: "\f00d";
132
+ $fa-var-cloud: "\f0c2";
133
+ $fa-var-cloud-download: "\f0ed";
134
+ $fa-var-cloud-upload: "\f0ee";
135
+ $fa-var-cny: "\f157";
136
+ $fa-var-code: "\f121";
137
+ $fa-var-code-fork: "\f126";
138
+ $fa-var-codepen: "\f1cb";
139
+ $fa-var-coffee: "\f0f4";
140
+ $fa-var-cog: "\f013";
141
+ $fa-var-cogs: "\f085";
142
+ $fa-var-columns: "\f0db";
143
+ $fa-var-comment: "\f075";
144
+ $fa-var-comment-o: "\f0e5";
145
+ $fa-var-comments: "\f086";
146
+ $fa-var-comments-o: "\f0e6";
147
+ $fa-var-compass: "\f14e";
148
+ $fa-var-compress: "\f066";
149
+ $fa-var-copy: "\f0c5";
150
+ $fa-var-copyright: "\f1f9";
151
+ $fa-var-credit-card: "\f09d";
152
+ $fa-var-crop: "\f125";
153
+ $fa-var-crosshairs: "\f05b";
154
+ $fa-var-css3: "\f13c";
155
+ $fa-var-cube: "\f1b2";
156
+ $fa-var-cubes: "\f1b3";
157
+ $fa-var-cut: "\f0c4";
158
+ $fa-var-cutlery: "\f0f5";
159
+ $fa-var-dashboard: "\f0e4";
160
+ $fa-var-database: "\f1c0";
161
+ $fa-var-dedent: "\f03b";
162
+ $fa-var-delicious: "\f1a5";
163
+ $fa-var-desktop: "\f108";
164
+ $fa-var-deviantart: "\f1bd";
165
+ $fa-var-digg: "\f1a6";
166
+ $fa-var-dollar: "\f155";
167
+ $fa-var-dot-circle-o: "\f192";
168
+ $fa-var-download: "\f019";
169
+ $fa-var-dribbble: "\f17d";
170
+ $fa-var-dropbox: "\f16b";
171
+ $fa-var-drupal: "\f1a9";
172
+ $fa-var-edit: "\f044";
173
+ $fa-var-eject: "\f052";
174
+ $fa-var-ellipsis-h: "\f141";
175
+ $fa-var-ellipsis-v: "\f142";
176
+ $fa-var-empire: "\f1d1";
177
+ $fa-var-envelope: "\f0e0";
178
+ $fa-var-envelope-o: "\f003";
179
+ $fa-var-envelope-square: "\f199";
180
+ $fa-var-eraser: "\f12d";
181
+ $fa-var-eur: "\f153";
182
+ $fa-var-euro: "\f153";
183
+ $fa-var-exchange: "\f0ec";
184
+ $fa-var-exclamation: "\f12a";
185
+ $fa-var-exclamation-circle: "\f06a";
186
+ $fa-var-exclamation-triangle: "\f071";
187
+ $fa-var-expand: "\f065";
188
+ $fa-var-external-link: "\f08e";
189
+ $fa-var-external-link-square: "\f14c";
190
+ $fa-var-eye: "\f06e";
191
+ $fa-var-eye-slash: "\f070";
192
+ $fa-var-eyedropper: "\f1fb";
193
+ $fa-var-facebook: "\f09a";
194
+ $fa-var-facebook-square: "\f082";
195
+ $fa-var-fast-backward: "\f049";
196
+ $fa-var-fast-forward: "\f050";
197
+ $fa-var-fax: "\f1ac";
198
+ $fa-var-female: "\f182";
199
+ $fa-var-fighter-jet: "\f0fb";
200
+ $fa-var-file: "\f15b";
201
+ $fa-var-file-archive-o: "\f1c6";
202
+ $fa-var-file-audio-o: "\f1c7";
203
+ $fa-var-file-code-o: "\f1c9";
204
+ $fa-var-file-excel-o: "\f1c3";
205
+ $fa-var-file-image-o: "\f1c5";
206
+ $fa-var-file-movie-o: "\f1c8";
207
+ $fa-var-file-o: "\f016";
208
+ $fa-var-file-pdf-o: "\f1c1";
209
+ $fa-var-file-photo-o: "\f1c5";
210
+ $fa-var-file-picture-o: "\f1c5";
211
+ $fa-var-file-powerpoint-o: "\f1c4";
212
+ $fa-var-file-sound-o: "\f1c7";
213
+ $fa-var-file-text: "\f15c";
214
+ $fa-var-file-text-o: "\f0f6";
215
+ $fa-var-file-video-o: "\f1c8";
216
+ $fa-var-file-word-o: "\f1c2";
217
+ $fa-var-file-zip-o: "\f1c6";
218
+ $fa-var-files-o: "\f0c5";
219
+ $fa-var-film: "\f008";
220
+ $fa-var-filter: "\f0b0";
221
+ $fa-var-fire: "\f06d";
222
+ $fa-var-fire-extinguisher: "\f134";
223
+ $fa-var-flag: "\f024";
224
+ $fa-var-flag-checkered: "\f11e";
225
+ $fa-var-flag-o: "\f11d";
226
+ $fa-var-flash: "\f0e7";
227
+ $fa-var-flask: "\f0c3";
228
+ $fa-var-flickr: "\f16e";
229
+ $fa-var-floppy-o: "\f0c7";
230
+ $fa-var-folder: "\f07b";
231
+ $fa-var-folder-o: "\f114";
232
+ $fa-var-folder-open: "\f07c";
233
+ $fa-var-folder-open-o: "\f115";
234
+ $fa-var-font: "\f031";
235
+ $fa-var-forward: "\f04e";
236
+ $fa-var-foursquare: "\f180";
237
+ $fa-var-frown-o: "\f119";
238
+ $fa-var-futbol-o: "\f1e3";
239
+ $fa-var-gamepad: "\f11b";
240
+ $fa-var-gavel: "\f0e3";
241
+ $fa-var-gbp: "\f154";
242
+ $fa-var-ge: "\f1d1";
243
+ $fa-var-gear: "\f013";
244
+ $fa-var-gears: "\f085";
245
+ $fa-var-gift: "\f06b";
246
+ $fa-var-git: "\f1d3";
247
+ $fa-var-git-square: "\f1d2";
248
+ $fa-var-github: "\f09b";
249
+ $fa-var-github-alt: "\f113";
250
+ $fa-var-github-square: "\f092";
251
+ $fa-var-gittip: "\f184";
252
+ $fa-var-glass: "\f000";
253
+ $fa-var-globe: "\f0ac";
254
+ $fa-var-google: "\f1a0";
255
+ $fa-var-google-plus: "\f0d5";
256
+ $fa-var-google-plus-square: "\f0d4";
257
+ $fa-var-google-wallet: "\f1ee";
258
+ $fa-var-graduation-cap: "\f19d";
259
+ $fa-var-group: "\f0c0";
260
+ $fa-var-h-square: "\f0fd";
261
+ $fa-var-hacker-news: "\f1d4";
262
+ $fa-var-hand-o-down: "\f0a7";
263
+ $fa-var-hand-o-left: "\f0a5";
264
+ $fa-var-hand-o-right: "\f0a4";
265
+ $fa-var-hand-o-up: "\f0a6";
266
+ $fa-var-hdd-o: "\f0a0";
267
+ $fa-var-header: "\f1dc";
268
+ $fa-var-headphones: "\f025";
269
+ $fa-var-heart: "\f004";
270
+ $fa-var-heart-o: "\f08a";
271
+ $fa-var-history: "\f1da";
272
+ $fa-var-home: "\f015";
273
+ $fa-var-hospital-o: "\f0f8";
274
+ $fa-var-html5: "\f13b";
275
+ $fa-var-ils: "\f20b";
276
+ $fa-var-image: "\f03e";
277
+ $fa-var-inbox: "\f01c";
278
+ $fa-var-indent: "\f03c";
279
+ $fa-var-info: "\f129";
280
+ $fa-var-info-circle: "\f05a";
281
+ $fa-var-inr: "\f156";
282
+ $fa-var-instagram: "\f16d";
283
+ $fa-var-institution: "\f19c";
284
+ $fa-var-ioxhost: "\f208";
285
+ $fa-var-italic: "\f033";
286
+ $fa-var-joomla: "\f1aa";
287
+ $fa-var-jpy: "\f157";
288
+ $fa-var-jsfiddle: "\f1cc";
289
+ $fa-var-key: "\f084";
290
+ $fa-var-keyboard-o: "\f11c";
291
+ $fa-var-krw: "\f159";
292
+ $fa-var-language: "\f1ab";
293
+ $fa-var-laptop: "\f109";
294
+ $fa-var-lastfm: "\f202";
295
+ $fa-var-lastfm-square: "\f203";
296
+ $fa-var-leaf: "\f06c";
297
+ $fa-var-legal: "\f0e3";
298
+ $fa-var-lemon-o: "\f094";
299
+ $fa-var-level-down: "\f149";
300
+ $fa-var-level-up: "\f148";
301
+ $fa-var-life-bouy: "\f1cd";
302
+ $fa-var-life-buoy: "\f1cd";
303
+ $fa-var-life-ring: "\f1cd";
304
+ $fa-var-life-saver: "\f1cd";
305
+ $fa-var-lightbulb-o: "\f0eb";
306
+ $fa-var-line-chart: "\f201";
307
+ $fa-var-link: "\f0c1";
308
+ $fa-var-linkedin: "\f0e1";
309
+ $fa-var-linkedin-square: "\f08c";
310
+ $fa-var-linux: "\f17c";
311
+ $fa-var-list: "\f03a";
312
+ $fa-var-list-alt: "\f022";
313
+ $fa-var-list-ol: "\f0cb";
314
+ $fa-var-list-ul: "\f0ca";
315
+ $fa-var-location-arrow: "\f124";
316
+ $fa-var-lock: "\f023";
317
+ $fa-var-long-arrow-down: "\f175";
318
+ $fa-var-long-arrow-left: "\f177";
319
+ $fa-var-long-arrow-right: "\f178";
320
+ $fa-var-long-arrow-up: "\f176";
321
+ $fa-var-magic: "\f0d0";
322
+ $fa-var-magnet: "\f076";
323
+ $fa-var-mail-forward: "\f064";
324
+ $fa-var-mail-reply: "\f112";
325
+ $fa-var-mail-reply-all: "\f122";
326
+ $fa-var-male: "\f183";
327
+ $fa-var-map-marker: "\f041";
328
+ $fa-var-maxcdn: "\f136";
329
+ $fa-var-meanpath: "\f20c";
330
+ $fa-var-medkit: "\f0fa";
331
+ $fa-var-meh-o: "\f11a";
332
+ $fa-var-microphone: "\f130";
333
+ $fa-var-microphone-slash: "\f131";
334
+ $fa-var-minus: "\f068";
335
+ $fa-var-minus-circle: "\f056";
336
+ $fa-var-minus-square: "\f146";
337
+ $fa-var-minus-square-o: "\f147";
338
+ $fa-var-mobile: "\f10b";
339
+ $fa-var-mobile-phone: "\f10b";
340
+ $fa-var-money: "\f0d6";
341
+ $fa-var-moon-o: "\f186";
342
+ $fa-var-mortar-board: "\f19d";
343
+ $fa-var-music: "\f001";
344
+ $fa-var-navicon: "\f0c9";
345
+ $fa-var-newspaper-o: "\f1ea";
346
+ $fa-var-openid: "\f19b";
347
+ $fa-var-outdent: "\f03b";
348
+ $fa-var-pagelines: "\f18c";
349
+ $fa-var-paint-brush: "\f1fc";
350
+ $fa-var-paper-plane: "\f1d8";
351
+ $fa-var-paper-plane-o: "\f1d9";
352
+ $fa-var-paperclip: "\f0c6";
353
+ $fa-var-paragraph: "\f1dd";
354
+ $fa-var-paste: "\f0ea";
355
+ $fa-var-pause: "\f04c";
356
+ $fa-var-paw: "\f1b0";
357
+ $fa-var-paypal: "\f1ed";
358
+ $fa-var-pencil: "\f040";
359
+ $fa-var-pencil-square: "\f14b";
360
+ $fa-var-pencil-square-o: "\f044";
361
+ $fa-var-phone: "\f095";
362
+ $fa-var-phone-square: "\f098";
363
+ $fa-var-photo: "\f03e";
364
+ $fa-var-picture-o: "\f03e";
365
+ $fa-var-pie-chart: "\f200";
366
+ $fa-var-pied-piper: "\f1a7";
367
+ $fa-var-pied-piper-alt: "\f1a8";
368
+ $fa-var-pinterest: "\f0d2";
369
+ $fa-var-pinterest-square: "\f0d3";
370
+ $fa-var-plane: "\f072";
371
+ $fa-var-play: "\f04b";
372
+ $fa-var-play-circle: "\f144";
373
+ $fa-var-play-circle-o: "\f01d";
374
+ $fa-var-plug: "\f1e6";
375
+ $fa-var-plus: "\f067";
376
+ $fa-var-plus-circle: "\f055";
377
+ $fa-var-plus-square: "\f0fe";
378
+ $fa-var-plus-square-o: "\f196";
379
+ $fa-var-power-off: "\f011";
380
+ $fa-var-print: "\f02f";
381
+ $fa-var-puzzle-piece: "\f12e";
382
+ $fa-var-qq: "\f1d6";
383
+ $fa-var-qrcode: "\f029";
384
+ $fa-var-question: "\f128";
385
+ $fa-var-question-circle: "\f059";
386
+ $fa-var-quote-left: "\f10d";
387
+ $fa-var-quote-right: "\f10e";
388
+ $fa-var-ra: "\f1d0";
389
+ $fa-var-random: "\f074";
390
+ $fa-var-rebel: "\f1d0";
391
+ $fa-var-recycle: "\f1b8";
392
+ $fa-var-reddit: "\f1a1";
393
+ $fa-var-reddit-square: "\f1a2";
394
+ $fa-var-refresh: "\f021";
395
+ $fa-var-remove: "\f00d";
396
+ $fa-var-renren: "\f18b";
397
+ $fa-var-reorder: "\f0c9";
398
+ $fa-var-repeat: "\f01e";
399
+ $fa-var-reply: "\f112";
400
+ $fa-var-reply-all: "\f122";
401
+ $fa-var-retweet: "\f079";
402
+ $fa-var-rmb: "\f157";
403
+ $fa-var-road: "\f018";
404
+ $fa-var-rocket: "\f135";
405
+ $fa-var-rotate-left: "\f0e2";
406
+ $fa-var-rotate-right: "\f01e";
407
+ $fa-var-rouble: "\f158";
408
+ $fa-var-rss: "\f09e";
409
+ $fa-var-rss-square: "\f143";
410
+ $fa-var-rub: "\f158";
411
+ $fa-var-ruble: "\f158";
412
+ $fa-var-rupee: "\f156";
413
+ $fa-var-save: "\f0c7";
414
+ $fa-var-scissors: "\f0c4";
415
+ $fa-var-search: "\f002";
416
+ $fa-var-search-minus: "\f010";
417
+ $fa-var-search-plus: "\f00e";
418
+ $fa-var-send: "\f1d8";
419
+ $fa-var-send-o: "\f1d9";
420
+ $fa-var-share: "\f064";
421
+ $fa-var-share-alt: "\f1e0";
422
+ $fa-var-share-alt-square: "\f1e1";
423
+ $fa-var-share-square: "\f14d";
424
+ $fa-var-share-square-o: "\f045";
425
+ $fa-var-shekel: "\f20b";
426
+ $fa-var-sheqel: "\f20b";
427
+ $fa-var-shield: "\f132";
428
+ $fa-var-shopping-cart: "\f07a";
429
+ $fa-var-sign-in: "\f090";
430
+ $fa-var-sign-out: "\f08b";
431
+ $fa-var-signal: "\f012";
432
+ $fa-var-sitemap: "\f0e8";
433
+ $fa-var-skype: "\f17e";
434
+ $fa-var-slack: "\f198";
435
+ $fa-var-sliders: "\f1de";
436
+ $fa-var-slideshare: "\f1e7";
437
+ $fa-var-smile-o: "\f118";
438
+ $fa-var-soccer-ball-o: "\f1e3";
439
+ $fa-var-sort: "\f0dc";
440
+ $fa-var-sort-alpha-asc: "\f15d";
441
+ $fa-var-sort-alpha-desc: "\f15e";
442
+ $fa-var-sort-amount-asc: "\f160";
443
+ $fa-var-sort-amount-desc: "\f161";
444
+ $fa-var-sort-asc: "\f0de";
445
+ $fa-var-sort-desc: "\f0dd";
446
+ $fa-var-sort-down: "\f0dd";
447
+ $fa-var-sort-numeric-asc: "\f162";
448
+ $fa-var-sort-numeric-desc: "\f163";
449
+ $fa-var-sort-up: "\f0de";
450
+ $fa-var-soundcloud: "\f1be";
451
+ $fa-var-space-shuttle: "\f197";
452
+ $fa-var-spinner: "\f110";
453
+ $fa-var-spoon: "\f1b1";
454
+ $fa-var-spotify: "\f1bc";
455
+ $fa-var-square: "\f0c8";
456
+ $fa-var-square-o: "\f096";
457
+ $fa-var-stack-exchange: "\f18d";
458
+ $fa-var-stack-overflow: "\f16c";
459
+ $fa-var-star: "\f005";
460
+ $fa-var-star-half: "\f089";
461
+ $fa-var-star-half-empty: "\f123";
462
+ $fa-var-star-half-full: "\f123";
463
+ $fa-var-star-half-o: "\f123";
464
+ $fa-var-star-o: "\f006";
465
+ $fa-var-steam: "\f1b6";
466
+ $fa-var-steam-square: "\f1b7";
467
+ $fa-var-step-backward: "\f048";
468
+ $fa-var-step-forward: "\f051";
469
+ $fa-var-stethoscope: "\f0f1";
470
+ $fa-var-stop: "\f04d";
471
+ $fa-var-strikethrough: "\f0cc";
472
+ $fa-var-stumbleupon: "\f1a4";
473
+ $fa-var-stumbleupon-circle: "\f1a3";
474
+ $fa-var-subscript: "\f12c";
475
+ $fa-var-suitcase: "\f0f2";
476
+ $fa-var-sun-o: "\f185";
477
+ $fa-var-superscript: "\f12b";
478
+ $fa-var-support: "\f1cd";
479
+ $fa-var-table: "\f0ce";
480
+ $fa-var-tablet: "\f10a";
481
+ $fa-var-tachometer: "\f0e4";
482
+ $fa-var-tag: "\f02b";
483
+ $fa-var-tags: "\f02c";
484
+ $fa-var-tasks: "\f0ae";
485
+ $fa-var-taxi: "\f1ba";
486
+ $fa-var-tencent-weibo: "\f1d5";
487
+ $fa-var-terminal: "\f120";
488
+ $fa-var-text-height: "\f034";
489
+ $fa-var-text-width: "\f035";
490
+ $fa-var-th: "\f00a";
491
+ $fa-var-th-large: "\f009";
492
+ $fa-var-th-list: "\f00b";
493
+ $fa-var-thumb-tack: "\f08d";
494
+ $fa-var-thumbs-down: "\f165";
495
+ $fa-var-thumbs-o-down: "\f088";
496
+ $fa-var-thumbs-o-up: "\f087";
497
+ $fa-var-thumbs-up: "\f164";
498
+ $fa-var-ticket: "\f145";
499
+ $fa-var-times: "\f00d";
500
+ $fa-var-times-circle: "\f057";
501
+ $fa-var-times-circle-o: "\f05c";
502
+ $fa-var-tint: "\f043";
503
+ $fa-var-toggle-down: "\f150";
504
+ $fa-var-toggle-left: "\f191";
505
+ $fa-var-toggle-off: "\f204";
506
+ $fa-var-toggle-on: "\f205";
507
+ $fa-var-toggle-right: "\f152";
508
+ $fa-var-toggle-up: "\f151";
509
+ $fa-var-trash: "\f1f8";
510
+ $fa-var-trash-o: "\f014";
511
+ $fa-var-tree: "\f1bb";
512
+ $fa-var-trello: "\f181";
513
+ $fa-var-trophy: "\f091";
514
+ $fa-var-truck: "\f0d1";
515
+ $fa-var-try: "\f195";
516
+ $fa-var-tty: "\f1e4";
517
+ $fa-var-tumblr: "\f173";
518
+ $fa-var-tumblr-square: "\f174";
519
+ $fa-var-turkish-lira: "\f195";
520
+ $fa-var-twitch: "\f1e8";
521
+ $fa-var-twitter: "\f099";
522
+ $fa-var-twitter-square: "\f081";
523
+ $fa-var-umbrella: "\f0e9";
524
+ $fa-var-underline: "\f0cd";
525
+ $fa-var-undo: "\f0e2";
526
+ $fa-var-university: "\f19c";
527
+ $fa-var-unlink: "\f127";
528
+ $fa-var-unlock: "\f09c";
529
+ $fa-var-unlock-alt: "\f13e";
530
+ $fa-var-unsorted: "\f0dc";
531
+ $fa-var-upload: "\f093";
532
+ $fa-var-usd: "\f155";
533
+ $fa-var-user: "\f007";
534
+ $fa-var-user-md: "\f0f0";
535
+ $fa-var-users: "\f0c0";
536
+ $fa-var-video-camera: "\f03d";
537
+ $fa-var-vimeo-square: "\f194";
538
+ $fa-var-vine: "\f1ca";
539
+ $fa-var-vk: "\f189";
540
+ $fa-var-volume-down: "\f027";
541
+ $fa-var-volume-off: "\f026";
542
+ $fa-var-volume-up: "\f028";
543
+ $fa-var-warning: "\f071";
544
+ $fa-var-wechat: "\f1d7";
545
+ $fa-var-weibo: "\f18a";
546
+ $fa-var-weixin: "\f1d7";
547
+ $fa-var-wheelchair: "\f193";
548
+ $fa-var-wifi: "\f1eb";
549
+ $fa-var-windows: "\f17a";
550
+ $fa-var-won: "\f159";
551
+ $fa-var-wordpress: "\f19a";
552
+ $fa-var-wrench: "\f0ad";
553
+ $fa-var-xing: "\f168";
554
+ $fa-var-xing-square: "\f169";
555
+ $fa-var-yahoo: "\f19e";
556
+ $fa-var-yelp: "\f1e9";
557
+ $fa-var-yen: "\f157";
558
+ $fa-var-youtube: "\f167";
559
+ $fa-var-youtube-play: "\f16a";
560
+ $fa-var-youtube-square: "\f166";
561
+
css/font-awesome/scss/font-awesome.scss ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
3
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4
+ */
5
+
6
+ @import "variables";
7
+ @import "mixins";
8
+ @import "path";
9
+ @import "core";
10
+ @import "larger";
11
+ @import "fixed-width";
12
+ @import "list";
13
+ @import "bordered-pulled";
14
+ @import "spinning";
15
+ @import "rotated-flipped";
16
+ @import "stacked";
17
+ @import "icons";
css/images/Add_Ons.jpg ADDED
Binary file
css/images/admin_day.jpg ADDED
Binary file
css/images/admin_time.jpg ADDED
Binary file
css/images/arrow_down.png ADDED
Binary file
css/images/arrow_left.png ADDED
Binary file
css/images/arrow_right.png ADDED
Binary file
css/images/arrow_up.png ADDED
Binary file
css/images/close.png ADDED
Binary file
css/images/date.png ADDED
Binary file
css/images/day1.png ADDED
Binary file
css/images/day2.png ADDED
Binary file
css/images/day3.png ADDED
Binary file
css/images/day4.png ADDED
Binary file
css/images/day5.png ADDED
Binary file
css/images/day6.png ADDED
Binary file
css/images/day7.png ADDED
Binary file
css/images/edit_icon.png ADDED
Binary file
css/images/fb_icon.png ADDED
Binary file
css/images/featured/arrow3.png ADDED
Binary file
css/images/featured/best_magazine.png ADDED
Binary file
css/images/featured/business_elite.png ADDED
Binary file
css/images/featured/business_world.png ADDED
Binary file
css/images/featured/catalog.png ADDED
Binary file
css/images/featured/contact.builder.png ADDED
Binary file
css/images/featured/contact.maker.png ADDED
Binary file
css/images/featured/contacts.png ADDED
Binary file
css/images/featured/download_plugins.png ADDED
Binary file
css/images/featured/download_themes.png ADDED
Binary file
css/images/featured/exclusive.png ADDED
Binary file
css/images/featured/expert.png ADDED
Binary file
css/images/featured/facebook.png ADDED
Binary file
css/images/featured/faq.png ADDED
Binary file
css/images/featured/flash.calendar.png ADDED
Binary file
css/images/featured/folder.menu.png ADDED
Binary file
css/images/featured/form.png ADDED
Binary file
css/images/featured/magazine.png ADDED
Binary file
css/images/featured/minus.png ADDED
Binary file
css/images/featured/mottomag.png ADDED
Binary file
css/images/featured/photo-gallery.png ADDED
Binary file
css/images/featured/player.png ADDED
Binary file
css/images/featured/plus.png ADDED
Binary file
css/images/featured/random.post.png ADDED
Binary file
css/images/featured/sauron.png ADDED
Binary file
css/images/featured/slider.png ADDED
Binary file
css/images/featured/twittertools.png ADDED
Binary file
css/images/featured/wedding.png ADDED
Binary file
css/images/featured/wedding_style.png ADDED
Binary file
css/images/featured/zoom.png ADDED
Binary file
css/images/gplus_icon.png ADDED
Binary file
css/images/loading.gif ADDED
Binary file
css/images/loc.png ADDED
Binary file
css/images/org.png ADDED
Binary file
css/images/search.png ADDED
Binary file
css/images/select.png ADDED
Binary file
css/images/select_left.png ADDED
Binary file
css/images/time.png ADDED
Binary file
css/images/twitter_icon.png ADDED
Binary file
css/images/url-icon.png ADDED
Binary file
css/style.css ADDED
@@ -0,0 +1,2385 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Public facing CSS file
3
+ *
4
+ */
5
+
6
+ /* Base line-height for all views & tooltip */
7
+
8
+
9
+
10
+ .calendar_main:after{
11
+ content: '';
12
+ clear: both;
13
+ display:table;
14
+ }
15
+ .calendar_main a:not(.cpage){
16
+ text-decoration:none;
17
+ border-bottom:0 !important;
18
+ }
19
+ .calendar{
20
+ margin:0;
21
+ margin-left:0;
22
+ width:auto;
23
+ }
24
+ .calendar-head{
25
+ display:table;
26
+ width: 100%;
27
+ height: 85px;
28
+ color:#fff;
29
+ }
30
+
31
+ .ecwd-url{
32
+ margin-bottom: 5px;
33
+ }
34
+
35
+ .ecwd_calendar .metainfo,
36
+ .ecwd_countdown_info .metainfo{
37
+ padding-left: 26px;
38
+ }
39
+ .cal_blue .event-details img {
40
+ margin: 7px 20px 7px 0 !important;
41
+ max-width: 200px;
42
+ }
43
+ .ecwd-page-full div[class^="ecwd-page-"] .event-details img {
44
+ margin: 7px 20px 7px 0 !important;
45
+ max-width: 110px;
46
+ float: left;
47
+ }
48
+ .ecwd_calendar_view_tabs ul li:first-child{
49
+ border-left: 0px;
50
+ }
51
+
52
+ .ecwd_calendar_view_tabs ul li:last-child{
53
+ border-right: 0px;
54
+ }
55
+ .event-details-title h5,
56
+ .ecwd_list h3{
57
+ margin: 0 0 6px 0 !important;
58
+ font-size: 18px !important;
59
+ font-weight: normal !important;
60
+ line-height: 1 !important;
61
+ clear: none !important;
62
+ text-transform: none;
63
+ font-style: italic;
64
+ }
65
+
66
+ .event-details-title .event-metalabel{
67
+ width:15px;
68
+ height:15px;
69
+ display:inline-block;
70
+ float:left;
71
+ margin-right: 7px;
72
+ margin-top: 2px;
73
+ }
74
+ .ecwd-widget-mini .event-details-title .event-metalabel{
75
+ width:6px;
76
+ height:6px;
77
+ margin-top: 7px;
78
+ }
79
+ .cal_blue.ecwd_calendar_container {
80
+ width:100%;
81
+ color:#262e3a;
82
+ border:none;
83
+ background:#FFFFFF;
84
+ font-family: "Lucida Grande","Lucida Sans Unicode",sans-serif;
85
+ font-size:10px;
86
+ table-layout: fixed;
87
+ margin: 0 0 10px 0;
88
+ }
89
+ table.cal_blue.ecwd_calendar_container #month_selector {
90
+ width:auto;
91
+ float:left;
92
+ padding:0 1em;
93
+ margin:0;
94
+
95
+ }
96
+
97
+ table.cal_blue.ecwd_calendar_container select option {
98
+ font-weight:normal;
99
+ background:#f3f5f9;
100
+ text-shadow:none;
101
+ filter:none;
102
+ color:#262e3a;
103
+ }
104
+
105
+ table.cal_blue.ecwd_calendar_container th {
106
+ margin: 0;
107
+ border: 1px solid #ededed;
108
+ border-left:0;
109
+ display: table-cell;
110
+ }
111
+ table.cal_blue.ecwd_calendar_container td {
112
+ margin: 0;
113
+ border-width: 0 1px 1px 0;
114
+ display: table-cell;
115
+ }
116
+
117
+ table.cal_blue.ecwd_calendar_container .normal-day-heading, table.cal_blue.ecwd_calendar_container .weekend-heading {
118
+ color:#585858;
119
+ font-size:1.6em;
120
+ height:1.2em;
121
+ line-height:1.2em;
122
+ text-align:center;
123
+ font-weight: normal;
124
+ padding: 4px 0;
125
+ vertical-align: middle;
126
+ text-transform: none;
127
+ }
128
+
129
+
130
+ table.cal_blue.ecwd_calendar_container .day-with-date, table.cal_blue.ecwd_calendar_container .open-details , table.cal_blue.ecwd_calendar_container .day-without-date {
131
+ vertical-align: text-top;
132
+ text-align: left;
133
+ /* background: #ced9e7;
134
+ background: -webkit-gradient(linear, left top, left bottom, from(#ced9e7), to(#ecf0f6));
135
+ background: -moz-linear-gradient(top, #ced9e7, #ecf0f6);*/
136
+ height: 8em;
137
+ width: 14.3%;
138
+ font-size: 1.4em;
139
+ }
140
+
141
+ .ecwd_calendar img{
142
+ margin-left:inherit !important;
143
+ }
144
+
145
+ .ecwd_calendar {
146
+ font-family: Segoe UI !important;
147
+ max-width: 100%;
148
+ width: 100%;
149
+ float: left;
150
+ position: relative;
151
+ border: 0px solid transparent;
152
+ }
153
+
154
+ .ecwd_calendar ul,.ecwd_calendar ul li,.ecwd_calendar ul.ecwd_list li,.ecwd_calendar ul.week-event-list li,.ecwd_calendar ul.day-event-list li,.ecwd_calendar ul.day4-event-list li{
155
+ list-style: none !important;
156
+ list-style-image: none !important;
157
+ margin: 0 !important;
158
+ padding: 0 !important;
159
+ }
160
+ .ecwd_calendar .filter-container{
161
+ /*width: 90%;*/
162
+ overflow:hidden;
163
+ position: relative;
164
+ }
165
+
166
+ .ecwd_calendar_view_tabs .filter-container ul{
167
+ list-style: outside none none !important;
168
+ padding-left: 0px !important;
169
+ margin: 0px !important;
170
+ overflow: hidden;
171
+ position: relative;
172
+ float: left;
173
+ width: 700%;
174
+ }
175
+
176
+
177
+
178
+
179
+
180
+ table.cal_blue.ecwd_calendar_container .open-details li {
181
+ padding-top:5px;
182
+ padding-bottom:0px;
183
+ font-size:0.7em;
184
+ }
185
+ table.cal_blue.ecwd_calendar_container .no-events {
186
+ cursor:default;
187
+ }
188
+ table.cal_blue.ecwd_calendar_container .has-events {
189
+ cursor:pointer;
190
+ }
191
+ table.cal_blue.ecwd_calendar_container .has-events:hover {
192
+ -webkit-box-shadow: rgba(0,0,0, 0.2) 0px 0px 6px;
193
+ box-shadow: rgba(0,0,0, 0.2) 0px 0px 6px;
194
+ }
195
+ table.cal_blue.ecwd_calendar_container .week-start {
196
+ border-left:1px solid #D6DDE2;
197
+ }
198
+ table.cal_blue.ecwd_calendar_container .week-number {
199
+ border-bottom:none;
200
+ border-right:none;
201
+ vertical-align:middle;
202
+ padding:2px;
203
+ font-size:1.8em;
204
+ font-weight:bold;
205
+ text-shadow: 0 1px 1px rgba(1,2,2,.3);
206
+ filter: Shadow(Color=#010202, Direction=135, Strength=1);
207
+ }
208
+ table.cal_blue.ecwd_calendar_container td ul li {
209
+ cursor: pointer;
210
+ list-style: none outside none !important;
211
+ position: relative;
212
+ padding: 5px;
213
+ font-size:0.8em;
214
+ text-shadow:none;
215
+ line-height:1.2em;
216
+ }
217
+ table.cal_blue.ecwd_calendar_container td ul li span.event-time {
218
+ font-weight:bold;
219
+ font-size:0.8em;
220
+ }
221
+ table.cal_blue.ecwd_calendar_container .week-number span {
222
+ color:#fdfefe;
223
+ }
224
+
225
+ table.cal_blue.ecwd_calendar_container .event-details div {
226
+ word-wrap: break-word;
227
+ white-space: normal;
228
+ }
229
+
230
+ table.cal_blue.ecwd_calendar_container .day-without-date div {
231
+ text-align:center;
232
+ }
233
+
234
+ table.cal_blue.ecwd_calendar_container .current-day {
235
+ text-align:left;
236
+ vertical-align:text-top;
237
+ /* background:#7D9AC0;
238
+ background: -webkit-gradient(linear, left top, left bottom, from(#7D9AC0), to(#718bad));
239
+ background: -moz-linear-gradient(top, #7D9AC0, #718bad);*/
240
+ }
241
+
242
+ table.cal_blue.ecwd_calendar_container td ul {
243
+ margin:0;
244
+ padding:1px 0 !important;
245
+ text-align:left;
246
+ }
247
+ table.cal_blue.ecwd_calendar_container td > div, table.cal_blue.ecwd_calendar_container th > div {
248
+ position:relative;
249
+ }
250
+ table.cal_blue.ecwd_calendar_container .previous {
251
+ position:relative;
252
+ width:auto;
253
+ margin-top:0.6em;
254
+ font-size:1.4em;
255
+ float:left;
256
+ }
257
+ table.cal_blue.ecwd_calendar_container .next {
258
+ position:relative;
259
+ width:auto;
260
+ margin-top:0.6em;
261
+ font-size:1.4em;
262
+ float:right;
263
+ }
264
+ table.cal_blue.ecwd_calendar_container .previous span, table.cal_blue.ecwd_calendar_container .next span {
265
+ font-size:1.5em;
266
+ line-height:0.5em;
267
+ }
268
+ table.cal_blue.ecwd_calendar_container .previous a, table.cal_blue.ecwd_calendar_container .next a {
269
+ color:#fdfefe;
270
+ text-decoration:none;
271
+ }
272
+
273
+ div.ecwd-page-month table.cal_blue div.event-details-container, div.ecwd-page-full table.cal_blue div.event-details-container {
274
+ display: none;
275
+ position: absolute;
276
+ z-index: 10;
277
+ padding: 0 0 0 10px;
278
+ left: 100%;
279
+ top: 0;
280
+ }
281
+ div.ecwd-page-full .has-events ul.more_events > li div.event-details-container {
282
+ display: none;
283
+ position: relative;
284
+ z-index: 10;
285
+ left: 0;
286
+ top: 0;
287
+ padding: 0;
288
+ }
289
+ div.ecwd-page-full .has-events ul.more_events > li div.ecwd-event-arrow,
290
+ div.ecwd-page-full .has-events ul.more_events > li div.ecwd-event-arrow-right {
291
+ display: none;
292
+ }
293
+ div.ecwd-page-full .has-events ul.more_events > li div.event-details {
294
+ max-width:100%;
295
+ width: auto;
296
+ box-shadow:none;
297
+ -webkit-box-shadow:none;
298
+ border: none;
299
+ border-top: 1px solid rgba(0,0,0,0.25);
300
+ }
301
+
302
+
303
+ .ecwd_calendar td{
304
+ padding:1px !important;
305
+ border: solid #D6DDE2;
306
+ border-width: 0 1px 1px 0;
307
+ font-family: Segoe UI !important;
308
+ }
309
+
310
+ /*.event-details-container{*/
311
+ /*display: none;*/
312
+ /*position: absolute;*/
313
+ /*z-index: 10;*/
314
+ /*padding: 0 0 0 10px;*/
315
+ /*left: 100%;*/
316
+ /*top: 17%;*/
317
+ /*}*/
318
+ div.ecwd-page-month table.cal_blue div.event-details, div.ecwd-page-full table.cal_blue div.event-details {
319
+ color: #585858;
320
+ background: none repeat scroll 0% 0% #fff;
321
+ padding: 10px;
322
+ max-height:350px;
323
+ overflow-y: auto;
324
+ border:1px solid rgba(0,0,0,0.25);
325
+ -moz-box-shadow: 1px 1px 10px rgba(0,0,0,0.2);
326
+ -webkit-box-shadow: 1px 1px 10px rgba(0,0,0,0.2);
327
+ box-shadow: 1px 1px 10px rgba(0,0,0,0.2);
328
+ }
329
+
330
+
331
+ div.ecwd-page-full table.cal_blue div.ecwd-event-arrow,
332
+ div.ecwd-page-full table.cal_blue div.ecwd-event-arrow-right {
333
+ content: ' ';
334
+ position: absolute;
335
+ z-index: 1;
336
+ top: 8px;
337
+ font-size: 25px;
338
+ font-style: normal;
339
+ display: inline-block;
340
+ width: 0;
341
+ height: 0;
342
+ border-width: 11px !important;
343
+ }
344
+ div.ecwd-page-full table.cal_blue div.ecwd-event-arrow {
345
+ left: 0px;
346
+ border-top: solid transparent;
347
+ border-bottom: solid transparent;
348
+ border-width: 11px !important;
349
+ border-right: solid rgba(0,0,0,0.25);
350
+ }
351
+
352
+ div.ecwd-page-full table.cal_blue div.ecwd-event-arrow-right {
353
+ right: -10px;
354
+ border-top: solid transparent;
355
+ border-bottom: solid transparent;
356
+ border-width: 11px !important;
357
+ border-left: solid rgba(0,0,0,0.25);
358
+ border-right-width: 0;
359
+ display:none;
360
+ }
361
+ div.ecwd-page-full table.cal_blue div.ecwd-event-arrow:before,
362
+ div.ecwd-page-full table.cal_blue div.ecwd-event-arrow-right:before {
363
+ content: ' ';
364
+ position: absolute;
365
+ z-index: 11;
366
+ top: -10px;
367
+ border-width: 10px !important;
368
+ }
369
+ div.ecwd-page-full table.cal_blue div.ecwd-event-arrow:before {
370
+ left: 1px;
371
+ border-top: solid transparent;
372
+ border-bottom: solid transparent;
373
+ border-right: solid #ffffff;
374
+ border-left-width: 0;
375
+ }
376
+ div.ecwd-page-full table.cal_blue div.ecwd-event-arrow-right:before {
377
+ right: 1px;
378
+ border-top: solid transparent;
379
+ border-bottom: solid transparent;
380
+ border-left: solid #ffffff;
381
+ border-right-width: 0;
382
+ }
383
+
384
+ /*
385
+ .event_tooltip {
386
+ color: #FFF;
387
+ display: none;
388
+ position: absolute;
389
+ border: 4px solid #647B9A;
390
+ background: none repeat scroll 0% 0% #647B9A;
391
+ padding: 0px;
392
+ border-radius: 4px;
393
+ z-index: 999999;
394
+ padding: 5px;
395
+ }
396
+ */
397
+
398
+ div.ecwd-page-full table.cal_blue ul.events > li {
399
+ margin-left: 0px !important;
400
+ border-bottom:1px solid #CFD7DE;
401
+ position: relative;
402
+ padding: 7px !important;
403
+ }
404
+ div.ecwd-page-full table.cal_blue ul.more_events > li {
405
+ padding: 0px !important;
406
+ }
407
+ div.ecwd-page-full table.cal_blue ul.more_events > li > a {
408
+ padding: 7px !important;
409
+ display:inline-block;
410
+ pointer-events: none;
411
+ }
412
+
413
+ div.ecwd-page-full table.cal_blue ul.events > li img{
414
+ display:inline-block;
415
+ }
416
+ div.ecwd-page-full table.cal_blue ul.events > li:last-child {
417
+ border-bottom:0px;
418
+ }
419
+ .ecwd_calendar div.event-details {
420
+ font-size: 14px;
421
+ font-style: italic;
422
+ width: 340px;
423
+ line-height: 1.3;
424
+ }
425
+ .ecwd_calendar.ecwd-widget-mini div.event-details {
426
+ max-width: 100% !important;
427
+ }
428
+ @media only screen and (max-width: 768px){
429
+ .ecwd-events-day-details{
430
+ margin-top: 30px;
431
+ }
432
+ div.ecwd-page-full table ul.events{
433
+ display:none;
434
+ }
435
+ .ecwd-page-full table.cal_blue.ecwd_calendar_container td {
436
+ height:50px;
437
+ }
438
+ .ecwd-page-full table.cal_blue.ecwd_calendar_container .has-events:after {
439
+ content: '';
440
+ display: block;
441
+ height: 8px;
442
+ width: 8px;
443
+ padding: 0;
444
+ background-color: #10738B;
445
+ margin: 13px auto 0;
446
+ }
447
+ table.cal_blue.ecwd_calendar_container .normal-day-heading, table.cal_blue.ecwd_calendar_container .weekend-heading {
448
+ font-size: 1.4em;
449
+ }
450
+ .ecwd_calendar.ecwd-page-full div.event-details {
451
+ font-size: 1.15em !important;
452
+ width: 100%;
453
+ padding-bottom: 20px;
454
+ margin-bottom: 20px;
455
+ border-bottom: 1px solid #CCC;
456
+ }
457
+ }
458
+
459
+ table.cal_blue.mini {
460
+ width: 100%;
461
+ }
462
+ .ecwd_calendar.ecwd-widget-mini {
463
+ width: 100%;
464
+ max-width: 280px;
465
+ }
466
+
467
+ .ecwd-widget-mini .ecwd-week-date,
468
+ .ecwd-widget-mini .ecwd-list-date {
469
+ width:10%;
470
+ float: left;
471
+ height: 42px;
472
+ padding: 10px 0 0 0 !important ;
473
+ text-align: center !important;
474
+ line-height: 21px !important;
475
+ box-sizing: border-box;
476
+ -moz-box-sizing: border-box;
477
+ -webkit-box-sizing: border-box;
478
+ }
479
+
480
+ .ecwd-widget-mini .day4-event-list h3,
481
+ .ecwd-widget-mini .ecwd_list h3,
482
+ .ecwd-widget-mini .day-event-list h3,
483
+ .ecwd-widget-mini .week-event-list h3{
484
+ margin: 0px 0px 0px 0px !important;
485
+ font-size: 16px !important;
486
+ line-height: 20px !important;
487
+ white-space: nowrap;
488
+ text-overflow: ellipsis;
489
+ overflow: hidden;
490
+ padding-left: 2px;
491
+ box-sizing: border-box;
492
+ }
493
+
494
+ .ecwd-widget-mini .event-main-content{
495
+ float: right;
496
+ width: 89.8%;
497
+ min-height: 42px;
498
+ box-sizing: border-box;
499
+ -moz-box-sizing: border-box;
500
+ -webkit-box-sizing: border-box;
501
+ }
502
+
503
+ .event-main-content.no-events{
504
+ padding: 8px 10px;
505
+ }
506
+
507
+ .ecwd_calendar.ecwd-widget-mini .ecwd_list li,
508
+ .ecwd-widget-mini.ecwd_calendar .day4-event-list li,
509
+ .ecwd-widget-mini.ecwd_calendar .day-event-list li,
510
+ .ecwd-widget-mini.ecwd_calendar .week-event-list li {
511
+ border: 0;
512
+ margin-bottom:0 !important;
513
+ }
514
+
515
+ .ecwd_calendar.ecwd-widget-mini .ecwd_list li:before,
516
+ .ecwd-widget-mini.ecwd_calendar .day4-event-list li:before,
517
+ .ecwd-widget-mini.ecwd_calendar .day-event-list li:before,
518
+ .ecwd-widget-mini.ecwd_calendar .week-event-list li:before {
519
+ content:none;
520
+ }
521
+
522
+ .ecwd-widget-mini .event-container, .ecwd-widget-mini .ecwd_list .event-main-content,
523
+ .ecwd-widget-mini .ecwd-no-image.event-container,.ecwd-widget-mini .ecwd_calendar li.ecwd-no-image {
524
+ padding: 0 4px 0px !important;
525
+ overflow: hidden;
526
+ }
527
+
528
+ .ecwd-widget-mini .arrow-down {
529
+ display: block;
530
+ background: url(images/arrow_down.png) no-repeat right center;
531
+ position: absolute;
532
+ bottom: 1px;
533
+ width: 20px;
534
+ cursor: pointer;
535
+ height: 9px;
536
+ right: 0px;
537
+ transition: all 0.3s;
538
+ }
539
+
540
+ .ecwd-widget-mini .arrow-down.open {
541
+ background: url(images/arrow_up.png) no-repeat right center;
542
+ }
543
+
544
+ .ecwd-widget-mini .ecwd-time, .ecwd-widget-mini .ecwd-date {
545
+ margin-right: 0px;
546
+ margin-bottom: 1px;
547
+ width: 95%;
548
+ }
549
+
550
+ .ecwd-widget-mini.ecwd_calendar .week-event-list .event-conten{
551
+ padding: 0 !important;
552
+ }
553
+
554
+ .ecwd-widget-mini.ecwd_calendar li.ecwd-no-image .ecwd-list-date,
555
+ .ecwd-widget-mini.ecwd_calendar .week-event-list .ecwd-no-image .ecwd-list-date{
556
+ margin-left: 0px !important;
557
+ }
558
+
559
+
560
+ .ecwd_calendar.ecwd-widget-mini .ecwd-events-day-details li:before,
561
+ .ecwd_calendar.ecwd-widget-mini .ecwd-events-day-details li:after{
562
+ content:'';
563
+ border:0 !important;
564
+ }
565
+
566
+ .ecwd_calendar.ecwd-widget-mini .ecwd-events-day-details li .ecwd-detalis,
567
+ .ecwd_calendar.ecwd-widget-mini .ecwd-events-day-details li .ecwd-date,
568
+ .ecwd_calendar.ecwd-widget-mini .ecwd-events-day-details li .ecwd-time{
569
+ padding-left:10px;
570
+ }
571
+
572
+ .ecwd_calendar.ecwd-widget-mini .ecwd-events-day-details li:last-child{
573
+ border-bottom: 0px;
574
+ }
575
+ table.cal_blue.mini .calendar-heading {
576
+ padding:0 0 2px 0;
577
+ font-size:1.2em;
578
+ height:1.2em;
579
+ }
580
+ table.cal_blue.mini .week-number {
581
+ font-size:1.2em;
582
+ }
583
+ table.cal_blue.mini td {
584
+ list-style: none outside none;
585
+ font-size:1.4em !important;
586
+ text-shadow:none;
587
+ font-family: Segoe UI;
588
+ height: 40px;
589
+ text-align: center;
590
+ white-space: nowrap;
591
+ padding: 2px !important;
592
+ box-sizing: border-box;
593
+ -moz-box-sizing: border-box;
594
+ -webkit-box-sizing: border-box;
595
+ position:relative;
596
+ vertical-align: middle !important;
597
+ }
598
+ table.cal_blue.mini td ul li {
599
+ list-style: none outside none;
600
+ overflow: hidden;
601
+ display: inline-block;
602
+ font-size:0.8em;
603
+ text-shadow:none;
604
+ }
605
+
606
+ table.cal_blue.mini td ul li:last-child {
607
+ margin-right: 0 !important;
608
+ }
609
+ table.cal_blue.mini .previous, table.cal_blue.mini .next, .ecwd_calendar .previous, .ecwd_calendar .next {
610
+ float:none;
611
+ }
612
+ table.cal_blue.mini .previous span, table.cal_blue.mini .next span, .ecwd_calendar .previous span, .ecwd_calendar .next span {
613
+ font-size:1em;
614
+ line-height:22px;
615
+ }
616
+
617
+ .ecwd_calendar .ecwd_calendar_prev_next{
618
+ text-align: center;
619
+ box-shadow: 0px 11px 17px rgba(0,0,0,0.2);
620
+ z-index: 3;
621
+ position: relative;
622
+ }
623
+ table.cal_blue.mini .previous, .ecwd_calendar .previous{
624
+ left:0px;
625
+ }
626
+ table.cal_blue.mini .next, .ecwd_calendar .next {
627
+ right:0px;
628
+ }
629
+ table.cal_blue.mini .normal-day-heading, table.cal_blue.mini .weekend-heading {
630
+ font-size:1.3em;
631
+ height:1em;
632
+ line-height:1em;
633
+ padding: 3px 0;
634
+ }
635
+ table.cal_blue.mini td ul {
636
+ text-align: right;
637
+ overflow: hidden;
638
+ max-width: 20px;
639
+ max-height: 9px;
640
+ float: right;
641
+ min-width: 16px;
642
+ padding: 0 !important;
643
+ }
644
+ table.cal_blue.mini .day-without-date, table.cal_blue.mini .day-with-date {
645
+ height: 40px;
646
+ text-align: center;
647
+ white-space: nowrap;
648
+ padding: 2px !important;
649
+ box-sizing: border-box;
650
+ -moz-box-sizing: border-box;
651
+ -webkit-box-sizing: border-box;
652
+ position:relative;
653
+ vertical-align: middle;
654
+ }
655
+
656
+ table.cal_blue.mini td ul.events li {
657
+ width:6px;
658
+ height:6px !important;
659
+ padding: 0 !important;
660
+ text-indent: 100%;
661
+ position: absolute;
662
+ bottom: 2px;
663
+ right: 2px;
664
+ background-color: #10738B;
665
+ }
666
+ table.cal_blue.mini td.current-day ul.events li {
667
+ width:6px;
668
+ height:6px !important;
669
+ padding: 0 !important;
670
+ text-indent: 100%;
671
+ position: absolute;
672
+ bottom: 2px;
673
+ right: 2px;
674
+ background-color: #F9F9F9;
675
+ }
676
+ td.has-events ul.events li.inmore{
677
+ display: none;
678
+ }
679
+
680
+ table.cal_blue.mini td ul.events li:nth-child(2) {
681
+ bottom: 2px;
682
+ right: 10px;
683
+ }
684
+ div.ecwd-widget-mini table td.has-events {
685
+ position: relative;
686
+ }
687
+ div.ecwd-page-full td.has-events {
688
+ position: static;
689
+
690
+ }
691
+
692
+
693
+ /*posterboard*/
694
+
695
+ .ecwd-poster-board{
696
+
697
+ }
698
+ .ecwd-poster-board .ecwd-poster-item{
699
+ width: 30%;
700
+ overflow: hidden;
701
+ margin: 15px 0 0 12px;
702
+ }
703
+
704
+ .ecwd-poster-board .ecwd-poster-item .ecwd-event-details{
705
+ margin-bottom:12px;
706
+ font-style:italic;
707
+ }
708
+ .ecwd-poster-board .ecwd-poster-item .ecwd-event-details .date{
709
+ float: left;
710
+ width: 80px;
711
+ margin: 0 5px 10px 0;
712
+ line-height: 1;
713
+ }
714
+
715
+ .ecwd-poster-board .ecwd-poster-item .ecwd-event-details .date span.weekday,
716
+ .ecwd-poster-board .ecwd-poster-item .ecwd-event-details .date span.month{
717
+ width: 29px;
718
+ font-size: 11px;
719
+ padding: 2px 1px !important;
720
+ text-align: center;
721
+ line-height: 16px;
722
+ }
723
+ .ecwd-poster-board .ecwd-poster-item .ecwd-event-details .date span.datenumber1,
724
+ .ecwd-poster-board .ecwd-poster-item .ecwd-event-details .date span.datenumber2{
725
+ font-size: 28px;
726
+ padding: 0px 4px !important;
727
+ text-align: center;
728
+ line-height: 41px;
729
+ }
730
+ .ecwd-poster-board .ecwd-poster-item .ecwd-event-details .date span.datenumber1{
731
+ margin-left:1px !important;
732
+ }
733
+ .ecwd-poster-board .ecwd-poster-item .ecwd-event-details .date span.datenumber2{
734
+ margin-left: -4px !important;
735
+ }
736
+ .ecwd-poster-board .ecwd-poster-item .ecwd-event-details .date span.weekday-block{
737
+ float:left;
738
+ width: 29px;
739
+ font-size: 11px;
740
+ }
741
+ .ecwd-poster-board .ecwd-poster-item .ecwd-poster-img{
742
+ width: 100%;
743
+ max-height:150px;
744
+ overflow: hidden;
745
+ margin-bottom:2px;
746
+ }
747
+ .ecwd-poster-board .ecwd-poster-item .ecwd-poster-img img{
748
+ width: 100%;
749
+ height:auto;
750
+ }
751
+
752
+ .ecwd-poster-board .ecwd-poster-item .ecwd-event-header h2{
753
+ font-size: 17px !important;
754
+ line-height: 1;
755
+ font-weight: normal;
756
+ margin: 0;
757
+ clear:none;
758
+ text-transform: none;
759
+ }
760
+ .cal_blue.ecwd_calendar_container .view-buttons a {
761
+ -moz-border-radius: 3px;
762
+ -webkit-border-radius: 3px;
763
+ border-radius: 3px;
764
+ display:block;
765
+ float:left;
766
+ margin-left:4px;
767
+ font-size: 1.3em;
768
+ padding: 6px;
769
+ text-decoration: none;
770
+ -webkit-box-shadow: 0 1px 2px rgba(1,2,2,.2);
771
+ -moz-box-shadow: 0 1px 2px rgba(1,2,2,.2);
772
+ box-shadow: 0 1px 2px rgba(1,2,2,.2);
773
+ }
774
+ table.cal_blue.ecwd_calendar_container select {
775
+ padding:6px;
776
+ width:auto;
777
+ font-size:1.4em;
778
+ font-weight:bold;
779
+ -moz-border-radius: 3px;
780
+ -webkit-border-radius: 3px;
781
+ border-radius: 3px;
782
+ outline:none;
783
+ text-shadow: 0 1px 1px rgba(1,2,2,.3);
784
+ -webkit-box-shadow: 0 1px 2px rgba(1,2,2,.2);
785
+ -moz-box-shadow: 0 1px 2px rgba(1,2,2,.2);
786
+ box-shadow: 0 1px 2px rgba(1,2,2,.2);
787
+ }
788
+ .ecwd_calendar_view_tabs{
789
+ position: relative;
790
+ }
791
+
792
+ .ecwd_calendar_view_tabs:after,.ecwd-list-date-cont:after,.ecwd_calendar .ecwd_list li:after,.ecwd_calendar .day-event-list li:after,.ecwd_calendar .day4-event-list li:after,.ecwd_calendar .week-event-list li:after,.ecwd_calendar .event-container:after,
793
+ .ecwd-time:after,.ecwd-date:after,.ecwd-detalis:before,.ecwd-location:before,.ecwd-location:after,.ecwd-event-header:after,.ecwd_calendar.ecwd-page-full div.event-details:after,.event-details:after,.ecwd-social ul:after,.ecwd-organizer-events ul:after,.ecwd-venue-events ul:after,.event-content:after,.ecwd_countdown:after,.ecwd-poster-board .ecwd-poster-item .ecwd-event-content:after{
794
+ content:'';
795
+ display:table;
796
+ clear:both;
797
+ }
798
+
799
+ .ecwd_countdown{
800
+ margin-bottom: 10px;
801
+ }
802
+
803
+ .ecwd-detalis,.ecwd-location{
804
+ clear:both;
805
+ }
806
+
807
+
808
+ .ecwd_calendar_view_tabs ul li{
809
+ display: inline-block;
810
+ width: 150px;
811
+ text-align: center;
812
+ }
813
+
814
+
815
+ .ecwd_calendar_view_tabs ul li a{
816
+ display: block;
817
+ padding: 13.5px 0px;
818
+ text-decoration: none;
819
+ font-size: 16px;
820
+ line-height: 22px;
821
+ }
822
+
823
+ .ecwd_calendar_view_tabs ul li.ecwd-selected-mode a{
824
+ text-shadow: none;
825
+ }
826
+
827
+ .ecwd_calendar_view_tabs ul li:first-child.ecwd-selected-mode a{
828
+ border-left: 1px solid rgba(0,0,0,0.2);
829
+ }
830
+ .ecwd_calendar_view_tabs ul li:last-child.ecwd-selected-mode a{
831
+ border-right: 1px solid rgba(0,0,0,0.2);
832
+ }
833
+
834
+ .cal_blue.mini.ecwd_calendar_container {
835
+ border:none;
836
+ background:#F2F2F2;
837
+ }
838
+
839
+ .ecwd-widget-mini .ecwd-events-day-details .event-details-title h5{
840
+ margin: 0 0 6px 0 !important;
841
+ font-size: 16px !important;
842
+ font-weight:normal !important;
843
+ color:inherit !important;
844
+ line-height: 1 !important;
845
+ clear: none !important;
846
+ }
847
+
848
+ .ecwd-widget-mini .ecwd_calendar_view_dropdown a {
849
+ color:#585858;
850
+ }
851
+ .ecwd-widget-mini .ecwd_calendar_view_dropdown span {
852
+ font-size: 13px;
853
+ }
854
+
855
+ .cal_blue.ecwd_calendar_container .events li > a {
856
+ color: #585858;
857
+ font-size: 14px;
858
+ font-style: italic;
859
+ line-height: 17px;
860
+ word-wrap: break-word;
861
+ }
862
+ .event-details-container .event-details-title h5 a {
863
+ color: #585858;
864
+ font-size: 17px;
865
+ line-height: 19px;
866
+ font-style: italic;
867
+ }
868
+ .event-main-content h3 a {
869
+ color: #585858;
870
+ font-size: 17px;
871
+ line-height: 19px;
872
+ font-style: italic;
873
+ }
874
+ .site-footer .widget h3.event-title a, h3.event-title a {
875
+ color: #585858;
876
+ }
877
+ .event-main-content a:hover, .event-details-container a:hover{
878
+ text-decoration: underline !important;
879
+ color: #585858 ;
880
+ }
881
+
882
+ .cal_blue.calendar .events>li>a> span {
883
+ white-space: nowrap;
884
+ overflow: hidden;
885
+ text-overflow: ellipsis;
886
+ width: 50%;
887
+ display: inline-block;
888
+ }
889
+
890
+
891
+ .cal_blue.ecwd_calendar_container .view-buttons {
892
+ float:right;
893
+ margin:0;
894
+ position:relative;
895
+ }
896
+
897
+
898
+ .event-metalabel{
899
+ width: 20px;
900
+ height: 20px;
901
+ float:left;
902
+ margin-right: 6px;
903
+ }
904
+ .ecwd-time,.ecwd-date{
905
+ float:left;
906
+ margin-right: 20px;
907
+ margin-bottom: 8px;
908
+ }
909
+
910
+ .ecwd-time .metainfo{
911
+ background: url(images/time.png) no-repeat;
912
+ }
913
+
914
+ .ecwd-date .metainfo{
915
+ background: url(images/date.png) no-repeat;
916
+ }
917
+
918
+ .ecwd_calendar .metainfo,
919
+ .ecwd_countdown_info .metainfo,
920
+ .event-detalis span, .event-detalis a{
921
+ display: inline-block;
922
+ font-size: 14px;
923
+ font-style: italic;
924
+ line-height: 1.3;
925
+ }
926
+
927
+ .ecwd_countdown_info .ecwd-date{
928
+ float:none;
929
+ }
930
+
931
+ .ecwd_calendar .filter-arrow-right,
932
+ .ecwd_calendar .filter-arrow-left{
933
+ position: absolute;
934
+ top:0;
935
+ height:100%;
936
+ width:30px;
937
+ display:none;
938
+ z-index: 2;
939
+ text-decoration: underline;
940
+ text-align: center;
941
+ padding-top: 4px;
942
+ box-sizing: border-box;
943
+ -moz-box-sizing: border-box;
944
+ -webkit-box-sizing: border-box;
945
+ cursor:pointer;
946
+ line-height: 32px;
947
+ }
948
+
949
+ .ecwd_calendar .ecwd_calendar_filters .filter-arrow-right,
950
+ .ecwd_calendar .ecwd_calendar_filters .filter-arrow-left{
951
+ line-height: 20px;
952
+ height: 40px;
953
+ margin-top: 1px;
954
+ }
955
+
956
+ .ecwd_calendar .filter-arrow-right{
957
+ right:0;
958
+ }
959
+ .ecwd_calendar .filter-arrow-left{
960
+ top:0;
961
+ }
962
+ .ecwd_calendar .filter-container li{
963
+ position: relative;
964
+ left:0;
965
+ margin: 0 !important;
966
+ }
967
+
968
+
969
+ .ecwd_calendar_filters > select{
970
+ color:#585858;
971
+ }
972
+
973
+ .ecwd_calendar_filters .ecwd-category-container,
974
+ .ecwd_calendar_filters .ecwd-tag-container, .ecwd-venue-container, .ecwd-organizer-container,
975
+ .ecwd_calendar_view_dropdown {
976
+ color:#585858;
977
+ }
978
+
979
+ .ecwd_calendar_filters .ecwd-category-container a,
980
+ .ecwd_calendar_filters .ecwd-tag-container a{
981
+ color:#585858;
982
+ font-size: 15px;
983
+ }
984
+ .ecwd_calendar_filters .ecwd-category-container a:hover,
985
+ .ecwd_calendar_filters .ecwd-tag-container a:hover{
986
+ color:#585858;
987
+ }
988
+
989
+ .ecwd_calendar_filters .ecwd-dropdown-menu>div,
990
+ .ecwd_calendar_view_dropdown .ecwd-dropdown-menu>div{
991
+ font-size: 14px;
992
+ font-style: italic;
993
+ padding: 6px 0;
994
+ border-bottom: 1px solid #E4E4E4;
995
+ color:#676767;
996
+ cursor: pointer;
997
+ position: relative;
998
+ padding-left: 15px;
999
+ }
1000
+
1001
+ .ecwd_calendar_view_dropdown .ecwd-dropdown-menu>div{
1002
+ font-size: 13px;
1003
+ padding: 5px 0;
1004
+ padding-left: 7px;
1005
+ }
1006
+ .ecwd-tag-container .ecwd-dropdown-menu>div{
1007
+ display: inline-block;
1008
+ border: 1px solid transparent !important;
1009
+ padding: 0px 9px !important;
1010
+ background-size: 100% 100%;
1011
+ background-repeat: no-repeat;
1012
+ }
1013
+
1014
+ .ecwd_calendar .filter-container:after{
1015
+ content:'';
1016
+ display:table;
1017
+ clear:both;
1018
+ }
1019
+
1020
+ .ecwd_calendar div:focus,
1021
+ .ecwd_calendar a:focus,
1022
+ .ecwd_calendar a:active{
1023
+ outline:0;
1024
+ }
1025
+
1026
+ .ecwd_calendar a{
1027
+ text-decoration:none !important;
1028
+ }
1029
+ .ecwd-widget-mini .calendar-head{
1030
+ height: 45px;
1031
+ }
1032
+
1033
+
1034
+
1035
+ .calendar-head a{
1036
+ display:inline-block;
1037
+ color:#fff !important;
1038
+ }
1039
+
1040
+ .calendar-head .previous,
1041
+ .calendar-head .next{
1042
+ width:20%;
1043
+ box-sizing: border-box;
1044
+ -moz-box-sizing: border-box;
1045
+ -webkit-box-sizing: border-box;
1046
+ display:table-cell;
1047
+ vertical-align: middle;
1048
+ text-shadow:0px 0px 3px #444444;
1049
+ }
1050
+
1051
+ .calendar-head .current-month{
1052
+ line-height: 1.5;
1053
+ text-align: center;
1054
+ width: 60%;
1055
+ box-sizing: border-box;
1056
+ -moz-box-sizing: border-box;
1057
+ -webkit-box-sizing: border-box;
1058
+ display:table-cell;
1059
+ vertical-align: middle;
1060
+ text-shadow: 0px 0px 3px #444444;
1061
+ }
1062
+
1063
+ .ecwd-widget-mini .calendar-head .current-month{
1064
+ font-size:16px;
1065
+ border-left:0px;
1066
+ border-right:0px;
1067
+ }
1068
+
1069
+ .calendar-head .previous{
1070
+ text-align: left;
1071
+ padding-left: 2%;
1072
+ }
1073
+
1074
+ .calendar-head .next{
1075
+ text-align: right;
1076
+ padding-right: 2%;
1077
+ }
1078
+
1079
+ .ecwd-widget-mini .calendar-head .previous,
1080
+ .ecwd-widget-mini .calendar-head .next{
1081
+ border-right:0px;
1082
+ border-left:0px;
1083
+ }
1084
+
1085
+
1086
+ .ecwd_calendar td .day-number{
1087
+ line-height: 1;
1088
+ }
1089
+
1090
+ /*############FILTERS##############*/
1091
+
1092
+ .ecwd_calendar_filters > select{
1093
+ border: 1px solid #E5E4E4;
1094
+ height: 40px;
1095
+ padding: 0 50px 0 25px;
1096
+ margin: 1px 1px 1px 0;
1097
+ -webkit-appearance: none;
1098
+ background:url(images/select.png) no-repeat right center;
1099
+ }
1100
+
1101
+ .ecwd_calendar_filters select:focus{
1102
+ outline:0;
1103
+ }
1104
+ .ecwd_calendar_filters .ecwd-dropdown-toggle{
1105
+ display:inline-block;
1106
+ }
1107
+
1108
+
1109
+ .ecwd_calendar_filters .ecwd-category-container,
1110
+ .ecwd_calendar_filters .ecwd-tag-container, .ecwd-venue-container, .ecwd-organizer-container,
1111
+ .ecwd_calendar_view_dropdown {
1112
+ width: 164px;
1113
+ float: left;
1114
+ position: relative;
1115
+ left: 0;
1116
+ display:inline-block;
1117
+ min-height: 40px;
1118
+ box-sizing: border-box;
1119
+ -moz-box-sizing: border-box;
1120
+ -webkit-box-sizing: border-box;
1121
+ padding: 2px 0 2px 10px;
1122
+ cursor: pointer;
1123
+ border: 1px solid #E5E4E4;
1124
+ margin: 1px 1px 1px 0;
1125
+ background:url(images/select.png) no-repeat right center;
1126
+ }
1127
+
1128
+ .ecwd_calendar_view_dropdown {
1129
+ max-width: 100%;
1130
+ width: 100%;
1131
+ background:#ffffff url(images/select.png) no-repeat right center;
1132
+ height: 30px;
1133
+ padding: 5px 0 0 10px;
1134
+ line-height: 1;
1135
+ }
1136
+
1137
+ .ecwd_calendar_filters .ecwd-dropdown-menu{
1138
+ max-height: 250px;
1139
+ min-width: 195px !important;
1140
+ overflow: auto;
1141
+ }
1142
+ .ecwd-tag-container .ecwd-dropdown-menu{
1143
+ padding: 6px !important;
1144
+ }
1145
+ .ecwd-widget-mini .ecwd_calendar_view_dropdown{
1146
+ min-height:30px !important;
1147
+ z-index: 3;
1148
+ }
1149
+ .ecwd-widget-mini .ecwd_calendar_view_dropdown>a{
1150
+ line-height: 18px;
1151
+ }
1152
+
1153
+
1154
+ .ecwd_calendar_filters .ecwd-dropdown-menu,
1155
+ .ecwd_calendar_view_dropdown .ecwd-dropdown-menu{
1156
+ min-width: 178px;
1157
+ background:#fff;
1158
+ z-index: 1;
1159
+ position: absolute;
1160
+ top:100%;
1161
+ left:0;
1162
+ display: none;
1163
+ padding: 0 10px;
1164
+ border:1px solid #C5C5C5;
1165
+ }
1166
+
1167
+ .ecwd_calendar_view_dropdown .ecwd-dropdown-menu{
1168
+ min-width: 152px;
1169
+ padding: 0 4px;
1170
+ width: 100%;
1171
+ box-sizing: border-box;
1172
+ -moz-box-sizing: border-box;
1173
+ -webkit-box-sizing: border-box;
1174
+ }
1175
+
1176
+ .ecwd_calendar_filters .ecwd-dropdown-menu .ecwd-tooltip-trigger{
1177
+ position: absolute;
1178
+ left: 0;
1179
+ top: 13px;
1180
+ width: 6px;
1181
+ height: 6px;
1182
+ border-radius: 6px;
1183
+ }
1184
+ .ecwd_calendar_filters:after{
1185
+ background: #fff;
1186
+ }
1187
+ .ecwd_calendar_filters:after{
1188
+ content:'';
1189
+ display: table;
1190
+ clear: both;
1191
+ }
1192
+ .ecwd-category-container:hover .ecwd-dropdown-menu,
1193
+ .ecwd-venue-container:hover .ecwd-dropdown-menu,
1194
+ .ecwd-organizer-container:hover .ecwd-dropdown-menu,
1195
+ .ecwd_calendar_view_dropdown:hover .ecwd-dropdown-menu,
1196
+ .ecwd-tag-container:hover .ecwd-dropdown-menu{
1197
+ display: block;
1198
+ }
1199
+
1200
+
1201
+ .ecwd_calendar_filters_res{
1202
+ position:relative;
1203
+ width:220px;
1204
+ height: 40px;
1205
+ box-sizing: border-box;
1206
+ -moz-box-sizing: border-box;
1207
+ -webkit-box-sizing: border-box;
1208
+ padding: 7px 0 0 10px;
1209
+ cursor: pointer;
1210
+ border: 1px solid #E5E4E4;
1211
+ margin:10px 0 10px 0;
1212
+ color: #585858;
1213
+ background: url(images/select.png) no-repeat right center;
1214
+ display:none;
1215
+ }
1216
+ .ecwd_calendar_filters_res a,.ecwd_calendar_filters .ecwd-dropdown-toggle{
1217
+ color: #585858;
1218
+ font-size: 15px;
1219
+ line-height: 19px;
1220
+ display: table-cell;
1221
+ vertical-align: middle;
1222
+ }
1223
+ .ecwd_calendar_filters_res a:hover,.ecwd_calendar_filters .ecwd-dropdown-toggle:hover{
1224
+ color: #585858;
1225
+ }
1226
+ .filters_res_container{
1227
+ position:absolute;
1228
+ z-index:1111;
1229
+ display:none;
1230
+ top:100%;
1231
+ left:0;
1232
+ background: #fff;
1233
+ border: 1px solid #E5E4E4;
1234
+ min-width: 100%;
1235
+ }
1236
+
1237
+ .ecwd_calendar_filters_res:hover .filters_res_container{
1238
+ display:block;
1239
+ }
1240
+
1241
+ .ecwd_calendar_filters_res .ecwd-filter{
1242
+ width:100%;
1243
+ margin:0;
1244
+ border:0;
1245
+ border-bottom: 1px solid #E5E4E4;
1246
+ background: url(images/select.png) no-repeat right center;
1247
+ transition:background 0.1s;
1248
+ display: table;
1249
+ }
1250
+ .ecwd_calendar_filters_res .ecwd-filter:hover{
1251
+ background: url(images/select_left.png) no-repeat right center;
1252
+ }
1253
+ .ecwd_calendar_filters_res .ecwd-dropdown-menu{
1254
+ top: 0;
1255
+ left: 100%;
1256
+ }
1257
+ div[class^="ecwd-page-"].ecwd_calendar .ecwd-list-date.resp,
1258
+ div[class^="ecwd-page-"].ecwd_calendar .ecwd-week-date.resp{
1259
+ display: none;
1260
+ }
1261
+
1262
+
1263
+ /*###############4DAY##############3*/
1264
+
1265
+ .four-day-event-list li {
1266
+ margin: 0 0 20px 0 !important;
1267
+ padding: 0 0 20px 0 !important;
1268
+ border-bottom: 1px solid #ccc;
1269
+ }
1270
+
1271
+ /*#############LIST,WEEK VIEW###############*/
1272
+
1273
+ .ecwd_calendar .ecwd_list li,
1274
+ .ecwd_calendar .day4-event-list li,
1275
+ .ecwd_calendar .day-event-list li,
1276
+ .ecwd_calendar .week-event-list li{
1277
+ border:1px solid #D5DCE2;
1278
+ margin-bottom:1px !important;
1279
+ clear: both;
1280
+ }
1281
+ .ecwd_calendar .week-event-list .ecwd-list-img,
1282
+ .ecwd_calendar .day4-event-list .ecwd-list-img,
1283
+ .ecwd_calendar .day-event-list .ecwd-list-img,
1284
+ .ecwd_calendar .ecwd_list .ecwd-list-img{
1285
+ width:200px;
1286
+ float: left;
1287
+ margin: 0px 10px 5px 0px !important;
1288
+ border-right: 1px solid #D5DCE2;
1289
+ border-bottom: 1px solid #D5DCE2;
1290
+
1291
+ }
1292
+ .ecwd_calendar .day4-event-list .ecwd-list-img-container,
1293
+ .ecwd_calendar .ecwd_list .ecwd-list-img-container,
1294
+ .ecwd_calendar .day-event-list .ecwd-list-img-container,
1295
+ .ecwd_calendar .week-event-list .ecwd-list-img-container{
1296
+ padding: 0 1px 1px 0 !important;
1297
+ }
1298
+ .ecwd_calendar .day4-event-list .ecwd-list-img-container img,
1299
+ .ecwd_calendar .week-event-list .ecwd-list-img-container img,
1300
+ .ecwd_calendar .day-event-list .ecwd-list-img-container img,
1301
+ .ecwd_calendar .ecwd_list .ecwd-list-img-container img{
1302
+ margin-top: 1px;
1303
+ width: 100%;
1304
+ height: auto;
1305
+ }
1306
+
1307
+ .ecwd_calendar .ecwd_list .event-content,
1308
+ .ecwd_calendar .day4-event-list .event-content,
1309
+ .ecwd_calendar .day-event-list .event-content,
1310
+ .ecwd_calendar .week-event-list .event-content{
1311
+ padding:0px 10px 10px !important;
1312
+ font-size: 15px;
1313
+ }
1314
+ .day4-event-list h3,
1315
+ .ecwd_list h3,
1316
+ .day-event-list h3,
1317
+ .week-event-list h3{
1318
+ margin: 1px 0 10px 0 !important;
1319
+ font-size: 17px !important;
1320
+ font-weight: normal !important;
1321
+ line-height: 18px !important;
1322
+ text-transform: none;
1323
+ letter-spacing: 0;
1324
+ }
1325
+
1326
+
1327
+ .ecwd-day-date,
1328
+ .day-event-list .ecwd-week-date,
1329
+ .day4-event-list .ecwd-week-date,
1330
+ .week-event-list .ecwd-week-date{
1331
+ text-align: left;
1332
+ color:#fff;
1333
+ padding-left: 5%;
1334
+ font-size: 15px;
1335
+ font-style: italic;
1336
+ }
1337
+
1338
+ .ecwd_list .ecwd-list-date{
1339
+ text-align: center;
1340
+ color:#fff;
1341
+ font-size: 15px;
1342
+ font-style: italic;
1343
+ }
1344
+
1345
+
1346
+ .ecwd_list .ecwd-list-date-cont,
1347
+ .day4-event-list .ecwd-list-date-cont,
1348
+ .day-event-list .ecwd-list-date-cont,
1349
+ .week-event-list .ecwd-list-date-cont{
1350
+ display:inline-block;
1351
+ box-sizing: content-box;
1352
+ -webkit-box-sizing: content-box;
1353
+ -moz-box-sizing: content-box;
1354
+ }
1355
+
1356
+ .ecwd-widget-mini .ecwd_list .ecwd-list-date-cont,
1357
+ .ecwd-widget-mini .day4-event-list .ecwd-list-date-cont,
1358
+ .ecwd-widget-mini .day-event-list .ecwd-list-date-cont,
1359
+ .ecwd-widget-mini .week-event-list .ecwd-list-date-cont{
1360
+ width: 100%;
1361
+ padding-bottom: 5px;
1362
+ }
1363
+
1364
+ .event-container{
1365
+ clear:both;
1366
+ border-bottom: 1px solid #D5DCE2;
1367
+ }
1368
+ .event-container:last-child{
1369
+ border-bottom: 0;
1370
+ }
1371
+ .ecwd-img{
1372
+ width: 100%;
1373
+ max-height: 150px;
1374
+ overflow: hidden;
1375
+ }
1376
+ .ecwd-no-image .ecwd-img{
1377
+ height: 0px;
1378
+ width: 0;
1379
+ }
1380
+ .ecwd-no-image .ecwd-list-img{
1381
+ width: 0 !important;
1382
+ border: 0 !important;
1383
+ }
1384
+ .ecwd-no-image.event-container,.ecwd-no-image .event-main-content,.ecwd_calendar li.ecwd-no-image {
1385
+ padding: 0 10px 10px !important;
1386
+ }
1387
+
1388
+ .ecwd_calendar .ecwd-no-image .event-content,
1389
+ .ecwd_calendar.ecwd-widget-mini .event-content,
1390
+ .ecwd_calendar.ecwd-widget-mini .ecwd_list li{
1391
+ padding: 0 !important;
1392
+ color: #676767;
1393
+ }
1394
+
1395
+ /*
1396
+ .week-event-list .ecwd-list-img{
1397
+ width: 100% !important;
1398
+ min-height: 21px;
1399
+ }*/
1400
+ .ecwd_list .ecwd-list-img{
1401
+ width: 30% !important;
1402
+ min-height: 21px;
1403
+ }
1404
+
1405
+
1406
+
1407
+ /*##############PAGINATION###################*/
1408
+
1409
+ .ecwd-pagination .cpage-span{
1410
+ position:relative !important;
1411
+ display: inline-block !important;
1412
+ width: 27px !important;
1413
+ height: 25px !important;
1414
+ margin: 0 0 5px 0 !important;
1415
+ float:none !important;
1416
+ }
1417
+ .ecwd-pagination .cpage,
1418
+ .ecwd-pagination .page{
1419
+ font-size: 15px;
1420
+ width: 100%;
1421
+ border: 1px solid #D5DCE2 !important;
1422
+ display: inline-block;
1423
+ color:#A5A5A5;
1424
+ line-height: 24px !important;
1425
+ }
1426
+ .ecwd-pagination .cpage{
1427
+ position:absolute;
1428
+ top:0;
1429
+ left:0;
1430
+ box-shadow: 0 0 7px -3px #CBCBCB inset;
1431
+ }
1432
+
1433
+ .ecwd-pagination .page{
1434
+ border: 0;
1435
+ position: absolute;
1436
+ left: 0;
1437
+ top: 0;
1438
+ height: 26px;
1439
+ width: 27px;
1440
+ }
1441
+ .ecwd-pagination .cpage{
1442
+ background:#fff;;
1443
+ }
1444
+
1445
+ .ecwd-pagination {
1446
+ margin-top: 20px;
1447
+ text-align: center;
1448
+ }
1449
+
1450
+ .ecwd-pagination .cpage-span:hover .cpage{
1451
+ -ms-transform: scale(1.1,1.1); /* IE 9 */
1452
+ -webkit-transform: scale(1.1,1.1); /* Chrome, Safari, Opera */
1453
+ transform: scale(1.1,1.1); /* Standard syntax */
1454
+ font-size: 16px;
1455
+ font-weight:bold;
1456
+ z-index:1;
1457
+ }
1458
+
1459
+
1460
+ .event-organizers,.event-venue{
1461
+ clear:both;
1462
+ padding-left: 26px;
1463
+ font-size: 14px;
1464
+ font-style: italic;
1465
+ line-height: 1.4;
1466
+ margin: 5px 0;
1467
+ color: #010101;
1468
+ }
1469
+ .event-organizers a,.event-venue a{
1470
+ color: #010101 !important;
1471
+ }
1472
+ .event-main-content .event-organizers,.event-main-content .event-venue{
1473
+ margin: 0px 0 5px 10px;
1474
+ min-height: 20px;
1475
+ }
1476
+
1477
+ .ecwd-no-image .event-organizers,.ecwd-no-image .event-venue{
1478
+ margin-left: 0px;
1479
+ }
1480
+
1481
+ .ecwd_calendar.ecwd-widget-mini .ecwd-events-day-details li .event-organizers,
1482
+ .ecwd_calendar.ecwd-widget-mini .ecwd-events-day-details li .event-venue{
1483
+ margin-left:10px;
1484
+ }
1485
+ .event-organizers{
1486
+ background:url(images/org.png) no-repeat left;
1487
+ }
1488
+ .event-venue{
1489
+ background:url(images/loc.png) no-repeat left;
1490
+ }
1491
+
1492
+ /*#######################EVENT PAGE##############################*/
1493
+ .ecwd-event .event-venue,
1494
+ .ecwd-event .event-detalis-date,
1495
+ .ecwd-event .event-detalis-org{
1496
+ margin-bottom: 8px;
1497
+ }
1498
+
1499
+ .event-detalis{
1500
+ margin: 5px 0 20px 0;
1501
+ }
1502
+
1503
+ .ecwd-social{
1504
+ padding:35px 0 20px;
1505
+ border-top: 1px solid #ddd;
1506
+ }
1507
+
1508
+ .ecwd-event-video{
1509
+ margin: 35px 0;
1510
+ }
1511
+
1512
+ .ecwd-social ul{
1513
+ list-style: none !important;
1514
+ list-style-type: none !important;
1515
+ padding-left:0;
1516
+ }
1517
+
1518
+ .ecwd-social ul li{
1519
+ float: left;
1520
+ margin-right:10px;
1521
+ max-width: 95%;
1522
+ }
1523
+ .ecwd-social ul li>div{
1524
+ max-width: 95%;
1525
+ }
1526
+ .ecwd-social ul li:first-child{
1527
+ line-height: 19px;
1528
+ }
1529
+
1530
+ .event-detalis .ecwd-event-date-info,
1531
+ .event-detalis .ecwd-event-url-info,
1532
+ .event-detalis .ecwd-event-org-info{
1533
+ display: inline-block;
1534
+ height: 17px;
1535
+ width: 21px;
1536
+ line-height: 1.3;
1537
+ margin: 0;
1538
+ }
1539
+
1540
+ .event-detalis .ecwd-event-date-info{
1541
+ background: url(images/date.png) no-repeat left;
1542
+ }
1543
+
1544
+ .event-detalis .ecwd-event-org-info{
1545
+ background: url(images/org.png) no-repeat left;
1546
+ }
1547
+ .event-detalis .ecwd-event-url-info{
1548
+ background: url(images/url-icon.png) no-repeat left bottom;
1549
+ }
1550
+
1551
+ .ecwd-organizer-events ul,
1552
+ .ecwd-venue-events ul{
1553
+ list-style: none !important;
1554
+ list-style-type: none !important;
1555
+ padding-left:0 !important;
1556
+ width: 500%;
1557
+ margin: 0 !important;
1558
+ }
1559
+
1560
+ @media only screen and (max-width: 768px){
1561
+ .event-detalis,.ecwd-social{
1562
+ float:none;
1563
+ width:100%;
1564
+ }
1565
+ .event-detalis{
1566
+ margin-right:0px;
1567
+ }
1568
+ }
1569
+
1570
+ /*####################upcoming events#####################*/
1571
+
1572
+ .ecwd-organizer-events,
1573
+ .ecwd-venue-events{
1574
+ clear:both;
1575
+ }
1576
+
1577
+ .ecwd-organizer-events h3,
1578
+ .ecwd-venue-events h3{
1579
+ text-align:center;
1580
+ margin: 20px 0 25px;
1581
+ display: block !important;
1582
+ }
1583
+ .ecwd-organizer-events,
1584
+ .ecwd-venue-events{
1585
+ padding: 0 20px 20px;
1586
+ margin: 10px 0 20px;
1587
+ }
1588
+
1589
+ .upcoming_events_item{
1590
+ float:left;
1591
+ text-align:center;
1592
+ left: 0;
1593
+ position: relative;
1594
+ margin: 0 !important;
1595
+ padding: 0 !important;
1596
+ max-height:300px;
1597
+ overflow-y: auto;
1598
+ }
1599
+ .upcoming_events_item-img img{
1600
+ margin: 0px auto 13px;
1601
+ }
1602
+ .upcoming_events_item .event-date{
1603
+ font-size:22px;
1604
+ font-weight:bold;
1605
+ margin-bottom: 15px;
1606
+ }
1607
+
1608
+ .upcoming_events_item .event-title a{
1609
+ font-size: 22px;
1610
+ font-weight: bold;
1611
+ text-transform: uppercase;
1612
+ }
1613
+ .upcoming_events_item .event-title{
1614
+ margin: 0px 0 3px;
1615
+ line-height: 21px;
1616
+ }
1617
+
1618
+ .upcoming_events_slider{
1619
+ overflow: hidden;
1620
+ position: relative;
1621
+ border: 1px solid #D8DEE4;
1622
+ }
1623
+ .upcoming_events_slider .upcoming_event_container{
1624
+ margin: 10px auto;
1625
+ }
1626
+ .upcoming_events_slider-arrow-left,.upcoming_events_slider-arrow-right{
1627
+ position:absolute;
1628
+ width:40px;
1629
+ height:60px;
1630
+ top:50%;
1631
+ margin-top:-30px;
1632
+ cursor:pointer;
1633
+ z-index: 1;
1634
+ display: none;
1635
+ }
1636
+
1637
+ .upcoming_events_slider-arrow-left{
1638
+ left:0;
1639
+ background: rgba(0,0,0,0.6) url(images/arrow_left.png) no-repeat center;
1640
+ }
1641
+ .upcoming_events_slider-arrow-right{
1642
+ right:0;
1643
+ background: rgba(0,0,0,0.6) url(images/arrow_right.png) no-repeat center;
1644
+ }
1645
+
1646
+ .ecwd_map_div{
1647
+ width: 100%;
1648
+ height: 100%;
1649
+ min-height: 300px;
1650
+ max-width:100%;
1651
+ }
1652
+ .ecwd_calendar_container.map .ecwd_map_div img, #ecwd_map_div img, .google_map img, .ecwd-show-map img { max-width:none !important; }
1653
+ .event_dropdown_cont{
1654
+ border-top: 1px solid #D5DCE2;
1655
+ display:none;
1656
+ padding-top: 6px;
1657
+ }
1658
+ .ecwd-list-date-cont{
1659
+ position:relative;
1660
+ }
1661
+
1662
+ /******Loading gif*****/
1663
+ .ecwd_loader{
1664
+ display: none;
1665
+ position: absolute;
1666
+ background: url(images/loading.gif) center center no-repeat;
1667
+ /*background-size: 100% 100%;*/
1668
+ top: 0;
1669
+ left: 0;
1670
+ width: 100%;
1671
+ height: 100%;
1672
+ z-index: 3;
1673
+ background-color: rgba(255,255,255,0.4);
1674
+ }
1675
+
1676
+ .widget .ecwd_loader{
1677
+ /*background-size: 50% 100%;*/
1678
+ }
1679
+
1680
+ /******social icons*****/
1681
+ a.ecwd-twitter, a.ecwd-facebook, a.ecwd-google-plus{
1682
+ display: inline-block;
1683
+
1684
+ width: 27px;
1685
+ height: 27px;
1686
+ text-indent: -9999px;
1687
+ }
1688
+ a.ecwd-twitter{
1689
+ background: url("images/twitter_icon.png") no-repeat center center;
1690
+ }
1691
+ a.ecwd-facebook{
1692
+ background: url("images/fb_icon.png") no-repeat center center;
1693
+ }
1694
+ a.ecwd-google-plus{
1695
+ background: url("images/gplus_icon.png") no-repeat center center;
1696
+ }
1697
+
1698
+
1699
+ @media only screen and (max-width: 768px){
1700
+ .ecwd-poster-board .ecwd-poster-item{
1701
+ width: 45%;
1702
+ }
1703
+ }
1704
+ @media only screen and (max-width: 460px){
1705
+ .ecwd-poster-board .ecwd-poster-item{
1706
+ width: 95%;
1707
+ margin: 15px 5px 0;
1708
+ }
1709
+ }
1710
+
1711
+
1712
+ .ecwd-poster-board .ecwd-poster-item .ecwd-event-details .date span:not(.weekday-block):not(.datenumber){
1713
+ padding:5px;
1714
+ text-transform:uppercase;
1715
+ display:inline-block;
1716
+ box-sizing: border-box;
1717
+ -moz-box-sizing: border-box;
1718
+ -webkit-box-sizing: border-box;
1719
+ margin:0 1px 1px 0;
1720
+ border-radius:1px;
1721
+ }
1722
+ .ecwd-poster-board .ecwd-poster-item .ecwd-event-content{
1723
+ background-color: #FFFFFF;
1724
+ border: 1px solid #C4C4C4;
1725
+ padding: 10px;
1726
+ table-layout: fixed;
1727
+ }
1728
+
1729
+ .ecwd-search ::-webkit-input-placeholder {color:#333 !important;}
1730
+ .ecwd-search ::-moz-placeholder {color:#333 !important;}/* Firefox 19+ */
1731
+ .ecwd-search :-moz-placeholder {color:#333 !important;}/* Firefox 18- */
1732
+ .ecwd-search :-ms-input-placeholder {color:#333 !important;}
1733
+
1734
+
1735
+ .ecwd-page-grid,
1736
+ .ecwd-page-list,
1737
+ .ecwd-widget-grid,
1738
+ .ecwd-widget-list,
1739
+ .ecwd-event-info {
1740
+ line-height: 1.5;
1741
+ }
1742
+
1743
+ /* Month & list titles for all views */
1744
+
1745
+ .ecwd-month-title,
1746
+ .ecwd-list-title {
1747
+ font-weight: bold;
1748
+ padding-bottom: 5px;
1749
+ }
1750
+
1751
+ /* Event titles with shaded background for all views */
1752
+
1753
+ .ecwd-list-event,
1754
+ .ecwd-tooltip-event {
1755
+ background-color: #ddd;
1756
+ padding: 0 5px;
1757
+ }
1758
+
1759
+ .ecwd_list li:after{
1760
+ clear: both;
1761
+ display: none;
1762
+ }
1763
+ /* PAGE GRID */
1764
+
1765
+ .ecwd-page-grid .ecwd-calendar .ecwd-caption{ /* Caption at top of calendar */
1766
+ color:#333333;
1767
+ text-align:center;
1768
+ }
1769
+
1770
+ .ecwd-page-grid .ecwd-calendar{ /* Main calendar table */
1771
+ width:100%;
1772
+ border-collapse:collapse;
1773
+ border:1px solid #CCCCCC;
1774
+ color:#CCCCCC;
1775
+ }
1776
+
1777
+ .ecwd-page-grid .ecwd-calendar th{ /* Day headings (S, M etc.) */
1778
+ border:1px solid #CCCCCC;
1779
+ text-align:center;
1780
+ width:14.29%;
1781
+ padding:0;
1782
+ }
1783
+
1784
+ .ecwd-page-grid .ecwd-calendar td{ /* Day table cells */
1785
+ border:1px solid #CCCCCC;
1786
+ text-align:center;
1787
+ height:80px;
1788
+ vertical-align:middle;
1789
+ padding:0;
1790
+ }
1791
+
1792
+ .ecwd-page-grid .ecwd-calendar .ecwd-has-events{ /* Table cells with events */
1793
+ color:#333333;
1794
+ cursor:pointer;
1795
+ }
1796
+
1797
+ .ecwd-page-grid .ecwd-calendar .ecwd-event-info{ /* Event information */
1798
+ display:none; /* Important! */
1799
+ }
1800
+
1801
+ .ecwd-page-grid .ecwd-calendar .ecwd-day-number{ /* Day number span */
1802
+ font-size:2em;
1803
+ }
1804
+
1805
+ .ecwd-page-grid .ecwd-calendar .ecwd-today{ /* Table cell that represents today */
1806
+ background-color:#DDDDDD;
1807
+ }
1808
+
1809
+ .ecwd-page-grid .ecwd-calendar th abbr{ /* Day letter abbreviation */
1810
+ border-bottom:none;
1811
+ }
1812
+
1813
+ /* PAGE LIST */
1814
+
1815
+ .ecwd-page-list .ecwd-event {
1816
+ padding-bottom: 10px;
1817
+ }
1818
+
1819
+ .ecwd-page-list .ecwd-list p{ /* Each piece of information in the list */
1820
+ margin:0;
1821
+ }
1822
+
1823
+ .ecwd-page-list .ecwd-list p span,
1824
+ .ecwd-page-list .ecwd-list div span{ /* The text displayed before each piece of info, 'Starts:' for example */
1825
+ color:#999999;
1826
+ }
1827
+
1828
+
1829
+ /* WIDGET GRID */
1830
+
1831
+ .ecwd-widget-grid .ecwd-calendar .ecwd-caption{
1832
+ text-align:center;
1833
+ }
1834
+
1835
+ .ecwd-widget-grid .ecwd-calendar{ /* Main calendar table */
1836
+ width:100%;
1837
+ border:1px solid #CCCCCC;
1838
+ border-collapse:collapse;
1839
+ }
1840
+
1841
+ .ecwd-widget-grid .ecwd-calendar th{ /* Day headings (S, M etc.) */
1842
+ width:14.29%;
1843
+ border:1px solid #CCCCCC;
1844
+ text-align:center;
1845
+ }
1846
+
1847
+ .ecwd-widget-grid .ecwd-calendar td{ /* Day table cells */
1848
+ color:#CCCCCC;
1849
+ width:14.29%;
1850
+ border:1px solid #CCCCCC;
1851
+ text-align:center;
1852
+ }
1853
+
1854
+ .ecwd-widget-grid .ecwd-calendar .ecwd-has-events{ /* Table cells with events */
1855
+ cursor:pointer;
1856
+ color:#666666;
1857
+ }
1858
+
1859
+ .ecwd-widget-grid .ecwd-calendar .ecwd-today{ /* Table cell that represents today */
1860
+ background-color:#DDDDDD;
1861
+ }
1862
+
1863
+ .ecwd-widget-grid .ecwd-calendar .ecwd-event-info{ /* Event information */
1864
+ display:none; /* Important! */
1865
+ }
1866
+
1867
+ .ecwd-widget-grid .ecwd-calendar th abbr{ /* Day name abbreviations */
1868
+ border-bottom:none;
1869
+ }
1870
+
1871
+ /* WIDGET LIST */
1872
+
1873
+ .ecwd-widget-list .ecwd-list p{ /* Each piece of information in the list */
1874
+ margin:0;
1875
+ }
1876
+
1877
+ .ecwd-widget-list .ecwd-list p span,
1878
+ .ecwd-widget-list .ecwd-list div span{ /* The text displayed before each piece of info, 'Starts:' for example */
1879
+ color:#999999;
1880
+ }
1881
+
1882
+ /* TOOLTIP */
1883
+
1884
+ .ecwd-event-info{ /* Tooltip container */
1885
+ background-color:#FFFFFF;
1886
+ }
1887
+
1888
+ .ecwd-event-info .ecwd-tooltip-title{ /* 'Events on...' text */
1889
+ margin:5px;
1890
+ font-weight:bold;
1891
+ font-size:1.2em;
1892
+ }
1893
+
1894
+ .ecwd-event-info ul{ /* Events list */
1895
+ padding:0;
1896
+ margin:5px;
1897
+ list-style-type:none;
1898
+ }
1899
+
1900
+ .ecwd-event-info ul li{ /* Event list item */
1901
+ margin:10px 0 0 0;
1902
+ }
1903
+
1904
+ .ecwd-event-info ul li p{ /* Each piece of information */
1905
+ margin:0;
1906
+ }
1907
+
1908
+ .ecwd-event-info ul li p span,
1909
+ .ecwd-event-info ul li div span{ /* The text displayed before each piece of info, 'Starts:' for example */
1910
+ color:#999999;
1911
+ }
1912
+
1913
+ /** Calendar navigation bar, Prev/Next links & month title. **/
1914
+
1915
+ .ecwd-navbar {
1916
+ width: 100%;
1917
+ text-align: center;
1918
+ clear: both;
1919
+ overflow: hidden;
1920
+ }
1921
+
1922
+ .ecwd-next,
1923
+ .ecwd-prev {
1924
+ white-space: nowrap;
1925
+ }
1926
+
1927
+ .ecwd-prev {
1928
+ float: left;
1929
+ }
1930
+
1931
+ .ecwd-next {
1932
+ float: right;
1933
+ }
1934
+
1935
+ .ecwd-month-title {
1936
+ display: inline-block;
1937
+ margin: 0 auto;
1938
+ white-space: nowrap;
1939
+ }
1940
+
1941
+ /* Grouped List */
1942
+
1943
+ .ecwd-list-grouped .ecwd-event {
1944
+ margin-left: 5%;
1945
+ }
1946
+
1947
+ /* Countdown widget*/
1948
+
1949
+ .ecwd_countdown_info{
1950
+
1951
+ }
1952
+ .ecwd_countdown_info .date{
1953
+
1954
+ }
1955
+ .ecwd_countdown_info .info{
1956
+ display: inline-block;
1957
+ font-size: 14px;
1958
+ font-style: italic;
1959
+ line-height: 1.3;
1960
+ }
1961
+
1962
+ .ecwd_countdown_info span{
1963
+ display: block;
1964
+ }
1965
+
1966
+ .ecwd_countdown_info span{
1967
+ display: block;
1968
+ }
1969
+ .ecwd_map_event span{
1970
+ display: block;
1971
+ }
1972
+ .ecwd-event span{
1973
+
1974
+ }
1975
+ .ecwd-event{
1976
+ background-color: #F9F9F9;
1977
+ padding: 10px;
1978
+ margin-bottom: 10px;
1979
+ }
1980
+
1981
+ .ecwd-show-map{
1982
+ /*display: none;*/
1983
+ }
1984
+
1985
+
1986
+
1987
+ .ecwd_calendar_view_tabs li.ecwd-search{
1988
+ /*position: relative;*/
1989
+ padding: 0px 9px;
1990
+
1991
+ }
1992
+ .ecwd-search{
1993
+ float:right;
1994
+ }
1995
+
1996
+ .ecwd-search input[type="text"] {
1997
+ display: inline-block;
1998
+ text-indent: -2000px;
1999
+ font-weight: 100;
2000
+ outline: none;
2001
+ width: 50px !important;
2002
+ height: 49px !important;
2003
+ position: absolute;
2004
+ top: 0;
2005
+ right: 0;
2006
+ background: none !important;
2007
+ z-index: 4;
2008
+ transition: width .6s cubic-bezier(0.000, 0.795, 0.000, 1.000);
2009
+ cursor: pointer;
2010
+ border: 0px;
2011
+ padding: 0;
2012
+ box-sizing: border-box;
2013
+ -moz-box-sizing: border-box;
2014
+ -webkit-box-sizing: border-box;
2015
+ border-radius: 0;
2016
+ font-size: 14px;
2017
+ }
2018
+ .ecwd-search input[type="text"]::-webkit-input-placeholder {color: transparent}
2019
+ .ecwd-search input[type="text"]::-moz-placeholder {color: transparent}
2020
+ .ecwd-search input[type="text"]:-moz-placeholder {color: transparent}
2021
+ .ecwd-search input[type="text"]:-ms-input-placeholder {color: transparent}
2022
+
2023
+
2024
+ .ecwd-search input[type="text"]:focus {
2025
+ width: 250px !important;
2026
+ z-index: 2;
2027
+ border: 1px solid #60A2B2;
2028
+ background-color: #FFFFFF !important;
2029
+ cursor: text;
2030
+ text-indent: 5px;
2031
+ margin: 0 !important;
2032
+ }
2033
+
2034
+ .ecwd-search input[type="text"]:focus::-webkit-input-placeholder {color: #1FA67A}
2035
+ .ecwd-search input[type="text"]:focus::-moz-placeholder {color: #1FA67A}
2036
+ .ecwd-search input[type="text"]:focus:-moz-placeholder {color: #1FA67A}
2037
+ .ecwd-search input[type="text"]:focus:-ms-input-placeholder {color: #1FA67A}
2038
+ .calendar_main .fa,
2039
+ .calendar_main + .ecwd_add_event .fa {
2040
+ display: inline-block;
2041
+ font: normal normal normal 14px/1 FontAwesome;
2042
+ font-size: inherit;
2043
+ text-rendering: auto;
2044
+ -webkit-font-smoothing: antialiased;
2045
+ -moz-osx-font-smoothing: grayscale;
2046
+ transform: translate(0, 0);
2047
+ text-indent: 0px;
2048
+ position: absolute;
2049
+ top: 12px;
2050
+ font-size: 18px;
2051
+ left: 13px;
2052
+ line-height: 19px;
2053
+ color: #676767;
2054
+ }
2055
+ .calendar_main .ecwd-search-submit .fa{
2056
+ top: 17px;
2057
+ left: 17px;
2058
+ color: #ffffff;
2059
+ }
2060
+
2061
+ .ecwd-search button,.ecwd-search button:hover {
2062
+ height: 49px;
2063
+ width: 50px;
2064
+ padding:0;
2065
+ display: inline-block;
2066
+ float: right;
2067
+ text-indent: -10000px;
2068
+ border: none;
2069
+ position: absolute;
2070
+ top: 0;
2071
+ right: 0;
2072
+ z-index: 2;
2073
+ cursor: pointer;
2074
+ -webkit-appearance: inherit;
2075
+ border-radius: 0;
2076
+
2077
+ }
2078
+
2079
+ .ecwd-event-cat-icon{
2080
+ max-width: 20px !important;
2081
+ max-height: 20px !important;
2082
+ margin: 0 7px 2px 0;
2083
+ }
2084
+
2085
+ .ecwd-modal {
2086
+ position: fixed !important;
2087
+ overflow-y: scroll;
2088
+ top: 0;
2089
+ right: 0;
2090
+ bottom: 0;
2091
+ left: 0;
2092
+ background: rgba(0, 0, 0, 0.8);
2093
+ z-index: 9999 !important;
2094
+ opacity:0;
2095
+ -webkit-transition: opacity 400ms ease-in;
2096
+ -moz-transition: opacity 400ms ease-in;
2097
+ transition: opacity 400ms ease-in;
2098
+ display: none;
2099
+
2100
+ }
2101
+
2102
+ .ecwd-calendar-more-event .modal-footer{
2103
+ padding: 0 !important;
2104
+ margin-top: 0 !important;
2105
+ border-top: 0 !important;
2106
+ }
2107
+
2108
+ .ecwd-modal > div.ecwd-excluded-events {
2109
+ width: 400px;
2110
+ position: relative;
2111
+ margin: 10% auto;
2112
+ padding: 2px;
2113
+ background: #fff;
2114
+ border: 1px solid #CFD7DE;
2115
+ }
2116
+ .ecwd-modal:target {
2117
+ opacity:1;
2118
+ display: block;
2119
+ pointer-events: auto;
2120
+ }
2121
+ .ecwd-modal .modal-header {
2122
+ margin: 0 0 1px 0 !important;
2123
+ padding: 0 0 1px 0;
2124
+ border-bottom: 1px solid #CFD7DE;
2125
+ }
2126
+ .ecwd-modal h4 {
2127
+ margin: 0 !important;
2128
+ text-align: center;
2129
+ color: #737373;
2130
+ font-size: 20px !important;
2131
+ height: 40px;
2132
+ line-height: 38px !important;
2133
+ }
2134
+
2135
+ .ecwd-calendar-more-event .ecwd-modal ul.events li {
2136
+ opacity: 0.8;
2137
+ }
2138
+
2139
+ .ecwd-modal .ecwd-excluded-events ul.events > li:hover {
2140
+ /*background-color: #D7D7D7 !important;*/
2141
+ opacity: 1;
2142
+ }
2143
+
2144
+ .ecwd-modal .ecwd-excluded-events ul.events li:hover > a{
2145
+ /*color:#FDFDFD !important;*/
2146
+ }
2147
+ .ecwd-modal .events li .event-metalabel{
2148
+ width:15px;
2149
+ height:15px;
2150
+ }
2151
+
2152
+ .modal-body ul.events li.inmore{
2153
+ display: inherit !important;
2154
+ }
2155
+
2156
+ .modalDialog {
2157
+ position: fixed;
2158
+ overflow-y: scroll;
2159
+ top: 0;
2160
+ right: 0;
2161
+ bottom: 0;
2162
+ left: 0;
2163
+ background: rgba(0,0,0,0.8);
2164
+ z-index: 9998;
2165
+ opacity:0;
2166
+ -webkit-transition: opacity 400ms ease-in;
2167
+ -moz-transition: opacity 400ms ease-in;
2168
+ transition: opacity 400ms ease-in;
2169
+ pointer-events: none;
2170
+ }
2171
+ .modalDialog:target {
2172
+ opacity:1;
2173
+ pointer-events: auto;
2174
+ }
2175
+
2176
+ .modalDialog > div {
2177
+ max-width: 960px;
2178
+ position: relative;
2179
+ margin: 10% auto;
2180
+ padding: 5px 20px 13px 20px;
2181
+ border-radius: 10px;
2182
+ background: #fff;
2183
+ }
2184
+ .event-content table, .ecwd-detalis table{
2185
+ table-layout: fixed;
2186
+ }
2187
+ .ecwd-events-day-details .event-details-title{
2188
+ padding: 0 3px;
2189
+ }
2190
+ .hidden{
2191
+ display: none;
2192
+ }
2193
+ @media only screen and (max-width: 500px){
2194
+ .fa {
2195
+ top: 11px;
2196
+ left: 17px;
2197
+ }
2198
+ .calendar-head .previous, .calendar-head .next {
2199
+ font-size: 14px;
2200
+ }
2201
+
2202
+ .ecwd-events-day-details {
2203
+ margin-top: 20px;
2204
+ }
2205
+
2206
+ .ecwd_calendar_view_tabs ul li a{
2207
+ padding: 8px 0px;
2208
+ font-size: 14px;
2209
+ }
2210
+
2211
+ .ecwd-search input[type="text"]{
2212
+ height: 38px !important;
2213
+ }
2214
+
2215
+ .calendar_main .ecwd-search-submit .fa {
2216
+ top: 11px;
2217
+ }
2218
+
2219
+ .month-name{
2220
+ display:none;
2221
+ }
2222
+
2223
+ .calendar-head {
2224
+ height: 50px;
2225
+ }
2226
+
2227
+ .calendar-head .current-month{
2228
+ font-size: 20px;
2229
+ }
2230
+ .calendar-head .previous,.calendar-head .current-month{
2231
+ border-right:0;
2232
+ }
2233
+ .calendar-head .next,.calendar-head .current-month{
2234
+ border-left:0;
2235
+ }
2236
+
2237
+ .ecwd_calendar .filter-arrow-right, .ecwd_calendar .filter-arrow-left{
2238
+ line-height: 22px;
2239
+ }
2240
+
2241
+ .ecwd-search button,.ecwd-search input[type="text"]{
2242
+ height: 38px !important;
2243
+ }
2244
+
2245
+ .ecwd_calendar_filters_res{
2246
+ width: 180px;
2247
+ height: 36px;
2248
+ padding: 5px 0 0 10px;
2249
+ }
2250
+
2251
+ /*views responsive*/
2252
+
2253
+ div[class^="ecwd-page-"] .ecwd_list .event-main-content {
2254
+ border: 1px solid #D5DCE2;
2255
+ margin-bottom: 1px;
2256
+ float: right;
2257
+ width: 89.8%;
2258
+ min-height: 42px;
2259
+ box-sizing: border-box;
2260
+ -moz-box-sizing: border-box;
2261
+ -webkit-box-sizing: border-box;
2262
+ padding: 4px 4px 0 4px !important;
2263
+ overflow: hidden;
2264
+ }
2265
+ div[class^="ecwd-page-"] .event-container{
2266
+ border: 1px solid #D5DCE2;
2267
+ margin-bottom: 1px;
2268
+ box-sizing: border-box;
2269
+ -moz-box-sizing: border-box;
2270
+ -webkit-box-sizing: border-box;
2271
+ padding: 4px !important;
2272
+ overflow: hidden;
2273
+ }
2274
+
2275
+ div[class^="ecwd-page-"].ecwd_calendar .event-content {
2276
+ padding: 0 !important;
2277
+ }
2278
+ div[class^="ecwd-page-"] .event-content:after {
2279
+ content:'';
2280
+ display:table;
2281
+ clear:both;
2282
+ }
2283
+
2284
+ div[class^="ecwd-page-"] .ecwd-week-date, div[class^="ecwd-page-"] .ecwd-list-date {
2285
+ width: 10%;
2286
+ float: left;
2287
+ height: 42px;
2288
+ padding: 10px 0 0 0 !important;
2289
+ text-align: center !important;
2290
+ line-height: 21px !important;
2291
+ box-sizing: border-box;
2292
+ -moz-box-sizing: border-box;
2293
+ -webkit-box-sizing: border-box;
2294
+ }
2295
+ div[class^="ecwd-page-"] .ecwd_list li, div[class^="ecwd-page-"] .day4-event-list li, div[class^="ecwd-page-"] .day-event-list li, div[class^="ecwd-page-"] .week-event-list li{
2296
+ border:0;
2297
+ padding: 0 !important;
2298
+ margin-bottom:0px !important;
2299
+ }
2300
+
2301
+ div[class^="ecwd-page-"] .event-main-content.no-events{
2302
+ border: 1px solid #D5DCE2;
2303
+ margin-bottom:1px;
2304
+ }
2305
+ div[class^="ecwd-page-"] .week-event-list .ecwd-list-img, div[class^="ecwd-page-"] .day4-event-list .ecwd-list-img, div[class^="ecwd-page-"] .day-event-list .ecwd-list-img, div[class^="ecwd-page-"] .ecwd_list .ecwd-list-img{
2306
+ border-right: 0px;
2307
+ border-bottom: 0px;
2308
+ top: 0;
2309
+ left: 0;
2310
+ }
2311
+
2312
+ div[class^="ecwd-page-"] .ecwd-img {
2313
+ height: auto;
2314
+ }
2315
+
2316
+ div[class^="ecwd-page-"] .arrow-down {
2317
+ display: block;
2318
+ background: url(images/arrow_down.png) no-repeat right center;
2319
+ position: absolute;
2320
+ bottom: 3px;
2321
+ width: 20px;
2322
+ cursor: pointer;
2323
+ height: 9px;
2324
+ transition: all 0.3s;
2325
+ right: 0px;
2326
+ }
2327
+
2328
+ div[class^="ecwd-page-"] .arrow-down.open {
2329
+ background: url(images/arrow_up.png) no-repeat right center;
2330
+ }
2331
+ div[class^="ecwd-page-"] .ecwd-list-img-container {
2332
+ width: 30%;
2333
+ float: left;
2334
+ margin-right: 10px !important;
2335
+ background: #fff;
2336
+ position: relative;
2337
+ }
2338
+ div[class^="ecwd-page-"] li.ecwd-no-image .ecwd-list-img-container,
2339
+ div[class^="ecwd-page-"] .event-container.ecwd-no-image .ecwd-list-img-container {
2340
+ width: 0;
2341
+ margin-right: 0px !important;
2342
+ }
2343
+
2344
+ div[class^="ecwd-page-"].ecwd_calendar li.ecwd-no-image .ecwd-list-date, div[class^="ecwd-page-"] .week-event-list .ecwd-no-image .ecwd-list-date {
2345
+ margin-left: 0px !important;
2346
+ }
2347
+ div[class^="ecwd-page-"].ecwd_calendar .event-main-content {
2348
+ float: right;
2349
+ width: 89.8%;
2350
+ min-height: 42px;
2351
+ box-sizing: border-box;
2352
+ -moz-box-sizing: border-box;
2353
+ -webkit-box-sizing: border-box;
2354
+ }
2355
+ div[class^="ecwd-page-"].ecwd_calendar .ecwd_list .ecwd-list-date-cont,div[class^="ecwd-page-"].ecwd_calendar .day4-event-list .ecwd-list-date-cont,div[class^="ecwd-page-"].ecwd_calendar .day-event-list .ecwd-list-date-cont,div[class^="ecwd-page-"].ecwd_calendar .week-event-list .ecwd-list-date-cont {
2356
+ display: block;
2357
+ padding-bottom: 5px;
2358
+ position:relative;
2359
+ }
2360
+
2361
+ .event_dropdown_cont{
2362
+ border-top: 1px solid #D5DCE2;
2363
+ display:none;
2364
+ padding-top: 6px;
2365
+ }
2366
+
2367
+ div[class^="ecwd-page-"].ecwd_calendar .ecwd-list-date.web,
2368
+ div[class^="ecwd-page-"].ecwd_calendar .ecwd-week-date.web{
2369
+ display: none;
2370
+ }
2371
+ div[class^="ecwd-page-"].ecwd_calendar .ecwd-list-date.resp,
2372
+ div[class^="ecwd-page-"].ecwd_calendar .ecwd-week-date.resp{
2373
+ display: block;
2374
+ }
2375
+
2376
+ div[class^="ecwd-page-"].ecwd_calendar .day4-event-list h3, div[class^="ecwd-page-"].ecwd_calendar .ecwd_list h3, div[class^="ecwd-page-"].ecwd_calendar .day-event-list h3, div[class^="ecwd-page-"].ecwd_calendar .week-event-list h3 {
2377
+ margin: 0px 0px 2px 0px !important;
2378
+ font-size: 16px !important;
2379
+ line-height: 20px !important;
2380
+ white-space: nowrap;
2381
+ text-overflow: ellipsis;
2382
+ overflow: hidden;
2383
+ }
2384
+
2385
+ }
ecwd.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Plugin Name: Event Calendar WD
4
+ * Plugin URI: https://web-dorado.com/products/wordpress-event-calendar-wd.html
5
+ * Description: Event Calendar WD is an easy event management and planning tool with advanced features.
6
+ * Version: 1.0.0
7
+ * Author: WebDorado
8
+ * Author URI: http://web-dorado.com
9
+ * License: GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
10
+ */
11
+
12
+ require_once( 'ecwd_class.php' );
13
+
14
+ if( ! defined( 'ECWD_MAIN_FILE' ) ) {
15
+ define( 'ECWD_MAIN_FILE', plugin_basename(__FILE__));
16
+
17
+ }if( ! defined( 'ECWD_DIR' ) ) {
18
+ define( 'ECWD_DIR', dirname(__FILE__));
19
+
20
+ }
21
+
22
+ add_action( 'plugins_loaded', array( 'ECWD', 'get_instance' ) );
23
+
24
+ if ( is_admin() && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) ) {
25
+ require_once( 'ecwd_admin_class.php' );
26
+ register_activation_hook( __FILE__, array( 'ECWD_Admin', 'activate' ) );
27
+ add_action( 'plugins_loaded', array( 'ECWD_Admin', 'get_instance' ) );
28
+ }
ecwd_admin_class.php ADDED
@@ -0,0 +1,308 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * ECWD_Admin
5
+ */
6
+ class ECWD_Admin {
7
+
8
+ protected static $instance = null;
9
+ protected $version = '1.0.0';
10
+ protected $ecwd_page = null;
11
+
12
+ private function __construct() {
13
+ $plugin = ECWD::get_instance();
14
+ $this->prefix = $plugin->get_prefix();
15
+ $this->version = $plugin->get_version();
16
+ add_filter( 'plugin_action_links_' . plugin_basename( plugin_dir_path( __FILE__ ) . $this->prefix . '.php' ), array(
17
+ $this,
18
+ 'add_action_links'
19
+ ) );
20
+
21
+ // Setup admin stants
22
+ add_action( 'init', array( $this, 'define_admin_constants' ) );
23
+ add_action( 'init', array( $this, ECWD_PLUGIN_PREFIX . '_shortcode_button' ) );
24
+
25
+ // Add admin styles and scripts
26
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_styles' ) );
27
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_scripts' ) );
28
+
29
+ // Add the options page and menu item.
30
+ add_action( 'admin_menu', array( $this, 'add_plugin_admin_menu' ), 2 );
31
+ foreach ( array( 'post.php', 'post-new.php' ) as $hook ) {
32
+ add_action( "admin_head-$hook", array( $this, 'admin_head' ) );
33
+ }
34
+ }
35
+
36
+
37
+ /**
38
+ * Check user is on plugin page
39
+ * @return bool
40
+ */
41
+ private function ecwd_page() {
42
+ if ( ! isset( $this->ecwd_page ) ) {
43
+ return false;
44
+ }
45
+ $screen = get_current_screen();
46
+ if ( $screen->id == 'edit-ecwd_event' || $screen->id == ECWD_PLUGIN_PREFIX . '_event' || in_array( $screen->id, $this->ecwd_page ) || $screen->post_type == ECWD_PLUGIN_PREFIX . '_event' || $screen->post_type == ECWD_PLUGIN_PREFIX . '_theme' || $screen->post_type == ECWD_PLUGIN_PREFIX . '_venue' || $screen->id == 'edit-ecwd_calendar' || $screen->id == ECWD_PLUGIN_PREFIX . '_calendar' || $screen->id == ECWD_PLUGIN_PREFIX . '_countdown_theme' ) {
47
+ return true;
48
+ } else {
49
+ return false;
50
+ }
51
+ }
52
+
53
+ public function save_events() {
54
+ wp_die();
55
+ }
56
+
57
+ public static function activate() {
58
+ //setup default theme if there is no one
59
+
60
+ if (!defined('ECWD_PLUGIN_PREFIX')) {
61
+ define('ECWD_PLUGIN_PREFIX', 'ecwd');
62
+ }
63
+
64
+ }
65
+
66
+
67
+ public function add_plugin_admin_menu() {
68
+ $this->ecwd_page[] = add_submenu_page(
69
+ 'edit.php?post_type=ecwd_calendar', __( 'Settings', 'ecwd' ), __( 'Settings', 'ecwd' ), 'manage_options', $this->prefix . '_general_settings', array(
70
+ $this,
71
+ 'display_admin_page'
72
+ )
73
+ );
74
+ $this->ecwd_page[] = add_submenu_page(
75
+ 'edit.php?post_type=ecwd_calendar', __( 'Themes', 'ecwd' ), __( 'Themes', 'ecwd' ), 'manage_options', $this->prefix . '_themes', array(
76
+ $this,
77
+ 'display_themes_page'
78
+ )
79
+ );
80
+ $this->ecwd_page[] = add_submenu_page(
81
+ 'edit.php?post_type=ecwd_calendar', __( 'Licensing', 'ecwd' ), __( 'Licensing', 'ecwd' ), 'manage_options', $this->prefix . '_licensing', array(
82
+ $this,
83
+ 'display_license_page'
84
+ )
85
+ );
86
+ $this->ecwd_page[] = add_submenu_page(
87
+ 'edit.php?post_type=ecwd_calendar', __( 'Featured plugins', 'ecwd' ), __( 'Featured plugins', 'ecwd' ), 'manage_options', $this->prefix . '_featured_plugins', array(
88
+ $this,
89
+ 'display_featured_plugins'
90
+ )
91
+ );
92
+ $this->ecwd_page[] = add_submenu_page(
93
+ 'edit.php?post_type=ecwd_calendar', __( 'Featured themes', 'ecwd' ), __( 'Featured themes', 'ecwd' ), 'manage_options', $this->prefix . '_featured_themes', array(
94
+ $this,
95
+ 'display_featured_themes'
96
+ )
97
+ );
98
+
99
+
100
+ }
101
+
102
+ public function display_featured_themes() {
103
+ include_once( ECWD_DIR . '/views/admin/ecwd-featured-themes.php' );
104
+ }
105
+
106
+ public function display_featured_plugins() {
107
+ include_once( ECWD_DIR . '/views/admin/ecwd-featured-plugins.php' );
108
+ }
109
+ public function display_themes_page() {
110
+ include_once( ECWD_DIR . '/views/admin/ecwd-theme-meta.php' );
111
+ }
112
+ public function display_license_page() {
113
+ include_once( ECWD_DIR . '/views/admin/licensing.php' );
114
+ }
115
+
116
+ public function display_admin_page() {
117
+ include_once( 'views/admin/admin.php' );
118
+ }
119
+
120
+ /**
121
+ * Enqueue styles for the admin area
122
+ */
123
+ public function enqueue_admin_styles() {
124
+ wp_enqueue_style( $this->prefix . '-calendar-buttons-style', plugins_url( 'css/admin/mse-buttons.css', __FILE__ ), '', $this->version, 'all' );
125
+ if ( $this->ecwd_page() ) {
126
+ wp_enqueue_style( $this->prefix . '-main', plugins_url( 'css/calendar.css', __FILE__ ), '', $this->version );
127
+ wp_enqueue_style( 'ecwd-admin-css', plugins_url( 'css/admin/admin.css', __FILE__ ), array(), $this->version, 'all' );
128
+ wp_enqueue_style( 'ecwd-admin-datetimepicker-css', plugins_url( 'css/admin/jquery.datetimepicker.css', __FILE__ ), array(), $this->version, 'all' );
129
+ wp_enqueue_style( 'ecwd-admin-colorpicker-css', plugins_url( 'css/admin/evol.colorpicker.css', __FILE__ ), array(), $this->version, 'all' );
130
+ wp_enqueue_style( $this->prefix . '-calendar-style', plugins_url( 'css/style.css', __FILE__ ), '', $this->version, 'all' );
131
+ wp_enqueue_style($this->prefix . '_font-awesome', plugins_url('/css/font-awesome/font-awesome.css', __FILE__), '', $this->version, 'all');
132
+ wp_enqueue_style($this->prefix . '-featured_plugins', plugins_url('/css/admin/featured_plugins.css', __FILE__), '', $this->version, 'all');
133
+ wp_enqueue_style($this->prefix . '-featured_themes', plugins_url('/css/admin/featured_themes.css', __FILE__), '', $this->version, 'all');
134
+ wp_enqueue_style($this->prefix . '-licensing', plugins_url('/css/admin/licensing.css', __FILE__), '', $this->version, 'all');
135
+ }
136
+ }
137
+
138
+ /**
139
+ * Register scripts for the admin area
140
+ */
141
+ public function enqueue_admin_scripts() {
142
+ if ( $this->ecwd_page() ) {
143
+ wp_enqueue_script( $this->prefix . '-admin-datetimepicker', plugins_url( 'js/admin/jquery.datetimepicker.js', __FILE__ ), array(
144
+ 'jquery',
145
+ 'jquery-ui-widget'
146
+ ), $this->version, true );
147
+ wp_enqueue_script( $this->prefix . '-admin-colorpicker', plugins_url( 'js/admin/evol.colorpicker.js', __FILE__ ), array( 'jquery' ), $this->version, true );
148
+ //wp_enqueue_script('sp-admin-google', 'https://maps.googleapis.com/maps/api/js?key=AIzaSyCIUXhK7om6EZ9Ca5xFcEbXMKEQZz7U2kM', array('jquery'), $this->version, true);
149
+ wp_enqueue_script( $this->prefix . '-public', plugins_url( 'js/scripts.js', __FILE__ ), array(
150
+ 'jquery',
151
+ 'masonry'
152
+ ), $this->version, true );
153
+ wp_register_script($this->prefix . '-admin-scripts', plugins_url( 'js/admin/admin.js', __FILE__ ), array(
154
+ 'jquery',
155
+ 'jquery-ui-datepicker',
156
+ 'jquery-ui-tabs',
157
+ 'jquery-ui-selectable',
158
+ $this->prefix . '-public'
159
+ ), $this->version, true );
160
+ wp_enqueue_script( $this->prefix . '-admin-datetimepicker-scripts', plugins_url( 'js/admin/datepicker.js', __FILE__ ), array( 'jquery' ), $this->version, true );
161
+
162
+ $params['ajaxurl'] = admin_url( 'admin-ajax.php' );
163
+ $params['version'] = get_bloginfo( 'version' );
164
+ if ( $params['version'] >= 3.5 ) {
165
+ wp_enqueue_media();
166
+ } else {
167
+ wp_enqueue_style( 'thickbox' );
168
+ wp_enqueue_script( 'thickbox' );
169
+ }
170
+
171
+ wp_localize_script( $this->prefix . '-admin-scripts', 'params', $params );
172
+ wp_enqueue_script( $this->prefix . '-admin-scripts' );
173
+
174
+ }
175
+ }
176
+
177
+
178
+ /**
179
+ * Localize Script
180
+ */
181
+ public function admin_head() {
182
+
183
+ $args = array(
184
+ 'post_type' => ECWD_PLUGIN_PREFIX . '_calendar',
185
+ 'post_status' => 'publish',
186
+ 'posts_per_page' => - 1,
187
+ 'ignore_sticky_posts' => 1
188
+ );
189
+ $calendar_posts = get_posts( $args );
190
+ $args = array(
191
+ 'post_type' => $this->prefix . '_event',
192
+ 'post_status' => 'publish',
193
+ 'posts_per_page' => - 1,
194
+ 'ignore_sticky_posts' => 1
195
+ );
196
+ $event_posts = get_posts( $args );
197
+ $plugin_url = plugins_url( '/', __FILE__ );
198
+ ?>
199
+ <!-- TinyMCE Shortcode Plugin -->
200
+ <script type='text/javascript'>
201
+ var ecwd_plugin = {
202
+ 'url': '<?php echo $plugin_url; ?>',
203
+ 'ecwd_calendars': [
204
+ <?php foreach($calendar_posts as $calendar){?>
205
+ {
206
+ text: '<?php echo str_replace("'", "\'", $calendar->post_title);?>',
207
+ value: '<?php echo $calendar->ID;?>'
208
+ },
209
+ <?php }?>
210
+ ],
211
+ 'ecwd_events': [
212
+ {text: 'None', value: 'none'},
213
+ <?php foreach($event_posts as $event){?>
214
+ {
215
+ text: '<?php echo str_replace("'", "\'", $event->post_title);?>',
216
+ value: '<?php echo $event->ID;?>'
217
+ },
218
+ <?php }?>
219
+ ],
220
+
221
+ 'ecwd_views': [
222
+ {text: 'None', value: 'none'},
223
+ {text: 'Month', value: 'full'},
224
+ {text: 'List', value: 'list'},
225
+ {text: 'Week', value: 'week'},
226
+ {text: 'Day', value: 'day'}
227
+ ]
228
+ };
229
+ </script>
230
+ <!-- TinyMCE Shortcode Plugin -->
231
+ <?php
232
+ }
233
+
234
+
235
+ public function ecwd_shortcode_button() {
236
+ // Don't bother doing this stuff if the current user lacks permissions
237
+ if ( ! current_user_can( 'edit_posts' ) && ! current_user_can( 'edit_pages' ) ) {
238
+ return;
239
+ }
240
+
241
+ // Add only in Rich Editor mode
242
+ if ( get_user_option( 'rich_editing' ) == 'true' ) {
243
+ // filter the tinyMCE buttons and add our own
244
+ add_filter( "mce_external_plugins", array( $this, 'add_tinymce_plugin' ) );
245
+ add_filter( 'mce_buttons', array( $this, 'register_buttons' ) );
246
+ }
247
+ }
248
+
249
+ // registers the buttons for use
250
+ function register_buttons( $buttons ) {
251
+ // inserts a separator between existing buttons and our new one
252
+ // "friendly_button" is the ID of our button
253
+ if(!$this->ecwd_page()) {
254
+ array_push( $buttons, "|", ECWD_PLUGIN_PREFIX );
255
+ }
256
+
257
+ return $buttons;
258
+ }
259
+
260
+ // add the button to the tinyMCE bar
261
+ function add_tinymce_plugin( $plugin_array ) {
262
+ if(!$this->ecwd_page()) {
263
+ $plugin_array[ ECWD_PLUGIN_PREFIX ] = plugins_url( 'js/admin/editor-buttons.js', __FILE__ );
264
+ }
265
+ return $plugin_array;
266
+ }
267
+
268
+ public function define_admin_constants() {
269
+ if ( ! defined( 'ECWD_DIR' ) ) {
270
+ define( 'ECWD_DIR', dirname( __FILE__ ) );
271
+ }
272
+ }
273
+
274
+ /**
275
+ * Return an instance of this class.
276
+ */
277
+ public static function get_instance() {
278
+ if ( null == self::$instance ) {
279
+ self::$instance = new self;
280
+ }
281
+
282
+ return self::$instance;
283
+ }
284
+
285
+ /**
286
+ * Return the page
287
+ */
288
+ public function get_page() {
289
+ return $this->ecwd_page();
290
+ }
291
+
292
+ /**
293
+ * Return plugin name
294
+ */
295
+ public function get_plugin_title() {
296
+ return __( 'Event Calendar WD', 'ecwd' );
297
+ }
298
+
299
+ public function add_action_links( $links ) {
300
+ return array_merge(
301
+ array(
302
+ 'settings' => '<a href="' . admin_url( 'edit.php?post_type=ecwd_calendar&page=ecwd_general_settings' ) . '">' . __( 'Settings', 'ecwd' ) . '</a>',
303
+ 'events' => '<a href="' . admin_url( 'edit.php?post_type=ecwd_event' ) . '">' . __( 'Events', 'ecwd' ) . '</a>'
304
+ ), $links
305
+ );
306
+ }
307
+
308
+ }
ecwd_class.php ADDED
@@ -0,0 +1,151 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * ECWD
5
+ *
6
+ */
7
+
8
+ class ECWD {
9
+
10
+ protected $version = '1.0';
11
+ protected $plugin_name = 'event-calendar-wd';
12
+ protected $prefix = 'ecwd';
13
+ protected $old_version = '1.4.11';
14
+ protected static $instance = null;
15
+
16
+ private function __construct() {
17
+ $this->setup_constants();
18
+ include_once('includes/ecwd-shortcodes.php');
19
+ $this->includes();
20
+ $cpt_instance = ECWD_Cpt::get_instance();
21
+ $this->user_info();
22
+ add_action('init', array($this, 'add_localization'));
23
+ add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts'));
24
+ add_action('wp_enqueue_scripts', array($this, 'enqueue_styles'));
25
+ }
26
+
27
+
28
+ /**
29
+ * Setup constants
30
+ */
31
+ public function setup_constants() {
32
+ if (!defined('ECWD_PLUGIN_DIR')) {
33
+ define('ECWD_PLUGIN_DIR', dirname(__FILE__));
34
+ }
35
+
36
+ if (!defined('ECWD_PLUGIN_PREFIX')) {
37
+ define('ECWD_PLUGIN_PREFIX', $this->prefix);
38
+ }
39
+ if (!defined('ECWD_PLUGIN_NAME')) {
40
+ define('ECWD_PLUGIN_NAME', $this->plugin_name);
41
+ }
42
+ }
43
+
44
+ public function add_localization(){
45
+ $path = dirname(plugin_basename( __FILE__ )) . '/languages/';
46
+ $loaded = load_plugin_textdomain( 'ecwd', false, $path);
47
+ if (isset($_GET['page']) && $_GET['page'] == basename(__FILE__) && !$loaded) {
48
+ echo '<div class="error">Event calendar WD ' . __('Could not load the localization file: ' . $path, 'ecwd') . '</div>';
49
+ return;
50
+ }
51
+ }
52
+
53
+ public function user_info(){
54
+ //detect timezone
55
+
56
+ }
57
+ /**
58
+ * Include all necessary files
59
+ */
60
+ public static function includes() {
61
+ global $ecwd_options;
62
+
63
+ include_once('includes/ecwd-cpt-class.php');
64
+ include_once('includes/register-settings.php');
65
+ $ecwd_options = ecwd_get_settings();
66
+ $default_timezone = self::isValidTimezone(@ini_get('date.timezone'))?ini_get('date.timezone'):'Europe/Berlin';
67
+ $timezone = (isset($ecwd_options['time_zone']) && self::isValidTimezone($ecwd_options['time_zone']))?$ecwd_options['time_zone']:$default_timezone;
68
+ date_default_timezone_set($timezone);
69
+ include_once('includes/ecwd-functions.php');
70
+ include_once('includes/ecwd-event-class.php');
71
+ include_once('includes/ecwd-display-class.php');
72
+ include_once('views/widgets.php');
73
+ }
74
+
75
+ /**
76
+ * Load public facing scripts
77
+ */
78
+ public function enqueue_scripts() {
79
+ global $wp_scripts;
80
+ $map_included = false;
81
+ if(isset($wp_scripts->registered) && $wp_scripts->registered) {
82
+ foreach ( $wp_scripts->registered as $wp_script ) {
83
+ if ( $wp_script->src && (strpos( $wp_script->src, 'maps.googleapis.com' ) || strpos( $wp_script->src, 'maps.google.com' )) !== false ) {
84
+ $map_included = true;
85
+ break;
86
+ }
87
+ }
88
+ }
89
+ if(!$map_included) {
90
+ wp_enqueue_script( $this->prefix . '-maps-public', 'https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=places', array( 'jquery' ), $this->version, true );
91
+ }
92
+ wp_enqueue_script($this->prefix . '-gmap-public', plugins_url('js/gmap/gmap3.js', __FILE__), array('jquery'), $this->version, true);
93
+ wp_enqueue_script($this->prefix . '-public', plugins_url('js/scripts.js', __FILE__), array('jquery', 'jquery-ui-draggable', 'masonry'), $this->version, true);
94
+
95
+ }
96
+
97
+ /*
98
+ * Load public facing styles
99
+ */
100
+
101
+ public function enqueue_styles() {
102
+ wp_enqueue_style($this->prefix . '_font-awesome', plugins_url('/css/font-awesome/font-awesome.css', __FILE__), '', $this->version, 'all');
103
+ wp_enqueue_style($this->prefix . '-public', plugins_url('css/style.css', __FILE__), '', $this->version, 'all');
104
+ }
105
+
106
+
107
+ public static function isValidTimezone($timezone) {
108
+ return in_array($timezone, timezone_identifiers_list());
109
+ }
110
+
111
+ /**
112
+ * Return the plugin name.
113
+ */
114
+ public function get_name() {
115
+ return $this->plugin_name;
116
+ }
117
+
118
+ /**
119
+ * Return the plugin prefix.
120
+ */
121
+ public function get_prefix() {
122
+ return $this->prefix;
123
+ }
124
+
125
+ /**
126
+ * Return the plugin version.
127
+ */
128
+ public function get_version() {
129
+ return $this->version;
130
+ }
131
+
132
+ /**
133
+ * Return the plugin old version.
134
+ */
135
+ public function get_old_version() {
136
+ return $this->old_version;
137
+ }
138
+
139
+
140
+
141
+ /**
142
+ * Return an instance of this class.
143
+ */
144
+ public static function get_instance() {
145
+ if (null == self::$instance) {
146
+ self::$instance = new self;
147
+ }
148
+ return self::$instance;
149
+ }
150
+
151
+ }
includes/calendar-class.php ADDED
@@ -0,0 +1,1510 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Calendar {
4
+
5
+ public $weekstartday = 0; // week start day (0-6 e.g. 0 = Sunday, 1 = Monday, etc.)
6
+ public $monthselector = true; // month/year select box (true=show selector,false=show month name)
7
+ public $yearoffset = 5; // monthselector range of years (int)
8
+ public $weeknumbers = false; // adds a column for week numbers (left,right,false)
9
+ public $weeknumrotate = true; // rotate weeknumbers 90 degrees *currently only firefox is supported* (true,false)
10
+ public $weeknames = 2; // controls how weekdays are displayed. (1=full,2=abbrev,3=single char)
11
+ public $monthnames = 1; // controls how months are displayed. (1=full,2=abbrev)
12
+ public $basecolor = '7D9AC0'; // base color for color scheme (hex)
13
+ public $color = 'blue'; // color for color scheme (hex)
14
+ public $minilinkbase = ''; // base url for links on mini calendar (blank=disabled)
15
+ public $eventlistbg = '10738B'; // event list view bg color (hex)
16
+ public $eventemptytext = 'No additional details for this event.'; // default text in event view when details is empty (string)
17
+ public $dateformat = 'Y.m.d'; // default date format (passed to php date() public function)
18
+ public $timeformat = 'H:i'; // default time format (passed to php date() public function)
19
+ public $font = '"Lucida Grande","Lucida Sans Unicode",sans-serif'; // font used to display the calendar (any css supported value)
20
+ public $linktarget = 'parent'; // link target frame or window (e.g. 'parent.frameName'. Use '_blank' for new window/tab)
21
+ public $listlimit = false; // limit the number of events in list and mini-list (false or int e.g. 10)
22
+ public $listtitle = ''; //'Event List'; // Title shown when displaying full event list
23
+ public $widget = 0;
24
+ public $search_params = array();
25
+ public $categories = array();
26
+ public $tags = array();
27
+ public $venues = array();
28
+ public $organizers = array();
29
+ public $displays = array( 'full', 'list', 'week', 'day', 'map', '4day', 'posterboard' );
30
+ public $filters = array( 'categories', 'tags', 'venues', 'organizers' );
31
+ public $event_search = 'yes';
32
+ public $displaysName;
33
+ //--------------------------------------------------------------------------------------------
34
+ // Weekday names/abbreviations (array must start with Sunday=0)
35
+ //--------------------------------------------------------------------------------------------
36
+
37
+ public $weekdate;
38
+ public $weekdays = array(
39
+ "Sunday",
40
+ "Monday",
41
+ "Tuesday",
42
+ "Wednesday",
43
+ "Thursday",
44
+ "Friday",
45
+ "Saturday"
46
+ );
47
+ public $abbrevweekdays = array(
48
+ "Sun",
49
+ "Mon",
50
+ "Tue",
51
+ "Wed",
52
+ "Thu",
53
+ "Fri",
54
+ "Sat"
55
+ );
56
+ public $weekdayschar = array(
57
+ "Su",
58
+ "Mo",
59
+ "Tu",
60
+ "We",
61
+ "Th",
62
+ "Fr",
63
+ "Sa"
64
+ );
65
+ //--------------------------------------------------------------------------------------------
66
+ // Other publics used. (No need to edit below here)
67
+ //--------------------------------------------------------------------------------------------
68
+
69
+ public $jd, $year, $month, $day, $displaytype, $numdaysinmonth, $monthstartday, $monthname, $previousmonth, $nextmonth;
70
+ public $events = array();
71
+
72
+ // types: mini,full,list,mini-list, map, 4day, week, posterboard (default=full)
73
+ public function __construct( $type = 'full', $date = '', $staticdisplaytype = false, $widget = 0, $limit = false, $page = 1, $displays = null, $filters = null, $event_search = 'yes' ) {
74
+ // static displaytype
75
+ global $ecwd_options;
76
+ if ( isset( $ecwd_options['date_format'] ) && $ecwd_options['date_format'] != '' ) {
77
+ if ( isset( $ecwd_options['date_format'] ) ) {
78
+ $this->dateformat = $ecwd_options['date_format'];
79
+ }
80
+ }
81
+ if ( isset( $ecwd_options['time_format'] ) && $ecwd_options['time_format'] != '' ) {
82
+ $this->timeformat = $ecwd_options['time_format'];
83
+ }
84
+ if ( isset( $ecwd_options['week_starts'] ) && $ecwd_options['week_starts'] != '' ) {
85
+ $this->weekstartday = $ecwd_options['week_starts'];
86
+ }
87
+ $this->widget = $widget;
88
+ $this->page = $page;
89
+
90
+ if ( $displays && is_array( $displays ) && $displays[0] != '' ) {
91
+ $displays = array_unique( $displays );
92
+ if ( ( $key = array_search( 'none', $displays ) ) !== false ) {
93
+ unset( $displays[ $key ] );
94
+ }
95
+ $this->displays = $displays;
96
+ }
97
+ if ( $filters && is_array( $filters ) && $filters[0] != '' ) {
98
+ $filters = array_unique( $filters );
99
+ if ( ( $key = array_search( 'none', $filters ) ) !== false ) {
100
+ unset( $filters[ $key ] );
101
+ }
102
+ $this->filters = $filters;
103
+ }
104
+ if ( $staticdisplaytype === true ) {
105
+ $this->displaytype = $type;
106
+ } else {
107
+ // calendar display type
108
+ if ( $type != '' && ! isset( $_REQUEST['t'] ) ) {
109
+ $this->displaytype = $type; // if type is not set in querystring set type to passed value
110
+ } else {
111
+ $this->displaytype = $_REQUEST['t']; // else set to type passed in querystring
112
+ }
113
+ }
114
+
115
+ // calendar date
116
+ if ( $date == '' && ! isset( $_REQUEST['date'] ) ) {
117
+ $date = date( 'Y-n-j' );
118
+ } // set to todays date if no value is set
119
+ if ( isset( $_REQUEST['date'] ) && $_REQUEST['date'] != '' ) {
120
+ $date = $_REQUEST['date'];
121
+ } // check if date is in the querystring
122
+ $date = date( 'Y-n-j', strtotime( $date ) ); // format the date for parsing
123
+ $date_part = explode( '-', $date ); // separate year/month/day
124
+ $year = $date_part[0];
125
+ $month = $date_part[1];
126
+ $day = $date_part[2];
127
+ if ( isset( $_REQUEST['y'] ) && $_REQUEST['y'] != '' ) {
128
+ $year = $_REQUEST['y'];
129
+ } // if year is set in querystring it takes precedence
130
+ if ( isset( $_REQUEST['m'] ) && $_REQUEST['m'] != '' ) {
131
+ $month = $_REQUEST['m'];
132
+ } // if month is set in querystring it takes precedence
133
+ if ( isset( $_REQUEST['d'] ) && $_REQUEST['d'] != '' ) {
134
+ $day = $_REQUEST['d'];
135
+ } // if day is set in querystring it takes precedence
136
+ // make sure we have year/month/day as int
137
+ if ( $year == '' ) {
138
+ $year = date( 'Y' );
139
+ }
140
+ if ( $month == '' ) {
141
+ $month = date( 'n' ); // set to january if year is known
142
+ }
143
+ if ( $day == '' ) {
144
+ $day = date( 'j' ); // set to the 1st is year and month is known
145
+ }
146
+
147
+ $this->date = $date;
148
+ $this->month = (int) $month;
149
+ $this->year = (int) $year;
150
+ $this->day = (int) $day;
151
+
152
+ // find out the number of days in the month
153
+ $this->numdaysinmonth = cal_days_in_month( CAL_GREGORIAN, $this->month, $this->year );
154
+
155
+ // create a calendar object
156
+ $this->jd = cal_to_jd( CAL_GREGORIAN, $this->month, date( 1 ), $this->year );
157
+
158
+ // get the month start day as an int (0 = Sunday, 1 = Monday, etc)
159
+ $this->monthstartday = jddayofweek( $this->jd, 0 );
160
+
161
+ // get the month as a name
162
+ $this->monthname = __( jdmonthname( $this->jd, 1 ), 'ecwd' );
163
+
164
+ //get weekdate
165
+ $this->weekdate = $this->getWeekFirstDayDate( $this->date );
166
+
167
+ //get month date
168
+ $this->monthdate = $this->getMonthDate( $this->date );
169
+
170
+ //get day date
171
+ $this->daydate = $this->getDayDate( $this->date );
172
+
173
+ $this->displaysName = array(
174
+ 'full' => array( 'name' => __( 'Month', 'ecwd' ), 'date' => $this->monthdate ),
175
+ 'mini' => array( 'name' => __( 'Month', 'ecwd' ), 'date' => $this->monthdate ),
176
+ 'list' => array( 'name' => __( 'List', 'ecwd' ), 'date' => $this->monthdate ),
177
+ 'week' => array(
178
+ 'name' => __( 'Week', 'ecwd' ),
179
+ 'date' => $this->weekdate
180
+ ),
181
+ 'day' => array(
182
+ 'name' => __( 'Day', 'ecwd' ),
183
+ 'date' => $this->daydate
184
+ )
185
+ );
186
+ $this->event_search = $event_search;
187
+ $this->listlimit = $limit;
188
+ }
189
+
190
+ // header area for all displaytypes
191
+
192
+ public function month_selector() {
193
+ $html = '';
194
+
195
+
196
+ return $html;
197
+ }
198
+
199
+
200
+ public function add_terms( $type = 'categories', $terms ) {
201
+ if ( is_array( $terms ) ) {
202
+ $this->$type = $terms;
203
+ }
204
+ }
205
+
206
+ public function addEvent( $arr ) {
207
+
208
+
209
+ $this->events[] = $arr;
210
+ }
211
+
212
+ // next month link
213
+
214
+ public function dateDiff( $beginDate, $endDate ) {
215
+ if ( $endDate == '' ) {
216
+ return 0;
217
+ }
218
+ $fromDate = date( 'Y-n-j', strtotime( $beginDate ) );
219
+ $toDate = date( 'Y-n-j', strtotime( $endDate ) );
220
+ // echo $fromDate.'----'.$toDate.'<br />';
221
+ $date_parts1 = explode( '-', $fromDate );
222
+ $date_parts2 = explode( '-', $toDate );
223
+
224
+
225
+ $start_date = gregoriantojd( $date_parts1[1], $date_parts1[2], $date_parts1[0] );
226
+ $end_date = gregoriantojd( $date_parts2[1], $date_parts2[2], $date_parts2[0] );
227
+
228
+ return $end_date - $start_date;
229
+ }
230
+
231
+ // previous month link
232
+
233
+ public function showcal() {
234
+ global $cal_ID;
235
+ $html = '';
236
+ $html .= $this->calendar_head(); // set table head
237
+ $this->seted_days = array();
238
+ if ( ! in_array( $this->displaytype, array(
239
+ "list",
240
+ "mini-list",
241
+ "week",
242
+ 'day',
243
+ '4day',
244
+ 'map',
245
+ 'posterboard'
246
+ ) )
247
+ ) { // mini and full cal
248
+ $html .= '
249
+ <tr>';
250
+
251
+ // render week number on left
252
+ if ( $this->weeknumbers == 'left' && $this->monthstartday != $this->weekstartday ) {
253
+ $html .= '<td class="week-number"><span>' . date( 'W', strtotime( $this->year . '-' . $this->month ) ) . '</span></td>';
254
+ }
255
+
256
+ // render previous month cells
257
+ $emptycells = 0;
258
+
259
+ $numinrow = 7;
260
+
261
+ // adjust for weekstartdays
262
+ $weekstartadjust = $this->monthstartday - $this->weekstartday;
263
+ if ( $weekstartadjust < 0 ) {
264
+ $weekstartadjust = $weekstartadjust + $numinrow;
265
+ }
266
+
267
+ for ( $counter = 0; $counter < $weekstartadjust; $counter ++ ) {
268
+ if ( $counter == 0 ) {
269
+ $thisclass = 'day-without-date week-start';
270
+ } // only on first
271
+ else {
272
+ $thisclass = 'day-without-date';
273
+ }
274
+ if ( $this->displaytype == 'full' ) {
275
+ $html .= $this->calendar_cell( __($this->previousmonth, 'ecwd'), $thisclass );
276
+ } else {
277
+ $html .= $this->calendar_cell( '&nbsp;', $thisclass );
278
+ }
279
+ $emptycells ++;
280
+ }
281
+
282
+ // render days
283
+ $rowcounter = $emptycells;
284
+ $weeknumadjust = $numinrow - ( $this->monthstartday - $this->weekstartday );
285
+
286
+ for ( $counter = 1; $counter <= $this->numdaysinmonth; $counter ++ ) {
287
+
288
+ $date = $this->year . '-' . $this->month . '-' . $counter;
289
+ // render week number on left
290
+ if ( $this->weeknumbers == 'left' && $this->weekstartday == $this->getDay( $date, 0 ) ) {
291
+ $adjustweek = $this->calcDate( $date, '+' . $weeknumadjust, 'day' );
292
+ $adjustweek = $adjustweek['year'] . '-' . $adjustweek['month'] . '-' . $adjustweek['day'];
293
+ $html .= '<td class="week-number"><span>' . date( 'W', strtotime( $adjustweek ) ) . '</span></td>';
294
+ }
295
+ $rowcounter ++;
296
+ $html .= $this->calendar_cell( $counter, 'day-with-date', $date );
297
+ if ( $rowcounter % $numinrow == 0 ) {
298
+ // render week number on right
299
+ if ( $this->weeknumbers == 'right' ) {
300
+ $html .= '<td class="week-number"><span>' . date( 'W', strtotime( $date ) ) . '</span></td>';
301
+ }
302
+ $html .= "</tr>";
303
+ if ( $counter < $this->numdaysinmonth ) {
304
+ $html .= "<tr>";
305
+ }
306
+ $rowcounter = 0;
307
+ }
308
+ }
309
+
310
+ // render next month cells
311
+ $numcellsleft = $numinrow - $rowcounter;
312
+ if ( $numcellsleft != $numinrow ) {
313
+ for ( $counter = 0; $counter < $numcellsleft; $counter ++ ) {
314
+ if ( $this->displaytype == 'full' ) {
315
+ $html .= $this->calendar_cell( $this->nextmonth, 'day-without-date' );
316
+ } else {
317
+ $html .= $this->calendar_cell( '&nbsp;', 'day-without-date' );
318
+ }
319
+ $emptycells ++;
320
+ }
321
+ }
322
+
323
+ // render week number on right
324
+ if ( $this->weeknumbers == 'right' && $numcellsleft != 7 ) {
325
+ $html .= '<td class="week-number" style="border-bottom:1px solid #' . $this->bordercolor . ';"><span>' . date( 'W', strtotime( $date ) ) . '</span></td>';
326
+ }
327
+
328
+ $html .= '</tr>';
329
+
330
+ } elseif ( $this->displaytype == 'week' ) {
331
+ $html .= '<ul class="week-event-list">';
332
+ $currentWeek = $this->rangeWeek( $this->year . '-' . $this->month . '-' . $this->day );
333
+ $date = $currentWeek['start'];
334
+
335
+ while ( strtotime( $date ) <= strtotime( $currentWeek['end'] ) ) {
336
+ $html .= '<li>' . $this->calendar_cell( date( 'd', strtotime( $date ) ), 'day-with-date', date( 'Y-n-j', strtotime( $date ) ) ) . '</li>';
337
+ $date = date( "Y-m-d", strtotime( "+1 day", strtotime( $date ) ) );
338
+ }
339
+ $html .= '</ul>';
340
+
341
+ } elseif ( $this->displaytype == 'day' ) {
342
+ $html .= '<ul class="day-event-list">';
343
+ $html .= '<li>' . $this->calendar_cell( date( 'd', strtotime( $this->year . '-' . $this->month . '-' . $this->day ) ), 'day-with-date', date( 'Y-n-j', strtotime( $this->year . '-' . $this->month . '-' . $this->day ) ) ) . '</li>';
344
+ $html .= '</ul>';
345
+ } elseif ( $this->displaytype == '4day' ) {
346
+ $html .= '<ul class="day4-event-list">';
347
+ $days = $this->range4Days( $this->year . '-' . $this->month . '-' . $this->day );
348
+ $date = $days['start'];
349
+ while ( strtotime( $date ) <= strtotime( $days['end'] ) ) {
350
+ $html .= '<li>' . $this->calendar_cell( date( 'd', strtotime( $date ) ), 'day-with-date', date( 'Y-n-j', strtotime( $date ) ) ) . '</li>';
351
+ //$this->
352
+ $date = date( "Y-m-d", strtotime( "+1 day", strtotime( $date ) ) );
353
+ }
354
+ $html .= '</ul>';
355
+
356
+ } else { // event list and map
357
+ if ( count( $this->events ) > 0 ) {
358
+ //$this->events = $this->arraySort($this->events, 'from');
359
+ }
360
+ if ( $this->displaytype == 'map' ) {
361
+ $map_events = array();
362
+
363
+ if ( count( $this->events ) > 0 ) {
364
+ foreach ( $this->events as $i => $event ) {
365
+ if ( strtotime( $event['from'] ) >= strtotime( $this->year . '-' . $this->month . '-1' ) &&
366
+ strtotime( $event['from'] ) <= strtotime( date( 'Y-m-t', strtotime( $this->date ) ) )
367
+ ) {
368
+ if ( $event['latlong'] != '' ) {
369
+ if ( $event['from'] != '' ) {
370
+ $map_events[ $i ]['from'] = date( $this->dateformat, strtotime( $event['from'] ) );
371
+ }
372
+ if ( $event['to'] != '' && $event['from'] != $event['to'] ) {
373
+ $map_events[ $i ]['to'] = date( $this->dateformat, strtotime( $event['to'] ) );
374
+ }
375
+ if ( isset( $event['all_day_event'] ) && $event['all_day_event'] == 1 ) {
376
+ $map_events[ $i ]['starttime'] = __( 'All day', 'ecwd' );
377
+ } else {
378
+ if ( $event['starttime'] != '' ) {
379
+ $map_events[ $i ]['starttime'] = date( $this->timeformat, strtotime( $event['starttime'] ) );
380
+ }
381
+ if ( $event['endtime'] != '' ) {
382
+ $map_events[ $i ]['endtime'] = date( $this->timeformat, strtotime( $event['endtime'] ) );
383
+ }
384
+ }
385
+
386
+ if ( $event['location'] != '' ) {
387
+ $map_events[ $i ]['location'] = $event['location'];
388
+ }
389
+ if ( $event['link'] != '' ) {
390
+ $map_events[ $i ]['link'] = $event['link'];
391
+ }
392
+ $map_events[ $i ]['latlong'] = explode( ',', $event['latlong'] );
393
+
394
+ $map_events[ $i ]['infow'] = '<div class="ecwd_map_event">';
395
+ if ( $event['permalink'] ) {
396
+ $map_events[ $i ]['infow'] .= '<a href="' . $event['permalink'] . '"';
397
+ if ( isset( $event['color'] ) && $event['color'] !== '' ) {
398
+ $map_events[ $i ]['infow'] .= ' style= "color:' . $event['color'] . '"';
399
+ }
400
+ $map_events[ $i ]['infow'] .= '>' . $event['title'] . '</a>';
401
+ } else {
402
+ $map_events[ $i ]['infow'] .= '<span class="title"';
403
+ if ( isset( $event['color'] ) && $event['color'] !== '' ) {
404
+ $map_events[ $i ]['infow'] .= ' style= "color:' . $event['color'] . '"';
405
+ }
406
+ $map_events[ $i ]['infow'] . '>' . $event['title'] . '<span>';
407
+ }
408
+ $map_events[ $i ]['infow'] .= '<span class="date">';
409
+ if ( isset( $event['all_day_event'] ) && $event['all_day_event'] == 1 ) {
410
+ $map_events[ $i ]['infow'] .= date( $this->dateformat, strtotime( $event['from'] ) ) . ' - ' . ( ( strtotime( $event['to'] ) != '' && strtotime( $event['from'] ) != strtotime( $event['to'] ) ) ? date( $this->dateformat, strtotime( $event['to'] ) ) : "" ) . ' ' . __( 'All day', 'ecwd' );
411
+ } else {
412
+ if ( $event['to'] != '' && $event['from'] != $event['to'] ) {
413
+ $map_events[ $i ]['infow'] .= date( $this->dateformat, strtotime( $event['from'] ) ) . ' ' . date( $this->timeformat, strtotime( $event['starttime'] ) );
414
+ $map_events[ $i ]['infow'] .= ' - ';
415
+ $map_events[ $i ]['infow'] .= date( $this->dateformat, strtotime( $event['to'] ) ) . ' ' . date( $this->timeformat, strtotime( $event['endtime'] ) );
416
+ } else {
417
+ $map_events[ $i ]['infow'] .= date( $this->dateformat, strtotime( $event['from'] ) ) . ' ' . date( $this->timeformat, strtotime( $event['starttime'] ) );
418
+ }
419
+ }
420
+ $map_events[ $i ]['infow'] .= '</span>';
421
+
422
+ $map_events[ $i ]['infow'] .= '<span class="location">' . $event['location'] . '</span>';
423
+ $map_events[ $i ]['infow'] .= '</div>';
424
+ }
425
+ }
426
+ }
427
+
428
+ $markers = json_encode( $map_events );
429
+
430
+ $html .= '<div class="ecwd_map_div" style="width: 100%; height: 100%; min-height: 300px;" ></div>';
431
+ $html .= '<textarea class="ecwd_markers" class="hidden" style="display: none;">' . $markers . '</textarea>';
432
+ } else {
433
+ $html .= '<div class="event-main-content no-events">' . __( 'No events', 'ecwd' ) . '</div>';
434
+ }
435
+ } elseif ( $this->displaytype == 'posterboard' ) {
436
+
437
+ $html .= '<div class="ecwd-poster-board">';
438
+ if ( $this->events ) {
439
+ foreach ( $this->events as $i => $event ) {
440
+ if ( ! isset( $event['color'] ) ) {
441
+ $event['color'] = '#ffffff';
442
+ }
443
+ if ( ! isset( $event['terms']['ecwd_taxonomy_image'] ) ) {
444
+ $event['terms']['ecwd_taxonomy_image'] = '';
445
+ }
446
+
447
+ if ( strtotime( $event['from'] ) >= strtotime( $this->year . '-' . $this->month . '-1' ) &&
448
+ strtotime( $event['from'] ) <= strtotime( date( 'Y-m-t', strtotime( $this->date ) ) )
449
+ ) {
450
+ $datenumber1 = substr( date( 'd', strtotime( $event['from'] ) ), 0, 1 );
451
+ $datenumber2 = substr( date( 'd', strtotime( $event['from'] ) ), 1, 1 );
452
+ $dates = '<span class="weekday-block" itemprop="startDate" content="' . date( 'Y-m-d', strtotime( $event['from'] ) ) . 'T' . date( 'H:i', strtotime( $event['starttime'] ) ) . '"><span class="weekday">' . date( 'D', strtotime( $event['from'] ) ) . '</span> ';
453
+ $dates .= '<span class="month">' . date( 'M', strtotime( $event['from'] ) ) . '</span></span> ';
454
+ $dates .= '<span class="datenumber1">' . $datenumber1 . '</span> ';
455
+ $dates .= '<span class="datenumber2">' . $datenumber2 . '</span> ';
456
+
457
+
458
+ $html .= '<div class="ecwd-poster-item" itemscope itemtype="http://schema.org/Event">';
459
+ $image = $this->getAndReplaceFirstImage( $event['details'] );
460
+ if ( get_the_post_thumbnail( $event['id'] ) ) {
461
+ $html .= '<div class="ecwd-poster-img">' . get_the_post_thumbnail( $event['id'] ) . '</div>';
462
+ } elseif ( $image['image'] != null ) {
463
+ $html .= '<div class="ecwd-poster-img"><img src="' . $image['image'] . '" /></div>';
464
+ $event['details'] = $image['content'];
465
+ }
466
+
467
+ $html .= '<div class="ecwd-event-content"><div class="ecwd-event-details">';
468
+ $html .= '<div class="ecwd-event-header"><div class="date">' . $dates . '</div>';
469
+ if ( $event['permalink'] !== '' ) {
470
+ $html .= '<h2 itemprop="name" ><a href="' . $event['permalink'] . '" style="color: ' . $event['color'] . '">' . $event['title'] . '</a></h2>';
471
+ } else {
472
+ $html .= '<h2 itemprop="name" style="color: ' . $event['color'] . '">' . $event['title'] . '</h2>';
473
+ }
474
+ $html .= '</div>';
475
+
476
+ if ( isset( $event['organizers'] ) && count( $event['organizers'] ) > 0 ) {
477
+ $html .= '<div class="event-organizers">';
478
+ foreach ( $event['organizers'] as $organizer ) {
479
+ $html .= '<div class="event-organizer" itemprop="organizer"> <a href="' . $organizer['permalink'] . '">' . $organizer['name'] . '</a></div>';
480
+ }
481
+ $html .= '</div>';
482
+ }
483
+ if ( isset( $event['location'] ) && $event['location'] !== '' ) {
484
+ $html .= '<div class="event-venue" itemprop="location" itemscope itemtype="http://schema.org/Place">
485
+ <span itemprop="name">';
486
+ if ( isset( $event['venue']['name'] ) && $event['venue']['name'] !== '' ) {
487
+ $html .= '<a href="' . $event['venue']['permalink'] . '">' . $event['venue']['name'] . '</a>';
488
+ }
489
+
490
+ $html .= '</span>
491
+ <div class="address" itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
492
+ ' . $event['location'] . '
493
+ </div>
494
+ </div>';
495
+ }
496
+ $html .= '</div>';
497
+ $html .= '
498
+ <div class="post-descr">
499
+ <div class="post-' . $event['id'] . '">
500
+ ' . $event['details'] . '
501
+ </div>
502
+ </div>';
503
+
504
+ $html .= '</div></div>';
505
+
506
+ }
507
+ }
508
+ } else {
509
+ $html .= '<div class="event-main-content no-events">' . __( 'No events', 'ecwd' ) . '</div>';
510
+ }
511
+
512
+ $html .= '</div>';
513
+ } else {
514
+ $pages = 0;
515
+ $page = $this->page;
516
+ $html .= '<ul class="ecwd_list">';
517
+ if ( $this->listlimit !== false ) {
518
+ $offset = ( $page - 1 ) * $this->listlimit;
519
+ $pages = round( count( $this->events ) / $this->listlimit );
520
+ $this->events = array_slice( $this->events, $offset, $this->listlimit );
521
+ }
522
+ foreach ( $this->events as $event ) {
523
+ if ( $this->displaytype == 'list' ) { // full event list
524
+ if ( strtotime( $event['from'] ) >= strtotime( $this->year . '-' . $this->month . '-1' ) &&
525
+ strtotime( $event['from'] ) <= strtotime( date( 'Y-m-t', strtotime( $this->date ) ) )
526
+ ) {
527
+ $image_class = '';
528
+ $image = $this->getAndReplaceFirstImage( $event['details'] );
529
+ if ( ! has_post_thumbnail( $event['id'] ) && $image['image'] == "" ) {
530
+ $image_class = "ecwd-no-image";
531
+ }
532
+ $html .= '<li class="' . $image_class . '" itemscope itemtype="http://schema.org/Event">';
533
+ if ( ! $this->widget ) {
534
+ $html .= '<div class="ecwd-list-date resp" itemprop="startDate" content="' . date( 'Y-m-d', strtotime( $event['from'] ) ) . 'T' . date( 'H:i', strtotime( $event['starttime'] ) ) . '">' . __(date( 'd', strtotime( $event['from'] ) ), 'ecwd') . '</div>';
535
+ $html .= '<div class="ecwd-list-img"><div class="ecwd-list-img-container"><div class="ecwd-list-date web">' . date( 'd', strtotime( $event['from'] )). '.'. __( date( 'F', strtotime( $event['from'] )), 'ecwd') .'.'. __( date( 'l', strtotime( $event['from'] )), 'ecwd') . '</div>';
536
+
537
+ $html .= '<div class="ecwd-img">';
538
+ if ( get_the_post_thumbnail( $event['id'] ) ) {
539
+ $html .= get_the_post_thumbnail( $event['id'] );
540
+ } elseif ( $image['image'] != null ) {
541
+ $html .= '<img src="' . $image['image'] . '" />';
542
+ $event['details'] = $image['content'];
543
+ }
544
+ $html .= '</div></div></div>';
545
+ } else {
546
+ $html .= '<div class="ecwd-list-date" itemprop="startDate" content="' . date( 'Y-m-d', strtotime( $event['from'] ) ) . 'T' . date( 'H:i', strtotime( $event['starttime'] ) ) . '">' . __(date( 'd', strtotime( $event['from'] ) ), 'ecwd') . '</div>';
547
+ }
548
+ $html .= '<div class="event-main-content">';
549
+ if ( $event['permalink'] != '' ) {
550
+ $html .= '<h3 class="event-title" itemprop="name"><a href="' . $event['permalink'] . '" itemprop="url" style="color:' . $event['color'] . ';">' . $event['title'] . '</a></h3>';
551
+ } else {
552
+ $html .= '<h3 class="event-title" style="color:' . $event['color'] . ';" itemprop="name">' . $event['title'] . '</h3>';
553
+ }
554
+ $html .= '<div class="ecwd-list-date-cont">';
555
+
556
+ if ( isset( $event['all_day_event'] ) && $event['all_day_event'] == 1 ) {
557
+ $eventtime = '<div class="ecwd-time"><span class="metainfo"> ' . __( 'All day', 'ecwd' );
558
+ $eventtime .= '</span>';
559
+ $eventtime .= '</div>';
560
+ } else {
561
+ if ( $event['starttime'] != '' ) { // event details - hidden until clicked (full)
562
+ $eventtime = '<div class="ecwd-time"><span class="metainfo"> ' . date( $this->timeformat, strtotime( $event['starttime'] ) );
563
+ if ( $event['endtime'] != '' && strtotime( $event['endtime'] )!= strtotime( $event['starttime'] ) ) {
564
+ $eventtime .= "-" . date( $this->timeformat, strtotime( $event['endtime'] ) );
565
+ }
566
+ $eventtime .= '</span>';
567
+ $eventtime .= '</div>';
568
+
569
+ }
570
+ }
571
+ $html .= $eventtime;
572
+ if ( $event['from'] != '' ) { // event details - hidden until clicked (full)
573
+ $eventdate = '<div class="ecwd-date"><span class="metainfo"> ' . date( $this->dateformat, strtotime( $event['from'] ) );
574
+ if ( $event['to'] != '' && strtotime( $event['to'] ) !== strtotime( $event['from'] )) {
575
+ $eventdate .= "-" . date( $this->dateformat, strtotime( $event['to'] ) );
576
+ }
577
+ $eventdate .= '</span>';
578
+ $eventdate .= '</div>';
579
+ $html .= $eventdate;
580
+ }
581
+ $html .= '</div>';
582
+ if ( isset( $event['organizers'] ) && count( $event['organizers'] ) > 0 ) {
583
+ $html .= '<div class="event-organizers">';
584
+ foreach ( $event['organizers'] as $organizer ) {
585
+ $html .= '<div class="event-organizer" itemprop="organizer"> <a href="' . $organizer['permalink'] . '">' . $organizer['name'] . '</a></div>';
586
+ }
587
+ $html .= '</div>';
588
+ }
589
+
590
+ if ( $event['location'] !== '' ) {
591
+ $html .= '<div class="event-venue" itemprop="location" itemscope itemtype="http://schema.org/Place">
592
+ <span itemprop="name">';
593
+ if ( isset( $event['venue']['name'] ) ) {
594
+ $html .= '<a href="' . $event['venue']['permalink'] . '">' . $event['venue']['name'] . '</a>';
595
+ }
596
+
597
+ $html .= '</span>
598
+ <div class="address" itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
599
+ ' . ( $event['location'] ? $event['location'] : "" ) . '
600
+ </div>
601
+ </div>';
602
+ }
603
+ $html .= '<div class="event-content" itemprop="description">' . ( $event['details'] ? $event['details'] : $this->eventemptytext ) . '</div></div>';
604
+
605
+ } else { // mini event list
606
+ $html .= '<li style="background:' . $event['color'] . ';"';
607
+ if ( $this->minilinkbase !== false ) { // enable link (good for linking to full calendar)
608
+ $html .= ' class="event-link"';
609
+ if ( $this->linktarget == '_blank' ) {
610
+ $html .= ' onClick="window.open(\'' . $this->minilinkbase . '\', \'_blank\')"';
611
+ } else {
612
+ $html .= ' onClick="' . $this->linktarget . '.location=\'' . $this->minilinkbase . '\'"';
613
+ }
614
+ } else if ( $event['link'] != '' ) { // enable link (links to event url)
615
+ $html .= ' class="event-link"';
616
+ if ( $this->linktarget == '_blank' ) {
617
+ $html .= 'onClick="window.open(\'' . $event['link'] . '\', \'_blank\')"';
618
+ } else {
619
+ $html .= ' onClick="' . $this->linktarget . '.location=\'' . $event['link'] . '\'"';
620
+ }
621
+
622
+ }
623
+ }
624
+ $html .= '</li>';
625
+ }
626
+ }
627
+ if ( count( $this->events ) <= 0 ) { // if events array is empty
628
+ $html .= '<li >';
629
+ $html .= '<div class="event-content">' . __( 'No Events', 'ecwd' ) . '</div>';
630
+ $html .= '</li>';
631
+ }
632
+
633
+ $html .= '</ul>';
634
+
635
+ ///PAGINATION////
636
+ if ( $pages > 1 ) {
637
+ $html .= '<div class="ecwd-pagination">';
638
+ if ( $this->page > 1 ) {
639
+ $html .= '<span class="cpage-span"><a href="?date=' . $this->year . '-' . $this->month . '&t=' . $this->displaytype . '&cpage=' . ( $this->page - 1 ) . '" class="cpage">...</a></span>';
640
+ }
641
+ for ( $i = ( $this->page - 3 ); $i < ( $this->page + 4 ); $i ++ ) {
642
+ if ( $i <= $pages and $i >= 1 ) {
643
+ if ( $this->page == $i ) {
644
+ $html .= '<span class="cpage-span"><span class="page">' . $i . '</span></span>';
645
+ } else {
646
+ $html .= '<span class="cpage-span"><a href="?date=' . $this->year . '-' . $this->month . '&t=' . $this->displaytype . '&cpage=' . $i . '" class="cpage">' . $i . '</a></span>';
647
+ }
648
+ }
649
+ }
650
+ if ( $this->page < $pages ) {
651
+ $html .= '<span class="cpage-span"><a href="?date=' . $this->year . '-' . $this->month . '&t=' . $this->displaytype . '&cpage=' . ( $this->page + 1 ) . '" class="cpage">...</a></span>';
652
+ }
653
+ $html .= '</div>';
654
+ }
655
+ }
656
+ }
657
+ $html .= $this->calendar_foot();
658
+
659
+ // remove tabs, line breaks, vertical tabs, null-byte
660
+ $html = $this->stripWhitespace( $html );
661
+
662
+ return $html;
663
+ }
664
+
665
+ // month/year select box
666
+
667
+ public function calendar_head( $content = '' ) {
668
+ global $cal_ID;
669
+
670
+ $html = '';
671
+ $html .= '<div class="calendar-head ecwd_calendar_prev_next">';
672
+ $html .= $this->cal_previous(); // previous month link
673
+ $previous_year = $this->calcDate( $this->year . '-' . $this->month . '-' . $this->day, '-1', 'year' );
674
+ $previous_dateparam = $previous_year['year'] . '-' . $previous_year['month'] . '-' . $previous_year['day'];
675
+
676
+ $next_year = $this->calcDate( $this->year . '-' . $this->month . '-' . $this->day, '+1', 'year' );
677
+ $next_dateparam = $next_year['year'] . '-' . $next_year['month'] . '-' . $next_year['day'];
678
+ if ( $this->displaytype == 'week' ) {
679
+ $previous_dateparam = $this->getWeekFirstDayDate( $previous_year['year'] . '-' . $previous_year['month'] . '-' . $previous_year['day'] );
680
+ $next_dateparam = $this->getWeekFirstDayDate( $next_year['year'] . '-' . $next_year['month'] . '-' . $next_year['day'] );
681
+ }
682
+ $html .= '<div class="current-month">
683
+ <a href="?date=' . $previous_dateparam . '&t=' . $this->displaytype . '"><</a>&nbsp;
684
+ ' . $this->year . '
685
+ &nbsp;<a href="?date=' . $next_dateparam . '&t=' . $this->displaytype . '">></a>
686
+ <div>';
687
+ if ( $this->displaytype !== 'week' && $this->displaytype !== '4day' && $this->displaytype !== 'day' ) {
688
+
689
+ $html .= __( $this->monthname, 'ecwd' );
690
+ } else {
691
+ if ( $this->displaytype !== 'day' ) {
692
+ if ( $this->displaytype == 'week' ) {
693
+ $currentDays = $this->rangeWeek( $this->year . '-' . $this->month . '-' . $this->day );
694
+ } else {
695
+ $currentDays = $this->range4Days( $this->year . '-' . $this->month . '-' . $this->day );
696
+ }
697
+
698
+ $html .= __( $this->getMonth( $currentDays['start'] ), 'ecwd' ) . ' ' . date( 'd', strtotime( $currentDays['start'] ) ) . ' - ' . __( $this->getMonth( $currentDays['end'] ), 'ecwd' ) . ' ' . date( 'd', strtotime( $currentDays['end'] ) );
699
+ } else {
700
+ $html .= __( $this->monthname, 'ecwd' ) . ' ' . $this->day;
701
+ }
702
+ }
703
+
704
+
705
+ $html .= ' </div>
706
+ </div>';
707
+
708
+
709
+ $html .= $this->cal_next(); // next month link
710
+ $html .= '</div>';
711
+ $html .= $this->cal_viewmode();
712
+
713
+ if ( ! in_array( $this->displaytype, array(
714
+ "list",
715
+ "mini-list",
716
+ 'day',
717
+ 'week',
718
+ '4day',
719
+ 'map',
720
+ 'posterboard'
721
+ ) )
722
+ ) { // mini and full cal
723
+ $html .= '
724
+ <table class="ecwd_calendar_container ' . $this->displaytype . ' cal_' . $this->color . '" cellpadding="0" cellspacing="0" border="0">
725
+
726
+ <tr>';
727
+ // render week number on left
728
+ if ( $this->weeknumbers == 'left' ) {
729
+ $html .= '<td rowspan="2" class="week-number">&nbsp;</td>';
730
+ }
731
+
732
+ // render week number on right
733
+ if ( $this->weeknumbers == 'right' ) {
734
+ $html .= '<td rowspan="2" class="week-number">&nbsp;</td>';
735
+ }
736
+ $html .= '
737
+ </tr>
738
+ <tr>';
739
+ if ( $this->weeknames == 1 ) {
740
+ $weekdays = $this->weekdays; // full
741
+ } else if ( $this->weeknames == 3 || $this->displaytype == 'mini' ) {
742
+ $weekdays = $this->weekdayschar; // single char
743
+ } else {
744
+ $weekdays = $this->abbrevweekdays; // 3 char
745
+ }
746
+ for ( $i = 0; $i < count( $weekdays ); $i ++ ) {
747
+ $di = ( $i + $this->weekstartday ) % 7;
748
+ $weekday = $weekdays[ $di ];
749
+ if ( $i == 0 ) {
750
+ $thisclass = 'normal-day-heading week-start';
751
+ } else {
752
+ $thisclass = 'normal-day-heading';
753
+ }
754
+ $html .= $this->calendar_cell( __($weekday, 'ecwd'), $thisclass ); // calendar cells for full & mini
755
+ }
756
+ $html .= '
757
+ </tr>
758
+ ';
759
+ } else { // event list
760
+ $html .= '<div class="ecwd_calendar_container ' . $this->displaytype . '">';
761
+
762
+ if ( $this->displaytype == 'list' ) {
763
+ if ( $this->listtitle != '' ) {
764
+ $html .= '<h2 class="list-title">' . $this->listtitle . '</h2>';
765
+ }
766
+
767
+ } elseif ( $this->displaytype == 'day' ) {
768
+ //$this->day = ;
769
+
770
+ } elseif ( $this->displaytype == 'week' ) {
771
+ } elseif ( $this->displaytype == '4day' ) {
772
+ } elseif ( $this->displaytype == 'map' ) {
773
+ } elseif ( $this->displaytype == 'posterboard' ) {
774
+ }
775
+
776
+ //$html .= '</div>';
777
+ }
778
+
779
+ return $html;
780
+ }
781
+
782
+ // calendar cells for mini and full displaytypes
783
+
784
+ public function cal_previous() {
785
+ global $cal_ID;
786
+ $previous = $this->calcDate( $this->year . '-' . $this->month, '-1', 'month' );
787
+ $dateparam = $previous['year'] . '-' . $previous['month'];
788
+ $prev_date = '';
789
+ if ( $this->displaytype == 'day' ) {
790
+ $previous = $this->calcDate( $this->year . '-' . $this->month . '-' . $this->day, '-1', 'day' );
791
+ $dateparam = $previous['year'] . '-' . $previous['month'] . '-' . $previous['day'];
792
+ $prev_date = $previous['day'];
793
+ } elseif ( $this->displaytype == '4day' ) {
794
+ $previous = $this->calcDate( $this->year . '-' . $this->month . '-' . $this->day, '-4', 'day' );
795
+ $dateparam = $previous['year'] . '-' . $previous['month'] . '-' . $previous['day'];
796
+ $prev_date = $previous['day'];
797
+ } elseif ( $this->displaytype == 'week' ) {
798
+ $previous = $this->calcDate( $this->year . '-' . $this->month . '-' . $this->day, '-1', 'week' );
799
+ $dateparam = $previous['year'] . '-' . $previous['month'] . '-' . $previous['day'];
800
+ $prev_date = $previous['day'];
801
+ }
802
+
803
+ $this->previousmonth = ( $this->getMonth( $previous['year'] . '-' . $previous['month'], $this->monthnames ) );
804
+ if ( $this->widget == 1 ) {
805
+ $previoustext = '<span><</span>';
806
+ } else {
807
+ $previoustext = '<span><</span><span class="month-name"> ' . __($this->previousmonth, 'ecwd') . ' ' . $prev_date . '</span>';
808
+ }
809
+
810
+ $html = '<div class="previous"><a href="?date=' . $dateparam . '&t=' . $this->displaytype . '">' . $previoustext . '</a></div>';
811
+
812
+ return $html;
813
+ }
814
+
815
+ // calendar footer for all displaytypes
816
+
817
+ public function calcDate( $startdate, $increment, $unit ) {
818
+ $date = date( "Y-n-j", strtotime( date( "Y-n-j", strtotime( $startdate ) ) . " " . $increment . " " . $unit ) );
819
+ $date = explode( '-', $date );
820
+ $newdate = array(
821
+ 'year' => $date[0],
822
+ 'month' => $date[1],
823
+ 'day' => $date[2]
824
+ );
825
+
826
+ return $newdate;
827
+ }
828
+
829
+
830
+ public function getWeekFirstDayDate( $date ) {
831
+ if(strtotime($date)==strtotime(date('Y-m-d'))) {
832
+ return date( 'Y-n-j', strtotime( strtolower( $this->weekdays[ $this->weekstartday ] ) . " this week", strtotime( $date ) ) );
833
+ }else{
834
+ $first_monday_of_month = strtotime('First '.$this->weekdays[ $this->weekstartday ].' of '.date('F o', strtotime($date)));
835
+ if(date('j', $first_monday_of_month)>1){
836
+ $previous_monday = strtotime("-1 week",$first_monday_of_month);
837
+ return date( 'Y-n-j',$previous_monday);
838
+ }else{
839
+ return date( 'Y-n-j',$first_monday_of_month);
840
+ }
841
+
842
+ }
843
+ }
844
+
845
+ public function getMonthDate($date){
846
+ if($this->displaytype=='week' && strtotime($date)!==strtotime(date('Y-m-d'))){
847
+ return date( 'Y-n-j',strtotime("+1 week",strtotime($date)));
848
+ }elseif($this->displaytype=='4day' && strtotime($date)!==strtotime(date('Y-m-d'))){
849
+ return date( 'Y-n-j',strtotime("+3 day",strtotime($date)));
850
+ }
851
+ return $date;
852
+ }
853
+ public function getDayDate($date){
854
+ if(strtotime($date)==strtotime(date('Y-m-d'))){
855
+ return $date;
856
+ }else{
857
+ if($this->displaytype=='full' || $this->displaytype=='month' || $this->displaytype=='mini' || $this->displaytype=='map' || $this->displaytype=='posterboard'|| $this->displaytype=='list') {
858
+ return date( 'Y-n-j',strtotime(date('Y-m-1'),strtotime($date)));
859
+ }elseif($this->displaytype=='week'){
860
+ return date( 'Y-n-j', strtotime( strtolower( $this->weekdays[ $this->weekstartday ] ) . " this week", strtotime( $date ) ) );
861
+ }else{
862
+ return $date;
863
+ }
864
+ }
865
+
866
+ }
867
+
868
+ // add an event to the events array
869
+
870
+ public function getMonth( $date, $type = 1 ) {
871
+ $date = date( 'Y-n-j', strtotime( $date ) );
872
+ $date_parts = explode( '-', $date );
873
+ $jd = cal_to_jd( CAL_GREGORIAN, $date_parts[1], $date_parts[2], $date_parts[0] );
874
+
875
+ return __(jdmonthname( $jd, $type ));
876
+ }
877
+
878
+ // pulls everything together and returns the calendar for all displaytypes
879
+
880
+ public function cal_next() {
881
+ global $cal_ID;
882
+ $html = '';
883
+
884
+ $next = $this->calcDate( $this->year . '-' . $this->month . '-' . $this->day, '+1', 'month' );
885
+ $next_date = '';
886
+ $dateparam = $next['year'] . '-' . $next['month'] . '-' . $next['day'];
887
+ if ( $this->displaytype == 'day' ) {
888
+ $next = $this->calcDate( $this->year . '-' . $this->month . '-' . $this->day, '+1', 'day' );
889
+ $dateparam = $next['year'] . '-' . $next['month'] . '-' . $next['day'];
890
+ $next_date = $next['day'];
891
+ } elseif ( $this->displaytype == '4day' ) {
892
+ $next = $this->calcDate( $this->year . '-' . $this->month . '-' . $this->day, '+4', 'day' );
893
+ $dateparam = $next['year'] . '-' . $next['month'] . '-' . $next['day'];
894
+ $next_date = $next['day'];
895
+ } elseif ( $this->displaytype == 'week' ) {
896
+ $next = $this->calcDate( $this->year . '-' . $this->month . '-' . $this->day, '+1', 'week' );
897
+ $dateparam = $next['year'] . '-' . $next['month'] . '-' . $next['day'];
898
+ $next_date = $next['day'];
899
+ }
900
+ $this->nextmonth = ( $this->getMonth( $next['year'] . '-' . $next['month'], $this->monthnames ) );
901
+
902
+ if ( $this->displaytype == 'mini' || $this->displaytype == 'mini-list' || $this->widget == 1 ) {
903
+ $nexttext = '<span>></span>';
904
+
905
+ } else {
906
+ $divider = $this->monthselector === false ? '&nbsp;|&nbsp;' : '';
907
+ $nexttext = '<span class="month-name">' . $next_date . ' ' . $divider . __($this->nextmonth, 'ecwd') . ' </span><span>></span>';
908
+ }
909
+ $html = '<div class="next"><a href="?date=' . $dateparam . '&t=' . $this->displaytype . '">' . $nexttext . '</a></div>';
910
+
911
+ return $html;
912
+ }
913
+
914
+ //--------------------------------------------------------------------------------------------
915
+ // Helper Functions
916
+ //--------------------------------------------------------------------------------------------
917
+ //
918
+
919
+ public function cal_viewmode() {
920
+ $monthType = ( $this->widget == 1 ) ? 'mini' : 'full';
921
+
922
+ if ( $this->widget == 1 ) {
923
+ $html = ' <div class="ecwd_calendar_view_dropdown cal_tabs_' . $this->color . '" ><a class="ecwd-dropdown-toggle" data-toggle="ecwd-dropdown">';
924
+ $html .= $this->displaysName[ $this->displaytype ]['name'];
925
+ $html .= '</a>';
926
+
927
+ $widgetDisplays = array('mini', 'list', 'week', 'day');
928
+
929
+ $html .= '<div class="ecwd-dropdown-menu">';
930
+ foreach ( $widgetDisplays as $display ) {
931
+ if ( $display !== 'none' && isset($this->displaysName[ $display ])) {
932
+ $html .= '<div class="type">' . '<a href="?date=' . $this->displaysName[ $display ]['date'] . '&t=' . $display . '">' . $this->displaysName[ $display ]['name'] . '</a>' . '</div>';
933
+ }
934
+ }
935
+
936
+ $html .= '</div></div>';
937
+
938
+ } else {
939
+ $html = ' <div class="ecwd_calendar_view_tabs cal_tabs_' . $this->color . '" >';
940
+ $html .= '<div class="filter-container">
941
+ <div class="filter-arrow-left">&laquo;</div>
942
+ <div class="filter-arrow-right">&raquo;</div>';
943
+
944
+
945
+ if ( count( $this->displays ) > 1 ) {
946
+ $html .= '<ul>';
947
+ foreach ( $this->displays as $display ) {
948
+ if ( $display !== 'none' && isset($this->displaysName[ $display ])) {
949
+ $html .= '<li class="type';
950
+ if ( $this->displaytype == $display ) {
951
+ $html .= ' ecwd-selected-mode';
952
+ $html .= '">' . '<a>' . $this->displaysName[ $display ]['name'] . '</a>' . '</li>';
953
+ }else {
954
+ $html .= '">' . '<a href="?date=' . $this->displaysName[ $display ]['date'] . '&t=' . $display . '">' . $this->displaysName[ $display ]['name'] . '</a>' . '</li>';
955
+ }
956
+ }
957
+ }
958
+ $html .= '</ul>';
959
+ }
960
+ $html .= '</div>';
961
+ if ( $this->event_search == 'yes' ) {
962
+ $svalue = '';
963
+ if ( isset( $this->search_params['query'] ) && $this->search_params['query'] ) {
964
+ $svalue = $this->search_params['query'];
965
+ }
966
+ $html .= '<div class="ecwd-search">
967
+ <input class="ecwd-search" name="search" type="text" placeholder="' . __( 'What\'re we looking for ?', 'ecwd' ) . '" value="' . $svalue . '">'
968
+ . '<button class="btn btn-default ecwd-search-submit"><span class="glyphicon glyphicon-search"></span><i class="fa fa-search"></i></button>
969
+ </div>';
970
+ }
971
+ $html .= '</div>';
972
+
973
+ }
974
+
975
+ return $html;
976
+ }
977
+
978
+
979
+ // returns month from passed date (string), $type: 0=number,1=full(January,February,etc),2=abbreviation(Jan,Feb,etc)
980
+
981
+ public function calendar_cell( $day, $class, $date = '', $style = '' ) {
982
+ global $cal_ID;
983
+
984
+ $addclass = '';
985
+
986
+ if ( strpos( $class, 'normal-day-heading' ) !== false ) {
987
+ $tag = 'th';
988
+ } else {
989
+ $tag = 'td';
990
+ }
991
+
992
+ if ( $day != '' ) {
993
+ $bgColor = '';
994
+ $cellevents = array();
995
+
996
+ if ( is_array( $this->events ) ) { // events array populated from addEvent()
997
+ foreach ( $this->events as $event ) {
998
+ $color = $event['color'];
999
+ $title = $event['title'];
1000
+ $link = $event['link'];
1001
+ $eventdate = $event['date'];
1002
+ $from = strtotime( $event['from'] );
1003
+ $to = strtotime( $event['to'] );
1004
+ $starttime = $event['starttime'];
1005
+ $endtime = $event['endtime'];
1006
+ $details = $event['details'];
1007
+ $location = $event['location'];
1008
+ $venue = $event['venue'];
1009
+ $organizers = $event['organizers'];
1010
+ $terms = $event['terms'];
1011
+ $all_day_event = $event['all_day_event'];
1012
+ $permalink = $event['permalink'];
1013
+
1014
+ $id = $event['id'];
1015
+
1016
+
1017
+ if ( $date == date( 'Y-n-j', strtotime( $eventdate ) ) ) {
1018
+ $cellevents[] = array(
1019
+ 'color' => $color,
1020
+ 'title' => $title,
1021
+ 'link' => $link,
1022
+ 'date' => $eventdate,
1023
+ 'from' => $from,
1024
+ 'to' => $to,
1025
+ 'id' => $id,
1026
+ 'starttime' => $starttime,
1027
+ 'endtime' => $endtime,
1028
+ 'details' => $details,
1029
+ 'location' => $location,
1030
+ 'all_day_event' => $all_day_event,
1031
+ 'terms' => $terms,
1032
+ 'venue' => $venue,
1033
+ 'organizers' => $organizers,
1034
+ 'permalink' => $permalink
1035
+ );
1036
+ }
1037
+ }
1038
+ }
1039
+
1040
+ // sort by starttime for the cell
1041
+ if ( count( $cellevents ) > 0 ) {
1042
+ $cellevents = $this->arraySort( $cellevents, 'starttime' );
1043
+ }
1044
+
1045
+ if ( $date == date( 'Y-n-j' ) ) {
1046
+ $addclass .= ' current-day'; // if processing the current day
1047
+ }
1048
+
1049
+ if ( in_array( $this->getDay( $date ), array(
1050
+ 'Saturday',
1051
+ 'Sunday'
1052
+ ) ) ) {
1053
+ $addclass .= ' weekend'; // if a weekend
1054
+ }
1055
+
1056
+ if ( $this->getDay( $date, 0 ) == $this->weekstartday ) {
1057
+ $addclass .= ' week-start'; // if the weekstartday
1058
+ }
1059
+
1060
+ if ( $this->arraySearch( $date, $cellevents ) !== false ) {
1061
+ $addclass .= ' has-events'; // if the date has events
1062
+ } else if ( strpos( $class, 'normal-day-heading' ) === false ) {
1063
+ $addclass .= ' no-events'; // no events
1064
+ }
1065
+
1066
+ $combinedclass = $class . $addclass; // combine all classes
1067
+
1068
+ $html = '<' . $tag . ' class="' . $combinedclass . '" data-date="' . $date . '"';
1069
+
1070
+ // check/set links for mini calendar
1071
+ if ( $this->minilinkbase != '' && $this->displaytype == 'mini' ) {
1072
+ if ( $this->linktarget == '_blank' ) {
1073
+ $html .= ' onClick="window.open(\'' . $this->minilinkbase . '?date=' . $date . '\', \'_blank\')"';
1074
+ } else {
1075
+ $html .= ' onClick="' . $this->linktarget . '.location=\'' . $this->minilinkbase . '?date=' . $date . '\'"';
1076
+ }
1077
+ }
1078
+ }
1079
+ if ( $style ) {
1080
+ $html .= ' style="' . $style . '"';
1081
+ }
1082
+ if ( $this->displaytype == 'mini' ) {
1083
+ $content = $day;
1084
+ } elseif ( $this->widget && $this->displaytype != 'mini' ) {
1085
+ $content = '<div class="ecwd-week-date">' . date( 'd', strtotime( $date ) ) . '</div>';
1086
+ } elseif ( ( $this->displaytype == 'week' || $this->displaytype == 'day' || $this->displaytype == '4day' ) && ! $this->widget ) {
1087
+ $content = '<div class="ecwd-week-date resp" itemprop="startDate" content="' . date( 'Y-m-d', strtotime( $date ) ) . '">' . date( 'd', strtotime( $date )) . '</div><div class="ecwd-week-date web"">' .date( 'd', strtotime( $date )). '.'. __( date( 'F', strtotime( $date )), 'ecwd') .'.'. __( date( 'l', strtotime( $date )), 'ecwd'). '</div>';
1088
+ } else {
1089
+ $content = '<div class="day-number">' . $day . '</div>'; // day number or prev/next month cell content
1090
+ }
1091
+
1092
+
1093
+ if ( count( $cellevents ) > 0 ) {
1094
+ $content .= '<ul class="events">';
1095
+ $eventcontent = '';
1096
+ foreach ( $cellevents as $i => $cellevent ) {
1097
+ //echo $cellevent['date'].'-------'.$cellevent['title'].'<br />';
1098
+ //if (!array_key_exists($cellevent['id'], $this->seted_days)) {
1099
+ $li_class = '';
1100
+ if ( $i > 2 && $this->displaytype !== 'mini' ) {
1101
+ $li_class = 'inmore';
1102
+ }
1103
+
1104
+ $eventcontent .= '<li itemscope itemtype="http://schema.org/Event" style="';
1105
+ if ( is_array( $cellevent['terms'] ) ) {
1106
+ if ( isset( $cellevent['color'] ) && $cellevent['color'] !== '' ) {
1107
+ $eventcontent .= 'background-color: ' . $cellevent['color'] . '; ';
1108
+ }
1109
+ }
1110
+ $eventcontent .= '" class="' . $li_class . ' ' . $i;
1111
+ if ( isset( $cellevent['terms']['ecwd_taxonomy_image'] ) && $cellevent['terms']['ecwd_taxonomy_image'] == '' ) {
1112
+ $eventcontent .= ' no-cat-image ';
1113
+ }
1114
+ $eventcontent .= '">';
1115
+ if ( $this->displaytype != 'mini' ) {
1116
+ if ( isset( $cellevent['terms']['ecwd_taxonomy_image'] ) && $this->displaytype != 'mini' ) {
1117
+ if ( $cellevent['terms']['ecwd_taxonomy_image'] != '' ) {
1118
+ $eventcontent .= '<img class="ecwd-event-cat-icon" src="' . $cellevent['terms']['ecwd_taxonomy_image'] . '" />';
1119
+ }/*elseif (isset($cellevent['color'])){
1120
+ $eventcontent .= ' <span class="event-metalabel" style="background:' . $cellevent['color'] . '"></span>';
1121
+ }*/
1122
+ }
1123
+ if ( $cellevent['permalink'] ) {
1124
+ $eventcontent .= '<a href="' . $cellevent['permalink'] . '"><span itemprop="name">' . $cellevent['title'] . '</span></a>';
1125
+ } else {
1126
+ $eventcontent .= '<span itemprop="name">' . $cellevent['title'] . '</span>';
1127
+ }
1128
+
1129
+ }
1130
+ $this->seted_days[ $cellevent['id'] ] = $date;
1131
+
1132
+ $eventcontent .= '<div class="event-details-container"><div class="ecwd-event-arrow"></div><div class="event-details">';
1133
+
1134
+ if ( $cellevent['title'] != '' ) {
1135
+ $eventcontent .= '<div class="event-details-title">';
1136
+
1137
+ if ( isset( $cellevent['color'] ) && $cellevent['color'] !== '' ) {
1138
+ $eventcontent .= ' <span class="event-metalabel" style="background:' . $cellevent['color'] . '"></span>
1139
+ <h5 style="color:' . $cellevent['color'] . '" itemprop="name">';
1140
+ if ( isset( $cellevent['permalink'] ) && $cellevent['permalink'] !== '' ) {
1141
+ $eventcontent .= '<a href="' . $cellevent['permalink'] . '" style="color: ' . $cellevent['color'] . '">' . $cellevent['title'] . '</a>';
1142
+ } else {
1143
+ $eventcontent .= $cellevent['title'];
1144
+ }
1145
+ $eventcontent .= '</h5>
1146
+ ';
1147
+ } else {
1148
+ $eventcontent .= ' <span class="event-metalabel"></span>
1149
+ <h5 itemprop="name">';
1150
+ if ( isset( $cellevent['permalink'] ) && $cellevent['permalink'] !== '' ) {
1151
+ $eventcontent .= '<a href="' . $cellevent['permalink'] . '">' . $cellevent['title'] . '</a>';
1152
+ } else {
1153
+ $eventcontent .= $cellevent['title'];
1154
+ }
1155
+ $eventcontent .= '</h5>';
1156
+ }
1157
+ $eventcontent .= ' </div>';
1158
+ }
1159
+ if ( isset( $cellevent['all_day_event'] ) && $cellevent['all_day_event'] == 1 ) {
1160
+
1161
+ $eventtime = '<div class="ecwd-time"><span class="metainfo" itemprop="startDate" content="' . date( 'Y-m-d', $cellevent['from'] ) . 'T' . date( 'H:i', strtotime( $cellevent['starttime'] ) ) . '"> ' . __( 'All day', 'ecwd' );
1162
+ $eventtime .= '</span>';
1163
+ $eventtime .= '</div>';
1164
+ $eventcontent .= $eventtime;
1165
+ } else {
1166
+ if ( $cellevent['starttime'] != '' ) { // event details - hidden until clicked (full)
1167
+ $eventtime = '<div class="ecwd-time"><span class="metainfo" itemprop="startDate" content="' . date( 'Y-m-d', $cellevent['from'] ) . 'T' . date( 'H:i', strtotime( $cellevent['starttime'] ) ) . '"> ' . date( $this->timeformat, strtotime( $cellevent['starttime'] ) );
1168
+ if ( $cellevent['endtime'] != '' && strtotime($cellevent['endtime'])!==strtotime($cellevent['starttime'])) {
1169
+ $eventtime .= "-" . date( $this->timeformat, strtotime( $cellevent['endtime'] ) );
1170
+ }
1171
+ $eventtime .= '</span>';
1172
+ $eventtime .= '</div>';
1173
+ $eventcontent .= $eventtime;
1174
+ }
1175
+ }
1176
+ if ( $cellevent['from'] != '' ) { // event details - hidden until clicked (full)
1177
+ $eventdate = '<div class="ecwd-date"><span class="metainfo"> ' . date( $this->dateformat, $cellevent['from'] );
1178
+ if ( $cellevent['to'] != '' && $cellevent['to']!=$cellevent['from']) {
1179
+ $eventdate .= "-" . date( $this->dateformat, $cellevent['to'] );
1180
+ }
1181
+ $eventdate .= '</span>';
1182
+ $eventdate .= '</div>';
1183
+ $eventcontent .= $eventdate;
1184
+ }
1185
+ if ( isset( $cellevent['organizers'] ) && count( $cellevent['organizers'] ) > 0 ) {
1186
+ $eventcontent .= '<div class="event-organizers">';
1187
+ foreach ( $cellevent['organizers'] as $organizer ) {
1188
+ $eventcontent .= '<div class="event-organizer" itemprop="organizer"> <a href="' . $organizer['permalink'] . '">' . $organizer['name'] . '</a></div>';
1189
+ }
1190
+ $eventcontent .= '</div>';
1191
+ }
1192
+ if ( $cellevent['location'] !== '' ) {
1193
+ $eventcontent .= '<div class="event-venue" itemprop="location" itemscope itemtype="http://schema.org/Place">';
1194
+ if ( isset( $cellevent['venue']['name'] ) ) {
1195
+ $eventcontent .= '<div class="ecwd-venue" ><span itemprop="name"><a href="' . $cellevent['venue']['permalink'] . '">' . $cellevent['venue']['name'] . '</a></span></div>';
1196
+ }
1197
+ if ( isset( $cellevent['location'] ) && $cellevent['location'] != '' ) {
1198
+ $eventcontent .= '<div class="ecwd-location" itemprop="address" itemscope itemtype="http://schema.org/PostalAddress"><span>' . $cellevent['location'] . '</span></div>';
1199
+ }
1200
+ $eventcontent .= '</div>';
1201
+ }
1202
+ if ( isset( $cellevent['link'] ) && $cellevent['link'] != '' ) {
1203
+ $eventcontent .= '<div class="ecwd-link"> <a href="' . $cellevent['link'] . '" itemprop="url">' . $cellevent['link'] . '</a></div>';
1204
+ }
1205
+ $image = $this->getAndReplaceFirstImage( $cellevent['details'] );
1206
+ if ( $cellevent['details'] != '' || has_post_thumbnail( $cellevent['id'] ) ) {
1207
+ $eventcontent .= '<div class="ecwd-detalis" itemprop="description">';
1208
+ if ( get_the_post_thumbnail( $cellevent['id'] ) ) {
1209
+ $eventcontent .= get_the_post_thumbnail( $cellevent['id'] );
1210
+ } elseif ( $image['image'] != null ) {
1211
+ $eventcontent .= '<img src="' . $image['image'] . '" />';
1212
+ $cellevent['details'] = $image['content'];
1213
+ }
1214
+ $eventcontent .= $cellevent['details'] . '</div>';
1215
+ }
1216
+
1217
+ $eventcontent .= '</div><div class="ecwd-event-arrow-right"></div>';
1218
+
1219
+ $eventcontent .= '</li> ';
1220
+
1221
+
1222
+ // } else {
1223
+ // //$eventcontent .= $cellevent['title'];
1224
+ // }
1225
+
1226
+ }
1227
+ $content .= $eventcontent;
1228
+
1229
+ if ( $i > 2 && $this->displaytype !== 'mini' ) {
1230
+ $content .= '<li class="ecwd-calendar-more-event">
1231
+ <span class="ecwd-calendar-event-add"><a href="#more_events_' . $date . '">' . __( 'More events', 'ecwd' ) . '</a></span>
1232
+ <div id="more_events_' . $date . '" class="ecwd-modal">
1233
+ <div class="ecwd-excluded-events ">
1234
+ <a href="#ecwd-close" title="Close" class="ecwd-close"><i class="fa fa-times"></i></a>
1235
+ <div class="modal-header">
1236
+ <h4 class="modal-title">' . date( $this->dateformat, strtotime( $date ) ) . '</h4>
1237
+ </div>
1238
+ <div class="modal-body">
1239
+ <ul class="events more_events">
1240
+ ' . $eventcontent . '
1241
+ </ul>
1242
+ </div>
1243
+ <div class="modal-footer">
1244
+ </div>
1245
+ </div>
1246
+ </div>
1247
+ </li>';
1248
+
1249
+ }
1250
+
1251
+ $content .= '</ul>';
1252
+
1253
+
1254
+ if ( $this->displaytype == 'week' || $this->displaytype == 'day' || $this->displaytype == '4day' ) {
1255
+ if ( count( $cellevents ) > 0 ) {
1256
+ $html = '';
1257
+ if ( ! $this->widget ) {
1258
+ $html = '<div class="ecwd-week-date resp" style="background:#' . $this->eventlistbg . '" itemprop="startDate" content="' . date( 'Y-m-d', strtotime( $event['from'] ) ) . 'T' . date( 'H:i', strtotime( $event['starttime'] ) ) . '">' . date( 'd', strtotime( $date ) ) . '</div><div class="ecwd-week-date web"">' . date( 'd', strtotime( $date )). '.'. __( date( 'F', strtotime( $date )), 'ecwd') .'.'. __( date( 'l', strtotime( $date )), 'ecwd') . '</div>';
1259
+ } else {
1260
+ $html = '<div class="ecwd-week-date">' . date( 'd', strtotime( $date ) ) . '</div>';
1261
+ }
1262
+ $html .= '<div class="event-main-content">';
1263
+ foreach ( $cellevents as $cellevent ) {
1264
+
1265
+ $image_class = '';
1266
+ $image = $this->getAndReplaceFirstImage( $cellevent['details'] );
1267
+ if ( ! has_post_thumbnail( $cellevent['id'] ) && $image['image'] == "" ) {
1268
+ $image_class = "ecwd-no-image";
1269
+ }
1270
+ $html .= '<div class="event-container ' . $image_class . '" itemprop="event">';
1271
+ if ( ! $this->widget ) {
1272
+ $html .= '<div class="ecwd-list-img"><div class="ecwd-list-img-container">';
1273
+ $html .= '<div class="ecwd-img">';
1274
+ if ( get_the_post_thumbnail( $cellevent['id'] ) ) {
1275
+ $html .= get_the_post_thumbnail( $cellevent['id'] );
1276
+ } elseif ( $image['image'] != null ) {
1277
+ $html .= '<img src="' . $image['image'] . '" />';
1278
+ $cellevent['details'] = $image['content'];
1279
+ }
1280
+ $html .= '</div></div></div>';
1281
+ }
1282
+
1283
+ if ( $cellevent['permalink'] != '' ) {
1284
+ $html .= '<h3 class="event-title" itemprop="name"> <a href="' . $cellevent['permalink'] . '"';
1285
+ if ( isset( $cellevent['color'] ) && $cellevent['color'] !== '' ) {
1286
+ $html .= ' style="color:' . $cellevent['color'] . ';"';
1287
+ }
1288
+ $html .= '>' . $cellevent['title'] . '</a></h3>';
1289
+
1290
+ } else {
1291
+ $html .= '<h3 class="event-title" itemprop="name"';
1292
+
1293
+ if ( isset( $cellevent['color'] ) && $cellevent['color'] !== '' ) {
1294
+ $html .= 'style="color:' . $cellevent['color'] . ';"';
1295
+ }
1296
+ $html .= '>' . $cellevent['title'] . '</h3>';
1297
+ }
1298
+ $html .= '<div class="ecwd-list-date-cont">';
1299
+ if ( isset( $cellevent['all_day_event'] ) && $cellevent['all_day_event'] == 1 ) {
1300
+ $eventtime = '<div class="ecwd-time"><span class="metainfo event-time" itemprop="startDate" content="' . date( 'Y-m-d', $cellevent['from'] ) . 'T' . date( 'H:i', strtotime( $cellevent['starttime'] ) ) . '"> ' . __( 'All day', 'ecwd' );
1301
+ $eventtime .= '</span>';
1302
+ $eventtime .= '</div>';
1303
+ $html .= $eventtime;
1304
+ } else {
1305
+
1306
+ if ( $cellevent['starttime'] != '' ) { // event details - hidden until clicked (full)
1307
+ $eventtime = '<div class="ecwd-time"><span class="metainfo event-time" itemprop="startDate" content="' . date( 'Y-m-d', $cellevent['from'] ) . 'T' . date( 'H:i', strtotime( $cellevent['starttime'] ) ) . '"> ' . date( $this->timeformat, strtotime( $cellevent['starttime'] ) );
1308
+ if ( $cellevent['endtime'] != '' && $cellevent['endtime']!= $cellevent['starttime']) {
1309
+ $eventtime .= "-" . date( $this->timeformat, strtotime( $cellevent['endtime'] ) );
1310
+ }
1311
+ $eventtime .= '</span>';
1312
+ $eventtime .= '</div>';
1313
+ $html .= $eventtime;
1314
+ }
1315
+ }
1316
+ if ( $cellevent['from'] != '' ) {
1317
+ $eventdate = '<div class="ecwd-date"><span class="metainfo" itemprop="startDate" content="' . date( 'Y-m-d', $cellevent['from'] ) . 'T' . date( 'H:i', strtotime( $cellevent['starttime'] ) ) . '"> ' . date( $this->dateformat, $cellevent['from'] );
1318
+ if ( $cellevent['to'] != '' && $cellevent['to']!= $cellevent['from']) {
1319
+ $eventdate .= "-" . date( $this->dateformat, $cellevent['to'] );
1320
+ }
1321
+ $eventdate .= '</span>';
1322
+ $eventdate .= '</div>';
1323
+ $html .= $eventdate;
1324
+ }
1325
+ $html .= '</div>';
1326
+ if ( isset( $cellevent['organizers'] ) && count( $cellevent['organizers'] ) > 0 ) {
1327
+ $eventcontent .= '<div class="event-organizers">';
1328
+ foreach ( $cellevent['organizers'] as $organizer ) {
1329
+ $eventcontent .= '<div class="event-organizer" itemprop="organizer"> <a href="' . $organizer['permalink'] . '">' . $organizer['name'] . '</a></div>';
1330
+ }
1331
+ $eventcontent .= '</div>';
1332
+ }
1333
+ if ( $cellevent['location'] != '' ) {
1334
+ $html .= '<div class="event-venue" itemprop="location" itemscope itemtype="http://schema.org/Place">
1335
+ <span itemprop="name">';
1336
+ if ( isset( $cellevent['venue']['name'] ) ) {
1337
+ $html .= '<a href="' . $cellevent['venue']['permalink'] . '">' . $cellevent['venue']['name'] . '</a>';
1338
+ }
1339
+
1340
+ $html .= '</span>
1341
+ <div class="address" itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
1342
+ <span itemprop="streetAddress">' . $cellevent['location'] . '</span>
1343
+ </div>
1344
+ </div>';
1345
+ }
1346
+ $html .= '<div class="event-content" itemprop="description">' . ( $cellevent['details'] ? $cellevent['details'] : $this->eventemptytext ) . '</div></div>';
1347
+ }
1348
+ $html .= '</div>';
1349
+
1350
+ return $html;
1351
+ }
1352
+ }
1353
+
1354
+ } else {
1355
+ if ( $this->displaytype == 'week' || $this->displaytype == 'day' || $this->displaytype == '4day' ) {
1356
+ $content .= '<div class="event-main-content no-events">' . __( 'No events', 'ecwd' ) . '</div>';
1357
+ }
1358
+ }
1359
+
1360
+ $html .= '>' . $content . '</td>';
1361
+
1362
+ return $html;
1363
+ }
1364
+
1365
+
1366
+ public function arraySort( $a, $subkey ) {
1367
+ foreach ( $a as $k => $v ) {
1368
+ $b[ $k ] = strtolower( $v[ $subkey ] );
1369
+ }
1370
+ asort( $b );
1371
+ foreach ( $b as $key => $val ) {
1372
+ $c[] = $a[ $key ];
1373
+ }
1374
+
1375
+ return $c;
1376
+ }
1377
+
1378
+ // add/subtract day,week,month,days from startdate
1379
+
1380
+ public function getDay( $date, $type = 1 ) {
1381
+ $date = date( 'Y-n-j', strtotime( $date ) );
1382
+ $date_parts = explode( '-', $date );
1383
+ $jd = cal_to_jd( CAL_GREGORIAN, $date_parts[1], $date_parts[2], $date_parts[0] );
1384
+
1385
+ return jddayofweek( $jd, $type );
1386
+ }
1387
+
1388
+ // recursive array search returns the key of occurance (int) or false if not found
1389
+
1390
+ public function arraySearch( $needle, $haystack, $index = null ) {
1391
+ $aIt = new RecursiveArrayIterator( $haystack );
1392
+ $it = new RecursiveIteratorIterator( $aIt );
1393
+ while ( $it->valid() ) {
1394
+ if ( ( ( isset( $index ) AND ( $it->key() == $index ) ) OR ( ! isset( $index ) ) ) AND ( $it->current() == $needle ) ) {
1395
+ return $aIt->key();
1396
+ }
1397
+ $it->next();
1398
+ }
1399
+
1400
+ return false;
1401
+ }
1402
+
1403
+ public function getKey( $array, $member, $value ) {
1404
+ foreach ( $array as $k => $v ) {
1405
+ if ( $v->$member == $value ) {
1406
+ return $k;
1407
+ }
1408
+ }
1409
+
1410
+ return false;
1411
+ }
1412
+
1413
+ //return current week start and end dates
1414
+
1415
+ public function rangeWeek( $datestr ) {
1416
+ date_default_timezone_set( date_default_timezone_get() );
1417
+ $res['start'] = date( "Y-m-d", strtotime( $datestr ) );
1418
+ $res['end'] = date( "Y-m-d", strtotime( "+6 day", strtotime( $datestr ) ) );
1419
+
1420
+ return $res;
1421
+ }
1422
+
1423
+ public function range4Days( $date ) {
1424
+ date_default_timezone_set( date_default_timezone_get() );
1425
+ $res['start'] = date( "Y-m-d", strtotime( $date ) );
1426
+ $res['end'] = date( "Y-m-d", strtotime( "+3 day", strtotime( $date ) ) );
1427
+
1428
+ return $res;
1429
+ }
1430
+
1431
+ public function calendar_foot() {
1432
+ if ( in_array( $this->displaytype, array(
1433
+ 'full',
1434
+ 'mini'
1435
+ ) ) ) {
1436
+ $html = '</table>';
1437
+ } else {
1438
+ $html = '</div>';
1439
+ }
1440
+
1441
+ return $html;
1442
+ }
1443
+
1444
+ // Removes tabs, line breaks, vertical tabs, null-byte. Everything but a regular space.
1445
+
1446
+ public function stripWhitespace( $c ) {
1447
+ $c = str_replace( array(
1448
+ "\n",
1449
+ "\r",
1450
+ "\t",
1451
+ "\o",
1452
+ "\xOB"
1453
+ ), '', $c );
1454
+
1455
+ return trim( $c );
1456
+ }
1457
+
1458
+ // sorts an associative array by values of passed key
1459
+
1460
+ public function hex2RGB( $hexStr, $returnAsString = false, $seperator = ',' ) {
1461
+ $hexStr = preg_replace( "/[^0-9A-Fa-f]/", '', $hexStr ); // check hex string
1462
+ $rgbArray = array();
1463
+ if ( strlen( $hexStr ) == 6 ) { // if a proper hex code e.g. #RRGGBB
1464
+ $colorVal = hexdec( $hexStr );
1465
+ $rgbArray['red'] = 0xFF & ( $colorVal >> 0x10 );
1466
+ $rgbArray['green'] = 0xFF & ( $colorVal >> 0x8 );
1467
+ $rgbArray['blue'] = 0xFF & $colorVal;
1468
+ } elseif ( strlen( $hexStr ) == 3 ) { // if shorthand notation e.g #RGB
1469
+ $rgbArray['red'] = hexdec( str_repeat( substr( $hexStr, 0, 1 ), 2 ) );
1470
+ $rgbArray['green'] = hexdec( str_repeat( substr( $hexStr, 1, 1 ), 2 ) );
1471
+ $rgbArray['blue'] = hexdec( str_repeat( substr( $hexStr, 2, 1 ), 2 ) );
1472
+ } else {
1473
+ return false; // invalid hex color code
1474
+ }
1475
+
1476
+ // returns the rgb string or the associative array
1477
+ return $returnAsString ? implode( $seperator, $rgbArray ) : $rgbArray;
1478
+ }
1479
+
1480
+ public function getAndReplaceFirstImage( $content ) {
1481
+ $first_img = '';
1482
+ ob_start();
1483
+ ob_end_clean();
1484
+ $output = preg_match_all( '/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $content, $matches );
1485
+ if ( isset( $matches [1] [0] ) ) {
1486
+ $first_img = $matches [1] [0];
1487
+ }
1488
+
1489
+ if ( empty( $first_img ) ) { //Defines a default image
1490
+ return false;
1491
+ } else {
1492
+ //preg_replace('/<img[^>]+\>/i', '', $content);
1493
+ $content = $this->replaceFirstImage( $content );
1494
+ }
1495
+
1496
+ return array(
1497
+ 'image' => $first_img,
1498
+ 'content' => $content
1499
+ );
1500
+ }
1501
+
1502
+ public function replaceFirstImage( $content ) {
1503
+ $content = preg_replace( "/<img[^>]+\>/i", " ", $content, 1 );
1504
+
1505
+ return $content;
1506
+ }
1507
+ }
1508
+
1509
+
1510
+ // end class
includes/ecwd-cpt-class.php ADDED
@@ -0,0 +1,1276 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class ECWD_Cpt {
4
+ const IMAGE_PLACEHOLDER = '';
5
+ const CALENDAR_POST_TYPE = 'ecwd_calendar';
6
+ const EVENT_POST_TYPE = 'ecwd_event';
7
+ const ORGANIZER_POST_TYPE = 'ecwd_organizer';
8
+ const VENUE_POST_TYPE = 'ecwd_venue';
9
+ const THEME_POST_TYPE = 'ecwd_theme';
10
+ protected static $instance = null;
11
+ public $rewriteSlugSingular;
12
+ public $rewriteSlug;
13
+
14
+ private function __construct() {
15
+ $this->tax = ECWD_PLUGIN_PREFIX . '_event_category';
16
+ $this->tag = ECWD_PLUGIN_PREFIX . '_event_tag';
17
+
18
+
19
+ //actions
20
+ add_action( 'init', array( $this, 'setup_cpt' ));
21
+
22
+ add_action( 'pre_get_posts', array( $this, 'add_custom_post_type_to_query' ) );
23
+ add_action( 'add_meta_boxes', array( $this, 'calendars_cpt_meta' ) );
24
+ add_action( 'add_meta_boxes', array( $this, 'events_cpt_meta' ) );
25
+ add_action( 'add_meta_boxes', array( $this, 'themes_cpt_meta' ) );
26
+ add_action( 'add_meta_boxes', array( $this, 'venues_cpt_meta' ) );
27
+ add_action( 'post_updated', array( $this, 'save_meta' ), 10, 3 );
28
+ add_action( 'manage_' . ECWD_PLUGIN_PREFIX . '_calendar_posts_custom_column', array(
29
+ $this,
30
+ 'calendar_column_content'
31
+ ), 10, 2 );
32
+ add_action( 'manage_' . ECWD_PLUGIN_PREFIX . '_event_posts_custom_column', array(
33
+ $this,
34
+ 'event_column_content'
35
+ ), 10, 2 );
36
+
37
+ //duplicate posts actions
38
+ add_filter( 'post_row_actions', array( $this, 'duplicate_event_link' ), 10, 2 );
39
+ add_action( 'admin_action_duplicate_ecwd_post', array( $this, 'duplicate_post' ) );
40
+
41
+ //events catgeories
42
+ add_action( 'init', array( $this, 'create_taxonomies' ), 0 );
43
+ add_action( ECWD_PLUGIN_PREFIX . '_event_category_add_form_fields', array(
44
+ $this,
45
+ 'add_categories_metas'
46
+ ), 10, 3 );
47
+ add_action( ECWD_PLUGIN_PREFIX . '_event_category_edit_form_fields', array(
48
+ $this,
49
+ 'add_categories_metas'
50
+ ), 10, 3 );
51
+ add_action( 'edited_' . ECWD_PLUGIN_PREFIX . '_event_category', array(
52
+ $this,
53
+ 'save_categories_metas'
54
+ ), 10, 2 );
55
+ add_action( 'create_' . ECWD_PLUGIN_PREFIX . '_event_category', array(
56
+ $this,
57
+ 'save_categories_metas'
58
+ ), 10, 2 );
59
+ add_filter( 'manage_edit-' . ECWD_PLUGIN_PREFIX . '_event_category_columns', array(
60
+ $this,
61
+ 'taxonomy_columns'
62
+ ) );
63
+ add_filter( 'manage_' . ECWD_PLUGIN_PREFIX . '_event_category_custom_column', array(
64
+ $this,
65
+ 'taxonomy_column'
66
+ ), 10, 3 );
67
+ add_filter( 'generate_rewrite_rules', array( $this, 'filterRewriteRules' ), 2);
68
+
69
+
70
+ add_action( 'wp_ajax_manage_calendar_events', array( $this, 'save_events' ) );
71
+ add_action( 'wp_ajax_add_calendar_event', array( $this, 'add_event' ) );
72
+
73
+ //filters
74
+ add_filter( 'post_updated_messages', array( $this, 'calendar_messages' ) );
75
+ add_filter( 'post_updated_messages', array( $this, 'theme_messages' ) );
76
+ add_filter( 'post_updated_messages', array( $this, 'event_messages' ) );
77
+ add_filter( 'manage_' . ECWD_PLUGIN_PREFIX . '_calendar_posts_columns', array(
78
+ $this,
79
+ 'calendar_add_column_headers'
80
+ ) );
81
+ add_filter( 'manage_' . ECWD_PLUGIN_PREFIX . '_event_posts_columns', array( $this, 'add_column_headers' ) );
82
+ }
83
+
84
+
85
+ public function duplicate_event_link( $actions, $post ) {
86
+ if ( current_user_can( 'edit_posts' ) ) {
87
+ if ( $post->post_type == self::EVENT_POST_TYPE ) {
88
+ $actions['duplicate'] = '<a href="admin.php?action=duplicate_ecwd_post&amp;post=' . $post->ID . '" title="Duplicate this event" rel="permalink">' . __( 'Duplicate Event', 'ecwd' ) . '</a>';
89
+ }
90
+ }
91
+
92
+ return $actions;
93
+ }
94
+
95
+
96
+ public function duplicate_post() {
97
+ global $wpdb;
98
+ if ( ! ( isset( $_GET['post'] ) || isset( $_POST['post'] ) || ( isset( $_REQUEST['action'] ) && 'ecwd_duplicate_post' == $_REQUEST['action'] ) ) ) {
99
+ wp_die( 'No post to duplicate has been supplied!' );
100
+ }
101
+ /*
102
+ * get the original post id
103
+ */
104
+ $post_id = ( isset( $_GET['post'] ) ? $_GET['post'] : $_POST['post'] );
105
+ /*
106
+ * and all the original post data then
107
+ */
108
+ $post = get_post( $post_id );
109
+
110
+ $current_user = wp_get_current_user();
111
+ $new_post_author = $current_user->ID;
112
+
113
+ /*
114
+ * if post data exists, create the post duplicate
115
+ */
116
+ if ( isset( $post ) && $post != null ) {
117
+ /*
118
+ * new post data array
119
+ */
120
+ $args = array(
121
+ 'comment_status' => $post->comment_status,
122
+ 'post_type' => $post->post_type,
123
+ 'ping_status' => $post->ping_status,
124
+ 'post_author' => $new_post_author,
125
+ 'post_content' => $post->post_content,
126
+ 'post_excerpt' => $post->post_excerpt,
127
+ 'post_name' => $post->post_name,
128
+ 'post_parent' => $post->post_parent,
129
+ 'post_password' => $post->post_password,
130
+ 'post_status' => $post->post_status,
131
+ 'post_title' => $post->post_title,
132
+ 'post_type' => $post->post_type,
133
+ 'to_ping' => $post->to_ping,
134
+ 'menu_order' => $post->menu_order
135
+ );
136
+
137
+ /*
138
+ * insert the post by wp_insert_post() function
139
+ */
140
+ $new_post_id = wp_insert_post( $args );
141
+
142
+
143
+ $taxonomies = get_object_taxonomies( $post->post_type ); // returns array of taxonomy names for post type, ex array("category", "post_tag");
144
+ foreach ( $taxonomies as $taxonomy ) {
145
+ $post_terms = wp_get_object_terms( $post_id, $taxonomy, array( 'fields' => 'slugs' ) );
146
+ wp_set_object_terms( $new_post_id, $post_terms, $taxonomy, false );
147
+ }
148
+
149
+
150
+ //insert metas
151
+ $metas = get_post_meta( $post_id );
152
+ foreach ( $metas as $key => $meta_value ) {
153
+ if ( is_serialized( $meta_value[0] ) ) {
154
+ $meta_value[0] = unserialize( $meta_value[0] );
155
+ }
156
+ add_post_meta( $new_post_id, $key, $meta_value[0] );
157
+
158
+ }
159
+
160
+ wp_redirect( admin_url( 'post.php?action=edit&post=' . $new_post_id ) );
161
+ exit;
162
+ } else {
163
+ wp_die( 'Post creation failed, could not find original post: ' . $post_id );
164
+ }
165
+
166
+ }
167
+
168
+ /**
169
+ * Hide other metaboxes
170
+ * Register SC custom post type
171
+ */
172
+ public function setup_cpt() {
173
+ global $ecwd_options;
174
+ $event_supports=array();
175
+ if ( isset( $ecwd_options['event_comments'] ) && $ecwd_options['event_comments'] == 1 ) {
176
+ $event_supports[] = 'comments';
177
+ }
178
+ $defaultSlug = 'event';
179
+ if(is_plugin_active('the-events-calendar/the-events-calendar.php')){
180
+ $defaultSlug = 'wdevent';
181
+ }
182
+ if(false=== get_option( ECWD_PLUGIN_PREFIX . '_slug_changed')) {
183
+ update_option( ECWD_PLUGIN_PREFIX . '_slug_changed', 0 );
184
+ update_option( ECWD_PLUGIN_PREFIX . '_single_slug', $defaultSlug);
185
+ update_option( ECWD_PLUGIN_PREFIX . '_slug', $defaultSlug.'s');
186
+
187
+ }
188
+
189
+ if((isset( $ecwd_options['event_slug'] ) && $ecwd_options['event_slug']!==get_option( ECWD_PLUGIN_PREFIX . '_single_slug')) || (isset( $ecwd_options['events_slug'] ) && $ecwd_options['events_slug']!==get_option( ECWD_PLUGIN_PREFIX . '_slug'))){
190
+ update_option( ECWD_PLUGIN_PREFIX . '_single_slug', $ecwd_options['event_slug']);
191
+ update_option( ECWD_PLUGIN_PREFIX . '_slug', $ecwd_options['events_slug']);
192
+ update_option( ECWD_PLUGIN_PREFIX . '_slug_changed', 1 );
193
+ }
194
+ $this->rewriteSlug = ( isset( $ecwd_options['events_slug'] ) && $ecwd_options['events_slug'] !== '' ) ? $ecwd_options['events_slug'] : $defaultSlug.'s';
195
+ $this->rewriteSlugSingular = ( isset( $ecwd_options['event_slug'] ) && $ecwd_options['event_slug'] !== '' ) ? $ecwd_options['event_slug'] : $defaultSlug;
196
+ //calendars
197
+ $calendar_labels = array(
198
+ 'name' => __( 'Calendars', 'ecwd' ),
199
+ 'singular_name' => __( 'Calendar', 'ecwd' ),
200
+ 'menu_name' => __( 'Calendars', 'ecwd' ),
201
+ 'name_admin_bar' => __( 'Calendar', 'ecwd' ),
202
+ 'add_new' => __( 'Add New Calendar', 'ecwd' ),
203
+ 'add_new_item' => __( 'Add New Calendar', 'ecwd' ),
204
+ 'new_item' => __( 'New Calendar', 'ecwd' ),
205
+ 'edit_item' => __( 'Edit Calendar', 'ecwd' ),
206
+ 'view_item' => __( 'View Calendar', 'ecwd' ),
207
+ 'all_items' => __( 'All Calendars', 'ecwd' ),
208
+ 'search_items' => __( 'Search Calendar', 'ecwd' ),
209
+ 'not_found' => __( 'No Calendars found.', 'ecwd' ),
210
+ 'not_found_in_trash' => __( 'No Calendars found in Trash.', 'ecwd' )
211
+ );
212
+
213
+ $calendar_args = array(
214
+ 'labels' => $calendar_labels,
215
+ 'public' => false,
216
+ 'publicly_queryable' => true,
217
+ 'show_ui' => true,
218
+ 'show_in_menu' => true,
219
+ 'query_var' => true,
220
+ 'capability_type' => 'post',
221
+ 'has_archive' => false,
222
+ 'hierarchical' => false,
223
+ 'menu_icon' => plugins_url( '/assets/Insert-icon.png', ECWD_MAIN_FILE ),
224
+ 'supports' => array(
225
+ 'title',
226
+ 'editor'
227
+ )
228
+ );
229
+
230
+ register_post_type( self::CALENDAR_POST_TYPE, $calendar_args );
231
+
232
+
233
+ //events
234
+ $labels = array(
235
+ 'name' => __( 'Events', 'ecwd' ),
236
+ 'singular_name' => __( 'Event', 'ecwd' ),
237
+ 'name_admin_bar' => __( 'Event', 'ecwd' ),
238
+ 'add_new' => __( 'Add New', 'ecwd' ),
239
+ 'add_new_item' => __( 'Add New Event', 'ecwd' ),
240
+ 'new_item' => __( 'New Event', 'ecwd' ),
241
+ 'edit_item' => __( 'Edit Event', 'ecwd' ),
242
+ 'view_item' => __( 'View Event', 'ecwd' ),
243
+ 'all_items' => __( 'All Events', 'ecwd' ),
244
+ 'search_items' => __( 'Search Event', 'ecwd' ),
245
+ 'not_found' => __( 'No events found.', 'ecwd' ),
246
+ 'not_found_in_trash' => __( 'No events found in Trash.', 'ecwd' )
247
+ );
248
+ $args = array(
249
+ 'labels' => $labels,
250
+ 'public' => true,
251
+ 'publicly_queryable' => true,
252
+ 'show_ui' => true,
253
+ 'show_in_menu' => true,
254
+ //'edit.php?post_type=ecwd_calendar',
255
+ 'query_var' => true,
256
+ 'capability_type' => 'post',
257
+ 'taxonomies' => array(
258
+ ECWD_PLUGIN_PREFIX . '_event_category',
259
+ ECWD_PLUGIN_PREFIX . '_event_tag',
260
+ 'calendars',
261
+ 'organizers'
262
+ ),
263
+ 'has_archive' => true,
264
+ 'hierarchical' => false,
265
+ 'menu_icon' => plugins_url( '/assets/event-icon.png', ECWD_MAIN_FILE ),
266
+ 'supports' => array_merge( array(
267
+ 'title',
268
+ 'editor',
269
+ 'thumbnail'
270
+ ), $event_supports ),
271
+ 'rewrite' => array( 'slug' => $this->rewriteSlugSingular )
272
+ );
273
+
274
+ register_post_type( self::EVENT_POST_TYPE, $args );
275
+
276
+
277
+ //events organizers
278
+ $organizers_labels = array(
279
+ 'name' => __( 'Organizers', 'ecwd' ),
280
+ 'singular_name' => __( 'Organizer', 'ecwd' ),
281
+ 'name_admin_bar' => __( 'Organizer', 'ecwd' ),
282
+ 'add_new' => __( 'Add New', 'ecwd' ),
283
+ 'add_new_item' => __( 'Add New Organizer', 'ecwd' ),
284
+ 'new_item' => __( 'New Organizer', 'ecwd' ),
285
+ 'edit_item' => __( 'Edit Organizer', 'ecwd' ),
286
+ 'view_item' => __( 'View Organizer', 'ecwd' ),
287
+ 'all_items' => __( 'All Organizers', 'ecwd' ),
288
+ 'search_items' => __( 'Search Organizer', 'ecwd' ),
289
+ 'not_found' => __( 'No Organizers found.', 'ecwd' ),
290
+ 'not_found_in_trash' => __( 'No Organizers found in Trash.', 'ecwd' )
291
+ );
292
+
293
+ $organizers_args = array(
294
+ 'labels' => $organizers_labels,
295
+ 'public' => true,
296
+ 'publicly_queryable' => true,
297
+ 'show_ui' => true,
298
+ 'show_in_menu' => true,
299
+ //'edit.php?post_type=ecwd_calendar',
300
+ 'query_var' => true,
301
+ 'capability_type' => 'post',
302
+ 'taxonomies' => array(),
303
+ 'has_archive' => true,
304
+ 'hierarchical' => false,
305
+ 'menu_icon' => plugins_url( '/assets/organizer-icon.png', ECWD_MAIN_FILE ),
306
+ 'supports' => array(
307
+ 'title',
308
+ 'editor'
309
+ ),
310
+ 'rewrite' => array( 'slug' => 'organizer' )
311
+ );
312
+
313
+ register_post_type( self::ORGANIZER_POST_TYPE, $organizers_args );
314
+
315
+ //venues
316
+ $venues_labels = array(
317
+ 'name' => __( 'Venues', 'ecwd' ),
318
+ 'singular_name' => __( 'Venue', 'ecwd' ),
319
+ 'name_admin_bar' => __( 'Venue', 'ecwd' ),
320
+ 'add_new' => __( 'Add New', 'ecwd' ),
321
+ 'add_new_item' => __( 'Add New Venue', 'ecwd' ),
322
+ 'new_item' => __( 'New Venue', 'ecwd' ),
323
+ 'edit_item' => __( 'Edit Venue', 'ecwd' ),
324
+ 'view_item' => __( 'View Venue', 'ecwd' ),
325
+ 'all_items' => __( 'All Venues', 'ecwd' ),
326
+ 'search_items' => __( 'Search Venue', 'ecwd' ),
327
+ 'not_found' => __( 'No Venues found.', 'ecwd' ),
328
+ 'not_found_in_trash' => __( 'No Venues found in Trash.', 'ecwd' )
329
+ );
330
+
331
+ $venues_args = array(
332
+ 'labels' => $venues_labels,
333
+ 'public' => true,
334
+ 'publicly_queryable' => true,
335
+ 'show_ui' => true,
336
+ 'show_in_menu' => true,
337
+ //'edit.php?post_type=ecwd_calendar',
338
+ 'query_var' => true,
339
+ 'capability_type' => 'post',
340
+ 'taxonomies' => array(),
341
+ 'has_archive' => true,
342
+ 'hierarchical' => false,
343
+ 'menu_icon' => plugins_url( '/assets/venue-icon.png', ECWD_MAIN_FILE ),
344
+ 'supports' => array(
345
+ 'title',
346
+ 'editor'
347
+ ),
348
+ 'rewrite' => array( 'slug' => 'venue' )
349
+ );
350
+
351
+
352
+ register_post_type( self::VENUE_POST_TYPE, $venues_args );
353
+
354
+ if ( false === get_option( ECWD_PLUGIN_PREFIX . '_cpt_setup' ) || 1 == get_option( ECWD_PLUGIN_PREFIX . '_slug_changed' ) ) {
355
+ update_option( ECWD_PLUGIN_PREFIX . '_cpt_setup', 1 );
356
+ update_option( ECWD_PLUGIN_PREFIX . '_slug_changed', 0 );
357
+ flush_rewrite_rules();
358
+
359
+ }
360
+ }
361
+
362
+ public function add_custom_post_type_to_query( $query ) {
363
+ if ( is_admin() || ! $query->is_main_query() ) {
364
+ return;
365
+ }
366
+ global $ecwd_options;
367
+ if ( isset( $ecwd_options['event_loop'] ) && $ecwd_options['event_loop'] == 1 ) {
368
+
369
+ if ( $query->is_home() && $query->is_main_query() ) {
370
+ $query->set( 'post_type', array( 'post', self::EVENT_POST_TYPE ) );
371
+ }
372
+ }
373
+
374
+ }
375
+
376
+ public function filterRewriteRules( $wp_rewrite ) {
377
+ global $ecwd_options;
378
+
379
+ if(!$this->rewriteSlugSingular || $this->rewriteSlugSingular == ''){
380
+ $defaultSlug = 'event';
381
+ if(is_plugin_active('the-events-calendar/the-events-calendar.php')){
382
+ $defaultSlug = 'wdevent';
383
+ }
384
+
385
+ $this->rewriteSlug = ( isset( $ecwd_options['events_slug'] ) && $ecwd_options['events_slug'] !== '' ) ? $ecwd_options['events_slug'] : $defaultSlug.'s';
386
+ $this->rewriteSlugSingular = ( isset( $ecwd_options['event_slug'] ) && $ecwd_options['event_slug'] !== '' ) ? $ecwd_options['event_slug'] : $defaultSlug;
387
+ }
388
+
389
+ $base = trailingslashit( $this->rewriteSlug );
390
+ $singleBase = trailingslashit( $this->rewriteSlugSingular );
391
+ $newRules = array();
392
+ // single event
393
+ $newRules[ $singleBase . '([^/]+)/(\d{4}-\d{2}-\d{2})/?$' ] = 'index.php?' . self::EVENT_POST_TYPE . '=' . $wp_rewrite->preg_index( 1 ) . "&eventDate=" . $wp_rewrite->preg_index( 2 );
394
+ $newRules[ $singleBase . '([^/]+)/all/?$' ] = 'index.php?post_type=' . self::EVENT_POST_TYPE . '&' . self::EVENT_POST_TYPE . '=' . $wp_rewrite->preg_index( 1 ) . "&eventDisplay=all";
395
+ $newRules[ $base . 'page/(\d+)' ] = 'index.php?post_type=' . self::EVENT_POST_TYPE . '&eventDisplay=list&paged=' . $wp_rewrite->preg_index( 1 );
396
+ $newRules[ $base . '(feed|rdf|rss|rss2|atom)/?$' ] = 'index.php?post_type=' . self::EVENT_POST_TYPE . '&eventDisplay=list&feed=' . $wp_rewrite->preg_index( 1 );
397
+ $newRules[ $base . '(\d{4}-\d{2})$' ] = 'index.php?post_type=' . self::EVENT_POST_TYPE . '&eventDisplay=month' . '&eventDate=' . $wp_rewrite->preg_index( 1 );
398
+ $newRules[ $base . '(\d{4}-\d{2}-\d{2})/?$' ] = 'index.php?post_type=' . self::EVENT_POST_TYPE . '&eventDisplay=day&eventDate=' . $wp_rewrite->preg_index( 1 );
399
+ $newRules[ $base . 'feed/?$' ] = 'index.php?post_type=' . self::EVENT_POST_TYPE . 'eventDisplay=list&&feed=rss2';
400
+ $newRules[ $base . '?$' ] = 'index.php?post_type=' . self::EVENT_POST_TYPE . '&eventDisplay=default';
401
+
402
+ $wp_rewrite->rules = apply_filters( ECWD_PLUGIN_PREFIX . '_events_rewrite_rules', $newRules + $wp_rewrite->rules, $newRules );
403
+ }
404
+
405
+ /**
406
+ * Messages for Calendar actions
407
+ */
408
+ public function calendar_messages( $messages ) {
409
+ global $post, $post_ID;
410
+
411
+ $url1 = '<a href="' . get_permalink( $post_ID ) . '">';
412
+ $url2 = __( 'calendar', 'ecwd' );
413
+ $url3 = '</a>';
414
+ $s1 = __( 'Calendar', 'ecwd' );
415
+
416
+ $messages[ ECWD_PLUGIN_PREFIX . '_calendar' ] = array(
417
+ 1 => sprintf( __( '%4$s updated.', 'ecwd' ), $url1, $url2, $url3, $s1 ),
418
+ 4 => sprintf( __( '%4$s updated. ', 'ecwd' ), $url1, $url2, $url3, $s1 ),
419
+ 6 => sprintf( __( '%4$s published.', 'ecwd' ), $url1, $url2, $url3, $s1 ),
420
+ 7 => sprintf( __( '%4$s saved.', 'ecwd' ), $url1, $url2, $url3, $s1 ),
421
+ 8 => sprintf( __( '%4$s submitted. ', 'ecwd' ), $url1, $url2, $url3, $s1 ),
422
+ 10 => sprintf( __( '%4$s draft updated.', 'ecwd' ), $url1, $url2, $url3, $s1 )
423
+ );
424
+ if ( $post->post_type == ECWD_PLUGIN_PREFIX . '_calendar' ) {
425
+
426
+ $notices = get_option( ECWD_PLUGIN_PREFIX . '_not_writable_warning' );
427
+ if ( empty( $notices ) ) {
428
+ return $messages;
429
+ }
430
+ foreach ( $notices as $post_id => $mm ) {
431
+ if ( $post->ID == $post_id ) {
432
+ $notice = '';
433
+ foreach ( $mm as $key ) {
434
+ $notice = $notice . ' <p style="color:red;">' . $key . '</p> ';
435
+ }
436
+ foreach ( $messages[ ECWD_PLUGIN_PREFIX . '_calendar' ] as $i => $message ) {
437
+ $messages[ ECWD_PLUGIN_PREFIX . '_calendar' ][ $i ] = $message . $notice;
438
+ }
439
+ unset( $notices[ $post_id ] );
440
+ update_option( ECWD_PLUGIN_PREFIX . '_not_writable_warning', $notices );
441
+ break;
442
+ }
443
+ }
444
+ }
445
+
446
+ return $messages;
447
+
448
+ }
449
+
450
+ public function theme_messages( $messages ) {
451
+ global $post, $post_ID;
452
+
453
+ $url1 = '<a href="' . get_permalink( $post_ID ) . '">';
454
+ $url2 = __( 'Theme', 'ecwd' );
455
+ $url3 = '</a>';
456
+ $s1 = __( 'Theme', 'ecwd' );
457
+
458
+ $messages[ ECWD_PLUGIN_PREFIX . '_theme' ] = array(
459
+ 1 => sprintf( __( '%4$s updated.', 'ecwd' ), $url1, $url2, $url3, $s1 ),
460
+ 4 => sprintf( __( '%4$s updated. ', 'ecwd' ), $url1, $url2, $url3, $s1 ),
461
+ 6 => sprintf( __( '%4$s published.', 'ecwd' ), $url1, $url2, $url3, $s1 ),
462
+ 7 => sprintf( __( '%4$s saved.', 'ecwd' ), $url1, $url2, $url3, $s1 ),
463
+ 8 => sprintf( __( '%4$s submitted. ', 'ecwd' ), $url1, $url2, $url3, $s1 ),
464
+ 10 => sprintf( __( '%4$s draft updated.', 'ecwd' ), $url1, $url2, $url3, $s1 )
465
+ );
466
+
467
+ if ( $post->post_type == ECWD_PLUGIN_PREFIX . '_theme' ) {
468
+ $notices = get_option( ECWD_PLUGIN_PREFIX . '_not_writable_warning' );
469
+
470
+ if ( empty( $notices ) ) {
471
+ return $messages;
472
+ }
473
+
474
+ foreach ( $notices as $post_id => $mm ) {
475
+
476
+ if ( $post->ID == $post_id ) {
477
+ $notice = '';
478
+
479
+ foreach ( $mm as $key ) {
480
+
481
+
482
+ $notice = $notice . ' <p style="color:red;">' . $key . '</p> ';
483
+ }
484
+ foreach ( $messages[ ECWD_PLUGIN_PREFIX . '_theme' ] as $i => $message ) {
485
+ $messages[ ECWD_PLUGIN_PREFIX . '_theme' ][ $i ] = $message . $notice;
486
+ }
487
+ unset( $notices[ $post_id ] );
488
+ update_option( ECWD_PLUGIN_PREFIX . '_not_writable_warning', $notices );
489
+ break;
490
+ }
491
+ }
492
+ }
493
+
494
+ return $messages;
495
+ }
496
+
497
+ /**
498
+ * Messages for Event actions
499
+ */
500
+ public function event_messages( $messages ) {
501
+ global $post, $post_ID;
502
+
503
+ $url1 = '<a href="' . get_permalink( $post_ID ) . '">';
504
+ $url2 = __( 'event', 'ecwd' );
505
+ $url3 = '</a>';
506
+ $s1 = __( 'Event', 'ecwd' );
507
+
508
+ $messages[ ECWD_PLUGIN_PREFIX . '_event' ] = array(
509
+ 1 => sprintf( __( '%4$s updated. %1$sView %2$s%3$s', 'ecwd' ), $url1, $url2, $url3, $s1 ),
510
+ 4 => sprintf( __( '%4$s updated. %1$sView %2$s%3$s', 'ecwd' ), $url1, $url2, $url3, $s1 ),
511
+ 6 => sprintf( __( '%4$s published. %1$sView %2$s%3$s', 'ecwd' ), $url1, $url2, $url3, $s1 ),
512
+ 7 => sprintf( __( '%4$s saved. %1$sView %2$s%3$s', 'ecwd' ), $url1, $url2, $url3, $s1 ),
513
+ 8 => sprintf( __( '%4$s submitted. %1$sView %2$s%3$s', 'ecwd' ), $url1, $url2, $url3, $s1 ),
514
+ 10 => sprintf( __( '%4$s draft updated. %1$sView %2$s%3$s', 'ecwd' ), $url1, $url2, $url3, $s1 )
515
+ );
516
+
517
+ return $messages;
518
+ }
519
+
520
+ /**
521
+ * Add Events post meta
522
+ */
523
+ public function calendars_cpt_meta( $screen = null, $context = 'advanced' ) {
524
+ add_meta_box( ECWD_PLUGIN_PREFIX . '_calendar_meta', __( 'Calendar Settings', 'ecwd' ), array(
525
+ $this,
526
+ 'display_calendars_meta'
527
+ ), ECWD_PLUGIN_PREFIX . '_calendar', 'advanced', 'core' );
528
+
529
+ }
530
+
531
+ /**
532
+ * Display Events post meta
533
+ */
534
+ public function display_calendars_meta( $post ) {
535
+ $args = array(
536
+ 'numberposts' => - 1,
537
+ 'post_type' => self::EVENT_POST_TYPE,
538
+ 'meta_query' => array(
539
+ array(
540
+ 'key' => ECWD_PLUGIN_PREFIX . '_event_calendars',
541
+ 'value' => serialize( strval( $post->ID ) ),
542
+ 'compare' => 'LIKE'
543
+ ),
544
+ 'meta_key' => ECWD_PLUGIN_PREFIX . '_event_date_from',
545
+ 'orderby' => 'meta_value',
546
+ 'order' => 'ASC'
547
+
548
+ )
549
+ );
550
+ $events = get_posts( $args );
551
+
552
+ $args = array(
553
+ 'numberposts' => - 1,
554
+ 'post_type' => self::EVENT_POST_TYPE,
555
+ 'meta_query' => array(
556
+ 'relation' => 'OR',
557
+ array(
558
+ 'key' => ECWD_PLUGIN_PREFIX . '_event_calendars',
559
+ 'value' => serialize( strval( $post->ID ) ),
560
+ 'compare' => 'NOT LIKE'
561
+ ),
562
+ array(
563
+ 'key' => ECWD_PLUGIN_PREFIX . '_event_calendars',
564
+ 'compare' => 'NOT EXISTS'
565
+ ),
566
+ array(
567
+ 'key' => ECWD_PLUGIN_PREFIX . '_event_calendars',
568
+ 'value' => '',
569
+
570
+ ),
571
+ 'meta_key' => ECWD_PLUGIN_PREFIX . '_event_date_from',
572
+ 'orderby' => 'meta_value',
573
+ 'order' => 'ASC'
574
+
575
+ )
576
+ );
577
+ $excluded_events = get_posts( $args );
578
+
579
+ $args = array(
580
+ 'numberposts' => - 1,
581
+ 'post_type' => ECWD_PLUGIN_PREFIX . '_theme'
582
+ );
583
+ $themes = get_posts( $args );
584
+ include_once( ECWD_DIR . '/views/admin/ecwd-calendar-meta.php' );
585
+ do_action( ECWD_PLUGIN_PREFIX . '_gcal' );
586
+ do_action( ECWD_PLUGIN_PREFIX . '_fb' );
587
+ do_action( ECWD_PLUGIN_PREFIX . '_ical' );
588
+ }
589
+
590
+ /**
591
+ * Add Events post meta
592
+ */
593
+ public function events_cpt_meta( $screen = null, $context = 'advanced' ) {
594
+ add_meta_box( ECWD_PLUGIN_PREFIX . '_event_calendars_meta', __( 'Calendars', 'ecwd' ), array(
595
+ $this,
596
+ 'display_events_calendars_meta'
597
+ ), ECWD_PLUGIN_PREFIX . '_event', 'side', 'core' );
598
+ add_meta_box( ECWD_PLUGIN_PREFIX . '_event_organizers_meta', __( 'Organizers', 'ecwd' ), array(
599
+ $this,
600
+ 'display_events_organizers_meta'
601
+ ), ECWD_PLUGIN_PREFIX . '_event', 'side', 'core' );
602
+ add_meta_box( ECWD_PLUGIN_PREFIX . '_event_meta', __( 'Event Settings', 'ecwd' ), array(
603
+ $this,
604
+ 'display_events_meta'
605
+ ), ECWD_PLUGIN_PREFIX . '_event', 'advanced', 'core' );
606
+ if ( current_theme_supports( 'post-thumbnails', 'post' ) && post_type_supports( 'post', 'thumbnail' ) ) {
607
+ add_meta_box( 'postimagediv', __( 'Featured Image' ), 'post_thumbnail_meta_box', null, 'side', 'low' );
608
+ }
609
+ }
610
+
611
+ /**
612
+ * Display Events post meta
613
+ */
614
+ public function display_events_meta() {
615
+ $ip_addr = $_SERVER['REMOTE_ADDR'];
616
+ if ( $ip_addr == '127.0.0.1' ) {
617
+ $ip_addr = '37.157.218.77';
618
+ }
619
+
620
+ $url = 'http://www.geoplugin.net/php.gp?ip=' . $ip_addr;
621
+ if ( false === $geoplugin = get_transient( ECWD_PLUGIN_PREFIX . '_ip_' . $ip_addr ) ) {
622
+ $geoplugin = unserialize( file_get_contents( 'http://www.geoplugin.net/php.gp?ip=' . $ip_addr ) );
623
+ set_transient( ECWD_PLUGIN_PREFIX . '_ip_' . $ip_addr, $geoplugin, 12 * 60 * 60 );
624
+ }
625
+ $lat = '';
626
+ $long = '';
627
+
628
+ if ( $geoplugin['geoplugin_latitude'] && $geoplugin['geoplugin_longitude'] ) {
629
+ $lat = $geoplugin['geoplugin_latitude'];
630
+ $long = $geoplugin['geoplugin_longitude'];
631
+ }
632
+ $args = array(
633
+ 'post_type' => ECWD_PLUGIN_PREFIX . '_venue',
634
+ 'post_status' => 'publish',
635
+ 'posts_per_page' => - 1,
636
+ 'ignore_sticky_posts' => 1
637
+ );
638
+ $venues = get_posts( $args );
639
+ include_once( ECWD_DIR . '/views/admin/ecwd-event-meta.php' );
640
+ }
641
+
642
+ /**
643
+ * Display Events post meta
644
+ */
645
+ public function display_events_calendars_meta() {
646
+ include_once( ECWD_DIR . '/views/admin/ecwd-event-calendars-meta.php' );
647
+ }
648
+
649
+ public function display_events_organizers_meta() {
650
+ include_once( ECWD_DIR . '/views/admin/ecwd-event-organizers-meta.php' );
651
+ }
652
+
653
+ /**
654
+ * Add Themes post meta
655
+ */
656
+ public function themes_cpt_meta() {
657
+ add_meta_box( ECWD_PLUGIN_PREFIX . '_theme_meta', __( 'Calendar Theme Settings', 'ecwd' ), array(
658
+ $this,
659
+ 'display_theme_meta'
660
+ ), ECWD_PLUGIN_PREFIX . '_theme', 'advanced', 'core' );
661
+ }
662
+
663
+ /**
664
+ * Display Theme post meta
665
+ */
666
+ public function display_theme_meta() {
667
+ global $post;
668
+ $post_id = $post->ID;
669
+ $default_theme = array(
670
+ //general
671
+ ECWD_PLUGIN_PREFIX . '_width'=>'100%',
672
+ ECWD_PLUGIN_PREFIX . '_cal_border_color'=>'',
673
+ ECWD_PLUGIN_PREFIX . '_cal_border_width'=>'',
674
+ ECWD_PLUGIN_PREFIX . '_cal_border_radius'=>'',
675
+ //header
676
+ ECWD_PLUGIN_PREFIX . '_cal_header_color'=>'#168fb5',
677
+ ECWD_PLUGIN_PREFIX . '_cal_header_border_color'=>'#91CEDF',
678
+ ECWD_PLUGIN_PREFIX . '_current_year_color'=>'#ffffff',
679
+ ECWD_PLUGIN_PREFIX . '_current_year_font_size'=>28,
680
+ ECWD_PLUGIN_PREFIX . '_current_month_color'=>'#ffffff',
681
+ ECWD_PLUGIN_PREFIX . '_current_month_font_size'=>16,
682
+ ECWD_PLUGIN_PREFIX . '_next_prev_color'=>'#ffffff',
683
+ ECWD_PLUGIN_PREFIX . '_next_prev_font_size'=>18,
684
+ //views
685
+ ECWD_PLUGIN_PREFIX . '_view_tabs_bg_color'=>'#10738B',
686
+ ECWD_PLUGIN_PREFIX . '_view_tabs_border_color'=>'#91CEDF',
687
+ ECWD_PLUGIN_PREFIX . '_view_tabs_current_color'=>'#ffffff',
688
+ ECWD_PLUGIN_PREFIX . '_view_tabs_text_color'=>'#ffffff',
689
+ ECWD_PLUGIN_PREFIX . '_view_tabs_font_size'=>16,
690
+ ECWD_PLUGIN_PREFIX . '_view_tabs_current_text_color'=>'#10738B',
691
+ //search
692
+ ECWD_PLUGIN_PREFIX . '_search_bg_color'=>'#10738B',
693
+ ECWD_PLUGIN_PREFIX . '_search_icon_color'=>'#ffffff',
694
+ //filter
695
+ ECWD_PLUGIN_PREFIX . '_filter_header_bg_color'=>'#10738B',
696
+ ECWD_PLUGIN_PREFIX . '_filter_header_left_bg_color'=>'#ffffff',
697
+ ECWD_PLUGIN_PREFIX . '_filter_header_text_color'=>'#ffffff',
698
+ ECWD_PLUGIN_PREFIX . '_filter_header_left_text_color'=>'#10738B',
699
+ ECWD_PLUGIN_PREFIX . '_filter_bg_color'=>'#ECECEC',
700
+ ECWD_PLUGIN_PREFIX . '_filter_border_color'=>'#ffffff',
701
+ ECWD_PLUGIN_PREFIX . '_filter_arrow_color'=>'#10738B',
702
+ ECWD_PLUGIN_PREFIX . '_filter_reset_text_color'=>'#10738B',
703
+ ECWD_PLUGIN_PREFIX . '_filter_reset_font_size'=>15,
704
+ ECWD_PLUGIN_PREFIX . '_filter_text_color'=>'#10738B',
705
+ ECWD_PLUGIN_PREFIX . '_filter_font_size'=>16,
706
+
707
+ ECWD_PLUGIN_PREFIX . '_filter_item_bg_color'=>'#ffffff',
708
+ ECWD_PLUGIN_PREFIX . '_filter_item_border_color'=>'#DEE3E8',
709
+ ECWD_PLUGIN_PREFIX . '_filter_item_text_color'=>'#6E6E6E',
710
+ ECWD_PLUGIN_PREFIX . '_filter_item_font_size'=>15,
711
+ //week days
712
+ ECWD_PLUGIN_PREFIX . '_week_days_bg_color'=>'#F9F9F9',
713
+ ECWD_PLUGIN_PREFIX . '_week_days_border_color'=>'#B6B6B6',
714
+ ECWD_PLUGIN_PREFIX . '_week_days_text_color'=>'#585858',
715
+ ECWD_PLUGIN_PREFIX . '_week_days_font_size'=>17,
716
+ //days
717
+ ECWD_PLUGIN_PREFIX . '_cell_bg_color'=>'#ffffff',
718
+ ECWD_PLUGIN_PREFIX . '_cell_weekend_bg_color'=>'#EDEDED',
719
+ ECWD_PLUGIN_PREFIX . '_cell_prev_next_bg_color'=>'#F9F9F9',
720
+ ECWD_PLUGIN_PREFIX . '_cell_border_color'=>'#B6B6B6',
721
+ ECWD_PLUGIN_PREFIX . '_day_number_bg_color'=>'#E0E0E0',
722
+ ECWD_PLUGIN_PREFIX . '_day_text_color'=>'#5C5C5C',
723
+ ECWD_PLUGIN_PREFIX . '_day_font_size'=>14,
724
+ ECWD_PLUGIN_PREFIX . '_current_day_cell_bg_color'=>'#ffffff',
725
+ ECWD_PLUGIN_PREFIX . '_current_day_number_bg_color'=>'#0071A0',
726
+ ECWD_PLUGIN_PREFIX . '_current_day_text_color'=>'#ffffff',
727
+ //events
728
+ ECWD_PLUGIN_PREFIX . '_event_title_color'=>'',
729
+ ECWD_PLUGIN_PREFIX . '_event_title_font_size'=>18,
730
+ ECWD_PLUGIN_PREFIX . '_event_details_bg_color'=>'#ffffff',
731
+ ECWD_PLUGIN_PREFIX . '_event_details_border_color'=>'#bfbfbf',
732
+ ECWD_PLUGIN_PREFIX . '_event_details_text_color'=>'#000000',
733
+ //ECWD_PLUGIN_PREFIX . '_event_details_font_size',
734
+ //events list view
735
+ ECWD_PLUGIN_PREFIX . '_event_list_view_date_bg_color'=>'#10738B',
736
+ ECWD_PLUGIN_PREFIX . '_event_list_view_date_text_color'=>'#ffffff',
737
+ ECWD_PLUGIN_PREFIX . '_event_list_view_date_font_size'=>15,
738
+ //posterboard
739
+ ECWD_PLUGIN_PREFIX . '_event_posterboard_view_date_bg_color'=>'#585858',
740
+ ECWD_PLUGIN_PREFIX . '_event_posterboard_view_date_text_color'=>'#ffffff',
741
+ //pagination
742
+ ECWD_PLUGIN_PREFIX . '_page_numbers_bg_color'=>'#ffffff',
743
+ ECWD_PLUGIN_PREFIX . '_current_page_bg_color'=>'#10738B',
744
+ ECWD_PLUGIN_PREFIX . '_page_number_color'=>'#A5A5A5',
745
+ );
746
+
747
+ if(isset($_REQUEST['theme']) && $_REQUEST['theme']=='reset'){
748
+ $data = json_encode( $default_theme );
749
+ update_post_meta( $post_id, self::THEME_POST_TYPE.'_params', $data );
750
+ //wp_redirect('post.php?post='.$post_id.'&action=edit');
751
+ }
752
+
753
+ include_once( ECWD_DIR . '/views/admin/ecwd-theme-meta.php' );
754
+ }
755
+
756
+ /**
757
+ * Add Themes post meta
758
+ */
759
+ public function venues_cpt_meta() {
760
+ add_meta_box( ECWD_PLUGIN_PREFIX . '_theme_meta', __( 'Venue Location', 'ecwd' ), array(
761
+ $this,
762
+ 'display_venue_meta'
763
+ ), ECWD_PLUGIN_PREFIX . '_venue', 'advanced', 'core' );
764
+ }
765
+
766
+ /**
767
+ * Display Theme post meta
768
+ */
769
+ public function display_venue_meta() {
770
+ $ip_addr = $_SERVER['REMOTE_ADDR'];
771
+ if ( $ip_addr = '127.0.0.1' ) {
772
+ $ip_addr = '37.157.218.77';
773
+ }
774
+
775
+ $url = 'http://www.geoplugin.net/php.gp?ip=' . $ip_addr;
776
+ if ( false == $geoplugin = get_transient( ECWD_PLUGIN_PREFIX . '_ip_' . $ip_addr ) ) {
777
+ $geoplugin = unserialize( file_get_contents( 'http://www.geoplugin.net/php.gp?ip=' . $ip_addr ) );
778
+ set_transient( ECWD_PLUGIN_PREFIX . '_ip_' . $ip_addr, $geoplugin, 12 * 60 * 60 );
779
+ }
780
+ $lat = '';
781
+ $long = '';
782
+ $geoplugin = unserialize( file_get_contents( 'http://www.geoplugin.net/php.gp?ip=' . $ip_addr ) );
783
+
784
+ if ( is_numeric( $geoplugin['geoplugin_latitude'] ) && is_numeric( $geoplugin['geoplugin_longitude'] ) ) {
785
+ $lat = $geoplugin['geoplugin_latitude'];
786
+ $long = $geoplugin['geoplugin_longitude'];
787
+ }
788
+ include_once( ECWD_DIR . '/views/admin/ecwd-venue-meta.php' );
789
+ }
790
+
791
+
792
+ public function save_events() {
793
+ $status = 'error';
794
+ if ( isset( $_POST[ ECWD_PLUGIN_PREFIX . '_event_id' ] ) && isset( $_POST[ ECWD_PLUGIN_PREFIX . '_calendar_id' ] ) && isset( $_POST[ ECWD_PLUGIN_PREFIX . '_action' ] ) ) {
795
+ $event_id = esc_attr( $_POST[ ECWD_PLUGIN_PREFIX . '_event_id' ] );
796
+ $calendar_id = esc_attr( $_POST[ ECWD_PLUGIN_PREFIX . '_calendar_id' ] );
797
+ $event_calendars = get_post_meta( $event_id, ECWD_PLUGIN_PREFIX . '_event_calendars', true );
798
+ if ( ! $event_calendars ) {
799
+ $event_calendars = array();
800
+ }
801
+ if ( $_POST[ ECWD_PLUGIN_PREFIX . '_action' ] == 'delete' ) {
802
+ if ( is_array( $event_calendars ) && in_array( $calendar_id, $event_calendars ) ) {
803
+ unset( $event_calendars[ array_search( $calendar_id, $event_calendars ) ] );
804
+ $status = 'ok';
805
+ }
806
+ } elseif ( esc_attr( $_POST[ ECWD_PLUGIN_PREFIX . '_action' ] ) == 'add' ) {
807
+ if ( is_array( $event_calendars ) && ! in_array( $calendar_id, $event_calendars ) ) {
808
+ $event_calendars[] = $calendar_id;
809
+ $status = 'ok';
810
+ }
811
+
812
+ }
813
+ update_post_meta( $event_id, ECWD_PLUGIN_PREFIX . '_event_calendars', $event_calendars );
814
+ }
815
+ echo json_encode( array( 'status' => $status ) );
816
+ wp_die();
817
+ }
818
+
819
+ public function add_event() {
820
+ $status = 'error';
821
+ $data = '';
822
+ if ( isset( $_POST[ ECWD_PLUGIN_PREFIX . '_calendar_id' ] ) ) {
823
+ $calendar_id = esc_attr( $_POST[ ECWD_PLUGIN_PREFIX . '_calendar_id' ] );
824
+ $new_event = array(
825
+ 'post_type' => ECWD_PLUGIN_PREFIX . '_event',
826
+ 'post_title' => esc_attr( $_POST[ ECWD_PLUGIN_PREFIX . '_event_name' ] )
827
+ );
828
+ $new_event_id = wp_insert_post( $new_event );
829
+ if ( $new_event_id ) {
830
+ update_post_meta( $new_event_id, ECWD_PLUGIN_PREFIX . '_event_date_from', esc_attr( $_POST[ ECWD_PLUGIN_PREFIX . '_event_date_from' ] ) );
831
+ update_post_meta( $new_event_id, ECWD_PLUGIN_PREFIX . '_event_date_to', esc_attr( $_POST[ ECWD_PLUGIN_PREFIX . '_event_date_to' ] ) );
832
+ update_post_meta( $new_event_id, ECWD_PLUGIN_PREFIX . '_event_calendars', array( $calendar_id ) );
833
+ $status = 'success';
834
+ $data = array( 'event_id' => $new_event_id );
835
+ }
836
+ }
837
+ echo json_encode( array( 'status' => $status, 'data' => $data ) );
838
+ wp_die();
839
+ }
840
+
841
+ /**
842
+ * Function to save post meta for the event CPT
843
+ */
844
+ public function save_meta( $post_id, $post ) {
845
+ if ( ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
846
+ return $post_id;
847
+ }
848
+ if ( isset( $_REQUEST['bulk_edit'] ) ) {
849
+ return $post_id;
850
+ }
851
+ if ( wp_is_post_revision( $post_id ) ) {
852
+ return $post_id;
853
+ }
854
+
855
+ $types = array(
856
+ ECWD_PLUGIN_PREFIX . '_calendar',
857
+ ECWD_PLUGIN_PREFIX . '_event',
858
+ ECWD_PLUGIN_PREFIX . '_theme',
859
+ ECWD_PLUGIN_PREFIX . '_venue'
860
+ );
861
+
862
+ // If this isn't a post, don't update it.
863
+ if ( ! in_array( $post->post_type, $types ) ) {
864
+ return $post_id;
865
+ }
866
+ $post_type = get_post_type( $post_id );
867
+ $ecwd_post_meta_fields[ ECWD_PLUGIN_PREFIX . '_calendar' ] = array(
868
+ ECWD_PLUGIN_PREFIX . '_calendar_description',
869
+ ECWD_PLUGIN_PREFIX . '_calendar_id',
870
+ ECWD_PLUGIN_PREFIX . '_calendar_default_year',
871
+ ECWD_PLUGIN_PREFIX . '_calendar_default_month',
872
+ ECWD_PLUGIN_PREFIX . '_calendar_12_hour_time_format',
873
+ ECWD_PLUGIN_PREFIX . '_calendar_theme',
874
+ ECWD_PLUGIN_PREFIX . '_facebook_page_id',
875
+ ECWD_PLUGIN_PREFIX . '_facebook_access_token',
876
+ ECWD_PLUGIN_PREFIX . '_calendar_ical',
877
+ );
878
+ $ecwd_post_meta_fields[ ECWD_PLUGIN_PREFIX . '_event' ] = array(
879
+ ECWD_PLUGIN_PREFIX . '_event_location',
880
+ ECWD_PLUGIN_PREFIX . '_event_venue',
881
+ ECWD_PLUGIN_PREFIX . '_lat_long',
882
+ ECWD_PLUGIN_PREFIX . '_map_zoom',
883
+ ECWD_PLUGIN_PREFIX . '_event_date_from',
884
+ ECWD_PLUGIN_PREFIX . '_event_date_to',
885
+ ECWD_PLUGIN_PREFIX . '_event_url',
886
+ ECWD_PLUGIN_PREFIX . '_event_calendars',
887
+ ECWD_PLUGIN_PREFIX . '_event_organizers',
888
+ ECWD_PLUGIN_PREFIX . '_event_repeat_event',
889
+ ECWD_PLUGIN_PREFIX . '_event_day',
890
+ ECWD_PLUGIN_PREFIX . '_all_day_event',
891
+ ECWD_PLUGIN_PREFIX . '_event_repeat_how',
892
+ ECWD_PLUGIN_PREFIX . '_event_repeat_month_on_days',
893
+ ECWD_PLUGIN_PREFIX . '_event_repeat_year_on_days',
894
+ ECWD_PLUGIN_PREFIX . '_event_repeat_on_the_m',
895
+ ECWD_PLUGIN_PREFIX . '_event_repeat_on_the_y',
896
+ ECWD_PLUGIN_PREFIX . '_monthly_list_monthly',
897
+ ECWD_PLUGIN_PREFIX . '_monthly_week_monthly',
898
+ ECWD_PLUGIN_PREFIX . '_monthly_list_yearly',
899
+ ECWD_PLUGIN_PREFIX . '_monthly_week_yearly',
900
+ ECWD_PLUGIN_PREFIX . '_event_repeat_repeat_until',
901
+ ECWD_PLUGIN_PREFIX . '_event_year_month',
902
+ ECWD_PLUGIN_PREFIX . '_event_video',
903
+ );
904
+
905
+ $ecwd_post_meta_fields[ ECWD_PLUGIN_PREFIX . '_theme' ] = array(
906
+ //general
907
+ ECWD_PLUGIN_PREFIX . '_width',
908
+ ECWD_PLUGIN_PREFIX . '_cal_border_color',
909
+ ECWD_PLUGIN_PREFIX . '_cal_border_width',
910
+ ECWD_PLUGIN_PREFIX . '_cal_border_radius',
911
+ //header
912
+ ECWD_PLUGIN_PREFIX . '_cal_header_color',
913
+ ECWD_PLUGIN_PREFIX . '_cal_header_border_color',
914
+ ECWD_PLUGIN_PREFIX . '_current_year_color',
915
+ ECWD_PLUGIN_PREFIX . '_current_year_font_size',
916
+ ECWD_PLUGIN_PREFIX . '_current_month_color',
917
+ ECWD_PLUGIN_PREFIX . '_current_month_font_size',
918
+ ECWD_PLUGIN_PREFIX . '_next_prev_color',
919
+ ECWD_PLUGIN_PREFIX . '_next_prev_font_size',
920
+ //views
921
+ ECWD_PLUGIN_PREFIX . '_view_tabs_bg_color',
922
+ ECWD_PLUGIN_PREFIX . '_view_tabs_border_color',
923
+ ECWD_PLUGIN_PREFIX . '_view_tabs_current_color',
924
+ ECWD_PLUGIN_PREFIX . '_view_tabs_text_color',
925
+ ECWD_PLUGIN_PREFIX . '_view_tabs_font_size',
926
+ ECWD_PLUGIN_PREFIX . '_view_tabs_current_text_color',
927
+ //search
928
+ ECWD_PLUGIN_PREFIX . '_search_bg_color',
929
+ ECWD_PLUGIN_PREFIX . '_search_icon_color',
930
+ //filter
931
+ ECWD_PLUGIN_PREFIX . '_filter_header_bg_color',
932
+ ECWD_PLUGIN_PREFIX . '_filter_header_left_bg_color',
933
+ ECWD_PLUGIN_PREFIX . '_filter_header_text_color',
934
+ ECWD_PLUGIN_PREFIX . '_filter_header_left_text_color',
935
+ ECWD_PLUGIN_PREFIX . '_filter_bg_color',
936
+ ECWD_PLUGIN_PREFIX . '_filter_border_color',
937
+ ECWD_PLUGIN_PREFIX . '_filter_arrow_color',
938
+ ECWD_PLUGIN_PREFIX . '_filter_reset_text_color',
939
+ ECWD_PLUGIN_PREFIX . '_filter_reset_font_size',
940
+ ECWD_PLUGIN_PREFIX . '_filter_text_color',
941
+ ECWD_PLUGIN_PREFIX . '_filter_font_size',
942
+ ECWD_PLUGIN_PREFIX . '_filter_item_bg_color',
943
+ ECWD_PLUGIN_PREFIX . '_filter_item_border_color',
944
+
945
+ ECWD_PLUGIN_PREFIX . '_filter_item_text_color',
946
+ ECWD_PLUGIN_PREFIX . '_filter_item_font_size',
947
+ //week days
948
+ ECWD_PLUGIN_PREFIX . '_week_days_bg_color',
949
+ ECWD_PLUGIN_PREFIX . '_week_days_border_color',
950
+ ECWD_PLUGIN_PREFIX . '_week_days_text_color',
951
+ ECWD_PLUGIN_PREFIX . '_week_days_font_size',
952
+ //days
953
+ ECWD_PLUGIN_PREFIX . '_cell_bg_color',
954
+ ECWD_PLUGIN_PREFIX . '_cell_weekend_bg_color',
955
+ ECWD_PLUGIN_PREFIX . '_cell_prev_next_bg_color',
956
+ ECWD_PLUGIN_PREFIX . '_cell_border_color',
957
+ ECWD_PLUGIN_PREFIX . '_day_number_bg_color',
958
+ ECWD_PLUGIN_PREFIX . '_day_text_color',
959
+ ECWD_PLUGIN_PREFIX . '_day_font_size',
960
+ ECWD_PLUGIN_PREFIX . '_current_day_cell_bg_color',
961
+ ECWD_PLUGIN_PREFIX . '_current_day_number_bg_color',
962
+ ECWD_PLUGIN_PREFIX . '_current_day_text_color',
963
+ //events
964
+ ECWD_PLUGIN_PREFIX . '_event_title_color',
965
+ ECWD_PLUGIN_PREFIX . '_event_title_font_size',
966
+ ECWD_PLUGIN_PREFIX . '_event_details_bg_color',
967
+ ECWD_PLUGIN_PREFIX . '_event_details_border_color',
968
+ ECWD_PLUGIN_PREFIX . '_event_details_text_color',
969
+ //ECWD_PLUGIN_PREFIX . '_event_details_font_size',
970
+ //events list view
971
+ ECWD_PLUGIN_PREFIX . '_event_list_view_date_bg_color',
972
+ ECWD_PLUGIN_PREFIX . '_event_list_view_date_text_color',
973
+ ECWD_PLUGIN_PREFIX . '_event_list_view_date_font_size',
974
+ //posterboard
975
+ ECWD_PLUGIN_PREFIX . '_event_posterboard_view_date_bg_color',
976
+ ECWD_PLUGIN_PREFIX . '_event_posterboard_view_date_text_color',
977
+ //pagination
978
+ ECWD_PLUGIN_PREFIX . '_page_numbers_bg_color',
979
+ ECWD_PLUGIN_PREFIX . '_current_page_bg_color',
980
+ ECWD_PLUGIN_PREFIX . '_page_number_color',
981
+ );
982
+ $ecwd_post_meta_fields[ ECWD_PLUGIN_PREFIX . '_venue' ] = array(
983
+ ECWD_PLUGIN_PREFIX . '_venue_location',
984
+ ECWD_PLUGIN_PREFIX . '_venue_lat_long',
985
+ ECWD_PLUGIN_PREFIX . '_map_zoom',
986
+ );
987
+
988
+ $ecwd_post_meta_fields[ $post_type ] = apply_filters( $post_type . '_meta', $ecwd_post_meta_fields[ $post_type ] );
989
+
990
+ if ( current_user_can( 'edit_post', $post_id ) ) {
991
+ // Loop through our array and make sure it is posted and not empty in order to update it, otherwise we delete it
992
+ if ( $post_type == ECWD_PLUGIN_PREFIX . '_theme' ) {
993
+ $values = array();
994
+ $data = json_encode( $values );
995
+ update_post_meta( $post_id, $post_type.'_params', $data );
996
+ } else {
997
+ foreach ( $ecwd_post_meta_fields[ $post_type ] as $pmf ) {
998
+ if ( isset( $_POST[ $pmf ] ) && ! empty( $_POST[ $pmf ] ) ) {
999
+ if ( $post_type == ECWD_PLUGIN_PREFIX . '_calendar' ) {
1000
+ if ( $pmf == ECWD_PLUGIN_PREFIX . '_calendar_id' ) {
1001
+ $str = $_POST[ $pmf ];
1002
+ $id = str_replace( 'https://www.google.com/calendar/feeds/', '', $str );
1003
+ $id = str_replace( '/public/basic', '', $id );
1004
+ $id = str_replace( '%40', '@', $id );
1005
+
1006
+ update_post_meta( $post_id, $pmf, trim( $id ) );
1007
+ } else {
1008
+ update_post_meta( $post_id, $pmf, stripslashes( $_POST[ $pmf ] ) );
1009
+ }
1010
+ } else {
1011
+
1012
+ if ( ! is_array( $_POST[ $pmf ] ) ) {
1013
+ $value = stripslashes( $_POST[ $pmf ] );
1014
+ } else {
1015
+ $value = $_POST[ $pmf ];
1016
+ }
1017
+ update_post_meta( $post_id, $pmf, $value );
1018
+
1019
+ }
1020
+ } else {
1021
+ delete_post_meta( $post_id, $pmf );
1022
+ }
1023
+ }
1024
+ }
1025
+ }
1026
+
1027
+
1028
+ return $post_id;
1029
+ }
1030
+
1031
+ public function error_messages( $m ) {
1032
+ global $post;
1033
+
1034
+ return $m;
1035
+ }
1036
+
1037
+ public function calendar_add_column_headers( $defaults ) {
1038
+
1039
+ $new_columns = array(
1040
+ 'cb' => $defaults['cb'],
1041
+ 'calendar-id' => __( 'Calendar ID', 'ecwd' ),
1042
+ 'calendar-sc' => __( 'Calendar Shortcode', 'ecwd' ),
1043
+ );
1044
+
1045
+ return array_merge( $defaults, $new_columns );
1046
+ }
1047
+
1048
+ public function add_column_headers( $defaults ) {
1049
+
1050
+ $new_columns = array(
1051
+ 'cb' => $defaults['cb'],
1052
+ 'event-id' => __( 'Event ID', 'ecwd' )
1053
+ );
1054
+
1055
+ return array_merge( $defaults, $new_columns );
1056
+ }
1057
+
1058
+ /**
1059
+ * Fill out the calendar columns
1060
+ */
1061
+ public function calendar_column_content( $column_name, $post_ID ) {
1062
+
1063
+ switch ( $column_name ) {
1064
+
1065
+ case 'calendar-id':
1066
+ echo $post_ID;
1067
+ break;
1068
+ case 'calendar-sc':
1069
+ echo '<code>[ecwd id="' . $post_ID . '"]</code>';
1070
+ break;
1071
+
1072
+ }
1073
+ }
1074
+
1075
+ /**
1076
+ * Fill out the events columns
1077
+ */
1078
+ public function event_column_content( $column_name, $post_ID ) {
1079
+ switch ( $column_name ) {
1080
+ case 'event-id':
1081
+ echo $post_ID;
1082
+ break;
1083
+ }
1084
+ }
1085
+
1086
+ function create_taxonomies() {
1087
+ // Add new taxonomy, make it hierarchical (like categories)
1088
+ $labels = array(
1089
+ 'name' => _x( 'Event Categories', 'taxonomy general name' ),
1090
+ 'singular_name' => _x( 'Event Category', 'taxonomy singular name' ),
1091
+ 'search_items' => __( 'Search Event Categories' ),
1092
+ 'all_items' => __( 'All Event Categories' ),
1093
+ 'parent_item' => __( 'Parent Category' ),
1094
+ 'parent_item_colon' => __( 'Parent Category:' ),
1095
+ 'edit_item' => __( 'Edit Category' ),
1096
+ 'update_item' => __( 'Update Category' ),
1097
+ 'add_new_item' => __( 'Add New Event Category' ),
1098
+ 'new_item_name' => __( 'New Event Category Name' ),
1099
+ 'menu_name' => __( 'Event Categories' ),
1100
+ );
1101
+
1102
+ $args = array(
1103
+ 'hierarchical' => true,
1104
+ 'labels' => $labels,
1105
+ 'show_ui' => true,
1106
+ 'show_admin_column' => true,
1107
+ 'query_var' => true,
1108
+ 'rewrite' => array( 'slug' => ECWD_PLUGIN_PREFIX . '_event_category' ),
1109
+ );
1110
+ //register_taxonomy_for_object_type(ECWD_PLUGIN_PREFIX.'_event_category', array(ECWD_PLUGIN_PREFIX.'_event'));
1111
+ register_taxonomy( ECWD_PLUGIN_PREFIX . '_event_category', array( ECWD_PLUGIN_PREFIX . '_event' ), $args );
1112
+
1113
+ register_taxonomy(
1114
+ ECWD_PLUGIN_PREFIX . '_event_tag',
1115
+ ECWD_PLUGIN_PREFIX . '_event',
1116
+ array(
1117
+ 'hierarchical' => false,
1118
+ 'label' => __( 'Event Tags', 'ecwd' ),
1119
+ 'singular_name' => __( 'Event Tag', 'ecwd' ),
1120
+ 'rewrite' => true,
1121
+ 'query_var' => true
1122
+ )
1123
+ );
1124
+ }
1125
+
1126
+ /*
1127
+ * Add metas to events categories
1128
+ *
1129
+ * */
1130
+
1131
+
1132
+ public function add_categories_metas( $term ) {
1133
+ $tax = $this->tax;
1134
+ $uploadID = '';
1135
+ $icon = '';
1136
+ $term_id = '';
1137
+ $term_meta = array();
1138
+ $term_meta['color'] = '';
1139
+ $term_meta[ ECWD_PLUGIN_PREFIX . '_taxonomy_image' ] = '';
1140
+ if ( $term && is_object( $term ) ) {
1141
+ $term_id = $term->term_id;
1142
+ $term_meta = get_option( "{$this->tax}_$term_id" );
1143
+ $term_meta[ ECWD_PLUGIN_PREFIX . '_taxonomy_image' ] = $this->get_image_url( $term_meta[ ECWD_PLUGIN_PREFIX . '_taxonomy_image' ] );
1144
+ //var_dump($term_meta);
1145
+
1146
+ }
1147
+ include_once( ECWD_DIR . '/views/admin/ecwd-event-cat-meta.php' );
1148
+ }
1149
+
1150
+
1151
+ public function get_image_url( $url, $size = null, $return_placeholder = false ) {
1152
+
1153
+
1154
+ $taxonomy_image_url = $url;
1155
+ if ( ! empty( $taxonomy_image_url ) ) {
1156
+ $attachment_id = $this->get_attachment_id_by_url( $taxonomy_image_url );
1157
+ if ( ! empty( $attachment_id ) ) {
1158
+ if ( empty( $size ) ) {
1159
+ $size = 'full';
1160
+ }
1161
+ $taxonomy_image_url = wp_get_attachment_image_src( $attachment_id, $size );
1162
+ $taxonomy_image_url = $taxonomy_image_url[0];
1163
+ }
1164
+ }
1165
+
1166
+ if ( $return_placeholder ) {
1167
+ return ( $taxonomy_image_url != '' ) ? $taxonomy_image_url : self::IMAGE_PLACEHOLDER;
1168
+ } else {
1169
+ return $taxonomy_image_url;
1170
+ }
1171
+ }
1172
+
1173
+
1174
+ public function get_attachment_id_by_url( $image_src ) {
1175
+ global $wpdb;
1176
+ $query = "SELECT ID FROM {$wpdb->posts} WHERE guid = '$image_src'";
1177
+ $id = $wpdb->get_var( $query );
1178
+
1179
+ return ( ! empty( $id ) ) ? $id : null;
1180
+ }
1181
+
1182
+
1183
+ public function save_categories_metas( $term_id ) {
1184
+ //var_dump($_POST); die;
1185
+ if ( isset( $_POST[ $this->tax ] ) ) {
1186
+
1187
+ $t_id = $term_id;
1188
+ $term_meta = get_option( "{$this->tax}_$t_id" );
1189
+ $cat_keys = array_keys( $_POST[ $this->tax ] );
1190
+ foreach ( $cat_keys as $key ) {
1191
+ if ( isset( $_POST[ $this->tax ][ $key ] ) ) {
1192
+ $term_meta[ $key ] = esc_attr( $_POST[ $this->tax ][ $key ] );
1193
+ }
1194
+ }
1195
+ //save the option array
1196
+ update_option( "{$this->tax}_$t_id", $term_meta );
1197
+ }
1198
+ }
1199
+
1200
+ public function taxonomy_columns( $columns ) {
1201
+ $new_columns = array();
1202
+ $new_columns['cb'] = $columns['cb'];
1203
+ $new_columns['thumb'] = __( 'Icon', 'ecwd' );
1204
+ $new_columns['color'] = __( 'Color', 'ecwd' );
1205
+
1206
+ unset( $columns['cb'] );
1207
+
1208
+ return array_merge( $new_columns, $columns );
1209
+ }
1210
+
1211
+ public function taxonomy_column( $columns, $column, $id ) {
1212
+ $term_meta = get_option( "{$this->tax}_$id" );
1213
+ if ( ! $term_meta ) {
1214
+ $term_meta = array(
1215
+ ECWD_PLUGIN_PREFIX . '_taxonomy_image' => '',
1216
+ 'color' => ''
1217
+ );
1218
+ }
1219
+ if ( $column == 'thumb' ) {
1220
+ $term_meta[ ECWD_PLUGIN_PREFIX . '_taxonomy_image' ] = $this->get_image_url( $term_meta[ ECWD_PLUGIN_PREFIX . '_taxonomy_image' ] );
1221
+ $columns = '<div><img src="' . $this->get_image_url( $term_meta[ ECWD_PLUGIN_PREFIX . '_taxonomy_image' ], null, true ) . '" alt="' . __( 'Icon', 'ecwd' ) . '" class="wp-post-image ecwd_icon" /></div>';
1222
+
1223
+ }
1224
+ if ( $column == 'color' ) {
1225
+ $columns .= '<div><div style="width: 10px; height: 10px; background-color: ' . $term_meta['color'] . '" ></div></div>';
1226
+ }
1227
+
1228
+ return $columns;
1229
+ }
1230
+
1231
+
1232
+ public function get_ecwd_calendars() {
1233
+ $args = array(
1234
+ 'numberposts' => - 1,
1235
+ 'post_type' => ECWD_PLUGIN_PREFIX . '_calendar'
1236
+ );
1237
+ $calendars = get_posts( $args );
1238
+
1239
+ return $calendars;
1240
+
1241
+ }
1242
+
1243
+ public function delete_transient() {
1244
+ try {
1245
+ $calendars = $this->get_ecwd_calendars();
1246
+ foreach ( $calendars as $calendar ) {
1247
+ $ecwd_facebook_page_id = get_post_meta( $calendar->ID, ECWD_PLUGIN_PREFIX . '_facebook_page_id', true );
1248
+ $ecwd_calendar_id = get_post_meta( $calendar->ID, ECWD_PLUGIN_PREFIX . '_calendar_id', true );
1249
+ $ecwd_calendar_ical = get_post_meta( $calendar->ID, ECWD_PLUGIN_PREFIX . '_calendar_ical', true );
1250
+ if ( $ecwd_facebook_page_id ) {
1251
+ delete_transient( substr( ECWD_PLUGIN_PREFIX . '_calendar_' . $ecwd_facebook_page_id, 0, 30 ) );
1252
+ }
1253
+ if ( $ecwd_calendar_id ) {
1254
+ delete_transient( substr( ECWD_PLUGIN_PREFIX . '_calendar_' . $ecwd_calendar_id, 0, 30 ) );
1255
+ }
1256
+ if ( $ecwd_calendar_ical ) {
1257
+ delete_transient( substr( ECWD_PLUGIN_PREFIX . '_calendar_' . $ecwd_calendar_ical, 0, 30 ) );
1258
+ }
1259
+ }
1260
+
1261
+ return true;
1262
+ } catch ( Exception $e ) {
1263
+ //add log
1264
+ return false;
1265
+ }
1266
+ }
1267
+
1268
+ public static function get_instance() {
1269
+ if ( null == self::$instance ) {
1270
+ self::$instance = new self;
1271
+ }
1272
+
1273
+ return self::$instance;
1274
+ }
1275
+ }
1276
+
includes/ecwd-display-class.php ADDED
@@ -0,0 +1,884 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Class ECWD_Display
5
+ */
6
+ class ECWD_Display {
7
+
8
+ private $events, $merged_events, $goole_events, $date, $month, $year, $day;
9
+
10
+
11
+ public function __construct( $ids, $title_text = null, $sort_order = 'asc', $date = '', $page = 1, $search_params = array(), $displays = null, $filters = null, $page_items = 5, $event_search = 'yes', $display) {
12
+ $this->id = $ids;
13
+ $this->title = $title_text;
14
+ $this->sort = $sort_order;
15
+ $this->merged_events = array();
16
+ $this->search = $search_params;
17
+ $this->displays = ! is_array( $displays ) ? explode( ',', $displays ) : $displays;
18
+ $this->filters = ! is_array( $filters ) ? explode( ',', $filters ) : $filters;
19
+ $this->page_items = $page_items;
20
+ $this->event_search = $event_search;
21
+ //$this->date = $date;
22
+ $this->page = $page;
23
+
24
+ if($display) {
25
+ $this->display = $display;
26
+ }else{
27
+ $this->display = 'full';
28
+ }
29
+
30
+ if ( isset( $_REQUEST['date'] ) ) {
31
+ $date = $_REQUEST['date'];
32
+ $date = date( 'Y-n-j', strtotime( $date ) );
33
+
34
+ }
35
+ if ( $date == '' && ! isset( $_REQUEST['date'] ) ) {
36
+ $date = date( 'Y-n-j' );
37
+ }
38
+
39
+ $date = date( 'Y-n-t', strtotime( $date ) ); // format the date for parsing
40
+ $date_part = explode( '-', $date ); // separate year/month/day
41
+ $year = $date_part[0];
42
+ $month = $date_part[1];
43
+ $day = $date_part[2];
44
+ if ( isset( $_REQUEST['y'] ) && $_REQUEST['y'] != '' ) {
45
+ $year = $_REQUEST['y'];
46
+ } // if year is set in querystring it takes precedence
47
+ if ( isset( $_REQUEST['m'] ) && $_REQUEST['m'] != '' ) {
48
+ $month = $_REQUEST['m'];
49
+ } // if month is set in querystring it takes precedence
50
+ if ( isset( $_REQUEST['d'] ) && $_REQUEST['d'] != '' ) {
51
+ $day = $_REQUEST['d'];
52
+ } // if day is set in querystring it takes precedence
53
+
54
+ if ( $year == '' ) {
55
+ $year = date( 'Y' );
56
+ }
57
+ if ( $month == '' ) {
58
+ $month = date( 'n' ); // set to january if year is known
59
+ }
60
+ if ( $day == '' ) {
61
+ $day = date( 'j' ); // set to the 1st is year and month is known
62
+ }
63
+ $this->date = $date;
64
+ $this->month = (int) $month;
65
+ $this->year = (int) $year;
66
+ $this->day = (int) $day;
67
+
68
+ if ( $this->id ) {
69
+ $this->get_events();
70
+ }
71
+
72
+ }
73
+
74
+ public function get_events() {
75
+
76
+ //get events by calendars
77
+ $date = $this->date;
78
+ if ( ! $this->date ) {
79
+ $this->date = $date = date( 'Y-m-t' );
80
+ }
81
+
82
+
83
+ if (( isset( $_REQUEST['t']) && $_REQUEST['t'] == 'week') || $this->display=='week') {
84
+ $this->date=$date = date('Y-m-t', strtotime( date( "Y-m-d", strtotime( $date ) ) . " + 1 week" ));
85
+
86
+ $this->year = date('Y', strtotime($this->date));
87
+ $this->month = date('m', strtotime($this->date));
88
+
89
+ }
90
+
91
+ $query = ( isset( $this->search['query'] ) ? $this->search['query'] : '' );
92
+
93
+ foreach ( $this->id as $id ) {
94
+ $ecwd_events_title = array();
95
+ if ( ! is_array( $this->search ) || count( $this->search ) == 0 ) {
96
+ $args = array(
97
+ 'numberposts' => - 1,
98
+ 'post_type' => ECWD_PLUGIN_PREFIX . '_event',
99
+ 'meta_query' => array(
100
+ array(
101
+ 'key' => ECWD_PLUGIN_PREFIX . '_event_calendars',
102
+ 'value' => serialize( strval( $id ) ),
103
+ 'compare' => 'LIKE'
104
+ ),
105
+ array(
106
+ 'key' => ECWD_PLUGIN_PREFIX . '_event_date_from',
107
+ 'value' => $date,
108
+ 'compare' => '<=',
109
+ 'type' => 'DATE'
110
+ ),
111
+
112
+ ),
113
+ 'meta_key' => ECWD_PLUGIN_PREFIX . '_event_date_from',
114
+ 'orderby' => 'meta_value',
115
+ 'order' => 'ASC'
116
+
117
+ );
118
+ } else {
119
+ $ecwd_events_title_query = 'post_type=ecwd_event';
120
+ $organizers_query = array();
121
+ if ( $query != '' ) {
122
+ $ecwd_events_title_query .= '&s=' . $query;
123
+
124
+ $metaquery = new WP_Query( 's=' . $query . '&post_type=ecwd_organizer' );
125
+ $organizers = $metaquery->get_posts();
126
+
127
+ $organizers_query['relation'] = 'OR';
128
+
129
+ foreach ( $organizers as $organizer ) {
130
+ $organizers_query[] = array(
131
+ 'key' => ECWD_PLUGIN_PREFIX . '_event_organizers',
132
+ 'value' => serialize( strval( $organizer->ID ) ),
133
+ 'compare' => 'LIKE'
134
+ );
135
+
136
+ }
137
+ $organizers_query[] = array(
138
+ 'key' => ECWD_PLUGIN_PREFIX . '_event_location',
139
+ 'value' => $query,
140
+ 'compare' => 'LIKE'
141
+ );
142
+ }
143
+
144
+ $tax_query = array();
145
+ $organizers_ids = array();
146
+ $venue_query = array();;
147
+ if ( isset( $this->search['categories'] ) && $this->search['categories'] !== 0 ) {
148
+ $tax_query[] =
149
+ array(
150
+ 'taxonomy' => ECWD_PLUGIN_PREFIX . '_event_category',
151
+ 'terms' => $this->search['categories'],
152
+
153
+ );
154
+ }
155
+ if ( isset( $this->search['tags'] ) && $this->search['tags'] > 0 ) {
156
+ $tax_query[] =
157
+ array(
158
+ 'taxonomy' => 'ecwd_event_tag',
159
+ 'terms' => $this->search['tags'],
160
+
161
+ );
162
+ }
163
+ if ( isset( $this->search['venues'] ) && $this->search['venues'] > 0 ) {
164
+ $venue_query['relation'] = 'OR';
165
+ foreach ( $this->search['venues'] as $venue ) {
166
+ $venue_query[] = array(
167
+ 'key' => ECWD_PLUGIN_PREFIX . '_event_venue',
168
+ 'value' => $venue
169
+ );
170
+
171
+ }
172
+
173
+ }
174
+ if ( isset( $this->search['organizers'] ) && $this->search['organizers'] !== 0 ) {
175
+ $organizers_ids['relation'] = 'OR';
176
+ foreach ( $this->search['organizers'] as $organizer ) {
177
+ $organizers_ids[] = array(
178
+ 'key' => ECWD_PLUGIN_PREFIX . '_event_organizers',
179
+ 'value' => serialize( strval( $organizer ) ),
180
+ 'compare' => 'LIKE'
181
+ );
182
+
183
+ }
184
+
185
+ }
186
+
187
+
188
+ $meta_query = array(
189
+ 'relation' => 'AND',
190
+ $organizers_query,
191
+ array(
192
+ 'key' => ECWD_PLUGIN_PREFIX . '_event_calendars',
193
+ 'value' => serialize( strval( $id ) ),
194
+ 'compare' => 'LIKE'
195
+ ),
196
+ array(
197
+ 'key' => ECWD_PLUGIN_PREFIX . '_event_date_from',
198
+ 'value' => $date,
199
+ 'compare' => '<=',
200
+ 'type' => 'DATE'
201
+ ),
202
+ $venue_query,
203
+ $organizers_ids
204
+
205
+ );
206
+ $args = array(
207
+ 'numberposts' => - 1,
208
+ 'post_type' => ECWD_PLUGIN_PREFIX . '_event',
209
+ 'relation' => 'AND',
210
+ 'meta_query' => $meta_query,
211
+ 'tax_query' => $tax_query,
212
+ 'meta_key' => ECWD_PLUGIN_PREFIX . '_event_date_from',
213
+ 'orderby' => 'meta_value',
214
+ 'order' => 'ASC'
215
+
216
+ );
217
+
218
+ if ( $query && $query !== '' ) {
219
+ try {
220
+ $ecwd_events_title = new WP_Query( $ecwd_events_title_query );
221
+ $ecwd_events_title = $ecwd_events_title->get_posts();
222
+ } catch ( Exception $e ) {
223
+ $ecwd_events_title = array();
224
+ }
225
+
226
+ }
227
+ wp_reset_query();
228
+ }
229
+ try {
230
+ $ecwd_events = get_posts( $args );
231
+ } catch ( Exception $e ) {
232
+ $ecwd_events = array();
233
+ }
234
+
235
+ $ecwd_events += $ecwd_events_title;
236
+ wp_reset_query();
237
+ $events = array();
238
+ foreach ( $ecwd_events as $ecwd_event ) {
239
+ $term_metas = '';
240
+ $categories = get_the_terms( $ecwd_event->ID, ECWD_PLUGIN_PREFIX . '_event_category' );
241
+ if ( is_array( $categories ) ) {
242
+ $ci = 0;
243
+ foreach ( $categories as $i => $category ) {
244
+ $term_metas[ $ci ] = get_option( "ecwd_event_category_$category->term_id" );
245
+ $term_metas[ $ci ]['id'] = $category->term_id;
246
+ $term_metas[ $ci ]['name'] = $category->name;
247
+ $term_metas[ $ci ]['slug'] = $category->slug;
248
+ $ci ++;
249
+ }
250
+ }
251
+ $ecwd_event_metas = get_post_meta( $ecwd_event->ID, '', true );
252
+ $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_event_url' ] = array( 0 => '' );
253
+ if ( ! isset( $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_event_location' ] ) ) {
254
+ $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_event_location' ] = array( 0 => '' );
255
+ }
256
+ if ( ! isset( $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_lat_long' ] ) ) {
257
+ $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_lat_long' ] = array( 0 => '' );
258
+ }
259
+ if ( ! isset( $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_event_date_to' ] ) ) {
260
+ $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_event_date_to' ] = array( 0 => '' );
261
+ }
262
+ if ( ! isset( $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_event_date_from' ] ) ) {
263
+ $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_event_date_from' ] = array( 0 => '' );
264
+ }
265
+
266
+ $permalink = get_permalink( $ecwd_event->ID );
267
+ if ( isset( $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_event_calendars' ][0] ) ) {
268
+ if ( is_serialized( $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_event_calendars' ][0] ) ) {
269
+ $event_calendar_ids = unserialize( $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_event_calendars' ][0] );
270
+ } else {
271
+ $event_calendar_ids = $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_event_calendars' ][0];
272
+ }
273
+ //var_dump($term_metas);
274
+ if ( in_array( $this->id[0], $event_calendar_ids ) ) {
275
+ $events[ $ecwd_event->ID ] = new ECWD_Event( $ecwd_event->ID, $id, $ecwd_event->post_title, $ecwd_event->post_content, $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_event_location' ][0], $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_event_date_from' ][0], $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_event_date_to' ][0], $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_event_url' ][0], $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_lat_long' ][0], $permalink, $ecwd_event, $term_metas, $ecwd_event_metas );
276
+ }
277
+ }
278
+ }
279
+
280
+ $this->merged_events += $events;
281
+ //$this->merged_events += $events;
282
+ $this->get_event_days();
283
+ }
284
+
285
+ }
286
+
287
+ /**
288
+ * Comparison function for use when sorting merged event data (with usort)
289
+ */
290
+ function compare( $event1, $event2 ) {
291
+ // //Sort ascending or descending
292
+ // if ('asc' == $this->sort)
293
+ // return $event1->start_time - $event2->start_time;
294
+ //
295
+ // return $event2->start_time - $event1->start_time;
296
+ }
297
+
298
+ /**
299
+ * Returns array of days with events, with sub-arrays of events for that day
300
+ */
301
+ public function get_event_days( $events = '', $current_month = 1 ) {
302
+ if ( ! $events ) {
303
+ $events = $this->merged_events;
304
+
305
+ }
306
+
307
+
308
+ foreach ( $events as $id => $arr ) {
309
+
310
+ if ( is_int( $arr->start_time ) ) {
311
+ $start_date = date( 'Y-m-d', $arr->start_time );
312
+ $end_date = date( 'Y-m-d', $arr->end_time );
313
+ $start_time = date( 'H:i', $arr->start_time );
314
+ $end_time = date( 'H:i', $arr->end_time );
315
+ } else {
316
+ $start_date = date( 'Y-m-d', strtotime( $arr->start_time ) );
317
+ $end_date = date( 'Y-m-d', strtotime( $arr->end_time ) );
318
+ $start_time = date( 'H:i', strtotime( $arr->start_time ) );
319
+ $end_time = date( 'H:i', strtotime( $arr->end_time ) );
320
+ }
321
+ $arr = (array) $arr;
322
+ $from = $start_date;
323
+ $to = $end_date;
324
+ $starttime = $start_time;
325
+ $endtime = $end_time;
326
+ $venue = '';
327
+ $color = array_key_exists( 'color', $arr ) ? $arr['color'] : '';
328
+ $title = array_key_exists( 'title', $arr ) ? $arr['title'] : '';
329
+ $details = array_key_exists( 'description', $arr ) ? $arr['description'] : '';
330
+ $location = array_key_exists( 'location', $arr ) ? $arr['location'] : '';
331
+ $link = array_key_exists( 'link', $arr ) ? $arr['link'] : '';
332
+ $permalink = array_key_exists( 'permalink', $arr ) ? $arr['permalink'] : '';
333
+ $latlong = array_key_exists( 'permalink', $arr ) ? $arr['latlong'] : '';
334
+ $id = $id;
335
+ $terms = array_key_exists( 'terms', $arr ) ? $arr['terms'] : '';
336
+ $post = array_key_exists( 'post', $arr ) ? $arr['post'] : '';
337
+ $metas = array_key_exists( 'metas', $arr ) ? $arr['metas'] : '';
338
+ if ( $metas && isset( $metas[ ECWD_PLUGIN_PREFIX . '_event_venue' ][0] ) && $metas[ ECWD_PLUGIN_PREFIX . '_event_venue' ][0] ) {
339
+ $venue_post = get_post( $metas[ ECWD_PLUGIN_PREFIX . '_event_venue' ][0] );
340
+ if ( $venue_post ) {
341
+ $venue['name'] = $venue_post->post_title;
342
+ $venue['id'] = $venue_post->ID;
343
+ $venue['permalink'] = get_permalink( $venue_post->ID );
344
+ }
345
+ }
346
+ //echo $title.'---'.$starttime.'---'.$arr['metas']['ecwd_all_day_event'][0].'<br />'; die;
347
+ $organizers = array();
348
+ $organizersIDs = array();
349
+ if ( $metas && isset( $metas[ ECWD_PLUGIN_PREFIX . '_event_organizers' ][0] ) ) {
350
+ $organizers_ids = unserialize( $metas[ ECWD_PLUGIN_PREFIX . '_event_organizers' ][0] );
351
+ foreach ( $organizers_ids as $organizer_id ) {
352
+ if ( $organizer_id ) {
353
+ $opost = get_post( $organizer_id );
354
+ if ( $opost ) {
355
+ $organizers[] = array(
356
+ 'id' => $opost->ID,
357
+ 'name' => $opost->post_title,
358
+ 'permalink' => get_permalink( $opost->ID )
359
+ );
360
+ $organizersIDs[] = $opost->ID;
361
+ }
362
+ }
363
+ }
364
+ }
365
+ if ( isset( $terms['0']['color'] ) ) {
366
+ $color = $terms['0']['color'];
367
+ } else {
368
+ $color = '';
369
+ }
370
+ $catIds = array();
371
+ if ( $terms ) {
372
+ foreach ( $terms as $term ) {
373
+ if ( isset( $term['id'] ) ) {
374
+ $catIds[] = $term['id'];
375
+ }
376
+ }
377
+ }
378
+ if ( isset( $this->search['categories'] ) && $this->search['categories'] > 0 ) {
379
+ if ( ! array_intersect( $this->search['categories'], $catIds ) ) {
380
+ continue;
381
+ };
382
+
383
+ }
384
+ //echo '<br />';
385
+
386
+ if ( isset( $this->search['venues'] ) && $this->search['venues'] > 0 ) {
387
+ if ( ! isset( $metas[ ECWD_PLUGIN_PREFIX . '_event_venue' ][0] ) || ! count( $venue ) ) {
388
+ continue;
389
+ } else {
390
+ if ( ! in_array( $venue['id'], $this->search['venues'] ) ) {
391
+ continue;
392
+ }
393
+ }
394
+ }
395
+ if ( isset( $this->search['organizers'] ) && $this->search['organizers'] > 0 ) {
396
+ if ( ! array_intersect( $this->search['organizers'], $organizersIDs ) ) {
397
+ continue;
398
+ };
399
+ }
400
+ $weekdays = array( 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday' );
401
+ if ( isset( $this->search['weekdays'] ) && $this->search['weekdays'] > 0 ) {
402
+ $weekdays = $this->search['weekdays'];
403
+ }
404
+
405
+ if ( $metas && isset( $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_event' ][0] ) && $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_event' ][0] !== 'no_repeat' && $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_event' ][0] != '' ) {
406
+ $event_week_last_day = '';
407
+ if ( $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_event' ][0] == 'weekly' ) {
408
+
409
+ if ( isset( $metas[ ECWD_PLUGIN_PREFIX . '_event_day' ][0] ) && $metas[ ECWD_PLUGIN_PREFIX . '_event_day' ][0] != '' ) {
410
+ if(is_serialized($metas[ ECWD_PLUGIN_PREFIX . '_event_day' ][0])) {
411
+ $days = unserialize( $metas[ ECWD_PLUGIN_PREFIX . '_event_day' ][0] );
412
+ }elseif(is_array($metas[ ECWD_PLUGIN_PREFIX . '_event_day' ][0])){
413
+ $days = $metas[ ECWD_PLUGIN_PREFIX . '_event_day' ][0];
414
+ }
415
+ } else {
416
+ $days = array( strtolower( date( 'l', strtotime( $from ) ) ) );
417
+ }
418
+ $until = ( isset( $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_repeat_until' ][0] ) ? $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_repeat_until' ][0] : $to );
419
+ $how = ( isset( $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_how' ][0] ) ? $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_how' ][0] : 1 );
420
+ if ( count( $days ) ) {
421
+ $event_week_last_day = $days[ count( $days ) - 1 ];
422
+ }
423
+ $eventdays = $this->dateDiff( $from, $until );
424
+ $eventdayslong = $this->dateDiff( $from, $to );
425
+ if ( $eventdays < 0 ) {
426
+ continue;
427
+ }
428
+ $from_date = $from;
429
+ for ( $i = 0; $i <= $eventdays; $i ++ ) {
430
+ $eventdate = strtotime( date( "Y-m-d", strtotime( $from_date ) ) . " +" . $i . " day" );
431
+ $week_day = strtolower( date( 'l', $eventdate ) );
432
+ $eventdate = date( "Y-n-j", $eventdate );
433
+ if (is_array($days) && in_array( $week_day, $days ) ) {
434
+ if ( $how > 1 && $week_day == $event_week_last_day ) {
435
+ $from_date = strtotime( ( date( "Y-m-d", ( strtotime( $from_date ) ) ) . " +" . ( ( $how * 7 ) - 7 ) . " days" ) );
436
+ $from_date = date( 'Y-m-d', $from_date );
437
+ $next_week = date( "Y-m-d", strtotime( 'next monday', strtotime( $from_date ) ) );
438
+ }
439
+ $from = $eventdate;
440
+ if ( strtotime( $until ) >= strtotime( date( 'Y-m-d', strtotime( $from ) ) ) ) {
441
+
442
+ // if ($week_day == $event_week_last_day) {
443
+ // $from_date = strtotime((date("Y-m-d", (strtotime($from_date))) . " +" . (($how * 7) - 7) . " days"));
444
+ // //$next_week = (date("Y-m-d", (strtotime($from_date))) . " next monday");
445
+ // $next_week = date("Y-m-d",strtotime('next monday', $from_date));
446
+ // echo $week_day.'----'.$date.'-----'.$next_week.'<br />';
447
+ // $from_date = date('Y-m-d', strtotime($next_week));
448
+ //
449
+ // $from = $date;
450
+ // $to = date('Y-m-d', strtotime($from . ' + ' . $eventdayslong . ' days'));
451
+ // }
452
+
453
+ $to = date( 'Y-m-d', strtotime( $from . ' + ' . $eventdayslong . ' days' ) );
454
+ if ( ! $current_month || ( strtotime( $from ) <= strtotime( date( 'Y-m-t', strtotime( $this->date ) ) ) && strtotime( $from ) >= strtotime( $this->year . '-' . $this->month . '-1' ) && in_array( strtolower( date( 'l', strtotime( $from ) ) ), $weekdays ) ) ) {
455
+ $this->events[] = array(
456
+ 'color' => $color,
457
+ 'title' => $title,
458
+ 'link' => $link,
459
+ 'date' => $eventdate,
460
+ 'from' => $from,
461
+ 'to' => $to,
462
+ 'id' => $id,
463
+ 'starttime' => $starttime,
464
+ 'endtime' => $endtime,
465
+ 'details' => $details,
466
+ 'location' => $location,
467
+ 'permalink' => $permalink,
468
+ 'latlong' => $latlong,
469
+ 'terms' => $terms,
470
+ 'metas' => $metas,
471
+ 'all_day_event' => ( isset( $metas[ ECWD_PLUGIN_PREFIX . '_all_day_event' ][0] ) && $metas[ ECWD_PLUGIN_PREFIX . '_all_day_event' ][0] == 1 ) ? 1 : 0,
472
+ 'venue' => $venue,
473
+ 'organizers' => $organizers,
474
+ 'post' => $post
475
+ );
476
+ }
477
+
478
+ }
479
+ }
480
+ //if(in_array())
481
+ }
482
+ } elseif ( $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_event' ][0] == 'daily' ) {
483
+ $until = ( isset( $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_repeat_until' ][0] ) ? $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_repeat_until' ][0] : $to );
484
+ $how = ( isset( $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_how' ][0] ) ? $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_how' ][0] : 1 );
485
+ $eventdays = $this->dateDiff( $from, $until );
486
+ $eventdayslong = $this->dateDiff( $from, $to );
487
+ if ( $eventdays < 0 ) {
488
+ continue;
489
+ }
490
+ $from_date = $from;
491
+ for ( $i = 0; $i <= $eventdays; $i ++ ) {
492
+ $date = strtotime( date( "Y-m-d", strtotime( $from_date ) ) . " +" . $i . " day" );
493
+ $date = date( "Y-n-j", $date );
494
+
495
+ if ( strtotime( $until ) >= strtotime( date( 'Y-m-d', strtotime( $date ) ) ) ) {
496
+
497
+ $from_date = strtotime( ( date( "Y-m-d", ( strtotime( $from_date ) ) ) . " +" . ( ( $how - 1 ) ) . " days" ) );
498
+ $from_date = date( 'Y-m-d', $from_date );
499
+ $from = $date;
500
+ $to = date( 'Y-m-d', strtotime( $from . ' + ' . $eventdayslong . ' days' ) );
501
+ if ( ! $current_month || ( strtotime( $from ) <= strtotime( date( 'Y-m-t', strtotime( $this->date ) ) ) && strtotime( $from ) >= strtotime( $this->year . '-' . $this->month . '-1' ) && in_array( strtolower( date( 'l', strtotime( $from ) ) ), $weekdays ) ) ) {
502
+ $this->events[] = array(
503
+ 'color' => $color,
504
+ 'title' => $title,
505
+ 'link' => $link,
506
+ 'date' => $date,
507
+ 'from' => $from,
508
+ 'to' => $to,
509
+ 'id' => $id,
510
+ 'starttime' => $starttime,
511
+ 'endtime' => $endtime,
512
+ 'details' => $details,
513
+ 'location' => $location,
514
+ 'permalink' => $permalink,
515
+ 'latlong' => $latlong,
516
+ 'terms' => $terms,
517
+ 'metas' => $metas,
518
+ 'all_day_event' => ( isset( $metas[ ECWD_PLUGIN_PREFIX . '_all_day_event' ][0] ) && $metas[ ECWD_PLUGIN_PREFIX . '_all_day_event' ][0] == 1 ) ? 1 : 0,
519
+ 'venue' => $venue,
520
+ 'organizers' => $organizers,
521
+ 'post' => $post
522
+ );
523
+ }
524
+ }
525
+
526
+
527
+ }
528
+ } else if ( $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_event' ][0] == 'monthly' ) {
529
+ $until = ( isset( $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_repeat_until' ][0] ) ? $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_repeat_until' ][0] : $to );
530
+ $how = ( isset( $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_how' ][0] ) ? $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_how' ][0] : 1 );
531
+ $eventdays = $this->dateDiff( $from, $until );
532
+ $eventdayslong = $this->dateDiff( $from, $to );
533
+ $event_from = $from;
534
+ $from_date = $from;
535
+ $repeat_days = isset( $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_month_on_days' ][0] ) ? $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_month_on_days' ][0] : 1;
536
+ $repeat_when = isset( $metas[ ECWD_PLUGIN_PREFIX . '_monthly_list_monthly' ][0] ) ? $metas[ ECWD_PLUGIN_PREFIX . '_monthly_list_monthly' ][0] : false;
537
+ $repeat_day = isset( $metas[ ECWD_PLUGIN_PREFIX . '_monthly_week_monthly' ][0] ) ? $metas[ ECWD_PLUGIN_PREFIX . '_monthly_week_monthly' ][0] : false;
538
+
539
+ $min_date = strtotime( $event_from );
540
+ $max_date = strtotime( "+1 MONTH", strtotime( $until ) );
541
+ if ( $max_date >= $min_date ) {
542
+ $i = 0;
543
+ while ( ( $min_date = strtotime( "+1 MONTH", $min_date ) ) <= $max_date ) {
544
+ //echo date('Y-m-d', $min_date).'----'.date('Y-m-d', $max_date).'<br />';
545
+ $date = strtotime( date( "Y-m-d", strtotime( $event_from ) ) . " +" . $i * $how . " MONTH" );
546
+ if ( $i > 0 ) {
547
+ if ( $repeat_days == 2 && $repeat_day && $repeat_when && date( 'Y-m', strtotime( $event_from ) ) !== date( 'Y-m', $date ) ) {
548
+ $monthyear = date( "F Y", $date );
549
+ $repeat_date = date( 'Y-m-d', strtotime($repeat_when.' '.ucfirst( $repeat_day ).' of '.$monthyear) );
550
+
551
+ $date = strtotime( $repeat_date );
552
+ }
553
+ }
554
+ $date = date( "Y-n-j", $date );
555
+ $i ++;
556
+ if ( strtotime( $until ) >= strtotime( date( 'Y-m-d', strtotime( $date ) ) ) ) {
557
+ $min_date = strtotime( ( date( "Y-m-1", ( strtotime( $date ) ) ) . " +" . ( ( $how ) ) . " month" ) );
558
+ $from_date = strtotime( ( date( "Y-m-1", ( strtotime( $date ) ) ) . " +" . ( ( $how ) ) . " month" ) );
559
+ $eventdays -= 30;
560
+ $from_date = strtotime( ( date( "Y-m-d", $from_date ) . " - 1 day" ) );
561
+
562
+ $from_date = date( 'Y-m-d', $from_date );
563
+ $from = $date;
564
+ $to = strtotime( ( date( "Y-m-d", ( strtotime( $from ) ) ) . " +" . ( $eventdayslong ) . " days" ) );
565
+ $to = date( 'Y-m-d', $to );
566
+ if ( ! $current_month || ( strtotime( $from ) <= strtotime( date( 'Y-m-t', strtotime( $this->date ) ) ) && strtotime( $from ) >= strtotime( $this->year . '-' . $this->month . '-1' ) && in_array( strtolower( date( 'l', strtotime( $from ) ) ), $weekdays ) ) ) {
567
+
568
+ $this->events[] = array(
569
+ 'color' => $color,
570
+ 'title' => $title,
571
+ 'link' => $link,
572
+ 'date' => $date,
573
+ 'from' => $from,
574
+ 'to' => $to,
575
+ 'id' => $id,
576
+ 'starttime' => $starttime,
577
+ 'endtime' => $endtime,
578
+ 'details' => $details,
579
+ 'location' => $location,
580
+ 'permalink' => $permalink,
581
+ 'latlong' => $latlong,
582
+ 'terms' => $terms,
583
+ 'metas' => $metas,
584
+ 'all_day_event' => ( isset( $metas[ ECWD_PLUGIN_PREFIX . '_all_day_event' ][0] ) && $metas[ ECWD_PLUGIN_PREFIX . '_all_day_event' ][0] == 1 ) ? 1 : 0,
585
+ 'venue' => $venue,
586
+ 'organizers' => $organizers,
587
+ 'post' => $post
588
+ );
589
+ }
590
+ }
591
+
592
+ }
593
+ }
594
+
595
+ } else if ( $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_event' ][0] == 'yearly' ) {
596
+
597
+ $until = ( isset( $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_repeat_until' ][0] ) ? $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_repeat_until' ][0] : $to );
598
+ $how = ( isset( $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_how' ][0] ) ? $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_how' ][0] : 1 );
599
+ $eventdays = $this->dateDiff( $from, $until );
600
+ $eventdayslong = $this->dateDiff( $from, $to );
601
+ $event_from = $from;
602
+ $from_date = $from;
603
+ $repeat_days = isset( $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_year_on_days' ][0] ) ? $metas[ ECWD_PLUGIN_PREFIX . '_event_repeat_year_on_days' ][0] : 1;
604
+ $repeat_when = isset( $metas[ ECWD_PLUGIN_PREFIX . '_monthly_list_yearly' ][0] ) ? $metas[ ECWD_PLUGIN_PREFIX . '_monthly_list_yearly' ][0] : false;
605
+ $repeat_day = isset( $metas[ ECWD_PLUGIN_PREFIX . '_monthly_week_yearly' ][0] ) ? $metas[ ECWD_PLUGIN_PREFIX . '_monthly_week_yearly' ][0] : false;
606
+ if(isset($metas[ ECWD_PLUGIN_PREFIX . '_event_year_month' ][0]) && $repeat_days == 2) {
607
+ $month = $metas[ ECWD_PLUGIN_PREFIX . '_event_year_month' ][0];
608
+ $monthName = date( 'F', strtotime( '2015-' . $month . '-1' ) );
609
+ }else {
610
+ $monthName = date( 'F', strtotime( $from_date ) );
611
+ }
612
+ $min_date = strtotime( $event_from );
613
+ $max_date = strtotime( $until );
614
+ $i = 0;
615
+ while ( ( $min_date = strtotime( "+1 YEAR", $min_date ) ) <= $max_date ) {
616
+ $date = strtotime( date( "Y-m-d", strtotime( $event_from ) ) . " +" . $i * $how . " YEAR" );
617
+ if ( $i > 0 ) {
618
+ if ( $repeat_days == 1 ) {
619
+ $monthyear = $monthName . ' ' . date( "d Y", $date );
620
+ $repeat_date = strtotime( date( 'Y-m-d', strtotime( $monthyear ) ) );
621
+ $date = $repeat_date;
622
+
623
+ }
624
+ if ( $repeat_days == 2 && $repeat_day && $repeat_when ) {
625
+ $monthyear = $monthName . ' ' . date( "Y", $date );
626
+ //echo $repeat_when.' '.ucfirst( $repeat_day ).' of '.$monthyear.'<br />';
627
+ $repeat_date = strtotime(date( 'Y-m-d', strtotime($repeat_when.' '.ucfirst( $repeat_day ).' of '.$monthyear) ));
628
+ //$repeat_date = date( 'Y-m-d', strtotime($repeat_when.' '.ucfirst( $repeat_day ).' of '.$monthyear) );
629
+ //don't know why, but "last sunday,last monday... returns last s,m of previous month"
630
+ if ( $repeat_when == 'last' ) {
631
+ $repeat_date = strtotime($repeat_when.' '.ucfirst( $repeat_day ).' of '.$monthyear, strtotime( "+1 MONTH", $repeat_date ));
632
+ }
633
+ $date = $repeat_date ;
634
+
635
+ }
636
+ }
637
+ $date = date( "Y-n-j", $date );
638
+
639
+ $i ++;
640
+ if ( strtotime( $until ) >= strtotime( date( 'Y-m-t', strtotime( $this->date ) ) ) && strtotime( $date ) <= strtotime( $until ) ) {
641
+ $from_date = strtotime( ( date( "Y-m-d", ( strtotime( $from_date ) ) ) . " +" . ( ( $how ) ) . " year" ) );
642
+ $from_date = strtotime( ( date( "Y-m-d", $from_date ) . " - 1 day" ) );
643
+ $from_date = date( 'Y-m-d', $from_date );
644
+ $from = $date;
645
+ $to = strtotime( ( date( "Y-m-d", ( strtotime( $from_date ) ) ) . " +" . ( $eventdayslong ) . " days" ) );
646
+ $to = date( 'Y-m-d', $to );
647
+ if ( ! $current_month || ( strtotime( $from ) <= strtotime( date( 'Y-m-t', strtotime( $this->date ) ) ) && strtotime( $from ) >= strtotime( $this->year . '-' . $this->month . '-1' ) && in_array( strtolower( date( 'l', strtotime( $from ) ) ), $weekdays ) ) ) {
648
+
649
+ $this->events[] = array(
650
+ 'color' => $color,
651
+ 'title' => $title,
652
+ 'link' => $link,
653
+ 'date' => $date,
654
+ 'from' => $from,
655
+ 'to' => $to,
656
+ 'id' => $id,
657
+ 'starttime' => $starttime,
658
+ 'endtime' => $endtime,
659
+ 'details' => $details,
660
+ 'location' => $location,
661
+ 'permalink' => $permalink,
662
+ 'latlong' => $latlong,
663
+ 'terms' => $terms,
664
+ 'metas' => $metas,
665
+ 'all_day_event' => ( isset( $metas[ ECWD_PLUGIN_PREFIX . '_all_day_event' ][0] ) && $metas[ ECWD_PLUGIN_PREFIX . '_all_day_event' ][0] == 1 ) ? 1 : 0,
666
+ 'venue' => $venue,
667
+ 'organizers' => $organizers,
668
+ 'post' => $post
669
+ );
670
+ }
671
+ }
672
+
673
+
674
+ }
675
+
676
+ }
677
+
678
+ } else {
679
+
680
+ $eventdays = $this->dateDiff( $from, $to ); // get the difference in days between the two dates
681
+
682
+ $date = strtotime( date( "Y-m-d", strtotime( $from ) ) );
683
+ $date = date( "Y-n-j", $date );
684
+ if ( ! $current_month || ( strtotime( $from ) <= strtotime( date( 'Y-m-t', strtotime( $this->date ) ) ) && strtotime( $from ) >= strtotime( $this->year . '-' . $this->month . '-1' ) && in_array( strtolower( date( 'l', strtotime( $from ) ) ), $weekdays ) ) ) {
685
+ $this->events[] = array(
686
+ 'color' => $color,
687
+ 'title' => $title,
688
+ 'link' => $link,
689
+ 'date' => $date,
690
+ 'from' => $date,
691
+ 'to' => $to,
692
+ 'id' => $id,
693
+ 'starttime' => $starttime,
694
+ 'endtime' => $endtime,
695
+ 'details' => $details,
696
+ 'location' => $location,
697
+ 'permalink' => $permalink,
698
+ 'latlong' => $latlong,
699
+ 'terms' => $terms,
700
+ 'metas' => $metas,
701
+ 'all_day_event' => ( isset( $metas[ ECWD_PLUGIN_PREFIX . '_all_day_event' ][0] ) && $metas[ ECWD_PLUGIN_PREFIX . '_all_day_event' ][0] == 1 ) ? 1 : 0,
702
+ 'venue' => $venue,
703
+ 'organizers' => $organizers,
704
+ 'post' => $post
705
+ );
706
+ // }
707
+ }
708
+ }
709
+
710
+ }
711
+
712
+
713
+ if ( $this->events ) {
714
+ $this->events = $this->arraySort( $this->events, 'from' );
715
+ }
716
+
717
+ if ( $events ) {
718
+ return $this->events;
719
+ }
720
+ }
721
+
722
+
723
+ function literalDate($timestamp, $weekday) {
724
+ $timestamp = is_numeric($timestamp) ? $timestamp : strtotime($timestamp);
725
+ $month = date('M', $timestamp);
726
+ $ord = 0;
727
+
728
+ while(date('M', ($timestamp = strtotime('-1 week', $timestamp))) == $month) {
729
+ $ord++;
730
+ }
731
+
732
+ $lit = array('first', 'second', 'third', 'fourth', 'fifth');
733
+ return strtolower($lit[$ord].' '.$weekday);
734
+ }
735
+
736
+ /**
737
+ * Return the calendar
738
+ */
739
+ public function get_view( $date = '', $type = '', $widget = 0 ) {
740
+ require_once 'calendar-class.php';
741
+ $categories = get_categories( array( 'taxonomy' => ECWD_PLUGIN_PREFIX . '_event_category' ) );
742
+ $tags = get_terms('ecwd_event_tag', array('hide_empty' => false));
743
+
744
+ //Get events data
745
+ //Generate the calendar markup and return it
746
+ $cal = new Calendar( $type, $date, '', $widget, $this->page_items, $this->page, $this->displays, $this->filters, $this->event_search );
747
+ $search_params = $this->search;
748
+ if ( is_array( $search_params ) && ( ( isset( $search_params['query'] ) && $search_params['query'] !== '' ) || ( isset( $search_params['category'] ) && $search_params['category'] > 0 ) || ( isset( $search_params['tag'] ) && $search_params['tag'] > 0 ) ) || ( isset( $search_params['venue'] ) && $search_params['venue'] > 0 ) || ( isset( $search_params['organizer'] ) && $search_params['organizer'] > 0 ) ) {
749
+ $cal->search_params = $this->search;
750
+ }
751
+ if ( $categories ) {
752
+ $cal->add_terms( 'categories', $categories );
753
+ }
754
+ if ( $tags ) {
755
+ $cal->add_terms( 'tags', $tags );
756
+ }
757
+
758
+ $args = array(
759
+ 'post_type' => ECWD_PLUGIN_PREFIX . '_venue',
760
+ 'post_status' => 'publish',
761
+ 'posts_per_page' => - 1,
762
+ 'ignore_sticky_posts' => 1
763
+ );
764
+ $venues = get_posts( $args );
765
+ if ( $venues ) {
766
+ $cal->add_terms( 'venues', $venues );
767
+ }
768
+ $args = array(
769
+ 'post_type' => ECWD_PLUGIN_PREFIX . '_organizer',
770
+ 'post_status' => 'publish',
771
+ 'posts_per_page' => - 1,
772
+ 'ignore_sticky_posts' => 1
773
+ );
774
+ $organizers = get_posts( $args );
775
+ if ( $organizers ) {
776
+ $cal->add_terms( 'organizers', $organizers );
777
+ }
778
+
779
+ if ( $this->events ) {
780
+
781
+ foreach ( $this->events as $id => $event ) {
782
+ $cal->addEvent( $event );
783
+ }
784
+ }
785
+
786
+ return $cal->showcal();
787
+ }
788
+
789
+
790
+ public function get_countdown( $event_id, $date = '', $display = '', $widget = '' ) {
791
+ $next_event = null;
792
+ $count_down_events = array();
793
+ if ( $this->events ) {
794
+ foreach ( $this->events as $id => $event ) {
795
+ $start = strtotime( $event['from'] . 'T' . $event['starttime'] );
796
+ if ( $start >= strtotime( gmdate( 'Y-m-dTH:i' ) ) ) {
797
+ $count_down_events[ $id ] = $event;
798
+ $next_event = $count_down_events[ $id ];
799
+ break;
800
+ }
801
+ }
802
+ } else {
803
+
804
+ $ecwd_event = get_post( $event_id );
805
+ $term_metas = '';
806
+ if ( $ecwd_event ) {
807
+ $categories = get_the_terms( $ecwd_event->ID, ECWD_PLUGIN_PREFIX . '_event_category' );
808
+ if ( is_array( $categories ) ) {
809
+ foreach ( $categories as $category ) {
810
+ $term_metas = get_option( "ecwd_event_category_$category->term_id" );
811
+ $term_metas['id'] = $category->term_id;
812
+ $term_metas['name'] = $category->name;
813
+ $term_metas['slug'] = $category->slug;
814
+ }
815
+ }
816
+ $ecwd_event_metas = get_post_meta( $ecwd_event->ID, '', true );
817
+ $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_event_url' ] = array( 0 => '' );
818
+ if ( ! isset( $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_event_location' ] ) ) {
819
+ $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_event_location' ] = array( 0 => '' );
820
+ }
821
+ if ( ! isset( $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_lat_long' ] ) ) {
822
+ $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_lat_long' ] = array( 0 => '' );
823
+ }
824
+ if ( ! isset( $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_event_date_to' ] ) ) {
825
+ $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_event_date_to' ] = array( 0 => '' );
826
+ }
827
+ if ( ! isset( $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_event_date_from' ] ) ) {
828
+ $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_event_date_from' ] = array( 0 => '' );
829
+ }
830
+
831
+
832
+ $permalink = get_permalink( $ecwd_event->ID );
833
+
834
+ $events[ $ecwd_event->ID ] = new ECWD_Event( $ecwd_event->ID, '', $ecwd_event->post_title, $ecwd_event->post_content, $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_event_location' ][0], $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_event_date_from' ][0], $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_event_date_to' ][0], $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_event_url' ][0], $ecwd_event_metas[ ECWD_PLUGIN_PREFIX . '_lat_long' ][0], $permalink, $ecwd_event, $term_metas, $ecwd_event_metas );
835
+
836
+ $this->merged_events = $events;
837
+ //$this->merged_events += $events;
838
+ $this->get_event_days( '', 0 );
839
+
840
+ if ( $this->events ) {
841
+ foreach ( $this->events as $id => $event ) {
842
+ $start = strtotime( $event['from'] . 'T' . $event['starttime'] );
843
+ if ( $start >= strtotime( gmdate( 'Y-m-dTH:i' ) ) ) {
844
+ $count_down_events[ $id ] = $event;
845
+ $next_event = $count_down_events[ $id ];
846
+ break;
847
+ }
848
+ }
849
+ }
850
+ }
851
+ }
852
+
853
+ return $next_event;
854
+
855
+ }
856
+
857
+ public function arraySort( $a, $subkey ) {
858
+ foreach ( $a as $k => $v ) {
859
+ $b[ $k ] = strtotime( $v[ $subkey ] . 'T' . $v['starttime'] );
860
+ }
861
+ asort( $b );
862
+ foreach ( $b as $key => $val ) {
863
+ $c[] = $a[ $key ];
864
+ }
865
+
866
+ return $c;
867
+ }
868
+
869
+ public function dateDiff( $beginDate, $endDate ) {
870
+ if ( $endDate == '' ) {
871
+ return 0;
872
+ }
873
+ $fromDate = date( 'Y-n-j', strtotime( $beginDate ) );
874
+ $toDate = date( 'Y-n-j', strtotime( $endDate ) );
875
+ $date_parts1 = explode( '-', $fromDate );
876
+ $date_parts2 = explode( '-', $toDate );
877
+
878
+ $start_date = gregoriantojd( $date_parts1[1], $date_parts1[2], $date_parts1[0] );
879
+ $end_date = gregoriantojd( $date_parts2[1], $date_parts2[2], $date_parts2[0] );
880
+
881
+ return $end_date - $start_date;
882
+ }
883
+
884
+ }
includes/ecwd-event-class.php ADDED
@@ -0,0 +1,231 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Class ECWD_Event
5
+ */
6
+ class ECWD_Event {
7
+
8
+ /**
9
+ * Class constructor
10
+ *
11
+ */
12
+ public function __construct($id, $calendar_id, $title, $description, $location, $start_time, $end_time, $url, $latLong = '', $permalink = '', $event='', $term_metas = '', $metas = '') {
13
+
14
+ $this->event_id = $id;
15
+ $this->calendar_id = $calendar_id;
16
+ $this->title = $title;
17
+ $this->description = $description;
18
+ $this->location = $location;
19
+ $this->start_time = $start_time;
20
+ $this->end_time = $end_time;
21
+ $this->url = $url;
22
+ $this->latlong = $latLong;
23
+ $this->permalink = $permalink;
24
+ $this->post = $event;
25
+ $this->terms = $term_metas;
26
+ $this->metas = $metas;
27
+
28
+
29
+ }
30
+
31
+ /**
32
+ * Returns an array of days (as UNIX timestamps) that this events spans
33
+ */
34
+ public function get_days($event) {
35
+ if ($event->start_time !== null) {
36
+ // echo $this->event_id.'----------'.$event->start_time.'----'.$event->end_time."<br />";
37
+ //Round start date to nearest day
38
+ $start_time = mktime(0, 0, 0, date('m', $event->start_time), date('d', $event->start_time), date('Y', $event->start_time));
39
+
40
+ $days = array();
41
+
42
+ //If multiple day events should be handled, and this event is a multi-day event, add multiple day event to required days
43
+ if ($event->multiple_day_events && ( 'MPD' == $event->day_type || 'MWD' == $event->day_type )) {
44
+ $on_next_day = true;
45
+ $next_day = $start_time;
46
+
47
+ while ($on_next_day) {
48
+ //If the end time of the event is after 00:00 on the next day (therefore, not doesn't end on this day)
49
+ if ($event->end_time > $next_day) {
50
+ $days[] = date('Y-m-d H:i:s', $next_day);
51
+ } else {
52
+ $on_next_day = false;
53
+ }
54
+ $next_day += 86400;
55
+ }
56
+ } else {
57
+ //Add event into array of events for that day
58
+ $days[] = date('Y-m-d H:i:s', $start_time);
59
+ }
60
+ return $days;
61
+ } else {
62
+ return array();
63
+ }
64
+ }
65
+
66
+ /**
67
+ * Returns the markup for this event
68
+ */
69
+ public function get_event_markup($display_type, $num_in_day, $num) {
70
+ //Set the display type (either tooltip or list)
71
+ $this->type = $display_type;
72
+
73
+ //Set which number event this is in day (first in day etc)
74
+ $this->num_in_day = $num_in_day;
75
+
76
+ //Set the position of this event in array of events currently being processed
77
+ $this->pos = $num;
78
+
79
+ $this->time_now = current_time('timestamp');
80
+
81
+ // First check if we use the builder or not
82
+ $use_simple = get_post_meta($this->event->id, ECWD_PLUGIN_PREFIX.'_display_simple', true);
83
+
84
+ if (empty($use_simple)) {
85
+ return $this->use_builder();
86
+ }
87
+
88
+ // Setup the markup to return
89
+ //$display_options = get_option( ECWD_PLUGIN_PREFIX.'_settings_general' );
90
+
91
+ $display_options['display_start'] = get_post_meta($this->event->id, ECWD_PLUGIN_PREFIX.'_display_start', true);
92
+ $display_options['display_start_text'] = get_post_meta($this->event->id, ECWD_PLUGIN_PREFIX.'_display_start_text', true);
93
+ $display_options['display_end'] = get_post_meta($this->event->id, ECWD_PLUGIN_PREFIX.'_display_end', true);
94
+ $display_options['display_end_text'] = get_post_meta($this->event->id, ECWD_PLUGIN_PREFIX.'_display_end_text', true);
95
+ $display_options['display_location'] = get_post_meta($this->event->id, ECWD_PLUGIN_PREFIX.'_display_location', true);
96
+ $display_options['display_location_text'] = get_post_meta($this->event->id, ECWD_PLUGIN_PREFIX.'_display_location_text', true);
97
+ $display_options['display_desc'] = get_post_meta($this->event->id, ECWD_PLUGIN_PREFIX.'_display_description', true);
98
+ $display_options['display_deecwd_text'] = get_post_meta($this->event->id, ECWD_PLUGIN_PREFIX.'_display_description_text', true);
99
+ $display_options['display_deecwd_limit'] = get_post_meta($this->event->id, ECWD_PLUGIN_PREFIX.'_display_description_max', true);
100
+ $display_options['display_link'] = get_post_meta($this->event->id, ECWD_PLUGIN_PREFIX.'_display_link', true);
101
+ $display_options['display_link_text'] = get_post_meta($this->event->id, ECWD_PLUGIN_PREFIX.'_display_link_text', true);
102
+ $display_options['display_separator'] = get_post_meta($this->event->id, ECWD_PLUGIN_PREFIX.'_display_separator', true);
103
+ $display_options['display_link_target'] = get_post_meta($this->event->id, ECWD_PLUGIN_PREFIX.'_display_link_tab', true);
104
+
105
+ $markup = '<p class="ecwd-' . $this->type . '-event">' . esc_html($this->title) . '</p>';
106
+
107
+ $start_end = array();
108
+
109
+ //If start date / time should be displayed, set up array of start date and time
110
+ if (!empty($display_options['display_start']) && 'none' != $display_options['display_start']) {
111
+ $sd = $this->start_time;
112
+ $start_end['start'] = array(
113
+ 'time' => date_i18n($this->event->time_format, $sd),
114
+ 'date' => date_i18n($this->event->date_format, $sd)
115
+ );
116
+ }
117
+
118
+ //If end date / time should be displayed, set up array of end date and time
119
+ if (!empty($display_options['display_end']) && 'none' != $display_options['display_end']) {
120
+ $ed = $this->end_time;
121
+ $start_end['end'] = array(
122
+ 'time' => date_i18n($this->event->time_format, $ed),
123
+ 'date' => date_i18n($this->event->date_format, $ed)
124
+ );
125
+ }
126
+
127
+ //Add the correct start / end, date / time information to $markup
128
+ foreach ($start_end as $start_or_end => $info) {
129
+ $markup .= '<p class="ecwd-' . $this->type . '-' . $start_or_end . '"><span>' . esc_html($display_options['display_' . $start_or_end . '_text']) . '</span> ';
130
+
131
+ if (!empty($display_options['display_' . $start_or_end])) {
132
+ switch ($display_options['display_' . $start_or_end]) {
133
+ case 'time': $markup .= esc_html($info['time']);
134
+ break;
135
+ case 'date': $markup .= esc_html($info['date']);
136
+ break;
137
+ case 'time-date': $markup .= esc_html($info['time'] . $display_options['display_separator'] . $info['date']);
138
+ break;
139
+ case 'date-time': $markup .= esc_html($info['date'] . $display_options['display_separator'] . $info['time']);
140
+ }
141
+ }
142
+
143
+ $markup .= '</p>';
144
+ }
145
+
146
+ //If location should be displayed (and is not empty) add to $markup
147
+ if (!empty($display_options['display_location'])) {
148
+ $event_location = $this->location;
149
+ if ('' != $event_location)
150
+ $markup .= '<p class="ecwd-' . $this->type . '-loc"><span>' . esc_html($display_options['display_location_text']) . '</span> ' . esc_html($event_location) . '</p>';
151
+ }
152
+
153
+ //If description should be displayed (and is not empty) add to $markup
154
+ if (!empty($display_options['display_desc'])) {
155
+ $event_desc = $this->description;
156
+
157
+ if ('' != $event_desc) {
158
+ //Limit number of words of description to display, if required
159
+ if ('' != $display_options['display_deecwd_limit']) {
160
+ preg_match('/([\S]+\s*){0,' . $display_options['display_deecwd_limit'] . '}/', $this->description, $event_desc);
161
+ $event_desc = trim($event_desc[0]);
162
+ }
163
+
164
+ $markup .= '<p class="ecwd-' . $this->type . '-desc"><span>' . $display_options['display_deecwd_text'] . '</span> ' . make_clickable(nl2br(esc_html($event_desc))) . '</p>';
165
+ }
166
+ }
167
+
168
+ //If link should be displayed add to $markup
169
+ if (!empty($display_options['display_link'])) {
170
+ $target = (!empty($display_options['display_link_target']) ? 'target="blank"' : '' );
171
+
172
+ $ctz = get_option('timezone_string');
173
+
174
+ $link = $this->link . (!empty($ctz) ? '&ctz=' . $ctz : '' );
175
+
176
+ $markup .= '<p class="ecwd-' . $this->type . '-link"><a href="' . eecwd_url($link) . '" ' . $target . '>' . esc_html($display_options['display_link_text']) . '</a></p>';
177
+ }
178
+
179
+ return $markup;
180
+ }
181
+
182
+
183
+
184
+
185
+ //Returns the difference between two times in human-readable formats
186
+ function ecwd_human_time_diff($from, $to = '', $limit = 1) {
187
+ $units = array(
188
+ 31556926 => array(__('%s year', 'ecwd'), __('%s years', 'ecwd')),
189
+ 2629744 => array(__('%s month', 'ecwd'), __('%s months', 'ecwd')),
190
+ 604800 => array(__('%s week', 'ecwd'), __('%s weeks', 'ecwd')),
191
+ 86400 => array(__('%s day', 'ecwd'), __('%s days', 'ecwd')),
192
+ 3600 => array(__('%s hour', 'ecwd'), __('%s hours', 'ecwd')),
193
+ 60 => array(__('%s min', 'ecwd'), __('%s mins', 'ecwd')),
194
+ );
195
+
196
+ if (empty($to))
197
+ $to = time();
198
+
199
+ $from = (int) $from;
200
+ $to = (int) $to;
201
+ $diff = (int) abs($to - $from);
202
+
203
+ $items = 0;
204
+ $output = array();
205
+
206
+ foreach ($units as $unitsec => $unitnames) {
207
+ if ($items >= $limit)
208
+ break;
209
+
210
+ if ($diff < $unitsec)
211
+ continue;
212
+
213
+ $numthisunits = floor($diff / $unitsec);
214
+ $diff = $diff - ( $numthisunits * $unitsec );
215
+ $items++;
216
+
217
+ if ($numthisunits > 0)
218
+ $output[] = sprintf(_n($unitnames[0], $unitnames[1], $numthisunits), $numthisunits);
219
+ }
220
+
221
+ $seperator = _x(', ', 'human_time_diff');
222
+
223
+ if (!empty($output)) {
224
+ return implode($seperator, $output);
225
+ } else {
226
+ $smallest = array_pop($units);
227
+ return sprintf($smallest[0], 1);
228
+ }
229
+ }
230
+
231
+ }
includes/ecwd-functions.php ADDED
@@ -0,0 +1,458 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ //if (!defined())
3
+ function ecwd_print_calendar( $calendar_ids, $display = 'mini', $args = array(), $widget = false, $ajax = false ) {
4
+ wp_enqueue_script( ECWD_PLUGIN_PREFIX . '-public' );
5
+ wp_localize_script( ECWD_PLUGIN_PREFIX . '-public', 'ecwd', array(
6
+ 'ajaxurl' => admin_url( 'admin-ajax.php' ),
7
+ 'ajaxnonce' => wp_create_nonce( ECWD_PLUGIN_PREFIX . '_ajax_nonce' ),
8
+ 'loadingText' => __( 'Loading...', 'ecwd' )
9
+ ) );
10
+
11
+ $defaults = array(
12
+ 'title_text' => '',
13
+ 'sort' => 'asc',
14
+ 'grouped' => 0
15
+ );
16
+
17
+ $args = array_merge( $defaults, $args );
18
+
19
+ extract( $args );
20
+ if ( ! is_array( $calendar_ids ) ) {
21
+ $ids = explode( '-', str_replace( ' ', '', $calendar_ids ) );
22
+ } else {
23
+ $ids = $calendar_ids;
24
+ }
25
+
26
+ $ecwd_calendar_theme = get_post_meta( $ids[0], ECWD_PLUGIN_PREFIX . '_calendar_theme', true );
27
+ $css_file = $ids[0] . '_' . $ecwd_calendar_theme;
28
+
29
+ wp_enqueue_style( 'ecwd-calendar-main', plugins_url( '../css/calendar.css', __FILE__ ), '', 1 );
30
+
31
+ if ( $ecwd_calendar_theme && file_exists( ECWD_DIR . '/css/themes/' . $css_file . ".css" ) ) {
32
+ wp_enqueue_style( 'ecwd-calendar-theme_'.$css_file, plugins_url( '../css/themes/' . $css_file . '.css', __FILE__ ), '', 1 );
33
+ }
34
+
35
+
36
+
37
+ $calendar_ids_html = implode( '-', $ids );
38
+ $date = ( isset( $args['date'] ) ? $args['date'] : '' );
39
+ $prev_display = ( isset( $args['prev_display'] ) ? $args['prev_display'] : '' );
40
+ $page = ( isset( $args['cpage'] ) ? $args['cpage'] : 1 );
41
+ $page_items = ( isset( $args['page_items'] ) ? $args['page_items'] : 5 );
42
+ $displays = ( isset( $args['displays'] ) ? $args['displays'] : null );
43
+ $filters = ( isset( $args['filters'] ) ? $args['filters'] : null );
44
+ $event_search = ( isset( $args['event_search'] ) ? $args['event_search'] : 'yes' );
45
+ if ( ! isset( $args['search_params'] ) ) {
46
+ $args['search_params'] = array();
47
+ }
48
+
49
+ //Create new display object, passing array of calendar id(s)
50
+ $d = new ECWD_Display( $ids, $title_text, $sort, $date, $page, $args['search_params'], $displays, $filters, $page_items, $event_search , $display);
51
+ $markup = '';
52
+ $start = current_time( 'timestamp' );
53
+
54
+ if ( ! $display && ! $prev_display ) {
55
+ if ( $widget == 1 ) {
56
+ $display = 'mini';
57
+ } else {
58
+ $display = 'full';
59
+ }
60
+
61
+ } elseif ( ! $display && $prev_display ) {
62
+ $display = $prev_display;
63
+ }
64
+ if ( $ajax == false ) {
65
+ if ( $widget == 1 )
66
+ $markup .= '<div class="ecwd_' . $calendar_ids_html . ' calendar_widget_content calendar_main">';
67
+ else
68
+ $markup .= '<div class="ecwd_' . $calendar_ids_html . ' calendar_full_content calendar_main">';
69
+ if ( $widget !== 1 ) {
70
+ if ( defined( 'ECWD_FILTERS_EVENT_MAIN_FILE' ) && is_plugin_active( ECWD_FILTERS_EVENT_MAIN_FILE ) ) {
71
+ if ( defined( 'ECWD_FILTERS_EVENT_DIR' ) ) {
72
+ require_once( ECWD_FILTERS_EVENT_DIR . 'ecwd_display_filters_class.php' );
73
+ $filters_obj = ECWD_Display_Filters::get_instance();
74
+ $filters_obj->set_filters( $filters );
75
+ $markup .= $filters_obj->show_filters();
76
+ }
77
+ }
78
+ }
79
+
80
+ }
81
+ if ( $widget == 1 ) {
82
+ $markup .= '<div class="ecwd-widget-mini ecwd_calendar">';
83
+ $markup .= '<div class="ecwd-widget-' . $calendar_ids_html . '">';
84
+ } else {
85
+
86
+ $markup .= '<div class="ecwd-page-' . $display . ' ecwd_calendar">';
87
+ $markup .= '<div class="ecwd-page-' . $calendar_ids_html . '">';
88
+
89
+
90
+ }
91
+
92
+
93
+ $markup .= $d->get_view( $date, $display, $widget );
94
+ $markup .= '</div>';
95
+ $markup .= '<div class="ecwd-events-day-details"></div>';
96
+ if ( $displays ) {
97
+ $markup .= '<input type="hidden" class="ecwd_displays" value="' . $displays . '"/>';
98
+ }
99
+ if ( $event_search ) {
100
+ $markup .= '<input type="hidden" class="event_search" value="' . $event_search . '"/>';
101
+ }
102
+ if ( $filters ) {
103
+ $markup .= '<input type="hidden" class="ecwd_filters" value="' . $filters . '"/>';
104
+ }
105
+ if ( $page_items ) {
106
+ $markup .= '<input type="hidden" class="ecwd_page_items" value="' . $page_items . '"/>';
107
+ }
108
+ if ( $date ) {
109
+ $markup .= '<input type="hidden" class="ecwd_date" value="' . $date . '"/>';
110
+ }
111
+ $markup .= '<div class="ecwd_loader"></div>';
112
+ $markup .= '</div>';
113
+
114
+ if ( ! $ajax ) {
115
+
116
+ $markup .= '</div>';
117
+ }
118
+
119
+ return $markup;
120
+ }
121
+
122
+ /**
123
+ * AJAX function change calendar months
124
+ */
125
+ function ecwd_ajax() {
126
+
127
+ // check to see if the submitted nonce matches with the
128
+ // generated nonce
129
+ if ( ! check_ajax_referer( ECWD_PLUGIN_PREFIX . '_ajax_nonce', ECWD_PLUGIN_PREFIX . '_nonce' ) ) {
130
+ die( 'Request has failed.' );
131
+ }
132
+
133
+ $ids = esc_html( $_POST[ ECWD_PLUGIN_PREFIX . '_calendar_ids' ] );
134
+ $args = array();
135
+ $display = '';
136
+ if ( isset( $_POST[ ECWD_PLUGIN_PREFIX . '_link' ] ) ) {
137
+ $link = esc_html( $_POST[ ECWD_PLUGIN_PREFIX . '_link' ] );
138
+ parse_str( $link, $link_arr );
139
+ $date = $link_arr['?date'];
140
+ $page = isset( $link_arr['amp;cpage'] ) ? $link_arr['amp;cpage'] : 1;
141
+
142
+ $display = isset( $link_arr['amp;t'] ) ? $link_arr['amp;t'] : 'mini';
143
+ }else{
144
+ if(isset($_POST[ ECWD_PLUGIN_PREFIX . '_prev_display'])) {
145
+ $display = esc_html( $_POST[ ECWD_PLUGIN_PREFIX . '_prev_display' ] );
146
+ }
147
+ }
148
+ $type = esc_html( $_POST[ ECWD_PLUGIN_PREFIX . '_type' ] );
149
+ if ( isset( $_POST[ ECWD_PLUGIN_PREFIX . '_date' ] ) && $_POST[ ECWD_PLUGIN_PREFIX . '_date' ] == 1 && ! empty( $date ) ) {
150
+ $args['date'] = $date;
151
+ } else {
152
+ $args['date'] = '';
153
+ }
154
+ if($args['date'] =='' && isset( $_POST[ ECWD_PLUGIN_PREFIX . '_date_filter' ])){
155
+ $args['date'] = $_POST[ ECWD_PLUGIN_PREFIX . '_date_filter' ];
156
+ }
157
+ if ( isset( $_POST[ ECWD_PLUGIN_PREFIX . '_prev_display' ] ) && $_POST[ ECWD_PLUGIN_PREFIX . '_prev_display' ] != '' ) {
158
+ $args['prev_display'] = $_POST[ ECWD_PLUGIN_PREFIX . '_prev_display' ];
159
+ } else {
160
+ $args['prev_display'] = '';
161
+ }
162
+ $args['widget'] = 0;
163
+ if ( 'widget' == $type ) {
164
+ $args['widget'] = 1;
165
+ }
166
+
167
+ if($display=='') {
168
+ if ( $args['widget'] == 1 ) {
169
+ $display = 'mini';
170
+ } else {
171
+ $display = 'full';
172
+ }
173
+ }
174
+ if ( isset($page) ) {
175
+ $args['cpage'] = $page;
176
+ } else {
177
+ $args['cpage'] = 1;
178
+ }
179
+ $args['search_params'] = array();
180
+ if ( ( isset( $_POST[ ECWD_PLUGIN_PREFIX . '_query' ] ) && $_POST[ ECWD_PLUGIN_PREFIX . '_query' ] != '' ) || isset( $_POST[ ECWD_PLUGIN_PREFIX . '_categories' ] ) || ( isset( $_POST[ ECWD_PLUGIN_PREFIX . '_tags' ] ) ) || isset( $_POST[ ECWD_PLUGIN_PREFIX . '_venues' ] ) || isset( $_POST[ ECWD_PLUGIN_PREFIX . '_organizers' ] ) || isset( $_POST[ ECWD_PLUGIN_PREFIX . '_weekdays' ] ) ) {
181
+
182
+ $args['search_params']['query'] = ( isset( $_POST[ ECWD_PLUGIN_PREFIX . '_query' ] ) ? $_POST[ ECWD_PLUGIN_PREFIX . '_query' ] : 0 );
183
+ $args['search_params']['categories'] = ( isset( $_POST[ ECWD_PLUGIN_PREFIX . '_categories' ] ) ? $_POST[ ECWD_PLUGIN_PREFIX . '_categories' ] : 0 );
184
+ $args['search_params']['weekdays'] = ( isset( $_POST[ ECWD_PLUGIN_PREFIX . '_weekdays' ] ) ? $_POST[ ECWD_PLUGIN_PREFIX . '_weekdays' ] : 0 );
185
+ $args['search_params']['tags'] = ( isset( $_POST[ ECWD_PLUGIN_PREFIX . '_tags' ] ) ? $_POST[ ECWD_PLUGIN_PREFIX . '_tags' ] : 0 );
186
+ $args['search_params']['venues'] = ( isset( $_POST[ ECWD_PLUGIN_PREFIX . '_venues' ] ) ? $_POST[ ECWD_PLUGIN_PREFIX . '_venues' ] : 0 );
187
+ $args['search_params']['organizers'] = ( isset( $_POST[ ECWD_PLUGIN_PREFIX . '_organizers' ] ) ? $_POST[ ECWD_PLUGIN_PREFIX . '_organizers' ] : 0 );
188
+ $args['search'] = 1;
189
+ //$display = 'list';
190
+ }
191
+ $displays = ( isset( $_POST[ ECWD_PLUGIN_PREFIX . '_displays' ] ) ? $_POST[ ECWD_PLUGIN_PREFIX . '_displays' ] : null );
192
+ $filters = ( isset( $_POST[ ECWD_PLUGIN_PREFIX . '_filters' ] ) ? $_POST[ ECWD_PLUGIN_PREFIX . '_filters' ] : null );
193
+ $page_items = ( isset( $_POST[ ECWD_PLUGIN_PREFIX . '_page_items' ] ) ? $_POST[ ECWD_PLUGIN_PREFIX . '_page_items' ] : null );
194
+ $event_search = ( isset( $_POST[ ECWD_PLUGIN_PREFIX . '_event_search' ] ) ? $_POST[ ECWD_PLUGIN_PREFIX . '_event_search' ] : null );
195
+ $args['displays'] = $displays;
196
+ $args['filters'] = $filters;
197
+ $args['event_search'] = $event_search;
198
+ $args['page_items'] = $page_items;
199
+ echo ecwd_print_calendar( $ids, $display, $args, $args['widget'], true );
200
+ wp_die();
201
+ }
202
+
203
+ add_action( 'wp_ajax_nopriv_ecwd_ajax', ECWD_PLUGIN_PREFIX . '_ajax' );
204
+ add_action( 'wp_ajax_ecwd_ajax', ECWD_PLUGIN_PREFIX . '_ajax' );
205
+
206
+ /**
207
+ * AJAX function for mini pagination
208
+ */
209
+ function ecwd_ajax_list() {
210
+ if ( ! check_ajax_referer( ECWD_PLUGIN_PREFIX . '_ajax_nonce', ECWD_PLUGIN_PREFIX . '_nonce' ) ) {
211
+ die( 'Request has failed.' );
212
+ }
213
+
214
+ $grouped = esc_html( $_POST[ ECWD_PLUGIN_PREFIX . '_grouped' ] );
215
+ $start = esc_html( $_POST[ ECWD_PLUGIN_PREFIX . '_start' ] );
216
+ $ids = esc_html( $_POST[ ECWD_PLUGIN_PREFIX . '_event_ids' ] );
217
+ $title_text = esc_html( $_POST[ ECWD_PLUGIN_PREFIX . '_title_text' ] );
218
+ $sort = esc_html( $_POST[ ECWD_PLUGIN_PREFIX . '_sort' ] );
219
+ //$paging = esc_html($_POST[ECWD_PLUGIN_PREFIX.'_paging']);
220
+ //$paging_interval = esc_html($_POST[ECWD_PLUGIN_PREFIX.'_paging_interval']);
221
+ //$paging_direction = esc_html($_POST[ECWD_PLUGIN_PREFIX.'_paging_direction']);
222
+ $start_offset = esc_html( $_POST[ ECWD_PLUGIN_PREFIX . '_start_offset' ] );
223
+ $paging_type = esc_html( $_POST[ ECWD_PLUGIN_PREFIX . '_paging_type' ] );
224
+
225
+ if ( $paging_direction == 'back' ) {
226
+ if ( $paging_type == 'month' ) {
227
+ $this_month = mktime( 0, 0, 0, date( 'm', $start ) - 1, 1, date( 'Y', $start ) );
228
+ $prev_month = mktime( 0, 0, 0, date( 'm', $start ) - 2, 1, date( 'Y', $start ) );
229
+ $prev_interval_days = date( 't', $prev_month );
230
+ $month_days = date( 't', $this_month );
231
+
232
+ $int = $month_days + $prev_interval_days;
233
+ $int = $int * 86400;
234
+
235
+ $start = $start - ( $int );
236
+
237
+ $changed_month_days = date( 't', $start );
238
+ $paging_interval = $changed_month_days * 86400;
239
+ } else {
240
+ $start = $start - ( $paging_interval * 2 );
241
+ }
242
+ } else {
243
+ if ( $paging_type == 'month' ) {
244
+ $days_in_month = date( 't', $start );
245
+ $paging_interval = 86400 * $days_in_month;
246
+ }
247
+ }
248
+
249
+ $d = new ECWD_Display( explode( '-', $ids ), $title_text, $sort );
250
+
251
+ echo $d->get_list( $grouped, $start, $paging, $paging_interval, $start_offset );
252
+
253
+ die();
254
+ }
255
+
256
+ add_action( 'wp_ajax_nopriv_ecwd_ajax_list', ECWD_PLUGIN_PREFIX . '_ajax_list' );
257
+ add_action( 'wp_ajax_ecwd_ajax_list', ECWD_PLUGIN_PREFIX . '_ajax_list' );
258
+
259
+ function replaceFirstImages( $content ) {
260
+ $content = preg_replace( "/<img[^>]+\>/i", " ", $content, 1);
261
+
262
+ return $content;
263
+ }
264
+
265
+ add_filter( 'post_thumbnail_html', 'ecwd_post_thumbnail', 10, 5 );
266
+ function ecwd_post_thumbnail( $html, $post_id, $post_thumbnail_id, $size, $attr ) {
267
+ if (is_single() && get_post_type($post_id) == ECWD_PLUGIN_PREFIX . '_event' ) {
268
+ $html='<br /><br />';
269
+ }
270
+ return $html;
271
+ }
272
+ function ecwd_event_content( $content ) {
273
+ global $post;
274
+ global $wp;
275
+ global $ecwd_options;
276
+ //echo $content;
277
+ if ( is_single() ) {
278
+ $feat_image = '';
279
+ if ( $post->post_type == ECWD_PLUGIN_PREFIX . '_event' ) {
280
+ if ( has_post_thumbnail()) {
281
+ $feat_image = wp_get_attachment_url( get_post_thumbnail_id($post->ID, 'pull') );
282
+ }
283
+ $event_content = '';
284
+ ob_start();
285
+ include( ECWD_DIR . '/views/ecwd-event-content.php' );
286
+ $event_content .= ob_get_clean();
287
+ $content = $event_content . $content;
288
+ } elseif ( $post->post_type == ECWD_PLUGIN_PREFIX . '_organizer' ) {
289
+ $organizer_content = '';
290
+ ob_start();
291
+ include( ECWD_DIR . '/views/ecwd-organizer-content.php' );
292
+ $organizer_content .= ob_get_clean();
293
+ $content = $organizer_content;
294
+
295
+
296
+ } elseif ( $post->post_type == ECWD_PLUGIN_PREFIX . '_venue' ) {
297
+ $venue_content = '';
298
+ ob_start();
299
+ include( ECWD_DIR . '/views/ecwd-venue-content.php' );
300
+ $venue_content .= ob_get_clean();
301
+ $content = $venue_content;
302
+ }
303
+ }
304
+
305
+ return $content;
306
+ }
307
+
308
+ function getAndReplaceFirstImage( $content ) {
309
+ $first_img = '';
310
+ ob_start();
311
+ ob_end_clean();
312
+ $output = preg_match_all( '/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $content, $matches );
313
+ if ( isset( $matches [1] [0] ) ) {
314
+ $first_img = $matches [1] [0];
315
+ }
316
+
317
+ if ( empty( $first_img ) ) { //Defines a default image
318
+ return false;
319
+ } else {
320
+ $content = replaceFirstImages( $content );
321
+ }
322
+
323
+ return array(
324
+ 'image' => $first_img,
325
+ 'content' => $content
326
+ );
327
+ }
328
+
329
+ add_filter( 'the_content', ECWD_PLUGIN_PREFIX . '_event_content' );
330
+
331
+
332
+ function ecwd_event_post( $post ) {
333
+ global $ecwd_options;
334
+ $post->comment_status = 'closed';
335
+ if ( is_single() ) {
336
+ if ( $post->post_type == ECWD_PLUGIN_PREFIX . '_event' ) {
337
+ if(isset($ecwd_options['event_comments']) && $ecwd_options['event_comments']==1) {
338
+ $post->comment_status= 'open';
339
+ }
340
+ }
341
+ }
342
+
343
+ return $post;
344
+ }
345
+
346
+ add_action( 'the_post', ECWD_PLUGIN_PREFIX . '_event_post' );
347
+
348
+ function ecwd_add_meta_tags() {
349
+ global $post, $ecwd_options;
350
+ if ( is_single() && $post->post_type == ECWD_PLUGIN_PREFIX . '_event' && isset( $ecwd_options['social_icons'] ) && $ecwd_options['social_icons'] != '') {
351
+ echo '<meta property="og:title" content="'.$post->post_title.'"/>';
352
+ $ecwd_event_date_from = get_post_meta( $post->ID, ECWD_PLUGIN_PREFIX . '_event_date_from', true );
353
+ $ecwd_event_date_to = get_post_meta( $post->ID, ECWD_PLUGIN_PREFIX . '_event_date_to', true );
354
+ $ecwd_all_day_event = get_post_meta( $post->ID, ECWD_PLUGIN_PREFIX . '_all_day_event', true );
355
+ $date_format = 'Y-m-d';
356
+ $time_format = 'H:i';
357
+ if ( isset( $ecwd_options['date_format'] ) && $ecwd_options['date_format'] != '' ) {
358
+ $date_format = $ecwd_options['date_format'];
359
+ }
360
+ if ( isset( $ecwd_options['time_format'] ) && $ecwd_options['time_format'] != '' ) {
361
+ $time_format = $ecwd_options['time_format'];
362
+ }
363
+ $ecwd_event_location = get_post_meta( $post->ID, ECWD_PLUGIN_PREFIX . '_event_location', true );
364
+ $description = '';
365
+ if ( $ecwd_all_day_event == 1 ) {
366
+ $description.= date( $date_format, strtotime( $ecwd_event_date_from ) );
367
+ if ( $ecwd_all_day_event == 1 ) {
368
+ if ( $ecwd_event_date_to && date( $date_format, strtotime( $ecwd_event_date_from ) ) !== date( $date_format, strtotime( $ecwd_event_date_to ) ) ) {
369
+ $description.= ' - ' . date( $date_format, strtotime( $ecwd_event_date_to ) );
370
+ }
371
+ $description.= ' ' . __( 'All day', 'ecwd' ).' ';
372
+ }
373
+ } else {
374
+ $description .= date( $date_format, strtotime( $ecwd_event_date_from ) ) . ' ' . date( $time_format, strtotime( $ecwd_event_date_from ) );
375
+
376
+ if ( $ecwd_event_date_to ) {
377
+ $description .= ' - ' . date( $date_format, strtotime( $ecwd_event_date_to ) ) . ' ' . date( $time_format, strtotime( $ecwd_event_date_to ) );
378
+ }
379
+ }
380
+ $description .= ' '.$ecwd_event_location;
381
+ echo '<meta property="og:description" content="'.$description.'"/>';
382
+ $feat_image = '';
383
+ if ( has_post_thumbnail($post->ID)) {
384
+ $feat_image = wp_get_attachment_url( get_post_thumbnail_id($post->ID, 'pull') );
385
+ }
386
+ echo '<meta property="og:image" content="'.$feat_image.'"/>';
387
+ }
388
+ }
389
+ add_action( 'wp_head', 'ecwd_add_meta_tags' , 2 );
390
+
391
+
392
+ function ecwd_print_countdown( $event_id, $widget = 1, $theme_id = null, $args = array() ) {
393
+ global $ecwd_options;
394
+
395
+ $date_format = 'Y-m-d';
396
+ $time_format = 'H:i';
397
+ if ( isset( $ecwd_options['date_format'] ) && $ecwd_options['date_format'] != '' ) {
398
+ $date_format = $ecwd_options['date_format'];
399
+ }
400
+ if ( isset( $ecwd_options['time_format'] ) && $ecwd_options['time_format'] != '' ) {
401
+ $time_format = $ecwd_options['time_format'];
402
+ }
403
+ $defaults = array(
404
+ 'title_text' => '',
405
+ 'sort' => 'asc',
406
+ 'grouped' => 0
407
+ );
408
+
409
+ $args = array_merge( $defaults, $args );
410
+ extract( $args );
411
+
412
+ $date = ( isset( $args['date'] ) ? $args['date'] : '' );
413
+ $d = new ECWD_Display( '', $title_text, $sort );
414
+ $markup = '';
415
+
416
+ $next_event = $d->get_countdown( $event_id, $date, '', $widget );
417
+ if ( $next_event ) {
418
+ $gmt = gmdate( "Y-m-d H:i:s" );
419
+ $currentgmt = date( 'Y-m-d H:i:s' );
420
+ $diff = ( strtotime( $currentgmt ) - strtotime( $gmt ) ) / 60 / 60;
421
+ $start = date( 'Y/m/d H:i:s', strtotime( $next_event['from'] . 'T' . $next_event['starttime'] ) );
422
+ $markup .= '<div class="ecwd_countdown_container">';
423
+ $markup .= '<div class="ecwd_countdown_info">';
424
+ $markup .= '<div class="ecwd-date">';
425
+ $markup .= '<span class="metainfo">' . date( $date_format . ' ' . $time_format, strtotime( $start ) ) . ' (UTC ' . $diff . ')</span>';
426
+ $markup .= '</div>';
427
+ $markup .= '<div class="info">';
428
+ if ( $next_event['permalink'] !== '' ) {
429
+ $markup .= '<span><a href="' . $next_event['permalink'] . '">' . $next_event['title'] . '</a></span>';
430
+ } else {
431
+ $markup .= '<span>' . $next_event['title'] . '</span>';
432
+
433
+ }
434
+
435
+
436
+ $markup .= '<span>' . $next_event['location'] . '</span>';
437
+ $markup .= ' </div>';
438
+ $markup .= '<div class="clear"></div>';
439
+ $markup .= ' </div>';
440
+ $markup .= '<div class="ecwd_countdown">';
441
+ $markup .= '<input type="hidden" name="ecwd_start_time" value="' . date( 'Y/m/d H:i:s' ) . '"/>';
442
+ $markup .= '<input type="hidden" name="ecwd_end_time" value="' . $start . '"/>';
443
+ $markup .= '<input type="hidden" name="ecwd_timezone" value="' . $diff . '"/>';
444
+ if ( $theme_id ) {
445
+ $theme = get_post_meta( $theme_id, 'ecwd_countdown_theme', true );
446
+ $markup .= '<textarea class="hidden" name="ecwd_theme">' . $theme . '</textarea>';
447
+
448
+ }
449
+
450
+ $markup .= '<div class="clear"></div>';
451
+ $markup .= '</div>';
452
+ $markup .= '</div>';
453
+ $markup .= '<div class="clear"></div>';
454
+ }
455
+ return $markup;
456
+
457
+
458
+ }
includes/ecwd-shortcodes.php ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Shortcodes
5
+ */
6
+
7
+ /**
8
+ * [ecwd_calendar] shortcode
9
+ */
10
+ include_once(ABSPATH . 'wp-admin/includes/plugin.php');
11
+ function ecwd_shortcode($attr) {
12
+
13
+ extract(shortcode_atts(array(
14
+ 'id' => null,
15
+ 'page_items' => '5',
16
+ 'event_search' => 'yes',
17
+ 'display' => 'full',
18
+ 'displays' => null,
19
+ 'filters' => null
20
+ ), $attr, ECWD_PLUGIN_PREFIX.'_calendar'));
21
+
22
+ // If no ID is specified then return
23
+ if (empty($id)) {
24
+ return;
25
+ }
26
+ $args = array('displays'=>$displays, 'filters'=>$filters, 'page_items'=>$page_items, 'event_search'=>$event_search);
27
+ $calendar_ids = explode(',', str_replace(' ', '', $id));
28
+ $result = ecwd_print_calendar($calendar_ids, $display, $args);
29
+ return $result;
30
+ }
31
+
32
+ add_shortcode(ECWD_PLUGIN_PREFIX, ECWD_PLUGIN_PREFIX.'_shortcode');
includes/register-settings.php ADDED
@@ -0,0 +1,356 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Register all settings needed for the Settings API.
5
+ *
6
+ */
7
+ // Exit if accessed directly.
8
+ if ( ! defined( 'ABSPATH' ) ) {
9
+ exit;
10
+ }
11
+
12
+
13
+
14
+ if ( isset( $_GET[ ECWD_PLUGIN_PREFIX . '_clear_cache' ] ) && $_GET[ ECWD_PLUGIN_PREFIX . '_clear_cache' ] == 1 ) {
15
+ $cpt = ECWD_Cpt::get_instance();
16
+ $cleared = $cpt->delete_transient();
17
+ if($cleared) {
18
+ try{
19
+ echo '<div class= "updated" ><p> ' . __( 'Cache has been deleted.', 'ecwd' ) . '</p></div>';
20
+ }catch (Exception $e){
21
+
22
+ }
23
+ }
24
+
25
+ }
26
+
27
+ /**
28
+ * Main function to register all of the plugin settings
29
+ */
30
+ function ecwd_register_settings() {
31
+
32
+ global $ecwd_settings;
33
+ global $ecwd_tabs;
34
+
35
+ $ecwd_tabs = array(
36
+ 'general' => 'General',
37
+ 'fb' => 'FB settings',
38
+ 'gcal' => 'Gcal settings',
39
+ 'ical' => 'Ical settings',
40
+ 'add_event' => 'Add Event'
41
+ );
42
+ $ecwd_settings = array(
43
+ /* General Settings */
44
+ 'general' => array(
45
+ 'time_zone' => array(
46
+ 'id' => 'time_zone',
47
+ 'name' => __( 'TimeZone', 'ecwd' ),
48
+ 'desc' => __( 'If the timezone is not set, the server timezone will be used (if set in php settings), otherwise the Europe/Berlin timezone will be used', 'ecwd' ),
49
+ 'size' => 'medium-text',
50
+ 'type' => 'text'
51
+ ),
52
+ 'date_format' => array(
53
+ 'id' => 'date_format',
54
+ 'name' => __( 'Date format', 'ecwd' ),
55
+ 'desc' => __( 'Set the format for displaying event dates. Ex Y-m-d or Y/m/d', 'ecwd' ),
56
+ 'size' => 'medium-text',
57
+ 'type' => 'text'
58
+ ),
59
+ 'time_format' => array(
60
+ 'id' => 'time_format',
61
+ 'name' => __( 'Time format', 'ecwd' ),
62
+ 'desc' => __( 'Set the format for displaying event time. Ex H:i or H/i', 'ecwd' ),
63
+ 'size' => 'medium-text',
64
+ 'type' => 'text'
65
+ ),
66
+ 'week_starts' => array(
67
+ 'id' => 'week_starts',
68
+ 'name' => __( 'Week start day', 'ecwd' ),
69
+ 'desc' => __( 'Define the starting day for the week.', 'ecwd' ),
70
+ 'size' => 'medium-text',
71
+ 'type' => 'week_select'
72
+ ),
73
+ 'events_slug' => array(
74
+ 'id' => 'events_slug',
75
+ 'name' => __( 'Events slug', 'ecwd' ),
76
+ 'default' => 'events',
77
+ 'desc' => __( 'Define the slug for the events list page.', 'ecwd' ),
78
+ 'size' => 'medium-text',
79
+ 'type' => 'text'
80
+ ),
81
+ 'event_slug' => array(
82
+ 'id' => 'event_slug',
83
+ 'name' => __( 'Single Event slug', 'ecwd' ),
84
+ 'default' => 'event',
85
+ 'desc' => __( 'Define the slug for the single event page.', 'ecwd' ),
86
+ 'size' => 'medium-text',
87
+ 'type' => 'text'
88
+ ),
89
+ 'event_comments' => array(
90
+ 'id' => 'event_comments',
91
+ 'name' => __( 'Enable comments for events', 'ecwd' ),
92
+ 'desc' => __( 'Check to enable commenting.', 'ecwd' ),
93
+ 'type' => 'checkbox'
94
+ ),
95
+ 'event_loop' => array(
96
+ 'id' => 'event_loop',
97
+ 'name' => __( 'Include events in main loop', 'ecwd' ),
98
+ 'desc' => __( 'Check to display events within website post list in main pages.', 'ecwd' ),
99
+ 'type' => 'checkbox'
100
+ ),
101
+ 'social_icons' => array(
102
+ 'id' => 'social_icons',
103
+ 'name' => __( 'Enable Social Icons', 'ecwd' ),
104
+ 'desc' => __( 'Check to display social icons in event, organizer and venue pages.', 'ecwd' ),
105
+ 'type' => 'checkbox'
106
+ )
107
+
108
+ )
109
+
110
+ );
111
+
112
+ /* If the options do not exist then create them for each section */
113
+ if ( false == get_option( ECWD_PLUGIN_PREFIX . '_settings' ) ) {
114
+ add_option( ECWD_PLUGIN_PREFIX . '_settings' );
115
+ }
116
+
117
+
118
+ /* Add the Settings sections */
119
+
120
+ foreach ( $ecwd_settings as $key => $settings ) {
121
+
122
+ add_settings_section(
123
+ ECWD_PLUGIN_PREFIX . '_settings_' . $key, __( $ecwd_tabs[ $key ], 'ecwd' ), '__return_false', ECWD_PLUGIN_PREFIX . '_settings_' . $key
124
+ );
125
+
126
+
127
+ foreach ( $settings as $option ) {
128
+ add_settings_field(
129
+ ECWD_PLUGIN_PREFIX . '_settings_' . $key . '[' . $option['id'] . ']', $option['name'], function_exists( ECWD_PLUGIN_PREFIX . '_' . $option['type'] . '_callback' ) ? ECWD_PLUGIN_PREFIX . '_' . $option['type'] . '_callback' : ECWD_PLUGIN_PREFIX . '_missing_callback', ECWD_PLUGIN_PREFIX . '_settings_' . $key, ECWD_PLUGIN_PREFIX . '_settings_' . $key, ecwd_get_settings_field_args( $option, $key )
130
+ );
131
+ }
132
+
133
+ /* Register all settings or we will get an error when trying to save */
134
+ register_setting( ECWD_PLUGIN_PREFIX . '_settings_' . $key, ECWD_PLUGIN_PREFIX . '_settings_' . $key, ECWD_PLUGIN_PREFIX . '_settings_sanitize' );
135
+ }
136
+ }
137
+
138
+ add_action( 'admin_init', ECWD_PLUGIN_PREFIX . '_register_settings' );
139
+
140
+ /*
141
+ * Return generic add_settings_field $args parameter array.
142
+ *
143
+ * @param string $option Single settings option key.
144
+ * @param string $section Section of settings apge.
145
+ * @return array $args parameter to use with add_settings_field call.
146
+ */
147
+
148
+
149
+ function ecwd_get_settings_field_args( $option, $section ) {
150
+ $settings_args = array(
151
+ 'id' => $option['id'],
152
+ 'desc' => $option['desc'],
153
+ 'name' => $option['name'],
154
+ 'section' => $section,
155
+ 'size' => isset( $option['size'] ) ? $option['size'] : null,
156
+ 'options' => isset( $option['options'] ) ? $option['options'] : '',
157
+ 'std' => isset( $option['std'] ) ? $option['std'] : '',
158
+ 'href' => isset( $option['href'] ) ? $option['href'] : ''
159
+ );
160
+
161
+ // Link label to input using 'label_for' argument if text, textarea, password, select, or variations of.
162
+ // Just add to existing settings args array if needed.
163
+ if ( in_array( $option['type'], array( 'text', 'select', 'textarea', 'password', 'number' ) ) ) {
164
+ $settings_args = array_merge( $settings_args, array( 'label_for' => ECWD_PLUGIN_PREFIX . '_settings_' . $section . '[' . $option['id'] . ']' ) );
165
+ }
166
+
167
+ return $settings_args;
168
+ }
169
+
170
+
171
+ /*
172
+ * Week select callback function
173
+ */
174
+
175
+ function ecwd_week_select_callback( $args ) {
176
+ global $ecwd_options;
177
+ $html = "\n" . '<select id="ecwd_settings_' . $args['section'] . '[' . $args['id'] . ']" name="ecwd_settings_' . $args['section'] . '[' . $args['id'] . ']" >
178
+ <option value="0" ' . selected( 0, isset( $ecwd_options[ $args['id'] ] ) ? $ecwd_options[ $args['id'] ] : '', false ) . '>Sunday</option>
179
+ <option value="1" ' . selected( 1, isset( $ecwd_options[ $args['id'] ] ) ? $ecwd_options[ $args['id'] ] : '', false ) . '>Monday</option>
180
+ </select>' . "\n";
181
+
182
+ // Render description text directly to the right in a label if it exists.
183
+ if ( ! empty( $args['desc'] ) ) {
184
+ $html .= '<p class="description">' . $args['desc'] . '</p>' . "\n";
185
+ }
186
+
187
+ echo $html;
188
+ }
189
+
190
+ function ecwd_update_select_callback( $args ) {
191
+ global $ecwd_options;
192
+ $html = "\n" . '<select id="ecwd_settings_' . $args['section'] . '[' . $args['id'] . ']" name="ecwd_settings_' . $args['section'] . '[' . $args['id'] . ']" >
193
+ <option value="1" ' . selected( 1, isset( $ecwd_options[ $args['id'] ] ) ? $ecwd_options[ $args['id'] ] : '', false ) . '>1 hour</option>
194
+ <option value="2" ' . selected( 2, isset( $ecwd_options[ $args['id'] ] ) ? $ecwd_options[ $args['id'] ] : '', false ) . '>2 hours</option>
195
+ <option value="3" ' . selected( 3, isset( $ecwd_options[ $args['id'] ] ) ? $ecwd_options[ $args['id'] ] : '', false ) . '>3 hours</option>
196
+ <option value="5" ' . selected( 5, isset( $ecwd_options[ $args['id'] ] ) ? $ecwd_options[ $args['id'] ] : '', false ) . '>5 hours</option>
197
+ <option value="12" ' . selected( 12, isset( $ecwd_options[ $args['id'] ] ) ? $ecwd_options[ $args['id'] ] : '', false ) . '>12 hours</option>
198
+ </select>' . "\n";
199
+
200
+ // Render description text directly to the right in a label if it exists.
201
+ if ( ! empty( $args['desc'] ) ) {
202
+ $html .= '<p class="description">' . $args['desc'] . '</p>' . "\n";
203
+ }
204
+
205
+ echo $html;
206
+ }
207
+ function ecwd_status_select_callback( $args ) {
208
+ global $ecwd_options;
209
+ $html = "\n" . '<select id="ecwd_settings_' . $args['section'] . '[' . $args['id'] . ']" name="ecwd_settings_' . $args['section'] . '[' . $args['id'] . ']" >
210
+ <option value="draft" ' . selected( 'draft', isset( $ecwd_options[ $args['id'] ] ) ? $ecwd_options[ $args['id'] ] : '', false ) . '>Draft</option>
211
+ <option value="publish" ' . selected( 'publish', isset( $ecwd_options[ $args['id'] ] ) ? $ecwd_options[ $args['id'] ] : '', false ) . '>Publish</option>
212
+ <option value="pending" ' . selected( 'pending', isset( $ecwd_options[ $args['id'] ] ) ? $ecwd_options[ $args['id'] ] : '', false ) . '>Pending</option>
213
+ </select>' . "\n";
214
+
215
+ // Render description text directly to the right in a label if it exists.
216
+ if ( ! empty( $args['desc'] ) ) {
217
+ $html .= '<p class="description">' . $args['desc'] . '</p>' . "\n";
218
+ }
219
+
220
+ echo $html;
221
+ }
222
+
223
+ /*
224
+ * Single checkbox callback function
225
+ */
226
+
227
+ function ecwd_checkbox_callback( $args ) {
228
+ global $ecwd_options;
229
+ $checked = isset( $ecwd_options[ $args['id'] ] ) ? checked( 1, $ecwd_options[ $args['id'] ], false ) : '';
230
+ $html = "\n" . '<div class="checkbox-div"><input type="checkbox" id="ecwd_settings_' . $args['section'] . '[' . $args['id'] . ']" name="ecwd_settings_' . $args['section'] . '[' . $args['id'] . ']" value="1" ' . $checked . '/><label for="ecwd_settings_' . $args['section'] . '[' . $args['id'] . ']"></label></div>' . "\n";
231
+ // Render description text directly to the right in a label if it exists.
232
+ if ( ! empty( $args['desc'] ) ) {
233
+ $html .= '<p class="description">' . $args['desc'] . '</p>' . "\n";
234
+ }
235
+
236
+ echo $html;
237
+ }
238
+
239
+ /*
240
+ * Multiple checkboxs callback function
241
+ */
242
+ function ecwd_cats_checkbox_callback( $args ) {
243
+ global $ecwd_options;
244
+ $categories = get_categories( array( 'taxonomy' => ECWD_PLUGIN_PREFIX . '_event_category' ) );
245
+ $html = '';
246
+ if ( ! empty( $categories ) ) {
247
+ foreach ( $categories as $cat ) {
248
+ $checked = ( isset( $ecwd_options[ $args['id'] ] ) && in_array( $cat->term_id, $ecwd_options[ $args['id'] ] ) ) ? 'checked="checked"' : '';
249
+ $html .= "\n" . '<div class="checkbox-div"><input type="checkbox" id="ecwd_settings_' . $args['section'] . '_' . $args['id'] . '[' . $cat->term_id . ']" name="ecwd_settings_' . $args['section'] . '[' . $args['id'] . '][]" value="' . $cat->term_id . '" ' . $checked . '/><label for="ecwd_settings_' . $args['section'] . '_' . $args['id'] . '[' . $cat->term_id . ']"></label></div><label for="ecwd_settings_' . $args['section'] . '_' . $args['id'] . '[' . $cat->term_id . ']">' . $cat->name . '</label>' . "\n";
250
+ }
251
+ }
252
+ //$html = "\n" . '<input type="checkbox" id="ecwd_settings_' . $args['section'] . '[' . $args['id'] . ']" name="ecwd_settings_' . $args['section'] . '[' . $args['id'] . ']" value="1" ' . $checked . '/>' . "\n";
253
+
254
+ // Render description text directly to the right in a label if it exists.
255
+ if ( ! empty( $args['desc'] ) ) {
256
+ $html .= '<p class="description">' . $args['desc'] . '</p>' . "\n";
257
+ }
258
+
259
+ echo $html;
260
+ }
261
+
262
+ /**
263
+ * Textbox callback function
264
+ * Valid built-in size CSS class values:
265
+ * small-text, regular-text, large-text
266
+ *
267
+ */
268
+ function ecwd_text_callback( $args ) {
269
+ global $ecwd_options;
270
+
271
+ if ( isset( $ecwd_options[ $args['id'] ] ) ) {
272
+ $value = $ecwd_options[ $args['id'] ];
273
+ } else {
274
+ $value = isset( $args['std'] ) ? $args['std'] : '';
275
+ }
276
+
277
+ $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : '';
278
+ $html = "\n" . '<input type="text" class="' . $size . '" id="ecwd_settings_' . $args['section'] . '[' . $args['id'] . ']" name="ecwd_settings_' . $args['section'] . '[' . $args['id'] . ']" value="' . esc_attr( $value ) . '"/>' . "\n";
279
+
280
+ // Render and style description text underneath if it exists.
281
+ if ( ! empty( $args['desc'] ) ) {
282
+ $html .= '<p class="description">' . $args['desc'] . '</p>' . "\n";
283
+ }
284
+
285
+ echo $html;
286
+ }
287
+
288
+
289
+ /**
290
+ * Button callback function
291
+ * Valid built-in size CSS class values:
292
+ * small-text, regular-text, large-text
293
+ *
294
+ */
295
+ function ecwd_link_callback( $args ) {
296
+ global $ecwd_options;
297
+
298
+ $value = isset( $args['name'] ) ? $args['name'] : '';
299
+ $href = isset( $args['href'] ) ? $args['href'] : '#';
300
+ $html = "\n" . '<a class="button" href="' . $href . '" id="ecwd_settings_' . $args['section'] . '[' . $args['id'] . ']" >' . esc_attr( $value ) . '</a>' . "\n";
301
+ // Render and style description text underneath if it exists.
302
+ if ( ! empty( $args['desc'] ) ) {
303
+ $html .= '<p class="description">' . $args['desc'] . '</p>' . "\n";
304
+ }
305
+
306
+ echo $html;
307
+ }
308
+
309
+ /*
310
+ * Function we can use to sanitize the input data and return it when saving options
311
+ *
312
+ */
313
+
314
+ function ecwd_settings_sanitize( $input ) {
315
+ //add_settings_error( 'ecwd-notices', '', '', '' );
316
+ return $input;
317
+ }
318
+
319
+ /*
320
+ * Default callback function if correct one does not exist
321
+ *
322
+ */
323
+
324
+ function ecwd_missing_callback( $args ) {
325
+ printf( __( 'The callback function used for the <strong>%s</strong> setting is missing.', 'ecwd' ), $args['id'] );
326
+ }
327
+
328
+ /*
329
+ * Function used to return an array of all of the plugin settings
330
+ *
331
+ */
332
+
333
+ function ecwd_get_settings() {
334
+ $ecwd_tabs = array( 'general' => 'General',
335
+ 'fb' => 'FB settings',
336
+ 'gcal' => 'Gcal settings',
337
+ 'ical' => 'Ical settings',
338
+ 'add_event' => 'Add Event'
339
+ );
340
+ // Set default settings
341
+ // If this is the first time running we need to set the defaults
342
+ if ( ! get_option( ECWD_PLUGIN_PREFIX . '_upgrade_has_run' ) ) {
343
+
344
+ $general = get_option( ECWD_PLUGIN_PREFIX . '_settings_general' );
345
+ $general['save_settings'] = 1;
346
+
347
+ update_option( ECWD_PLUGIN_PREFIX . '_settings_general', $general );
348
+ }
349
+ $general_settings = array();
350
+ foreach ( $ecwd_tabs as $key => $settings ) {
351
+ $general_settings += is_array( get_option( ECWD_PLUGIN_PREFIX . '_settings_' . $key ) ) ? get_option( ECWD_PLUGIN_PREFIX . '_settings_' . $key ) : array();
352
+ }
353
+
354
+
355
+ return $general_settings;
356
+ }
js/admin/admin.js ADDED
@@ -0,0 +1,524 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Admin JS functions
3
+ */
4
+ (function ($) {
5
+
6
+ $("#ecwd_category_color").ecolorpicker();
7
+
8
+ $('#ecwd_event_repeat_dont_repeat_radio').click(function () {
9
+ $("#ecwd_repeat_until").hide();
10
+ });
11
+
12
+
13
+ $("#ecwd_category_color, .ecwd_colour").ecolorpicker({
14
+ displayIndicator: false,
15
+ displayPointer: false,
16
+ transparentColor: true
17
+ });
18
+
19
+ $("#ecwd_category_color, .ecwd_colour").on("change.color", function (event, color) {
20
+ $(this).css('background-color', color);
21
+ });
22
+
23
+ //events custom fields js
24
+ var allHiddens = $('#ecwd_event_repeats_div .hidden'),
25
+ radios = $('.ecwd_event_repeat_event_radio, .ecwd_event_repeat_list_radio');
26
+ var checked_el = $('.ecwd_event_repeat_event_radio:checked, .ecwd_event_repeat_list_radio:checked');
27
+ show_fields(checked_el);
28
+
29
+ $('.ecwd_event_repeat_event_radio').click(function (e) {
30
+ show_fields($(this));
31
+ });
32
+
33
+
34
+ function show_fields(el) {
35
+ allHiddens.attr('class', 'hidden');
36
+ if (el.attr('id') != 'ecwd_event_repeat_dont_repeat_radio') {
37
+ $("#ecwd_repeat_until").show();
38
+ }
39
+ else {
40
+ $("#ecwd_repeat_until").hide();
41
+ }
42
+ $('#ecwd_' + el.val()).removeClass('hidden');
43
+ if ($('#ecwd_event_repeat_how_label_' + el.val()).length > 0) {
44
+ $('#ecwd_daily').removeClass('hidden');
45
+ $('#ecwd_event_repeat_how_label_' + el.val()).removeClass('hidden');
46
+ }
47
+ $('#ecwd_repeat_until').removeClass('hidden');
48
+ }
49
+
50
+ if ($(".ecwd_event_repeat_choose").prop('checked')) {
51
+ $(".select_to_enable_disable").attr('disabled', true);
52
+ } else {
53
+ $(".ecwd_event_repeat_on_the").attr('disabled', true);
54
+ }
55
+
56
+ $("#ecwd_event_repeat_dont_repeat_radio").click(function () {
57
+ $("#ecwd_repeat_until").attr('class', 'hidden');
58
+ });
59
+
60
+ $(".ecwd_event_repeat_choose").click(function () {
61
+ $(".ecwd_event_repeat_on_the").attr('disabled', false);
62
+ $(".select_to_enable_disable").attr('disabled', true);
63
+ });
64
+
65
+ if($(".ecwd_event_repeat_list_radio").prop('checked')){
66
+
67
+ $(".ecwd_event_repeat_on_the").attr('disabled', true);
68
+ $(".select_to_enable_disable").attr('disabled', false);
69
+ }
70
+ if($("#ecwd_event_repeat_year_on_days_2").prop('checked')){
71
+ $(".ecwd_event_repeat_on_the").attr('disabled', true);
72
+ $(".select_to_enable_disable").attr('disabled', false);
73
+ $(".#ecwd_event_year_month").attr('disabled', true);
74
+ }
75
+ $(".ecwd_event_repeat_list_radio").click(function () {
76
+ $(".ecwd_event_repeat_on_the").attr('disabled', true);
77
+ $(".select_to_enable_disable").attr('disabled', false);
78
+ });
79
+
80
+ // on adding event
81
+ $("#ecwd_repeat_event_monthly").click(function () {
82
+ $(".ecwd_event_repeat_choose").prop('checked', true);
83
+ $(".ecwd_event_repeat_on_the").attr('disabled', false);
84
+ $(".select_to_enable_disable").attr('disabled', true);
85
+ });
86
+
87
+ //event validations
88
+ $("#post").submit(function (e) {
89
+ var dateTo = Date.parse($("#ecwd_event_date_to").val()),
90
+ dateFrom = Date.parse($("#ecwd_event_date_from").val());
91
+ if(dateFrom && !dateTo){
92
+ alert('Please set the end date');
93
+ e.preventDefault();
94
+ }
95
+ if (dateTo < dateFrom) {
96
+ alert('Date to must be greater or equal to Date from');
97
+ e.preventDefault();
98
+ }
99
+ });
100
+
101
+ //calendar validations, etc
102
+ if ($("#publish").attr('value') == 'Publish') {
103
+ $("#ecwd_calendar_12_hour_time_format_NO").prop('checked', true);
104
+ }
105
+
106
+ if ($('#map-canvas').length > 0) {
107
+ loadScript();
108
+ }
109
+
110
+
111
+ var wordpress_ver = params.version, upload_button;
112
+
113
+ $(".ecwd_upload_image_button").click(function (event) {
114
+ upload_button = $(this);
115
+ var frame;
116
+ if (wordpress_ver >= "3.5") {
117
+ event.preventDefault();
118
+ if (frame) {
119
+ frame.open();
120
+ return;
121
+ }
122
+ frame = wp.media();
123
+ frame.on("select", function () {
124
+ // Grab the selected attachment.
125
+ var attachment = frame.state().get("selection").first();
126
+ frame.close();
127
+ if (upload_button.parent().prev().children().hasClass("tax_list")) {
128
+ upload_button.parent().prev().children().val(attachment.attributes.url);
129
+ upload_button.parent().prev().prev().children().attr("src", attachment.attributes.url);
130
+ }
131
+ else
132
+ $("#ecwd_taxonomy_image").val(attachment.attributes.url);
133
+ });
134
+ frame.open();
135
+ }
136
+ else {
137
+ tb_show("", "media-upload.php?type=image&amp;TB_iframe=true");
138
+ return false;
139
+ }
140
+ });
141
+
142
+ $(".ecwd_remove_image_button").click(function () {
143
+ $("#ecwd_taxonomy_image").val("");
144
+ $(this).parent().siblings(".title").children("img").attr("src", "' . Z_IMAGE_PLACEHOLDER . '");
145
+ $(".inline-edit-col :input[name=\'ecwd_taxonomy_image\']").val("");
146
+ return false;
147
+ });
148
+
149
+ if (wordpress_ver < "3.5") {
150
+ window.send_to_editor = function (html) {
151
+ imgurl = $("img", html).attr("src");
152
+ if (upload_button.parent().prev().children().hasClass("tax_list")) {
153
+ upload_button.parent().prev().children().val(imgurl);
154
+ upload_button.parent().prev().prev().children().attr("src", imgurl);
155
+ }
156
+ else
157
+ $("#ecwd_taxonomy_image").val(imgurl);
158
+ tb_remove();
159
+ }
160
+ }
161
+
162
+ $("body").on("click", '.editinline', function () {
163
+ var tax_id = $(this).parents("tr").attr("id").substr(4);
164
+ var thumb = $("#tag-" + tax_id + " .thumb img").attr("src");
165
+ if (thumb != "' . Z_IMAGE_PLACEHOLDER . '") {
166
+ $(".inline-edit-col :input[name=\'ecwd_taxonomy_image\']").val(thumb);
167
+ } else {
168
+ $(".inline-edit-col :input[name=\'ecwd_taxonomy_image\']").val("");
169
+ }
170
+ $(".inline-edit-col .title img").attr("src", thumb);
171
+ return false;
172
+ });
173
+ ////////////Calendar add/remove events/////////////
174
+ $(document).on('click', '.ecwd-events .ecwd-calendar-event-delete', function () {
175
+ if (confirm('Sure?')) {
176
+ var clicked_el = this;
177
+ var element = $(this).closest('.ecwd-calendar-event');
178
+ var event_id = $(element).find('input').val();
179
+ var calendar_id = $('#post_ID').val();
180
+ $.post(params.ajaxurl, {
181
+ action: 'manage_calendar_events',
182
+ ecwd_event_id: event_id,
183
+ ecwd_calendar_id: calendar_id,
184
+ ecwd_action: 'delete'
185
+ }).done(function (data) {
186
+ res = JSON.parse(data);
187
+ if (res.status == 'ok') {
188
+ $(clicked_el).removeClass('ecwd-calendar-event-delete');
189
+ $(clicked_el).addClass('ecwd-calendar-event-add');
190
+ $(clicked_el).text('+');
191
+ $(element).find('.ecwd-calendar-event-edit').addClass('hidden');
192
+ $(element).remove().appendTo('.ecwd-excluded-events');
193
+ $(element).find('input').attr('name', 'ecwd-calendar-excluded-event-id[]');
194
+ }
195
+ });
196
+ }
197
+ });
198
+
199
+ $(document).on('click', '.ecwd-excluded-events .ecwd-calendar-event-add', function () {
200
+ var clicked_el = this;
201
+ var element = $(this).closest('.ecwd-calendar-event');
202
+ var calendar_id = $('#post_ID').val();
203
+ var event_id = $(element).find('input').val();
204
+ $.post(params.ajaxurl, {
205
+ action: 'manage_calendar_events',
206
+ ecwd_event_id: event_id,
207
+ ecwd_calendar_id: calendar_id,
208
+ ecwd_action: 'add'
209
+
210
+ }).done(function (data) {
211
+ res = JSON.parse(data);
212
+ if (res.status == 'ok') {
213
+ $(clicked_el).addClass('ecwd-calendar-event-delete');
214
+ $(clicked_el).removeClass('ecwd-calendar-event-add');
215
+ $(clicked_el).text('x');
216
+ $(element).find('input').attr('name', 'ecwd-calendar-event-id[]');
217
+ $(element).find('.ecwd-calendar-event-edit').removeClass('hidden');
218
+ $(element).remove().appendTo('.ecwd-events');
219
+ }
220
+ });
221
+
222
+ });
223
+ ////////////////////////////////////////////////////////
224
+
225
+ ////////////Calendar selectable add events/////////////
226
+ $(document).on('click', '.event_cal_add .close', function(e){
227
+ $('.event_cal_add').hide();
228
+ });
229
+ $(document).on('mouseup', '.day-with-date', function (e) {
230
+ var position = $(this).position();
231
+ $('.event_cal_add').css({"left" : position.left , "top" : position.top});
232
+ });
233
+
234
+ $('body').on('mouseenter', '.ecwd_calendar_container',function(){
235
+ $(this).selectable({
236
+ filter: ".day-with-date",
237
+ start: function(){
238
+ $('.event_cal_add').hide();
239
+ $('#add_event_to_cal').show();
240
+ $('.ecwd_notification, .ecwd_error').empty();
241
+ $('#ecwd_event_name').val('');
242
+ },
243
+ stop: function () {
244
+
245
+ var result = $("#select-result").empty();
246
+
247
+ var position = $('.ui-selected').last().find('.day-number').position();
248
+ var start_day = parseInt($('.ui-selected').first().find('.day-number').text());
249
+ var end_day = parseInt($('.ui-selected').last().find('.day-number').text());
250
+ var start_date = $('.ui-selected').first().attr('data-date');
251
+ var end_date = $('.ui-selected').last().attr('data-date');
252
+ if (start_day) {
253
+ if (start_day == end_day) {
254
+ $('.ecwd-dates').text(start_date);
255
+ $('#ecwd_event_date_from').val(start_date);
256
+ $('#ecwd_event_date_to').val(start_date);
257
+ }
258
+ if (end_day > start_day) {
259
+ $('.ecwd-dates').text(start_date + ' - ' + end_date);
260
+ $('#ecwd_event_date_from').val(start_date);
261
+ $('#ecwd_event_date_to').val(end_date);
262
+
263
+ }
264
+ if (start_day > end_day) {
265
+ $('.ecwd-dates').text(end_date + ' - ' + start_date);
266
+ $('#ecwd_event_date_from').val(end_date);
267
+ $('#ecwd_event_date_to').val(start_date);
268
+ }
269
+ $('.event_cal_add').removeClass('hidden');
270
+ $('.event_cal_add').show();
271
+ setTimeout(function () {
272
+ $('#ecwd_event_name').focus();
273
+ }, 1);
274
+ $('#ecwd-modal-preview').animate({
275
+ scrollTop: $(".event_cal_add").position().top
276
+ }, 1000);
277
+ }
278
+ }
279
+ });
280
+ });
281
+ $(document).on('click', '#add_event_to_cal', function () {
282
+ var start_date = $('#ecwd_event_date_from').val();
283
+ var end_date = $('#ecwd_event_date_to').val();
284
+ var name = $('#ecwd_event_name').val();
285
+ if (name.length > 0) {
286
+ var calendar_id = $('#post_ID').val();
287
+ $.post(params.ajaxurl, {
288
+ action: 'add_calendar_event',
289
+ ecwd_calendar_id: calendar_id,
290
+ ecwd_event_name: name,
291
+ ecwd_event_date_from: start_date,
292
+ ecwd_event_date_to: end_date
293
+ }).done(function (data) {
294
+ res = JSON.parse(data);
295
+ if (res.status == 'success') {
296
+ $('#add_event_to_cal').hide();
297
+ $('.ecwd_notification').html('Event \'' + name + '\' has been saved as draft. <a href="?post=' + res.data.event_id + '&action=edit">Edit details</a>');
298
+ }
299
+ });
300
+ } else {
301
+ $('#ecwd_event_name').focus();
302
+ $('.ecwd_error').html('Enter event name');
303
+ }
304
+ });
305
+ //////////////////////////////////////////
306
+
307
+ //////////////Theme tabs//////////////////
308
+
309
+ if(typeof(localStorage.currentItem)!== "undefined"){
310
+ var current_item=localStorage.currentItem;
311
+ $("#ecwd-tabs > div").css("display","none");
312
+ $(current_item).css("display","block");
313
+ $("#ecwd-tabs .ecwd-tabs li").removeClass("ui-state-active");
314
+ $('#ecwd-tabs .ecwd-tabs li a[href="'+current_item+'"]').parent().addClass("ui-state-active");
315
+ }else{
316
+ $('#general').css("display","block");
317
+ $('#ecwd-tabs .ecwd-tabs li:first-child').addClass("ui-state-active");
318
+ }
319
+
320
+ $(".ecwd-tabs li a").each(function (indx, element) {
321
+ $(element).click(function(){
322
+ if(typeof(Storage) !== "undefined") {
323
+ localStorage.currentItem = $(element).attr("href");
324
+ }
325
+ $("#ecwd-tabs > div").css("display","none");
326
+ $(localStorage.currentItem).css("display","block");
327
+ $('#ecwd-tabs .ecwd-tabs li').removeClass("ui-state-active");
328
+ $(element).parent().addClass("ui-state-active");
329
+ });
330
+ });
331
+
332
+
333
+ //////////////////////////////////////////
334
+ $('#ecwd_event_venue').change( function (e) {
335
+
336
+ if($(this).val()>0) {
337
+ var location = $(this).find(':selected').data('location');
338
+ var markerLatLong = $(this).find(':selected').data('marker');
339
+ var zoom = parseInt($(this).find(':selected').data('zoom'));
340
+ if(!zoom){
341
+ zoom = 17;
342
+ }
343
+ var lat_long = markerLatLong.split(',');
344
+ var myLatlng = new google.maps.LatLng(parseFloat(lat_long[0]), parseFloat(lat_long[1]));
345
+ //alert(markerLatLong);
346
+
347
+ deleteMarkers();
348
+ addMarker(myLatlng);
349
+
350
+ map.setCenter(myLatlng);
351
+ map.setZoom(zoom);
352
+ $('#ecwd_event_location').val(location);
353
+ $('#ecwd_map_zoom').val(zoom);
354
+ }
355
+ });
356
+ }(jQuery));
357
+
358
+ var map;
359
+ var markers = [];
360
+ var geocoder;
361
+
362
+ function initialize() {
363
+ geocoder = new google.maps.Geocoder();
364
+
365
+ var lat_long = document.getElementById('ecwd_lat_long').value.split(',');
366
+ var myLatlng = new google.maps.LatLng(parseFloat(lat_long[0]), parseFloat(lat_long[1]));
367
+ var ecwd_zoom = parseInt(document.getElementById('ecwd_map_zoom').value);
368
+ var ecwd_marker = parseInt(document.getElementById('ecwd_marker').value);
369
+ var mapOptions = {
370
+ zoom: ecwd_zoom,
371
+ center: myLatlng,
372
+ scrollwheel: false
373
+ };
374
+
375
+ map = new google.maps.Map(document.getElementById('map-canvas'),
376
+ mapOptions);
377
+
378
+
379
+ var input = document.getElementById('ecwd_event_location');
380
+
381
+ var types = document.getElementById('type-selector');
382
+ map.controls[google.maps.ControlPosition.TOP_LEFT].push(input);
383
+
384
+ var autocomplete = new google.maps.places.Autocomplete(input);
385
+ autocomplete.bindTo('bounds', map);
386
+
387
+ var infowindow = new google.maps.InfoWindow();
388
+ var address_marker = new google.maps.Marker({
389
+ map: map,
390
+ anchorPoint: new google.maps.Point(0, -29),
391
+ draggable: true
392
+ });
393
+ markers.push(address_marker);
394
+
395
+ google.maps.event.addListener(autocomplete, 'place_changed', function () {
396
+ infowindow.close();
397
+ address_marker.setVisible(false);
398
+
399
+ var place = autocomplete.getPlace();
400
+ if (!place.geometry) {
401
+ return;
402
+ }
403
+
404
+ // If the place has a geometry, then present it on a map.
405
+ if (place.geometry.viewport) {
406
+ map.fitBounds(place.geometry.viewport);
407
+ } else {
408
+ map.setCenter(place.geometry.location);
409
+ map.setZoom(ecwd_zoom);
410
+ }
411
+
412
+ document.getElementById('ecwd_lat_long').value = place.geometry.location.toString().replace(')', '').replace('(', '');
413
+ //marker.setIcon(/** @type {google.maps.Icon} */({
414
+ // url: place.icon,
415
+ // size: new google.maps.Size(71, 71),
416
+ // origin: new google.maps.Point(0, 0),
417
+ // anchor: new google.maps.Point(17, 34),
418
+ // scaledSize: new google.maps.Size(35, 35)
419
+ //}));
420
+ address_marker.setPosition(place.geometry.location);
421
+ address_marker.setVisible(true);
422
+
423
+ var address = '';
424
+ if (place.address_components) {
425
+ address = [
426
+ (place.address_components[0] && place.address_components[0].short_name || ''),
427
+ (place.address_components[1] && place.address_components[1].short_name || ''),
428
+ (place.address_components[2] && place.address_components[2].short_name || '')
429
+ ].join(' ');
430
+ }
431
+
432
+ infowindow.setContent('<div><strong>' + place.name + '</strong><br>' + address);
433
+ infowindow.open(map, address_marker);
434
+ });
435
+
436
+ google.maps.event.addListener(map, 'click', function(event) {
437
+ deleteMarkers();
438
+ geocodePosition(event.latLng);
439
+ addMarker(event.latLng);
440
+ });
441
+ google.maps.event.addListener(address_marker, 'dragend', function () {
442
+ setMarkerPosition(address_marker);
443
+ geocodePosition(address_marker.getPosition());
444
+
445
+ });
446
+ google.maps.event.addListener(map, 'zoom_changed', function() {
447
+ jQuery('#ecwd_map_zoom').val(map.getZoom());
448
+ });
449
+
450
+ if (ecwd_marker == 1) {
451
+ var infowindow = new google.maps.InfoWindow();
452
+ addMarker(myLatlng);
453
+ var loc = document.getElementById('ecwd_event_location').value;
454
+
455
+ }
456
+
457
+ }
458
+
459
+ // Add a marker to the map and push to the array.
460
+ function addMarker(location) {
461
+ var marker = new google.maps.Marker({
462
+ position: location,
463
+ map: map,
464
+ draggable: true
465
+ });
466
+ markers.push(marker);
467
+ setMarkerPosition(marker);
468
+ google.maps.event.addListener(marker,'dragend',function(event) {
469
+ setMarkerPosition(marker);
470
+ geocodePosition(marker.getPosition());
471
+
472
+ });
473
+ }
474
+
475
+ // Sets the map on all markers in the array.
476
+ function setAllMap(map) {
477
+ for (var i = 0; i < markers.length; i++) {
478
+ markers[i].setMap(map);
479
+ }
480
+ }
481
+
482
+ // Removes the markers from the map, but keeps them in the array.
483
+ function clearMarkers() {
484
+ setAllMap(null);
485
+ }
486
+
487
+ // Shows any markers currently in the array.
488
+ function showMarkers() {
489
+ setAllMap(map);
490
+ }
491
+
492
+ // Deletes all markers in the array by removing references to them.
493
+ function deleteMarkers() {
494
+ clearMarkers();
495
+ markers = [];
496
+ }
497
+
498
+ function setMarkerPosition(marker) {
499
+ document.getElementById('ecwd_lat_long').value = marker.getPosition().toUrlValue();
500
+ }
501
+
502
+ function geocodePosition(pos) {
503
+ geocoder.geocode({
504
+ latLng: pos
505
+ }, function(responses) {
506
+ if (responses && responses.length > 0) {
507
+ updateMarkerAddress(responses[0].formatted_address);
508
+ } else {
509
+ updateMarkerAddress('Cannot determine address at this location.');
510
+ }
511
+ });
512
+ }
513
+ function updateMarkerAddress(address){
514
+ document.getElementById('ecwd_event_location').value = address;
515
+
516
+ }
517
+
518
+ function loadScript() {
519
+ var script = document.createElement('script');
520
+ script.type = 'text/javascript';
521
+ script.src = 'https://maps.googleapis.com/maps/api/js?v=3.exp&key=AIzaSyCIUXhK7om6EZ9Ca5xFcEbXMKEQZz7U2kM' +
522
+ '&callback=initialize&libraries=places';
523
+ document.body.appendChild(script);
524
+ }
js/admin/datepicker.js ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function ($) {
2
+
3
+ $('#ecwd_event_repeat_until_input').datetimepicker({
4
+ scrollMonth: false,
5
+ scrollInput: false,
6
+ timepicker:false,
7
+ format:'Y/m/d'
8
+ });
9
+
10
+ hide_show_time();
11
+ $('.ecwd_all_day_event').click(function() {
12
+ hide_show_time();
13
+ });
14
+
15
+ function hide_show_time(){
16
+ var dateFromGlobal, dateToGlobal;
17
+ dateFromGlobal = $("#ecwd_event_date_from").val(),
18
+ dateToGlobal = $("#ecwd_event_date_to").val();
19
+ if ($('.ecwd_all_day_event').prop('checked') === true) {
20
+ $("#ecwd_event_date_from, #ecwd_event_date_to").datetimepicker({
21
+ timepicker:false,
22
+ format:'Y/m/d',
23
+ scrollInput: false,
24
+ closeOnDateSelect:true
25
+ });
26
+ if(dateFromGlobal) {
27
+ $("#ecwd_event_date_from").attr('value', dateFromGlobal.split(' ')[0]);
28
+
29
+ }
30
+ if(dateToGlobal) {
31
+ $("#ecwd_event_date_to").attr('value', dateToGlobal.split(' ')[0]);
32
+ }
33
+ } else {
34
+ $('#ecwd_event_date_from, #ecwd_event_date_to').datetimepicker({
35
+ timepicker:true,
36
+ format:'Y/m/d H:i',
37
+ scrollInput: false,
38
+ closeOnDateSelect:false
39
+ });
40
+ if(dateFromGlobal) {
41
+ $("#ecwd_event_date_from").attr('value', dateFromGlobal);
42
+ }
43
+ if(dateToGlobal) {
44
+ $("#ecwd_event_date_to").attr('value', dateToGlobal);
45
+ }
46
+ }
47
+
48
+ }
49
+
50
+ }(jQuery));
js/admin/editor-buttons.js ADDED
@@ -0,0 +1,389 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function () {
2
+ tinymce.PluginManager.add('ecwd', function (editor_calendar, url) {
3
+ var sh_tag = 'ecwd';
4
+
5
+ //helper functions
6
+ function getAttr(s, n) {
7
+ n = new RegExp(n + '=\"([^\"]+)\"', 'g').exec(s);
8
+ return n ? window.decodeURIComponent(n[1]) : '';
9
+ };
10
+
11
+ function html(cls, data) {
12
+ var placeholder = ecwd_plugin.url + 'assets/calendar_icon_90x90.png';
13
+ data = window.encodeURIComponent(data);
14
+ return '<img src="' + placeholder + '" class="mceItem ' + cls + '" ' + 'data-sh-attr="' + data + '" data-mce-resize="false" data-mce-placeholder="1" />';
15
+ }
16
+
17
+ function replaceShortcodes(content) {
18
+ //match [ecwd_calendar(attr)]
19
+ return content.replace(/\[ecwd( [^\]]*)\]/g, function (all, attr) {
20
+ return html('wp-ecwd-calendar', attr);
21
+ });
22
+ }
23
+
24
+ function restoreShortcodes(content) {
25
+ //match any image tag with our class and replace it with the shortcode's content and attributes
26
+ return content.replace(/(?:<p(?: [^>]+)?>)*(<img class="mceItem wp-ecwd-calendar" [^>]+>)(?:<\/p>)*/g, function (match, image) {
27
+ var data = getAttr(image, 'data-sh-attr');
28
+ var con = getAttr(image, 'data-sh-content');
29
+
30
+ if (data) {
31
+ return '<p>[' + sh_tag + data + ']</p>';
32
+ }
33
+ return match;
34
+ });
35
+ }
36
+
37
+ //add popup
38
+ editor_calendar.addCommand('ecwd_popup', function (ui, v) {
39
+ //setup defaults
40
+ var header = '';
41
+ if (v.header)
42
+ header = v.header;
43
+ var footer = '';
44
+ if (v.footer)
45
+ footer = v.footer;
46
+
47
+
48
+ var page_items = '5';
49
+ if (v.page_items)
50
+ page_items = v.page_items;
51
+
52
+
53
+ var displays = '';
54
+ var displays_arr = new Array;
55
+ if (v.displays) {
56
+ displays_arr = v.displays.split(",");
57
+ }
58
+ var filters = '';
59
+ if (typeof ecwd_filters !== 'undefined') {
60
+ var filters_arr = new Array;
61
+ if (v.filters) {
62
+ filters_arr = v.filters.split(",");
63
+ }
64
+ var filters_1 = 'days';
65
+ if (filters_arr[0]) {
66
+ filters_1 = filters_arr[0];
67
+ }
68
+
69
+ var filters_2 = 'categories';
70
+ if (filters_arr[1])
71
+ filters_2 = filters_arr[1];
72
+
73
+ var filters_3 = 'tags';
74
+ if (filters_arr[2])
75
+ filters_3 = filters_arr[2];
76
+
77
+ var filters_4 = 'venues';
78
+ if (filters_arr[3])
79
+ filters_4 = filters_arr[3];
80
+
81
+ var filters_5 = 'organizers';
82
+ if (filters_arr[4])
83
+ filters_5 = filters_arr[4];
84
+
85
+ filters = {
86
+ title: 'Filters',
87
+ layout: 'flex',
88
+ type: "form",
89
+ direction: 'column',
90
+ align: 'stretch',
91
+ items: [
92
+ {//add id select
93
+ type: 'listbox',
94
+ name: 'filters_1',
95
+ label: 'Filter 1',
96
+ value: filters_1,
97
+ 'values': ecwd_filters.filters,
98
+ tooltip: 'Select filter'
99
+ },
100
+ {//add id select
101
+ type: 'listbox',
102
+ name: 'filters_2',
103
+ label: 'Filter 2',
104
+ value: filters_2,
105
+ 'values': ecwd_filters.filters,
106
+ tooltip: 'Select filter'
107
+ },
108
+ {//add id select
109
+ type: 'listbox',
110
+ name: 'filters_3',
111
+ label: 'Filter 3',
112
+ value: filters_3,
113
+ 'values': ecwd_filters.filters,
114
+ tooltip: 'Select filter'
115
+ },
116
+ {//add id select
117
+ type: 'listbox',
118
+ name: 'filters_4',
119
+ label: 'Filter 4',
120
+ value: filters_4,
121
+ 'values': ecwd_filters.filters,
122
+ tooltip: 'Select filter'
123
+ },
124
+ {//add id select
125
+ type: 'listbox',
126
+ name: 'filters_5',
127
+ label: 'Filter 5',
128
+ value: filters_5,
129
+ 'values': ecwd_filters.filters,
130
+ tooltip: 'Select filter'
131
+ }
132
+ ]
133
+ };
134
+
135
+ } else {
136
+ filters = {
137
+ title: 'Filters',
138
+ layout: 'flex',
139
+ type: "form",
140
+ direction: 'column',
141
+ align: 'stretch',
142
+ items: [
143
+ {//add id select
144
+ type: 'label',
145
+ text: 'Filter addon should be purchased separately.'
146
+
147
+ }
148
+ ]
149
+ }
150
+ }
151
+
152
+
153
+ var display = 'full';
154
+ if (v.display)
155
+ display = v.display;
156
+
157
+ var displays_2 = 'list';
158
+ if (displays_arr[1])
159
+ displays_2 = displays_arr[1];
160
+
161
+ var displays_3 = 'week';
162
+ if (displays_arr[2])
163
+ displays_3 = displays_arr[2];
164
+
165
+ var displays_4 = 'day';
166
+ if (displays_arr[3])
167
+ displays_4 = displays_arr[3];
168
+
169
+
170
+ var fullchecked = false;
171
+ if (v.fullchecked)
172
+ fullchecked = true;
173
+
174
+ var event_search = true;
175
+ if (v.event_search && v.event_search == 'no')
176
+ event_search = false;
177
+ var id = 0;
178
+ var calendars = '';
179
+ console.log(ecwd_plugin.ecwd_calendars.length);
180
+ if (ecwd_plugin.ecwd_calendars.length !== 0) {
181
+ id = ecwd_plugin.ecwd_calendars[0]['value'];
182
+ calendars = {//add id select
183
+ type: 'listbox',
184
+ name: 'id',
185
+ label: 'Select Calendar',
186
+ value: id,
187
+ 'values': ecwd_plugin.ecwd_calendars,
188
+ tooltip: 'Select Calendar'
189
+ };
190
+ } else {
191
+ calendars = {//add id select
192
+ type: 'label',
193
+ text: 'Please add a calendar before using the shortcode'
194
+ };
195
+ }
196
+
197
+ if (v.id)
198
+ id = v.id;
199
+ var content = '';
200
+ if (v.content)
201
+ content = v.content;
202
+ //open the popup
203
+ var win = editor_calendar.windowManager.open({
204
+ title: 'ECWD Shortcode',
205
+ bodyType: 'tabpanel',
206
+ //file : url + '/button_popup.php', // file that contains HTML for our modal window
207
+ body: [
208
+ {
209
+ title: 'General',
210
+ type: "form",
211
+ layout: 'flex',
212
+ direction: 'column',
213
+ align: 'stretch',
214
+ items: [
215
+ calendars,
216
+
217
+ {
218
+ type: 'textbox',
219
+ name: 'page_items',
220
+ label: 'Events per page in list view',
221
+ value: page_items,
222
+ tooltip: 'Events per page in list view'
223
+ },
224
+ {
225
+ type: 'checkbox',
226
+ name: 'event_search',
227
+ label: 'Enable event search',
228
+ checked: event_search,
229
+ tooltip: 'Enable event search'
230
+ }
231
+ ]
232
+ },
233
+ {
234
+ title: 'Views',
235
+ type: "form",
236
+ layout: 'flex',
237
+ direction: 'column',
238
+ align: 'stretch',
239
+ items: [
240
+ {
241
+ type: 'listbox',
242
+ name: 'display',
243
+ label: 'View 1',
244
+ value: display,
245
+ 'values': ecwd_plugin.ecwd_views,
246
+ tooltip: 'Select display mode'
247
+ },
248
+ {//add id select
249
+ type: 'listbox',
250
+ name: 'displays_2',
251
+ label: 'View 2',
252
+ value: displays_2,
253
+ 'values': ecwd_plugin.ecwd_views,
254
+ tooltip: 'Select display mode'
255
+ },
256
+ {//add id select
257
+ type: 'listbox',
258
+ name: 'displays_3',
259
+ label: 'View 3',
260
+ value: displays_3,
261
+ 'values': ecwd_plugin.ecwd_views,
262
+ tooltip: 'Select display mode'
263
+ },
264
+ {//add id select
265
+ type: 'listbox',
266
+ name: 'displays_4',
267
+ label: 'View 4',
268
+ value: displays_4,
269
+ 'values': ecwd_plugin.ecwd_views,
270
+ tooltip: 'Select display mode'
271
+ },
272
+ {
273
+ type: 'label',
274
+ text: 'Upgrade to Pro version to access three more view options: posterboard, map and 4 days.'
275
+ }
276
+
277
+ ]
278
+ },
279
+ filters
280
+
281
+ ],
282
+ onsubmit: function (e) { //when the ok button is clicked
283
+ var data = win.toJSON();
284
+ //start the shortcode tag
285
+ if (typeof data.id != 'undefined' && data.id.length) {
286
+ var shortcode_str = '[' + sh_tag + ' id="' + data.id + '"';
287
+
288
+ //check for header
289
+ if (typeof data.header != 'undefined' && data.header.length)
290
+ shortcode_str += ' header="' + data.header + '"';
291
+ //check for footer
292
+ if (typeof data.page_items != 'undefined' && data.page_items.length)
293
+ shortcode_str += ' page_items="' + data.page_items + '"';
294
+ if (typeof data.event_search != 'undefined' && data.event_search == true)
295
+ shortcode_str += ' event_search="yes"';
296
+ else
297
+ shortcode_str += ' event_search="no"';
298
+
299
+ if (typeof data.display != 'undefined' && data.display.length)
300
+ shortcode_str += ' display="' + data.display + '"';
301
+ shortcode_str += ' displays="';
302
+ if (typeof data.display != 'undefined' && data.display.length) {
303
+ shortcode_str += data.display + ',';
304
+ }
305
+ if (typeof data.displays_2 != 'undefined' && data.displays_2.length) {
306
+ shortcode_str += data.displays_2 + ',';
307
+ }
308
+ if (typeof data.displays_3 != 'undefined' && data.displays_3.length) {
309
+ shortcode_str += data.displays_3 + ',';
310
+ }
311
+ if (typeof data.displays_4 != 'undefined' && data.displays_4.length) {
312
+ shortcode_str += data.displays_4;
313
+ }
314
+ shortcode_str += '"';
315
+
316
+ shortcode_str += ' filters="';
317
+ if (typeof data.filters_1 != 'undefined' && data.filters_1.length) {
318
+ shortcode_str += data.filters_1 + ',';
319
+ }
320
+ if (typeof data.filters_2 != 'undefined' && data.filters_2.length) {
321
+ shortcode_str += data.filters_2 + ',';
322
+ }
323
+ if (typeof data.filters_3 != 'undefined' && data.filters_3.length) {
324
+ shortcode_str += data.filters_3 + ',';
325
+ }
326
+ if (typeof data.filters_4 != 'undefined' && data.filters_4.length) {
327
+ shortcode_str += data.filters_4 + ',';
328
+ }
329
+ if (typeof data.filters_5 != 'undefined' && data.filters_5.length) {
330
+ shortcode_str += data.filters_5;
331
+ }
332
+ shortcode_str += '"';
333
+ shortcode_str += ']';
334
+ //insert shortcode to tinymce
335
+ editor_calendar.insertContent(shortcode_str);
336
+ }
337
+ }
338
+ });
339
+ });
340
+
341
+ //add button
342
+ editor_calendar.addButton('ecwd', {
343
+ icon: 'ecwd_calendar',
344
+ tooltip: 'Insert Calendar',
345
+ onclick: function () {
346
+ editor_calendar.execCommand('ecwd_popup', '', {
347
+ header: '',
348
+ footer: '',
349
+ page_items: '5',
350
+ event_search: 'yes',
351
+ display: 'full',
352
+ displays: '',
353
+ filters: '',
354
+ id: 0
355
+ });
356
+ }
357
+ });
358
+
359
+ //replace from shortcode to an image placeholder
360
+ editor_calendar.on('BeforeSetcontent', function (event) {
361
+ event.content = replaceShortcodes(event.content);
362
+ });
363
+
364
+ //replace from image placeholder to shortcode
365
+ editor_calendar.on('GetContent', function (event) {
366
+ event.content = restoreShortcodes(event.content);
367
+ });
368
+
369
+ //open popup on placeholder double click
370
+ editor_calendar.on('DblClick', function (e) {
371
+ var cls = e.target.className.indexOf('wp-ecwd-calendar');
372
+ if (e.target.nodeName == 'IMG' && e.target.className.indexOf('wp-ecwd-calendar') > -1) {
373
+ var title = e.target.attributes['data-sh-attr'].value;
374
+ title = window.decodeURIComponent(title);
375
+ editor_calendar.execCommand('ecwd_popup', '', {
376
+ header: getAttr(title, 'header'),
377
+ footer: getAttr(title, 'footer'),
378
+ page_items: getAttr(title, 'page_items'),
379
+ event_search: getAttr(title, 'event_search'),
380
+ display: getAttr(title, 'display'),
381
+ displays: getAttr(title, 'displays'),
382
+ filters: getAttr(title, 'filters'),
383
+ id: getAttr(title, 'id')
384
+ });
385
+ }
386
+ });
387
+ });
388
+ })();
389
+
js/admin/evol.colorpicker.js ADDED
@@ -0,0 +1,506 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ evol.colorpicker 3.1.0
3
+ ColorPicker widget for jQuery UI
4
+
5
+ https://github.com/evoluteur/colorpicker
6
+ (c) 2015 Olivier Giulieri
7
+
8
+ * Depends:
9
+ * jquery.ui.core.js
10
+ * jquery.ui.widget.js
11
+ */
12
+
13
+ (function( $, undefined ) {
14
+
15
+ var _idx=0,
16
+ ua=window.navigator.userAgent,
17
+ isIE=ua.indexOf("MSIE ")>0,
18
+ _ie=isIE?'-ie':'',
19
+ isMoz=isIE?false:/mozilla/.test(ua.toLowerCase()) && !/webkit/.test(ua.toLowerCase()),
20
+ history=[],
21
+ baseThemeColors=['ffffff','000000','eeece1','1f497d','4f81bd','c0504d','9bbb59','8064a2','4bacc6','f79646'],
22
+ subThemeColors=['f2f2f2','7f7f7f','ddd9c3','c6d9f0','dbe5f1','f2dcdb','ebf1dd','e5e0ec','dbeef3','fdeada',
23
+ 'd8d8d8','595959','c4bd97','8db3e2','b8cce4','e5b9b7','d7e3bc','ccc1d9','b7dde8','fbd5b5',
24
+ 'bfbfbf','3f3f3f','938953','548dd4','95b3d7','d99694','c3d69b','b2a2c7','92cddc','fac08f',
25
+ 'a5a5a5','262626','494429','17365d','366092','953734','76923c','5f497a','31859b','e36c09',
26
+ '7f7f7f','0c0c0c','1d1b10','0f243e','244061','632423','4f6128','3f3151','205867','974806'],
27
+ standardColors=['c00000','ff0000','ffc000','ffff00','92d050','00b050','00b0f0','0070c0','002060','7030a0'],
28
+ webColors=[
29
+ ['003366','336699','3366cc','003399','000099','0000cc','000066'],
30
+ ['006666','006699','0099cc','0066cc','0033cc','0000ff','3333ff','333399'],
31
+ ['669999','009999','33cccc','00ccff','0099ff','0066ff','3366ff','3333cc','666699'],
32
+ ['339966','00cc99','00ffcc','00ffff','33ccff','3399ff','6699ff','6666ff','6600ff','6600cc'],
33
+ ['339933','00cc66','00ff99','66ffcc','66ffff','66ccff','99ccff','9999ff','9966ff','9933ff','9900ff'],
34
+ ['006600','00cc00','00ff00','66ff99','99ffcc','ccffff','ccccff','cc99ff','cc66ff','cc33ff','cc00ff','9900cc'],
35
+ ['003300','009933','33cc33','66ff66','99ff99','ccffcc','ffffff','ffccff','ff99ff','ff66ff','ff00ff','cc00cc','660066'],
36
+ ['333300','009900','66ff33','99ff66','ccff99','ffffcc','ffcccc','ff99cc','ff66cc','ff33cc','cc0099','993399'],
37
+ ['336600','669900','99ff33','ccff66','ffff99','ffcc99','ff9999','ff6699','ff3399','cc3399','990099'],
38
+ ['666633','99cc00','ccff33','ffff66','ffcc66','ff9966','ff6666','ff0066','d60094','993366'],
39
+ ['a58800','cccc00','ffff00','ffcc00','ff9933','ff6600','ff0033','cc0066','660033'],
40
+ ['996633','cc9900','ff9900','cc6600','ff3300','ff0000','cc0000','990033'],
41
+ ['663300','996600','cc3300','993300','990000','800000','993333']
42
+ ],
43
+ transColor='#0000ffff',
44
+ int2Hex=function(i){
45
+ var h=i.toString(16);
46
+ if(h.length==1){
47
+ h='0'+h;
48
+ }
49
+ return h;
50
+ },
51
+ st2Hex=function(s){
52
+ return int2Hex(Number(s));
53
+ },
54
+ int2Hex3=function(i){
55
+ var h=int2Hex(i);
56
+ return h+h+h;
57
+ },
58
+ toHex3=function(c){
59
+ if(c.length>10){ // IE9
60
+ var p1=1+c.indexOf('('),
61
+ p2=c.indexOf(')'),
62
+ cs=c.substring(p1,p2).split(',');
63
+ return ['#',st2Hex(cs[0]),st2Hex(cs[1]),st2Hex(cs[2])].join('');
64
+ }else{
65
+ return c;
66
+ }
67
+ };
68
+
69
+ $.widget( "evol.ecolorpicker", {
70
+
71
+ version: '3.1.0',
72
+
73
+ options: {
74
+ color: null, // example:'#31859B'
75
+ showOn: 'both', // possible values: 'focus','button','both'
76
+ displayIndicator: false,
77
+ transparentColor: false,
78
+ displayPointer: true,
79
+ history: true,
80
+ defaultPalette: 'theme', // possible values: 'theme', 'web'
81
+ strings: 'Theme Colors,Standard Colors,Web Colors,Theme Colors,Back to Palette,History,No history yet.'
82
+ },
83
+
84
+ _create: function() {
85
+ var that=this;
86
+ this._paletteIdx=this.options.defaultPalette=='theme'?1:2;
87
+ this._id='evo-cp'+_idx++;
88
+ this._enabled=true;
89
+ switch(this.element.get(0).tagName){
90
+ case 'INPUT':
91
+ var color=this.options.color,
92
+ e=this.element,
93
+ css=((this.options.showOn==='focus')?'':'evo-pointer ')+'evo-colorind'+(isMoz?'-ff':_ie),
94
+ style='';
95
+ this._isPopup=true;
96
+ this._palette=null;
97
+ if(color!==null){
98
+ e.val(color);
99
+ }else{
100
+ var v=e.val();
101
+ if(v!==''){
102
+ color=this.options.color=v;
103
+ }
104
+ }
105
+ if(color===transColor){
106
+ css+=' evo-transparent';
107
+ }else{
108
+ style=(color!==null)?('background-color:'+color):'';
109
+ }
110
+ e.addClass('colourPicker '+this._id)
111
+ .wrap('<div style="width:'+(this.element.width()+32)+'px;'+
112
+ (isIE?'margin-bottom:-21px;':'')+
113
+ (isMoz?'padding:1px 0;':'')+
114
+ '"></div>')
115
+ .after('<div class="'+css+'" style="'+style+'"></div>')
116
+ .on('keyup onpaste', function(evt){
117
+ var c=$(this).val();
118
+ if(c!=that.options.color){
119
+ that._setValue(c, true);
120
+ }
121
+ });
122
+ var showOn=this.options.showOn;
123
+ if(showOn==='both' || showOn==='focus'){
124
+ e.on('focus', function(){
125
+ that.showPalette();
126
+ });
127
+ }
128
+ if(showOn==='both' || showOn==='button'){
129
+ e.next().on('click', function(evt){
130
+ evt.stopPropagation();
131
+ that.showPalette();
132
+ });
133
+ }
134
+ break;
135
+ default:
136
+ this._isPopup=false;
137
+ this._palette=this.element.html(this._paletteHTML())
138
+ .attr('aria-haspopup','true');
139
+ this._bindColors();
140
+ }
141
+ if(color && this.options.history){
142
+ this._add2History(color);
143
+ }
144
+ },
145
+
146
+ _paletteHTML: function() {
147
+ var pIdx=this._paletteIdx=Math.abs(this._paletteIdx),
148
+ opts=this.options,
149
+ labels=opts.strings.split(',');
150
+
151
+ var h='<div class="evo-pop'+_ie+' ui-widget ui-widget-content ui-corner-all"'+
152
+ (this._isPopup?' style="position:absolute"':'')+'>'+
153
+ // palette
154
+ '<span>'+this['_paletteHTML'+pIdx]()+'</span>'+
155
+ // links
156
+ '<div class="evo-more"><a href="javascript:void(0)">'+labels[1+pIdx]+'</a>';
157
+ if(opts.history){
158
+ h+='<a href="javascript:void(0)" class="evo-hist">'+labels[5]+'</a>';
159
+ }
160
+ h+='</div>';
161
+ // indicator
162
+ if(opts.displayIndicator){
163
+ h+=this._colorIndHTML(this.options.color)+this._colorIndHTML('');
164
+ }
165
+ h+='</div>';
166
+ return h;
167
+ },
168
+
169
+ _colorIndHTML: function(c) {
170
+ var css=isIE?'evo-colorbox-ie ':'',
171
+ style='';
172
+
173
+ if(c){
174
+ if(c===transColor){
175
+ css+='evo-transparent';
176
+ }else{
177
+ style='background-color:'+c;
178
+ }
179
+ }else{
180
+ style='display:none';
181
+ }
182
+ return '<div class="evo-color" style="float:left">'+
183
+ '<div style="'+style+'" class="'+css+'"></div><span>'+ // class="evo-colortxt-ie"
184
+ (c?c:'')+'</span></div>';
185
+ },
186
+
187
+ _paletteHTML1: function() {
188
+ var opts=this.options,
189
+ labels=opts.strings.split(','),
190
+ oTD='<td style="background-color:#',
191
+ cTD=isIE?'"><div style="width:2px;"></div></td>':'"><span/></td>',
192
+ oTRTH='<tr><th colspan="10" class="ui-widget-content">';
193
+
194
+ // base theme colors
195
+ var h='<table class="evo-palette'+_ie+'">'+oTRTH+labels[0]+'</th></tr><tr>';
196
+ for(var i=0;i<10;i++){
197
+ h+=oTD+baseThemeColors[i]+cTD;
198
+ }
199
+ h+='</tr>';
200
+ if(!isIE){
201
+ h+='<tr><th colspan="10"></th></tr>';
202
+ }
203
+ h+='<tr class="top">';
204
+ // theme colors
205
+ for(i=0;i<10;i++){
206
+ h+=oTD+subThemeColors[i]+cTD;
207
+ }
208
+ for(var r=1;r<4;r++){
209
+ h+='</tr><tr class="in">';
210
+ for(i=0;i<10;i++){
211
+ h+=oTD+subThemeColors[r*10+i]+cTD;
212
+ }
213
+ }
214
+ h+='</tr><tr class="bottom">';
215
+ for(i=40;i<50;i++){
216
+ h+=oTD+subThemeColors[i]+cTD;
217
+ }
218
+ h+='</tr>'+oTRTH;
219
+ // transparent color
220
+ if(opts.transparentColor){
221
+ h+='<div class="evo-transparent evo-tr-box"></div>';
222
+ }
223
+ h+=labels[1]+'</th></tr><tr>';
224
+ // standard colors
225
+ for(i=0;i<10;i++){
226
+ h+=oTD+standardColors[i]+cTD;
227
+ }
228
+ h+='</tr></table>';
229
+ return h;
230
+ },
231
+
232
+ _paletteHTML2: function() {
233
+ var i, iMax,
234
+ oTD='<td style="background-color:#',
235
+ cTD=isIE?'"><div style="width:5px;"></div></td>':'"><span/></td>',
236
+ oTableTR='<table class="evo-palette2'+_ie+'"><tr>',
237
+ cTableTR='</tr></table>';
238
+
239
+ var h='<div class="evo-palcenter">';
240
+ // hexagon colors
241
+ for(var r=0,rMax=webColors.length;r<rMax;r++){
242
+ h+=oTableTR;
243
+ var cs=webColors[r];
244
+ for(i=0,iMax=cs.length;i<iMax;i++){
245
+ h+=oTD+cs[i]+cTD;
246
+ }
247
+ h+=cTableTR;
248
+ }
249
+ h+='<div class="evo-sep"/>';
250
+ // gray scale colors
251
+ var h2='';
252
+ h+=oTableTR;
253
+ for(i=255;i>10;i-=10){
254
+ h+=oTD+int2Hex3(i)+cTD;
255
+ i-=10;
256
+ h2+=oTD+int2Hex3(i)+cTD;
257
+ }
258
+ h+=cTableTR+oTableTR+h2+cTableTR+'</div>';
259
+ return h;
260
+ },
261
+
262
+ _switchPalette: function(link) {
263
+ if(this._enabled){
264
+ var idx,
265
+ content,
266
+ label,
267
+ labels=this.options.strings.split(',');
268
+ if($(link).hasClass('evo-hist')){
269
+ // history
270
+ var h=['<table class="evo-palette"><tr><th class="ui-widget-content">',
271
+ labels[5], '</th></tr></tr></table>',
272
+ '<div class="evo-cHist">'];
273
+ if(history.length===0){
274
+ h.push('<p>&nbsp;',labels[6],'</p>');
275
+ }else{
276
+ for(var i=history.length-1;i>-1;i--){
277
+ if(history[i].length===9){
278
+ h.push('<div class="evo-transparent"></div>');
279
+ }else{
280
+ h.push('<div style="background-color:',history[i],'"></div>');
281
+ }
282
+ }
283
+ }
284
+ h.push('</div>');
285
+ idx=-this._paletteIdx;
286
+ content=h.join('');
287
+ label=labels[4];
288
+ }else{
289
+ // palette
290
+ if(this._paletteIdx<0){
291
+ idx=-this._paletteIdx;
292
+ this._palette.find('.evo-hist').show();
293
+ }else{
294
+ idx=(this._paletteIdx==2)?1:2;
295
+ }
296
+ content=this['_paletteHTML'+idx]();
297
+ label=labels[idx+1];
298
+ this._paletteIdx=idx;
299
+ }
300
+ this._paletteIdx=idx;
301
+ var e=this._palette.find('.evo-more')
302
+ .prev().html(content).end()
303
+ .children().eq(0).html(label);
304
+ if(idx<0){
305
+ e.next().hide();
306
+ }
307
+ }
308
+ },
309
+
310
+ showPalette: function() {
311
+ if(this._enabled){
312
+ $('.colourPicker').not('.'+this._id).ecolorpicker('hidePalette');
313
+ if(this._palette===null){
314
+ this._palette=this.element.next()
315
+ .after(this._paletteHTML()).next()
316
+ .on('click',function(evt){
317
+ evt.stopPropagation();
318
+ });
319
+ this._bindColors();
320
+ var that=this;
321
+ $(document.body).on('click.'+this._id,function(evt){
322
+ if(evt.target!=that.element.get(0)){
323
+ that.hidePalette();
324
+ }
325
+ });
326
+ }
327
+ }
328
+ return this;
329
+ },
330
+
331
+ hidePalette: function() {
332
+ if(this._isPopup && this._palette){
333
+ $(document.body).off('click.'+this._id);
334
+ var that=this;
335
+ this._palette.off('mouseover click', 'td,.evo-transparent')
336
+ .fadeOut(function(){
337
+ that._palette.remove();
338
+ that._palette=that._cTxt=null;
339
+ })
340
+ .find('.evo-more a').off('click');
341
+ }
342
+ return this;
343
+ },
344
+
345
+ _bindColors: function() {
346
+ var that=this,
347
+ opts=this.options,
348
+ es=this._palette.find('div.evo-color'),
349
+ sel=opts.history?'td,.evo-cHist>div':'td';
350
+
351
+ if(opts.transparentColor){
352
+ sel+=',.evo-transparent';
353
+ }
354
+ this._cTxt1=es.eq(0).children().eq(0);
355
+ this._cTxt2=es.eq(1).children().eq(0);
356
+ this._palette
357
+ .on('click', sel, function(evt){
358
+ if(that._enabled){
359
+ var $this=$(this);
360
+ that._setValue($this.hasClass('evo-transparent')?transColor:toHex3($this.attr('style').substring(17)));
361
+ }
362
+ })
363
+ .on('mouseover', sel, function(evt){
364
+ if(that._enabled){
365
+ var $this=$(this),
366
+ c=$this.hasClass('evo-transparent')?transColor:toHex3($this.attr('style').substring(17));
367
+ if(that.options.displayIndicator){
368
+ that._setColorInd(c,2);
369
+ }
370
+ that.element.trigger('mouseover.color', c);
371
+ }
372
+ })
373
+ .find('.evo-more a').on('click', function(){
374
+ that._switchPalette(this);
375
+ });
376
+ },
377
+
378
+ val: function(value) {
379
+ if (typeof value=='undefined') {
380
+ return this.options.color;
381
+ }else{
382
+ this._setValue(value);
383
+ return this;
384
+ }
385
+ },
386
+
387
+ _setValue: function(c, noHide) {
388
+ c = c.replace(/ /g,'');
389
+ this.options.color=c;
390
+ if(this._isPopup){
391
+ if(!noHide){
392
+ this.hidePalette();
393
+ }
394
+ this._setBoxColor(this.element.val(c).next(), c);
395
+ }else{
396
+ this._setColorInd(c,1);
397
+ }
398
+ if(this.options.history && this._paletteIdx>0){
399
+ this._add2History(c);
400
+ }
401
+ this.element.trigger('change.color', c);
402
+ },
403
+
404
+ _setColorInd: function(c, idx) {
405
+ var $box=this['_cTxt'+idx];
406
+ this._setBoxColor($box, c);
407
+ $box.next().html(c);
408
+ },
409
+
410
+ _setBoxColor: function($box, c) {
411
+ if(c===transColor){
412
+ $box.addClass('evo-transparent')
413
+ .removeAttr('style');
414
+ }else{
415
+ $box.removeClass('evo-transparent')
416
+ .attr('style','background-color:'+c);
417
+ }
418
+ },
419
+
420
+ _setOption: function(key, value) {
421
+ if(key=='color'){
422
+ this._setValue(value, true);
423
+ }else{
424
+ this.options[key]=value;
425
+ }
426
+ },
427
+
428
+ _add2History: function(c) {
429
+ var iMax=history.length;
430
+ // skip color if already in history
431
+ for(var i=0;i<iMax;i++){
432
+ if(c==history[i]){
433
+ return;
434
+ }
435
+ }
436
+ // limit of 28 colors in history
437
+ if(iMax>27){
438
+ history.shift();
439
+ }
440
+ // add to history
441
+ history.push(c);
442
+ },
443
+
444
+ enable: function() {
445
+ var e=this.element;
446
+ if(this._isPopup){
447
+ e.removeAttr('disabled');
448
+ }else{
449
+ e.css({
450
+ 'opacity': '1',
451
+ 'pointer-events': 'auto'
452
+ });
453
+ }
454
+ if(this.options.showOn!=='focus'){
455
+ this.element.next().addClass('evo-pointer');
456
+ }
457
+ e.removeAttr('aria-disabled');
458
+ this._enabled=true;
459
+ return this;
460
+ },
461
+
462
+ disable: function() {
463
+ var e=this.element;
464
+ if(this._isPopup){
465
+ e.attr('disabled', 'disabled');
466
+ }else{
467
+ this.hidePalette();
468
+ e.css({
469
+ 'opacity': '0.3',
470
+ 'pointer-events': 'none'
471
+ });
472
+ }
473
+ if(this.options.showOn!=='focus'){
474
+ this.element.next().removeClass('evo-pointer');
475
+ }
476
+ e.attr('aria-disabled','true');
477
+ this._enabled=false;
478
+ return this;
479
+ },
480
+
481
+ isDisabled: function() {
482
+ return !this._enabled;
483
+ },
484
+
485
+ destroy: function() {
486
+ $(document.body).off('click.'+this._id);
487
+ if(this._palette){
488
+ this._palette.off('mouseover click', 'td,.evo-cHist>div,.evo-transparent')
489
+ .find('.evo-more a').off('click');
490
+ if(this._isPopup){
491
+ this._palette.remove();
492
+ }
493
+ this._palette=this._cTxt=null;
494
+ }
495
+ if(this._isPopup){
496
+ this.element
497
+ .next().off('click').remove()
498
+ .end().off('focus').unwrap();
499
+ }
500
+ this.element.removeClass('colourPicker '+this.id).empty();
501
+ $.Widget.prototype.destroy.call(this);
502
+ }
503
+
504
+ });
505
+
506
+ })(jQuery);
js/admin/evol.colorpicker.min.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ /*
2
+ evol.colorpicker 3.1.0
3
+ (c) 2015 Olivier Giulieri
4
+ https://github.com/evoluteur/colorpicker
5
+ */
6
+ !function(a){var b=0,c=window.navigator.userAgent,d=c.indexOf("MSIE ")>0,e=d?"-ie":"",f=d?!1:/mozilla/.test(c.toLowerCase())&&!/webkit/.test(c.toLowerCase()),g=[],h=["ffffff","000000","eeece1","1f497d","4f81bd","c0504d","9bbb59","8064a2","4bacc6","f79646"],i=["f2f2f2","7f7f7f","ddd9c3","c6d9f0","dbe5f1","f2dcdb","ebf1dd","e5e0ec","dbeef3","fdeada","d8d8d8","595959","c4bd97","8db3e2","b8cce4","e5b9b7","d7e3bc","ccc1d9","b7dde8","fbd5b5","bfbfbf","3f3f3f","938953","548dd4","95b3d7","d99694","c3d69b","b2a2c7","92cddc","fac08f","a5a5a5","262626","494429","17365d","366092","953734","76923c","5f497a","31859b","e36c09","7f7f7f","0c0c0c","1d1b10","0f243e","244061","632423","4f6128","3f3151","205867","974806"],j=["c00000","ff0000","ffc000","ffff00","92d050","00b050","00b0f0","0070c0","002060","7030a0"],k=[["003366","336699","3366cc","003399","000099","0000cc","000066"],["006666","006699","0099cc","0066cc","0033cc","0000ff","3333ff","333399"],["669999","009999","33cccc","00ccff","0099ff","0066ff","3366ff","3333cc","666699"],["339966","00cc99","00ffcc","00ffff","33ccff","3399ff","6699ff","6666ff","6600ff","6600cc"],["339933","00cc66","00ff99","66ffcc","66ffff","66ccff","99ccff","9999ff","9966ff","9933ff","9900ff"],["006600","00cc00","00ff00","66ff99","99ffcc","ccffff","ccccff","cc99ff","cc66ff","cc33ff","cc00ff","9900cc"],["003300","009933","33cc33","66ff66","99ff99","ccffcc","ffffff","ffccff","ff99ff","ff66ff","ff00ff","cc00cc","660066"],["333300","009900","66ff33","99ff66","ccff99","ffffcc","ffcccc","ff99cc","ff66cc","ff33cc","cc0099","993399"],["336600","669900","99ff33","ccff66","ffff99","ffcc99","ff9999","ff6699","ff3399","cc3399","990099"],["666633","99cc00","ccff33","ffff66","ffcc66","ff9966","ff6666","ff0066","d60094","993366"],["a58800","cccc00","ffff00","ffcc00","ff9933","ff6600","ff0033","cc0066","660033"],["996633","cc9900","ff9900","cc6600","ff3300","ff0000","cc0000","990033"],["663300","996600","cc3300","993300","990000","800000","993333"]],l="#0000ffff",m=function(a){var b=a.toString(16);return 1==b.length&&(b="0"+b),b},n=function(a){return m(Number(a))},o=function(a){var b=m(a);return b+b+b},p=function(a){if(a.length>10){var b=1+a.indexOf("("),c=a.indexOf(")"),d=a.substring(b,c).split(",");return["#",n(d[0]),n(d[1]),n(d[2])].join("")}return a};a.widget("evol.colorpicker",{version:"3.1.0",options:{color:null,showOn:"both",displayIndicator:!0,transparentColor:!1,history:!0,defaultPalette:"theme",strings:"Theme Colors,Standard Colors,Web Colors,Theme Colors,Back to Palette,History,No history yet."},_create:function(){var c=this;switch(this._paletteIdx="theme"==this.options.defaultPalette?1:2,this._id="evo-cp"+b++,this._enabled=!0,this.element.get(0).tagName){case"INPUT":var g=this.options.color,h=this.element,i=("focus"===this.options.showOn?"":"evo-pointer ")+"evo-colorind"+(f?"-ff":e),j="";if(this._isPopup=!0,this._palette=null,null!==g)h.val(g);else{var k=h.val();""!==k&&(g=this.options.color=k)}g===l?i+=" evo-transparent":j=null!==g?"background-color:"+g:"",h.addClass("colorPicker "+this._id).wrap('<div style="width:'+(this.element.width()+32)+"px;"+(d?"margin-bottom:-21px;":"")+(f?"padding:1px 0;":"")+'"></div>').after('<div class="'+i+'" style="'+j+'"></div>').on("keyup onpaste",function(){var b=a(this).val();b!=c.options.color&&c._setValue(b,!0)});var m=this.options.showOn;("both"===m||"focus"===m)&&h.on("focus",function(){c.showPalette()}),("both"===m||"button"===m)&&h.next().on("click",function(a){a.stopPropagation(),c.showPalette()});break;default:this._isPopup=!1,this._palette=this.element.html(this._paletteHTML()).attr("aria-haspopup","true"),this._bindColors()}g&&this.options.history&&this._add2History(g)},_paletteHTML:function(){var a=this._paletteIdx=Math.abs(this._paletteIdx),b=this.options,c=b.strings.split(","),d='<div class="evo-pop'+e+' ui-widget ui-widget-content ui-corner-all"'+(this._isPopup?' style="position:absolute"':"")+"><span>"+this["_paletteHTML"+a]()+'</span><div class="evo-more"><a href="javascript:void(0)">'+c[1+a]+"</a>";return b.history&&(d+='<a href="javascript:void(0)" class="evo-hist">'+c[5]+"</a>"),d+="</div>",b.displayIndicator&&(d+=this._colorIndHTML(this.options.color)+this._colorIndHTML("")),d+="</div>"},_colorIndHTML:function(a){var b=d?"evo-colorbox-ie ":"",c="";return a?a===l?b+="evo-transparent":c="background-color:"+a:c="display:none",'<div class="evo-color" style="float:left"><div style="'+c+'" class="'+b+'"></div><span>'+(a?a:"")+"</span></div>"},_paletteHTML1:function(){for(var a=this.options,b=a.strings.split(","),c='<td style="background-color:#',f=d?'"><div style="width:2px;"></div></td>':'"><span/></td>',g='<tr><th colspan="10" class="ui-widget-content">',k='<table class="evo-palette'+e+'">'+g+b[0]+"</th></tr><tr>",l=0;10>l;l++)k+=c+h[l]+f;for(k+="</tr>",d||(k+='<tr><th colspan="10"></th></tr>'),k+='<tr class="top">',l=0;10>l;l++)k+=c+i[l]+f;for(var m=1;4>m;m++)for(k+='</tr><tr class="in">',l=0;10>l;l++)k+=c+i[10*m+l]+f;for(k+='</tr><tr class="bottom">',l=40;50>l;l++)k+=c+i[l]+f;for(k+="</tr>"+g,a.transparentColor&&(k+='<div class="evo-transparent evo-tr-box"></div>'),k+=b[1]+"</th></tr><tr>",l=0;10>l;l++)k+=c+j[l]+f;return k+="</tr></table>"},_paletteHTML2:function(){for(var a,b,c='<td style="background-color:#',f=d?'"><div style="width:5px;"></div></td>':'"><span/></td>',g='<table class="evo-palette2'+e+'"><tr>',h="</tr></table>",i='<div class="evo-palcenter">',j=0,l=k.length;l>j;j++){i+=g;var m=k[j];for(a=0,b=m.length;b>a;a++)i+=c+m[a]+f;i+=h}i+='<div class="evo-sep"/>';var n="";for(i+=g,a=255;a>10;a-=10)i+=c+o(a)+f,a-=10,n+=c+o(a)+f;return i+=h+g+n+h+"</div>"},_switchPalette:function(b){if(this._enabled){var c,d,e,f=this.options.strings.split(",");if(a(b).hasClass("evo-hist")){var h=['<table class="evo-palette"><tr><th class="ui-widget-content">',f[5],"</th></tr></tr></table>",'<div class="evo-cHist">'];if(0===g.length)h.push("<p>&nbsp;",f[6],"</p>");else for(var i=g.length-1;i>-1;i--)9===g[i].length?h.push('<div class="evo-transparent"></div>'):h.push('<div style="background-color:',g[i],'"></div>');h.push("</div>"),c=-this._paletteIdx,d=h.join(""),e=f[4]}else this._paletteIdx<0?(c=-this._paletteIdx,this._palette.find(".evo-hist").show()):c=2==this._paletteIdx?1:2,d=this["_paletteHTML"+c](),e=f[c+1],this._paletteIdx=c;this._paletteIdx=c;var j=this._palette.find(".evo-more").prev().html(d).end().children().eq(0).html(e);0>c&&j.next().hide()}},showPalette:function(){if(this._enabled&&(a(".colorPicker").not("."+this._id).colorpicker("hidePalette"),null===this._palette)){this._palette=this.element.next().after(this._paletteHTML()).next().on("click",function(a){a.stopPropagation()}),this._bindColors();var b=this;a(document.body).on("click."+this._id,function(a){a.target!=b.element.get(0)&&b.hidePalette()})}return this},hidePalette:function(){if(this._isPopup&&this._palette){a(document.body).off("click."+this._id);var b=this;this._palette.off("mouseover click","td,.evo-transparent").fadeOut(function(){b._palette.remove(),b._palette=b._cTxt=null}).find(".evo-more a").off("click")}return this},_bindColors:function(){var b=this,c=this.options,d=this._palette.find("div.evo-color"),e=c.history?"td,.evo-cHist>div":"td";c.transparentColor&&(e+=",.evo-transparent"),this._cTxt1=d.eq(0).children().eq(0),this._cTxt2=d.eq(1).children().eq(0),this._palette.on("click",e,function(){if(b._enabled){var c=a(this);b._setValue(c.hasClass("evo-transparent")?l:p(c.attr("style").substring(17)))}}).on("mouseover",e,function(){if(b._enabled){var c=a(this),d=c.hasClass("evo-transparent")?l:p(c.attr("style").substring(17));b.options.displayIndicator&&b._setColorInd(d,2),b.element.trigger("mouseover.color",d)}}).find(".evo-more a").on("click",function(){b._switchPalette(this)})},val:function(a){return"undefined"==typeof a?this.options.color:(this._setValue(a),this)},_setValue:function(a,b){a=a.replace(/ /g,""),this.options.color=a,this._isPopup?(b||this.hidePalette(),this._setBoxColor(this.element.val(a).next(),a)):this._setColorInd(a,1),this.options.history&&this._paletteIdx>0&&this._add2History(a),this.element.trigger("change.color",a)},_setColorInd:function(a,b){var c=this["_cTxt"+b];this._setBoxColor(c,a),c.next().html(a)},_setBoxColor:function(a,b){b===l?a.addClass("evo-transparent").removeAttr("style"):a.removeClass("evo-transparent").attr("style","background-color:"+b)},_setOption:function(a,b){"color"==a?this._setValue(b,!0):this.options[a]=b},_add2History:function(a){for(var b=g.length,c=0;b>c;c++)if(a==g[c])return;b>27&&g.shift(),g.push(a)},enable:function(){var a=this.element;return this._isPopup?a.removeAttr("disabled"):a.css({opacity:"1","pointer-events":"auto"}),"focus"!==this.options.showOn&&this.element.next().addClass("evo-pointer"),a.removeAttr("aria-disabled"),this._enabled=!0,this},disable:function(){var a=this.element;return this._isPopup?a.attr("disabled","disabled"):(this.hidePalette(),a.css({opacity:"0.3","pointer-events":"none"})),"focus"!==this.options.showOn&&this.element.next().removeClass("evo-pointer"),a.attr("aria-disabled","true"),this._enabled=!1,this},isDisabled:function(){return!this._enabled},destroy:function(){a(document.body).off("click."+this._id),this._palette&&(this._palette.off("mouseover click","td,.evo-cHist>div,.evo-transparent").find(".evo-more a").off("click"),this._isPopup&&this._palette.remove(),this._palette=this._cTxt=null),this._isPopup&&this.element.next().off("click").remove().end().off("focus").unwrap(),this.element.removeClass("colorPicker "+this.id).empty(),a.Widget.prototype.destroy.call(this)}})}(jQuery);
js/admin/jquery.datetimepicker.js ADDED
@@ -0,0 +1,1851 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * @preserve jQuery DateTimePicker plugin v2.4.1
3
+ * @homepage http://xdsoft.net/jqplugins/datetimepicker/
4
+ * (c) 2014, Chupurnov Valeriy.
5
+ */
6
+ /*global document,window,jQuery,setTimeout,clearTimeout*/
7
+ (function ($) {
8
+ 'use strict';
9
+ var default_options = {
10
+ i18n: {
11
+ ar: { // Arabic
12
+ months: [
13
+ "كانون الثاني", "شباط", "آذار", "نيسان", "مايو", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"
14
+ ],
15
+ dayOfWeek: [
16
+ "ن", "ث", "ع", "خ", "ج", "س", "ح"
17
+ ]
18
+ },
19
+ ro: { // Romanian
20
+ months: [
21
+ "ianuarie", "februarie", "martie", "aprilie", "mai", "iunie", "iulie", "august", "septembrie", "octombrie", "noiembrie", "decembrie"
22
+ ],
23
+ dayOfWeek: [
24
+ "l", "ma", "mi", "j", "v", "s", "d"
25
+ ]
26
+ },
27
+ id: { // Indonesian
28
+ months: [
29
+ "Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"
30
+ ],
31
+ dayOfWeek: [
32
+ "Sen", "Sel", "Rab", "Kam", "Jum", "Sab", "Min"
33
+ ]
34
+ },
35
+ bg: { // Bulgarian
36
+ months: [
37
+ "Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"
38
+ ],
39
+ dayOfWeek: [
40
+ "Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"
41
+ ]
42
+ },
43
+ fa: { // Persian/Farsi
44
+ months: [
45
+ 'فروردین', 'اردیبهشت', 'خرداد', 'تیر', 'مرداد', 'شهریور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند'
46
+ ],
47
+ dayOfWeek: [
48
+ 'یکشنبه', 'دوشنبه', 'سه شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'
49
+ ]
50
+ },
51
+ ru: { // Russian
52
+ months: [
53
+ 'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'
54
+ ],
55
+ dayOfWeek: [
56
+ "Вск", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"
57
+ ]
58
+ },
59
+ uk: { // Ukrainian
60
+ months: [
61
+ 'Січень', 'Лютий', 'Березень', 'Квітень', 'Травень', 'Червень', 'Липень', 'Серпень', 'Вересень', 'Жовтень', 'Листопад', 'Грудень'
62
+ ],
63
+ dayOfWeek: [
64
+ "Ндл", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Сбт"
65
+ ]
66
+ },
67
+ en: { // English
68
+ months: [
69
+ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
70
+ ],
71
+ dayOfWeek: [
72
+ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
73
+ ]
74
+ },
75
+ el: { // Ελληνικά
76
+ months: [
77
+ "Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"
78
+ ],
79
+ dayOfWeek: [
80
+ "Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ"
81
+ ]
82
+ },
83
+ de: { // German
84
+ months: [
85
+ 'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'
86
+ ],
87
+ dayOfWeek: [
88
+ "So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"
89
+ ]
90
+ },
91
+ nl: { // Dutch
92
+ months: [
93
+ "januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"
94
+ ],
95
+ dayOfWeek: [
96
+ "zo", "ma", "di", "wo", "do", "vr", "za"
97
+ ]
98
+ },
99
+ tr: { // Turkish
100
+ months: [
101
+ "Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"
102
+ ],
103
+ dayOfWeek: [
104
+ "Paz", "Pts", "Sal", "Çar", "Per", "Cum", "Cts"
105
+ ]
106
+ },
107
+ fr: { //French
108
+ months: [
109
+ "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"
110
+ ],
111
+ dayOfWeek: [
112
+ "Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"
113
+ ]
114
+ },
115
+ es: { // Spanish
116
+ months: [
117
+ "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"
118
+ ],
119
+ dayOfWeek: [
120
+ "Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb"
121
+ ]
122
+ },
123
+ th: { // Thai
124
+ months: [
125
+ 'มกราคม', 'กุมภาพันธ์', 'มีนาคม', 'เมษายน', 'พฤษภาคม', 'มิถุนายน', 'กรกฎาคม', 'สิงหาคม', 'กันยายน', 'ตุลาคม', 'พฤศจิกายน', 'ธันวาคม'
126
+ ],
127
+ dayOfWeek: [
128
+ 'อา.', 'จ.', 'อ.', 'พ.', 'พฤ.', 'ศ.', 'ส.'
129
+ ]
130
+ },
131
+ pl: { // Polish
132
+ months: [
133
+ "styczeń", "luty", "marzec", "kwiecień", "maj", "czerwiec", "lipiec", "sierpień", "wrzesień", "październik", "listopad", "grudzień"
134
+ ],
135
+ dayOfWeek: [
136
+ "nd", "pn", "wt", "śr", "cz", "pt", "sb"
137
+ ]
138
+ },
139
+ pt: { // Portuguese
140
+ months: [
141
+ "Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"
142
+ ],
143
+ dayOfWeek: [
144
+ "Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab"
145
+ ]
146
+ },
147
+ ch: { // Simplified Chinese
148
+ months: [
149
+ "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"
150
+ ],
151
+ dayOfWeek: [
152
+ "日", "一", "二", "三", "四", "五", "六"
153
+ ]
154
+ },
155
+ se: { // Swedish
156
+ months: [
157
+ "Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"
158
+ ],
159
+ dayOfWeek: [
160
+ "Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör"
161
+ ]
162
+ },
163
+ kr: { // Korean
164
+ months: [
165
+ "1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"
166
+ ],
167
+ dayOfWeek: [
168
+ "일", "월", "화", "수", "목", "금", "토"
169
+ ]
170
+ },
171
+ it: { // Italian
172
+ months: [
173
+ "Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"
174
+ ],
175
+ dayOfWeek: [
176
+ "Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"
177
+ ]
178
+ },
179
+ da: { // Dansk
180
+ months: [
181
+ "January", "Februar", "Marts", "April", "Maj", "Juni", "July", "August", "September", "Oktober", "November", "December"
182
+ ],
183
+ dayOfWeek: [
184
+ "Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"
185
+ ]
186
+ },
187
+ no: { // Norwegian
188
+ months: [
189
+ "Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"
190
+ ],
191
+ dayOfWeek: [
192
+ "Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"
193
+ ]
194
+ },
195
+ ja: { // Japanese
196
+ months: [
197
+ "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"
198
+ ],
199
+ dayOfWeek: [
200
+ "日", "月", "火", "水", "木", "金", "土"
201
+ ]
202
+ },
203
+ vi: { // Vietnamese
204
+ months: [
205
+ "Tháng 1", "Tháng 2", "Tháng 3", "Tháng 4", "Tháng 5", "Tháng 6", "Tháng 7", "Tháng 8", "Tháng 9", "Tháng 10", "Tháng 11", "Tháng 12"
206
+ ],
207
+ dayOfWeek: [
208
+ "CN", "T2", "T3", "T4", "T5", "T6", "T7"
209
+ ]
210
+ },
211
+ sl: { // Slovenščina
212
+ months: [
213
+ "Januar", "Februar", "Marec", "April", "Maj", "Junij", "Julij", "Avgust", "September", "Oktober", "November", "December"
214
+ ],
215
+ dayOfWeek: [
216
+ "Ned", "Pon", "Tor", "Sre", "Čet", "Pet", "Sob"
217
+ ]
218
+ },
219
+ cs: { // Čeština
220
+ months: [
221
+ "Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"
222
+ ],
223
+ dayOfWeek: [
224
+ "Ne", "Po", "Út", "St", "Čt", "Pá", "So"
225
+ ]
226
+ },
227
+ hu: { // Hungarian
228
+ months: [
229
+ "Január", "Február", "Március", "Április", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December"
230
+ ],
231
+ dayOfWeek: [
232
+ "Va", "Hé", "Ke", "Sze", "Cs", "Pé", "Szo"
233
+ ]
234
+ },
235
+ az: { //Azerbaijanian (Azeri)
236
+ months: [
237
+ "Yanvar", "Fevral", "Mart", "Aprel", "May", "Iyun", "Iyul", "Avqust", "Sentyabr", "Oktyabr", "Noyabr", "Dekabr"
238
+ ],
239
+ dayOfWeek: [
240
+ "B", "Be", "Ça", "Ç", "Ca", "C", "Ş"
241
+ ]
242
+ },
243
+ bs: { //Bosanski
244
+ months: [
245
+ "Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"
246
+ ],
247
+ dayOfWeek: [
248
+ "Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub"
249
+ ]
250
+ },
251
+ ca: { //Català
252
+ months: [
253
+ "Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"
254
+ ],
255
+ dayOfWeek: [
256
+ "Dg", "Dl", "Dt", "Dc", "Dj", "Dv", "Ds"
257
+ ]
258
+ },
259
+ 'en-GB': { //English (British)
260
+ months: [
261
+ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
262
+ ],
263
+ dayOfWeek: [
264
+ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
265
+ ]
266
+ },
267
+ et: { //"Eesti"
268
+ months: [
269
+ "Jaanuar", "Veebruar", "Märts", "Aprill", "Mai", "Juuni", "Juuli", "August", "September", "Oktoober", "November", "Detsember"
270
+ ],
271
+ dayOfWeek: [
272
+ "P", "E", "T", "K", "N", "R", "L"
273
+ ]
274
+ },
275
+ eu: { //Euskara
276
+ months: [
277
+ "Urtarrila", "Otsaila", "Martxoa", "Apirila", "Maiatza", "Ekaina", "Uztaila", "Abuztua", "Iraila", "Urria", "Azaroa", "Abendua"
278
+ ],
279
+ dayOfWeek: [
280
+ "Ig.", "Al.", "Ar.", "Az.", "Og.", "Or.", "La."
281
+ ]
282
+ },
283
+ fi: { //Finnish (Suomi)
284
+ months: [
285
+ "Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kesäkuu", "Heinäkuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu"
286
+ ],
287
+ dayOfWeek: [
288
+ "Su", "Ma", "Ti", "Ke", "To", "Pe", "La"
289
+ ]
290
+ },
291
+ gl: { //Galego
292
+ months: [
293
+ "Xan", "Feb", "Maz", "Abr", "Mai", "Xun", "Xul", "Ago", "Set", "Out", "Nov", "Dec"
294
+ ],
295
+ dayOfWeek: [
296
+ "Dom", "Lun", "Mar", "Mer", "Xov", "Ven", "Sab"
297
+ ]
298
+ },
299
+ hr: { //Hrvatski
300
+ months: [
301
+ "Siječanj", "Veljača", "Ožujak", "Travanj", "Svibanj", "Lipanj", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac"
302
+ ],
303
+ dayOfWeek: [
304
+ "Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub"
305
+ ]
306
+ },
307
+ ko: { //Korean (한국어)
308
+ months: [
309
+ "1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"
310
+ ],
311
+ dayOfWeek: [
312
+ "일", "월", "화", "수", "목", "금", "토"
313
+ ]
314
+ },
315
+ lt: { //Lithuanian (lietuvių)
316
+ months: [
317
+ "Sausio", "Vasario", "Kovo", "Balandžio", "Gegužės", "Birželio", "Liepos", "Rugpjūčio", "Rugsėjo", "Spalio", "Lapkričio", "Gruodžio"
318
+ ],
319
+ dayOfWeek: [
320
+ "Sek", "Pir", "Ant", "Tre", "Ket", "Pen", "Šeš"
321
+ ]
322
+ },
323
+ lv: { //Latvian (Latviešu)
324
+ months: [
325
+ "Janvāris", "Februāris", "Marts", "Aprīlis ", "Maijs", "Jūnijs", "Jūlijs", "Augusts", "Septembris", "Oktobris", "Novembris", "Decembris"
326
+ ],
327
+ dayOfWeek: [
328
+ "Sv", "Pr", "Ot", "Tr", "Ct", "Pk", "St"
329
+ ]
330
+ },
331
+ mk: { //Macedonian (Македонски)
332
+ months: [
333
+ "јануари", "февруари", "март", "април", "мај", "јуни", "јули", "август", "септември", "октомври", "ноември", "декември"
334
+ ],
335
+ dayOfWeek: [
336
+ "нед", "пон", "вто", "сре", "чет", "пет", "саб"
337
+ ]
338
+ },
339
+ mn: { //Mongolian (Монгол)
340
+ months: [
341
+ "1-р сар", "2-р сар", "3-р сар", "4-р сар", "5-р сар", "6-р сар", "7-р сар", "8-р сар", "9-р сар", "10-р сар", "11-р сар", "12-р сар"
342
+ ],
343
+ dayOfWeek: [
344
+ "Дав", "Мяг", "Лха", "Пүр", "Бсн", "Бям", "Ням"
345
+ ]
346
+ },
347
+ 'pt-BR': { //Português(Brasil)
348
+ months: [
349
+ "Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"
350
+ ],
351
+ dayOfWeek: [
352
+ "Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"
353
+ ]
354
+ },
355
+ sk: { //Slovenčina
356
+ months: [
357
+ "Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"
358
+ ],
359
+ dayOfWeek: [
360
+ "Ne", "Po", "Ut", "St", "Št", "Pi", "So"
361
+ ]
362
+ },
363
+ sq: { //Albanian (Shqip)
364
+ months: [
365
+ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
366
+ ],
367
+ dayOfWeek: [
368
+ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
369
+ ]
370
+ },
371
+ 'sr-YU': { //Serbian (Srpski)
372
+ months: [
373
+ "Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"
374
+ ],
375
+ dayOfWeek: [
376
+ "Ned", "Pon", "Uto", "Sre", "čet", "Pet", "Sub"
377
+ ]
378
+ },
379
+ sr: { //Serbian Cyrillic (Српски)
380
+ months: [
381
+ "јануар", "фебруар", "март", "април", "мај", "јун", "јул", "август", "септембар", "октобар", "новембар", "децембар"
382
+ ],
383
+ dayOfWeek: [
384
+ "нед", "пон", "уто", "сре", "чет", "пет", "суб"
385
+ ]
386
+ },
387
+ sv: { //Svenska
388
+ months: [
389
+ "Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"
390
+ ],
391
+ dayOfWeek: [
392
+ "Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör"
393
+ ]
394
+ },
395
+ 'zh-TW': { //Traditional Chinese (繁體中文)
396
+ months: [
397
+ "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"
398
+ ],
399
+ dayOfWeek: [
400
+ "日", "一", "二", "三", "四", "五", "六"
401
+ ]
402
+ },
403
+ zh: { //Simplified Chinese (简体中文)
404
+ months: [
405
+ "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"
406
+ ],
407
+ dayOfWeek: [
408
+ "日", "一", "二", "三", "四", "五", "六"
409
+ ]
410
+ },
411
+ he: { //Hebrew (עברית)
412
+ months: [
413
+ 'ינואר', 'פברואר', 'מרץ', 'אפריל', 'מאי', 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', 'נובמבר', 'דצמבר'
414
+ ],
415
+ dayOfWeek: [
416
+ 'א\'', 'ב\'', 'ג\'', 'ד\'', 'ה\'', 'ו\'', 'שבת'
417
+ ]
418
+ }
419
+ },
420
+ value: '',
421
+ lang: 'en',
422
+
423
+ format: 'Y/m/d H:i',
424
+ formatTime: 'H:i',
425
+ formatDate: 'Y/m/d',
426
+
427
+ startDate: false, // new Date(), '1986/12/08', '-1970/01/05','-1970/01/05',
428
+ step: 60,
429
+ monthChangeSpinner: true,
430
+
431
+ closeOnDateSelect: false,
432
+ closeOnWithoutClick: true,
433
+ closeOnInputClick: true,
434
+
435
+ timepicker: true,
436
+ datepicker: true,
437
+ weeks: false,
438
+
439
+ defaultTime: false, // use formatTime format (ex. '10:00' for formatTime: 'H:i')
440
+ defaultDate: false, // use formatDate format (ex new Date() or '1986/12/08' or '-1970/01/05' or '-1970/01/05')
441
+
442
+ minDate: false,
443
+ maxDate: false,
444
+ minTime: false,
445
+ maxTime: false,
446
+
447
+ allowTimes: [],
448
+ opened: false,
449
+ initTime: true,
450
+ inline: false,
451
+ theme: '',
452
+
453
+ onSelectDate: function () {},
454
+ onSelectTime: function () {},
455
+ onChangeMonth: function () {},
456
+ onChangeYear: function () {},
457
+ onChangeDateTime: function () {},
458
+ onShow: function () {},
459
+ onClose: function () {},
460
+ onGenerate: function () {},
461
+
462
+ withoutCopyright: true,
463
+ inverseButton: false,
464
+ hours12: false,
465
+ next: 'xdsoft_next',
466
+ prev : 'xdsoft_prev',
467
+ dayOfWeekStart: 0,
468
+ parentID: 'body',
469
+ timeHeightInTimePicker: 25,
470
+ timepickerScrollbar: true,
471
+ todayButton: true,
472
+ defaultSelect: true,
473
+
474
+ scrollMonth: true,
475
+ scrollTime: true,
476
+ scrollInput: true,
477
+
478
+ lazyInit: false,
479
+ mask: false,
480
+ validateOnBlur: true,
481
+ allowBlank: true,
482
+ yearStart: 1950,
483
+ yearEnd: 2050,
484
+ style: '',
485
+ id: '',
486
+ fixed: false,
487
+ roundTime: 'round', // ceil, floor
488
+ className: '',
489
+ weekends: [],
490
+ disabledDates : [],
491
+ yearOffset: 0,
492
+ beforeShowDay: null,
493
+
494
+ enterLikeTab: true
495
+ };
496
+ // fix for ie8
497
+ if (!Array.prototype.indexOf) {
498
+ Array.prototype.indexOf = function (obj, start) {
499
+ var i, j;
500
+ for (i = (start || 0), j = this.length; i < j; i += 1) {
501
+ if (this[i] === obj) { return i; }
502
+ }
503
+ return -1;
504
+ };
505
+ }
506
+ Date.prototype.countDaysInMonth = function () {
507
+ return new Date(this.getFullYear(), this.getMonth() + 1, 0).getDate();
508
+ };
509
+ $.fn.xdsoftScroller = function (percent) {
510
+ return this.each(function () {
511
+ var timeboxparent = $(this),
512
+ pointerEventToXY = function (e) {
513
+ var out = {x: 0, y: 0},
514
+ touch;
515
+ if (e.type === 'touchstart' || e.type === 'touchmove' || e.type === 'touchend' || e.type === 'touchcancel') {
516
+ touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];
517
+ out.x = touch.clientX;
518
+ out.y = touch.clientY;
519
+ } else if (e.type === 'mousedown' || e.type === 'mouseup' || e.type === 'mousemove' || e.type === 'mouseover' || e.type === 'mouseout' || e.type === 'mouseenter' || e.type === 'mouseleave') {
520
+ out.x = e.clientX;
521
+ out.y = e.clientY;
522
+ }
523
+ return out;
524
+ },
525
+ move = 0,
526
+ timebox,
527
+ parentHeight,
528
+ height,
529
+ scrollbar,
530
+ scroller,
531
+ maximumOffset = 100,
532
+ start = false,
533
+ startY = 0,
534
+ startTop = 0,
535
+ h1 = 0,
536
+ touchStart = false,
537
+ startTopScroll = 0,
538
+ calcOffset = function () {};
539
+ if (percent === 'hide') {
540
+ timeboxparent.find('.xdsoft_scrollbar').hide();
541
+ return;
542
+ }
543
+ if (!$(this).hasClass('xdsoft_scroller_box')) {
544
+ timebox = timeboxparent.children().eq(0);
545
+ parentHeight = timeboxparent[0].clientHeight;
546
+ height = timebox[0].offsetHeight;
547
+ scrollbar = $('<div class="xdsoft_scrollbar"></div>');
548
+ scroller = $('<div class="xdsoft_scroller"></div>');
549
+ scrollbar.append(scroller);
550
+
551
+ timeboxparent.addClass('xdsoft_scroller_box').append(scrollbar);
552
+ calcOffset = function calcOffset(event) {
553
+ var offset = pointerEventToXY(event).y - startY + startTopScroll;
554
+ if (offset < 0) {
555
+ offset = 0;
556
+ }
557
+ if (offset + scroller[0].offsetHeight > h1) {
558
+ offset = h1 - scroller[0].offsetHeight;
559
+ }
560
+ timeboxparent.trigger('scroll_element.xdsoft_scroller', [maximumOffset ? offset / maximumOffset : 0]);
561
+ };
562
+
563
+ scroller
564
+ .on('touchstart.xdsoft_scroller mousedown.xdsoft_scroller', function (event) {
565
+ if (!parentHeight) {
566
+ timeboxparent.trigger('resize_scroll.xdsoft_scroller', [percent]);
567
+ }
568
+
569
+ startY = pointerEventToXY(event).y;
570
+ startTopScroll = parseInt(scroller.css('margin-top'), 10);
571
+ h1 = scrollbar[0].offsetHeight;
572
+
573
+ if (event.type === 'mousedown') {
574
+ if (document) {
575
+ $(document.body).addClass('xdsoft_noselect');
576
+ }
577
+ $([document.body, window]).on('mouseup.xdsoft_scroller', function arguments_callee() {
578
+ $([document.body, window]).off('mouseup.xdsoft_scroller', arguments_callee)
579
+ .off('mousemove.xdsoft_scroller', calcOffset)
580
+ .removeClass('xdsoft_noselect');
581
+ });
582
+ $(document.body).on('mousemove.xdsoft_scroller', calcOffset);
583
+ } else {
584
+ touchStart = true;
585
+ event.stopPropagation();
586
+ event.preventDefault();
587
+ }
588
+ })
589
+ .on('touchmove', function (event) {
590
+ if (touchStart) {
591
+ event.preventDefault();
592
+ calcOffset(event);
593
+ }
594
+ })
595
+ .on('touchend touchcancel', function (event) {
596
+ touchStart = false;
597
+ startTopScroll = 0;
598
+ });
599
+
600
+ timeboxparent
601
+ .on('scroll_element.xdsoft_scroller', function (event, percentage) {
602
+ if (!parentHeight) {
603
+ timeboxparent.trigger('resize_scroll.xdsoft_scroller', [percentage, true]);
604
+ }
605
+ percentage = percentage > 1 ? 1 : (percentage < 0 || isNaN(percentage)) ? 0 : percentage;
606
+
607
+ scroller.css('margin-top', maximumOffset * percentage);
608
+
609
+ setTimeout(function () {
610
+ timebox.css('marginTop', -parseInt((timebox[0].offsetHeight - parentHeight) * percentage, 10));
611
+ }, 10);
612
+ })
613
+ .on('resize_scroll.xdsoft_scroller', function (event, percentage, noTriggerScroll) {
614
+ var percent, sh;
615
+ parentHeight = timeboxparent[0].clientHeight;
616
+ height = timebox[0].offsetHeight;
617
+ percent = parentHeight / height;
618
+ sh = percent * scrollbar[0].offsetHeight;
619
+ if (percent > 1) {
620
+ scroller.hide();
621
+ } else {
622
+ scroller.show();
623
+ scroller.css('height', parseInt(sh > 10 ? sh : 10, 10));
624
+ maximumOffset = scrollbar[0].offsetHeight - scroller[0].offsetHeight;
625
+ if (noTriggerScroll !== true) {
626
+ timeboxparent.trigger('scroll_element.xdsoft_scroller', [percentage || Math.abs(parseInt(timebox.css('marginTop'), 10)) / (height - parentHeight)]);
627
+ }
628
+ }
629
+ });
630
+
631
+ timeboxparent.on('mousewheel', function (event) {
632
+ var top = Math.abs(parseInt(timebox.css('marginTop'), 10));
633
+
634
+ top = top - (event.deltaY * 20);
635
+ if (top < 0) {
636
+ top = 0;
637
+ }
638
+
639
+ timeboxparent.trigger('scroll_element.xdsoft_scroller', [top / (height - parentHeight)]);
640
+ event.stopPropagation();
641
+ return false;
642
+ });
643
+
644
+ timeboxparent.on('touchstart', function (event) {
645
+ start = pointerEventToXY(event);
646
+ startTop = Math.abs(parseInt(timebox.css('marginTop'), 10));
647
+ });
648
+
649
+ timeboxparent.on('touchmove', function (event) {
650
+ if (start) {
651
+ event.preventDefault();
652
+ var coord = pointerEventToXY(event);
653
+ timeboxparent.trigger('scroll_element.xdsoft_scroller', [(startTop - (coord.y - start.y)) / (height - parentHeight)]);
654
+ }
655
+ });
656
+
657
+ timeboxparent.on('touchend touchcancel', function (event) {
658
+ start = false;
659
+ startTop = 0;
660
+ });
661
+ }
662
+ timeboxparent.trigger('resize_scroll.xdsoft_scroller', [percent]);
663
+ });
664
+ };
665
+
666
+ $.fn.datetimepicker = function (opt) {
667
+ var KEY0 = 48,
668
+ KEY9 = 57,
669
+ _KEY0 = 96,
670
+ _KEY9 = 105,
671
+ CTRLKEY = 17,
672
+ DEL = 46,
673
+ ENTER = 13,
674
+ ESC = 27,
675
+ BACKSPACE = 8,
676
+ ARROWLEFT = 37,
677
+ ARROWUP = 38,
678
+ ARROWRIGHT = 39,
679
+ ARROWDOWN = 40,
680
+ TAB = 9,
681
+ F5 = 116,
682
+ AKEY = 65,
683
+ CKEY = 67,
684
+ VKEY = 86,
685
+ ZKEY = 90,
686
+ YKEY = 89,
687
+ ctrlDown = false,
688
+ options = ($.isPlainObject(opt) || !opt) ? $.extend(true, {}, default_options, opt) : $.extend(true, {}, default_options),
689
+
690
+ lazyInitTimer = 0,
691
+ createDateTimePicker,
692
+ destroyDateTimePicker,
693
+
694
+ lazyInit = function (input) {
695
+ input
696
+ .on('open.xdsoft focusin.xdsoft mousedown.xdsoft', function initOnActionCallback(event) {
697
+ if (input.is(':disabled') || input.data('xdsoft_datetimepicker')) {
698
+ return;
699
+ }
700
+ clearTimeout(lazyInitTimer);
701
+ lazyInitTimer = setTimeout(function () {
702
+
703
+ if (!input.data('xdsoft_datetimepicker')) {
704
+ createDateTimePicker(input);
705
+ }
706
+ input
707
+ .off('open.xdsoft focusin.xdsoft mousedown.xdsoft', initOnActionCallback)
708
+ .trigger('open.xdsoft');
709
+ }, 100);
710
+ });
711
+ };
712
+
713
+ createDateTimePicker = function (input) {
714
+ var datetimepicker = $('<div ' + (options.id ? 'id="' + options.id + '"' : '') + ' ' + (options.style ? 'style="' + options.style + '"' : '') + ' class="xdsoft_datetimepicker xdsoft_' + options.theme + ' xdsoft_noselect ' + (options.weeks ? ' xdsoft_showweeks' : '') + options.className + '"></div>'),
715
+ xdsoft_copyright = $('<div class="xdsoft_copyright"><a target="_blank" href="http://xdsoft.net/jqplugins/datetimepicker/">xdsoft.net</a></div>'),
716
+ datepicker = $('<div class="xdsoft_datepicker active"></div>'),
717
+ mounth_picker = $('<div class="xdsoft_mounthpicker"><button type="button" class="xdsoft_prev"></button><button type="button" class="xdsoft_today_button"></button>' +
718
+ '<div class="xdsoft_label xdsoft_month"><span></span><i></i></div>' +
719
+ '<div class="xdsoft_label xdsoft_year"><span></span><i></i></div>' +
720
+ '<button type="button" class="xdsoft_next"></button></div>'),
721
+ calendar = $('<div class="xdsoft_calendar"></div>'),
722
+ timepicker = $('<div class="xdsoft_timepicker active"><button type="button" class="xdsoft_prev"></button><div class="xdsoft_time_box"></div><button type="button" class="xdsoft_next"></button></div>'),
723
+ timeboxparent = timepicker.find('.xdsoft_time_box').eq(0),
724
+ timebox = $('<div class="xdsoft_time_variant"></div>'),
725
+ /*scrollbar = $('<div class="xdsoft_scrollbar"></div>'),
726
+ scroller = $('<div class="xdsoft_scroller"></div>'),*/
727
+ monthselect = $('<div class="xdsoft_select xdsoft_monthselect"><div></div></div>'),
728
+ yearselect = $('<div class="xdsoft_select xdsoft_yearselect"><div></div></div>'),
729
+ triggerAfterOpen = false,
730
+ XDSoft_datetime,
731
+ //scroll_element,
732
+ xchangeTimer,
733
+ timerclick,
734
+ current_time_index,
735
+ setPos,
736
+ timer = 0,
737
+ timer1 = 0,
738
+ _xdsoft_datetime;
739
+
740
+ mounth_picker
741
+ .find('.xdsoft_month span')
742
+ .after(monthselect);
743
+ mounth_picker
744
+ .find('.xdsoft_year span')
745
+ .after(yearselect);
746
+
747
+ mounth_picker
748
+ .find('.xdsoft_month,.xdsoft_year')
749
+ .on('mousedown.xdsoft', function (event) {
750
+ var select = $(this).find('.xdsoft_select').eq(0),
751
+ val = 0,
752
+ top = 0,
753
+ visible = select.is(':visible'),
754
+ items,
755
+ i;
756
+
757
+ mounth_picker
758
+ .find('.xdsoft_select')
759
+ .hide();
760
+ if (_xdsoft_datetime.currentTime) {
761
+ val = _xdsoft_datetime.currentTime[$(this).hasClass('xdsoft_month') ? 'getMonth' : 'getFullYear']();
762
+ }
763
+
764
+ select[visible ? 'hide' : 'show']();
765
+ for (items = select.find('div.xdsoft_option'), i = 0; i < items.length; i += 1) {
766
+ if (items.eq(i).data('value') === val) {
767
+ break;
768
+ } else {
769
+ top += items[0].offsetHeight;
770
+ }
771
+ }
772
+
773
+ select.xdsoftScroller(top / (select.children()[0].offsetHeight - (select[0].clientHeight)));
774
+ event.stopPropagation();
775
+ return false;
776
+ });
777
+
778
+ mounth_picker
779
+ .find('.xdsoft_select')
780
+ .xdsoftScroller()
781
+ .on('mousedown.xdsoft', function (event) {
782
+ event.stopPropagation();
783
+ event.preventDefault();
784
+ })
785
+ .on('mousedown.xdsoft', '.xdsoft_option', function (event) {
786
+ var year = _xdsoft_datetime.currentTime.getFullYear();
787
+ if (_xdsoft_datetime && _xdsoft_datetime.currentTime) {
788
+ _xdsoft_datetime.currentTime[$(this).parent().parent().hasClass('xdsoft_monthselect') ? 'setMonth' : 'setFullYear']($(this).data('value'));
789
+ }
790
+
791
+ $(this).parent().parent().hide();
792
+
793
+ datetimepicker.trigger('xchange.xdsoft');
794
+ if (options.onChangeMonth && $.isFunction(options.onChangeMonth)) {
795
+ options.onChangeMonth.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));
796
+ }
797
+
798
+ if (year !== _xdsoft_datetime.currentTime.getFullYear() && $.isFunction(options.onChangeYear)) {
799
+ options.onChangeYear.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));
800
+ }
801
+ });
802
+
803
+ datetimepicker.setOptions = function (_options) {
804
+ options = $.extend(true, {}, options, _options);
805
+
806
+ if (_options.allowTimes && $.isArray(_options.allowTimes) && _options.allowTimes.length) {
807
+ options.allowTimes = $.extend(true, [], _options.allowTimes);
808
+ }
809
+
810
+ if (_options.weekends && $.isArray(_options.weekends) && _options.weekends.length) {
811
+ options.weekends = $.extend(true, [], _options.weekends);
812
+ }
813
+
814
+ if (_options.disabledDates && $.isArray(_options.disabledDates) && _options.disabledDates.length) {
815
+ options.disabledDates = $.extend(true, [], _options.disabledDates);
816
+ }
817
+
818
+ if ((options.open || options.opened) && (!options.inline)) {
819
+ input.trigger('open.xdsoft');
820
+ }
821
+
822
+ if (options.inline) {
823
+ triggerAfterOpen = true;
824
+ datetimepicker.addClass('xdsoft_inline');
825
+ input.after(datetimepicker).hide();
826
+ }
827
+
828
+ if (options.inverseButton) {
829
+ options.next = 'xdsoft_prev';
830
+ options.prev = 'xdsoft_next';
831
+ }
832
+
833
+ if (options.datepicker) {
834
+ datepicker.addClass('active');
835
+ } else {
836
+ datepicker.removeClass('active');
837
+ }
838
+
839
+ if (options.timepicker) {
840
+ timepicker.addClass('active');
841
+ } else {
842
+ timepicker.removeClass('active');
843
+ }
844
+
845
+ if (options.value) {
846
+ if (input && input.val) {
847
+ input.val(options.value);
848
+ }
849
+ _xdsoft_datetime.setCurrentTime(options.value);
850
+ }
851
+
852
+ if (isNaN(options.dayOfWeekStart)) {
853
+ options.dayOfWeekStart = 0;
854
+ } else {
855
+ options.dayOfWeekStart = parseInt(options.dayOfWeekStart, 10) % 7;
856
+ }
857
+
858
+ if (!options.timepickerScrollbar) {
859
+ timeboxparent.xdsoftScroller('hide');
860
+ }
861
+
862
+ if (options.minDate && /^-(.*)$/.test(options.minDate)) {
863
+ options.minDate = _xdsoft_datetime.strToDateTime(options.minDate).dateFormat(options.formatDate);
864
+ }
865
+
866
+ if (options.maxDate && /^\+(.*)$/.test(options.maxDate)) {
867
+ options.maxDate = _xdsoft_datetime.strToDateTime(options.maxDate).dateFormat(options.formatDate);
868
+ }
869
+
870
+ mounth_picker
871
+ .find('.xdsoft_today_button')
872
+ .css('visibility', !options.todayButton ? 'hidden' : 'visible');
873
+
874
+ if (options.mask) {
875
+ var e,
876
+ getCaretPos = function (input) {
877
+ try {
878
+ if (document.selection && document.selection.createRange) {
879
+ var range = document.selection.createRange();
880
+ return range.getBookmark().charCodeAt(2) - 2;
881
+ }
882
+ if (input.setSelectionRange) {
883
+ return input.selectionStart;
884
+ }
885
+ } catch (e) {
886
+ return 0;
887
+ }
888
+ },
889
+ setCaretPos = function (node, pos) {
890
+ node = (typeof node === "string" || node instanceof String) ? document.getElementById(node) : node;
891
+ if (!node) {
892
+ return false;
893
+ }
894
+ if (node.createTextRange) {
895
+ var textRange = node.createTextRange();
896
+ textRange.collapse(true);
897
+ textRange.moveEnd('character', pos);
898
+ textRange.moveStart('character', pos);
899
+ textRange.select();
900
+ return true;
901
+ }
902
+ if (node.setSelectionRange) {
903
+ node.setSelectionRange(pos, pos);
904
+ return true;
905
+ }
906
+ return false;
907
+ },
908
+ isValidValue = function (mask, value) {
909
+ var reg = mask
910
+ .replace(/([\[\]\/\{\}\(\)\-\.\+]{1})/g, '\\$1')
911
+ .replace(/_/g, '{digit+}')
912
+ .replace(/([0-9]{1})/g, '{digit$1}')
913
+ .replace(/\{digit([0-9]{1})\}/g, '[0-$1_]{1}')
914
+ .replace(/\{digit[\+]\}/g, '[0-9_]{1}');
915
+ return (new RegExp(reg)).test(value);
916
+ };
917
+ input.off('keydown.xdsoft');
918
+
919
+ if (options.mask === true) {
920
+ options.mask = options.format
921
+ .replace(/Y/g, '9999')
922
+ .replace(/F/g, '9999')
923
+ .replace(/m/g, '19')
924
+ .replace(/d/g, '39')
925
+ .replace(/H/g, '29')
926
+ .replace(/i/g, '59')
927
+ .replace(/s/g, '59');
928
+ }
929
+
930
+ if ($.type(options.mask) === 'string') {
931
+ if (!isValidValue(options.mask, input.val())) {
932
+ input.val(options.mask.replace(/[0-9]/g, '_'));
933
+ }
934
+
935
+ input.on('keydown.xdsoft', function (event) {
936
+ var val = this.value,
937
+ key = event.which,
938
+ pos,
939
+ digit;
940
+
941
+ if (((key >= KEY0 && key <= KEY9) || (key >= _KEY0 && key <= _KEY9)) || (key === BACKSPACE || key === DEL)) {
942
+ pos = getCaretPos(this);
943
+ digit = (key !== BACKSPACE && key !== DEL) ? String.fromCharCode((_KEY0 <= key && key <= _KEY9) ? key - KEY0 : key) : '_';
944
+
945
+ if ((key === BACKSPACE || key === DEL) && pos) {
946
+ pos -= 1;
947
+ digit = '_';
948
+ }
949
+
950
+ while (/[^0-9_]/.test(options.mask.substr(pos, 1)) && pos < options.mask.length && pos > 0) {
951
+ pos += (key === BACKSPACE || key === DEL) ? -1 : 1;
952
+ }
953
+
954
+ val = val.substr(0, pos) + digit + val.substr(pos + 1);
955
+ if ($.trim(val) === '') {
956
+ val = options.mask.replace(/[0-9]/g, '_');
957
+ } else {
958
+ if (pos === options.mask.length) {
959
+ event.preventDefault();
960
+ return false;
961
+ }
962
+ }
963
+
964
+ pos += (key === BACKSPACE || key === DEL) ? 0 : 1;
965
+ while (/[^0-9_]/.test(options.mask.substr(pos, 1)) && pos < options.mask.length && pos > 0) {
966
+ pos += (key === BACKSPACE || key === DEL) ? -1 : 1;
967
+ }
968
+
969
+ if (isValidValue(options.mask, val)) {
970
+ this.value = val;
971
+ setCaretPos(this, pos);
972
+ } else if ($.trim(val) === '') {
973
+ this.value = options.mask.replace(/[0-9]/g, '_');
974
+ } else {
975
+ input.trigger('error_input.xdsoft');
976
+ }
977
+ } else {
978
+ if (([AKEY, CKEY, VKEY, ZKEY, YKEY].indexOf(key) !== -1 && ctrlDown) || [ESC, ARROWUP, ARROWDOWN, ARROWLEFT, ARROWRIGHT, F5, CTRLKEY, TAB, ENTER].indexOf(key) !== -1) {
979
+ return true;
980
+ }
981
+ }
982
+
983
+ event.preventDefault();
984
+ return false;
985
+ });
986
+ }
987
+ }
988
+ if (options.validateOnBlur) {
989
+ input
990
+ .off('blur.xdsoft')
991
+ .on('blur.xdsoft', function () {
992
+ if (options.allowBlank && !$.trim($(this).val()).length) {
993
+ $(this).val(null);
994
+ datetimepicker.data('xdsoft_datetime').empty();
995
+ } else if (!Date.parseDate($(this).val(), options.format)) {
996
+ $(this).val((_xdsoft_datetime.now()).dateFormat(options.format));
997
+ datetimepicker.data('xdsoft_datetime').setCurrentTime($(this).val());
998
+ } else {
999
+ datetimepicker.data('xdsoft_datetime').setCurrentTime($(this).val());
1000
+ }
1001
+ datetimepicker.trigger('changedatetime.xdsoft');
1002
+ });
1003
+ }
1004
+ options.dayOfWeekStartPrev = (options.dayOfWeekStart === 0) ? 6 : options.dayOfWeekStart - 1;
1005
+
1006
+ datetimepicker
1007
+ .trigger('xchange.xdsoft')
1008
+ .trigger('afterOpen.xdsoft');
1009
+ };
1010
+
1011
+ datetimepicker
1012
+ .data('options', options)
1013
+ .on('mousedown.xdsoft', function (event) {
1014
+ event.stopPropagation();
1015
+ event.preventDefault();
1016
+ yearselect.hide();
1017
+ monthselect.hide();
1018
+ return false;
1019
+ });
1020
+
1021
+ //scroll_element = timepicker.find('.xdsoft_time_box');
1022
+ timeboxparent.append(timebox);
1023
+ timeboxparent.xdsoftScroller();
1024
+
1025
+ datetimepicker.on('afterOpen.xdsoft', function () {
1026
+ timeboxparent.xdsoftScroller();
1027
+ });
1028
+
1029
+ datetimepicker
1030
+ .append(datepicker)
1031
+ .append(timepicker);
1032
+
1033
+ if (options.withoutCopyright !== true) {
1034
+ datetimepicker
1035
+ .append(xdsoft_copyright);
1036
+ }
1037
+
1038
+ datepicker
1039
+ .append(mounth_picker)
1040
+ .append(calendar);
1041
+
1042
+ $(options.parentID)
1043
+ .append(datetimepicker);
1044
+
1045
+ XDSoft_datetime = function () {
1046
+ var _this = this;
1047
+ _this.now = function (norecursion) {
1048
+ var d = new Date(),
1049
+ date,
1050
+ time;
1051
+
1052
+ if (!norecursion && options.defaultDate) {
1053
+ date = _this.strToDate(options.defaultDate);
1054
+ d.setFullYear(date.getFullYear());
1055
+ d.setMonth(date.getMonth());
1056
+ d.setDate(date.getDate());
1057
+ }
1058
+
1059
+ if (options.yearOffset) {
1060
+ d.setFullYear(d.getFullYear() + options.yearOffset);
1061
+ }
1062
+
1063
+ if (!norecursion && options.defaultTime) {
1064
+ time = _this.strtotime(options.defaultTime);
1065
+ d.setHours(time.getHours());
1066
+ d.setMinutes(time.getMinutes());
1067
+ }
1068
+
1069
+ return d;
1070
+ };
1071
+
1072
+ _this.isValidDate = function (d) {
1073
+ if (Object.prototype.toString.call(d) !== "[object Date]") {
1074
+ return false;
1075
+ }
1076
+ return !isNaN(d.getTime());
1077
+ };
1078
+
1079
+ _this.setCurrentTime = function (dTime) {
1080
+ _this.currentTime = (typeof dTime === 'string') ? _this.strToDateTime(dTime) : _this.isValidDate(dTime) ? dTime : _this.now();
1081
+ datetimepicker.trigger('xchange.xdsoft');
1082
+ };
1083
+
1084
+ _this.empty = function () {
1085
+ _this.currentTime = null;
1086
+ };
1087
+
1088
+ _this.getCurrentTime = function (dTime) {
1089
+ return _this.currentTime;
1090
+ };
1091
+
1092
+ _this.nextMonth = function () {
1093
+ var month = _this.currentTime.getMonth() + 1,
1094
+ year;
1095
+ if (month === 12) {
1096
+ _this.currentTime.setFullYear(_this.currentTime.getFullYear() + 1);
1097
+ month = 0;
1098
+ }
1099
+
1100
+ year = _this.currentTime.getFullYear();
1101
+
1102
+ _this.currentTime.setDate(
1103
+ Math.min(
1104
+ new Date(_this.currentTime.getFullYear(), month + 1, 0).getDate(),
1105
+ _this.currentTime.getDate()
1106
+ )
1107
+ );
1108
+ _this.currentTime.setMonth(month);
1109
+
1110
+ if (options.onChangeMonth && $.isFunction(options.onChangeMonth)) {
1111
+ options.onChangeMonth.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));
1112
+ }
1113
+
1114
+ if (year !== _this.currentTime.getFullYear() && $.isFunction(options.onChangeYear)) {
1115
+ options.onChangeYear.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));
1116
+ }
1117
+
1118
+ datetimepicker.trigger('xchange.xdsoft');
1119
+ return month;
1120
+ };
1121
+
1122
+ _this.prevMonth = function () {
1123
+ var month = _this.currentTime.getMonth() - 1;
1124
+ if (month === -1) {
1125
+ _this.currentTime.setFullYear(_this.currentTime.getFullYear() - 1);
1126
+ month = 11;
1127
+ }
1128
+ _this.currentTime.setDate(
1129
+ Math.min(
1130
+ new Date(_this.currentTime.getFullYear(), month + 1, 0).getDate(),
1131
+ _this.currentTime.getDate()
1132
+ )
1133
+ );
1134
+ _this.currentTime.setMonth(month);
1135
+ if (options.onChangeMonth && $.isFunction(options.onChangeMonth)) {
1136
+ options.onChangeMonth.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));
1137
+ }
1138
+ datetimepicker.trigger('xchange.xdsoft');
1139
+ return month;
1140
+ };
1141
+
1142
+ _this.getWeekOfYear = function (datetime) {
1143
+ var onejan = new Date(datetime.getFullYear(), 0, 1);
1144
+ return Math.ceil((((datetime - onejan) / 86400000) + onejan.getDay() + 1) / 7);
1145
+ };
1146
+
1147
+ _this.strToDateTime = function (sDateTime) {
1148
+ var tmpDate = [], timeOffset, currentTime;
1149
+
1150
+ if (sDateTime && sDateTime instanceof Date && _this.isValidDate(sDateTime)) {
1151
+ return sDateTime;
1152
+ }
1153
+
1154
+ tmpDate = /^(\+|\-)(.*)$/.exec(sDateTime);
1155
+ if (tmpDate) {
1156
+ tmpDate[2] = Date.parseDate(tmpDate[2], options.formatDate);
1157
+ }
1158
+ if (tmpDate && tmpDate[2]) {
1159
+ timeOffset = tmpDate[2].getTime() - (tmpDate[2].getTimezoneOffset()) * 60000;
1160
+ currentTime = new Date((_xdsoft_datetime.now()).getTime() + parseInt(tmpDate[1] + '1', 10) * timeOffset);
1161
+ } else {
1162
+ currentTime = sDateTime ? Date.parseDate(sDateTime, options.format) : _this.now();
1163
+ }
1164
+
1165
+ if (!_this.isValidDate(currentTime)) {
1166
+ currentTime = _this.now();
1167
+ }
1168
+
1169
+ return currentTime;
1170
+ };
1171
+
1172
+ _this.strToDate = function (sDate) {
1173
+ if (sDate && sDate instanceof Date && _this.isValidDate(sDate)) {
1174
+ return sDate;
1175
+ }
1176
+
1177
+ var currentTime = sDate ? Date.parseDate(sDate, options.formatDate) : _this.now(true);
1178
+ if (!_this.isValidDate(currentTime)) {
1179
+ currentTime = _this.now(true);
1180
+ }
1181
+ return currentTime;
1182
+ };
1183
+
1184
+ _this.strtotime = function (sTime) {
1185
+ if (sTime && sTime instanceof Date && _this.isValidDate(sTime)) {
1186
+ return sTime;
1187
+ }
1188
+ var currentTime = sTime ? Date.parseDate(sTime, options.formatTime) : _this.now(true);
1189
+ if (!_this.isValidDate(currentTime)) {
1190
+ currentTime = _this.now(true);
1191
+ }
1192
+ return currentTime;
1193
+ };
1194
+
1195
+ _this.str = function () {
1196
+ return _this.currentTime.dateFormat(options.format);
1197
+ };
1198
+ _this.currentTime = this.now();
1199
+ };
1200
+
1201
+ _xdsoft_datetime = new XDSoft_datetime();
1202
+
1203
+ mounth_picker
1204
+ .find('.xdsoft_today_button')
1205
+ .on('mousedown.xdsoft', function () {
1206
+ datetimepicker.data('changed', true);
1207
+ _xdsoft_datetime.setCurrentTime(0);
1208
+ datetimepicker.trigger('afterOpen.xdsoft');
1209
+ }).on('dblclick.xdsoft', function () {
1210
+ input.val(_xdsoft_datetime.str());
1211
+ datetimepicker.trigger('close.xdsoft');
1212
+ });
1213
+ mounth_picker
1214
+ .find('.xdsoft_prev,.xdsoft_next')
1215
+ .on('mousedown.xdsoft', function () {
1216
+ var $this = $(this),
1217
+ timer = 0,
1218
+ stop = false;
1219
+
1220
+ (function arguments_callee1(v) {
1221
+ var month = _xdsoft_datetime.currentTime.getMonth();
1222
+ if ($this.hasClass(options.next)) {
1223
+ _xdsoft_datetime.nextMonth();
1224
+ } else if ($this.hasClass(options.prev)) {
1225
+ _xdsoft_datetime.prevMonth();
1226
+ }
1227
+ if (options.monthChangeSpinner) {
1228
+ if (!stop) {
1229
+ timer = setTimeout(arguments_callee1, v || 100);
1230
+ }
1231
+ }
1232
+ }(500));
1233
+
1234
+ $([document.body, window]).on('mouseup.xdsoft', function arguments_callee2() {
1235
+ clearTimeout(timer);
1236
+ stop = true;
1237
+ $([document.body, window]).off('mouseup.xdsoft', arguments_callee2);
1238
+ });
1239
+ });
1240
+
1241
+ timepicker
1242
+ .find('.xdsoft_prev,.xdsoft_next')
1243
+ .on('mousedown.xdsoft', function () {
1244
+ var $this = $(this),
1245
+ timer = 0,
1246
+ stop = false,
1247
+ period = 110;
1248
+ (function arguments_callee4(v) {
1249
+ var pheight = timeboxparent[0].clientHeight,
1250
+ height = timebox[0].offsetHeight,
1251
+ top = Math.abs(parseInt(timebox.css('marginTop'), 10));
1252
+ if ($this.hasClass(options.next) && (height - pheight) - options.timeHeightInTimePicker >= top) {
1253
+ timebox.css('marginTop', '-' + (top + options.timeHeightInTimePicker) + 'px');
1254
+ } else if ($this.hasClass(options.prev) && top - options.timeHeightInTimePicker >= 0) {
1255
+ timebox.css('marginTop', '-' + (top - options.timeHeightInTimePicker) + 'px');
1256
+ }
1257
+ timeboxparent.trigger('scroll_element.xdsoft_scroller', [Math.abs(parseInt(timebox.css('marginTop'), 10) / (height - pheight))]);
1258
+ period = (period > 10) ? 10 : period - 10;
1259
+ if (!stop) {
1260
+ timer = setTimeout(arguments_callee4, v || period);
1261
+ }
1262
+ }(500));
1263
+ $([document.body, window]).on('mouseup.xdsoft', function arguments_callee5() {
1264
+ clearTimeout(timer);
1265
+ stop = true;
1266
+ $([document.body, window])
1267
+ .off('mouseup.xdsoft', arguments_callee5);
1268
+ });
1269
+ });
1270
+
1271
+ xchangeTimer = 0;
1272
+ // base handler - generating a calendar and timepicker
1273
+ datetimepicker
1274
+ .on('xchange.xdsoft', function (event) {
1275
+ clearTimeout(xchangeTimer);
1276
+ xchangeTimer = setTimeout(function () {
1277
+ var table = '',
1278
+ start = new Date(_xdsoft_datetime.currentTime.getFullYear(), _xdsoft_datetime.currentTime.getMonth(), 1, 12, 0, 0),
1279
+ i = 0,
1280
+ j,
1281
+ today = _xdsoft_datetime.now(),
1282
+ maxDate = false,
1283
+ minDate = false,
1284
+ d,
1285
+ y,
1286
+ m,
1287
+ w,
1288
+ classes = [],
1289
+ customDateSettings,
1290
+ newRow = true,
1291
+ time = '',
1292
+ h = '',
1293
+ line_time;
1294
+
1295
+ while (start.getDay() !== options.dayOfWeekStart) {
1296
+ start.setDate(start.getDate() - 1);
1297
+ }
1298
+
1299
+ table += '<table><thead><tr>';
1300
+
1301
+ if (options.weeks) {
1302
+ table += '<th></th>';
1303
+ }
1304
+
1305
+ for (j = 0; j < 7; j += 1) {
1306
+ table += '<th>' + options.i18n[options.lang].dayOfWeek[(j + options.dayOfWeekStart) % 7] + '</th>';
1307
+ }
1308
+
1309
+ table += '</tr></thead>';
1310
+ table += '<tbody>';
1311
+
1312
+ if (options.maxDate !== false) {
1313
+ maxDate = _xdsoft_datetime.strToDate(options.maxDate);
1314
+ maxDate = new Date(maxDate.getFullYear(), maxDate.getMonth(), maxDate.getDate(), 23, 59, 59, 999);
1315
+ }
1316
+
1317
+ if (options.minDate !== false) {
1318
+ minDate = _xdsoft_datetime.strToDate(options.minDate);
1319
+ minDate = new Date(minDate.getFullYear(), minDate.getMonth(), minDate.getDate());
1320
+ }
1321
+
1322
+ while (i < _xdsoft_datetime.currentTime.countDaysInMonth() || start.getDay() !== options.dayOfWeekStart || _xdsoft_datetime.currentTime.getMonth() === start.getMonth()) {
1323
+ classes = [];
1324
+ i += 1;
1325
+
1326
+ d = start.getDate();
1327
+ y = start.getFullYear();
1328
+ m = start.getMonth();
1329
+ w = _xdsoft_datetime.getWeekOfYear(start);
1330
+
1331
+ classes.push('xdsoft_date');
1332
+
1333
+ if (options.beforeShowDay && $.isFunction(options.beforeShowDay.call)) {
1334
+ customDateSettings = options.beforeShowDay.call(datetimepicker, start);
1335
+ } else {
1336
+ customDateSettings = null;
1337
+ }
1338
+
1339
+ if ((maxDate !== false && start > maxDate) || (minDate !== false && start < minDate) || (customDateSettings && customDateSettings[0] === false)) {
1340
+ classes.push('xdsoft_disabled');
1341
+ } else if (options.disabledDates.indexOf(start.dateFormat(options.formatDate)) !== -1) {
1342
+ classes.push('xdsoft_disabled');
1343
+ }
1344
+
1345
+ if (customDateSettings && customDateSettings[1] !== "") {
1346
+ classes.push(customDateSettings[1]);
1347
+ }
1348
+
1349
+ if (_xdsoft_datetime.currentTime.getMonth() !== m) {
1350
+ classes.push('xdsoft_other_month');
1351
+ }
1352
+
1353
+ if ((options.defaultSelect || datetimepicker.data('changed')) && _xdsoft_datetime.currentTime.dateFormat(options.formatDate) === start.dateFormat(options.formatDate)) {
1354
+ classes.push('xdsoft_current');
1355
+ }
1356
+
1357
+ if (today.dateFormat(options.formatDate) === start.dateFormat(options.formatDate)) {
1358
+ classes.push('xdsoft_today');
1359
+ }
1360
+
1361
+ if (start.getDay() === 0 || start.getDay() === 6 || ~options.weekends.indexOf(start.dateFormat(options.formatDate))) {
1362
+ classes.push('xdsoft_weekend');
1363
+ }
1364
+
1365
+ if (options.beforeShowDay && $.isFunction(options.beforeShowDay)) {
1366
+ classes.push(options.beforeShowDay(start));
1367
+ }
1368
+
1369
+ if (newRow) {
1370
+ table += '<tr>';
1371
+ newRow = false;
1372
+ if (options.weeks) {
1373
+ table += '<th>' + w + '</th>';
1374
+ }
1375
+ }
1376
+
1377
+ table += '<td data-date="' + d + '" data-month="' + m + '" data-year="' + y + '"' + ' class="xdsoft_date xdsoft_day_of_week' + start.getDay() + ' ' + classes.join(' ') + '">' +
1378
+ '<div>' + d + '</div>' +
1379
+ '</td>';
1380
+
1381
+ if (start.getDay() === options.dayOfWeekStartPrev) {
1382
+ table += '</tr>';
1383
+ newRow = true;
1384
+ }
1385
+
1386
+ start.setDate(d + 1);
1387
+ }
1388
+ table += '</tbody></table>';
1389
+
1390
+ calendar.html(table);
1391
+
1392
+ mounth_picker.find('.xdsoft_label span').eq(0).text(options.i18n[options.lang].months[_xdsoft_datetime.currentTime.getMonth()]);
1393
+ mounth_picker.find('.xdsoft_label span').eq(1).text(_xdsoft_datetime.currentTime.getFullYear());
1394
+
1395
+ // generate timebox
1396
+ time = '';
1397
+ h = '';
1398
+ m = '';
1399
+ line_time = function line_time(h, m) {
1400
+ var now = _xdsoft_datetime.now();
1401
+ now.setHours(h);
1402
+ h = parseInt(now.getHours(), 10);
1403
+ now.setMinutes(m);
1404
+ m = parseInt(now.getMinutes(), 10);
1405
+ var optionDateTime = new Date(_xdsoft_datetime.currentTime)
1406
+ optionDateTime.setHours(h);
1407
+ optionDateTime.setMinutes(m);
1408
+ classes = [];
1409
+ if((options.minDateTime !== false && options.minDateTime > optionDateTime) || (options.maxTime !== false && _xdsoft_datetime.strtotime(options.maxTime).getTime() < now.getTime()) || (options.minTime !== false && _xdsoft_datetime.strtotime(options.minTime).getTime() > now.getTime())) {
1410
+ classes.push('xdsoft_disabled');
1411
+ }
1412
+ if ((options.initTime || options.defaultSelect || datetimepicker.data('changed')) && parseInt(_xdsoft_datetime.currentTime.getHours(), 10) === parseInt(h, 10) && (options.step > 59 || Math[options.roundTime](_xdsoft_datetime.currentTime.getMinutes() / options.step) * options.step === parseInt(m, 10))) {
1413
+ if (options.defaultSelect || datetimepicker.data('changed')) {
1414
+ classes.push('xdsoft_current');
1415
+ } else if (options.initTime) {
1416
+ classes.push('xdsoft_init_time');
1417
+ }
1418
+ }
1419
+ if (parseInt(today.getHours(), 10) === parseInt(h, 10) && parseInt(today.getMinutes(), 10) === parseInt(m, 10)) {
1420
+ classes.push('xdsoft_today');
1421
+ }
1422
+ time += '<div class="xdsoft_time ' + classes.join(' ') + '" data-hour="' + h + '" data-minute="' + m + '">' + now.dateFormat(options.formatTime) + '</div>';
1423
+ };
1424
+
1425
+ if (!options.allowTimes || !$.isArray(options.allowTimes) || !options.allowTimes.length) {
1426
+ for (i = 0, j = 0; i < (options.hours12 ? 12 : 24); i += 1) {
1427
+ for (j = 0; j < 60; j += options.step) {
1428
+ h = (i < 10 ? '0' : '') + i;
1429
+ m = (j < 10 ? '0' : '') + j;
1430
+ line_time(h, m);
1431
+ }
1432
+ }
1433
+ } else {
1434
+ for (i = 0; i < options.allowTimes.length; i += 1) {
1435
+ h = _xdsoft_datetime.strtotime(options.allowTimes[i]).getHours();
1436
+ m = _xdsoft_datetime.strtotime(options.allowTimes[i]).getMinutes();
1437
+ line_time(h, m);
1438
+ }
1439
+ }
1440
+
1441
+ timebox.html(time);
1442
+
1443
+ opt = '';
1444
+ i = 0;
1445
+
1446
+ for (i = parseInt(options.yearStart, 10) + options.yearOffset; i <= parseInt(options.yearEnd, 10) + options.yearOffset; i += 1) {
1447
+ opt += '<div class="xdsoft_option ' + (_xdsoft_datetime.currentTime.getFullYear() === i ? 'xdsoft_current' : '') + '" data-value="' + i + '">' + i + '</div>';
1448
+ }
1449
+ yearselect.children().eq(0)
1450
+ .html(opt);
1451
+
1452
+ for (i = 0, opt = ''; i <= 11; i += 1) {
1453
+ opt += '<div class="xdsoft_option ' + (_xdsoft_datetime.currentTime.getMonth() === i ? 'xdsoft_current' : '') + '" data-value="' + i + '">' + options.i18n[options.lang].months[i] + '</div>';
1454
+ }
1455
+ monthselect.children().eq(0).html(opt);
1456
+ $(datetimepicker)
1457
+ .trigger('generate.xdsoft');
1458
+ }, 10);
1459
+ event.stopPropagation();
1460
+ })
1461
+ .on('afterOpen.xdsoft', function () {
1462
+ if (options.timepicker) {
1463
+ var classType, pheight, height, top;
1464
+ if (timebox.find('.xdsoft_current').length) {
1465
+ classType = '.xdsoft_current';
1466
+ } else if (timebox.find('.xdsoft_init_time').length) {
1467
+ classType = '.xdsoft_init_time';
1468
+ }
1469
+ if (classType) {
1470
+ pheight = timeboxparent[0].clientHeight;
1471
+ height = timebox[0].offsetHeight;
1472
+ top = timebox.find(classType).index() * options.timeHeightInTimePicker + 1;
1473
+ if ((height - pheight) < top) {
1474
+ top = height - pheight;
1475
+ }
1476
+ timeboxparent.trigger('scroll_element.xdsoft_scroller', [parseInt(top, 10) / (height - pheight)]);
1477
+ } else {
1478
+ timeboxparent.trigger('scroll_element.xdsoft_scroller', [0]);
1479
+ }
1480
+ }
1481
+ });
1482
+
1483
+ timerclick = 0;
1484
+ calendar
1485
+ .on('click.xdsoft', 'td', function (xdevent) {
1486
+ xdevent.stopPropagation(); // Prevents closing of Pop-ups, Modals and Flyouts in Bootstrap
1487
+ timerclick += 1;
1488
+ var $this = $(this),
1489
+ currentTime = _xdsoft_datetime.currentTime;
1490
+
1491
+ if (currentTime === undefined || currentTime === null) {
1492
+ _xdsoft_datetime.currentTime = _xdsoft_datetime.now();
1493
+ currentTime = _xdsoft_datetime.currentTime;
1494
+ }
1495
+
1496
+ if ($this.hasClass('xdsoft_disabled')) {
1497
+ return false;
1498
+ }
1499
+
1500
+ currentTime.setDate(1);
1501
+ currentTime.setFullYear($this.data('year'));
1502
+ currentTime.setMonth($this.data('month'));
1503
+ currentTime.setDate($this.data('date'));
1504
+
1505
+ datetimepicker.trigger('select.xdsoft', [currentTime]);
1506
+
1507
+ input.val(_xdsoft_datetime.str());
1508
+ if ((timerclick > 1 || (options.closeOnDateSelect === true || (options.closeOnDateSelect === 0 && !options.timepicker))) && !options.inline) {
1509
+ datetimepicker.trigger('close.xdsoft');
1510
+ }
1511
+
1512
+ if (options.onSelectDate && $.isFunction(options.onSelectDate)) {
1513
+ options.onSelectDate.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'), xdevent);
1514
+ }
1515
+
1516
+ datetimepicker.data('changed', true);
1517
+ //datetimepicker.trigger('xchange.xdsoft');
1518
+ datetimepicker.trigger('changedatetime.xdsoft');
1519
+ setTimeout(function () {
1520
+ timerclick = 0;
1521
+ }, 200);
1522
+ });
1523
+
1524
+ timebox
1525
+ .on('click.xdsoft', 'div', function (xdevent) {
1526
+ xdevent.stopPropagation();
1527
+ var $this = $(this),
1528
+ currentTime = _xdsoft_datetime.currentTime;
1529
+
1530
+ if (currentTime === undefined || currentTime === null) {
1531
+ _xdsoft_datetime.currentTime = _xdsoft_datetime.now();
1532
+ currentTime = _xdsoft_datetime.currentTime;
1533
+ }
1534
+
1535
+ if ($this.hasClass('xdsoft_disabled')) {
1536
+ return false;
1537
+ }
1538
+ currentTime.setHours($this.data('hour'));
1539
+ currentTime.setMinutes($this.data('minute'));
1540
+ datetimepicker.trigger('select.xdsoft', [currentTime]);
1541
+
1542
+ datetimepicker.data('input').val(_xdsoft_datetime.str());
1543
+ if (!options.inline) {
1544
+ datetimepicker.trigger('close.xdsoft');
1545
+ }
1546
+
1547
+ if (options.onSelectTime && $.isFunction(options.onSelectTime)) {
1548
+ options.onSelectTime.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'), xdevent);
1549
+ }
1550
+ datetimepicker.data('changed', true);
1551
+ //datetimepicker.trigger('xchange.xdsoft');
1552
+ datetimepicker.trigger('changedatetime.xdsoft');
1553
+ });
1554
+
1555
+
1556
+ datepicker
1557
+ .on('mousewheel.xdsoft', function (event) {
1558
+ if (!options.scrollMonth) {
1559
+ return true;
1560
+ }
1561
+ if (event.deltaY < 0) {
1562
+ _xdsoft_datetime.nextMonth();
1563
+ } else {
1564
+ _xdsoft_datetime.prevMonth();
1565
+ }
1566
+ return false;
1567
+ });
1568
+
1569
+ input
1570
+ .on('mousewheel.xdsoft', function (event) {
1571
+ if (!options.scrollInput) {
1572
+ return true;
1573
+ }
1574
+ if (!options.datepicker && options.timepicker) {
1575
+ current_time_index = timebox.find('.xdsoft_current').length ? timebox.find('.xdsoft_current').eq(0).index() : 0;
1576
+ if (current_time_index + event.deltaY >= 0 && current_time_index + event.deltaY < timebox.children().length) {
1577
+ current_time_index += event.deltaY;
1578
+ }
1579
+ if (timebox.children().eq(current_time_index).length) {
1580
+ timebox.children().eq(current_time_index).trigger('mousedown');
1581
+ }
1582
+ return false;
1583
+ }
1584
+ if (options.datepicker && !options.timepicker) {
1585
+ datepicker.trigger(event, [event.deltaY, event.deltaX, event.deltaY]);
1586
+ if (input.val) {
1587
+ input.val(_xdsoft_datetime.str());
1588
+ }
1589
+ datetimepicker.trigger('changedatetime.xdsoft');
1590
+ return false;
1591
+ }
1592
+ });
1593
+
1594
+ datetimepicker
1595
+ .on('changedatetime.xdsoft', function (event) {
1596
+ if (options.onChangeDateTime && $.isFunction(options.onChangeDateTime)) {
1597
+ var $input = datetimepicker.data('input');
1598
+ options.onChangeDateTime.call(datetimepicker, _xdsoft_datetime.currentTime, $input, event);
1599
+ delete options.value;
1600
+ $input.trigger('change');
1601
+ }
1602
+ })
1603
+ .on('generate.xdsoft', function () {
1604
+ if (options.onGenerate && $.isFunction(options.onGenerate)) {
1605
+ options.onGenerate.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));
1606
+ }
1607
+ if (triggerAfterOpen) {
1608
+ datetimepicker.trigger('afterOpen.xdsoft');
1609
+ triggerAfterOpen = false;
1610
+ }
1611
+ })
1612
+ .on('click.xdsoft', function (xdevent) {
1613
+ xdevent.stopPropagation();
1614
+ });
1615
+
1616
+ current_time_index = 0;
1617
+
1618
+ setPos = function () {
1619
+ var offset = datetimepicker.data('input').offset(), top = offset.top + datetimepicker.data('input')[0].offsetHeight - 1, left = offset.left, position = "absolute";
1620
+ if (options.fixed) {
1621
+ top -= $(window).scrollTop();
1622
+ left -= $(window).scrollLeft();
1623
+ position = "fixed";
1624
+ } else {
1625
+ if (top + datetimepicker[0].offsetHeight > $(window).height() + $(window).scrollTop()) {
1626
+ top = offset.top - datetimepicker[0].offsetHeight + 1;
1627
+ }
1628
+ if (top < 0) {
1629
+ top = 0;
1630
+ }
1631
+ if (left + datetimepicker[0].offsetWidth > $(window).width()) {
1632
+ left = $(window).width() - datetimepicker[0].offsetWidth;
1633
+ }
1634
+ }
1635
+ datetimepicker.css({
1636
+ left: left,
1637
+ top: top,
1638
+ position: position
1639
+ });
1640
+ };
1641
+ datetimepicker
1642
+ .on('open.xdsoft', function (event) {
1643
+ var onShow = true;
1644
+ if (options.onShow && $.isFunction(options.onShow)) {
1645
+ onShow = options.onShow.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'), event);
1646
+ }
1647
+ if (onShow !== false) {
1648
+ datetimepicker.show();
1649
+ setPos();
1650
+ $(window)
1651
+ .off('resize.xdsoft', setPos)
1652
+ .on('resize.xdsoft', setPos);
1653
+
1654
+ if (options.closeOnWithoutClick) {
1655
+ $([document.body, window]).on('mousedown.xdsoft', function arguments_callee6() {
1656
+ datetimepicker.trigger('close.xdsoft');
1657
+ $([document.body, window]).off('mousedown.xdsoft', arguments_callee6);
1658
+ });
1659
+ }
1660
+ }
1661
+ })
1662
+ .on('close.xdsoft', function (event) {
1663
+ var onClose = true;
1664
+ mounth_picker
1665
+ .find('.xdsoft_month,.xdsoft_year')
1666
+ .find('.xdsoft_select')
1667
+ .hide();
1668
+ if (options.onClose && $.isFunction(options.onClose)) {
1669
+ onClose = options.onClose.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'), event);
1670
+ }
1671
+ if (onClose !== false && !options.opened && !options.inline) {
1672
+ datetimepicker.hide();
1673
+ }
1674
+ event.stopPropagation();
1675
+ })
1676
+ .on('toggle.xdsoft', function (event) {
1677
+ if (datetimepicker.is(':visible')) {
1678
+ datetimepicker.trigger('close.xdsoft');
1679
+ } else {
1680
+ datetimepicker.trigger('open.xdsoft');
1681
+ }
1682
+ })
1683
+ .data('input', input);
1684
+
1685
+ timer = 0;
1686
+ timer1 = 0;
1687
+
1688
+ datetimepicker.data('xdsoft_datetime', _xdsoft_datetime);
1689
+ datetimepicker.setOptions(options);
1690
+
1691
+ function getCurrentValue() {
1692
+
1693
+ var ct = false, time;
1694
+
1695
+ if (options.startDate) {
1696
+ ct = _xdsoft_datetime.strToDate(options.startDate);
1697
+ } else {
1698
+ ct = options.value || ((input && input.val && input.val()) ? input.val() : '');
1699
+ if (ct) {
1700
+ ct = _xdsoft_datetime.strToDateTime(ct);
1701
+ } else if (options.defaultDate) {
1702
+ ct = _xdsoft_datetime.strToDate(options.defaultDate);
1703
+ if (options.defaultTime) {
1704
+ time = _xdsoft_datetime.strtotime(options.defaultTime);
1705
+ ct.setHours(time.getHours());
1706
+ ct.setMinutes(time.getMinutes());
1707
+ }
1708
+ }
1709
+ }
1710
+
1711
+ if (ct && _xdsoft_datetime.isValidDate(ct)) {
1712
+ datetimepicker.data('changed', true);
1713
+ } else {
1714
+ ct = '';
1715
+ }
1716
+
1717
+ return ct || 0;
1718
+ }
1719
+
1720
+ _xdsoft_datetime.setCurrentTime(getCurrentValue());
1721
+
1722
+ input
1723
+ .data('xdsoft_datetimepicker', datetimepicker)
1724
+ .on('open.xdsoft focusin.xdsoft mousedown.xdsoft', function (event) {
1725
+ if (input.is(':disabled') || (input.data('xdsoft_datetimepicker').is(':visible') && options.closeOnInputClick)) {
1726
+ return;
1727
+ }
1728
+ clearTimeout(timer);
1729
+ timer = setTimeout(function () {
1730
+ if (input.is(':disabled')) {
1731
+ return;
1732
+ }
1733
+
1734
+ triggerAfterOpen = true;
1735
+ _xdsoft_datetime.setCurrentTime(getCurrentValue());
1736
+
1737
+ datetimepicker.trigger('open.xdsoft');
1738
+ }, 100);
1739
+ })
1740
+ .on('keydown.xdsoft', function (event) {
1741
+ var val = this.value, elementSelector,
1742
+ key = event.which;
1743
+ if ([ENTER].indexOf(key) !== -1 && options.enterLikeTab) {
1744
+ elementSelector = $("input:visible,textarea:visible");
1745
+ datetimepicker.trigger('close.xdsoft');
1746
+ elementSelector.eq(elementSelector.index(this) + 1).focus();
1747
+ return false;
1748
+ }
1749
+ if ([TAB].indexOf(key) !== -1) {
1750
+ datetimepicker.trigger('close.xdsoft');
1751
+ return true;
1752
+ }
1753
+ });
1754
+ };
1755
+ destroyDateTimePicker = function (input) {
1756
+ var datetimepicker = input.data('xdsoft_datetimepicker');
1757
+ if (datetimepicker) {
1758
+ datetimepicker.data('xdsoft_datetime', null);
1759
+ datetimepicker.remove();
1760
+ input
1761
+ .data('xdsoft_datetimepicker', null)
1762
+ .off('.xdsoft');
1763
+ $(window).off('resize.xdsoft');
1764
+ $([window, document.body]).off('mousedown.xdsoft');
1765
+ if (input.unmousewheel) {
1766
+ input.unmousewheel();
1767
+ }
1768
+ }
1769
+ };
1770
+ $(document)
1771
+ .off('keydown.xdsoftctrl keyup.xdsoftctrl')
1772
+ .on('keydown.xdsoftctrl', function (e) {
1773
+ if (e.keyCode === CTRLKEY) {
1774
+ ctrlDown = true;
1775
+ }
1776
+ })
1777
+ .on('keyup.xdsoftctrl', function (e) {
1778
+ if (e.keyCode === CTRLKEY) {
1779
+ ctrlDown = false;
1780
+ }
1781
+ });
1782
+ return this.each(function () {
1783
+ var datetimepicker = $(this).data('xdsoft_datetimepicker');
1784
+ if (datetimepicker) {
1785
+ if ($.type(opt) === 'string') {
1786
+ switch (opt) {
1787
+ case 'show':
1788
+ $(this).select().focus();
1789
+ datetimepicker.trigger('open.xdsoft');
1790
+ break;
1791
+ case 'hide':
1792
+ datetimepicker.trigger('close.xdsoft');
1793
+ break;
1794
+ case 'toggle':
1795
+ datetimepicker.trigger('toggle.xdsoft');
1796
+ break;
1797
+ case 'destroy':
1798
+ destroyDateTimePicker($(this));
1799
+ break;
1800
+ case 'reset':
1801
+ this.value = this.defaultValue;
1802
+ if (!this.value || !datetimepicker.data('xdsoft_datetime').isValidDate(Date.parseDate(this.value, options.format))) {
1803
+ datetimepicker.data('changed', false);
1804
+ }
1805
+ datetimepicker.data('xdsoft_datetime').setCurrentTime(this.value);
1806
+ break;
1807
+ }
1808
+ } else {
1809
+ datetimepicker
1810
+ .setOptions(opt);
1811
+ }
1812
+ return 0;
1813
+ }
1814
+ if ($.type(opt) !== 'string') {
1815
+ if (!options.lazyInit || options.open || options.inline) {
1816
+ createDateTimePicker($(this));
1817
+ } else {
1818
+ lazyInit($(this));
1819
+ }
1820
+ }
1821
+ });
1822
+ };
1823
+ $.fn.datetimepicker.defaults = default_options;
1824
+ }(jQuery));
1825
+ (function () {
1826
+
1827
+ /*! Copyright (c) 2013 Brandon Aaron (http://brandon.aaron.sh)
1828
+ * Licensed under the MIT License (LICENSE.txt).
1829
+ *
1830
+ * Version: 3.1.12
1831
+ *
1832
+ * Requires: jQuery 1.2.2+
1833
+ */
1834
+ !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a:a(jQuery)}(function(a){function b(b){var g=b||window.event,h=i.call(arguments,1),j=0,l=0,m=0,n=0,o=0,p=0;if(b=a.event.fix(g),b.type="mousewheel","detail"in g&&(m=-1*g.detail),"wheelDelta"in g&&(m=g.wheelDelta),"wheelDeltaY"in g&&(m=g.wheelDeltaY),"wheelDeltaX"in g&&(l=-1*g.wheelDeltaX),"axis"in g&&g.axis===g.HORIZONTAL_AXIS&&(l=-1*m,m=0),j=0===m?l:m,"deltaY"in g&&(m=-1*g.deltaY,j=m),"deltaX"in g&&(l=g.deltaX,0===m&&(j=-1*l)),0!==m||0!==l){if(1===g.deltaMode){var q=a.data(this,"mousewheel-line-height");j*=q,m*=q,l*=q}else if(2===g.deltaMode){var r=a.data(this,"mousewheel-page-height");j*=r,m*=r,l*=r}if(n=Math.max(Math.abs(m),Math.abs(l)),(!f||f>n)&&(f=n,d(g,n)&&(f/=40)),d(g,n)&&(j/=40,l/=40,m/=40),j=Math[j>=1?"floor":"ceil"](j/f),l=Math[l>=1?"floor":"ceil"](l/f),m=Math[m>=1?"floor":"ceil"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120===0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"mousewheel-line-height",k.getLineHeight(this)),a.data(this,"mousewheel-page-height",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var c=h.length;c;)this.removeEventListener(h[--c],b,!1);else this.onmousewheel=null;a.removeData(this,"mousewheel-line-height"),a.removeData(this,"mousewheel-page-height")},getLineHeight:function(b){var c=a(b),d=c["offsetParent"in a.fn?"offsetParent":"parent"]();return d.length||(d=a("body")),parseInt(d.css("fontSize"),10)||parseInt(c.css("fontSize"),10)||16},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})});
1835
+
1836
+ // Parse and Format Library
1837
+ //http://www.xaprb.com/blog/2005/12/12/javascript-closures-for-runtime-efficiency/
1838
+ /*
1839
+ * Copyright (C) 2004 Baron Schwartz <baron at sequent dot org>
1840
+ *
1841
+ * This program is free software; you can redistribute it and/or modify it
1842
+ * under the terms of the GNU Lesser General Public License as published by the
1843
+ * Free Software Foundation, version 2.1.
1844
+ *
1845
+ * This program is distributed in the hope that it will be useful, but WITHOUT
1846
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
1847
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
1848
+ * details.
1849
+ */
1850
+ Date.parseFunctions={count:0};Date.parseRegexes=[];Date.formatFunctions={count:0};Date.prototype.dateFormat=function(b){if(b=="unixtime"){return parseInt(this.getTime()/1000);}if(Date.formatFunctions[b]==null){Date.createNewFormat(b);}var a=Date.formatFunctions[b];return this[a]();};Date.createNewFormat=function(format){var funcName="format"+Date.formatFunctions.count++;Date.formatFunctions[format]=funcName;var code="Date.prototype."+funcName+" = function() {return ";var special=false;var ch="";for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true;}else{if(special){special=false;code+="'"+String.escape(ch)+"' + ";}else{code+=Date.getFormatCode(ch);}}}eval(code.substring(0,code.length-3)+";}");};Date.getFormatCode=function(a){switch(a){case"d":return"String.leftPad(this.getDate(), 2, '0') + ";case"D":return"Date.dayNames[this.getDay()].substring(0, 3) + ";case"j":return"this.getDate() + ";case"l":return"Date.dayNames[this.getDay()] + ";case"S":return"this.getSuffix() + ";case"w":return"this.getDay() + ";case"z":return"this.getDayOfYear() + ";case"W":return"this.getWeekOfYear() + ";case"F":return"Date.monthNames[this.getMonth()] + ";case"m":return"String.leftPad(this.getMonth() + 1, 2, '0') + ";case"M":return"Date.monthNames[this.getMonth()].substring(0, 3) + ";case"n":return"(this.getMonth() + 1) + ";case"t":return"this.getDaysInMonth() + ";case"L":return"(this.isLeapYear() ? 1 : 0) + ";case"Y":return"this.getFullYear() + ";case"y":return"('' + this.getFullYear()).substring(2, 4) + ";case"a":return"(this.getHours() < 12 ? 'am' : 'pm') + ";case"A":return"(this.getHours() < 12 ? 'AM' : 'PM') + ";case"g":return"((this.getHours() %12) ? this.getHours() % 12 : 12) + ";case"G":return"this.getHours() + ";case"h":return"String.leftPad((this.getHours() %12) ? this.getHours() % 12 : 12, 2, '0') + ";case"H":return"String.leftPad(this.getHours(), 2, '0') + ";case"i":return"String.leftPad(this.getMinutes(), 2, '0') + ";case"s":return"String.leftPad(this.getSeconds(), 2, '0') + ";case"O":return"this.getGMTOffset() + ";case"T":return"this.getTimezone() + ";case"Z":return"(this.getTimezoneOffset() * -60) + ";default:return"'"+String.escape(a)+"' + ";}};Date.parseDate=function(a,c){if(c=="unixtime"){return new Date(!isNaN(parseInt(a))?parseInt(a)*1000:0);}if(Date.parseFunctions[c]==null){Date.createParser(c);}var b=Date.parseFunctions[c];return Date[b](a);};Date.createParser=function(format){var funcName="parse"+Date.parseFunctions.count++;var regexNum=Date.parseRegexes.length;var currentGroup=1;Date.parseFunctions[format]=funcName;var code="Date."+funcName+" = function(input) {\nvar y = -1, m = -1, d = -1, h = -1, i = -1, s = -1, z = -1;\nvar d = new Date();\ny = d.getFullYear();\nm = d.getMonth();\nd = d.getDate();\nvar results = input.match(Date.parseRegexes["+regexNum+"]);\nif (results && results.length > 0) {";var regex="";var special=false;var ch="";for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true;}else{if(special){special=false;regex+=String.escape(ch);}else{obj=Date.formatCodeToRegex(ch,currentGroup);currentGroup+=obj.g;regex+=obj.s;if(obj.g&&obj.c){code+=obj.c;}}}}code+="if (y > 0 && z > 0){\nvar doyDate = new Date(y,0);\ndoyDate.setDate(z);\nm = doyDate.getMonth();\nd = doyDate.getDate();\n}";code+="if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0)\n{return new Date(y, m, d, h, i, s);}\nelse if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0)\n{return new Date(y, m, d, h, i);}\nelse if (y > 0 && m >= 0 && d > 0 && h >= 0)\n{return new Date(y, m, d, h);}\nelse if (y > 0 && m >= 0 && d > 0)\n{return new Date(y, m, d);}\nelse if (y > 0 && m >= 0)\n{return new Date(y, m);}\nelse if (y > 0)\n{return new Date(y);}\n}return null;}";Date.parseRegexes[regexNum]=new RegExp("^"+regex+"$");eval(code);};Date.formatCodeToRegex=function(b,a){switch(b){case"D":return{g:0,c:null,s:"(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)"};case"j":case"d":return{g:1,c:"d = parseInt(results["+a+"], 10);\n",s:"(\\d{1,2})"};case"l":return{g:0,c:null,s:"(?:"+Date.dayNames.join("|")+")"};case"S":return{g:0,c:null,s:"(?:st|nd|rd|th)"};case"w":return{g:0,c:null,s:"\\d"};case"z":return{g:1,c:"z = parseInt(results["+a+"], 10);\n",s:"(\\d{1,3})"};case"W":return{g:0,c:null,s:"(?:\\d{2})"};case"F":return{g:1,c:"m = parseInt(Date.monthNumbers[results["+a+"].substring(0, 3)], 10);\n",s:"("+Date.monthNames.join("|")+")"};case"M":return{g:1,c:"m = parseInt(Date.monthNumbers[results["+a+"]], 10);\n",s:"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)"};case"n":case"m":return{g:1,c:"m = parseInt(results["+a+"], 10) - 1;\n",s:"(\\d{1,2})"};case"t":return{g:0,c:null,s:"\\d{1,2}"};case"L":return{g:0,c:null,s:"(?:1|0)"};case"Y":return{g:1,c:"y = parseInt(results["+a+"], 10);\n",s:"(\\d{4})"};case"y":return{g:1,c:"var ty = parseInt(results["+a+"], 10);\ny = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"};case"a":return{g:1,c:"if (results["+a+"] == 'am') {\nif (h == 12) { h = 0; }\n} else { if (h < 12) { h += 12; }}",s:"(am|pm)"};case"A":return{g:1,c:"if (results["+a+"] == 'AM') {\nif (h == 12) { h = 0; }\n} else { if (h < 12) { h += 12; }}",s:"(AM|PM)"};case"g":case"G":case"h":case"H":return{g:1,c:"h = parseInt(results["+a+"], 10);\n",s:"(\\d{1,2})"};case"i":return{g:1,c:"i = parseInt(results["+a+"], 10);\n",s:"(\\d{2})"};case"s":return{g:1,c:"s = parseInt(results["+a+"], 10);\n",s:"(\\d{2})"};case"O":return{g:0,c:null,s:"[+-]\\d{4}"};case"T":return{g:0,c:null,s:"[A-Z]{3}"};case"Z":return{g:0,c:null,s:"[+-]\\d{1,5}"};default:return{g:0,c:null,s:String.escape(b)};}};Date.prototype.getTimezone=function(){return this.toString().replace(/^.*? ([A-Z]{3}) [0-9]{4}.*$/,"$1").replace(/^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/,"$1$2$3");};Date.prototype.getGMTOffset=function(){return(this.getTimezoneOffset()>0?"-":"+")+String.leftPad(Math.floor(Math.abs(this.getTimezoneOffset())/60),2,"0")+String.leftPad(Math.abs(this.getTimezoneOffset())%60,2,"0");};Date.prototype.getDayOfYear=function(){var a=0;Date.daysInMonth[1]=this.isLeapYear()?29:28;for(var b=0;b<this.getMonth();++b){a+=Date.daysInMonth[b];}return a+this.getDate();};Date.prototype.getWeekOfYear=function(){var b=this.getDayOfYear()+(4-this.getDay());var a=new Date(this.getFullYear(),0,1);var c=(7-a.getDay()+4);return String.leftPad(Math.ceil((b-c)/7)+1,2,"0");};Date.prototype.isLeapYear=function(){var a=this.getFullYear();return((a&3)==0&&(a%100||(a%400==0&&a)));};Date.prototype.getFirstDayOfMonth=function(){var a=(this.getDay()-(this.getDate()-1))%7;return(a<0)?(a+7):a;};Date.prototype.getLastDayOfMonth=function(){var a=(this.getDay()+(Date.daysInMonth[this.getMonth()]-this.getDate()))%7;return(a<0)?(a+7):a;};Date.prototype.getDaysInMonth=function(){Date.daysInMonth[1]=this.isLeapYear()?29:28;return Date.daysInMonth[this.getMonth()];};Date.prototype.getSuffix=function(){switch(this.getDate()){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th";}};String.escape=function(a){return a.replace(/('|\\)/g,"\\$1");};String.leftPad=function(d,b,c){var a=new String(d);if(c==null){c=" ";}while(a.length<b){a=c+a;}return a;};Date.daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31];Date.monthNames=["January","February","March","April","May","June","July","August","September","October","November","December"];Date.dayNames=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];Date.y2kYear=50;Date.monthNumbers={Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11};Date.patterns={ISO8601LongPattern:"Y-m-d H:i:s",ISO8601ShortPattern:"Y-m-d",ShortDatePattern:"n/j/Y",LongDatePattern:"l, F d, Y",FullDateTimePattern:"l, F d, Y g:i:s A",MonthDayPattern:"F d",ShortTimePattern:"g:i A",LongTimePattern:"g:i:s A",SortableDateTimePattern:"Y-m-d\\TH:i:s",UniversalSortableDateTimePattern:"Y-m-d H:i:sO",YearMonthPattern:"F, Y"};
1851
+ }());
js/gmap/demo/address.html ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ body{
9
+ text-align:center;
10
+ }
11
+ .gmap3{
12
+ margin: 20px auto;
13
+ border: 1px dashed #C0C0C0;
14
+ width: 500px;
15
+ height: 250px;
16
+ }
17
+ </style>
18
+
19
+ <script type="text/javascript">
20
+ $(function(){
21
+
22
+ $("#test").gmap3({
23
+ marker:{
24
+ latLng: [46.578498,2.457275],
25
+ options:{
26
+ draggable:true
27
+ },
28
+ events:{
29
+ dragend: function(marker){
30
+ $(this).gmap3({
31
+ getaddress:{
32
+ latLng:marker.getPosition(),
33
+ callback:function(results){
34
+ var map = $(this).gmap3("get"),
35
+ infowindow = $(this).gmap3({get:"infowindow"}),
36
+ content = results && results[1] ? results && results[1].formatted_address : "no address";
37
+ if (infowindow){
38
+ infowindow.open(map, marker);
39
+ infowindow.setContent(content);
40
+ } else {
41
+ $(this).gmap3({
42
+ infowindow:{
43
+ anchor:marker,
44
+ options:{content: content}
45
+ }
46
+ });
47
+ }
48
+ }
49
+ }
50
+ });
51
+ }
52
+ }
53
+ },
54
+ map:{
55
+ options:{
56
+ zoom: 5
57
+ }
58
+ }
59
+ });
60
+
61
+ });
62
+ </script>
63
+ <body>
64
+ <div id="test" class="gmap3"></div>
65
+ drag & drop the marker to see the address
66
+ </body>
67
+ </html>
js/gmap/demo/autofit.html ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ .gmap3{
9
+ margin: 20px auto;
10
+ border: 1px dashed #C0C0C0;
11
+ width: 500px;
12
+ height: 250px;
13
+ }
14
+ </style>
15
+
16
+ <script type="text/javascript">
17
+ $(function(){
18
+
19
+ $('#test1').gmap3(
20
+ { circle:{
21
+ options: {
22
+ center: [37.772323, -122.214897],
23
+ radius : 2500000,
24
+ fillColor : "#008BB2",
25
+ strokeColor : "#005BB7"
26
+ }
27
+ }
28
+ },
29
+ "autofit"
30
+ );
31
+ });
32
+ </script>
33
+ <body>
34
+ <div id="test1" class="gmap3"></div>
35
+ </body>
36
+ </html>
js/gmap/demo/circle.html ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ .gmap3{
9
+ margin: 20px auto;
10
+ border: 1px dashed #C0C0C0;
11
+ width: 500px;
12
+ height: 250px;
13
+ }
14
+ #container{
15
+ overflow: auto;
16
+ text-align:center;
17
+ width: 140px;
18
+ margin: 20px auto;
19
+ }
20
+ .box{
21
+ float: left;
22
+ width: 20px;
23
+ height: 20px;
24
+ margin-left: 20px;
25
+ background-color:#FFF;
26
+ border:1px solid #000;
27
+ }
28
+ </style>
29
+
30
+ <script type="text/javascript">
31
+
32
+ function onClk(circle, event, context){
33
+ var $e = $('#'+context.data);
34
+ if ($e.hasClass('clicked')) {
35
+ $e.removeClass('clicked').css('backgroundColor', '#FFFFFF');
36
+ } else {
37
+ $e.addClass('clicked').css('backgroundColor', circle.strokeColor);
38
+ }
39
+ }
40
+
41
+ $(function(){
42
+
43
+ // 1st call : init the map and create circles
44
+ $('#test1').gmap3({
45
+ map:{
46
+ options:{
47
+ center: [37.772323, -122.214897],
48
+ zoom:13
49
+ }
50
+ },
51
+ circle:{
52
+ values:[
53
+ { options:{
54
+ center: [37.772323, -122.214897],
55
+ radius : 750,
56
+ fillColor : "#FFAF9F",
57
+ strokeColor : "#FF512F"
58
+ },
59
+ data:"box1"
60
+ },
61
+ { options:{
62
+ center: [37.772323, -122.214897],
63
+ radius : 500,
64
+ fillColor : "#F4AFFF",
65
+ strokeColor : "#CB53DF"
66
+ },
67
+ data: "box2"
68
+ }
69
+ ],
70
+ events:{
71
+ click: onClk
72
+ }
73
+ }
74
+ });
75
+
76
+ // second call : create a single cicle
77
+ $('#test1').gmap3({
78
+ circle:{
79
+ options:{
80
+ center: [37.772323, -122.214897],
81
+ radius : 250,
82
+ fillColor : "#008BB2",
83
+ strokeColor : "#005BB7"
84
+ },
85
+ data: "box3",
86
+ events:{
87
+ click: onClk
88
+ }
89
+ }
90
+ });
91
+
92
+
93
+ });
94
+ </script>
95
+ </head>
96
+
97
+ <body>
98
+ <div id="container">
99
+ <div id="box1" class="box"></div>
100
+ <div id="box2" class="box"></div>
101
+ <div id="box3" class="box"></div>
102
+ </div>
103
+ <div id="test1" class="gmap3"></div>
104
+ </body>
105
+ </html>
js/gmap/demo/clear.html ADDED
@@ -0,0 +1,217 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ body{
9
+ text-align:center;
10
+ }
11
+ .gmap3{
12
+ margin: 20px auto;
13
+ border: 1px dashed #C0C0C0;
14
+ width: 500px;
15
+ height: 500px;
16
+ }
17
+ .cluster{
18
+ color: #FFFFFF;
19
+ text-align:center;
20
+ font-family: 'Arial, Helvetica';
21
+ font-size:11px;
22
+ font-weight:bold;
23
+ }
24
+ .cluster-1{
25
+ background-image:url(images/m1.png);
26
+ line-height:53px;
27
+ width: 53px;
28
+ height: 52px;
29
+ }
30
+ .cluster-2{
31
+ background-image:url(images/m2.png);
32
+ line-height:53px;
33
+ width: 56px;
34
+ height: 55px;
35
+ }
36
+ .cluster-3{
37
+ background-image:url(images/m3.png);
38
+ line-height:66px;
39
+ width: 66px;
40
+ height: 65px;
41
+ }
42
+ </style>
43
+
44
+ <script type="text/javascript">
45
+
46
+ $(function(){
47
+ $('#test1').gmap3({
48
+ map:{
49
+ options:{
50
+ center:[46.578498,2.457275],
51
+ zoom: 5
52
+ }
53
+ },
54
+ marker:{
55
+ values: [
56
+ [48.82567253451685,2.3693843749999814], //#1
57
+ [48.82567253451685,2.2693843749999814], //#1
58
+ [48.82567253451685,2.1693843749999814], //#1
59
+ [48.82567253451685,2.0693843749999814], //#1
60
+ [45.82567253451685,2.3693843749999814], //#2
61
+ [45.82567253451685,2.2693843749999814], //#2
62
+ [45.82567253451685,2.1693843749999814], //#2
63
+ [45.82567253451685,2.0693843749999814], //#2
64
+ [48.82567253451685,1.918], // #1 after average
65
+ [47.3,1.918] // no group
66
+ ],
67
+ cluster:{
68
+ radius:60,
69
+ // This style will be used for clusters with more than 0 markers
70
+ 0: {
71
+ content: '<div class="cluster cluster-1">CLUSTER_COUNT</div>',
72
+ width: 53,
73
+ height: 52
74
+ },
75
+ // This style will be used for clusters with more than 10 markers
76
+ 2: {
77
+ content: '<div class="cluster cluster-2">CLUSTER_COUNT</div>',
78
+ width: 56,
79
+ height: 55
80
+ },
81
+ // This style will be used for clusters with more than 20 markers
82
+ 4: {
83
+ content: '<div class="cluster cluster-3">CLUSTER_COUNT</div>',
84
+ width: 66,
85
+ height: 65
86
+ }
87
+ }
88
+ }
89
+ },
90
+ { marker:{
91
+ values:[
92
+ [48.8620722, 2.352047],
93
+ [46.59433,0.342236],
94
+ [42.704931, 2.894697]
95
+ ]
96
+ },
97
+ circle:{
98
+ values:[
99
+ { options:{
100
+ center: [47.34329,5.028076],
101
+ radius : 250000,
102
+ fillColor : "#F4AFFF",
103
+ strokeColor : "#CB53DF"
104
+ }
105
+ },
106
+ { options:{
107
+ center: [47.34329,5.028076],
108
+ radius : 125000,
109
+ fillColor : "#008BB2",
110
+ strokeColor : "#005BB7"
111
+ }
112
+ }
113
+ ]
114
+ },
115
+ rectangle:{
116
+ options:{
117
+ bounds: {ne:[47.238965,-1.607666], sw:[48.404409,-4.508057]},
118
+ radius : 750,
119
+ fillColor : "#008BB2",
120
+ strokeColor : "#005BB7"
121
+ }
122
+ },
123
+ polyline:{
124
+ values:[
125
+ { options:{ path:[
126
+ [53.08478686807706, -0.443115624999999],
127
+ [53.242865580591584, 0.479735937500001],
128
+ [51.853424606562065, 0.567626562500001],
129
+ [52.015993653812835, -0.706787499999999],
130
+ [52.66039236803361, -0.179443749999999]
131
+ ]
132
+ }},
133
+ { options:{ path:[
134
+ [52.63372973171113, 1.798095312500001],
135
+ [52.63372973171113, 3.468017187500001]
136
+ ]
137
+ }},
138
+ { options:{ path:[
139
+ [53.37415340143462, 4.215087500000001],
140
+ [53.37415340143462, 5.753173437500001],
141
+ [53.031964521054995, 6.104735937500001],
142
+ [52.76688041593213, 5.841064062500001],
143
+ [52.79346182438923, 4.786376562500001],
144
+ [52.71366888314625, 5.885009375000001],
145
+ [52.31250879780346, 6.368407812500001],
146
+ [51.8805603577419, 6.280517187500001],
147
+ [51.93478275669203, 4.390868750000001],
148
+ [53.37415340143462, 4.215087500000001]
149
+ ]
150
+ }}
151
+ ],
152
+ options:{
153
+ strokeColor: "#FF0000",
154
+ strokeOpacity: 1.0,
155
+ strokeWeight: 2
156
+ }
157
+ }
158
+ },
159
+ { polygon:{
160
+ options:{
161
+ strokeColor: "#FF0000",
162
+ strokeOpacity: 0.8,
163
+ strokeWeight: 2,
164
+ fillColor: "#FF0000",
165
+ fillOpacity: 0.35,
166
+ paths:[
167
+ [47.23896534797107, 10.103759375000001],
168
+ [45.78744522454207, 10.894775000000001],
169
+ [45.20216719900454, 13.004150000000001],
170
+ [44.798208663960814, 10.894775000000001],
171
+ [42.76798523689034, 10.103759375000001],
172
+ [44.798208663960814, 9.400634375000001],
173
+ [45.264061876535, 7.291259375000001],
174
+ [45.78744522454207, 9.400634375000001]
175
+ ]
176
+ }
177
+ }
178
+ }
179
+ );
180
+ });
181
+
182
+ function clearThat(){
183
+ var tg = $("#target").val(),
184
+ wh = $("#which").val(),
185
+ opts = {};
186
+ if (tg != "all"){
187
+ opts.name = tg; /* string but can be an array of name : ["marker", "polyline", ...] */
188
+ }
189
+ if (wh == "first"){
190
+ opts.first = true;
191
+ }
192
+ if (wh == "last"){
193
+ opts.last = true;
194
+ }
195
+ $('#test1').gmap3({clear:opts});
196
+ }
197
+ </script>
198
+
199
+ <body>
200
+ <select id="target">
201
+ <option>all</option>
202
+ <option>clusterer</option>
203
+ <option>marker</option>
204
+ <option>circle</option>
205
+ <option>rectangle</option>
206
+ <option>polyline</option>
207
+ <option>polygon</option>
208
+ </select>
209
+ <select id="which">
210
+ <option>all</option>
211
+ <option>last</option>
212
+ <option>first</option>
213
+ </select>
214
+ <input type="button" value="clear" onclick="clearThat();">
215
+ <div id="test1" class="gmap3"></div>
216
+ </body>
217
+ </html>
js/gmap/demo/cluster - add real marker.html ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ body{
9
+ text-align:center;
10
+ }
11
+ .gmap3{
12
+ margin: 20px auto;
13
+ border: 1px dashed #C0C0C0;
14
+ width: 1000px;
15
+ height: 750px;
16
+ }
17
+ .cluster{
18
+ color: #FFFFFF;
19
+ text-align:center;
20
+ font-family: 'Arial, Helvetica';
21
+ font-size:11px;
22
+ font-weight:bold;
23
+ }
24
+ .cluster-1{
25
+ background-image:url(images/m1.png);
26
+ line-height:53px;
27
+ width: 53px;
28
+ height: 52px;
29
+ }
30
+ .cluster-2{
31
+ background-image:url(images/m2.png);
32
+ line-height:53px;
33
+ width: 56px;
34
+ height: 55px;
35
+ }
36
+ .cluster-3{
37
+ background-image:url(images/m3.png);
38
+ line-height:66px;
39
+ width: 66px;
40
+ height: 65px;
41
+ }
42
+ </style>
43
+
44
+ <script type="text/javascript">
45
+
46
+ $(function(){
47
+
48
+ // init the map and create a cluster with some markers
49
+ $('#test1').gmap3({
50
+ map:{
51
+ options:{
52
+ center:[46.578498,2.457275],
53
+ zoom: 4,
54
+ mapTypeId: google.maps.MapTypeId.TERRAIN
55
+ }
56
+ },
57
+ marker:{
58
+ values: [
59
+ [49.28952958093682, 6.152559438984804],
60
+ [44.28952958093682, 6.152559438984804],
61
+ [49.28952958093682, -1.1501188139848408],
62
+ [44.28952958093682, -1.1501188139848408]
63
+ ],
64
+ cluster:{
65
+ radius: 100,
66
+ // This style will be used for clusters with more than 0 markers
67
+ 0: {
68
+ content: '<div class="cluster cluster-1">CLUSTER_COUNT</div>',
69
+ width: 53,
70
+ height: 52
71
+ },
72
+ // This style will be used for clusters with more than 20 markers
73
+ 20: {
74
+ content: '<div class="cluster cluster-2">CLUSTER_COUNT</div>',
75
+ width: 56,
76
+ height: 55
77
+ },
78
+ // This style will be used for clusters with more than 50 markers
79
+ 50: {
80
+ content: '<div class="cluster cluster-3">CLUSTER_COUNT</div>',
81
+ width: 66,
82
+ height: 65
83
+ }
84
+ }
85
+ }
86
+ });
87
+
88
+ // append a draggable alone marker
89
+ $('#test1').gmap3({
90
+ marker:{
91
+ latLng:[50.92104315206032, 2.1936031249999814],
92
+ options:{
93
+ draggable: true
94
+ }
95
+ }
96
+ });
97
+
98
+ // attach insertion action
99
+ $('button').click(function(){
100
+ var marker = $('#test1').gmap3({get:{name:"marker"}});
101
+ var clusterer = $('#test1').gmap3({get:{name:"clusterer"}});
102
+
103
+ // append the marker to the cluster and attach one event
104
+ clusterer.add(
105
+ marker,
106
+ { events: {
107
+ click: function(){
108
+ alert("I was the one !")
109
+ }
110
+ }}
111
+ );
112
+
113
+ $(this).remove();
114
+ });
115
+
116
+ });
117
+
118
+ </script>
119
+ <body>
120
+ <button>Insert into clustering</button>
121
+ <div id="test1" class="gmap3"></div>
122
+ Drag and drop the marker, and then, click to add it into the current clustering
123
+ </body>
124
+ </html>
js/gmap/demo/cluster - filter.html ADDED
@@ -0,0 +1,154 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ body{
9
+ text-align:center;
10
+ }
11
+ .gmap3{
12
+ margin: 20px auto;
13
+ border: 1px dashed #C0C0C0;
14
+ width: 1000px;
15
+ height: 750px;
16
+ }
17
+ .cluster{
18
+ color: #FFFFFF;
19
+ text-align:center;
20
+ font-family: 'Arial, Helvetica';
21
+ font-size:11px;
22
+ font-weight:bold;
23
+ }
24
+ .cluster-1{
25
+ background-image:url(images/m1.png);
26
+ line-height:53px;
27
+ width: 53px;
28
+ height: 52px;
29
+ }
30
+ .cluster-2{
31
+ background-image:url(images/m2.png);
32
+ line-height:53px;
33
+ width: 56px;
34
+ height: 55px;
35
+ }
36
+ .cluster-3{
37
+ background-image:url(images/m3.png);
38
+ line-height:66px;
39
+ width: 66px;
40
+ height: 65px;
41
+ }
42
+ </style>
43
+
44
+ <script type="text/javascript">
45
+
46
+ // generate an array of colors
47
+ var colors = "black brown green purple yellow grey orange white".split(" ");
48
+
49
+ // on document ready function
50
+ $(function(){
51
+
52
+ // create colors checkbox and associate onChange function
53
+ $.each(colors, function(i, color){
54
+ $("#colors").append("<input type='checkbox' name='"+color+"' checked><label for='"+color+"'>"+color+"</label>");
55
+ });
56
+ $("#colors input[type=checkbox]").change(onChangeChk);
57
+ $("#onOff").change(onChangeOnOff);
58
+
59
+
60
+ // create gmap3 and call the marker generation function
61
+ $('#test1').gmap3({
62
+ map:{
63
+ options:{
64
+ zoom: 5,
65
+ mapTypeId: google.maps.MapTypeId.TERRAIN
66
+ },
67
+ onces: {
68
+ bounds_changed: function(){
69
+ randomMarkers($(this).gmap3("get").getBounds());
70
+ }
71
+ }
72
+ }
73
+ });
74
+
75
+ });
76
+
77
+ // generate a list of 100 random marker and call gmap3 clustering function
78
+ function randomMarkers(bounds){
79
+ var southWest = bounds.getSouthWest(),
80
+ northEast = bounds.getNorthEast(),
81
+ lngSpan = northEast.lng() - southWest.lng(),
82
+ latSpan = northEast.lat() - southWest.lat(),
83
+ i, color, list = [];
84
+
85
+ // generate random list
86
+ for (i = 0; i < 100; i++) {
87
+ color = colors[Math.floor(Math.random()*colors.length)];
88
+ list.push({
89
+ latLng:[southWest.lat() + latSpan * Math.random(), southWest.lng() + lngSpan * Math.random()],
90
+ options:{
91
+ icon: "http://maps.google.com/mapfiles/marker_"+color+".png"
92
+ },
93
+ tag:color
94
+ });
95
+ }
96
+
97
+ // call the clustering function
98
+ $('#test1').gmap3({
99
+ marker:{
100
+ values: list,
101
+ cluster:{
102
+ radius: 100,
103
+ // This style will be used for clusters with more than 0 markers
104
+ 0: {
105
+ content: '<div class="cluster cluster-1">CLUSTER_COUNT</div>',
106
+ width: 53,
107
+ height: 52
108
+ },
109
+ // This style will be used for clusters with more than 20 markers
110
+ 20: {
111
+ content: '<div class="cluster cluster-2">CLUSTER_COUNT</div>',
112
+ width: 56,
113
+ height: 55
114
+ },
115
+ // This style will be used for clusters with more than 50 markers
116
+ 50: {
117
+ content: '<div class="cluster cluster-3">CLUSTER_COUNT</div>',
118
+ width: 66,
119
+ height: 65
120
+ }
121
+ }
122
+ }
123
+ });
124
+ }
125
+
126
+ function onChangeOnOff(){
127
+ if ($(this).is(":checked")){
128
+ $('#test1').gmap3({get:"clusterer"}).enable();
129
+ } else {
130
+ $('#test1').gmap3({get:"clusterer"}).disable();
131
+ }
132
+ }
133
+
134
+ function onChangeChk(){
135
+ // first : create an object where keys are colors and values is true (only for checked objects)
136
+ var checkedColors = {};
137
+ $("#colors input[type=checkbox]:checked").each(function(i, chk){
138
+ checkedColors[$(chk).attr("name")] = true;
139
+ });
140
+
141
+ // set a filter function using the closure data "checkedColors"
142
+ $('#test1').gmap3({get:"clusterer"}).filter(function(data){
143
+ return data.tag in checkedColors;
144
+ });
145
+ }
146
+
147
+ </script>
148
+ <body>
149
+ <div id="main"><input type="checkbox" name="onOff" id="onOff" checked><label for="onOff">Clustering</label></div>
150
+ <div id="colors"></div>
151
+ <br />
152
+ <div id="test1" class="gmap3"></div>
153
+ </body>
154
+ </html>
js/gmap/demo/cluster - remove a marker.html ADDED
@@ -0,0 +1,112 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ body{
9
+ text-align:center;
10
+ }
11
+ #box{
12
+ display: none;
13
+ }
14
+ .gmap3{
15
+ margin: 20px auto;
16
+ border: 1px dashed #C0C0C0;
17
+ width: 1000px;
18
+ height: 750px;
19
+ }
20
+ .cluster{
21
+ color: #FFFFFF;
22
+ text-align:center;
23
+ font-family: 'Arial, Helvetica';
24
+ font-size:11px;
25
+ font-weight:bold;
26
+ }
27
+ .cluster-1{
28
+ background-image:url(images/m1.png);
29
+ line-height:53px;
30
+ width: 53px;
31
+ height: 52px;
32
+ }
33
+ .cluster-2{
34
+ background-image:url(images/m2.png);
35
+ line-height:53px;
36
+ width: 56px;
37
+ height: 55px;
38
+ }
39
+ .cluster-3{
40
+ background-image:url(images/m3.png);
41
+ line-height:66px;
42
+ width: 66px;
43
+ height: 65px;
44
+ }
45
+ </style>
46
+
47
+ <script type="text/javascript">
48
+
49
+ $(function(){
50
+
51
+ // init the map and create a cluster with some markers
52
+ $('#test1').gmap3({
53
+ map:{
54
+ options:{
55
+ center:[46.578498,2.457275],
56
+ zoom: 5,
57
+ mapTypeId: google.maps.MapTypeId.TERRAIN
58
+ }
59
+ },
60
+ marker:{
61
+ values: [
62
+ {latLng:[49.28952958093682, 6.152559438984804], id:"first"},
63
+ [44.28952958093682, 6.152559438984804],
64
+ [49.28952958093682, -1.1501188139848408],
65
+ {latLng:[44.28952958093682, -1.1501188139848408], id:"last"}
66
+ ],
67
+ cluster:{
68
+ radius: 100,
69
+ // This style will be used for clusters with more than 0 markers
70
+ 0: {
71
+ content: '<div class="cluster cluster-1">CLUSTER_COUNT</div>',
72
+ width: 53,
73
+ height: 52
74
+ },
75
+ // This style will be used for clusters with more than 20 markers
76
+ 20: {
77
+ content: '<div class="cluster cluster-2">CLUSTER_COUNT</div>',
78
+ width: 56,
79
+ height: 55
80
+ },
81
+ // This style will be used for clusters with more than 50 markers
82
+ 50: {
83
+ content: '<div class="cluster cluster-3">CLUSTER_COUNT</div>',
84
+ width: 66,
85
+ height: 65
86
+ }
87
+ },
88
+ events:{
89
+ click: function(marker, event, data){
90
+ $("#box span.value").text(data.id);
91
+ $("#box").show();
92
+ }
93
+ }
94
+ }
95
+ });
96
+
97
+ $("#box button").click(function(){
98
+ $('#test1').gmap3({clear:$("#box span.value").text()}); // remove the marker using it's ID
99
+ $("#box").hide();
100
+ });
101
+
102
+ });
103
+
104
+ </script>
105
+ <body>
106
+ <span>Select a marker to remove it</span>
107
+ <div id="box">
108
+ <span>ID : </span> <span class="value"></span> <button>Remove</button>
109
+ </div>
110
+ <div id="test1" class="gmap3"></div>
111
+ </body>
112
+ </html>
js/gmap/demo/cluster.html ADDED
@@ -0,0 +1,167 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ body{
9
+ text-align:center;
10
+ }
11
+ .gmap3{
12
+ margin: 20px auto;
13
+ border: 1px dashed #C0C0C0;
14
+ width: 1000px;
15
+ height: 750px;
16
+ }
17
+ .cluster{
18
+ color: #FFFFFF;
19
+ text-align:center;
20
+ font-family: 'Arial, Helvetica';
21
+ font-size:11px;
22
+ font-weight:bold;
23
+ }
24
+ .cluster-1{
25
+ background-image:url(images/m1.png);
26
+ line-height:53px;
27
+ width: 53px;
28
+ height: 52px;
29
+ }
30
+ .cluster-2{
31
+ background-image:url(images/m2.png);
32
+ line-height:53px;
33
+ width: 56px;
34
+ height: 55px;
35
+ }
36
+ .cluster-3{
37
+ background-image:url(images/m3.png);
38
+ line-height:66px;
39
+ width: 66px;
40
+ height: 65px;
41
+ }
42
+ </style>
43
+
44
+ <script type="text/javascript">
45
+
46
+ var globalCluster;
47
+
48
+ $(function(){
49
+ $('#test1').gmap3({
50
+ map:{
51
+ options:{
52
+ center:[46.578498,2.457275],
53
+ zoom: 6,
54
+ mapTypeId: google.maps.MapTypeId.TERRAIN
55
+ },
56
+ events:{
57
+ click: function(map, event){
58
+ addMarkerToCluster($(this), event.latLng);
59
+ },
60
+ rightclick: function(map, event){
61
+ addMarkersToCluster($(this), event.latLng);
62
+ }
63
+ },
64
+ callback: function(map){
65
+ waitForBounds(map);
66
+ }
67
+ }
68
+ });
69
+ });
70
+
71
+ function waitForBounds(map){
72
+ var ne, sw, bounds = map.getBounds();
73
+ if (!bounds){
74
+ google.maps.event.addListenerOnce(map, 'bounds_changed',
75
+ function() {
76
+ waitForBounds(map)
77
+ }
78
+ );
79
+ return;
80
+ }
81
+ ne = bounds.getNorthEast();
82
+ sw = bounds.getSouthWest();
83
+ randomMarkers(ne.lat(), sw.lng(), sw.lat(), ne.lng());
84
+ }
85
+
86
+ function randomMarkers(lat1, lng1, lat2, lng2){
87
+ var i, list = [], rlat=lat2-lat1, rlng=lng2-lng1, lat, lng;
88
+ for(i=0; i<1000; i++){
89
+ lat = lat1 + rlat * Math.random();
90
+ lng = lng1 + rlng * Math.random();
91
+ list.push({latLng:[lat, lng]});
92
+ }
93
+ $('#test1').gmap3({
94
+ marker:{
95
+ values: list,
96
+ cluster:{
97
+ radius: 100,
98
+ events:{
99
+ mouseover: function(cluster, event){
100
+ $(cluster.main.getDOMElement()).css('border', '1px solid #FF0000');
101
+ },
102
+ mouseout: function(cluster, event){
103
+ $(cluster.main.getDOMElement()).css('border', '0px');
104
+ }
105
+ },
106
+ // This style will be used for clusters with more than 0 markers
107
+ 0: {
108
+ content: '<div class="cluster cluster-1">CLUSTER_COUNT</div>',
109
+ width: 53,
110
+ height: 52
111
+ },
112
+ // This style will be used for clusters with more than 20 markers
113
+ 20: {
114
+ content: '<div class="cluster cluster-2">CLUSTER_COUNT</div>',
115
+ width: 56,
116
+ height: 55
117
+ },
118
+ // This style will be used for clusters with more than 50 markers
119
+ 50: {
120
+ content: '<div class="cluster cluster-3">CLUSTER_COUNT</div>',
121
+ width: 66,
122
+ height: 65
123
+ }
124
+ },
125
+ callback: function(cluster){ // get the cluster and save it in global variable
126
+ globalCluster = cluster;
127
+ }
128
+ }
129
+ });
130
+ }
131
+
132
+ function addMarkerToCluster($this, latLng){
133
+ $this.gmap3({
134
+ marker:{
135
+ latLng:latLng,
136
+ cluster:globalCluster
137
+ }
138
+ });
139
+ }
140
+
141
+ function addMarkersToCluster($this, latLng){
142
+ var lat = latLng.lat(),
143
+ lng = latLng.lng(),
144
+ dy = (1/60),
145
+ dx = 1/(60* Math.cos(Math.PI * lat / 180)),
146
+ miles = 15,
147
+ list = [];
148
+ list.push([lat, lng]);
149
+ list.push([lat+miles*dy, lng]);
150
+ list.push([lat-miles*dy, lng]);
151
+ list.push([lat, lng+miles*dx]);
152
+ list.push([lat, lng-miles*dx]);
153
+
154
+ $this.gmap3({
155
+ marker:{
156
+ values: list,
157
+ cluster:globalCluster
158
+ }
159
+ });
160
+ }
161
+
162
+ </script>
163
+ <body>
164
+ <div id="test1" class="gmap3"></div>
165
+ click to add new markers to the cluster
166
+ </body>
167
+ </html>
js/gmap/demo/control-advanced.html ADDED
@@ -0,0 +1,196 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ .gmap3{
9
+ margin: 20px auto;
10
+ border: 1px dashed #C0C0C0;
11
+ width: 1024px;
12
+ height: 768px;
13
+ }
14
+
15
+ #homeControl{
16
+ padding: 5px;
17
+ }
18
+
19
+ #homeControl .outer{
20
+ background-color: #FFFFFF;
21
+ cursor: pointer;
22
+ text-align: center;
23
+ -moz-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.35);
24
+ border: 1px solid rgba(0, 0, 0, 0.35);
25
+ }
26
+
27
+ #homeControl .outer .inner{
28
+ font-family: Arial,sans-serif;
29
+ font-size: 12px;
30
+ padding-left: 4px;
31
+ padding-right: 4px;
32
+ font-weight: bold;
33
+ }
34
+
35
+ #homeControl .outer .inner .items{
36
+ display: none;
37
+ }
38
+
39
+ #homeControl.hover .outer .inner .items{
40
+ display: block;
41
+ }
42
+
43
+ #homeControl.hover .outer .inner .items .item{
44
+ color: #333333;
45
+ line-height: 26px;
46
+ white-space: nowrap;
47
+ cursor: pointer;
48
+ font-family: arial,sans-serif;
49
+ font-weight: normal;
50
+ font-size: 13px;
51
+ width: 175px;
52
+ overflow: auto;
53
+ }
54
+ #homeControl.hover .outer .inner .items .item.hover{
55
+ background-color:#EBEBEB;
56
+ }
57
+ #homeControl.hover .outer .inner .items .item .pict{
58
+ height: 11px;
59
+ width: 13px;
60
+ float: left;
61
+ margin-left: 6px;
62
+ margin-top: 9px;
63
+ }
64
+ #homeControl.hover .outer .inner .items .item.hover .pict{
65
+ background: url("http://maps.gstatic.com/mapfiles/mv/imgs8.png") no-repeat scroll -18px -54px transparent !important;
66
+ }
67
+ #homeControl.hover .outer .inner .items .item.checked .pict,
68
+ #homeControl.hover .outer .inner .items .item.checked.hover .pict{
69
+ background: url("http://maps.gstatic.com/mapfiles/mv/imgs8.png") no-repeat scroll -52px -44px transparent !important;
70
+ }
71
+ #homeControl.hover .outer .inner .items .item .text{
72
+ float: left;
73
+ margin-left: 10px;
74
+ }
75
+ #homeControl .outer .inner .items .item.hover .text{
76
+ font-weight:bold;
77
+ }
78
+
79
+ </style>
80
+ <script type="text/javascript">
81
+
82
+ function HomeControl($this, map) {
83
+ var $container = $(document.createElement('DIV')),
84
+ $outer = $(document.createElement('DIV')),
85
+ $inner = $(document.createElement('DIV')),
86
+ $items = $(document.createElement('DIV')),
87
+ checked = {};
88
+
89
+ $items.addClass("items");
90
+
91
+ $.each("marker rectangle circle".split(" "), function(i, name){
92
+ $items.append(
93
+ $(document.createElement('DIV'))
94
+ .addClass('item')
95
+ .html("<div class='pict'></div><div class='text'><span>" + name + "</span></div>")
96
+ .click(function(){
97
+ clickOn(this, name);
98
+ })
99
+ );
100
+ checked[name] = true;
101
+ });
102
+
103
+ $items.find(".item")
104
+ .addClass("checked")
105
+ .hover(function(){$(this).addClass("hover");}, function(){$(this).removeClass("hover");});
106
+
107
+
108
+ $inner.addClass("inner").html("SETUP");
109
+ $outer.addClass("outer");
110
+ $container.attr("id", "homeControl");
111
+
112
+ $container.hover(function(){$container.addClass("hover");}, function(){$container.removeClass("hover");});
113
+
114
+ $container.append( $outer.append( $inner.append( $items ) ) );
115
+
116
+ this.index = 1;
117
+ map.controls[google.maps.ControlPosition.TOP_RIGHT].push($container.get(0));
118
+
119
+ function clickOn(div, name){
120
+ checked[name] = !checked[name];
121
+ $(div)[checked[name] ? "addClass" : "removeClass"]("checked");
122
+ $this.gmap3({
123
+ exec:{
124
+ name:name,
125
+ all:true,
126
+ func:function(data){
127
+ data.object.setMap(checked[name] ? map : null);
128
+ }
129
+ }
130
+ });
131
+ }
132
+ }
133
+
134
+ $(function(){
135
+ $("#map_canvas").gmap3({
136
+ map:{
137
+ options:{
138
+ center:[46.578498,2.457275],
139
+ zoom: 5,
140
+ mapTypeControl: false,
141
+ panControl: false,
142
+ zoomControl: false,
143
+ scaleControl: false,
144
+ streetViewControl: false,
145
+ rotateControl: false,
146
+ rotateControlOptions: false,
147
+ overviewMapControl: false,
148
+ OverviewMapControlOptions: false
149
+
150
+ },
151
+ callback: function(map){
152
+ new HomeControl($(this), map);
153
+ }
154
+ },
155
+ marker:{
156
+ values:[
157
+ [48.8620722, 2.352047],
158
+ [46.59433,0.342236],
159
+ [42.704931, 2.894697]
160
+ ]
161
+ },
162
+ circle:{
163
+ values:[
164
+ { options:{
165
+ center: [47.34329,5.028076],
166
+ radius : 250000,
167
+ fillColor : "#F4AFFF",
168
+ strokeColor : "#CB53DF"
169
+ }
170
+ },
171
+ { options:{
172
+ center: [47.34329,5.028076],
173
+ radius : 125000,
174
+ fillColor : "#008BB2",
175
+ strokeColor : "#005BB7"
176
+ }
177
+ }
178
+ ]
179
+ },
180
+ rectangle:{
181
+ options:{
182
+ bounds: {ne:[47.238965,-1.607666], sw:[48.404409,-4.508057]},
183
+ radius : 750,
184
+ fillColor : "#008BB2",
185
+ strokeColor : "#005BB7"
186
+ }
187
+ }
188
+ });
189
+ });
190
+
191
+ </script>
192
+ </head>
193
+ <body>
194
+ <div id="map_canvas" class="gmap3"></div>
195
+ </body>
196
+ </html>
js/gmap/demo/control.html ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ .gmap3{
9
+ margin: 20px auto;
10
+ border: 1px dashed #C0C0C0;
11
+ width: 1024px;
12
+ height: 768px;
13
+ }
14
+
15
+ #homeControl{
16
+ padding: 5px;
17
+ }
18
+
19
+ #homeControl .outer{
20
+ background-color: #FFFFFF;
21
+ border: 2px solid #000000;
22
+ cursor: pointer;
23
+ text-align: center;
24
+ }
25
+
26
+ #homeControl .outer .inner{
27
+ font-family: Arial,sans-serif;
28
+ font-size: 12px;
29
+ padding-left: 4px;
30
+ padding-right: 4px;
31
+ font-weight: bold;
32
+ }
33
+
34
+ </style>
35
+ <script type="text/javascript">
36
+
37
+ var chicago = new google.maps.LatLng(41.850033, -87.6500523);
38
+
39
+ function HomeControl(map) {
40
+ var $container = $(document.createElement('DIV')),
41
+ $outer = $(document.createElement('DIV')),
42
+ $inner = $(document.createElement('DIV'));
43
+
44
+ $inner.addClass("inner").html("Home");
45
+ $outer.addClass("outer").attr('title', "Click to set the map to Home");
46
+ $container.attr("id", "homeControl");
47
+
48
+ $container.append( $outer.append( $inner ) );
49
+
50
+ google.maps.event.addDomListener($outer.get(0), 'click', function() {
51
+ map.setCenter(chicago)
52
+ });
53
+
54
+ this.index = 1;
55
+ map.controls[google.maps.ControlPosition.TOP_RIGHT].push($container.get(0));
56
+ }
57
+
58
+ $(function(){
59
+ $("#map_canvas").gmap3({
60
+ map:{
61
+ options:{
62
+ zoom: 12,
63
+ center: chicago,
64
+ mapTypeId: google.maps.MapTypeId.ROADMAP
65
+ },
66
+ callback: function(map){
67
+ new HomeControl(map);
68
+ }
69
+ }
70
+ });
71
+ });
72
+
73
+ </script>
74
+ </head>
75
+ <body>
76
+ <h1>jQuery / Gmap3 version of the <a href="https://developers.google.com/maps/documentation/javascript/controls#CustomExample" target="blank">google example</a></h1>
77
+ <div id="map_canvas" class="gmap3"></div>
78
+ </body>
79
+ </html>
js/gmap/demo/debug.html ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ .gmap3{
9
+ margin: 20px auto;
10
+ border: 1px dashed #C0C0C0;
11
+ width: 500px;
12
+ height: 250px;
13
+ }
14
+ </style>
15
+
16
+ <script type="text/javascript">
17
+ $(function(){
18
+ $('#test1').gmap3({
19
+ defaults:{
20
+ verbose:true
21
+ },
22
+ map:{
23
+ address:"XXXXXX",
24
+ options:{
25
+ zoom: 14,
26
+ mapTypeId: google.maps.MapTypeId.TERRAIN
27
+ }
28
+ }
29
+ });
30
+ });
31
+ </script>
32
+ <body>
33
+ <div id="test1" class="gmap3"></div>
34
+ </body>
35
+ </html>
js/gmap/demo/distance.html ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <script type="text/javascript">
8
+
9
+ function distance(){
10
+ $("body").gmap3({
11
+ getdistance:{
12
+ options:{
13
+ origins:[$("#origins").val()],
14
+ destinations:[$("#destinations").val()],
15
+ travelMode: google.maps.TravelMode.DRIVING
16
+ },
17
+ callback: function(results, status){
18
+ var html = "";
19
+ if (results){
20
+ for (var i = 0; i < results.rows.length; i++){
21
+ var elements = results.rows[i].elements;
22
+ for(var j=0; j<elements.length; j++){
23
+ switch(elements[j].status){
24
+ case "OK":
25
+ html += elements[j].distance.text + " (" + elements[j].duration.text + ")<br />";
26
+ break;
27
+ case "NOT_FOUND":
28
+ html += "The origin and/or destination of this pairing could not be geocoded<br />";
29
+ break;
30
+ case "ZERO_RESULTS":
31
+ html += "No route could be found between the origin and destination.<br />";
32
+ break;
33
+ }
34
+ }
35
+ }
36
+ } else {
37
+ html = "error";
38
+ }
39
+ $("#results").html( html );
40
+ }
41
+ }
42
+ });
43
+ }
44
+
45
+ </script>
46
+ </head>
47
+
48
+ <body>
49
+ Origin : <input type="text" id="origins" /> Destination : <input type="text" id="destinations" /> <input type="button" id="distance" value="distance" onclick="distance();">
50
+ <br /><br />
51
+ Results :
52
+ <div id="results"></div>
53
+ </body>
54
+ </html>
js/gmap/demo/elevation-path.html ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="http://www.google.com/jsapi"></script>
7
+ <script type="text/javascript" src="../gmap3.js"></script>
8
+ <style>
9
+ #container{
10
+ overflow: auto;
11
+ margin: 0 auto;
12
+ width: 1200px;
13
+ }
14
+ #test1{
15
+ border: 1px dashed #C0C0C0;
16
+ width: 500px;
17
+ height: 400px;
18
+ float: left;
19
+ }
20
+ #chart{
21
+ float: left;
22
+ }
23
+ </style>
24
+
25
+ <script type="text/javascript">
26
+ var chart;
27
+ var path = [
28
+ [36.012196, -112.100348],
29
+ [36.221866, -112.098975]
30
+ ];
31
+
32
+ google.load("visualization", "1", {packages: ["columnchart"]});
33
+
34
+ $(function(){
35
+ chart = new google.visualization.ColumnChart(document.getElementById('chart'));
36
+
37
+ $('#test1').gmap3(
38
+ { map:{
39
+ options:{
40
+ center: [36.112196, -112.100348],
41
+ zoom:10,
42
+ mapTypeId: google.maps.MapTypeId.SATELLITE
43
+ }
44
+ }
45
+ },
46
+ { marker:{
47
+ latLng: path[0]
48
+ }
49
+ },
50
+ { marker:{
51
+ latLng: path[1]
52
+ }
53
+ },
54
+ { getelevation:{
55
+ path: path,
56
+ samples: 500,
57
+ callback: function (results) {
58
+ var data = new google.visualization.DataTable();
59
+ data.addColumn('string', 'Sample');
60
+ data.addColumn('number', 'Elevation');
61
+ for (var i = 0; i < results.length; i++) {
62
+ data.addRow(['', results[i].elevation]);
63
+ }
64
+ chart.draw(data, {
65
+ width: 500,
66
+ height: 300,
67
+ legend: 'none',
68
+ titleY: 'Elevation (m)',
69
+ focusBorderColor: '#00ff00'
70
+ });
71
+ }
72
+ }
73
+ }
74
+ );
75
+
76
+ });
77
+ </script>
78
+ </head>
79
+
80
+ <body>
81
+ <div id="container">
82
+ <div id="test1" class="gmap3"></div>
83
+ <div id="chart"></div>
84
+ </div>
85
+ </body>
86
+ </html>
js/gmap/demo/elevation.html ADDED
@@ -0,0 +1,137 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ .gmap3{
9
+ margin: 20px auto;
10
+ border: 1px dashed #C0C0C0;
11
+ width: 1024px;
12
+ height: 768px;
13
+ }
14
+
15
+ #meters{
16
+ height: 30px;
17
+ width: 800px;
18
+ margin: 10px auto;
19
+ border: 1px solid #000000;
20
+ position: relative;
21
+ }
22
+
23
+ #value{
24
+ position: absolute;
25
+ padding-top: 5px;
26
+ text-align: center;
27
+ width: 800px;
28
+ }
29
+
30
+ #pct{
31
+ position: absolute;
32
+ top: 0px;
33
+ height: 30px;
34
+ width: 0px;
35
+ background-color: #FF0000;
36
+ }
37
+
38
+ #elevation {
39
+ width: 200px;
40
+ height: 45px;
41
+ }
42
+ </style>
43
+
44
+ <script type="text/javascript">
45
+
46
+ function refreshinfowindow( latLng ){
47
+ $('#test1').gmap3({
48
+ getelevation:{
49
+ latLng:latLng,
50
+ callback: function(results){
51
+ if (results) $('#elevation').html("The elevation at this point <br/>is " + results[0].elevation + " meters.");
52
+ }
53
+ }
54
+ });
55
+ }
56
+
57
+ var max = 4000;
58
+ var last, ts;
59
+
60
+ function updateLast(){
61
+ var r = (new Date).getTime();
62
+ last = r;
63
+ return r;
64
+ }
65
+
66
+ function refreshMeterValue( latLng ){
67
+ if ( ts ) clearTimeout(ts);
68
+ ts = setTimeout(
69
+ function(){doRefreshMeterValue( latLng )},
70
+ 200
71
+ );
72
+ }
73
+
74
+ function doRefreshMeterValue( latLng ){
75
+ var myLast = updateLast();
76
+ $('#test1').gmap3({
77
+ getelevation:{
78
+ latLng:latLng,
79
+ callback: function(results){
80
+ if (!results || (myLast != last)) return;
81
+ var v = Math.min(100, Math.round((results[0].elevation * 100 / max)));
82
+ $('#value').html(Math.round(results[0].elevation) + ' meters');
83
+ $('#pct').css('width', v + '%');
84
+ }
85
+ }
86
+ });
87
+ }
88
+
89
+ $(function(){
90
+
91
+ var center = [63.3333333, -150.5];
92
+
93
+ $('#test1').gmap3({
94
+ map:{
95
+ options:{
96
+ zoom:8,
97
+ center: center,
98
+ mapTypeId: 'terrain'
99
+ },
100
+ events:{
101
+ mousemove: function(map, event){
102
+ refreshMeterValue( event.latLng );
103
+ }
104
+ }
105
+ },
106
+ marker:{
107
+ latLng: center,
108
+ options:{
109
+ draggable: true
110
+ },
111
+ events:{
112
+ dragend: function(marker, event){
113
+ refreshinfowindow( event.latLng );
114
+ }
115
+ }
116
+ },
117
+ infowindow:{
118
+ options:{
119
+ content: '<div id="elevation"></div>'
120
+ },
121
+ onces: {
122
+ domready: function(){
123
+ refreshinfowindow( center );
124
+ }
125
+ }
126
+ }
127
+ });
128
+
129
+ });
130
+ </script>
131
+ </head>
132
+
133
+ <body>
134
+ <div id="meters"><div id="pct"></div><div id="value"></div></div>
135
+ <div id="test1" class="gmap3"></div>
136
+ </body>
137
+ </html>
js/gmap/demo/external/markerwithlabel.js ADDED
@@ -0,0 +1,409 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * @name MarkerWithLabel for V3
3
+ * @version 1.0 [June 25, 2010]
4
+ * @author Gary Little (inspired by code from Marc Ridey of Google).
5
+ * @copyright Copyright 2010 Gary Little [gary at luxcentral.com]
6
+ * @fileoverview MarkerWithLabel extends the Google Maps JavaScript API V3
7
+ * <code>google.maps.Marker</code> class.
8
+ * <p>
9
+ * MarkerWithLabel allows you to define markers with associated labels. As you would expect,
10
+ * if the marker is draggable, so too will be the label. In addition, a marker with a label
11
+ * responds to all mouse events in the same manner as a regular marker. It also fires mouse
12
+ * events and "property changed" events just as a regular marker would.
13
+ */
14
+
15
+ /*!
16
+ *
17
+ * Licensed under the Apache License, Version 2.0 (the "License");
18
+ * you may not use this file except in compliance with the License.
19
+ * You may obtain a copy of the License at
20
+ *
21
+ * http://www.apache.org/licenses/LICENSE-2.0
22
+ *
23
+ * Unless required by applicable law or agreed to in writing, software
24
+ * distributed under the License is distributed on an "AS IS" BASIS,
25
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
26
+ * See the License for the specific language governing permissions and
27
+ * limitations under the License.
28
+ */
29
+
30
+ /*jslint browser:true */
31
+ /*global document,google */
32
+
33
+ /**
34
+ * This constructor creates a label and associates it with a marker.
35
+ * It is for the private use of the MarkerWithLabel class.
36
+ * @constructor
37
+ * @param {Marker} marker The marker with which the label is to be associated.
38
+ * @private
39
+ */
40
+ function MarkerLabel_(marker) {
41
+ var me = this;
42
+
43
+ this.marker_ = marker;
44
+
45
+ this.labelDiv_ = document.createElement("div");
46
+ this.labelDiv_.style.cssText = "position: absolute; overflow: hidden;";
47
+
48
+ // Set up the DIV for handling mouse events in the label. This DIV forms a transparent veil
49
+ // in the "overlayMouseTarget" pane, a veil that covers just the label. This is done so that
50
+ // events can be captured even if the label is in the shadow of a google.maps.InfoWindow.
51
+ // Code is included here to ensure the veil is always exactly the same size as the label.
52
+ this.eventDiv_ = document.createElement("div");
53
+ this.eventDiv_.style.cssText = this.labelDiv_.style.cssText;
54
+
55
+ this.setMap(this.marker_.getMap());
56
+ google.maps.event.addListener(this.marker_, "map_changed", function () {
57
+ me.setMap(me.marker_.getMap());
58
+ });
59
+ }
60
+
61
+ // MarkerLabel_ inherits from OverlayView:
62
+ MarkerLabel_.prototype = new google.maps.OverlayView();
63
+
64
+ /**
65
+ * Adds the DIV representing the label to the DOM. This method is called
66
+ * automatically when the marker's <code>setMap</code> method is called.
67
+ * @private
68
+ */
69
+ MarkerLabel_.prototype.onAdd = function () {
70
+ var me = this;
71
+ var cMouseIsDown = false;
72
+ var cDraggingInProgress = false;
73
+ var cSavedPosition;
74
+ var cSavedZIndex;
75
+ var cLatOffset, cLngOffset;
76
+ var cIgnoreClick;
77
+
78
+ // Stops all processing of an event.
79
+ //
80
+ var cAbortEvent = function (e) {
81
+ if (e.preventDefault) {
82
+ e.preventDefault();
83
+ }
84
+ e.cancelBubble = true;
85
+ if (e.stopPropagation) {
86
+ e.stopPropagation();
87
+ }
88
+ };
89
+
90
+ this.getPanes().overlayImage.appendChild(this.labelDiv_);
91
+ this.getPanes().overlayMouseTarget.appendChild(this.eventDiv_);
92
+
93
+ this.listeners_ = [
94
+ google.maps.event.addDomListener(document, "mouseup", function (mEvent) {
95
+ if (cDraggingInProgress) {
96
+ mEvent.latLng = cSavedPosition;
97
+ cIgnoreClick = true; // Set flag to ignore the click event reported after a label drag
98
+ google.maps.event.trigger(me.marker_, "dragend", mEvent);
99
+ }
100
+ cMouseIsDown = false;
101
+ google.maps.event.trigger(me.marker_, "mouseup", mEvent);
102
+ }),
103
+ google.maps.event.addListener(me.marker_.getMap(), "mousemove", function (mEvent) {
104
+ if (cMouseIsDown && me.marker_.getDraggable()) {
105
+ // Change the reported location from the mouse position to the marker position:
106
+ mEvent.latLng = new google.maps.LatLng(mEvent.latLng.lat() - cLatOffset, mEvent.latLng.lng() - cLngOffset);
107
+ cSavedPosition = mEvent.latLng;
108
+ if (cDraggingInProgress) {
109
+ google.maps.event.trigger(me.marker_, "drag", mEvent);
110
+ } else {
111
+ // Calculate offsets from the click point to the marker position:
112
+ cLatOffset = mEvent.latLng.lat() - me.marker_.getPosition().lat();
113
+ cLngOffset = mEvent.latLng.lng() - me.marker_.getPosition().lng();
114
+ google.maps.event.trigger(me.marker_, "dragstart", mEvent);
115
+ }
116
+ }
117
+ }),
118
+ google.maps.event.addDomListener(this.eventDiv_, "mouseover", function (e) {
119
+ me.eventDiv_.style.cursor = "pointer";
120
+ google.maps.event.trigger(me.marker_, "mouseover", e);
121
+ }),
122
+ google.maps.event.addDomListener(this.eventDiv_, "mouseout", function (e) {
123
+ me.eventDiv_.style.cursor = me.marker_.getCursor();
124
+ google.maps.event.trigger(me.marker_, "mouseout", e);
125
+ }),
126
+ google.maps.event.addDomListener(this.eventDiv_, "click", function (e) {
127
+ if (cIgnoreClick) { // Ignore the click reported when a label drag ends
128
+ cIgnoreClick = false;
129
+ } else {
130
+ google.maps.event.trigger(me.marker_, "click", e);
131
+ }
132
+ }),
133
+ google.maps.event.addDomListener(this.eventDiv_, "dblclick", function (e) {
134
+ cAbortEvent(e); // Prevent map zoom when double-clicking on a label
135
+ google.maps.event.trigger(me.marker_, "dblclick", e);
136
+ }),
137
+ google.maps.event.addDomListener(this.eventDiv_, "mousedown", function (e) {
138
+ cMouseIsDown = true;
139
+ cDraggingInProgress = false;
140
+ cLatOffset = 0;
141
+ cLngOffset = 0;
142
+ cAbortEvent(e); // Prevent map pan when starting a drag on a label
143
+ google.maps.event.trigger(me.marker_, "mousedown", e);
144
+ }),
145
+ google.maps.event.addListener(this.marker_, "dragstart", function (mEvent) {
146
+ cDraggingInProgress = true;
147
+ cSavedZIndex = me.marker_.getZIndex();
148
+ }),
149
+ google.maps.event.addListener(this.marker_, "drag", function (mEvent) {
150
+ me.marker_.setPosition(mEvent.latLng);
151
+ me.marker_.setZIndex(1000000); // Moves the marker to the foreground during a drag
152
+ }),
153
+ google.maps.event.addListener(this.marker_, "dragend", function (mEvent) {
154
+ cDraggingInProgress = false;
155
+ me.marker_.setZIndex(cSavedZIndex);
156
+ }),
157
+ google.maps.event.addListener(this.marker_, "position_changed", function () {
158
+ me.setPosition();
159
+ }),
160
+ google.maps.event.addListener(this.marker_, "zindex_changed", function () {
161
+ me.setZIndex();
162
+ }),
163
+ google.maps.event.addListener(this.marker_, "visible_changed", function () {
164
+ me.setVisible();
165
+ }),
166
+ google.maps.event.addListener(this.marker_, "labelvisible_changed", function () {
167
+ me.setVisible();
168
+ }),
169
+ google.maps.event.addListener(this.marker_, "title_changed", function () {
170
+ me.setTitle();
171
+ }),
172
+ google.maps.event.addListener(this.marker_, "labelcontent_changed", function () {
173
+ me.setContent();
174
+ }),
175
+ google.maps.event.addListener(this.marker_, "labelanchor_changed", function () {
176
+ me.setAnchor();
177
+ }),
178
+ google.maps.event.addListener(this.marker_, "labelclass_changed", function () {
179
+ me.setStyles();
180
+ }),
181
+ google.maps.event.addListener(this.marker_, "labelstyle_changed", function () {
182
+ me.setStyles();
183
+ })
184
+ ];
185
+ };
186
+
187
+ /**
188
+ * Removes the DIV for the label from the DOM. It also removes all event handlers.
189
+ * This method is called automatically when the marker's <code>setMap(null)</code>
190
+ * method is called.
191
+ * @private
192
+ */
193
+ MarkerLabel_.prototype.onRemove = function () {
194
+ var i;
195
+ this.labelDiv_.parentNode.removeChild(this.labelDiv_);
196
+ this.eventDiv_.parentNode.removeChild(this.eventDiv_);
197
+
198
+ // Remove event listeners:
199
+ for (i = 0; i < this.listeners_.length; i++) {
200
+ google.maps.event.removeListener(this.listeners_[i]);
201
+ }
202
+ };
203
+
204
+ /**
205
+ * Draws the label on the map.
206
+ * @private
207
+ */
208
+ MarkerLabel_.prototype.draw = function () {
209
+ this.setContent();
210
+ this.setTitle();
211
+ this.setStyles();
212
+ };
213
+
214
+ /**
215
+ * Sets the content of the label.
216
+ * The content can be plain text or an HTML DOM node.
217
+ * @private
218
+ */
219
+ MarkerLabel_.prototype.setContent = function () {
220
+ var content = this.marker_.get("labelContent");
221
+ if (typeof content.nodeType === "undefined") {
222
+ this.labelDiv_.innerHTML = content;
223
+ this.eventDiv_.innerHTML = this.labelDiv_.innerHTML;
224
+ } else {
225
+ this.labelDiv_.appendChild(content);
226
+ content = content.cloneNode(true);
227
+ this.eventDiv_.appendChild(content);
228
+ }
229
+ };
230
+
231
+ /**
232
+ * Sets the content of the tool tip for the label. It is
233
+ * always set to be the same as for the marker itself.
234
+ * @private
235
+ */
236
+ MarkerLabel_.prototype.setTitle = function () {
237
+ this.eventDiv_.title = this.marker_.getTitle() || "";
238
+ };
239
+
240
+ /**
241
+ * Sets the style of the label by setting the style sheet and applying
242
+ * other specific styles requested.
243
+ * @private
244
+ */
245
+ MarkerLabel_.prototype.setStyles = function () {
246
+ var i, labelStyle;
247
+
248
+ // Apply style values from the style sheet defined in the labelClass parameter:
249
+ this.labelDiv_.className = this.marker_.get("labelClass");
250
+ this.eventDiv_.className = this.labelDiv_.className;
251
+
252
+ // Clear existing inline style values:
253
+ this.labelDiv_.style.cssText = "";
254
+ this.eventDiv_.style.cssText = "";
255
+ // Apply style values defined in the labelStyle parameter:
256
+ labelStyle = this.marker_.get("labelStyle");
257
+ for (i in labelStyle) {
258
+ if (labelStyle.hasOwnProperty(i)) {
259
+ this.labelDiv_.style[i] = labelStyle[i];
260
+ this.eventDiv_.style[i] = labelStyle[i];
261
+ }
262
+ }
263
+ this.setMandatoryStyles();
264
+ };
265
+
266
+ /**
267
+ * Sets the mandatory styles to the DIV representing the label as well as to the
268
+ * associated event DIV. This includes setting the DIV position, zIndex, and visibility.
269
+ * @private
270
+ */
271
+ MarkerLabel_.prototype.setMandatoryStyles = function () {
272
+ this.labelDiv_.style.position = "absolute";
273
+ this.labelDiv_.style.overflow = "hidden";
274
+ // Make sure the opacity setting causes the desired effect on MSIE:
275
+ if (typeof this.labelDiv_.style.opacity !== "undefined") {
276
+ this.labelDiv_.style.filter = "alpha(opacity=" + (this.labelDiv_.style.opacity * 100) + ")";
277
+ }
278
+
279
+ this.eventDiv_.style.position = this.labelDiv_.style.position;
280
+ this.eventDiv_.style.overflow = this.labelDiv_.style.overflow;
281
+ this.eventDiv_.style.opacity = 0.01; // Don't use 0; DIV won't be clickable on MSIE
282
+ this.eventDiv_.style.filter = "alpha(opacity=1)"; // For MSIE
283
+
284
+ this.setAnchor();
285
+ this.setPosition(); // This also updates zIndex, if necessary.
286
+ this.setVisible();
287
+ };
288
+
289
+ /**
290
+ * Sets the anchor point of the label.
291
+ * @private
292
+ */
293
+ MarkerLabel_.prototype.setAnchor = function () {
294
+ var anchor = this.marker_.get("labelAnchor");
295
+ this.labelDiv_.style.marginLeft = -anchor.x + "px";
296
+ this.labelDiv_.style.marginTop = -anchor.y + "px";
297
+ this.eventDiv_.style.marginLeft = -anchor.x + "px";
298
+ this.eventDiv_.style.marginTop = -anchor.y + "px";
299
+ };
300
+
301
+ /**
302
+ * Sets the position of the label. The zIndex is also updated, if necessary.
303
+ * @private
304
+ */
305
+ MarkerLabel_.prototype.setPosition = function () {
306
+ var position = this.getProjection().fromLatLngToDivPixel(this.marker_.getPosition());
307
+
308
+ this.labelDiv_.style.left = position.x + "px";
309
+ this.labelDiv_.style.top = position.y + "px";
310
+ this.eventDiv_.style.left = this.labelDiv_.style.left;
311
+ this.eventDiv_.style.top = this.labelDiv_.style.top;
312
+
313
+ this.setZIndex();
314
+ };
315
+
316
+ /**
317
+ * Sets the zIndex of the label. If the marker's zIndex property has not been defined, the zIndex
318
+ * of the label is set to the vertical coordinate of the label. This is in keeping with the default
319
+ * stacking order for Google Maps: markers to the south are in front of markers to the north.
320
+ * @private
321
+ */
322
+ MarkerLabel_.prototype.setZIndex = function () {
323
+ var zAdjust = (this.marker_.get("labelInBackground") ? -1 : +1);
324
+ if (typeof this.marker_.getZIndex() === "undefined") {
325
+ this.labelDiv_.style.zIndex = parseInt(this.labelDiv_.style.top, 10) + zAdjust;
326
+ this.eventDiv_.style.zIndex = this.labelDiv_.style.zIndex;
327
+ } else {
328
+ this.labelDiv_.style.zIndex = this.marker_.getZIndex() + zAdjust;
329
+ this.eventDiv_.style.zIndex = this.labelDiv_.style.zIndex;
330
+ }
331
+ };
332
+
333
+ /**
334
+ * Sets the visibility of the label. The label is visible only if the marker itself is
335
+ * visible (i.e., its visible property is true) and the labelVisible property is true.
336
+ * @private
337
+ */
338
+ MarkerLabel_.prototype.setVisible = function () {
339
+ if (this.marker_.get("labelVisible")) {
340
+ this.labelDiv_.style.display = this.marker_.getVisible() ? "block" : "none";
341
+ } else {
342
+ this.labelDiv_.style.display = "none";
343
+ }
344
+ this.eventDiv_.style.display = this.labelDiv_.style.display;
345
+ };
346
+
347
+ /**
348
+ * @name MarkerWithLabelOptions
349
+ * @class This class represents the optional parameter passed to the {@link MarkerWithLabel} constructor.
350
+ * The properties available are the same as for <code>google.maps.Marker</code> with the addition
351
+ * of the properties listed below. To change any of these additional properties after the labeled
352
+ * marker has been created, call <code>google.maps.Marker.set(propertyName, propertyValue)</code>.
353
+ * <p>
354
+ * When any of these properties changes, a property changed event is fired. The names of these
355
+ * events are derived from the name of the property and are of the form <code>propertyname_changed</code>.
356
+ * For example, if the content of the label changes, a <code>labelcontent_changed</code> event
357
+ * is fired.
358
+ * <p>
359
+ * @property {string|Node} [labelContent] The content of the label (plain text or an HTML DOM node).
360
+ * @property {Point} [labelAnchor] By default, a label is drawn with its anchor point at (0,0) so
361
+ * that its top left corner is positioned at the anchor point of the associated marker. Use this
362
+ * property to change the anchor point of the label. For example, to center a 50px-wide label
363
+ * beneath a marker, specify a <code>labelAnchor</code> of <code>google.maps.Point(25, 0)</code>.
364
+ * (Note: x-values increase to the right and y-values increase to the bottom.)
365
+ * @property {string} [labelClass] The name of the CSS class defining the styles for the label.
366
+ * Note that style values for <code>position</code>, <code>overflow</code>, <code>top</code>,
367
+ * <code>left</code>, <code>zIndex</code>, <code>display</code>, <code>marginLeft</code>, and
368
+ * <code>marginTop</code> are ignored; these styles are for internal use only.
369
+ * @property {Object} [labelStyle] An object literal whose properties define specific CSS
370
+ * style values to be applied to the label. Style values defined here override those that may
371
+ * be defined in the <code>labelClass</code> style sheet. If this property is changed after the
372
+ * label has been created, all previously set styles (except those defined in the style sheet)
373
+ * are removed from the label before the new style values are applied.
374
+ * Note that style values for <code>position</code>, <code>overflow</code>, <code>top</code>,
375
+ * <code>left</code>, <code>zIndex</code>, <code>display</code>, <code>marginLeft</code>, and
376
+ * <code>marginTop</code> are ignored; these styles are for internal use only.
377
+ * @property {boolean} [labelInBackground] A flag indicating whether a label that overlaps its
378
+ * associated marker should appear in the background (i.e., in a plane below the marker).
379
+ * The default is <code>false</code>, which causes the label to appear in the foreground.
380
+ * @property {boolean} [labelVisible] A flag indicating whether the label is to be visible.
381
+ * The default is <code>true</code>. Note that even if <code>labelVisible</code> is
382
+ * <code>true</code>, the label will <i>not</i> be visible unless the associated marker is also
383
+ * visible (i.e., unless the marker's <code>visible</code> property is <code>true</code>).
384
+ */
385
+ /**
386
+ * Creates a MarkerWithLabel with the options specified in {@link MarkerWithLabelOptions}.
387
+ * @constructor
388
+ * @param {MarkerWithLabelOptions} [opt_options] The optional parameters.
389
+ */
390
+ function MarkerWithLabel(opt_options) {
391
+ opt_options = opt_options || {};
392
+ opt_options.labelContent = opt_options.labelContent || "";
393
+ opt_options.labelAnchor = opt_options.labelAnchor || new google.maps.Point(0, 0);
394
+ opt_options.labelClass = opt_options.labelClass || "markerLabels";
395
+ opt_options.labelStyle = opt_options.labelStyle || {};
396
+ opt_options.labelInBackground = opt_options.labelInBackground || false;
397
+ if (typeof opt_options.labelVisible === "undefined") {
398
+ opt_options.labelVisible = true;
399
+ }
400
+ // Call the parent constructor. It calls Marker.setValues to initialize, so all
401
+ // the new parameters are conveniently saved and can be accessed with get/set.
402
+ // Marker.set triggers a property changed event (called "propertyname_changed")
403
+ // that the marker label listens for in order to react to state changes.
404
+ google.maps.Marker.apply(this, arguments);
405
+ var label = new MarkerLabel_(this); // Bind the label to the marker
406
+ }
407
+
408
+ // MarkerWithLabel inherits from <code>Marker</code>:
409
+ MarkerWithLabel.prototype = new google.maps.Marker();
js/gmap/demo/geoloc.html ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ .gmap3{
9
+ margin: 20px auto;
10
+ border: 1px dashed #C0C0C0;
11
+ width: 500px;
12
+ height: 250px;
13
+ }
14
+
15
+ .test1-result{
16
+ text-align:center;
17
+ }
18
+ </style>
19
+
20
+ <script type="text/javascript">
21
+ $(function(){
22
+
23
+ $('#test1').gmap3({
24
+ getgeoloc:{
25
+ callback : function(latLng){
26
+ if (latLng){
27
+ $('#test1-result').html('localised !');
28
+ $(this).gmap3({
29
+ marker:{
30
+ latLng:latLng
31
+ }
32
+ });
33
+ } else {
34
+ $('#test1-result').html('not localised !');
35
+ }
36
+ }
37
+ }
38
+ });
39
+
40
+ });
41
+ </script>
42
+ </head>
43
+
44
+ <body>
45
+ <div id="test1-result"></div>
46
+ <div id="test1" class="gmap3"></div>
47
+ </body>
48
+ </html>
js/gmap/demo/groundoverlay.html ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ .gmap3{
9
+ margin: 20px auto;
10
+ border: 1px dashed #C0C0C0;
11
+ width: 750px;
12
+ height: 500px;
13
+ }
14
+ </style>
15
+
16
+ <script type="text/javascript">
17
+
18
+ $(function(){
19
+
20
+
21
+ $('#test1').gmap3(
22
+ { map:{
23
+ options:{
24
+ mapTypeId : google.maps.MapTypeId.ROADMAP,
25
+ center: [40.740,-74.18],
26
+ zoom: 12
27
+ }
28
+ },
29
+ groundoverlay:{
30
+ options:{
31
+ url: "http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg",
32
+ bounds: {
33
+ ne:{lat:40.765641, lng:-74.139235},
34
+ sw:{lat:40.716216, lng:-74.213393}
35
+ },
36
+ opts:{
37
+ opacity: 0.8
38
+ }
39
+ },
40
+ events: {
41
+ click: function(overlay){
42
+ alert('clicked on '+ overlay.url);
43
+ }
44
+ }
45
+ }
46
+ }
47
+ );
48
+ });
49
+
50
+ </script>
51
+ </head>
52
+
53
+ <body>
54
+ <div id="container">
55
+ <div id="over1" class="box"></div>
56
+ <div id="over2" class="box"></div>
57
+ </div>
58
+ <div id="test1" class="gmap3"></div>
59
+ </body>
60
+ </html>
js/gmap/demo/ids.html ADDED
@@ -0,0 +1,107 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ body{
9
+ text-align:center;
10
+ }
11
+ #container{
12
+ overflow: auto;
13
+ margin: 20px auto;
14
+ width: 1200px;
15
+ }
16
+ .gmap3, #tool{
17
+ border: 1px dashed #C0C0C0;
18
+ width: 500px;
19
+ height: 500px;
20
+ float: left;
21
+ }
22
+ #tool{
23
+ margin-left: 10px;
24
+ padding: 5px;
25
+ text-align:left;
26
+ }
27
+ #data{
28
+ display: none;
29
+ }
30
+ </style>
31
+
32
+ <script type="text/javascript">
33
+ $(function(){
34
+ $('#map').gmap3({
35
+ map:{
36
+ options:{
37
+ center:[46.578498,2.457275],
38
+ zoom: 5
39
+ }
40
+ },
41
+ marker:{
42
+ values:[
43
+ {address:"75001, Paris, France", id:"Paris"},
44
+ {address:"86000 Poitiers, France"},
45
+ {address:"66000 Perpignan, France"}
46
+ ],
47
+ options:{
48
+ draggable: false
49
+ },
50
+ events: {
51
+ click: function(marker, event, context){
52
+ markerSelected(context.id);
53
+ }
54
+ }
55
+ }
56
+ });
57
+
58
+ $("#bcolor").click(function(){
59
+ var marker = $('#map').gmap3({get: $("#markerId .value").text() });
60
+ marker.setIcon(marker.getIcon() ? "" : "http://maps.google.com/mapfiles/marker_green.png");
61
+ });
62
+
63
+ $("#bremove").click(function(){
64
+ $('#map').gmap3({clear: $("#markerId .value").text() });
65
+ $("#data").hide();
66
+ $("#title").show();
67
+ });
68
+
69
+ });
70
+
71
+ function markerSelected(id){
72
+ var marker = $('#map').gmap3({get:id});
73
+
74
+ $("#markerId .value").text(id);
75
+ $("#latitude .value").text(marker.getPosition().lat());
76
+ $("#longitude .value").text(marker.getPosition().lng());
77
+
78
+ $("#data").show();
79
+ $("#title").hide();
80
+ }
81
+
82
+ </script>
83
+ <body>
84
+ <div id="container">
85
+ <div id="map" class="gmap3"></div>
86
+ <div id="tool">
87
+ <div id="title">select a marker</div>
88
+ <div id="data">
89
+ <div id="markerId">
90
+ <span class="label">ID : </span>
91
+ <span class="value"></span>
92
+ </div>
93
+ <div id="latitude">
94
+ <span class="label">Latitude : </span>
95
+ <span class="value"></span>
96
+ </div>
97
+ <div id="longitude">
98
+ <span class="label">Longitude : </span>
99
+ <span class="value"></span>
100
+ </div>
101
+ <button id="bcolor">Change color</button>
102
+ <button id="bremove">REMOVE</button>
103
+ </div>
104
+ </div>
105
+ </div>
106
+ </body>
107
+ </html>
js/gmap/demo/imagemaptype.html ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ .gmap3{
9
+ margin: 20px auto;
10
+ border: 1px dashed #C0C0C0;
11
+ width: 1000px;
12
+ height: 1000px;
13
+ }
14
+ </style>
15
+
16
+ <script type="text/javascript">
17
+
18
+ $(function(){
19
+
20
+ var id = "sectional";
21
+
22
+ $("#test1").gmap3({
23
+ map:{
24
+ options:{
25
+ center:[33, -111],
26
+ zoom:9,
27
+ mapTypeControlOptions: {
28
+ mapTypeIds: [google.maps.MapTypeId.ROADMAP,
29
+ google.maps.MapTypeId.SATELLITE,
30
+ google.maps.MapTypeId.HYBRID,
31
+ google.maps.MapTypeId.TERRAIN,
32
+ id]
33
+ }
34
+ }
35
+ },
36
+ imagemaptype:{
37
+ id: id,
38
+ options:{
39
+ getTileUrl: function(coord, zoom) {
40
+ return "http://www.fourpeaksnavigation.com/sectionals/phx" + "/" + zoom + "/" + coord.x + "/" + coord.y + ".png";
41
+ },
42
+ tileSize: new google.maps.Size(256, 256),
43
+ isPng: true,
44
+ name: "Chart",
45
+ minZoom: 1,
46
+ maxZoom: 111
47
+ },
48
+ callback: function(){
49
+ $(this).gmap3("get").setMapTypeId(id);
50
+ }
51
+ }
52
+ });
53
+
54
+ });
55
+ </script>
56
+ </head>
57
+
58
+ <body>
59
+ <div id="test1" class="gmap3"></div>
60
+ </body>
61
+ </html>
js/gmap/demo/images/m1.png ADDED
Binary file
js/gmap/demo/images/m2.png ADDED
Binary file
js/gmap/demo/images/m3.png ADDED
Binary file
js/gmap/demo/infowindow.html ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ .gmap3{
9
+ margin: 20px auto;
10
+ border: 1px dashed #C0C0C0;
11
+ width: 500px;
12
+ height: 250px;
13
+ }
14
+ </style>
15
+
16
+ <script type="text/javascript">
17
+
18
+ $(function(){
19
+ var address = "place de l'�toile, paris";
20
+
21
+ $('#test1').gmap3(
22
+ { map:{
23
+ address:address,
24
+ options:{
25
+ zoom: 14,
26
+ opts:{
27
+ scrollwheel:true
28
+ }
29
+ }
30
+ },
31
+ infowindow:{
32
+ address:address,
33
+ options:{
34
+ size: new google.maps.Size(50,50),
35
+ content: 'Hello World !'
36
+ },
37
+ events:{
38
+ closeclick: function(infowindow){
39
+ alert('closing : ' + $(this).attr('id') + ' : ' + infowindow.getContent());
40
+ }
41
+ }
42
+ }
43
+ }
44
+ );
45
+
46
+ });
47
+ </script>
48
+ </head>
49
+
50
+ <body>
51
+ <div id="test1" class="gmap3"></div>
52
+ </body>
53
+ </html>
js/gmap/demo/kml - tag.html ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ body{
9
+ text-align:center;
10
+ }
11
+ .gmap3{
12
+ margin: 20px auto;
13
+ border: 1px dashed #C0C0C0;
14
+ width: 500px;
15
+ height: 250px;
16
+ }
17
+ </style>
18
+ <script type="text/javascript">
19
+
20
+ $(function(){
21
+
22
+ $("#test1").gmap3({
23
+ map:{
24
+ options:{
25
+ mapTypeId : google.maps.MapTypeId.ROADMAP,
26
+ center: [48.749907,2.350081],
27
+ zoom: 12
28
+ }
29
+ }
30
+ });
31
+
32
+ $("input[type=checkbox]").each(function(i, chk){
33
+ var $chk = $(chk);
34
+ $("#test1").gmap3({
35
+ kmllayer:{
36
+ tag: $chk.attr("id"),
37
+ options:{
38
+ url: $chk.data("url"),
39
+ preserveViewport: true
40
+ },
41
+ events:{
42
+ click: function(kml, event){
43
+ $("#test1-text").html(event.featureData.description);
44
+ }
45
+ }
46
+ }
47
+ });
48
+ });
49
+
50
+ $("input[type=checkbox]").change(function(){
51
+ var map = $("#test1").gmap3("get"),
52
+ kml = $("#test1").gmap3({
53
+ get:{
54
+ name:"kmllayer",
55
+ tag:$(this).attr("id")
56
+ }
57
+ });
58
+ kml.setMap( $(this).is(':checked') ? map : null );
59
+ });
60
+
61
+
62
+
63
+ });
64
+ </script>
65
+ </head>
66
+
67
+ <body>
68
+ <input type="checkbox" id="rungis" data-url="http://gmap3.net/kml/rungis.kml" checked>rungis
69
+ <input type="checkbox" id="sogaris" data-url="http://gmap3.net/kml/sogaris.kml" checked>sogaris
70
+ <div id="test1" class="gmap3"></div>
71
+ <div id="test1-text"></div>
72
+ </body>
73
+ </html>
js/gmap/demo/kml.html ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ body{
9
+ text-align:center;
10
+ }
11
+ .gmap3{
12
+ margin: 20px auto;
13
+ border: 1px dashed #C0C0C0;
14
+ width: 500px;
15
+ height: 250px;
16
+ }
17
+ </style>
18
+ <script type="text/javascript">
19
+
20
+ $(function(){
21
+
22
+ $("#test1").gmap3(
23
+ { map:{
24
+ options:{
25
+ mapTypeId : google.maps.MapTypeId.ROADMAP,
26
+ center: [48.749907,2.350081],
27
+ zoom: 12
28
+ }
29
+ },
30
+ kmllayer:{
31
+ options:{
32
+ url: "http://gmap3.net/kml/rungis.kml",
33
+ preserveViewport: true
34
+ },
35
+ events:{
36
+ click: function(kml, event){
37
+ $("#test1-text").html(event.featureData.description);
38
+ }
39
+ }
40
+ }
41
+ }
42
+ );
43
+
44
+ $("#chk").change(function(){
45
+ var map = $("#test1").gmap3("get"),
46
+ kml = $("#test1").gmap3({get:"kmllayer"});
47
+ kml.setMap( $(this).is(':checked') ? map : null );
48
+ });
49
+
50
+ });
51
+ </script>
52
+ </head>
53
+
54
+ <body>
55
+ <input type="checkbox" id="chk" checked>KML
56
+ <div id="test1" class="gmap3"></div>
57
+ <div id="test1-text"></div>
58
+ </body>
59
+ </html>
js/gmap/demo/latlng.html ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ body{
9
+ text-align:center;
10
+ }
11
+ #ctrl{
12
+ width: 500px;
13
+ margin:0 auto;
14
+ }
15
+ .gmap3{
16
+ margin: 20px auto;
17
+ border: 1px dashed #C0C0C0;
18
+ width: 500px;
19
+ height: 250px;
20
+ }
21
+ </style>
22
+
23
+ <script type="text/javascript">
24
+
25
+ $(function(){
26
+
27
+ $("#test").gmap3();
28
+
29
+ $('#test-ok').click(function(){
30
+ var addr = $('#test-address').val();
31
+ if ( !addr || !addr.length ) return;
32
+ $("#test").gmap3({
33
+ getlatlng:{
34
+ address: addr,
35
+ callback: function(results){
36
+ if ( !results ) return;
37
+ $(this).gmap3({
38
+ marker:{
39
+ latLng:results[0].geometry.location,
40
+ map:{
41
+ center: true
42
+ }
43
+ }
44
+ });
45
+ }
46
+ }
47
+ });
48
+ });
49
+
50
+ $('#test-address').keypress(function(e){
51
+ if (e.keyCode == 13){
52
+ $('#test-ok').click();
53
+ }
54
+ });
55
+ });
56
+
57
+ </script>
58
+ </head>
59
+
60
+ <body>
61
+ <div id="ctrl">Address : <input type="text" id="test-address" size="60"> <button type="button" id="test-ok">Ok</button></div>
62
+ <div id="test" class="gmap3"></div>
63
+ Fill in an address, a marker will be added and the map will be centered on it
64
+ </body>
65
+ </html>
js/gmap/demo/map-options.html ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ .gmap3{
9
+ margin: 20px auto;
10
+ border: 1px dashed #C0C0C0;
11
+ width: 1000px;
12
+ height: 500px;
13
+ }
14
+ </style>
15
+
16
+ <script type="text/javascript">
17
+
18
+ $(function(){
19
+
20
+ $('#test1').gmap3({
21
+ map:{
22
+ options:{
23
+ center:[22.49156846196823, 89.75802349999992],
24
+ zoom:2,
25
+ mapTypeId: google.maps.MapTypeId.SATELLITE,
26
+ mapTypeControl: true,
27
+ mapTypeControlOptions: {
28
+ style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
29
+ },
30
+ navigationControl: true,
31
+ scrollwheel: true,
32
+ streetViewControl: true
33
+ }
34
+ }
35
+ });
36
+
37
+ });
38
+ </script>
39
+ </head>
40
+
41
+ <body>
42
+ <div id="test1" class="gmap3"></div>
43
+ </body>
44
+ </html>
js/gmap/demo/marker.html ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ .gmap3{
9
+ margin: 20px auto;
10
+ border: 1px dashed #C0C0C0;
11
+ width: 500px;
12
+ height: 250px;
13
+ }
14
+ </style>
15
+
16
+ <script type="text/javascript">
17
+ $(function(){
18
+ $('#test1').gmap3({
19
+ marker:{
20
+ address: "Haltern am See, Weseler Str. 151"
21
+ },
22
+ map:{
23
+ options:{
24
+ zoom: 14
25
+ }
26
+ }
27
+ });
28
+ });
29
+ </script>
30
+ <body>
31
+ <div id="test1" class="gmap3"></div>
32
+ </body>
33
+ </html>
js/gmap/demo/markerWithLabel.html ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script src="external/markerwithlabel.js" type="text/javascript"></script>
7
+ <script type="text/javascript" src="../gmap3.js"></script>
8
+ <style>
9
+ .gmap3{
10
+ margin: 20px auto;
11
+ border: 1px dashed #C0C0C0;
12
+ width: 500px;
13
+ height: 250px;
14
+ }
15
+ .labels {
16
+ color: red;
17
+ background-color: white;
18
+ font-family: "Lucida Grande", "Arial", sans-serif;
19
+ font-size: 11px;
20
+ font-weight: bold;
21
+ text-align: center;
22
+ width: 100px;
23
+ border: 2px solid black;
24
+ white-space: nowrap;
25
+ }
26
+ </style>
27
+
28
+ <script type="text/javascript">
29
+ $(function(){
30
+ var address = "Haltern am See, Weseler Str. 151";
31
+
32
+ $('#test1').gmap3({
33
+ defaults:{
34
+ classes:{
35
+ Marker:MarkerWithLabel
36
+ }
37
+ },
38
+ map:{
39
+ address:address,
40
+ options:{
41
+ zoom: 14,
42
+ mapTypeId: google.maps.MapTypeId.TERRAIN
43
+ }
44
+ },
45
+ marker:{
46
+ address:address,
47
+ options:{
48
+ labelContent: "$425K",
49
+ labelAnchor: new google.maps.Point(52, -2),
50
+ labelClass: "labels",
51
+ labelStyle: {opacity: 0.75},
52
+ labelContent: "Here is a label !"
53
+ }
54
+ }
55
+ });
56
+ });
57
+ </script>
58
+ <body>
59
+ <div id="test1" class="gmap3"></div>
60
+ </body>
61
+ </html>
js/gmap/demo/markers.html ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ body{
9
+ text-align:center;
10
+ }
11
+ .gmap3{
12
+ margin: 20px auto;
13
+ border: 1px dashed #C0C0C0;
14
+ width: 500px;
15
+ height: 500px;
16
+ }
17
+ </style>
18
+
19
+ <script type="text/javascript">
20
+
21
+ $(function(){
22
+
23
+ $('#test1').gmap3({
24
+ map:{
25
+ options:{
26
+ center:[46.578498,2.457275],
27
+ zoom: 5
28
+ }
29
+ },
30
+ marker:{
31
+ values:[
32
+ {latLng:[48.8620722, 2.352047], data:"Paris !"},
33
+ {address:"86000 Poitiers, France", data:"Poitiers : great city !"},
34
+ {address:"66000 Perpignan, France", data:"Perpignan ! <br> GO USAP !", options:{icon: "http://maps.google.com/mapfiles/marker_green.png"}}
35
+ ],
36
+ options:{
37
+ draggable: false
38
+ },
39
+ events:{
40
+ mouseover: function(marker, event, context){
41
+ var map = $(this).gmap3("get"),
42
+ infowindow = $(this).gmap3({get:{name:"infowindow"}});
43
+ if (infowindow){
44
+ infowindow.open(map, marker);
45
+ infowindow.setContent(context.data);
46
+ } else {
47
+ $(this).gmap3({
48
+ infowindow:{
49
+ anchor:marker,
50
+ options:{content: context.data}
51
+ }
52
+ });
53
+ }
54
+ },
55
+ mouseout: function(){
56
+ var infowindow = $(this).gmap3({get:{name:"infowindow"}});
57
+ if (infowindow){
58
+ infowindow.close();
59
+ }
60
+ }
61
+ }
62
+ }
63
+ });
64
+ });
65
+ </script>
66
+ <body>
67
+ <div id="test1" class="gmap3"></div>
68
+ when mouse is over a marker, an unique infowindow appear (it is create at the first time, and then is recycled)
69
+ </body>
70
+ </html>
js/gmap/demo/maxzoom.html ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ body{
9
+ text-align:center;
10
+ }
11
+ .gmap3{
12
+ margin: 20px auto;
13
+ border: 1px dashed #C0C0C0;
14
+ width: 500px;
15
+ height: 250px;
16
+ }
17
+ </style>
18
+
19
+ <script type="text/javascript">
20
+
21
+ $(function(){
22
+
23
+ $('#test').gmap3({
24
+ map:{
25
+ events:{
26
+ click: function(map, latLng){
27
+ $(this).gmap3({
28
+ getmaxzoom:{
29
+ latLng:latLng,
30
+ callback:function(zoom){
31
+ $('#result').html('Max Zoom : ' + (zoom !== false ? zoom : 'not available'));
32
+ }
33
+ }
34
+ });
35
+ }
36
+ }
37
+ }
38
+ });
39
+
40
+ });
41
+ </script>
42
+ </head>
43
+
44
+ <body>
45
+ <div id="result">&nbsp;</div>
46
+ <div id="test" class="gmap3"></div>
47
+ click on the map to get the max zoom of the clicked position
48
+ </body>
49
+ </html>
js/gmap/demo/overlay.html ADDED
@@ -0,0 +1,102 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ .gmap3{
9
+ margin: 20px auto;
10
+ border: 1px dashed #C0C0C0;
11
+ width: 500px;
12
+ height: 250px;
13
+ }
14
+ #panTo{
15
+ text-align:center;
16
+ }
17
+ </style>
18
+
19
+ <script type="text/javascript">
20
+
21
+ $(function(){
22
+
23
+ $('#test1').gmap3({
24
+ map:{
25
+ options:{
26
+ center:[44.797916,-93.278046]
27
+ },
28
+ callback: function(map){
29
+ if (map.getBounds()){
30
+ generateMarkers($(this), map);
31
+ } else {
32
+ $(this).gmap3({
33
+ map:{
34
+ onces:{
35
+ bounds_changed: function(map){
36
+ generateMarkers($(this), map);
37
+ }
38
+ }
39
+ }
40
+ });
41
+ }
42
+ }
43
+ }
44
+ });
45
+
46
+ });
47
+
48
+ function generateMarkers($this, map, bounds){
49
+ var i,
50
+ bounds = map.getBounds(),
51
+ southWest = bounds.getSouthWest(),
52
+ northEast = bounds.getNorthEast(),
53
+ lngSpan = Math.abs(northEast.lng() - southWest.lng()),
54
+ latSpan = Math.abs(northEast.lat() - southWest.lat());
55
+ for (i = 0; i < 10; i++) {
56
+ newMarker($this, i, southWest.lat() + latSpan * Math.random(), southWest.lng() + lngSpan * Math.random());
57
+ }
58
+ }
59
+
60
+
61
+ function newMarker($this, i, lat, lng){
62
+ $this.gmap3({
63
+ marker:{
64
+ latLng: [lat, lng],
65
+ callback: function(marker){
66
+ var $button = $('<span id="button-'+i+'"> ['+i+'] </span>');
67
+ $button
68
+ .click(function(){
69
+ $this.gmap3("get").panTo(marker.position);
70
+ })
71
+ .css('cursor','pointer');
72
+ $('#panTo').append($button);
73
+ }
74
+ },
75
+ overlay:{
76
+ latLng: [lat, lng],
77
+ options:{
78
+ content: '<div style="border:1px solid #FF0000; background-color: #00FF00; width:50px; height: 20px; text-align:center">'+i+'</div>',
79
+ offset:{
80
+ y:-32,
81
+ x:12
82
+ }
83
+ },
84
+ events:{
85
+ mouseover: function(overlay){
86
+ $(overlay.getDOMElement()).children().css('backgroundColor', '#0000FF');
87
+ },
88
+ mouseout: function(overlay){
89
+ $(overlay.getDOMElement()).children().css('backgroundColor', '#00FF00');
90
+ }
91
+ }
92
+ }
93
+ });
94
+ }
95
+ </script>
96
+ </head>
97
+
98
+ <body>
99
+ <div id="panTo"></div>
100
+ <div id="test1" class="gmap3"></div>
101
+ </body>
102
+ </html>
js/gmap/demo/panel.html ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ .gmap3{
9
+ margin: 20px auto;
10
+ border: 1px dashed #C0C0C0;
11
+ width: 500px;
12
+ height: 250px;
13
+ }
14
+ #box{
15
+ border:1px solid #FF0000;
16
+ background-color: #AFAFAF;
17
+ width:160px;
18
+ height: 64;
19
+ font-size: 11px;
20
+ }
21
+
22
+ #box .line{
23
+ border-bottom: 1px solid #FF0000;
24
+ overflow: auto;
25
+ clear: both;
26
+ height: 16px;
27
+ }
28
+ #box #lng-west{
29
+ border-bottom: 0px;
30
+ }
31
+
32
+ #box .name{
33
+ width: 30px;
34
+ border-right: 1px solid #FF0000;
35
+ float:left;
36
+ }
37
+ #box .value{
38
+ float:left;
39
+ }
40
+ </style>
41
+
42
+ <script type="text/javascript">
43
+ $(function(){
44
+
45
+ var $box = $("#box");
46
+
47
+ $box.detach();
48
+
49
+ $('#test1').gmap3(
50
+ { panel:{
51
+ options:{
52
+ content: $box, // a jQuery element or a string
53
+ middle: true
54
+ }
55
+ },
56
+ map:{
57
+ events:{
58
+ bounds_changed: function(map){
59
+ var bounds = map.getBounds();
60
+ var ne = bounds.getNorthEast();
61
+ var sw = bounds.getSouthWest();
62
+ $("#lat-north .value").html(ne.lat());
63
+ $("#lng-east .value").html(ne.lng());
64
+ $("#lat-south .value").html(sw.lat());
65
+ $("#lng-west .value").html(sw.lng());
66
+ }
67
+ }
68
+ }
69
+ }
70
+ );
71
+
72
+ });
73
+ </script>
74
+ </head>
75
+ <body>
76
+ <div id="test1" class="gmap3"></div>
77
+ <div id="box">
78
+ <div id="lat-north" class="line"><div class="name">North</div><div class="value"></div></div>
79
+ <div id="lng-east" class="line"><div class="name">East</div><div class="value"></div></div>
80
+ <div id="lat-south" class="line"><div class="name">South</div><div class="value"></div></div>
81
+ <div id="lng-west" class="line"><div class="name">West</div><div class="value"></div></div>
82
+ </div>
83
+ </body>
84
+ </html>
js/gmap/demo/polygon.html ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ .gmap3{
9
+ margin: 20px auto;
10
+ border: 1px dashed #C0C0C0;
11
+ width: 500px;
12
+ height: 250px;
13
+ }
14
+ </style>
15
+ <script type="text/javascript">
16
+
17
+ $(function(){
18
+
19
+
20
+ $('#test1').gmap3({
21
+ map:{
22
+ options:{
23
+ center:{lat:24.886436490787712,lng:-70.2685546875},
24
+ zoom:3,
25
+ mapTypeId: google.maps.MapTypeId.TERRAIN
26
+ }
27
+ },
28
+ polygon: {
29
+ options:{
30
+ strokeColor: "#FF0000",
31
+ strokeOpacity: 0.8,
32
+ strokeWeight: 2,
33
+ fillColor: "#FF0000",
34
+ fillOpacity: 0.35,
35
+ paths:[
36
+ [25.774252, -80.190262],
37
+ [18.466465, -66.118292],
38
+ [32.321384, -64.75737],
39
+ [25.774252, -80.190262]
40
+ ]
41
+ },
42
+ onces:{
43
+ click: function(polygon, event){
44
+ var vertices = polygon.getPath(),
45
+ contentString = 'Bermuda Triangle Polygon</br>Clicked Location: ' + event.latLng.lat() + ',' + event.latLng.lng() + '</br>';
46
+
47
+ for(var i=0; i<vertices.length; i++){
48
+ var xy = vertices.getAt(i);
49
+ contentString += '<br>Coordinate ' + i + ' : ' + xy.lat() +', ' + xy.lng();
50
+ }
51
+
52
+ $(this).gmap3({
53
+ infowindow:{
54
+ options:{
55
+ content: contentString,
56
+ position:event.latLng
57
+ }
58
+ }
59
+ });
60
+ }
61
+ }
62
+ }
63
+ });
64
+
65
+ });
66
+ </script>
67
+ </head>
68
+
69
+ <body>
70
+ <div id="test1" class="gmap3"></div>
71
+ </body>
72
+ </html>
js/gmap/demo/polyline.html ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ .gmap3{
9
+ margin: 20px auto;
10
+ border: 1px dashed #C0C0C0;
11
+ width: 500px;
12
+ height: 250px;
13
+ }
14
+ </style>
15
+ <script type="text/javascript">
16
+
17
+ $(function(){
18
+
19
+ $('#test1').gmap3({
20
+ map:{
21
+ options:{
22
+ center:{lat:0, lng:-180},
23
+ zoom:2,
24
+ mapTypeId: google.maps.MapTypeId.TERRAIN
25
+ }
26
+ },
27
+ polyline:{
28
+ options:{
29
+ strokeColor: "#FF0000",
30
+ strokeOpacity: 1.0,
31
+ strokeWeight: 2,
32
+ path:[
33
+ [37.772323, -122.214897],
34
+ [21.291982, -157.821856],
35
+ [-18.142599, 178.431],
36
+ [-27.46758, 153.027892]
37
+ ]
38
+ }
39
+ }
40
+ });
41
+ });
42
+ </script>
43
+ </head>
44
+
45
+ <body>
46
+ <div id="test1" class="gmap3"></div>
47
+ </body>
48
+ </html>
js/gmap/demo/rectangle.html ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ .gmap3{
9
+ margin: 20px auto;
10
+ border: 1px dashed #C0C0C0;
11
+ width: 500px;
12
+ height: 250px;
13
+ }
14
+ #container{
15
+ overflow: auto;
16
+ text-align:center;
17
+ width: 140px;
18
+ margin: 20 auto;
19
+ }
20
+ .box{
21
+ float: left;
22
+ width: 20px;
23
+ height: 20px;
24
+ margin-left: 20px;
25
+ background-color:#FFF;
26
+ border:1px solid #000;
27
+ }
28
+ </style>
29
+ <script type="text/javascript">
30
+
31
+ function onClk(rectangle, event, context){
32
+ var $e = $('#'+context.data);
33
+ if ($e.hasClass('clicked')) {
34
+ $e.removeClass('clicked').css('backgroundColor', '#FFFFFF');
35
+ } else {
36
+ $e.addClass('clicked').css('backgroundColor', rectangle.strokeColor);
37
+ }
38
+ }
39
+
40
+
41
+ $(function(){
42
+
43
+ // 1st call : create rectangles (init the map with defaults values, and center on first rectangle)
44
+ $('#test1').gmap3({
45
+ rectangle:{
46
+ values:[
47
+ { options:{
48
+ bounds: {n:40.780, e:-73.932, s:40.742, w:-73.967},
49
+ fillColor : "#FFAF9F",
50
+ strokeColor : "#FF512F",
51
+ clickable:true
52
+ },
53
+ data:"box1"
54
+ },
55
+ { options:{
56
+ bounds: [40.775, -73.937, 40.747, -73.962],
57
+ fillColor : "#F4AFFF",
58
+ strokeColor : "#CB53DF",
59
+ clickable:true
60
+ },
61
+ data:"box2"
62
+ }
63
+ ],
64
+ events:{
65
+ click:onClk
66
+ }
67
+ }
68
+ });
69
+
70
+ // second call : create a single rectangle
71
+ $('#test1').gmap3({
72
+ map:{
73
+ options:{
74
+ zoom:12
75
+ }
76
+ },
77
+ rectangle:{
78
+ options:{
79
+ bounds: {ne:[40.770436, -73.942185], sw:[40.752828, -73.957377]},
80
+ radius : 750,
81
+ fillColor : "#008BB2",
82
+ strokeColor : "#005BB7"
83
+ },
84
+ data:"box3",
85
+ events:{
86
+ click:onClk
87
+ }
88
+ }
89
+ });
90
+
91
+ });
92
+ </script>
93
+ </head>
94
+
95
+ <body>
96
+ <div id="container">
97
+ <div id="box1" class="box"></div>
98
+ <div id="box2" class="box"></div>
99
+ <div id="box3" class="box"></div>
100
+ </div>
101
+ <div id="test1" class="gmap3"></div>
102
+ </body>
103
+ </html>
js/gmap/demo/rightclick.html ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ .gmap3{
9
+ margin: 20px auto;
10
+ border: 1px dashed #C0C0C0;
11
+ width: 500px;
12
+ height: 500px;
13
+ }
14
+ </style>
15
+
16
+ <script type="text/javascript">
17
+
18
+ $(function(){
19
+
20
+ $('#test1').gmap3(
21
+ { map:{
22
+ options:{
23
+ center:[46.578498,2.457275],
24
+ zoom: 5
25
+ },
26
+ events:{
27
+ rightclick:function(map, event){
28
+ var lat = event.latLng.lat(),
29
+ lng = event.latLng.lng(),
30
+ dy = (1/60),
31
+ dx = 1/(60* Math.cos(Math.PI * lat / 180)),
32
+ miles = 50;
33
+
34
+ $(this).gmap3(
35
+ { marker:{
36
+ latLng: event.latLng
37
+ }
38
+ },
39
+ { marker:{
40
+ latLng: [lat+miles*dy, lng]
41
+ }
42
+ },
43
+ { marker:{
44
+ latLng: [lat-miles*dy, lng]
45
+ }
46
+ },
47
+ { marker:{
48
+ latLng: [lat, lng-miles*dx]
49
+ }
50
+ },
51
+ { marker:{
52
+ latLng: [lat, lng+miles*dx]
53
+ }
54
+ }
55
+ );
56
+ }
57
+ }
58
+ }
59
+ }
60
+ );
61
+ });
62
+ </script>
63
+ </head>
64
+
65
+ <body>
66
+ <div id="container">
67
+ <div id="over1" class="box"></div>
68
+ <div id="over2" class="box"></div>
69
+ </div>
70
+ <div id="test1" class="gmap3"></div>
71
+ </body>
72
+ </html>
js/gmap/demo/selector.html ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ .gmap3{
9
+ margin: 20px auto;
10
+ border: 1px dashed #C0C0C0;
11
+ width: 500px;
12
+ height: 250px;
13
+ }
14
+ </style>
15
+
16
+ <script type="text/javascript">
17
+
18
+ $(function(){
19
+
20
+ $(".gmap3").gmap3(
21
+ { map:{
22
+ options:{
23
+ center:[22.49156846196823, 89.75802349999992],
24
+ zoom:2,
25
+ mapTypeId: google.maps.MapTypeId.SATELLITE,
26
+ mapTypeControl: true,
27
+ mapTypeControlOptions: {
28
+ style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
29
+ },
30
+ navigationControl: true,
31
+ scrollwheel: true,
32
+ streetViewControl: true
33
+ },
34
+ events:{
35
+ rightclick:function(map, event){
36
+ $(this).gmap3({
37
+ marker:{
38
+ latLng: event.latLng
39
+ }
40
+ });
41
+ }
42
+ }
43
+ }
44
+ });
45
+
46
+ $(".gmap3.top").gmap3({
47
+ marker:{
48
+ latLng:[29.132318972825445,81.32052349999992],
49
+ options:{
50
+ icon: "http://maps.google.com/mapfiles/markerA.png"
51
+ }
52
+ }
53
+ });
54
+
55
+ $("#test2").gmap3({
56
+ marker:{
57
+ latLng:[29.132318972825445,81.32052349999992],
58
+ options:{
59
+ icon: "http://maps.google.com/mapfiles/markerB.png"
60
+ }
61
+ }
62
+ });
63
+
64
+ });
65
+ </script>
66
+ </head>
67
+
68
+ <body>
69
+ <div id="test1" class="gmap3 top"></div>
70
+ <div id="test2" class="gmap3 middle"></div>
71
+ <div id="test3" class="gmap3 bottom"></div>
72
+ </body>
73
+ </html>
js/gmap/demo/streetviewpanorama.html ADDED
@@ -0,0 +1,125 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ .gmap3{
9
+ margin: 20px auto;
10
+ border: 1px dashed #C0C0C0;
11
+ width: 800px;
12
+ height: 800px;
13
+ }
14
+ .infow{
15
+ width:250px;
16
+ height:150px;
17
+ }
18
+ </style>
19
+ <body>
20
+ <div id="test1" class="gmap3"></div>
21
+
22
+ <script type="text/javascript">
23
+
24
+ // http://blog.mridey.com/2010/11/how-to-embed-streetview-in-infowindow.html
25
+
26
+ function Panorama(){
27
+ var p, marker, infowindow, map;
28
+
29
+ this.setMap = function(obj){
30
+ map = obj;
31
+ };
32
+
33
+ this.setMarker = function(obj){
34
+ marker = obj;
35
+ };
36
+
37
+ this.setInfowindow = function(obj){
38
+ infowindow = obj;
39
+ };
40
+
41
+ this.open = function(){
42
+ infowindow.open(map, marker);
43
+ };
44
+
45
+ this.run = function(id){
46
+ if (!marker) {
47
+ return;
48
+ }
49
+ p = new google.maps.StreetViewPanorama(
50
+ document.getElementById(id),
51
+ { navigationControl: true,
52
+ navigationControlOptions: {style: google.maps.NavigationControlStyle.ANDROID},
53
+ enableCloseButton: false,
54
+ addressControl: false,
55
+ linksControl: false
56
+ }
57
+ );
58
+ p.bindTo("position", marker);
59
+ p.setVisible(true);
60
+ };
61
+ }
62
+
63
+ $(function(){
64
+
65
+ var points = [
66
+ [-33.88917576169259,151.2442638310547],
67
+ [-33.854398887065486,151.1563732060547],
68
+ [-33.90541911630287,151.0846187504883]
69
+ ],
70
+ map;
71
+
72
+ $('#test1').gmap3({
73
+ map:{
74
+ options:{
75
+ zoom: 12,
76
+ mapTypeId: google.maps.MapTypeId.ROADMAP,
77
+ streetViewControl: false,
78
+ center: points[0]
79
+ },
80
+ callback: function(aMap){
81
+ map = aMap;
82
+ }
83
+ }
84
+ });
85
+
86
+
87
+ $.each(points, function(i, point){
88
+
89
+ var panorama = new Panorama();
90
+ panorama.setMap(map);
91
+
92
+ $("#test1").gmap3({
93
+ marker:{
94
+ latLng: point,
95
+ options:{title: "Click to open", draggable: true},
96
+ callback: function(marker){
97
+ panorama.setMarker(marker);
98
+ },
99
+ events:{
100
+ click: function(){
101
+ panorama.open();
102
+ }
103
+ }
104
+ },
105
+ infowindow:{
106
+ options:{
107
+ content: "<div id='iw"+i+"' class='infow'></div>"
108
+ },
109
+ callback: function(infowindow){
110
+ panorama.setInfowindow(infowindow);
111
+ },
112
+ events:{
113
+ domready: function(){
114
+ panorama.run("iw"+i);
115
+ }
116
+ }
117
+ }
118
+ });
119
+
120
+ });
121
+
122
+ });
123
+ </script>
124
+ </body>
125
+ </html>
js/gmap/demo/tags.html ADDED
@@ -0,0 +1,126 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ .gmap3{
9
+ margin: 20px auto;
10
+ border: 1px dashed #C0C0C0;
11
+ width: 800px;
12
+ height: 600px;
13
+ }
14
+ </style>
15
+
16
+ <script type="text/javascript">
17
+ var colors = "black brown green purple yellow grey orange white".split(" "),
18
+ letters = "A B C D E F".split(" ");
19
+
20
+ $(function(){
21
+
22
+ var allMarkers = [];
23
+
24
+ function stop(){
25
+ $.each(allMarkers, function(i, marker){
26
+ marker.setAnimation(null);
27
+ });
28
+ }
29
+
30
+ $.each(colors, function(i, color){
31
+ $("#colors").append(
32
+ $("<option></option>")
33
+ .attr("value", color)
34
+ .text(color)
35
+ );
36
+ });
37
+
38
+ $.each(letters, function(i, letter){
39
+ $("#letters").append(
40
+ $("<option></option>")
41
+ .attr("value", letter)
42
+ .text(letter)
43
+ );
44
+ });
45
+
46
+ $('#test1').gmap3({
47
+ map:{
48
+ options:{
49
+ zoom: 2,
50
+ mapTypeId: google.maps.MapTypeId.TERRAIN
51
+ },
52
+ onces: {
53
+ bounds_changed: function(){
54
+ var $this = $(this),
55
+ bounds = $this.gmap3("get").getBounds(),
56
+ southWest = bounds.getSouthWest(),
57
+ northEast = bounds.getNorthEast(),
58
+ lngSpan = northEast.lng() - southWest.lng(),
59
+ latSpan = northEast.lat() - southWest.lat(),
60
+ i, color, letter;
61
+ for (i = 0; i < 50; i++) {
62
+ letter = letters[Math.floor(Math.random()*letters.length)];
63
+ color = colors[Math.floor(Math.random()*colors.length)];
64
+
65
+ $this.gmap3({
66
+ marker:{
67
+ latLng:[southWest.lat() + latSpan * Math.random(), southWest.lng() + lngSpan * Math.random()],
68
+ options:{
69
+ icon: "http://maps.google.com/mapfiles/marker_"+color+letter+".png"
70
+ },
71
+ tag:[color, letter],
72
+ callback: function(marker){
73
+ allMarkers.push(marker);
74
+ }
75
+ }
76
+ });
77
+ }
78
+ }
79
+ }
80
+ }
81
+ });
82
+
83
+ $("#animate").click(function(){
84
+ var color = $("#colors option:selected").val(),
85
+ letter = $("#letters option:selected").val(),
86
+ markers = $("#test1").gmap3({
87
+ get:{
88
+ name:"marker",
89
+ tag:function(tag){
90
+ return ((color === "All") || (tag[0] === color)) && ((letter === "All") || (tag[1] === letter));
91
+ },
92
+ all: true
93
+ }
94
+ });
95
+ stop();
96
+ $.each(markers, function(i, marker){
97
+ marker.setAnimation(google.maps.Animation.BOUNCE);
98
+ });
99
+ });
100
+
101
+ $("#remove").click(function(){
102
+ var color = $("#colors option:selected").val(),
103
+ letter = $("#letters option:selected").val();
104
+ $("#test1").gmap3({
105
+ clear:{
106
+ name:"marker",
107
+ tag:function(tag){
108
+ return ((color === "All") || (tag[0] === color)) && ((letter === "All") || (tag[1] === letter));
109
+ },
110
+ all: true
111
+ }
112
+ });
113
+ });
114
+
115
+
116
+ });
117
+ </script>
118
+ <body>
119
+ <select id="colors"><option>All</option></select>
120
+ <select id="letters"><option>All</option></select>
121
+ <button id="animate">Animate</button>
122
+ <button id="remove">Remove</button>
123
+ <br />
124
+ <div id="test1" class="gmap3"></div>
125
+ </body>
126
+ </html>
js/gmap/demo/trigger.html ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../gmap3.js"></script>
7
+ <style>
8
+ .gmap3{
9
+ margin: 20px auto;
10
+ border: 1px dashed #C0C0C0;
11
+ width: 500px;
12
+ height: 250px;
13
+ }
14
+ button{
15
+ display: block;
16
+ margin: 10px auto;
17
+ }
18
+ </style>
19
+
20
+ <script type="text/javascript">
21
+ $(function(){
22
+ $('#test1').gmap3();
23
+
24
+ $("button").click(function(){
25
+ $('#test1')
26
+ .width("1000px")
27
+ .height("500px")
28
+ //.gmap3({trigger:{eventName:"resize"}});
29
+ .gmap3({trigger:"resize"});
30
+ $(this).remove();
31
+ });
32
+
33
+ });
34
+ </script>
35
+ <body>
36
+ <button>Increase size</button>
37
+ <div id="test1" class="gmap3"></div>
38
+ </body>
39
+ </html>
js/gmap/examples/autocomplete/autocomplete.html ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
4
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
5
+ <script type="text/javascript" src="../../gmap3.js"></script>
6
+ <script type="text/javascript" src="jquery-autocomplete.js"></script>
7
+ <link rel="stylesheet" type="text/css" href="jquery-autocomplete.css"/>
8
+ <style>
9
+ *{
10
+ font-family: verdana;
11
+ font-size: 12px;
12
+ }
13
+ body{
14
+ text-align:center;
15
+ }
16
+ .gmap3{
17
+ margin: 20px auto;
18
+ border: 1px dashed #C0C0C0;
19
+ width: 1000px;
20
+ height: 500px;
21
+ }
22
+ .ui-menu .ui-menu-item{
23
+ text-align: left;
24
+ font-weight: normal;
25
+ }
26
+ .ui-menu .ui-menu-item a.ui-state-hover{
27
+ border: 1px solid red;
28
+ background: #FFBFBF;
29
+ color: black;
30
+ font-weight:bold;
31
+ }
32
+ </style>
33
+
34
+ <script type="text/javascript">
35
+
36
+ // note: autocomplete require on / off function so at least jQuery 1.7
37
+
38
+ $(function(){
39
+
40
+ $("#test").gmap3();
41
+
42
+ $("#address").autocomplete({
43
+ source: function() {
44
+ $("#test").gmap3({
45
+ getaddress: {
46
+ address: $(this).val(),
47
+ callback: function(results){
48
+ if (!results) return;
49
+ $("#address").autocomplete("display", results, false);
50
+ }
51
+ }
52
+ });
53
+ },
54
+ cb:{
55
+ cast: function(item){
56
+ return item.formatted_address;
57
+ },
58
+ select: function(item) {
59
+ $("#test").gmap3({
60
+ clear: "marker",
61
+ marker: {
62
+ latLng: item.geometry.location
63
+ },
64
+ map:{
65
+ options: {
66
+ center: item.geometry.location,
67
+ }
68
+ }
69
+ });
70
+ }
71
+ }
72
+ })
73
+ .focus();
74
+
75
+ });
76
+ </script>
77
+ <body>
78
+ <input type="text" id="address" size="60">
79
+ <div id="test" class="gmap3"></div>
80
+ </body>
81
+ </html>
js/gmap/examples/autocomplete/jquery-autocomplete.css ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ul.autocomplete {
2
+ display:block;
3
+ margin: 0;
4
+ padding: 2px;
5
+ -moz-border-radius: 4px;
6
+ -webkit-border-radius: 4px;
7
+ border-radius: 4px;
8
+ background-color:#EEEEEE;
9
+ border: 1px solid #DDDDDD;
10
+ max-height: 200px;
11
+ overflow-y: scroll;
12
+ text-align:left;
13
+ z-index:9999;
14
+ }
15
+ ul.autocomplete li{
16
+ padding: 0;
17
+ cursor:default;
18
+ border:1px solid #EEEEEE;
19
+ -moz-border-radius: 4px;
20
+ -webkit-border-radius: 4px;
21
+ border-radius: 4px;
22
+ list-style: none outside none;
23
+ }
24
+ ul.autocomplete li.hover{
25
+ border:1px solid #FFA5A5;
26
+ background-color:#FFE0E0;
27
+ }
28
+ ul.autocomplete li a{
29
+ display:block;
30
+ cursor:default;
31
+ width:100%;
32
+ text-decoration: none;
33
+ outline: medium none;
34
+ -moz-border-radius: 4px;
35
+ -webkit-border-radius: 4px;
36
+ border-radius: 4px;
37
+ color: #333333;
38
+ }
js/gmap/examples/autocomplete/jquery-autocomplete.js ADDED
@@ -0,0 +1,636 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Auto-complete plugin for jQuery
3
+ * Licence : GPL v3 : http://www.gnu.org/licenses/gpl.html
4
+ * Author : DEMONTE Jean-Baptiste
5
+ * Contact : jbdemonte@gmail.com
6
+ * Url : https://github.com/jbdemonte/autocomplete
7
+ */
8
+ (function ($, undef) {
9
+
10
+ //*************************************************
11
+ // global variables
12
+ //*************************************************
13
+ var namespace = "autocomplete", // used to store the autocomplete object in $.data() and to create class name
14
+ win = $(window),
15
+ defaults = {
16
+ ajax: { // options for $.ajax
17
+ url: document.URL,
18
+ type: "POST",
19
+ dataType: "json",
20
+ data: {}
21
+ },
22
+ cb: { // callback
23
+ populate: undef, // popupate data to send in $.ajax, if not define, data name is input name or id
24
+ cast: undef, // cast an item <mixed> to string in order to display it to the completion
25
+ filter: undef, // filtering function
26
+ process: undef, // after getting the result, it allows to manipulate data before displaying the completion
27
+ preselect: undef, // on highlight item
28
+ select: undef, // on select item
29
+ unselect: undef, // on validate a non item value
30
+ force: undef // enter on a non item (enter after an empty list)
31
+ },
32
+ width: "auto", // auto : min-width = width of the input, false : width of the input else value
33
+ offset: undef, // display offset
34
+ delay: 250, // delay in ms after key pressed and before post
35
+ name: undef, // post key : name, else input[name], else input[id]
36
+ minLength: 1, // min lenght to complete : 0 / false : not used, > 0 : min length
37
+ cache: true, // ajax : cache result to save exchange
38
+ once: false, // ajax : false : idle, true : only require ajax exchange once => data source don't change : set filter to true if not defined in init
39
+ source: undef, // undef => ajax, [], string or callback function
40
+ match: true, // run match filter
41
+ prefix: true, // match by prefix of source data
42
+ splitChr: undef, // used character to split data (default is \n)
43
+ autohide: false, // autohide if not hover : 0 / false : not used, > 0 : delay in ms
44
+ loop: true, // up / down loop
45
+ selectFirst: true, // select first element on show
46
+ className : namespace
47
+ },
48
+ ua = navigator.userAgent.toLowerCase(),
49
+ opera = ua.match(/opera/),
50
+ msie = ua.match(/msie/);
51
+
52
+ //*************************************************
53
+ // Mixed functions
54
+ //*************************************************
55
+ function clone(mixed) {
56
+ var result;
57
+ if ($.isArray(mixed)) {
58
+ result = [];
59
+ $.each(mixed, function (i, value) {
60
+ result.push(value);
61
+ });
62
+ } else if (typeof mixed === "object") {
63
+ result = $.extend(true, {}, mixed);
64
+ } else {
65
+ result = mixed;
66
+ }
67
+ return result;
68
+ }
69
+
70
+ // split data using splitChar or default
71
+ function splitData(data, splitChr) {
72
+ if (splitChr) {
73
+ return data.split(splitChr);
74
+ } else {
75
+ return data.split(/\r\n|\r|\n/);
76
+ }
77
+ }
78
+
79
+ //*************************************************
80
+ // class Autocomplete
81
+ //*************************************************
82
+ function Autocomplete(element) {
83
+ var toComplete, toAutoHide, // timeout
84
+ dropbox, // jQuery dropbox
85
+ options = {}, // options of the autocomplete = user define + default
86
+ iHover = -1, // index of highlighted element
87
+ current, // store current data to return real object instead of "toString" values
88
+ keys = [], // current keys
89
+ count = 0, // current count (item count in dropbox)
90
+ cache = {}, // ajax cache => [ input value ] = ajax result
91
+ binded = false, // events on <input> are binded or not => enable / disable autocomplete
92
+ scrolling = false, // true before starting to scroll by using up / down key and false after onScroll event => needed to disable mouse over item event which highlight overed item
93
+ handlers = { // functions to bind
94
+ key: keyPressed,
95
+ focusout: function () {
96
+ if (!$(this).data(namespace + "-focus")) {
97
+ hide(true);
98
+ }
99
+ },
100
+ dblclick: function () {
101
+ if (!dropbox) {
102
+ updateToComplete(false);
103
+ }
104
+ },
105
+ resize: function () {
106
+ if (dropbox) {
107
+ relocate();
108
+ }
109
+ }
110
+ };
111
+
112
+ // run callback or return source
113
+ function getSource(source) {
114
+ if (typeof source === "function") {
115
+ return getSource(source.call(element, element.val())); // result of the callback is re-processed (in case of result string ...)
116
+ } else if (typeof source === "string") {
117
+ return splitData(source, options.splitChr);
118
+ }
119
+ return source;
120
+ }
121
+
122
+ // bind events
123
+ function bind() {
124
+ if (!binded) {
125
+ element[opera ? "keypress" : "keydown"](handlers.key);
126
+ element.focusout(handlers.focusout);
127
+ element.dblclick(handlers.dblclick);
128
+ binded = true;
129
+ }
130
+ }
131
+
132
+ // unbind events
133
+ function unbind() {
134
+ if (binded) {
135
+ element.unbind(opera ? "keypress" : "keydown", handlers.key);
136
+ element.unbind("focusout", handlers.focusout);
137
+ element.unbind("dblclick", handlers.dblclick);
138
+ binded = false;
139
+ }
140
+ }
141
+
142
+ function relocate() {
143
+ var offset = element.offset(),
144
+ optOffset = typeof options.offset === "function" ? options.offset() : options.offset;
145
+ dropbox.offset({
146
+ top: offset.top + (optOffset && optOffset.top ? optOffset.top : element.outerHeight() + 1),
147
+ left: offset.left + (optOffset && optOffset.left ? optOffset.left : 0)
148
+ });
149
+ }
150
+
151
+ // restart the timeout to run autohide
152
+ function updateToAutoHide() {
153
+ if (!options.autohide) {
154
+ return;
155
+ }
156
+ stopToAutoHide();
157
+ toAutoHide = setTimeout(
158
+ function () {
159
+ hide(true);
160
+ },
161
+ options.autohide
162
+ );
163
+ }
164
+
165
+ // stop the autohide
166
+ function stopToAutoHide() {
167
+ if (toAutoHide) {
168
+ clearTimeout(toAutoHide);
169
+ toAutoHide = undef;
170
+ }
171
+ }
172
+
173
+ // restart the timeout to run the autocompletion
174
+ function updateToComplete(noWait) {
175
+ clearTimeout(toComplete);
176
+ toComplete = setTimeout(
177
+ complete,
178
+ noWait ? 0 : options.delay
179
+ );
180
+ }
181
+
182
+ // highlight on/off an item by its index (0..n-1)
183
+ function hoverize(i, visible) {
184
+ var li = dropbox ? $("li", dropbox).eq(i) : undef;
185
+ if (li) {
186
+ li[(visible ? "add" : "remove") + "Class"]("hover");
187
+ if (visible) {
188
+ scroll(li);
189
+ }
190
+ }
191
+ }
192
+
193
+ // scroll to make visible if needed the selected item
194
+ function scroll(target) {
195
+ var top = dropbox.scrollTop(),
196
+ height = dropbox.innerHeight(),
197
+ eTop = target.position().top,
198
+ eHeight = target.outerHeight();
199
+ if (eTop < 0) {
200
+ scrolling = true;
201
+ dropbox.scrollTop(top + eTop);
202
+ } else if (eTop + eHeight > height) {
203
+ scrolling = true;
204
+ dropbox.scrollTop(top + eTop - height + eHeight);
205
+ }
206
+ }
207
+
208
+ // locate next index to highlight
209
+ function getPageUpDownItem(up) {
210
+ if (!dropbox) {
211
+ return false;
212
+ }
213
+ var height = dropbox.innerHeight(),
214
+ pageCount = 0,
215
+ next = iHover;
216
+
217
+ // count visible element to process pageUp/Down
218
+ $("li", dropbox).each(function () {
219
+ var li = $(this);
220
+ pageCount += (li.position().top >= 0) && (li.position().top + li.outerHeight() <= height) ? 1 : 0;
221
+ });
222
+ if (iHover < 0) { // not highlighted
223
+ return (up ? count : pageCount) - 1; // up : last item, down : last of first pageCount
224
+ }
225
+ next += up ? -pageCount : pageCount;
226
+ next = Math.max(0, next);
227
+ next = Math.min(next, count - 1);
228
+ if (options.loop && (next === iHover)) { // borders
229
+ next = next === 0 ? count - 1 : 0;
230
+ }
231
+ return next;
232
+ }
233
+
234
+ // manage key pressed
235
+ function keyPressed(e) {
236
+ var next, li,
237
+ c = e.which;
238
+ if (c === 9) { // tab
239
+ return;
240
+ }
241
+ if (!dropbox && (c !== 27) && (c !== 13)) { // completion empty and not [esc] or [enter]
242
+ updateToComplete(false);
243
+ } else if ((c === 38) || (c === 40)) { // up / down
244
+ next = iHover + (c === 38 ? -1 : 1);
245
+ if (options.loop) {
246
+ if (next < 0) {
247
+ next = count - 1;
248
+ } else if (next > count - 1) {
249
+ next = 0;
250
+ }
251
+ }
252
+ next = Math.max(0, next);
253
+ next = Math.min(next, count - 1);
254
+ preselect(next);
255
+ e.preventDefault();
256
+ } else if ((c === 33) || (c === 34)) { // page up / down
257
+ next = getPageUpDownItem(c === 33);
258
+ if (next !== false) {
259
+ preselect(next);
260
+ }
261
+ e.preventDefault();
262
+ } else if (c === 13 || c === 39) { // enter or right arrow
263
+ if (iHover !== -1) {
264
+ li = $("li", dropbox).eq(iHover);
265
+ select(iHover, options.cb.cast ? options.cb.cast(current[li.data("key")]) : li.text());
266
+ e.preventDefault();
267
+ e.stopImmediatePropagation();
268
+ } else {
269
+ hide(true);
270
+ if (c === 13 && options.cb.force) {
271
+ options.cb.force.call(element);
272
+ }
273
+ }
274
+ } else if (c === 27) { // esc
275
+ preselect(-1);
276
+ hide(true);
277
+ } else {
278
+ updateToComplete(false);
279
+ }
280
+ }
281
+
282
+ // create the data object to send in $.ajax
283
+ function getData() {
284
+ var data, name = "value";
285
+ if (options.cb.populate) {
286
+ data = $.extend(true, {}, options.ajax.data, options.cb.populate.call(element));
287
+ } else {
288
+ data = $.extend(true, {}, options.ajax.data);
289
+ if (options.name && options.name.length) {
290
+ name = options.name;
291
+ } else if (element.attr("name") && element.attr("name").length) {
292
+ name = element.attr("name");
293
+ } else if (element.attr("id") && element.attr("id").length) {
294
+ name = element.attr("id");
295
+ }
296
+ data[name] = element.val();
297
+ }
298
+ return data;
299
+ }
300
+
301
+ // branch complete : ajax or use local source
302
+ function complete() {
303
+ var value = element.val();
304
+ // check min length required to run completion
305
+ if (options.minLength && (options.minLength > value.length)) {
306
+ if (hide(true)) {
307
+ preselect(-1);
308
+ }
309
+ return;
310
+ }
311
+ if (options.source) {
312
+ completeSource();
313
+ } else {
314
+ completeAjax();
315
+ }
316
+ }
317
+
318
+ /**
319
+ * filter data to match with user input
320
+ * @param data {Array|Object}
321
+ * @param cast {function}
322
+ * @return {Object}
323
+ */
324
+ function matchFilter(data, cast) {
325
+ var val = element.val(),
326
+ re = new RegExp((options.prefix ? "^" : "") + val.replace(/[\-\[\]{}()*+?.,\\\^\$\|#\s]/g, "\\$&"), "i"), //escape regular expression
327
+ result = [];
328
+ // value is empty and minLenght is 0 (else, can't reach this filter)
329
+ if (!val.length) {
330
+ return data;
331
+ }
332
+ $.each(data, function (key, value) {
333
+ if (re.test(cast(value))) {
334
+ result.push(value);
335
+ }
336
+ });
337
+ return result;
338
+ }
339
+
340
+ // run the completion : use local source
341
+ function completeSource() {
342
+ show(getSource(options.source), options.match);
343
+ }
344
+
345
+ // run the completion : use cache or call $.ajax
346
+ function completeAjax() {
347
+ var settings, data,
348
+ value = element.val();
349
+
350
+ // use cache if available
351
+ if (cache && ((options.once && !$.isEmptyObject(cache)) || (options.cache && (typeof cache[value] !== "undefined")))) {
352
+ data = options.once ? clone(cache) : clone(cache[value]);
353
+ // user process
354
+ if (options.cb.process) {
355
+ data = options.cb.process.call(element, data, options.once ? "once" : "cache");
356
+ }
357
+ if (typeof data === "string") {
358
+ data = splitData(data, options.splitChr);
359
+ }
360
+ show(data, options.match);
361
+ return;
362
+ }
363
+
364
+ settings = $.extend(true, {}, options.ajax);
365
+ settings.success = function (data, textStatus, jqXHR) {
366
+ // store result if it will be re-used
367
+ if (options.once) {
368
+ cache = clone(data);
369
+ } else if (options.cache) {
370
+ cache[value] = clone(data);
371
+ }
372
+ // user process
373
+ if (options.cb.process) {
374
+ data = options.cb.process.call(element, data, textStatus, jqXHR);
375
+ }
376
+ if (typeof data === "string") {
377
+ data = splitData(data, options.splitChr);
378
+ }
379
+ show(data, options.match);
380
+ };
381
+
382
+ settings.data = getData();
383
+ $.ajax(settings);
384
+ }
385
+
386
+ // preselect an item (highlight : off the previous, on the new + run callback)
387
+ function preselect(next) {
388
+ var key;
389
+ updateToAutoHide();
390
+ if (iHover === next) {
391
+ return;
392
+ }
393
+ hoverize(iHover, false);
394
+ iHover = next;
395
+ hoverize(iHover, true);
396
+ if (options.cb.preselect) {
397
+ if (iHover === -1) {
398
+ options.cb.preselect.call(element);
399
+
400
+ } else {
401
+ key = keys[iHover];
402
+ options.cb.preselect.call(element, current[key], key, iHover);
403
+ }
404
+ }
405
+ }
406
+
407
+ // select an item : select data in textbox, run the callback
408
+ function select(i, value) {
409
+ var key = keys[i];
410
+ stopToAutoHide();
411
+ if (value !== undef) {
412
+ element.val(value);
413
+ }
414
+ hide();
415
+ element.focus();
416
+ if (options.cb.select) {
417
+ options.cb.select.call(element, current[key], key, i);
418
+ }
419
+ }
420
+
421
+ // use data receive from post or cache to display the selectbox
422
+ function show(data, match) {
423
+ var position = element.position(),
424
+ width = msie ? element.outerWidth() : element.width(),
425
+ cast = options.cb.cast || function (s) { return s; };
426
+
427
+ hide();
428
+
429
+ if (options.cb && options.cb.filter) {
430
+ data = options.cb.filter(data);
431
+ }
432
+
433
+ if (!data) {
434
+ return;
435
+ }
436
+
437
+ if ((typeof match === "undefined" && options.filter) || match) {
438
+ data = matchFilter(data, cast);
439
+ }
440
+
441
+ current = data;
442
+
443
+ dropbox = $(document.createElement("ul")).addClass(options.className);
444
+
445
+ dropbox.css({
446
+ position: "absolute",
447
+ left: position.left + "px",
448
+ top: (position.top + element.outerHeight()) + "px"
449
+ });
450
+
451
+ dropbox.scroll(function () {
452
+ scrolling = false;
453
+ });
454
+
455
+ // adjust width
456
+ if (options.width === "auto") {
457
+ dropbox.css(msie ? "width" : "minWidth", width + "px");
458
+ } else if (options.width === false) {
459
+ dropbox.css({
460
+ width: width + "px",
461
+ overflow: "hidden"
462
+ });
463
+ } else {
464
+ dropbox.css({
465
+ width: typeof options.width === "function" ? options.width() : options.width,
466
+ overflow: "hidden"
467
+ });
468
+ }
469
+
470
+ // add items
471
+ iHover = -1;
472
+ count = 0;
473
+ keys = [];
474
+ $.each(current, function (key, value) {
475
+ var li = $(document.createElement("li")),
476
+ a = $(document.createElement("a")),
477
+ i = count;
478
+ a.click(function (event) {
479
+ event.stopPropagation();
480
+ select(i, cast(value));
481
+ });
482
+ li.data("key", key);
483
+ li.click(function (event) {
484
+ event.stopPropagation();
485
+ select(i, cast(value));
486
+ });
487
+ li.hover(function () {
488
+ if (!scrolling) { // on manual scrolling (up / down key), if mouse is over item, this event must be disable
489
+ preselect(i);
490
+ }
491
+ });
492
+ dropbox.append(li.append(a.append(cast(value, true))));
493
+ keys[i] = key;
494
+ count += 1;
495
+ });
496
+
497
+ if (!count) {
498
+ dropbox.remove();
499
+ return;
500
+ }
501
+
502
+ // while clicking on an item, element trigger the focusout, so the item click is lost
503
+ dropbox.hover(
504
+ function () {
505
+ element.data(namespace + "-focus", true);
506
+ stopToAutoHide();
507
+ },
508
+ function () {
509
+ element.data(namespace + "-focus", false);
510
+ updateToAutoHide();
511
+ if (!element.is(":focus")) {
512
+ element.trigger("focusout");
513
+ }
514
+ }
515
+ );
516
+
517
+ $("body").append(dropbox);
518
+ win.on("resize", handlers.resize);
519
+ relocate();
520
+
521
+ // manage min-width, min-height, max-width, max-height for IE
522
+ if (msie) {
523
+ $.each(["min", "max"], function (isMax, type) {
524
+ $.each(["Width", "Height"], function (i, property) {
525
+ var v = parseInt(dropbox.css(type + property), 10);
526
+ if (!isNaN(v) && ((dropbox[property.toLowerCase()]() < v) ^ isMax)) {
527
+ dropbox.css(property.toLowerCase(), v + "px");
528
+ }
529
+ });
530
+ });
531
+ }
532
+ if (options.selectFirst) {
533
+ preselect(0);
534
+ }
535
+
536
+ updateToAutoHide();
537
+ }
538
+
539
+ // look for value in dropbox
540
+ function reverse(value) {
541
+ var result = undef;
542
+ $("li", dropbox).each(function (i, li) {
543
+ if (result === undef && $(li).text() === value) {
544
+ result = i;
545
+ }
546
+ });
547
+ return result;
548
+ }
549
+
550
+ // hide the select box
551
+ function hide(checkReverse) {
552
+ if (dropbox) {
553
+ if (checkReverse) { // user escape or not select any item, but value is in the list, so run callback
554
+ var value = element.val(),
555
+ index = !value.length || (options.minLength && (options.minLength > value.length)) ? undef : reverse(value);
556
+ if (index !== undef) {
557
+ select(index);
558
+ return false;
559
+ }
560
+ }
561
+ if (iHover >= 0 && options.cb.unselect) {
562
+ options.cb.unselect.call(element);
563
+ }
564
+ stopToAutoHide();
565
+ dropbox.remove();
566
+ win.off("resize", handlers.resize);
567
+ dropbox = undef;
568
+ iHover = -1;
569
+ return true;
570
+ }
571
+ return false;
572
+ }
573
+
574
+ return {
575
+ init: function (opts) {
576
+ // extends defaults options
577
+ options = $.extend(true, {}, defaults, opts);
578
+
579
+ // initialise source data
580
+ if (typeof options.source === "string") {
581
+ options.source = splitData(options.source, options.splitChr);
582
+ }
583
+
584
+ // some browsers use key "down" to make their own autocompletion (Opera)
585
+ element.attr("autocomplete", "off");
586
+
587
+ // bind events
588
+ bind();
589
+ },
590
+ flushCache: function () {
591
+ cache = {};
592
+ },
593
+ enable: function () {
594
+ bind();
595
+ },
596
+ disable: function () {
597
+ unbind();
598
+ preselect(-1);
599
+ hide();
600
+ },
601
+ close: function () {
602
+ hide();
603
+ },
604
+ trigger: function () {
605
+ updateToComplete(true);
606
+ },
607
+ display: function (source, match) {
608
+ show(getSource(source), match);
609
+ }
610
+ };
611
+ }
612
+
613
+ //*************************************************
614
+ // Plugin jQuery
615
+ //*************************************************
616
+ $.fn.autocomplete = function (p1, p2, p3) {
617
+
618
+ $.each(this, function () { // loop on each jQuery objects
619
+ var element = $(this),
620
+ current = element.data(namespace);
621
+
622
+ if (!current) {
623
+ current = new Autocomplete(element);
624
+ element.data(namespace, current);
625
+ }
626
+
627
+ if (typeof p1 === "string" && current.hasOwnProperty(p1)) {
628
+ current[p1](p2, p3);
629
+ } else {
630
+ current.init(p1);
631
+ }
632
+ });
633
+ return this;
634
+ };
635
+
636
+ }(jQuery));
js/gmap/examples/cluster calculator/clusters.html ADDED
@@ -0,0 +1,148 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
4
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
5
+ <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
6
+ <script type="text/javascript" src="../../gmap3.js"></script>
7
+ <script type="text/javascript" src="database.js"></script>
8
+ <style>
9
+ #container{
10
+ position:relative;
11
+ height:700px;
12
+ }
13
+ #googleMap{
14
+ border: 1px dashed #C0C0C0;
15
+ width: 75%;
16
+ height: 700px;
17
+ }
18
+
19
+ /* cluster