wpDataTables Lite - Version 1.0

Version Description

  • Launch of the Lite version
Download this release

Release Info

Developer wpDataTables
Plugin Icon 128x128 wpDataTables Lite
Version 1.0
Comparing to
See all releases

Version 1.0

Files changed (98) hide show
  1. Readme_documentation.pdf +0 -0
  2. assets/css/TableTools.css +321 -0
  3. assets/css/bootstrap.min.css +7 -0
  4. assets/css/dataTables.bootstrap.css +223 -0
  5. assets/css/image-picker.css +29 -0
  6. assets/css/jquery-ui.css +1177 -0
  7. assets/css/jquery.dataTables.css +215 -0
  8. assets/css/jquery.fileupload.css +66 -0
  9. assets/css/jquery.fs.selecter-arrow.png +0 -0
  10. assets/css/jquery.fs.selecter.css +81 -0
  11. assets/css/jquery.fs.tipper-icon.png +0 -0
  12. assets/css/jquery.remodal.css +235 -0
  13. assets/css/jquery.tagsinput.min.css +1 -0
  14. assets/css/minimal.png +0 -0
  15. assets/css/minimal@2x.png +0 -0
  16. assets/css/phpDataTables.css +803 -0
  17. assets/css/wpDataTablesSkin.css +411 -0
  18. assets/css/wpDataTablesSkin_1.css +472 -0
  19. assets/css/wpdatatables.min.css +16 -0
  20. assets/css/wpdatatables_admin.css +593 -0
  21. assets/fonts/wpdatatables-icons.eot +0 -0
  22. assets/fonts/wpdatatables-icons.svg +74 -0
  23. assets/fonts/wpdatatables-icons.ttf +0 -0
  24. assets/fonts/wpdatatables-icons.woff +0 -0
  25. assets/fonts/wpdatatablesicons-base.eot +0 -0
  26. assets/fonts/wpdatatablesicons-base.svg +52 -0
  27. assets/fonts/wpdatatablesicons-base.ttf +0 -0
  28. assets/fonts/wpdatatablesicons-base.woff +0 -0
  29. assets/img/buttonplus.png +0 -0
  30. assets/img/chart_thumbs/google_area_chart.jpg +0 -0
  31. assets/img/chart_thumbs/google_bar_chart.jpg +0 -0
  32. assets/img/chart_thumbs/google_bubble_chart.jpg +0 -0
  33. assets/img/chart_thumbs/google_candlestick_chart.jpg +0 -0
  34. assets/img/chart_thumbs/google_column_chart.jpg +0 -0
  35. assets/img/chart_thumbs/google_donut_chart.jpg +0 -0
  36. assets/img/chart_thumbs/google_gauge_chart.jpg +0 -0
  37. assets/img/chart_thumbs/google_histogram.jpg +0 -0
  38. assets/img/chart_thumbs/google_line_chart.jpg +0 -0
  39. assets/img/chart_thumbs/google_pie_chart.jpg +0 -0
  40. assets/img/chart_thumbs/google_scatter_chart.jpg +0 -0
  41. assets/img/chart_thumbs/google_stepped_area_chart.jpg +0 -0
  42. assets/img/chart_thumbs/highcharts_3d_column_chart.jpg +0 -0
  43. assets/img/chart_thumbs/highcharts_3d_donut_chart.jpg +0 -0
  44. assets/img/chart_thumbs/highcharts_3d_pie_chart.jpg +0 -0
  45. assets/img/chart_thumbs/highcharts_angular_gauge_chart.jpg +0 -0
  46. assets/img/chart_thumbs/highcharts_basic_area_chart.jpg +0 -0
  47. assets/img/chart_thumbs/highcharts_basic_bar_chart.jpg +0 -0
  48. assets/img/chart_thumbs/highcharts_basic_column_chart.jpg +0 -0
  49. assets/img/chart_thumbs/highcharts_donut_chart.jpg +0 -0
  50. assets/img/chart_thumbs/highcharts_line_chart.jpg +0 -0
  51. assets/img/chart_thumbs/highcharts_pie_chart.jpg +0 -0
  52. assets/img/chart_thumbs/highcharts_pie_with_gradient_chart.jpg +0 -0
  53. assets/img/chart_thumbs/highcharts_scatter_plot.jpg +0 -0
  54. assets/img/chart_thumbs/highcharts_solid_gauge_chart.jpg +0 -0
  55. assets/img/chart_thumbs/highcharts_stacked_area_chart.jpg +0 -0
  56. assets/img/chart_thumbs/highcharts_stacked_bar_chart.jpg +0 -0
  57. assets/img/chart_thumbs/highcharts_stacked_column_chart.jpg +0 -0
  58. assets/img/icons.png +0 -0
  59. assets/img/loadingAnimation.gif +0 -0
  60. assets/img/spinner.gif +0 -0
  61. assets/img/vc-charts-icon.png +0 -0
  62. assets/img/vc-icon.png +0 -0
  63. assets/img/wpdatatables-logo.png +0 -0
  64. assets/index.html +0 -0
  65. assets/js/ace/ace.js +11 -0
  66. assets/js/ace/mode-sql.js +1 -0
  67. assets/js/ace/theme-idle_fingers.js +1 -0
  68. assets/js/colorpicker/bg.png +0 -0
  69. assets/js/colorpicker/hue.png +0 -0
  70. assets/js/colorpicker/jquery.modcoder.excolor.js +13 -0
  71. assets/js/colorpicker/ok.png +0 -0
  72. assets/js/colorpicker/sel.gif +0 -0
  73. assets/js/colorpicker/shbg.png +0 -0
  74. assets/js/colorpicker/slider.gif +0 -0
  75. assets/js/colorpicker/transp.gif +0 -0
  76. assets/js/colorpicker/transp0.gif +0 -0
  77. assets/js/datepicker/legacy.js +10 -0
  78. assets/js/datepicker/picker.date.js +5 -0
  79. assets/js/datepicker/picker.js +7 -0
  80. assets/js/datepicker/picker.time.js +5 -0
  81. assets/js/fileupload/jquery.fileupload-jquery-ui.js +144 -0
  82. assets/js/fileupload/jquery.fileupload-process.js +172 -0
  83. assets/js/fileupload/jquery.fileupload-ui.js +699 -0
  84. assets/js/fileupload/jquery.fileupload.js +1367 -0
  85. assets/js/fileupload/jquery.iframe-transport.js +208 -0
  86. assets/js/icheck/icheck.min.js +11 -0
  87. assets/js/image-picker/image-picker.min.js +7 -0
  88. assets/js/jquery-datatables/FixedHeader.js +1058 -0
  89. assets/js/jquery-datatables/TableTools.min.js +81 -0
  90. assets/js/jquery-datatables/jquery.dataTables.min.js +155 -0
  91. assets/js/jquery-datatables/jquery.dataTables.rowGrouping.js +453 -0
  92. assets/js/jquery-datatables/jquery.dataTables.rowGrouping.min.js +1 -0
  93. assets/js/jquery-datatables/media/swf/copy_cvs_xls_pdf.swf +0 -0
  94. assets/js/jsrender/jsrender.min.js +6 -0
  95. assets/js/jsrender/jsrender.min.js.map +8 -0
  96. assets/js/maskmoney/jquery.maskMoney.js +392 -0
  97. assets/js/php-datatables/wpdatatables.funcs.js +189 -0
  98. assets/js/php-datatables/wpdatatables.funcs.min.js +1 -0
Readme_documentation.pdf ADDED
Binary file
assets/css/TableTools.css ADDED
@@ -0,0 +1,321 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * File: TableTools.css
3
+ * Description: Styles for TableTools 2
4
+ * Author: Allan Jardine (www.sprymedia.co.uk)
5
+ * Language: Javascript
6
+ * License: GPL v2 / 3 point BSD
7
+ * Project: DataTables
8
+ *
9
+ * Copyright 2009-2012 Allan Jardine, all rights reserved.
10
+ *
11
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
12
+ *
13
+ * CSS name space:
14
+ * DTTT DataTables TableTools
15
+ *
16
+ * Style sheet provides:
17
+ * CONTAINER TableTools container element and styles applying to all components
18
+ * BUTTON_STYLES Action specific button styles
19
+ * SELECTING Row selection styles
20
+ * COLLECTIONS Drop down list (collection) styles
21
+ * PRINTING Print display styles
22
+ */
23
+
24
+
25
+ /*
26
+ * CONTAINER
27
+ * TableTools container element and styles applying to all components
28
+ */
29
+ div.DTTT_container {
30
+ position: relative;
31
+ float: right;
32
+ margin-bottom: 1em;
33
+ }
34
+
35
+ button.DTTT_button,
36
+ div.DTTT_button,
37
+ a.DTTT_button {
38
+ position: relative;
39
+ float: left;
40
+ margin-right: 3px;
41
+ padding: 5px 8px;
42
+ border: 1px solid #999;
43
+ cursor: pointer;
44
+ *cursor: hand;
45
+ font-size: 0.88em;
46
+ color: black !important;
47
+
48
+ -webkit-border-radius: 2px;
49
+ -moz-border-radius: 2px;
50
+ -ms-border-radius: 2px;
51
+ -o-border-radius: 2px;
52
+ border-radius: 2px;
53
+
54
+ -webkit-box-shadow: 1px 1px 3px #ccc;
55
+ -moz-box-shadow: 1px 1px 3px #ccc;
56
+ -ms-box-shadow: 1px 1px 3px #ccc;
57
+ -o-box-shadow: 1px 1px 3px #ccc;
58
+ box-shadow: 1px 1px 3px #ccc;
59
+
60
+ /* Generated by http://www.colorzilla.com/gradient-editor/ */
61
+ background: #ffffff; /* Old browsers */
62
+ background: -webkit-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Chrome10+,Safari5.1+ */
63
+ background: -moz-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* FF3.6+ */
64
+ background: -ms-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* IE10+ */
65
+ background: -o-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Opera 11.10+ */
66
+ background: linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* W3C */
67
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f9f9f9',GradientType=0 ); /* IE6-9 */
68
+ }
69
+
70
+
71
+ /* Buttons are cunning border-box sizing - we can't just use that for A and DIV due to IE6/7 */
72
+ button.DTTT_button {
73
+ height: 30px;
74
+ padding: 3px 8px;
75
+ }
76
+
77
+ .DTTT_button embed {
78
+ outline: none;
79
+ }
80
+
81
+ button.DTTT_button:hover,
82
+ div.DTTT_button:hover,
83
+ a.DTTT_button:hover {
84
+ border: 1px solid #666;
85
+ text-decoration: none !important;
86
+
87
+ -webkit-box-shadow: 1px 1px 3px #999;
88
+ -moz-box-shadow: 1px 1px 3px #999;
89
+ -ms-box-shadow: 1px 1px 3px #999;
90
+ -o-box-shadow: 1px 1px 3px #999;
91
+ box-shadow: 1px 1px 3px #999;
92
+
93
+ background: #f3f3f3; /* Old browsers */
94
+ background: -webkit-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* Chrome10+,Safari5.1+ */
95
+ background: -moz-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* FF3.6+ */
96
+ background: -ms-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* IE10+ */
97
+ background: -o-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* Opera 11.10+ */
98
+ background: linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* W3C */
99
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f3f3f3', endColorstr='#f4f4f4',GradientType=0 ); /* IE6-9 */
100
+ }
101
+
102
+ button.DTTT_disabled,
103
+ div.DTTT_disabled,
104
+ a.DTTT_disabled {
105
+ color: #999;
106
+ border: 1px solid #d0d0d0;
107
+
108
+ background: #ffffff; /* Old browsers */
109
+ background: -webkit-linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* Chrome10+,Safari5.1+ */
110
+ background: -moz-linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* FF3.6+ */
111
+ background: -ms-linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* IE10+ */
112
+ background: -o-linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* Opera 11.10+ */
113
+ background: linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* W3C */
114
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#fafafa',GradientType=0 ); /* IE6-9 */
115
+ }
116
+
117
+
118
+
119
+ /*
120
+ * BUTTON_STYLES
121
+ * Action specific button styles
122
+ * If you want images - comment this back in
123
+
124
+ button.DTTT_button_csv,
125
+ button.DTTT_button_xls,
126
+ button.DTTT_button_copy,
127
+ button.DTTT_button_pdf,
128
+ button.DTTT_button_print {
129
+ padding-right: 0px;
130
+ }
131
+
132
+ button.DTTT_button_csv span,
133
+ button.DTTT_button_xls span,
134
+ button.DTTT_button_copy span,
135
+ button.DTTT_button_pdf span,
136
+ button.DTTT_button_print span {
137
+ display: inline-block;
138
+ height: 24px;
139
+ line-height: 24px;
140
+ padding-right: 30px;
141
+ }
142
+
143
+
144
+ button.DTTT_button_csv span { background: url(../images/csv.png) no-repeat bottom right; }
145
+ button.DTTT_button_csv:hover span { background: url(../images/csv_hover.png) no-repeat center right; }
146
+
147
+ button.DTTT_button_xls span { background: url(../images/xls.png) no-repeat center right; }
148
+ button.DTTT_button_xls:hover span { background: #f0f0f0 url(../images/xls_hover.png) no-repeat center right; }
149
+
150
+ button.DTTT_button_copy span { background: url(../images/copy.png) no-repeat center right; }
151
+ button.DTTT_button_copy:hover span { background: #f0f0f0 url(../images/copy_hover.png) no-repeat center right; }
152
+
153
+ button.DTTT_button_pdf span { background: url(../images/pdf.png) no-repeat center right; }
154
+ button.DTTT_button_pdf:hover span { background: #f0f0f0 url(../images/pdf_hover.png) no-repeat center right; }
155
+
156
+ button.DTTT_button_print span { background: url(../images/print.png) no-repeat center right; }
157
+ button.DTTT_button_print:hover span { background: #f0f0f0 url(../images/print_hover.png) no-repeat center right; }
158
+
159
+ */
160
+
161
+ button.DTTT_button_collection span {
162
+ padding-right: 17px;
163
+ background: url(../images/collection.png) no-repeat center right;
164
+ }
165
+
166
+ button.DTTT_button_collection:hover span {
167
+ padding-right: 17px;
168
+ background: #f0f0f0 url(../images/collection_hover.png) no-repeat center right;
169
+ }
170
+
171
+
172
+ /*
173
+ * SELECTING
174
+ * Row selection styles
175
+ */
176
+ table.DTTT_selectable tbody tr {
177
+ cursor: pointer;
178
+ *cursor: hand;
179
+ }
180
+
181
+ table.dataTable tr.DTTT_selected.odd {
182
+ background-color: #9FAFD1;
183
+ }
184
+
185
+ table.dataTable tr.DTTT_selected.odd td.sorting_1 {
186
+ background-color: #9FAFD1;
187
+ }
188
+
189
+ table.dataTable tr.DTTT_selected.odd td.sorting_2 {
190
+ background-color: #9FAFD1;
191
+ }
192
+
193
+ table.dataTable tr.DTTT_selected.odd td.sorting_3 {
194
+ background-color: #9FAFD1;
195
+ }
196
+
197
+
198
+ table.dataTable tr.DTTT_selected.even {
199
+ background-color: #B0BED9;
200
+ }
201
+
202
+ table.dataTable tr.DTTT_selected.even td.sorting_1 {
203
+ background-color: #B0BED9;
204
+ }
205
+
206
+ table.dataTable tr.DTTT_selected.even td.sorting_2 {
207
+ background-color: #B0BED9;
208
+ }
209
+
210
+ table.dataTable tr.DTTT_selected.even td.sorting_3 {
211
+ background-color: #B0BED9;
212
+ }
213
+
214
+
215
+ /*
216
+ * COLLECTIONS
217
+ * Drop down list (collection) styles
218
+ */
219
+
220
+ div.DTTT_collection {
221
+ width: 150px;
222
+ padding: 8px 8px 4px 8px;
223
+ border: 1px solid #ccc;
224
+ border: 1px solid rgba( 0, 0, 0, 0.4 );
225
+ background-color: #f3f3f3;
226
+ background-color: rgba( 255, 255, 255, 0.3 );
227
+ overflow: hidden;
228
+ z-index: 2002;
229
+
230
+ -webkit-border-radius: 5px;
231
+ -moz-border-radius: 5px;
232
+ -ms-border-radius: 5px;
233
+ -o-border-radius: 5px;
234
+ border-radius: 5px;
235
+
236
+ -webkit-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3);
237
+ -moz-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3);
238
+ -ms-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3);
239
+ -o-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3);
240
+ box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3);
241
+ }
242
+
243
+ div.DTTT_collection_background {
244
+ background: transparent url(../images/background.png) repeat top left;
245
+ z-index: 2001;
246
+ }
247
+
248
+ div.DTTT_collection button.DTTT_button,
249
+ div.DTTT_collection div.DTTT_button,
250
+ div.DTTT_collection a.DTTT_button {
251
+ position: relative;
252
+ left: 0;
253
+ right: 0;
254
+
255
+ display: block;
256
+ float: none;
257
+ margin-bottom: 4px;
258
+
259
+ -webkit-box-shadow: 1px 1px 3px #999;
260
+ -moz-box-shadow: 1px 1px 3px #999;
261
+ -ms-box-shadow: 1px 1px 3px #999;
262
+ -o-box-shadow: 1px 1px 3px #999;
263
+ box-shadow: 1px 1px 3px #999;
264
+ }
265
+
266
+
267
+ /*
268
+ * PRINTING
269
+ * Print display styles
270
+ */
271
+
272
+ .DTTT_print_info {
273
+ position: fixed;
274
+ top: 50%;
275
+ left: 50%;
276
+ width: 400px;
277
+ height: 150px;
278
+ margin-left: -200px;
279
+ margin-top: -75px;
280
+ text-align: center;
281
+ color: #333;
282
+ padding: 10px 30px;
283
+
284
+ background: #ffffff; /* Old browsers */
285
+ background: -webkit-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Chrome10+,Safari5.1+ */
286
+ background: -moz-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* FF3.6+ */
287
+ background: -ms-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* IE10+ */
288
+ background: -o-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Opera 11.10+ */
289
+ background: linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* W3C */
290
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f9f9f9',GradientType=0 ); /* IE6-9 */
291
+
292
+ opacity: 0.95;
293
+
294
+ border: 1px solid black;
295
+ border: 1px solid rgba(0, 0, 0, 0.5);
296
+
297
+ -webkit-border-radius: 6px;
298
+ -moz-border-radius: 6px;
299
+ -ms-border-radius: 6px;
300
+ -o-border-radius: 6px;
301
+ border-radius: 6px;
302
+
303
+ -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5);
304
+ -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5);
305
+ -ms-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5);
306
+ -o-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5);
307
+ box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5);
308
+ }
309
+
310
+ .DTTT_print_info h6 {
311
+ font-weight: normal;
312
+ font-size: 28px;
313
+ line-height: 28px;
314
+ margin: 1em;
315
+ }
316
+
317
+ .DTTT_print_info p {
318
+ font-size: 14px;
319
+ line-height: 20px;
320
+ }
321
+
assets/css/bootstrap.min.css ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap v3.0.3 (http://getbootstrap.com)
3
+ * Copyright 2013 Twitter, Inc.
4
+ * Licensed under http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+
7
+ /*! normalize.css v2.1.3 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden],template{display:none}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a{background:transparent}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{margin:.67em 0;font-size:2em}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{height:0;-moz-box-sizing:content-box;box-sizing:content-box}mark{color:#000;background:#ff0}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid #c0c0c0}legend{padding:0;border:0}button,input,select,textarea{margin:0;font-family:inherit;font-size:100%}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{padding:0;box-sizing:border-box}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:2cm .5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;height:auto;max-width:100%}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{margin-top:20px;margin-bottom:10px}h1 small,h2 small,h3 small,h1 .small,h2 .small,h3 .small{font-size:65%}h4,h5,h6{margin-top:10px;margin-bottom:10px}h4 small,h5 small,h6 small,h4 .small,h5 .small,h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media(min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}.text-muted{color:#999}.text-primary{color:#428bca}.text-primary:hover{color:#3071a9}.text-warning{color:#8a6d3b}.text-warning:hover{color:#66512c}.text-danger{color:#a94442}.text-danger:hover{color:#843534}.text-success{color:#3c763d}.text-success:hover{color:#2b542c}.text-info{color:#31708f}.text-info:hover{color:#245269}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}.list-inline>li:first-child{padding-left:0}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.428571429}dt{font-weight:bold}dd{margin-left:0}@media(min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small,blockquote .small{display:block;line-height:1.428571429;color:#999}blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small,blockquote.pull-right .small{text-align:right}blockquote.pull-right small:before,blockquote.pull-right .small:before{content:''}blockquote.pull-right small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.428571429}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;white-space:nowrap;background-color:#f9f2f4;border-radius:4px}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}@media(min-width:768px){.container{width:750px}}@media(min-width:992px){.container{width:970px}}@media(min-width:1200px){.container{width:1170px}}.row{margin-right:-15px;margin-left:-15px}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666666666666%}.col-xs-10{width:83.33333333333334%}.col-xs-9{width:75%}.col-xs-8{width:66.66666666666666%}.col-xs-7{width:58.333333333333336%}.col-xs-6{width:50%}.col-xs-5{width:41.66666666666667%}.col-xs-4{width:33.33333333333333%}.col-xs-3{width:25%}.col-xs-2{width:16.666666666666664%}.col-xs-1{width:8.333333333333332%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666666666666%}.col-xs-pull-10{right:83.33333333333334%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666666666666%}.col-xs-pull-7{right:58.333333333333336%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666666666667%}.col-xs-pull-4{right:33.33333333333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.666666666666664%}.col-xs-pull-1{right:8.333333333333332%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666666666666%}.col-xs-push-10{left:83.33333333333334%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666666666666%}.col-xs-push-7{left:58.333333333333336%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666666666667%}.col-xs-push-4{left:33.33333333333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.666666666666664%}.col-xs-push-1{left:8.333333333333332%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666666666666%}.col-xs-offset-10{margin-left:83.33333333333334%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666666666666%}.col-xs-offset-7{margin-left:58.333333333333336%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666666666667%}.col-xs-offset-4{margin-left:33.33333333333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.666666666666664%}.col-xs-offset-1{margin-left:8.333333333333332%}.col-xs-offset-0{margin-left:0}@media(min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666666666666%}.col-sm-10{width:83.33333333333334%}.col-sm-9{width:75%}.col-sm-8{width:66.66666666666666%}.col-sm-7{width:58.333333333333336%}.col-sm-6{width:50%}.col-sm-5{width:41.66666666666667%}.col-sm-4{width:33.33333333333333%}.col-sm-3{width:25%}.col-sm-2{width:16.666666666666664%}.col-sm-1{width:8.333333333333332%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666666666666%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666666666666%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-0{margin-left:0}}@media(min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666666666666%}.col-md-10{width:83.33333333333334%}.col-md-9{width:75%}.col-md-8{width:66.66666666666666%}.col-md-7{width:58.333333333333336%}.col-md-6{width:50%}.col-md-5{width:41.66666666666667%}.col-md-4{width:33.33333333333333%}.col-md-3{width:25%}.col-md-2{width:16.666666666666664%}.col-md-1{width:8.333333333333332%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666666666666%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666666666666%}.col-md-push-10{left:83.33333333333334%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666666666666%}.col-md-push-7{left:58.333333333333336%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666666666667%}.col-md-push-4{left:33.33333333333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.666666666666664%}.col-md-push-1{left:8.333333333333332%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666666666666%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-0{margin-left:0}}@media(min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666666666666%}.col-lg-10{width:83.33333333333334%}.col-lg-9{width:75%}.col-lg-8{width:66.66666666666666%}.col-lg-7{width:58.333333333333336%}.col-lg-6{width:50%}.col-lg-5{width:41.66666666666667%}.col-lg-4{width:33.33333333333333%}.col-lg-3{width:25%}.col-lg-2{width:16.666666666666664%}.col-lg-1{width:8.333333333333332%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666666666666%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666666666666%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*="col-"]{position:static;display:table-column;float:none}table td[class*="col-"],table th[class*="col-"]{display:table-cell;float:none}.table>thead>tr>.active,.table>tbody>tr>.active,.table>tfoot>tr>.active,.table>thead>.active>td,.table>tbody>.active>td,.table>tfoot>.active>td,.table>thead>.active>th,.table>tbody>.active>th,.table>tfoot>.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>.active:hover,.table-hover>tbody>.active:hover>td,.table-hover>tbody>.active:hover>th{background-color:#e8e8e8}.table>thead>tr>.success,.table>tbody>tr>.success,.table>tfoot>tr>.success,.table>thead>.success>td,.table>tbody>.success>td,.table>tfoot>.success>td,.table>thead>.success>th,.table>tbody>.success>th,.table>tfoot>.success>th{background-color:#dff0d8}.table-hover>tbody>tr>.success:hover,.table-hover>tbody>.success:hover>td,.table-hover>tbody>.success:hover>th{background-color:#d0e9c6}.table>thead>tr>.danger,.table>tbody>tr>.danger,.table>tfoot>tr>.danger,.table>thead>.danger>td,.table>tbody>.danger>td,.table>tfoot>.danger>td,.table>thead>.danger>th,.table>tbody>.danger>th,.table>tfoot>.danger>th{background-color:#f2dede}.table-hover>tbody>tr>.danger:hover,.table-hover>tbody>.danger:hover>td,.table-hover>tbody>.danger:hover>th{background-color:#ebcccc}.table>thead>tr>.warning,.table>tbody>tr>.warning,.table>tfoot>tr>.warning,.table>thead>.warning>td,.table>tbody>.warning>td,.table>tfoot>.warning>td,.table>thead>.warning>th,.table>tbody>.warning>th,.table>tfoot>.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>.warning:hover,.table-hover>tbody>.warning:hover>td,.table-hover>tbody>.warning:hover>th{background-color:#faf2cc}@media(max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-x:scroll;overflow-y:hidden;border:1px solid #ddd;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-family:inherit;font-size:inherit;font-style:inherit}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{height:auto}output{display:block;padding-top:7px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control:-moz-placeholder{color:#999}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}textarea.form-control{height:auto}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;padding-left:20px;margin-top:10px;margin-bottom:10px;vertical-align:middle}.radio label,.checkbox label{display:inline;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:normal;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm{height:auto}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg{height:auto}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media(min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline select.form-control{width:auto}.form-inline .radio,.form-inline .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:none;margin-left:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-control-static{padding-top:7px}@media(min-width:768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:normal;line-height:1.428571429;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#fff}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-link{font-weight:normal;color:#428bca;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:normal;line-height:1;-moz-osx-font-smoothing:grayscale}.glyphicon:empty{width:1em}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#428bca;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media(min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-bottom-left-radius:4px;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;border-collapse:separate;table-layout:fixed}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-right:0;padding-left:0}.input-group .form-control{width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;white-space:nowrap}.input-group-btn:first-child>.btn{margin-right:-1px}.input-group-btn:last-child>.btn{margin-left:-1px}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:hover,.input-group-btn>.btn:active{z-index:2}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media(min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media(min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media(min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media(min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}@media(min-width:768px){.navbar{border-radius:4px}}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}@media(min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;padding-right:15px;padding-left:15px;overflow-x:visible;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media(min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-right:0;padding-left:0}}.container>.navbar-header,.container>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media(min-width:768px){.container>.navbar-header,.container>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media(min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media(min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media(min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media(min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media(max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media(min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media(min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}@media(min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form select.form-control{width:auto}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{float:none;margin-left:0}}@media(max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media(min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media(min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}@media(max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#fff;background-color:#080808}@media(max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.428571429;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{background-color:#eee}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#428bca;border-color:#428bca}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{line-height:1;color:inherit}.jumbotron p{line-height:1.4}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{display:block;height:auto;max-width:100%;margin-right:auto;margin-left:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child th,.panel>.table>tbody:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:last-child>th,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:last-child>td,.panel>.table-responsive>.table-bordered>thead>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-group .panel{margin-bottom:0;overflow:hidden;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:auto;overflow-y:scroll}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{position:relative;z-index:1050;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{min-height:16.428571429px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:20px}.modal-footer{padding:19px 20px 20px;margin-top:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}}.tooltip{position:absolute;z-index:1030;display:block;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-bottom-color:#000;border-width:0 5px 5px}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0;content:" "}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0;content:" "}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0;content:" "}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0;content:" "}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;height:auto;max-width:100%;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6);opacity:.5;filter:alpha(opacity=50)}.carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.5) 0),color-stop(rgba(0,0,0,0.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,0.5) 0,rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000',endColorstr='#00000000',GradientType=1)}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.0001) 0),color-stop(rgba(0,0,0,0.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,0.0001) 0,rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000',endColorstr='#80000000',GradientType=1)}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;outline:0;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicons-chevron-left,.carousel-control .glyphicons-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after{display:table;content:" "}.clearfix:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,tr.visible-xs,th.visible-xs,td.visible-xs{display:none!important}@media(max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block!important}table.visible-xs.visible-sm{display:table}tr.visible-xs.visible-sm{display:table-row!important}th.visible-xs.visible-sm,td.visible-xs.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block!important}table.visible-xs.visible-md{display:table}tr.visible-xs.visible-md{display:table-row!important}th.visible-xs.visible-md,td.visible-xs.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-xs.visible-lg{display:block!important}table.visible-xs.visible-lg{display:table}tr.visible-xs.visible-lg{display:table-row!important}th.visible-xs.visible-lg,td.visible-xs.visible-lg{display:table-cell!important}}.visible-sm,tr.visible-sm,th.visible-sm,td.visible-sm{display:none!important}@media(max-width:767px){.visible-sm.visible-xs{display:block!important}table.visible-sm.visible-xs{display:table}tr.visible-sm.visible-xs{display:table-row!important}th.visible-sm.visible-xs,td.visible-sm.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block!important}table.visible-sm.visible-md{display:table}tr.visible-sm.visible-md{display:table-row!important}th.visible-sm.visible-md,td.visible-sm.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-sm.visible-lg{display:block!important}table.visible-sm.visible-lg{display:table}tr.visible-sm.visible-lg{display:table-row!important}th.visible-sm.visible-lg,td.visible-sm.visible-lg{display:table-cell!important}}.visible-md,tr.visible-md,th.visible-md,td.visible-md{display:none!important}@media(max-width:767px){.visible-md.visible-xs{display:block!important}table.visible-md.visible-xs{display:table}tr.visible-md.visible-xs{display:table-row!important}th.visible-md.visible-xs,td.visible-md.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block!important}table.visible-md.visible-sm{display:table}tr.visible-md.visible-sm{display:table-row!important}th.visible-md.visible-sm,td.visible-md.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-md.visible-lg{display:block!important}table.visible-md.visible-lg{display:table}tr.visible-md.visible-lg{display:table-row!important}th.visible-md.visible-lg,td.visible-md.visible-lg{display:table-cell!important}}.visible-lg,tr.visible-lg,th.visible-lg,td.visible-lg{display:none!important}@media(max-width:767px){.visible-lg.visible-xs{display:block!important}table.visible-lg.visible-xs{display:table}tr.visible-lg.visible-xs{display:table-row!important}th.visible-lg.visible-xs,td.visible-lg.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block!important}table.visible-lg.visible-sm{display:table}tr.visible-lg.visible-sm{display:table-row!important}th.visible-lg.visible-sm,td.visible-lg.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block!important}table.visible-lg.visible-md{display:table}tr.visible-lg.visible-md{display:table-row!important}th.visible-lg.visible-md,td.visible-lg.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}.hidden-xs{display:block!important}table.hidden-xs{display:table}tr.hidden-xs{display:table-row!important}th.hidden-xs,td.hidden-xs{display:table-cell!important}@media(max-width:767px){.hidden-xs,tr.hidden-xs,th.hidden-xs,td.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm,tr.hidden-xs.hidden-sm,th.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md,tr.hidden-xs.hidden-md,th.hidden-xs.hidden-md,td.hidden-xs.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-xs.hidden-lg,tr.hidden-xs.hidden-lg,th.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg{display:none!important}}.hidden-sm{display:block!important}table.hidden-sm{display:table}tr.hidden-sm{display:table-row!important}th.hidden-sm,td.hidden-sm{display:table-cell!important}@media(max-width:767px){.hidden-sm.hidden-xs,tr.hidden-sm.hidden-xs,th.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-sm,tr.hidden-sm,th.hidden-sm,td.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md,tr.hidden-sm.hidden-md,th.hidden-sm.hidden-md,td.hidden-sm.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-sm.hidden-lg,tr.hidden-sm.hidden-lg,th.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg{display:none!important}}.hidden-md{display:block!important}table.hidden-md{display:table}tr.hidden-md{display:table-row!important}th.hidden-md,td.hidden-md{display:table-cell!important}@media(max-width:767px){.hidden-md.hidden-xs,tr.hidden-md.hidden-xs,th.hidden-md.hidden-xs,td.hidden-md.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-md.hidden-sm,tr.hidden-md.hidden-sm,th.hidden-md.hidden-sm,td.hidden-md.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-md,tr.hidden-md,th.hidden-md,td.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-md.hidden-lg,tr.hidden-md.hidden-lg,th.hidden-md.hidden-lg,td.hidden-md.hidden-lg{display:none!important}}.hidden-lg{display:block!important}table.hidden-lg{display:table}tr.hidden-lg{display:table-row!important}th.hidden-lg,td.hidden-lg{display:table-cell!important}@media(max-width:767px){.hidden-lg.hidden-xs,tr.hidden-lg.hidden-xs,th.hidden-lg.hidden-xs,td.hidden-lg.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-lg.hidden-sm,tr.hidden-lg.hidden-sm,th.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-lg.hidden-md,tr.hidden-lg.hidden-md,th.hidden-lg.hidden-md,td.hidden-lg.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-lg,tr.hidden-lg,th.hidden-lg,td.hidden-lg{display:none!important}}.visible-print,tr.visible-print,th.visible-print,td.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}.hidden-print,tr.hidden-print,th.hidden-print,td.hidden-print{display:none!important}}
assets/css/dataTables.bootstrap.css ADDED
@@ -0,0 +1,223 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ div.dataTables_length label {
2
+ font-weight: normal;
3
+ float: left;
4
+ text-align: left;
5
+ }
6
+
7
+ div.dataTables_length select {
8
+ width: 75px;
9
+ }
10
+
11
+ div.dataTables_filter label {
12
+ font-weight: normal;
13
+ float: right;
14
+ }
15
+
16
+ div.dataTables_filter input {
17
+ width: 16em;
18
+ }
19
+
20
+ div.dataTables_info {
21
+ padding-top: 8px;
22
+ }
23
+
24
+ div.dataTables_paginate {
25
+ float: right;
26
+ margin: 0;
27
+ }
28
+
29
+ div.dataTables_paginate ul.pagination {
30
+ margin: 2px 0;
31
+ white-space: nowrap;
32
+ }
33
+
34
+ table.dataTable,
35
+ table.dataTable td,
36
+ table.dataTable th {
37
+ -webkit-box-sizing: content-box;
38
+ -moz-box-sizing: content-box;
39
+ box-sizing: content-box;
40
+ }
41
+
42
+
43
+ table.dataTable {
44
+ clear: both;
45
+ margin-top: 6px !important;
46
+ margin-bottom: 6px !important;
47
+ max-width: none !important;
48
+ }
49
+
50
+ table.dataTable thead .sorting,
51
+ table.dataTable thead .sorting_asc,
52
+ table.dataTable thead .sorting_desc,
53
+ table.dataTable thead .sorting_asc_disabled,
54
+ table.dataTable thead .sorting_desc_disabled {
55
+ cursor: pointer;
56
+ }
57
+
58
+ table.dataTable thead .sorting { background: url('../images/sort_both.png') no-repeat center right; }
59
+ table.dataTable thead .sorting_asc { background: url('../images/sort_asc.png') no-repeat center right; }
60
+ table.dataTable thead .sorting_desc { background: url('../images/sort_desc.png') no-repeat center right; }
61
+
62
+ table.dataTable thead .sorting_asc_disabled { background: url('../images/sort_asc_disabled.png') no-repeat center right; }
63
+ table.dataTable thead .sorting_desc_disabled { background: url('../images/sort_desc_disabled.png') no-repeat center right; }
64
+
65
+ table.dataTable th:active {
66
+ outline: none;
67
+ }
68
+
69
+ /* Scrolling */
70
+ div.dataTables_scrollHead table {
71
+ margin-bottom: 0 !important;
72
+ border-bottom-left-radius: 0;
73
+ border-bottom-right-radius: 0;
74
+ }
75
+
76
+ div.dataTables_scrollHead table thead tr:last-child th:first-child,
77
+ div.dataTables_scrollHead table thead tr:last-child td:first-child {
78
+ border-bottom-left-radius: 0 !important;
79
+ border-bottom-right-radius: 0 !important;
80
+ }
81
+
82
+ div.dataTables_scrollBody table {
83
+ border-top: none;
84
+ margin-top: 0 !important;
85
+ margin-bottom: 0 !important;
86
+ }
87
+
88
+ div.dataTables_scrollBody tbody tr:first-child th,
89
+ div.dataTables_scrollBody tbody tr:first-child td {
90
+ border-top: none;
91
+ }
92
+
93
+ div.dataTables_scrollFoot table {
94
+ margin-top: 0 !important;
95
+ border-top: none;
96
+ }
97
+
98
+
99
+
100
+
101
+ /*
102
+ * TableTools styles
103
+ */
104
+ .table tbody tr.active td,
105
+ .table tbody tr.active th {
106
+ background-color: #08C;
107
+ color: white;
108
+ }
109
+
110
+ .table tbody tr.active:hover td,
111
+ .table tbody tr.active:hover th {
112
+ background-color: #0075b0 !important;
113
+ }
114
+
115
+ .table tbody tr.active a {
116
+ color: white;
117
+ }
118
+
119
+ .table-striped tbody tr.active:nth-child(odd) td,
120
+ .table-striped tbody tr.active:nth-child(odd) th {
121
+ background-color: #017ebc;
122
+ }
123
+
124
+ table.DTTT_selectable tbody tr {
125
+ cursor: pointer;
126
+ }
127
+
128
+ div.DTTT .btn {
129
+ color: #333 !important;
130
+ font-size: 12px;
131
+ }
132
+
133
+ div.DTTT .btn:hover {
134
+ text-decoration: none !important;
135
+ }
136
+
137
+ ul.DTTT_dropdown.dropdown-menu {
138
+ z-index: 2003;
139
+ }
140
+
141
+ ul.DTTT_dropdown.dropdown-menu a {
142
+ color: #333 !important; /* needed only when demo_page.css is included */
143
+ }
144
+
145
+ ul.DTTT_dropdown.dropdown-menu li {
146
+ position: relative;
147
+ }
148
+
149
+ ul.DTTT_dropdown.dropdown-menu li:hover a {
150
+ background-color: #0088cc;
151
+ color: white !important;
152
+ }
153
+
154
+ div.DTTT_collection_background {
155
+ z-index: 2002;
156
+ }
157
+
158
+ /* TableTools information display */
159
+ div.DTTT_print_info.modal {
160
+ height: 150px;
161
+ margin-top: -75px;
162
+ text-align: center;
163
+ }
164
+
165
+ div.DTTT_print_info h6 {
166
+ font-weight: normal;
167
+ font-size: 28px;
168
+ line-height: 28px;
169
+ margin: 1em;
170
+ }
171
+
172
+ div.DTTT_print_info p {
173
+ font-size: 14px;
174
+ line-height: 20px;
175
+ }
176
+
177
+
178
+
179
+ /*
180
+ * FixedColumns styles
181
+ */
182
+ div.DTFC_LeftHeadWrapper table,
183
+ div.DTFC_LeftFootWrapper table,
184
+ div.DTFC_RightHeadWrapper table,
185
+ div.DTFC_RightFootWrapper table,
186
+ table.DTFC_Cloned tr.even {
187
+ background-color: white;
188
+ }
189
+
190
+ div.DTFC_RightHeadWrapper table ,
191
+ div.DTFC_LeftHeadWrapper table {
192
+ margin-bottom: 0 !important;
193
+ border-top-right-radius: 0 !important;
194
+ border-bottom-left-radius: 0 !important;
195
+ border-bottom-right-radius: 0 !important;
196
+ }
197
+
198
+ div.DTFC_RightHeadWrapper table thead tr:last-child th:first-child,
199
+ div.DTFC_RightHeadWrapper table thead tr:last-child td:first-child,
200
+ div.DTFC_LeftHeadWrapper table thead tr:last-child th:first-child,
201
+ div.DTFC_LeftHeadWrapper table thead tr:last-child td:first-child {
202
+ border-bottom-left-radius: 0 !important;
203
+ border-bottom-right-radius: 0 !important;
204
+ }
205
+
206
+ div.DTFC_RightBodyWrapper table,
207
+ div.DTFC_LeftBodyWrapper table {
208
+ border-top: none;
209
+ margin-bottom: 0 !important;
210
+ }
211
+
212
+ div.DTFC_RightBodyWrapper tbody tr:first-child th,
213
+ div.DTFC_RightBodyWrapper tbody tr:first-child td,
214
+ div.DTFC_LeftBodyWrapper tbody tr:first-child th,
215
+ div.DTFC_LeftBodyWrapper tbody tr:first-child td {
216
+ border-top: none;
217
+ }
218
+
219
+ div.DTFC_RightFootWrapper table,
220
+ div.DTFC_LeftFootWrapper table {
221
+ border-top: none;
222
+ }
223
+
assets/css/image-picker.css ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ul.thumbnails.image_picker_selector {
2
+ overflow: auto;
3
+ list-style-image: none;
4
+ list-style-position: outside;
5
+ list-style-type: none;
6
+ padding: 0px;
7
+ margin: 0px; }
8
+ ul.thumbnails.image_picker_selector ul {
9
+ overflow: auto;
10
+ list-style-image: none;
11
+ list-style-position: outside;
12
+ list-style-type: none;
13
+ padding: 0px;
14
+ margin: 0px; }
15
+ ul.thumbnails.image_picker_selector li.group_title {
16
+ float: none; }
17
+ ul.thumbnails.image_picker_selector li {
18
+ margin: 0px 12px 12px 0px;
19
+ float: left; }
20
+ ul.thumbnails.image_picker_selector li .thumbnail {
21
+ padding: 6px;
22
+ border: 1px solid #dddddd;
23
+ -webkit-user-select: none;
24
+ -moz-user-select: none;
25
+ -ms-user-select: none; }
26
+ ul.thumbnails.image_picker_selector li .thumbnail img {
27
+ -webkit-user-drag: none; }
28
+ ul.thumbnails.image_picker_selector li .thumbnail.selected {
29
+ background: #0088cc; }
assets/css/jquery-ui.css ADDED
@@ -0,0 +1,1177 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*! jQuery UI - v1.10.3 - 2013-05-03
2
+ * http://jqueryui.com
3
+ * Includes: jquery.ui.core.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css
4
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
5
+ * Copyright 2013 jQuery Foundation and other contributors Licensed MIT */
6
+
7
+ /* Layout helpers
8
+ ----------------------------------*/
9
+ .ui-helper-hidden {
10
+ display: none;
11
+ }
12
+ .ui-helper-hidden-accessible {
13
+ border: 0;
14
+ clip: rect(0 0 0 0);
15
+ height: 1px;
16
+ margin: -1px;
17
+ overflow: hidden;
18
+ padding: 0;
19
+ position: absolute;
20
+ width: 1px;
21
+ }
22
+ .ui-helper-reset {
23
+ margin: 0;
24
+ padding: 0;
25
+ border: 0;
26
+ outline: 0;
27
+ line-height: 1.3;
28
+ text-decoration: none;
29
+ font-size: 100%;
30
+ list-style: none;
31
+ }
32
+ .ui-helper-clearfix:before,
33
+ .ui-helper-clearfix:after {
34
+ content: "";
35
+ display: table;
36
+ border-collapse: collapse;
37
+ }
38
+ .ui-helper-clearfix:after {
39
+ clear: both;
40
+ }
41
+ .ui-helper-clearfix {
42
+ min-height: 0; /* support: IE7 */
43
+ }
44
+ .ui-helper-zfix {
45
+ width: 100%;
46
+ height: 100%;
47
+ top: 0;
48
+ left: 0;
49
+ position: absolute;
50
+ opacity: 0;
51
+ filter:Alpha(Opacity=0);
52
+ }
53
+
54
+ .ui-front {
55
+ z-index: 100;
56
+ }
57
+
58
+
59
+ /* Interaction Cues
60
+ ----------------------------------*/
61
+ .ui-state-disabled {
62
+ cursor: default !important;
63
+ }
64
+
65
+
66
+ /* Icons
67
+ ----------------------------------*/
68
+
69
+ /* states and images */
70
+ .ui-icon {
71
+ display: block;
72
+ text-indent: -99999px;
73
+ overflow: hidden;
74
+ background-repeat: no-repeat;
75
+ }
76
+
77
+
78
+ /* Misc visuals
79
+ ----------------------------------*/
80
+
81
+ /* Overlays */
82
+ .ui-widget-overlay {
83
+ position: fixed;
84
+ top: 0;
85
+ left: 0;
86
+ width: 100%;
87
+ height: 100%;
88
+ }
89
+ .ui-accordion .ui-accordion-header {
90
+ display: block;
91
+ cursor: pointer;
92
+ position: relative;
93
+ margin-top: 2px;
94
+ padding: .5em .5em .5em .7em;
95
+ min-height: 0; /* support: IE7 */
96
+ }
97
+ .ui-accordion .ui-accordion-icons {
98
+ padding-left: 2.2em;
99
+ }
100
+ .ui-accordion .ui-accordion-noicons {
101
+ padding-left: .7em;
102
+ }
103
+ .ui-accordion .ui-accordion-icons .ui-accordion-icons {
104
+ padding-left: 2.2em;
105
+ }
106
+ .ui-accordion .ui-accordion-header .ui-accordion-header-icon {
107
+ position: absolute;
108
+ left: .5em;
109
+ top: 50%;
110
+ margin-top: -8px;
111
+ }
112
+ .ui-accordion .ui-accordion-content {
113
+ padding: 1em 2.2em;
114
+ border-top: 0;
115
+ overflow: auto;
116
+ }
117
+ .ui-autocomplete {
118
+ position: absolute;
119
+ top: 0;
120
+ left: 0;
121
+ cursor: default;
122
+ }
123
+ .ui-button {
124
+ display: inline-block;
125
+ position: relative;
126
+ padding: 0;
127
+ line-height: normal;
128
+ margin-right: .1em;
129
+ cursor: pointer;
130
+ vertical-align: middle;
131
+ text-align: center;
132
+ overflow: visible; /* removes extra width in IE */
133
+ }
134
+ .ui-button,
135
+ .ui-button:link,
136
+ .ui-button:visited,
137
+ .ui-button:hover,
138
+ .ui-button:active {
139
+ text-decoration: none;
140
+ }
141
+ /* to make room for the icon, a width needs to be set here */
142
+ .ui-button-icon-only {
143
+ width: 2.2em;
144
+ }
145
+ /* button elements seem to need a little more width */
146
+ button.ui-button-icon-only {
147
+ width: 2.4em;
148
+ }
149
+ .ui-button-icons-only {
150
+ width: 3.4em;
151
+ }
152
+ button.ui-button-icons-only {
153
+ width: 3.7em;
154
+ }
155
+
156
+ /* button text element */
157
+ .ui-button .ui-button-text {
158
+ display: block;
159
+ line-height: normal;
160
+ }
161
+ .ui-button-text-only .ui-button-text {
162
+ padding: .4em 1em;
163
+ }
164
+ .ui-button-icon-only .ui-button-text,
165
+ .ui-button-icons-only .ui-button-text {
166
+ padding: .4em;
167
+ text-indent: -9999999px;
168
+ }
169
+ .ui-button-text-icon-primary .ui-button-text,
170
+ .ui-button-text-icons .ui-button-text {
171
+ padding: .4em 1em .4em 2.1em;
172
+ }
173
+ .ui-button-text-icon-secondary .ui-button-text,
174
+ .ui-button-text-icons .ui-button-text {
175
+ padding: .4em 2.1em .4em 1em;
176
+ }
177
+ .ui-button-text-icons .ui-button-text {
178
+ padding-left: 2.1em;
179
+ padding-right: 2.1em;
180
+ }
181
+ /* no icon support for input elements, provide padding by default */
182
+ input.ui-button {
183
+ padding: .4em 1em;
184
+ }
185
+
186
+ /* button icon element(s) */
187
+ .ui-button-icon-only .ui-icon,
188
+ .ui-button-text-icon-primary .ui-icon,
189
+ .ui-button-text-icon-secondary .ui-icon,
190
+ .ui-button-text-icons .ui-icon,
191
+ .ui-button-icons-only .ui-icon {
192
+ position: absolute;
193
+ top: 50%;
194
+ margin-top: -8px;
195
+ }
196
+ .ui-button-icon-only .ui-icon {
197
+ left: 50%;
198
+ margin-left: -8px;
199
+ }
200
+ .ui-button-text-icon-primary .ui-button-icon-primary,
201
+ .ui-button-text-icons .ui-button-icon-primary,
202
+ .ui-button-icons-only .ui-button-icon-primary {
203
+ left: .5em;
204
+ }
205
+ .ui-button-text-icon-secondary .ui-button-icon-secondary,
206
+ .ui-button-text-icons .ui-button-icon-secondary,
207
+ .ui-button-icons-only .ui-button-icon-secondary {
208
+ right: .5em;
209
+ }
210
+
211
+ /* button sets */
212
+ .ui-buttonset {
213
+ margin-right: 7px;
214
+ }
215
+ .ui-buttonset .ui-button {
216
+ margin-left: 0;
217
+ margin-right: -.3em;
218
+ }
219
+
220
+ /* workarounds */
221
+ /* reset extra padding in Firefox, see h5bp.com/l */
222
+ input.ui-button::-moz-focus-inner,
223
+ button.ui-button::-moz-focus-inner {
224
+ border: 0;
225
+ padding: 0;
226
+ }
227
+ .ui-datepicker {
228
+ width: 17em;
229
+ padding: .2em .2em 0;
230
+ display: none;
231
+ }
232
+ .ui-datepicker .ui-datepicker-header {
233
+ position: relative;
234
+ padding: .2em 0;
235
+ }
236
+ .ui-datepicker .ui-datepicker-prev,
237
+ .ui-datepicker .ui-datepicker-next {
238
+ position: absolute;
239
+ top: 2px;
240
+ width: 1.8em;
241
+ height: 1.8em;
242
+ }
243
+ .ui-datepicker .ui-datepicker-prev-hover,
244
+ .ui-datepicker .ui-datepicker-next-hover {
245
+ top: 1px;
246
+ }
247
+ .ui-datepicker .ui-datepicker-prev {
248
+ left: 2px;
249
+ }
250
+ .ui-datepicker .ui-datepicker-next {
251
+ right: 2px;
252
+ }
253
+ .ui-datepicker .ui-datepicker-prev-hover {
254
+ left: 1px;
255
+ }
256
+ .ui-datepicker .ui-datepicker-next-hover {
257
+ right: 1px;
258
+ }
259
+ .ui-datepicker .ui-datepicker-prev span,
260
+ .ui-datepicker .ui-datepicker-next span {
261
+ display: block;
262
+ position: absolute;
263
+ left: 50%;
264
+ margin-left: -8px;
265
+ top: 50%;
266
+ margin-top: -8px;
267
+ }
268
+ .ui-datepicker .ui-datepicker-title {
269
+ margin: 0 2.3em;
270
+ line-height: 1.8em;
271
+ text-align: center;
272
+ }
273
+ .ui-datepicker .ui-datepicker-title select {
274
+ font-size: 1em;
275
+ margin: 1px 0;
276
+ }
277
+ .ui-datepicker select.ui-datepicker-month-year {
278
+ width: 100%;
279
+ }
280
+ .ui-datepicker select.ui-datepicker-month,
281
+ .ui-datepicker select.ui-datepicker-year {
282
+ width: 49%;
283
+ }
284
+ .ui-datepicker table {
285
+ width: 100%;
286
+ font-size: .9em;
287
+ border-collapse: collapse;
288
+ margin: 0 0 .4em;
289
+ }
290
+ .ui-datepicker th {
291
+ padding: .7em .3em;
292
+ text-align: center;
293
+ font-weight: bold;
294
+ border: 0;
295
+ }
296
+ .ui-datepicker td {
297
+ border: 0;
298
+ padding: 1px;
299
+ }
300
+ .ui-datepicker td span,
301
+ .ui-datepicker td a {
302
+ display: block;
303
+ padding: .2em;
304
+ text-align: right;
305
+ text-decoration: none;
306
+ }
307
+ .ui-datepicker .ui-datepicker-buttonpane {
308
+ background-image: none;
309
+ margin: .7em 0 0 0;
310
+ padding: 0 .2em;
311
+ border-left: 0;
312
+ border-right: 0;
313
+ border-bottom: 0;
314
+ }
315
+ .ui-datepicker .ui-datepicker-buttonpane button {
316
+ float: right;
317
+ margin: .5em .2em .4em;
318
+ cursor: pointer;
319
+ padding: .2em .6em .3em .6em;
320
+ width: auto;
321
+ overflow: visible;
322
+ }
323
+ .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
324
+ float: left;
325
+ }
326
+
327
+ /* with multiple calendars */
328
+ .ui-datepicker.ui-datepicker-multi {
329
+ width: auto;
330
+ }
331
+ .ui-datepicker-multi .ui-datepicker-group {
332
+ float: left;
333
+ }
334
+ .ui-datepicker-multi .ui-datepicker-group table {
335
+ width: 95%;
336
+ margin: 0 auto .4em;
337
+ }
338
+ .ui-datepicker-multi-2 .ui-datepicker-group {
339
+ width: 50%;
340
+ }
341
+ .ui-datepicker-multi-3 .ui-datepicker-group {
342
+ width: 33.3%;
343
+ }
344
+ .ui-datepicker-multi-4 .ui-datepicker-group {
345
+ width: 25%;
346
+ }
347
+ .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
348
+ .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
349
+ border-left-width: 0;
350
+ }
351
+ .ui-datepicker-multi .ui-datepicker-buttonpane {
352
+ clear: left;
353
+ }
354
+ .ui-datepicker-row-break {
355
+ clear: both;
356
+ width: 100%;
357
+ font-size: 0;
358
+ }
359
+
360
+ /* RTL support */
361
+ .ui-datepicker-rtl {
362
+ direction: rtl;
363
+ }
364
+ .ui-datepicker-rtl .ui-datepicker-prev {
365
+ right: 2px;
366
+ left: auto;
367
+ }
368
+ .ui-datepicker-rtl .ui-datepicker-next {
369
+ left: 2px;
370
+ right: auto;
371
+ }
372
+ .ui-datepicker-rtl .ui-datepicker-prev:hover {
373
+ right: 1px;
374
+ left: auto;
375
+ }
376
+ .ui-datepicker-rtl .ui-datepicker-next:hover {
377
+ left: 1px;
378
+ right: auto;
379
+ }
380
+ .ui-datepicker-rtl .ui-datepicker-buttonpane {
381
+ clear: right;
382
+ }
383
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button {
384
+ float: left;
385
+ }
386
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
387
+ .ui-datepicker-rtl .ui-datepicker-group {
388
+ float: right;
389
+ }
390
+ .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
391
+ .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
392
+ border-right-width: 0;
393
+ border-left-width: 1px;
394
+ }
395
+ .ui-dialog {
396
+ position: absolute;
397
+ top: 0;
398
+ left: 0;
399
+ padding: .2em;
400
+ outline: 0;
401
+ }
402
+ .ui-dialog .ui-dialog-titlebar {
403
+ padding: .4em 1em;
404
+ position: relative;
405
+ }
406
+ .ui-dialog .ui-dialog-title {
407
+ float: left;
408
+ margin: .1em 0;
409
+ white-space: nowrap;
410
+ width: 90%;
411
+ overflow: hidden;
412
+ text-overflow: ellipsis;
413
+ }
414
+ .ui-dialog .ui-dialog-titlebar-close {
415
+ position: absolute;
416
+ right: .3em;
417
+ top: 50%;
418
+ width: 21px;
419
+ margin: -10px 0 0 0;
420
+ padding: 1px;
421
+ height: 20px;
422
+ }
423
+ .ui-dialog .ui-dialog-content {
424
+ position: relative;
425
+ border: 0;
426
+ padding: .5em 1em;
427
+ background: none;
428
+ overflow: auto;
429
+ }
430
+ .ui-dialog .ui-dialog-buttonpane {
431
+ text-align: left;
432
+ border-width: 1px 0 0 0;
433
+ background-image: none;
434
+ margin-top: .5em;
435
+ padding: .3em 1em .5em .4em;
436
+ }
437
+ .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
438
+ float: right;
439
+ }
440
+ .ui-dialog .ui-dialog-buttonpane button {
441
+ margin: .5em .4em .5em 0;
442
+ cursor: pointer;
443
+ }
444
+ .ui-dialog .ui-resizable-se {
445
+ width: 12px;
446
+ height: 12px;
447
+ right: -5px;
448
+ bottom: -5px;
449
+ background-position: 16px 16px;
450
+ }
451
+ .ui-draggable .ui-dialog-titlebar {
452
+ cursor: move;
453
+ }
454
+ .ui-menu {
455
+ list-style: none;
456
+ padding: 2px;
457
+ margin: 0;
458
+ display: block;
459
+ outline: none;
460
+ }
461
+ .ui-menu .ui-menu {
462
+ margin-top: -3px;
463
+ position: absolute;
464
+ }
465
+ .ui-menu .ui-menu-item {
466
+ margin: 0;
467
+ padding: 0;
468
+ width: 100%;
469
+ /* support: IE10, see #8844 */
470
+ list-style-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
471
+ }
472
+ .ui-menu .ui-menu-divider {
473
+ margin: 5px -2px 5px -2px;
474
+ height: 0;
475
+ font-size: 0;
476
+ line-height: 0;
477
+ border-width: 1px 0 0 0;
478
+ }
479
+ .ui-menu .ui-menu-item a {
480
+ text-decoration: none;
481
+ display: block;
482
+ padding: 2px .4em;
483
+ line-height: 1.5;
484
+ min-height: 0; /* support: IE7 */
485
+ font-weight: normal;
486
+ }
487
+ .ui-menu .ui-menu-item a.ui-state-focus,
488
+ .ui-menu .ui-menu-item a.ui-state-active {
489
+ font-weight: normal;
490
+ margin: -1px;
491
+ }
492
+
493
+ .ui-menu .ui-state-disabled {
494
+ font-weight: normal;
495
+ margin: .4em 0 .2em;
496
+ line-height: 1.5;
497
+ }
498
+ .ui-menu .ui-state-disabled a {
499
+ cursor: default;
500
+ }
501
+
502
+ /* icon support */
503
+ .ui-menu-icons {
504
+ position: relative;
505
+ }
506
+ .ui-menu-icons .ui-menu-item a {
507
+ position: relative;
508
+ padding-left: 2em;
509
+ }
510
+
511
+ /* left-aligned */
512
+ .ui-menu .ui-icon {
513
+ position: absolute;
514
+ top: .2em;
515
+ left: .2em;
516
+ }
517
+
518
+ /* right-aligned */
519
+ .ui-menu .ui-menu-icon {
520
+ position: static;
521
+ float: right;
522
+ }
523
+ .ui-progressbar {
524
+ height: 2em;
525
+ text-align: left;
526
+ overflow: hidden;
527
+ }
528
+ .ui-progressbar .ui-progressbar-value {
529
+ margin: -1px;
530
+ height: 100%;
531
+ }
532
+ .ui-progressbar .ui-progressbar-overlay {
533
+ background: url("images/animated-overlay.gif");
534
+ height: 100%;
535
+ filter: alpha(opacity=25);
536
+ opacity: 0.25;
537
+ }
538
+ .ui-progressbar-indeterminate .ui-progressbar-value {
539
+ background-image: none;
540
+ }
541
+ .ui-resizable {
542
+ position: relative;
543
+ }
544
+ .ui-resizable-handle {
545
+ position: absolute;
546
+ font-size: 0.1px;
547
+ display: block;
548
+ }
549
+ .ui-resizable-disabled .ui-resizable-handle,
550
+ .ui-resizable-autohide .ui-resizable-handle {
551
+ display: none;
552
+ }
553
+ .ui-resizable-n {
554
+ cursor: n-resize;
555
+ height: 7px;
556
+ width: 100%;
557
+ top: -5px;
558
+ left: 0;
559
+ }
560
+ .ui-resizable-s {
561
+ cursor: s-resize;
562
+ height: 7px;
563
+ width: 100%;
564
+ bottom: -5px;
565
+ left: 0;
566
+ }
567
+ .ui-resizable-e {
568
+ cursor: e-resize;
569
+ width: 7px;
570
+ right: -5px;
571
+ top: 0;
572
+ height: 100%;
573
+ }
574
+ .ui-resizable-w {
575
+ cursor: w-resize;
576
+ width: 7px;
577
+ left: -5px;
578
+ top: 0;
579
+ height: 100%;
580
+ }
581
+ .ui-resizable-se {
582
+ cursor: se-resize;
583
+ width: 12px;
584
+ height: 12px;
585
+ right: 1px;
586
+ bottom: 1px;
587
+ }
588
+ .ui-resizable-sw {
589
+ cursor: sw-resize;
590
+ width: 9px;
591
+ height: 9px;
592
+ left: -5px;
593
+ bottom: -5px;
594
+ }
595
+ .ui-resizable-nw {
596
+ cursor: nw-resize;
597
+ width: 9px;
598
+ height: 9px;
599
+ left: -5px;
600
+ top: -5px;
601
+ }
602
+ .ui-resizable-ne {
603
+ cursor: ne-resize;
604
+ width: 9px;
605
+ height: 9px;
606
+ right: -5px;
607
+ top: -5px;
608
+ }
609
+ .ui-selectable-helper {
610
+ position: absolute;
611
+ z-index: 100;
612
+ border: 1px dotted black;
613
+ }
614
+ .ui-slider {
615
+ position: relative;
616
+ text-align: left;
617
+ }
618
+ .ui-slider .ui-slider-handle {
619
+ position: absolute;
620
+ z-index: 2;
621
+ width: 1.2em;
622
+ height: 1.2em;
623
+ cursor: default;
624
+ }
625
+ .ui-slider .ui-slider-range {
626
+ position: absolute;
627
+ z-index: 1;
628
+ font-size: .7em;
629
+ display: block;
630
+ border: 0;
631
+ background-position: 0 0;
632
+ }
633
+
634
+ /* For IE8 - See #6727 */
635
+ .ui-slider.ui-state-disabled .ui-slider-handle,
636
+ .ui-slider.ui-state-disabled .ui-slider-range {
637
+ filter: inherit;
638
+ }
639
+
640
+ .ui-slider-horizontal {
641
+ height: .8em;
642
+ }
643
+ .ui-slider-horizontal .ui-slider-handle {
644
+ top: -.3em;
645
+ margin-left: -.6em;
646
+ }
647
+ .ui-slider-horizontal .ui-slider-range {
648
+ top: 0;
649
+ height: 100%;
650
+ }
651
+ .ui-slider-horizontal .ui-slider-range-min {
652
+ left: 0;
653
+ }
654
+ .ui-slider-horizontal .ui-slider-range-max {
655
+ right: 0;
656
+ }
657
+
658
+ .ui-slider-vertical {
659
+ width: .8em;
660
+ height: 100px;
661
+ }
662
+ .ui-slider-vertical .ui-slider-handle {
663
+ left: -.3em;
664
+ margin-left: 0;
665
+ margin-bottom: -.6em;
666
+ }
667
+ .ui-slider-vertical .ui-slider-range {
668
+ left: 0;
669
+ width: 100%;
670
+ }
671
+ .ui-slider-vertical .ui-slider-range-min {
672
+ bottom: 0;
673
+ }
674
+ .ui-slider-vertical .ui-slider-range-max {
675
+ top: 0;
676
+ }
677
+ .ui-spinner {
678
+ position: relative;
679
+ display: inline-block;
680
+ overflow: hidden;
681
+ padding: 0;
682
+ vertical-align: middle;
683
+ }
684
+ .ui-spinner-input {
685
+ border: none;
686
+ background: none;
687
+ color: inherit;
688
+ padding: 0;
689
+ margin: .2em 0;
690
+ vertical-align: middle;
691
+ margin-left: .4em;
692
+ margin-right: 22px;
693
+ }
694
+ .ui-spinner-button {
695
+ width: 16px;
696
+ height: 50%;
697
+ font-size: .5em;
698
+ padding: 0;
699
+ margin: 0;
700
+ text-align: center;
701
+ position: absolute;
702
+ cursor: default;
703
+ display: block;
704
+ overflow: hidden;
705
+ right: 0;
706
+ }
707
+ /* more specificity required here to overide default borders */
708
+ .ui-spinner a.ui-spinner-button {
709
+ border-top: none;
710
+ border-bottom: none;
711
+ border-right: none;
712
+ }
713
+ /* vertical centre icon */
714
+ .ui-spinner .ui-icon {
715
+ position: absolute;
716
+ margin-top: -8px;
717
+ top: 50%;
718
+ left: 0;
719
+ }
720
+ .ui-spinner-up {
721
+ top: 0;
722
+ }
723
+ .ui-spinner-down {
724
+ bottom: 0;
725
+ }
726
+
727
+ /* TR overrides */
728
+ .ui-spinner .ui-icon-triangle-1-s {
729
+ /* need to fix icons sprite */
730
+ background-position: -65px -16px;
731
+ }
732
+ .ui-tabs {
733
+ position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
734
+ padding: .2em;
735
+ }
736
+ .ui-tabs .ui-tabs-nav {
737
+ margin: 0;
738
+ padding: .2em .2em 0;
739
+ }
740
+ .ui-tabs .ui-tabs-nav li {
741
+ list-style: none;
742
+ float: left;
743
+ position: relative;
744
+ top: 0;
745
+ margin: 1px .2em 0 0;
746
+ border-bottom-width: 0;
747
+ padding: 0;
748
+ white-space: nowrap;
749
+ }
750
+ .ui-tabs .ui-tabs-nav li a {
751
+ float: left;
752
+ padding: .5em 1em;
753
+ text-decoration: none;
754
+ }
755
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active {
756
+ margin-bottom: -1px;
757
+ padding-bottom: 1px;
758
+ }
759
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active a,
760
+ .ui-tabs .ui-tabs-nav li.ui-state-disabled a,
761
+ .ui-tabs .ui-tabs-nav li.ui-tabs-loading a {
762
+ cursor: text;
763
+ }
764
+ .ui-tabs .ui-tabs-nav li a, /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
765
+ .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a {
766
+ cursor: pointer;
767
+ }
768
+ .ui-tabs .ui-tabs-panel {
769
+ display: block;
770
+ border-width: 0;
771
+ padding: 1em 1.4em;
772
+ background: none;
773
+ }
774
+ .ui-tooltip {
775
+ padding: 8px;
776
+ position: absolute;
777
+ z-index: 9999;
778
+ max-width: 300px;
779
+ -webkit-box-shadow: 0 0 5px #aaa;
780
+ box-shadow: 0 0 5px #aaa;
781
+ }
782
+ body .ui-tooltip {
783
+ border-width: 2px;
784
+ }
785
+
786
+ /* Component containers
787
+ ----------------------------------*/
788
+ .ui-widget {
789
+ font-family: Verdana,Arial,sans-serif;
790
+ font-size: 1.1em;
791
+ }
792
+ .ui-widget .ui-widget {
793
+ font-size: 1em;
794
+ }
795
+ .ui-widget input,
796
+ .ui-widget select,
797
+ .ui-widget textarea,
798
+ .ui-widget button {
799
+ font-family: Verdana,Arial,sans-serif;
800
+ font-size: 1em;
801
+ }
802
+ .ui-widget-content {
803
+ border: 1px solid #aaaaaa;
804
+ background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;
805
+ color: #222222;
806
+ }
807
+ .ui-widget-content a {
808
+ color: #222222;
809
+ }
810
+ .ui-widget-header {
811
+ border: 1px solid #aaaaaa;
812
+ background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;
813
+ color: #222222;
814
+ font-weight: bold;
815
+ }
816
+ .ui-widget-header a {
817
+ color: #222222;
818
+ }
819
+
820
+ /* Interaction states
821
+ ----------------------------------*/
822
+ .ui-state-default,
823
+ .ui-widget-content .ui-state-default,
824
+ .ui-widget-header .ui-state-default {
825
+ border: 1px solid #d3d3d3;
826
+ background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;
827
+ font-weight: normal;
828
+ color: #555555;
829
+ }
830
+ .ui-state-default a,
831
+ .ui-state-default a:link,
832
+ .ui-state-default a:visited {
833
+ color: #555555;
834
+ text-decoration: none;
835
+ }
836
+ .ui-state-hover,
837
+ .ui-widget-content .ui-state-hover,
838
+ .ui-widget-header .ui-state-hover,
839
+ .ui-state-focus,
840
+ .ui-widget-content .ui-state-focus,
841
+ .ui-widget-header .ui-state-focus {
842
+ border: 1px solid #999999;
843
+ background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;
844
+ font-weight: normal;
845
+ color: #212121;
846
+ }
847
+ .ui-state-hover a,
848
+ .ui-state-hover a:hover,
849
+ .ui-state-hover a:link,
850
+ .ui-state-hover a:visited {
851
+ color: #212121;
852
+ text-decoration: none;
853
+ }
854
+ .ui-state-active,
855
+ .ui-widget-content .ui-state-active,
856
+ .ui-widget-header .ui-state-active {
857
+ border: 1px solid #aaaaaa;
858
+ background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;
859
+ font-weight: normal;
860
+ color: #212121;
861
+ }
862
+ .ui-state-active a,
863
+ .ui-state-active a:link,
864
+ .ui-state-active a:visited {
865
+ color: #212121;
866
+ text-decoration: none;
867
+ }
868
+
869
+ /* Interaction Cues
870
+ ----------------------------------*/
871
+ .ui-state-highlight,
872
+ .ui-widget-content .ui-state-highlight,
873
+ .ui-widget-header .ui-state-highlight {
874
+ border: 1px solid #fcefa1;
875
+ background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;
876
+ color: #363636;
877
+ }
878
+ .ui-state-highlight a,
879
+ .ui-widget-content .ui-state-highlight a,
880
+ .ui-widget-header .ui-state-highlight a {
881
+ color: #363636;
882
+ }
883
+ .ui-state-error,
884
+ .ui-widget-content .ui-state-error,
885
+ .ui-widget-header .ui-state-error {
886
+ border: 1px solid #cd0a0a;
887
+ background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;
888
+ color: #cd0a0a;
889
+ }
890
+ .ui-state-error a,
891
+ .ui-widget-content .ui-state-error a,
892
+ .ui-widget-header .ui-state-error a {
893
+ color: #cd0a0a;
894
+ }
895
+ .ui-state-error-text,
896
+ .ui-widget-content .ui-state-error-text,
897
+ .ui-widget-header .ui-state-error-text {
898
+ color: #cd0a0a;
899
+ }
900
+ .ui-priority-primary,
901
+ .ui-widget-content .ui-priority-primary,
902
+ .ui-widget-header .ui-priority-primary {
903
+ font-weight: bold;
904
+ }
905
+ .ui-priority-secondary,
906
+ .ui-widget-content .ui-priority-secondary,
907
+ .ui-widget-header .ui-priority-secondary {
908
+ opacity: .7;
909
+ filter:Alpha(Opacity=70);
910
+ font-weight: normal;
911
+ }
912
+ .ui-state-disabled,
913
+ .ui-widget-content .ui-state-disabled,
914
+ .ui-widget-header .ui-state-disabled {
915
+ opacity: .35;
916
+ filter:Alpha(Opacity=35);
917
+ background-image: none;
918
+ }
919
+ .ui-state-disabled .ui-icon {
920
+ filter:Alpha(Opacity=35); /* For IE8 - See #6059 */
921
+ }
922
+
923
+ /* Icons
924
+ ----------------------------------*/
925
+
926
+ /* states and images */
927
+ .ui-icon {
928
+ width: 16px;
929
+ height: 16px;
930
+ }
931
+ .ui-icon,
932
+ .ui-widget-content .ui-icon {
933
+ background-image: url(images/ui-icons_222222_256x240.png);
934
+ }
935
+ .ui-widget-header .ui-icon {
936
+ background-image: url(images/ui-icons_222222_256x240.png);
937
+ }
938
+ .ui-state-default .ui-icon {
939
+ background-image: url(images/ui-icons_888888_256x240.png);
940
+ }
941
+ .ui-state-hover .ui-icon,
942
+ .ui-state-focus .ui-icon {
943
+ background-image: url(images/ui-icons_454545_256x240.png);
944
+ }
945
+ .ui-state-active .ui-icon {
946
+ background-image: url(images/ui-icons_454545_256x240.png);
947
+ }
948
+ .ui-state-highlight .ui-icon {
949
+ background-image: url(images/ui-icons_2e83ff_256x240.png);
950
+ }
951
+ .ui-state-error .ui-icon,
952
+ .ui-state-error-text .ui-icon {
953
+ background-image: url(images/ui-icons_cd0a0a_256x240.png);
954
+ }
955
+
956
+ /* positioning */
957
+ .ui-icon-blank { background-position: 16px 16px; }
958
+ .ui-icon-carat-1-n { background-position: 0 0; }
959
+ .ui-icon-carat-1-ne { background-position: -16px 0; }
960
+ .ui-icon-carat-1-e { background-position: -32px 0; }
961
+ .ui-icon-carat-1-se { background-position: -48px 0; }
962
+ .ui-icon-carat-1-s { background-position: -64px 0; }
963
+ .ui-icon-carat-1-sw { background-position: -80px 0; }
964
+ .ui-icon-carat-1-w { background-position: -96px 0; }
965
+ .ui-icon-carat-1-nw { background-position: -112px 0; }
966
+ .ui-icon-carat-2-n-s { background-position: -128px 0; }
967
+ .ui-icon-carat-2-e-w { background-position: -144px 0; }
968
+ .ui-icon-triangle-1-n { background-position: 0 -16px; }
969
+ .ui-icon-triangle-1-ne { background-position: -16px -16px; }
970
+ .ui-icon-triangle-1-e { background-position: -32px -16px; }
971
+ .ui-icon-triangle-1-se { background-position: -48px -16px; }
972
+ .ui-icon-triangle-1-s { background-position: -64px -16px; }
973
+ .ui-icon-triangle-1-sw { background-position: -80px -16px; }
974
+ .ui-icon-triangle-1-w { background-position: -96px -16px; }
975
+ .ui-icon-triangle-1-nw { background-position: -112px -16px; }
976
+ .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
977
+ .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
978
+ .ui-icon-arrow-1-n { background-position: 0 -32px; }
979
+ .ui-icon-arrow-1-ne { background-position: -16px -32px; }
980
+ .ui-icon-arrow-1-e { background-position: -32px -32px; }
981
+ .ui-icon-arrow-1-se { background-position: -48px -32px; }
982
+ .ui-icon-arrow-1-s { background-position: -64px -32px; }
983
+ .ui-icon-arrow-1-sw { background-position: -80px -32px; }
984
+ .ui-icon-arrow-1-w { background-position: -96px -32px; }
985
+ .ui-icon-arrow-1-nw { background-position: -112px -32px; }
986
+ .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
987
+ .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
988
+ .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
989
+ .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
990
+ .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
991
+ .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
992
+ .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
993
+ .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
994
+ .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
995
+ .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
996
+ .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
997
+ .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
998
+ .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
999
+ .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
1000
+ .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
1001
+ .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
1002
+ .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
1003
+ .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
1004
+ .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
1005
+ .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
1006
+ .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
1007
+ .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
1008
+ .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
1009
+ .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
1010
+ .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
1011
+ .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
1012
+ .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
1013
+ .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
1014
+ .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
1015
+ .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
1016
+ .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
1017
+ .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
1018
+ .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
1019
+ .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
1020
+ .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
1021
+ .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
1022
+ .ui-icon-arrow-4 { background-position: 0 -80px; }
1023
+ .ui-icon-arrow-4-diag { background-position: -16px -80px; }
1024
+ .ui-icon-extlink { background-position: -32px -80px; }
1025
+ .ui-icon-newwin { background-position: -48px -80px; }
1026
+ .ui-icon-refresh { background-position: -64px -80px; }
1027
+ .ui-icon-shuffle { background-position: -80px -80px; }
1028
+ .ui-icon-transfer-e-w { background-position: -96px -80px; }
1029
+ .ui-icon-transferthick-e-w { background-position: -112px -80px; }
1030
+ .ui-icon-folder-collapsed { background-position: 0 -96px; }
1031
+ .ui-icon-folder-open { background-position: -16px -96px; }
1032
+ .ui-icon-document { background-position: -32px -96px; }
1033
+ .ui-icon-document-b { background-position: -48px -96px; }
1034
+ .ui-icon-note { background-position: -64px -96px; }
1035
+ .ui-icon-mail-closed { background-position: -80px -96px; }
1036
+ .ui-icon-mail-open { background-position: -96px -96px; }
1037
+ .ui-icon-suitcase { background-position: -112px -96px; }
1038
+ .ui-icon-comment { background-position: -128px -96px; }
1039
+ .ui-icon-person { background-position: -144px -96px; }
1040
+ .ui-icon-print { background-position: -160px -96px; }
1041
+ .ui-icon-trash { background-position: -176px -96px; }
1042
+ .ui-icon-locked { background-position: -192px -96px; }
1043
+ .ui-icon-unlocked { background-position: -208px -96px; }
1044
+ .ui-icon-bookmark { background-position: -224px -96px; }
1045
+ .ui-icon-tag { background-position: -240px -96px; }
1046
+ .ui-icon-home { background-position: 0 -112px; }
1047
+ .ui-icon-flag { background-position: -16px -112px; }
1048
+ .ui-icon-calendar { background-position: -32px -112px; }
1049
+ .ui-icon-cart { background-position: -48px -112px; }
1050
+ .ui-icon-pencil { background-position: -64px -112px; }
1051
+ .ui-icon-clock { background-position: -80px -112px; }
1052
+ .ui-icon-disk { background-position: -96px -112px; }
1053
+ .ui-icon-calculator { background-position: -112px -112px; }
1054
+ .ui-icon-zoomin { background-position: -128px -112px; }
1055
+ .ui-icon-zoomout { background-position: -144px -112px; }
1056
+ .ui-icon-search { background-position: -160px -112px; }
1057
+ .ui-icon-wrench { background-position: -176px -112px; }
1058
+ .ui-icon-gear { background-position: -192px -112px; }
1059
+ .ui-icon-heart { background-position: -208px -112px; }
1060
+ .ui-icon-star { background-position: -224px -112px; }
1061
+ .ui-icon-link { background-position: -240px -112px; }
1062
+ .ui-icon-cancel { background-position: 0 -128px; }
1063
+ .ui-icon-plus { background-position: -16px -128px; }
1064
+ .ui-icon-plusthick { background-position: -32px -128px; }
1065
+ .ui-icon-minus { background-position: -48px -128px; }
1066
+ .ui-icon-minusthick { background-position: -64px -128px; }
1067
+ .ui-icon-close { background-position: -80px -128px; }
1068
+ .ui-icon-closethick { background-position: -96px -128px; }
1069
+ .ui-icon-key { background-position: -112px -128px; }
1070
+ .ui-icon-lightbulb { background-position: -128px -128px; }
1071
+ .ui-icon-scissors { background-position: -144px -128px; }
1072
+ .ui-icon-clipboard { background-position: -160px -128px; }
1073
+ .ui-icon-copy { background-position: -176px -128px; }
1074
+ .ui-icon-contact { background-position: -192px -128px; }
1075
+ .ui-icon-image { background-position: -208px -128px; }
1076
+ .ui-icon-video { background-position: -224px -128px; }
1077
+ .ui-icon-script { background-position: -240px -128px; }
1078
+ .ui-icon-alert { background-position: 0 -144px; }
1079
+ .ui-icon-info { background-position: -16px -144px; }
1080
+ .ui-icon-notice { background-position: -32px -144px; }
1081
+ .ui-icon-help { background-position: -48px -144px; }
1082
+ .ui-icon-check { background-position: -64px -144px; }
1083
+ .ui-icon-bullet { background-position: -80px -144px; }
1084
+ .ui-icon-radio-on { background-position: -96px -144px; }
1085
+ .ui-icon-radio-off { background-position: -112px -144px; }
1086
+ .ui-icon-pin-w { background-position: -128px -144px; }
1087
+ .ui-icon-pin-s { background-position: -144px -144px; }
1088
+ .ui-icon-play { background-position: 0 -160px; }
1089
+ .ui-icon-pause { background-position: -16px -160px; }
1090
+ .ui-icon-seek-next { background-position: -32px -160px; }
1091
+ .ui-icon-seek-prev { background-position: -48px -160px; }
1092
+ .ui-icon-seek-end { background-position: -64px -160px; }
1093
+ .ui-icon-seek-start { background-position: -80px -160px; }
1094
+ /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
1095
+ .ui-icon-seek-first { background-position: -80px -160px; }
1096
+ .ui-icon-stop { background-position: -96px -160px; }
1097
+ .ui-icon-eject { background-position: -112px -160px; }
1098
+ .ui-icon-volume-off { background-position: -128px -160px; }
1099
+ .ui-icon-volume-on { background-position: -144px -160px; }
1100
+ .ui-icon-power { background-position: 0 -176px; }
1101
+ .ui-icon-signal-diag { background-position: -16px -176px; }
1102
+ .ui-icon-signal { background-position: -32px -176px; }
1103
+ .ui-icon-battery-0 { background-position: -48px -176px; }
1104
+ .ui-icon-battery-1 { background-position: -64px -176px; }
1105
+ .ui-icon-battery-2 { background-position: -80px -176px; }
1106
+ .ui-icon-battery-3 { background-position: -96px -176px; }
1107
+ .ui-icon-circle-plus { background-position: 0 -192px; }
1108
+ .ui-icon-circle-minus { background-position: -16px -192px; }
1109
+ .ui-icon-circle-close { background-position: -32px -192px; }
1110
+ .ui-icon-circle-triangle-e { background-position: -48px -192px; }
1111
+ .ui-icon-circle-triangle-s { background-position: -64px -192px; }
1112
+ .ui-icon-circle-triangle-w { background-position: -80px -192px; }
1113
+ .ui-icon-circle-triangle-n { background-position: -96px -192px; }
1114
+ .ui-icon-circle-arrow-e { background-position: -112px -192px; }
1115
+ .ui-icon-circle-arrow-s { background-position: -128px -192px; }
1116
+ .ui-icon-circle-arrow-w { background-position: -144px -192px; }
1117
+ .ui-icon-circle-arrow-n { background-position: -160px -192px; }
1118
+ .ui-icon-circle-zoomin { background-position: -176px -192px; }
1119
+ .ui-icon-circle-zoomout { background-position: -192px -192px; }
1120
+ .ui-icon-circle-check { background-position: -208px -192px; }
1121
+ .ui-icon-circlesmall-plus { background-position: 0 -208px; }
1122
+ .ui-icon-circlesmall-minus { background-position: -16px -208px; }
1123
+ .ui-icon-circlesmall-close { background-position: -32px -208px; }
1124
+ .ui-icon-squaresmall-plus { background-position: -48px -208px; }
1125
+ .ui-icon-squaresmall-minus { background-position: -64px -208px; }
1126
+ .ui-icon-squaresmall-close { background-position: -80px -208px; }
1127
+ .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
1128
+ .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
1129
+ .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
1130
+ .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
1131
+ .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
1132
+ .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
1133
+
1134
+
1135
+ /* Misc visuals
1136
+ ----------------------------------*/
1137
+
1138
+ /* Corner radius */
1139
+ .ui-corner-all,
1140
+ .ui-corner-top,
1141
+ .ui-corner-left,
1142
+ .ui-corner-tl {
1143
+ border-top-left-radius: 4px;
1144
+ }
1145
+ .ui-corner-all,
1146
+ .ui-corner-top,
1147
+ .ui-corner-right,
1148
+ .ui-corner-tr {
1149
+ border-top-right-radius: 4px;
1150
+ }
1151
+ .ui-corner-all,
1152
+ .ui-corner-bottom,
1153
+ .ui-corner-left,
1154
+ .ui-corner-bl {
1155
+ border-bottom-left-radius: 4px;
1156
+ }
1157
+ .ui-corner-all,
1158
+ .ui-corner-bottom,
1159
+ .ui-corner-right,
1160
+ .ui-corner-br {
1161
+ border-bottom-right-radius: 4px;
1162
+ }
1163
+
1164
+ /* Overlays */
1165
+ .ui-widget-overlay {
1166
+ background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
1167
+ opacity: .3;
1168
+ filter: Alpha(Opacity=30);
1169
+ }
1170
+ .ui-widget-shadow {
1171
+ margin: -8px 0 0 -8px;
1172
+ padding: 8px;
1173
+ background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
1174
+ opacity: .3;
1175
+ filter: Alpha(Opacity=30);
1176
+ border-radius: 8px;
1177
+ }
assets/css/jquery.dataTables.css ADDED
@@ -0,0 +1,215 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ /*
3
+ * Table
4
+ */
5
+ table.dataTable {
6
+ margin: 0 auto;
7
+ clear: both;
8
+ width: 100%;
9
+ }
10
+
11
+ table.dataTable thead th {
12
+ padding: 3px 18px 3px 10px;
13
+ border-bottom: 1px solid black;
14
+ font-weight: bold;
15
+ cursor: pointer;
16
+ *cursor: hand;
17
+ }
18
+
19
+ table.dataTable tfoot th {
20
+ padding: 3px 18px 3px 10px;
21
+ border-top: 1px solid black;
22
+ font-weight: bold;
23
+ }
24
+
25
+ table.dataTable td {
26
+ padding: 3px 10px;
27
+ }
28
+
29
+ table.dataTable td.center,
30
+ table.dataTable td.dataTables_empty {
31
+ text-align: center;
32
+ }
33
+
34
+ table.dataTable tr.odd { background-color: #E2E4FF; }
35
+ table.dataTable tr.even { background-color: white; }
36
+
37
+ table.dataTable tr.odd td.sorting_1 { background-color: #D3D6FF; }
38
+ table.dataTable tr.odd td.sorting_2 { background-color: #DADCFF; }
39
+ table.dataTable tr.odd td.sorting_3 { background-color: #E0E2FF; }
40
+ table.dataTable tr.even td.sorting_1 { background-color: #EAEBFF; }
41
+ table.dataTable tr.even td.sorting_2 { background-color: #F2F3FF; }
42
+ table.dataTable tr.even td.sorting_3 { background-color: #F9F9FF; }
43
+
44
+
45
+ /*
46
+ * Table wrapper
47
+ */
48
+ .dataTables_wrapper {
49
+ position: relative;
50
+ clear: both;
51
+ *zoom: 1;
52
+ }
53
+
54
+
55
+ /*
56
+ * Page length menu
57
+ */
58
+ .dataTables_length {
59
+ float: left;
60
+ }
61
+
62
+
63
+ /*
64
+ * Filter
65
+ */
66
+ .dataTables_filter {
67
+ float: right;
68
+ text-align: right;
69
+ }
70
+
71
+
72
+ /*
73
+ * Table information
74
+ */
75
+ .dataTables_info {
76
+ clear: both;
77
+ float: left;
78
+ }
79
+
80
+
81
+ /*
82
+ * Pagination
83
+ */
84
+ .dataTables_paginate {
85
+ float: right;
86
+ text-align: right;
87
+ }
88
+
89
+ /* Two button pagination - previous / next */
90
+ .paginate_disabled_previous,
91
+ .paginate_enabled_previous,
92
+ .paginate_disabled_next,
93
+ .paginate_enabled_next {
94
+ height: 19px;
95
+ float: left;
96
+ cursor: pointer;
97
+ *cursor: hand;
98
+ color: #111 !important;
99
+ }
100
+ .paginate_disabled_previous:hover,
101
+ .paginate_enabled_previous:hover,
102
+ .paginate_disabled_next:hover,
103
+ .paginate_enabled_next:hover {
104
+ text-decoration: none !important;
105
+ }
106
+ .paginate_disabled_previous:active,
107
+ .paginate_enabled_previous:active,
108
+ .paginate_disabled_next:active,
109
+ .paginate_enabled_next:active {
110
+ outline: none;
111
+ }
112
+
113
+ .paginate_disabled_previous,
114
+ .paginate_disabled_next {
115
+ color: #666 !important;
116
+ }
117
+ .paginate_disabled_previous,
118
+ .paginate_enabled_previous {
119
+ padding-left: 23px;
120
+ }
121
+ .paginate_disabled_next,
122
+ .paginate_enabled_next {
123
+ padding-right: 23px;
124
+ margin-left: 10px;
125
+ }
126
+
127
+ .paginate_enabled_previous { background: url('../images/back_enabled.png') no-repeat top left; }
128
+ .paginate_enabled_previous:hover { background: url('../images/back_enabled_hover.png') no-repeat top left; }
129
+ .paginate_disabled_previous { background: url('../images/back_disabled.png') no-repeat top left; }
130
+
131
+ .paginate_enabled_next { background: url('../images/forward_enabled.png') no-repeat top right; }
132
+ .paginate_enabled_next:hover { background: url('../images/forward_enabled_hover.png') no-repeat top right; }
133
+ .paginate_disabled_next { background: url('../images/forward_disabled.png') no-repeat top right; }
134
+
135
+ /* Full number pagination */
136
+ .paging_full_numbers {
137
+ height: 22px;
138
+ line-height: 22px;
139
+ }
140
+ .paging_full_numbers a:active {
141
+ outline: none
142
+ }
143
+ .paging_full_numbers a:hover {
144
+ text-decoration: none;
145
+ }
146
+
147
+ .paging_full_numbers a.paginate_button,
148
+ .paging_full_numbers a.paginate_active {
149
+ border: 1px solid #aaa;
150
+ -webkit-border-radius: 5px;
151
+ -moz-border-radius: 5px;
152
+ border-radius: 5px;
153
+ padding: 2px 5px;
154
+ margin: 0 3px;
155
+ cursor: pointer;
156
+ *cursor: hand;
157
+ color: #333 !important;
158
+ }
159
+
160
+ .paging_full_numbers a.paginate_button {
161
+ background-color: #ddd;
162
+ }
163
+
164
+ .paging_full_numbers a.paginate_button:hover {
165
+ background-color: #ccc;
166
+ text-decoration: none !important;
167
+ }
168
+
169
+ .paging_full_numbers a.paginate_active {
170
+ background-color: #99B3FF;
171
+ }
172
+
173
+
174
+ /*
175
+ * Processing indicator
176
+ */
177
+ .dataTables_processing {
178
+ position: absolute;
179
+ top: 50%;
180
+ left: 50%;
181
+ width: 250px;
182
+ height: 30px;
183
+ margin-left: -125px;
184
+ margin-top: -15px;
185
+ padding: 14px 0 2px 0;
186
+ border: 1px solid #ddd;
187
+ text-align: center;
188
+ color: #999;
189
+ font-size: 14px;
190
+ background-color: white;
191
+ }
192
+
193
+
194
+ /*
195
+ * Sorting
196
+ */
197
+
198
+ table.dataTable thead th:active,
199
+ table.dataTable thead td:active {
200
+ outline: none;
201
+ }
202
+
203
+
204
+ /*
205
+ * Scrolling
206
+ */
207
+ .dataTables_scroll {
208
+ clear: both;
209
+ }
210
+
211
+ .dataTables_scrollBody {
212
+ *margin-top: -1px;
213
+ -webkit-overflow-scrolling: touch;
214
+ }
215
+
assets/css/jquery.fileupload.css ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @charset "UTF-8";
2
+ /*
3
+ * jQuery File Upload Plugin CSS 1.3.0
4
+ * https://github.com/blueimp/jQuery-File-Upload
5
+ *
6
+ * Copyright 2013, Sebastian Tschan
7
+ * https://blueimp.net
8
+ *
9
+ * Licensed under the MIT license:
10
+ * http://www.opensource.org/licenses/MIT
11
+ */
12
+
13
+ .fileinput-button {
14
+ position: relative;
15
+ overflow: hidden;
16
+ }
17
+ .fileinput-button input {
18
+ position: absolute;
19
+ top: 0;
20
+ right: 0;
21
+ margin: 0;
22
+ opacity: 0;
23
+ height: 27px;
24
+ -ms-filter: 'alpha(opacity=0)';
25
+ font-size: 200px;
26
+ direction: ltr;
27
+ cursor: pointer;
28
+ }
29
+
30
+ /* Fixes for IE < 8 */
31
+ @media screen\9 {
32
+ .fileinput-button input {
33
+ filter: alpha(opacity=0);
34
+ font-size: 100%;
35
+ height: 100%;
36
+ }
37
+ }
38
+
39
+ .progress {
40
+ height: 20px;
41
+ margin-bottom: 20px;
42
+ margin-top: 10px;
43
+ overflow: hidden;
44
+ background-color: #f5f5f5;
45
+ border-radius: 4px;
46
+ -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
47
+ box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
48
+ }
49
+
50
+ .progress-bar {
51
+ float: left;
52
+ width: 0;
53
+ height: 100%;
54
+ font-size: 12px;
55
+ color: #fff;
56
+ text-align: center;
57
+ background-color: #428bca;
58
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0,0,0,0.15);
59
+ box-shadow: inset 0 -1px 0 rgba(0,0,0,0.15);
60
+ -webkit-transition: width .6s ease;
61
+ transition: width .6s ease;
62
+ }
63
+
64
+ .progress-bar-success {
65
+ background-color: #5cb85c;
66
+ }
assets/css/jquery.fs.selecter-arrow.png ADDED
Binary file
assets/css/jquery.fs.selecter.css ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Selecter v3.1.9 - 2014-09-02
3
+ * A jQuery plugin for replacing default select elements. Part of the Formstone Library.
4
+ * http://formstone.it/selecter/
5
+ *
6
+ * Copyright 2014 Ben Plum; MIT Licensed
7
+ */
8
+
9
+ .selecter { display: block; margin: 10px 0; position: relative; max-width: 30%; z-index: 1; }
10
+
11
+ .selecter .selecter-element { *left: -999999px; height: 100%; left: 0; position: absolute; opacity: 0; width: 100%; z-index: -1; }
12
+ .selecter .selecter-element,
13
+ .selecter .selecter-element:focus { outline: none;
14
+ -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
15
+ -webkit-tap-highlight-color: transparent;
16
+ }
17
+
18
+ .selecter .selecter-selected { background: #F9F9F9 url(jquery.fs.selecter-arrow.png) no-repeat right center; border: 1px solid #ccc; border-radius: 3px; color: #333; cursor: pointer; display: block; font-size: 13px; margin: 0; overflow: hidden; padding: 8px 10px; position: relative; text-overflow: clip; z-index: 2; }
19
+ .selecter .selecter-options { border: 1px solid #ccc; border-width: 0 1px 1px; background-color: #fefefe; border-radius: 0 0 3px 3px; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15); display: none; left: 0; margin: 0; max-height: 260px; overflow: auto; overflow-x: hidden; padding: 0; position: absolute; top: 100%; width: 100%; *width: auto; z-index: 50; }
20
+ .selecter .selecter-group { background: #F9F9F9; border-bottom: 1px solid #e3e3e3; color: #999; display: block; font-size: 11px; padding: 5px 10px 4px; text-transform: uppercase; }
21
+ .selecter .selecter-item { background: #fff; border-bottom: 1px solid #e3e3e3; color: #333; cursor: pointer; display: block; font-size: 13px; margin: 0; overflow: hidden; padding: 8px 10px; text-overflow: ellipsis; width: 100%; }
22
+ .selecter .selecter-item.placeholder { display: none; }
23
+ .selecter .selecter-item.selected { background: #F9F9F9; }
24
+ .selecter .selecter-item.disabled { color: #999; cursor: default; }
25
+ .selecter .selecter-item:first-child { border-radius: 0; }
26
+ .selecter .selecter-item:last-child { border-radius: 0 0 2px 2px; border-bottom: 0; }
27
+
28
+ @media screen and (min-width: 980px) {
29
+ .selecter .selecter-item:hover,
30
+ .selecter .selecter-item.selected:hover { background-color: #f3f3f3; }
31
+ .selecter .selecter-item.disabled:hover { background-color: #fff; }
32
+
33
+ .selecter:hover .selecter-selected { background-color: #fff; }
34
+
35
+ .selecter.disabled .selecter-item:hover { background: #fff; }
36
+ }
37
+
38
+ /* Open */
39
+ .selecter.open { z-index: 3; }
40
+ .selecter.open .selecter-selected { border-radius: 3px 3px 0 0; z-index: 51; }
41
+
42
+ .selecter.open .selecter-selected,
43
+ .selecter.focus .selecter-selected { background-color: #fff; box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); }
44
+
45
+ /* 'Cover' Positioning */
46
+ .selecter.cover .selecter-options { border-radius: 3px; border-width: 1px; top: 0; }
47
+ .selecter.cover .selecter-options .selecter-item.first { border-radius: 3px 3px 0 0; }
48
+ .selecter.cover.open .selecter-selected { border-radius: 3px 3px 0 0; z-index: 49; }
49
+
50
+ /* 'Bottom' Positioning */
51
+ .selecter.bottom .selecter-options { border-width: 1px 1px 0; bottom: 100%; top: auto; }
52
+ .selecter.bottom .selecter-item:last-child { border: none; }
53
+ .selecter.bottom.open .selecter-selected { border-radius: 0 0 3px 3px; }
54
+ .selecter.bottom.open .selecter-options { border-radius: 3px 3px 0 0; }
55
+
56
+ /* 'Bottom' + 'Cover' Positioning */
57
+ .selecter.bottom.cover .selecter-options { bottom: 0; top: auto; }
58
+ .selecter.bottom.cover.open .selecter-selected { border-radius: 3px; }
59
+ .selecter.bottom.cover.open .selecter-options { border-radius: 3px; }
60
+
61
+ /* Multiple Select */
62
+ .selecter.multiple .selecter-options { border-radius: 3px; border-width: 1px; box-shadow: none; display: block; position: static; width: 100%; }
63
+
64
+ /* 'Disabled' State */
65
+ .selecter.disabled .selecter-selected { background: #fff; border-color: #eee; color: #ccc; cursor: default; }
66
+ .selecter.disabled .selecter-options { background: #fff; border-color: #eee; }
67
+ .selecter.disabled .selecter-group,
68
+ .selecter.disabled .selecter-item { border-color: #eee; color: #ccc; cursor: default; }
69
+ .selecter.disabled .selecter-item.selected { background: #fafafa; }
70
+
71
+ /* Scroller Support */
72
+ .selecter .selecter-options.scroller { overflow: hidden; }
73
+ .selecter .selecter-options.scroller .scroller-content { max-height: 260px; padding: 0; }
74
+
75
+ /* Media Queries */
76
+ @media screen and (max-width: 740px) {
77
+ .selecter { max-width: 40%; }
78
+ }
79
+ @media screen and (max-width: 500px) {
80
+ .selecter { max-width: 100%; }
81
+ }
assets/css/jquery.fs.tipper-icon.png ADDED
Binary file
assets/css/jquery.remodal.css ADDED
@@ -0,0 +1,235 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*! Remodal - v0.1.2 - 2014-03-05
2
+ * https://github.com/VodkaBears/remodal
3
+ * Copyright (c) 2014 VodkaBears; */
4
+
5
+ /* Fonts */
6
+ @import url(https://fonts.googleapis.com/css?family=Exo+2:700,400&subset=latin,cyrillic);
7
+
8
+ /* Lock screen(begin) */
9
+ html.remodal_lock, body.remodal_lock {
10
+ overflow: hidden;
11
+ }
12
+
13
+ /* Lock screen(end) */
14
+
15
+ /* Background for effects(begin) */
16
+ .remodal-bg {
17
+ -webkit-transition: -webkit-filter 0.2s linear;
18
+ -moz-transition: -moz-filter 0.2s linear;
19
+ -o-transition: -o-filter 0.2s linear;
20
+ transition: filter 0.2s linear;
21
+ }
22
+
23
+ body.remodal_active .remodal-bg {
24
+ -webkit-filter: blur(3px);
25
+ -moz-filter: blur(3px);
26
+ -o-filter: blur(3px);
27
+ -ms-filter: blur(3px);
28
+ filter: blur(3px);
29
+ }
30
+
31
+ /* Background for effects(end) */
32
+
33
+ /* Anti FOUC(begin) */
34
+ .remodal, [data-remodal-id] {
35
+ visibility: hidden;
36
+ }
37
+
38
+ /* Anti FOUC(end)*/
39
+
40
+ /* Remodal overlay(begin) */
41
+ .remodal-overlay {
42
+ display: none;
43
+ overflow: auto;
44
+ -webkit-overflow-scrolling: touch;
45
+
46
+ position: fixed;
47
+ top: 0;
48
+ left: 0;
49
+ right: 0;
50
+ bottom: 0;
51
+ z-index: 10000;
52
+
53
+ text-align: center;
54
+
55
+ opacity: 0;
56
+ background: rgba(33, 36, 46, 0.95);
57
+ /* IE6–IE8 */
58
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EE21242E, endColorstr=#EE21242E);
59
+ zoom: 1;
60
+ -webkit-transition: opacity 0.2s linear;
61
+ -moz-transition: opacity 0.2s linear;
62
+ -o-transition: opacity 0.2s linear;
63
+ transition: opacity 0.2s linear;
64
+ }
65
+
66
+ .remodal-overlay > * {
67
+ -webkit-transform: translateZ(0px);
68
+ }
69
+
70
+ .remodal-overlay:after {
71
+ display: inline-block;
72
+
73
+ height: 100%;
74
+ margin-left: -0.05em;
75
+
76
+ content: '';
77
+ vertical-align: middle;
78
+ }
79
+
80
+ body.remodal_active .remodal-overlay {
81
+ opacity: 1;
82
+ }
83
+
84
+ /* Remodal overlay(end) */
85
+
86
+ .remodal {
87
+ font-size: 16px;
88
+
89
+ position: relative;
90
+
91
+ display: inline-block;
92
+
93
+ width: 100%;
94
+ min-height: 100%;
95
+ padding: 35px;
96
+ -webkit-box-sizing: border-box;
97
+ -moz-box-sizing: border-box;
98
+ box-sizing: border-box;
99
+
100
+ vertical-align: middle;
101
+
102
+ background: #f4f4f4;
103
+ background-clip: padding-box;
104
+ color: #182a3c;
105
+ -webkit-box-shadow: 0px 0px 8px #171a24;
106
+ box-shadow: 0px 0px 8px #171a24;
107
+
108
+ -webkit-transform: scale(0.95);
109
+ -moz-transform: scale(0.95);
110
+ -ms-transform: scale(0.95);
111
+ -o-transform: scale(0.95);
112
+ transform: scale(0.95);
113
+ -webkit-transition: -webkit-transform 0.2s linear;
114
+ -moz-transition: -moz-transform 0.2s linear;
115
+ -o-transition: -o-transform 0.2s linear;
116
+ transition: transform 0.2s linear;
117
+ }
118
+
119
+ body.remodal_active .remodal {
120
+ -webkit-transform: scale(1);
121
+ -moz-transform: scale(1);
122
+ -ms-transform: scale(1);
123
+ -o-transform: scale(1);
124
+ transform: scale(1);
125
+ }
126
+
127
+ /* Remodal window(end) */
128
+
129
+ /* Remodal window close button(begin) */
130
+ .remodal-close {
131
+ position: absolute;
132
+ top: 5px;
133
+ left: 5px;
134
+
135
+ width: 28px;
136
+ height: 28px;
137
+
138
+ text-decoration: none;
139
+
140
+ -webkit-border-radius: 50%;
141
+ border-radius: 50%;
142
+ border: 2px solid #3e5368;
143
+ -webkit-transition: background 0.2s linear;
144
+ -moz-transition: background 0.2s linear;
145
+ -o-transition: background 0.2s linear;
146
+ transition: background 0.2s linear;
147
+ }
148
+
149
+ .remodal-close:after {
150
+ display: block;
151
+ font-size: 28px;
152
+ font-family: Arial, 'Helvetica CY', 'Nimbus Sans L', sans-serif !important;
153
+
154
+ content: "×";
155
+ line-height: 28px;
156
+ cursor: pointer;
157
+ text-decoration: none;
158
+
159
+ color: #3e5368;
160
+
161
+ -webkit-transition: all 0.2s linear;
162
+ -moz-transition: all 0.2s linear;
163
+ -o-transition: all 0.2s linear;
164
+ transition: all 0.2s linear;
165
+ }
166
+
167
+ .remodal-close:hover, .remodal-close:active {
168
+ background: #3e5368;
169
+ }
170
+
171
+ .remodal-close:hover.remodal-close:after, .remodal-close:active.remodal-close:after {
172
+ color: #f4f4f4;
173
+ }
174
+
175
+ /* Remodal window close button(end) */
176
+
177
+ /* Remodal buttons(begin) */
178
+ .remodal-confirm, .remodal-cancel {
179
+ font-size: 10pt;
180
+
181
+ display: inline-block;
182
+
183
+ width: 120px;
184
+ padding: 9px 0;
185
+ margin: 0 0 5px 0;
186
+ background-clip: padding-box;
187
+
188
+ cursor: pointer;
189
+ text-decoration: none;
190
+ text-align: center;
191
+
192
+ -webkit-border-radius: 50px;
193
+ border-radius: 50px;
194
+ -webkit-transition: all 0.2s linear;
195
+ -moz-transition: all 0.2s linear;
196
+ -o-transition: all 0.2s linear;
197
+ transition: all 0.2s linear;
198
+ }
199
+
200
+ .remodal-confirm {
201
+ border: 2px solid #16a085;
202
+ background: #f4f4f4;
203
+ color: #16a085;
204
+ }
205
+
206
+ .remodal-confirm:hover, .remodal-confirm:active {
207
+ background: #16a085;
208
+ color: #f4f4f4;
209
+ }
210
+
211
+ .remodal-cancel {
212
+ border: 2px solid #c0392b;
213
+ background: #f4f4f4;
214
+ color: #c0392b;
215
+ }
216
+
217
+ .remodal-cancel:hover, .remodal-cancel:active {
218
+ background: #c0392b;
219
+ color: #f4f4f4;
220
+ }
221
+
222
+ /* Remodal buttons(end) */
223
+
224
+ /************** Media queries **************/
225
+
226
+ @media only screen and (min-width: 40.063em) /* min-width 641px */ {
227
+ .remodal {
228
+ max-width: 700px;
229
+ margin: 20px auto;
230
+ min-height: 0;
231
+
232
+ -webkit-border-radius: 6px;
233
+ border-radius: 6px;
234
+ }
235
+ }
assets/css/jquery.tagsinput.min.css ADDED
@@ -0,0 +1 @@
 
1
+ div.tagsinput{border:1px solid #CCC;background:#FFF;padding:5px;width:300px;height:100px;overflow-y:auto}div.tagsinput span.tag{border:1px solid #a5d24a;-moz-border-radius:2px;-webkit-border-radius:2px;display:block;float:left;padding:5px;text-decoration:none;background:#cde69c;color:#638421;margin-right:5px;margin-bottom:5px;font-family:helvetica;font-size:13px}div.tagsinput span.tag a{font-weight:700;color:#82ad2b;text-decoration:none;font-size:11px}div.tagsinput input{width:80px;margin:0 5px 5px 0;font-family:helvetica;font-size:13px;border:1px solid transparent;padding:5px;background:0 0;color:#000;outline:0}div.tagsinput div{display:block;float:left}.tags_clear{clear:both;width:100%;height:0}.not_valid{background:#FBD8DB!important;color:#90111A!important}
assets/css/minimal.png ADDED
Binary file
assets/css/minimal@2x.png ADDED
Binary file
assets/css/phpDataTables.css ADDED
@@ -0,0 +1,803 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * wpDataTables styles
3
+ *
4
+ */
5
+ .wpDataTables:before,
6
+ .wpDataTables:after {
7
+ content: " ";
8
+ display: table;
9
+ }
10
+ .wpDataTables:after {
11
+ clear: both;
12
+ }
13
+
14
+ .wpDataTablesWrapper table.wpDataTable {
15
+ background-color: transparent;
16
+ border-collapse: collapse;
17
+ border-spacing: 0;
18
+ clear: both;
19
+ font-size: inherit;
20
+ margin: 0 auto;
21
+ width: 100%;
22
+ }
23
+
24
+ .wpDataTablesWrapper table.wpDataTable th,
25
+ .wpDataTablesWrapper table.wpDataTable td {
26
+ overflow: hidden;
27
+ text-overflow: ellipsis;
28
+ white-space: nowrap;
29
+ }
30
+
31
+ .wpDataTablesWrapper table.wpDataTable thead th {
32
+ border-style: solid;
33
+ border-width: 1px 1px 2px 1px;
34
+ cursor: pointer;
35
+ padding: 7px 10px 7px 10px;
36
+ text-align: left;
37
+ }
38
+
39
+ .wpDataTablesWrapper table.wpDataTable thead th.collapsible.sorting {
40
+ text-align: center;
41
+ }
42
+
43
+ .wpDataTablesWrapper table.wpDataTable thead th.sorting,
44
+ .wpDataTablesWrapper table.wpDataTable thead th.sorting_asc,
45
+ .wpDataTablesWrapper table.wpDataTable thead th.sorting_desc {
46
+ background-image: none !important;
47
+ }
48
+
49
+ .wpDataTablesWrapper table.wpDataTable thead th.sorting:after,
50
+ .wpDataTablesWrapper table.wpDataTable thead th.sorting_asc:after,
51
+ .wpDataTablesWrapper table.wpDataTable thead th.sorting_desc:after {
52
+ border-color: transparent;
53
+ border-style: solid;
54
+ border-width: 5px;
55
+ display: inline-block;
56
+ font-size: 0px;
57
+ line-height: 0;
58
+ content: "";
59
+ height: 0px;
60
+ width: 0px;
61
+ vertical-align: 3px;
62
+ margin: 0 0 0 10px;
63
+ opacity: 0.6;
64
+ }
65
+
66
+ .wpDataTablesWrapper table.wpDataTable thead th.collapsible.sorting:after,
67
+ .wpDataTablesWrapper table.wpDataTable thead th.collapsible.sorting_asc:after,
68
+ .wpDataTablesWrapper table.wpDataTable thead th.collapsible.sorting_desc:after {
69
+ margin-left: 0;
70
+ }
71
+
72
+ .wpDataTablesWrapper table.wpDataTable thead th.sorting:after,
73
+ .wpDataTablesWrapper table.wpDataTable thead th.sorting_asc:after {
74
+ border-top-width: 0px;
75
+ }
76
+
77
+ .wpDataTablesWrapper table.wpDataTable thead th.sorting_desc:after {
78
+ border-bottom-width: 0px;
79
+ }
80
+
81
+ .wpDataTablesWrapper table.wpDataTable thead th.sorting:hover:after,
82
+ .wpDataTablesWrapper table.wpDataTable thead th.sorting_asc:after,
83
+ .wpDataTablesWrapper table.wpDataTable thead th.sorting_desc:after {
84
+ opacity: 1;
85
+ }
86
+
87
+ .wpDataTablesWrapper table.wpDataTable td {
88
+ border: 1px solid;
89
+ padding: 3px 10px;
90
+ }
91
+
92
+ .wpDataTablesWrapper table.wpDataTable tfoot td {
93
+ border-width: 1px 0px 1px 0px;
94
+ padding-bottom: 7px;
95
+ padding-top: 7px;
96
+ vertical-align: top;
97
+ white-space: normal;
98
+ overflow: visible;
99
+ }
100
+
101
+ .wpDataTablesWrapper table.wpDataTable tfoot td input {
102
+ display: block;
103
+ margin: 0;
104
+ width: 92%;
105
+ }
106
+
107
+ .wpDataTables .filter_select select {
108
+ display: none !important;
109
+ }
110
+
111
+ .wpDataTablesWrapper table.wpDataTable tfoot td input.date_range_filter,
112
+ .wpDataTablesWrapper table.wpDataTable tfoot td input.number_range_filter {
113
+ display: block;
114
+ width: 100%;
115
+ }
116
+
117
+ .wpDataTablesWrapper table.wpDataTable tfoot td input.number_range_filter:first-child {
118
+ margin-bottom: 5px !important;
119
+ }
120
+
121
+ .wpDataTablesWrapper table.wpDataTable tfoot td input.date_range_filter:first-child {
122
+ margin-bottom: 5px !important;
123
+ }
124
+
125
+ .wpDataTablesWrapper table.wpDataTable tfoot .selecter {
126
+ width: 100% !important;
127
+ }
128
+
129
+
130
+ .wpDataTablesWrapper .dataTables_info {
131
+ clear: both;
132
+ float: left;
133
+ margin-top: 10px;
134
+ padding: 3px 0px;
135
+ font-size: 11px;
136
+ }
137
+
138
+ .wpDataTablesWrapper .dataTables_paginate {
139
+ float: right;
140
+ text-align: right;
141
+ margin-top: 10px;
142
+ }
143
+
144
+ .wpDataTablesWrapper .dataTables_paginate a {
145
+ display: inline-block;
146
+ height: auto;
147
+ cursor: pointer;
148
+ padding: 2px 7px;
149
+ vertical-align: middle;
150
+ }
151
+
152
+ .wpDataTablesWrapper .paginate_button:before {
153
+ font-size: 14px;
154
+ line-height: 1em;
155
+ }
156
+
157
+ /* TableTools */
158
+ .wpDataTablesWrapper div.DTTT_container {
159
+ margin-bottom: 20px;
160
+ margin-left: 20px;
161
+ margin-right: -15px;
162
+ }
163
+
164
+ .wpDataTablesWrapper button.DTTT_button {
165
+ position: relative;
166
+ float: right;
167
+ height: auto;
168
+ line-height: 18px !important;
169
+ margin-right: 15px;
170
+ padding: 0px;
171
+ font-size: 1em;
172
+ line-height: inherit;
173
+ }
174
+
175
+ .wpDataTablesWrapper button.DTTT_button,
176
+ .wpDataTablesWrapper button.DTTT_button:hover {
177
+ border-color: transparent;
178
+ border-style: solid;
179
+ }
180
+
181
+ .wpDataTablesWrapper .DTTT_button[disabled="disabled"] {
182
+ cursor: default;
183
+ }
184
+
185
+ .wpDataTablesWrapper .DTTT_button:before {
186
+ font-size: 18px;
187
+ float: none;
188
+ line-height: 18px;
189
+ margin-right: 5px;
190
+ margin-top: 0px;
191
+ text-align: left;
192
+ }
193
+
194
+ .wpDataTablesWrapper .DTTT_button span {
195
+ vertical-align: middle;
196
+ }
197
+
198
+ .wpDataTablesWrapper table.wpDataTable tr.selected td,
199
+ .wpDataTablesWrapper table.wpDataTable tr.selected td.sorting_1 {
200
+ background-color: #ddd;
201
+ }
202
+
203
+ .wpDataTablesWrapper .dataTables_length {
204
+ float: left;
205
+ }
206
+
207
+ .wpDataTablesWrapper .dataTables_length,
208
+ .wpDataTablesWrapper .dataTables_filter {
209
+ margin-bottom: 20px;
210
+ }
211
+
212
+ .wpDataTablesWrapper .dataTables_length label,
213
+ .wpDataTablesWrapper .dataTables_filter label {
214
+ font-size: inherit;
215
+ line-height: inherit;
216
+ margin-bottom: 0px;
217
+ }
218
+
219
+ .wpDataTablesWrapper .dataTables_length .selecter {
220
+ margin: 0px 5px !important;
221
+ width: 80px !important;
222
+ }
223
+
224
+ .wpDataTablesWrapper .dataTables_filter input {
225
+ margin-bottom: 0px;
226
+ }
227
+
228
+ .wpDataTablesWrapper .dataTables_processing {
229
+ position: absolute;
230
+ top: 0px;
231
+ left: 0px;
232
+ bottom: 0px;
233
+ right: 0px;
234
+ width: 100%;
235
+ height: auto;
236
+ margin-left: 0px;
237
+ margin-top: 0px;
238
+ padding: 0px;
239
+ border-style: none;
240
+ text-align: center;
241
+ font-size: 14px;
242
+ background-color: rgba(255,255,255,0.7);
243
+ }
244
+
245
+ .wpDataTablesWrapper .dataTables_processing img {
246
+ display: inline-boock;
247
+ position: absolute;
248
+ top: 50%;
249
+ left: 50%;
250
+ margin-left: -25px;
251
+ margin-top: -25px;
252
+ }
253
+
254
+ .wpDataTablesWrapper div.wpDataTablesFilter span.filter_column input[type="text"] {
255
+ width: 70px;
256
+ }
257
+
258
+ .wpDataTablesWrapper .wpDataTablesFilter {
259
+ overflow: hidden;
260
+ }
261
+
262
+ .wpDataTablesWrapper .wdtCheckboxModalWrap {
263
+ overflow: hidden;
264
+ }
265
+
266
+ /* Table tools, filters, table length selector */
267
+ .wpDataTables select,
268
+ .wpDataTables textarea,
269
+ .wpDataTables input[type="text"] {
270
+ display: inline-block !important;
271
+ margin-bottom: 0px !important;
272
+ max-width: 100%;
273
+ padding: 3px 6px !important;
274
+ vertical-align: middle !important;
275
+ width: 206px;
276
+ }
277
+
278
+ .wpDataTables select,
279
+ .wpDataTables input[type="text"],
280
+ .wpDataTables textarea,
281
+ .wpDataTables .selecter .selecter-selected,
282
+ .wpDataTables .selecter .selecter-item,
283
+ .wpDataTablesWrapper .DTTT_button,
284
+ .wpDataTables .checkbox_filter.btn,
285
+ .wpDataTables .btn {
286
+ font-size: inherit !important;
287
+ line-height: 22px !important;
288
+ padding-bottom: 3px !important;
289
+ padding-top: 3px !important;
290
+ -webkit-box-sizing: border-box !important;
291
+ -moz-box-sizing: border-box !important;
292
+ box-sizing: border-box !important;
293
+ }
294
+
295
+ .wpDataTables select,
296
+ .wpDataTables input[type="text"],
297
+ .wpDataTables .selecter .selecter-selected,
298
+ .wpDataTables .selecter .selecter-item,
299
+ .wpDataTablesWrapper .DTTT_button,
300
+ .wpDataTables .checkbox_filter.btn,
301
+ .wpDataTables .btn {
302
+ height: 30px !important;
303
+ }
304
+
305
+ .wpDataTables .checkbox_filter.btn {
306
+ font-size: inherit;
307
+ padding: 3px 0px;
308
+ }
309
+
310
+ .wpDataTables .checkbox_filter.btn:before {
311
+ font-size: 18px;
312
+ line-height: 18px;
313
+ margin-right: 5px;
314
+ margin-top: 0;
315
+ text-align: left;
316
+ }
317
+
318
+ /* Filters */
319
+ .wpDataTablesWrapper .wpDataTableFilterSection {
320
+ float: left;
321
+ padding: 15px;
322
+ }
323
+
324
+ .wpDataTablesFilter {
325
+ margin-bottom: 30px;
326
+ }
327
+
328
+ .wpDataTablesFilter .wpDataTableFilterSection {
329
+ float: left;
330
+ margin-bottom: 10px;
331
+ margin-right: 15px;
332
+ min-width: 180px;
333
+ }
334
+
335
+ .wpDataTablesFilter .filter_select .selecter {
336
+ width: 100% !important;
337
+ }
338
+
339
+ .wpDataTablesFilter .number_range_filter:first-child {
340
+ margin-right: 7px;
341
+ }
342
+
343
+ /* Processing */
344
+ .wpDataTables .overlayed {
345
+ position: relative;
346
+ pointer-events: none;
347
+ }
348
+
349
+ .wpDataTables .overlayed > * {
350
+ opacity: 0.3;
351
+ }
352
+
353
+ .wpDataTables .overlayed:after {
354
+ content: " ";
355
+ color: inherit;
356
+ font-size: 34px;
357
+ left: 50%;
358
+ margin-left: -15px;
359
+ margin-top: -20px;
360
+ opacity: 1;
361
+ position: absolute;
362
+ top: 50%;
363
+ -webkit-animation: spin 2s infinite linear;
364
+ -moz-animation: spin 2s infinite linear;
365
+ -o-animation: spin 2s infinite linear;
366
+ animation: spin 2s infinite linear;
367
+ }
368
+
369
+ @-moz-keyframes spin {
370
+ 0% {
371
+ -moz-transform: rotate(0deg);
372
+ }
373
+ 100% {
374
+ -moz-transform: rotate(359deg);
375
+ }
376
+ }
377
+ @-webkit-keyframes spin {
378
+ 0% {
379
+ -webkit-transform: rotate(0deg);
380
+ }
381
+ 100% {
382
+ -webkit-transform: rotate(359deg);
383
+ }
384
+ }
385
+ @-o-keyframes spin {
386
+ 0% {
387
+ -o-transform: rotate(0deg);
388
+ }
389
+ 100% {
390
+ -o-transform: rotate(359deg);
391
+ }
392
+ }
393
+ @-ms-keyframes spin {
394
+ 0% {
395
+ -ms-transform: rotate(0deg);
396
+ }
397
+ 100% {
398
+ -ms-transform: rotate(359deg);
399
+ }
400
+ }
401
+ @keyframes spin {
402
+ 0% {
403
+ transform: rotate(0deg);
404
+ }
405
+ 100% {
406
+ transform: rotate(359deg);
407
+ }
408
+ }
409
+ /* Plugins */
410
+ /* Plugins - Selecter */
411
+ .wpDataTables .selecter {
412
+ display: inline-block !important;
413
+ height: auto !important;
414
+ margin: 0px;
415
+ max-width: none !important;
416
+ min-width: 80px !important;
417
+ vertical-align: middle;
418
+ }
419
+
420
+ .wpDataTables .selecter .selecter-selected {
421
+ background-color: transparent !important;
422
+ background-image: none !important;
423
+ border: 1px solid !important;
424
+ }
425
+
426
+ .wpDataTables .selecter .selecter-selected:after {
427
+ border-color: transparent;
428
+ border-style: solid;
429
+ border-width: 5px 5px 0px 5px;
430
+ display: inline-block;
431
+ font-size: 0px;
432
+ float: right;
433
+ line-height: 0;
434
+ content: "";
435
+ height: 0px;
436
+ width: 0px;
437
+ margin: 8px -5px 0px 5px;
438
+
439
+ }
440
+
441
+ .wpDataTables .selecter .selecter-options {
442
+ -webkit-box-sizing: border-box;
443
+ -moz-box-sizing: border-box;
444
+ box-sizing: border-box;
445
+ border-style: solid;
446
+ border-width: 0px 1px 1px 1px;
447
+ width: 100%;
448
+ }
449
+
450
+ .wpDataTables .selecter .selecter-item {
451
+ border-style: none !important;
452
+ display: block !important;
453
+ width: auto !important;
454
+ }
455
+
456
+ /* Plugins - Picker */
457
+ .wpDataTables .picker.picker-checkbox.checked .picker-flag {
458
+ font-size: 14px;
459
+ background-image: none !important;
460
+ line-height: 12px;
461
+ text-align: center;
462
+ }
463
+
464
+ .wpDataTables .picker.picker-radio .picker-handle {
465
+ text-align: center;
466
+ }
467
+
468
+ .wpDataTables .picker.picker-radio .picker-flag {
469
+ display: inline-block;
470
+ }
471
+
472
+ /* Modals (Remodal, Datepicker) */
473
+ /* Modals (Remodal) */
474
+ .remodal-overlay {
475
+ filter: none !important;
476
+ }
477
+
478
+ .remodal.wdtRemodal {
479
+ -webkit-box-shadow: none !important;
480
+ box-shadow: none !important;
481
+ font-size: inherit !important;
482
+ padding-top: 15px !important;
483
+ text-align: left;
484
+ }
485
+
486
+ .wdtRemodal .remodal-close {
487
+ display: inline-block !important;
488
+ width: auto !important;
489
+ height: auto !important;
490
+ -webkit-border-radius: 0px !important;
491
+ border-radius: 0px !important;
492
+ border-style: none !important;
493
+ left: auto !important;
494
+ right: 10px !important;
495
+ top: 5px !important;
496
+ }
497
+
498
+ .remodal.wdtRemodal .remodal-close:after {
499
+ font-size: 18px !important;
500
+ }
501
+
502
+ .remodal.wdtRemodal > h1 {
503
+ margin-bottom: 15px;
504
+ margin-top: 0px;
505
+ }
506
+
507
+ .remodal.wdtRemodal .btn {
508
+ border: 1px solid;
509
+ font-weight: normal;
510
+ margin: 5px 10px 5px 0px;
511
+ }
512
+
513
+ /* Modals - Filter dialog */
514
+ .wdtCheckboxModalWrap {
515
+ margin-bottom: 15px;
516
+ }
517
+
518
+ .wdtCheckboxModalWrap:before,
519
+ .wdtCheckboxModalWrap:after {
520
+ content: " ";
521
+ display: table;
522
+ }
523
+ .wdtCheckboxModalWrap:after,
524
+ .wdtCheckboxModalWrap:after {
525
+ clear: both;
526
+ }
527
+
528
+ /* Modals - Edit dialog */
529
+ .wdtEditDialog table {
530
+ margin-bottom: 15px;
531
+ }
532
+
533
+ .wdtEditDialog td {
534
+ padding-bottom: 9px;
535
+ vertical-align: top;
536
+ }
537
+
538
+ .wdtEditDialog td > label {
539
+ margin-right: 15px;
540
+ }
541
+
542
+ .wdtEditDialog input[type="text"] {
543
+ width: 100% !important;
544
+ }
545
+
546
+ .wdtEditDialog td > .selecter {
547
+ display: block !important;
548
+ width: auto !important;
549
+ }
550
+
551
+ /* Modals (Datepicker) */
552
+ .wpDataTables .picker,
553
+ .wpDataTables .picker__box {
554
+ font-size: inherit !important;
555
+ }
556
+
557
+ .wpDataTables .picker__header {
558
+ margin-top: 0px !important;
559
+ padding-top: .75em !important;
560
+ }
561
+
562
+ .wpDataTables .picker__nav--prev,
563
+ .wpDataTables .picker__nav--next {
564
+ margin: 0.33em 0em 0em 0em !important;
565
+ top: 0px !important;
566
+ }
567
+
568
+ .wpDataTables .picker__nav--prev:before,
569
+ .wpDataTables .picker__nav--next:before {
570
+ border-style: none !important;
571
+ font-size: 18px !important;
572
+ height: auto !important;
573
+ width: auto !important;
574
+ }
575
+
576
+ .wpDataTables .picker__weekday {
577
+ border-width: 1px !important;
578
+ text-align: center !important;
579
+ }
580
+
581
+ .wpDataTables .picker__table {
582
+ border-collapse: separate !important;
583
+ border-spacing: 2px !important;
584
+ }
585
+
586
+ .wpDataTables .picker__table th,
587
+ .wpDataTables .picker__table td {
588
+ font-size: inherit !important;
589
+ border-style: none !important;
590
+ }
591
+
592
+ .wpDataTables .picker__table th {
593
+ padding: 0px 0px 10px 0px !important;
594
+ }
595
+
596
+ .wpDataTables .picker__table td {
597
+ padding: 0px !important;
598
+ }
599
+
600
+ .wpDataTables .picker__footer {
601
+ margin-top: 15px;
602
+ text-align: center;
603
+ }
604
+
605
+ .wpDataTables .picker__footer button {
606
+ border: 1px solid;
607
+ display: inline !important;
608
+ margin: 5px 10px;
609
+ max-width: 200px !important;
610
+ position: relative;
611
+ vertical-align: middle !important;
612
+ }
613
+
614
+ .wpDataTables .picker__button--today:before {
615
+ margin-right: 0px !important;
616
+ position: absolute !important;
617
+ right: 3px !important;
618
+ top: 3px !important;
619
+ }
620
+
621
+ .wpDataTables .picker__button--clear:before {
622
+ font-size: 1em !important;
623
+ height: auto !important;
624
+ margin-right: 15px !important;
625
+ vertical-align: middle !important;
626
+ }
627
+
628
+ @media (min-height: 33.875em) {
629
+ .wpDataTables .picker--opened .picker__holder .picker__frame {
630
+ margin-top: -200px;
631
+ top: 50% !important;
632
+ bottom: auto !important;
633
+ }
634
+ .wpDataTables .picker__box {
635
+ -webkit-border-radius: 5px !important;
636
+ -moz-border-radius: 5px !important;
637
+ border-radius: 5px !important;
638
+ }
639
+ }
640
+
641
+ /* Responsive */
642
+
643
+ @media (max-width: 979px) {
644
+ .wpDataTablesWrapper .dataTables_filter input {
645
+ width: 100px;
646
+ }
647
+ }
648
+
649
+ @media (max-width: 750px) {
650
+ .wpDataTablesWrapper .dataTables_filter input {
651
+ width: 200px;
652
+ }
653
+ .wpDataTablesWrapper .DTTT_container,
654
+ .wpDataTablesWrapper .dataTables_length,
655
+ .wpDataTablesWrapper .dataTables_filter {
656
+ float: none !important;
657
+ margin-bottom: 10px;
658
+ text-align: left !important;
659
+ }
660
+ .wpDataTablesWrapper .DTTT_container {
661
+ margin-left: 0px !important;
662
+ }
663
+ .wpDataTablesWrapper .DTTT_container button {
664
+ display: none;
665
+ }
666
+ .wpDataTablesWrapper .DTTT_container button.edit_table,
667
+ .wpDataTablesWrapper .DTTT_container button.new_table_entry,
668
+ .wpDataTablesWrapper .DTTT_container button.delete_table_entry {
669
+ display: inline-block;
670
+ float: none !important;
671
+ position: static;
672
+ }
673
+ }
674
+
675
+ /* Icons */
676
+ @font-face {
677
+ font-weight: normal;
678
+ font-style: normal;
679
+ font-family: 'WPDataTablesIcons';
680
+ src: url('../fonts/wpdatatablesicons-base.eot');
681
+ src: url('../fonts/wpdatatablesicons-base.eot?#iefix') format('embedded-opentype'),
682
+ url('../fonts/wpdatatablesicons-base.woff') format('woff'),
683
+ url('../fonts/wpdatatablesicons-base.ttf') format('truetype'),
684
+ url('../fonts/wpdatatablesicons-base.svg#wpdatatablesicons-base') format('svg');
685
+ }
686
+
687
+ .wpDataTablesWrapper .dataTables_paginate > .paginate_button {
688
+ font:0/0 a;
689
+ background-color: transparent;
690
+ border: 0;
691
+ text-shadow: none;
692
+ text-indent: -9999em;
693
+ }
694
+
695
+ .wpDataTablesWrapper .paginate_button:before,
696
+ .wpDataTablesWrapper .DTTT_button:before,
697
+ .wpDataTablesWrapper table.has-columns-hidden span.responsiveExpander:before,
698
+ .wpDataTablesWrapper .checkbox_filter.btn:before,
699
+ .wpDataTables .picker__nav--prev:before,
700
+ .wpDataTables .picker__nav--next:before,
701
+ .remodal.wdtRemodal .remodal-close:after,
702
+ .wpDataTables .picker.picker-checkbox.checked .picker-flag:before,
703
+ .wpDataTables .picker__button--clear:before,
704
+ .wpDataTables .overlayed:after {
705
+ display: inline-block;
706
+ font-family: 'WPDataTablesIcons' !important;
707
+ font-style: normal;
708
+ font-weight: normal;
709
+ text-align: center;
710
+ text-decoration: none;
711
+ vertical-align: middle;
712
+ -webkit-font-smoothing: antialiased;
713
+ }
714
+
715
+ .wpDataTablesWrapper .paginate_button.next:before,
716
+ .wpDataTables .picker__nav--next:before {
717
+ content: "\e001" !important;
718
+ }
719
+
720
+ .wpDataTablesWrapper .paginate_button.previous:before,
721
+ .wpDataTables .picker__nav--prev:before {
722
+ content: "\e002" !important;
723
+ }
724
+
725
+ .wpDataTablesWrapper .paginate_button.last:before {
726
+ content: "\e003";
727
+ }
728
+
729
+ .wpDataTablesWrapper .paginate_button.first:before {
730
+ content: "\e004";
731
+ }
732
+
733
+ .wdtRemodal .remodal-close:after,
734
+ .wpDataTables .picker__button--clear:before {
735
+ content: "\e005" !important;
736
+ }
737
+
738
+ .wpDataTablesWrapper .DTTT_button.DTTT_button_new:before,
739
+ .wpDataTablesWrapper table.has-columns-hidden span.responsiveExpander:before {
740
+ content: "\e006";
741
+ }
742
+
743
+ .wpDataTablesWrapper table.has-columns-hidden tr.detail-show span.responsiveExpander:before {
744
+ content: "\e007";
745
+ }
746
+
747
+ .wpDataTables .picker.picker-checkbox.checked .picker-flag:before {
748
+ content: "\e008";
749
+ }
750
+
751
+ .wpDataTables .overlayed:after {
752
+ content: "\e009";
753
+ }
754
+
755
+ .wpDataTablesWrapper .checkbox_filter.btn:before {
756
+ content: "\e00a";
757
+ }
758
+
759
+ .wpDataTablesWrapper .DTTT_button.DTTT_button_delete:before {
760
+ content: "\e00b";
761
+ }
762
+
763
+ .wpDataTablesWrapper .DTTT_button.DTTT_button_edit:before {
764
+ content: "\e00c";
765
+ }
766
+
767
+ .wpDataTablesWrapper .ico-search:before {
768
+ content: "\e00d";
769
+ }
770
+
771
+ .wpDataTablesWrapper .ico-cntrl:before {
772
+ content: "\e00e";
773
+ }
774
+
775
+ .wpDataTablesWrapper .DTTT_button.DTTT_button_print:before {
776
+ content: "\e00f";
777
+ }
778
+
779
+ .wpDataTablesWrapper .DTTT_button.DTTT_button_xls:before {
780
+ content: "\e010";
781
+ }
782
+
783
+ .wpDataTablesWrapper .ico-cal-day:before {
784
+ content: "\e011";
785
+ }
786
+
787
+ .wpDataTablesWrapper .ico-cal-ok:before {
788
+ content: "\e012";
789
+ }
790
+
791
+ .wpDataTablesWrapper .DTTT_button.DTTT_button_pdf:before {
792
+ content: "\e013";
793
+ }
794
+
795
+ .wpDataTablesWrapper .DTTT_button.DTTT_button_csv:before {
796
+ content: "\e014";
797
+ }
798
+
799
+ .wpDataTablesWrapper .DTTT_button.DTTT_button_copy:before {
800
+ content: "\e015";
801
+ }
802
+
803
+
assets/css/wpDataTablesSkin.css ADDED
@@ -0,0 +1,411 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* WPDataTables skin styles */
2
+
3
+ .wpDataTablesWrapper table.wpDataTable thead th {
4
+ font-weight: bold;
5
+ }
6
+
7
+ .wpDataTablesWrapper table.wpDataTable { /* table font color */
8
+ color: #333;
9
+ }
10
+
11
+ .wpDataTablesWrapper table.wpDataTable thead th {
12
+ background-color: #ffffff; /* th background color */
13
+ border-color: #cccccc; /* th border color */
14
+ color: #333333; /* th font color */
15
+ -o-transition:.5s;
16
+ -ms-transition:.5s;
17
+ -moz-transition:.5s;
18
+ -webkit-transition:.5s;
19
+ transition:.5s;
20
+ }
21
+
22
+ .wpDataTablesWrapper table.wpDataTable thead tr th {
23
+ -o-transition:.5s;
24
+ -ms-transition:.5s;
25
+ -moz-transition:.5s;
26
+ -webkit-transition:.5s;
27
+ transition:.5s;
28
+ }
29
+
30
+ .wpDataTablesWrapper table.wpDataTable thead th.sorting_asc,
31
+ .wpDataTablesWrapper table.wpDataTable thead th.sorting_desc,
32
+ .wpDataTablesWrapper table.wpDataTable thead th.sorting:hover {
33
+ background-color: #f0f0f0; /* th active/hover background color */
34
+ }
35
+
36
+ .wpDataTablesWrapper table.wpDataTable thead th.sorting:after,
37
+ .wpDataTablesWrapper table.wpDataTable thead th.sorting_asc:after {
38
+ border-bottom-color: #333333; /* th caret color = th font color */
39
+ }
40
+
41
+ .wpDataTablesWrapper table.wpDataTable thead th.sorting_desc:after {
42
+ border-top-color: #333333; /* th caret color = th font color */
43
+ }
44
+
45
+ .wpDataTablesWrapper table.wpDataTable td {
46
+ border-color: #e0e0e0; /* td inner border color */
47
+ -o-transition:.5s;
48
+ -ms-transition:.5s;
49
+ -moz-transition:.5s;
50
+ -webkit-transition:.5s;
51
+ transition:.5s;
52
+ }
53
+
54
+ .wpDataTablesWrapper table.wpDataTable tr:last-child td {
55
+ border-bottom-color: #c6c6c6; /* table outer border color */
56
+ }
57
+
58
+ .wpDataTablesWrapper table.wpDataTable tr td:first-child {
59
+ border-left-color: #c6c6c6; /* table outer border color */
60
+ }
61
+
62
+ .wpDataTablesWrapper table.wpDataTable tr td:last-child {
63
+ border-right-color: #c6c6c6; /* table outer border color */
64
+ }
65
+
66
+ .wpDataTablesWrapper table.wpDataTable tr.odd td {
67
+ background-color: #f5f5f5; /* odd rows background color */
68
+ }
69
+
70
+ .wpDataTablesWrapper table.wpDataTable tr.even td {
71
+ background-color: #ffffff; /* even rows background color */
72
+ }
73
+
74
+ .wpDataTablesWrapper table.wpDataTable tr.odd td.sorting_1 {
75
+ background-color: #eeeeee; /* odd rows active background color */
76
+ }
77
+
78
+ .wpDataTablesWrapper table.wpDataTable tr.even td.sorting_1 {
79
+ background-color: #f8f8f8; /* even rows active background color */
80
+ }
81
+
82
+ .wpDataTablesWrapper table.wpDataTable tr.odd:hover > td,
83
+ .wpDataTablesWrapper table.wpDataTable tr.odd:hover > td.sorting_1,
84
+ .wpDataTablesWrapper table.wpDataTable tr.even:hover > td,
85
+ .wpDataTablesWrapper table.wpDataTable tr.even:hover > td.sorting_1 {
86
+ background-color: #e8e8e8; /* rows hover background color */
87
+ }
88
+
89
+ .wpDataTablesWrapper table.wpDataTable tr.odd.selected > td,
90
+ .wpDataTablesWrapper table.wpDataTable tr.odd.selected > td.sorting_1,
91
+ .wpDataTablesWrapper table.wpDataTable tr.even.selected > td,
92
+ .wpDataTablesWrapper table.wpDataTable tr.even.selected > td.sorting_1 {
93
+ background-color: #faf8e2; /* selected rows background color */
94
+ }
95
+
96
+ .wpDataTablesWrapper .dataTables_paginate a,
97
+ .wpDataTablesWrapper .paging_full_numbers a.paginate_button {
98
+ background-color: transparent;
99
+ border-style: none;
100
+ color: inherit !important;
101
+ line-height: 2em;
102
+ text-decoration: none !important;
103
+ -o-transition:.5s;
104
+ -ms-transition:.5s;
105
+ -moz-transition:.5s;
106
+ -webkit-transition:.5s;
107
+ transition:.5s;
108
+ }
109
+
110
+ .wpDataTablesWrapper .paging_full_numbers a.paginate_button,
111
+ .wpDataTablesWrapper .paging_full_numbers a.paginate_active {
112
+ -webkit-border-radius: 0px;
113
+ -moz-border-radius: 0px;
114
+ border-radius: 0px;
115
+ }
116
+
117
+ .wpDataTablesWrapper .paging_full_numbers a.paginate_active,
118
+ .wpDataTablesWrapper .dataTables_paginate a,
119
+ .wpDataTablesWrapper .paging_full_numbers a.paginate_button,
120
+ .wpDataTablesWrapper .paging_full_numbers a.paginate_button:hover {
121
+ background: transparent;
122
+ border-style: none;
123
+ color: inherit !important;
124
+ }
125
+
126
+ .wpDataTablesWrapper .paginate_button_disabled {
127
+ opacity: 0.4;
128
+ cursor: default !important;
129
+ }
130
+
131
+ .wpDataTablesWrapper .paging_full_numbers a.paginate_active {
132
+ border-bottom: 1px dotted;
133
+ }
134
+
135
+ .wpDataTablesWrapper button.DTTT_button,
136
+ .wpDataTablesWrapper div.DTTT_button,
137
+ .wpDataTablesWrapper a.DTTT_button,
138
+ .wpDataTablesWrapper button.DTTT_button:hover,
139
+ .wpDataTablesWrapper div.DTTT_button:hover,
140
+ .wpDataTablesWrapper a.DTTT_button:hover {
141
+ background-color: transparent;
142
+ background-image: none;
143
+ -webkit-border-radius: 0px;
144
+ -moz-border-radius: 0px;
145
+ -ms-border-radius: 0px;
146
+ -o-border-radius: 0px;
147
+ border-radius: 0px;
148
+ -webkit-box-shadow: none;
149
+ -moz-box-shadow: none;
150
+ box-shadow: none;
151
+ }
152
+
153
+ .wpDataTablesWrapper .DTTT_button {
154
+ opacity: 0.7;
155
+ }
156
+
157
+ .wpDataTablesWrapper .DTTT_button {
158
+ opacity: 0.7;
159
+ }
160
+
161
+ .wpDataTablesWrapper .DTTT_button:hover {
162
+ opacity: 1;
163
+ }
164
+
165
+ .wpDataTablesWrapper .DTTT_button[disabled="disabled"] {
166
+ opacity: 0.4;
167
+ }
168
+
169
+ .wpDataTablesWrapper .checkbox_filter.btn {
170
+ background-color: transparent;
171
+ background-image: none;
172
+ color: inherit;
173
+ border-radius: 0px !important;
174
+ -webkit-box-shadow: none !important;
175
+ -moz-box-shadow: none !important;
176
+ box-shadow: none !important;
177
+ }
178
+
179
+ .wpDataTablesWrapper .checkbox_filter.btn:before {
180
+ opacity: 0.4;
181
+ }
182
+
183
+ .wpDataTablesWrapper .checkbox_filter.btn:hover:before {
184
+ opacity: 1;
185
+ }
186
+
187
+ /* Skin - buttons and selector plugin */
188
+ .wpDataTables .selecter .selecter-selected,
189
+ .remodal.wdtRemodal .btn {
190
+ background-color: #fdfdfd !important; /** buttons background color */
191
+ border-color: #cccccc !important; /** buttons border color */
192
+ background-image: none !important;
193
+ color: #333333; /** buttons font color */
194
+ border-radius: 3px !important; /** buttons and inputs border radius */
195
+ -webkit-box-shadow: none !important;
196
+ -moz-box-shadow: none !important;
197
+ box-shadow: none !important;
198
+ }
199
+
200
+ .wpDataTables .selecter .selecter-selected:after {
201
+ border-top-color: #333333; /** buttons font color */
202
+ opacity: 0.5;
203
+ }
204
+
205
+ .wpDataTables .selecter .selecter-selected:hover,
206
+ .wpDataTables .selecter.open .selecter-selected,
207
+ .remodal.wdtRemodal .btn:hover {
208
+ background-color: #f5f5f5 !important; /** buttons background hover color */
209
+ border-color: #a1a1a1 !important; /** buttons hover border color */
210
+ color: #000000; /** buttons hover font color */
211
+ -webkit-box-shadow: none !important;
212
+ -moz-box-shadow: none !important;
213
+ box-shadow: none !important;
214
+ }
215
+
216
+ .wpDataTables .selecter.open .selecter-selected,
217
+ .wpDataTables .selecter.focus .selecter-selected {
218
+ border-bottom-left-radius: 0px !important;
219
+ border-bottom-right-radius: 0px !important;
220
+ }
221
+
222
+
223
+ .wpDataTables .selecter.open .selecter-selected:after,
224
+ .wpDataTables .selecter.focus .selecter-selected:after {
225
+ border-top-color: #333333; /** buttons font color */
226
+ opacity: 0.6;
227
+ }
228
+
229
+ .wpDataTables .selecter .selecter-selected:hover:after {
230
+ opacity: 1;
231
+ }
232
+
233
+ .wpDataTables .selecter .selecter-options {
234
+ background-color: #fdfdfd !important; /** buttons background color */
235
+ border-color: #cccccc !important; /** buttons border color */
236
+ border-radius: 0px 0px 3px 3px !important; /** buttons and inputs border radius */
237
+ }
238
+
239
+ .wpDataTables .selecter .selecter-item {
240
+ background-color: transparent !important;
241
+ color: #333333; /** buttons font color */
242
+ }
243
+
244
+ .wpDataTables .selecter .selecter-item:last-child {
245
+ border-radius: 0px 0px 2px 2px !important; /** (buttons and inputs border radius) - 1 */
246
+ }
247
+
248
+ .wpDataTables .selecter.open .selecter-item:hover,
249
+ .wpDataTables .selecter .selecter-item.selected {
250
+ background-color: #f5f5f5 !important; /** buttons background hover color */
251
+ color: #000000; /** buttons hover font color */
252
+ }
253
+
254
+ /* Plugins - Picker */
255
+ .wpDataTables .picker .picker-handle,
256
+ .wpDataTables .picker.focus .picker-handle {
257
+ border-color: #333333 !important; /** modals font color */
258
+ }
259
+ .wpDataTables .picker.picker-checkbox .picker-flag,
260
+ .wpDataTables .picker .picker-label {
261
+ color: #333333 !important; /** modals font color */
262
+ }
263
+ .wpDataTables .picker.picker-checkbox.checked .picker-flag {
264
+ background-color: transparent;
265
+ }
266
+
267
+ .wpDataTables .picker.picker-checkbox .picker-handle {
268
+ opacity: 0.5;
269
+ }
270
+
271
+ .wpDataTables .picker.picker-checkbox:hover .picker-handle,
272
+ .wpDataTables .picker.picker-checkbox .picker-handle:focus,
273
+ .wpDataTables .picker.picker-checkbox.checked .picker-handle {
274
+ opacity: 1;
275
+ }
276
+
277
+ /* Skin - modals (Remodal, Datepicker) */
278
+ .remodal-overlay,
279
+ .wpDataTablesWrapper .picker--opened .picker__holder {
280
+ background-color: rgba(0,0,0,0.8) !important; /** overlays background color */
281
+ }
282
+
283
+ .remodal.wdtRemodal,
284
+ .wpDataTables .picker__box {
285
+ background-color: #ffffff !important; /** modals background color */
286
+ color: #333333 !important; /** modals font color */
287
+ }
288
+
289
+ /* Skin - modals (Remodal) */
290
+ .wdtRemodal .remodal-close {
291
+ background-color: transparent !important;
292
+ color: inherit !important;
293
+ }
294
+
295
+ .remodal.wdtRemodal .remodal-close:after {
296
+ background-color: transparent !important;
297
+ color: inherit !important;
298
+ opacity: 0.5;
299
+ }
300
+
301
+ .remodal.wdtRemodal .remodal-close:hover:after {
302
+ opacity: 1;
303
+ }
304
+
305
+ /* Skin - modals (Datepicker) */
306
+ .wpDataTables .picker__box {
307
+ border-style: none !important;
308
+ -webkit-box-shadow: none !important;
309
+ -moz-box-shadow: none !important;
310
+ box-shadow: none !important;
311
+ }
312
+
313
+ .wpDataTables .picker__nav--prev,
314
+ .wpDataTables .picker__nav--next {
315
+ background-color: transparent !important;
316
+ opacity: 0.6;
317
+ }
318
+
319
+ .wpDataTables .picker__nav--prev:hover,
320
+ .wpDataTables .picker__nav--next:hover {
321
+ background-color: transparent !important;
322
+ opacity: 1;
323
+ }
324
+
325
+ .wpDataTables .picker__nav--disabled,
326
+ .wpDataTables .picker__nav--disabled:hover,
327
+ .wpDataTables .picker__nav--disabled:before,
328
+ .wpDataTables .picker__nav--disabled:before:hover {
329
+ opacity: 0.3;
330
+ }
331
+
332
+ .wpDataTables .picker__year {
333
+ color: inherit !important;
334
+ font-style: normal !important;
335
+ opacity: 0.7;
336
+ }
337
+
338
+ .wpDataTables .picker__weekday {
339
+ background-color: transparent !important;
340
+ color: #333333 !important; /** modals font color */
341
+ }
342
+
343
+ .wpDataTables .picker__day--outfocus {
344
+ color: inherit !important;
345
+ opacity: 0.5;
346
+ }
347
+
348
+ .wpDataTables .picker__day--today,
349
+ .wpDataTables .picker__day--infocus:hover,
350
+ .wpDataTables .picker__day--outfocus:hover,
351
+ .wpDataTables .picker__footer button {
352
+ background-color: #fdfdfd !important; /** buttons background color */
353
+ border-color: #cccccc !important; /** buttons border color */
354
+ color: #333333 !important; /** buttons font color */
355
+ }
356
+
357
+ .wpDataTables .picker__day--infocus,
358
+ .wpDataTables .picker__day--outfocus,
359
+ .wpDataTables .picker__footer button {
360
+ border-radius: 3px !important; /** buttons and inputs border radius */
361
+ }
362
+
363
+ .wpDataTables .picker__day--today:hover,
364
+ .wpDataTables .picker--focused .picker__day--highlighted,
365
+ .wpDataTables .picker__day--highlighted:hover,
366
+ .wpDataTables .picker__day--outfocus.picker__day--selected,
367
+ .wpDataTables .picker__footer button:hover {
368
+ background-color: #f5f5f5 !important; /** buttons background hover color */
369
+ border-color: #a1a1a1 !important; /** buttons hover border color */
370
+ color: #000000 !important; /** buttons hover font color */
371
+ }
372
+
373
+ .wpDataTables .picker__day--today:before {
374
+ border-top-color: #333333 !important; /** buttons font color */
375
+ }
376
+
377
+ .wpDataTables .picker__day--today:hover:after,
378
+ .wpDataTables .picker--focused .picker__day--today.picker__day--highlighted:after,
379
+ .wpDataTables .picker__day--today.picker__day--selected:after {
380
+ border-top-color: #000000 !important; /** buttons hover font color */
381
+ }
382
+
383
+ .wpDataTables .picker__button--today:before {
384
+ border-top-color: #333333 !important; /** buttons font color */
385
+ }
386
+
387
+ .wpDataTables .picker__button--today:hover:before {
388
+ border-top-color: #000000 !important; /** buttons hover font color */
389
+ }
390
+
391
+ .wpDataTables .picker__button--clear:before {
392
+ color: #333333 !important; /** buttons font color */
393
+ }
394
+
395
+ .wpDataTables .picker__button--clear:hover:before {
396
+ color: #000000 !important; /** buttons hover font color */
397
+ }
398
+
399
+ /* Responsive table skin styles */
400
+ .wpDataTablesWrapper table.has-columns-hidden span.responsiveExpander {
401
+ opacity: 0.6;
402
+ }
403
+
404
+ .wpDataTablesWrapper table.has-columns-hidden span.responsiveExpander:hover {
405
+ opacity: 1;
406
+ }
407
+
408
+ .wpDataTablesWrapper table.has-columns-hidden tr.row-detail > td {
409
+ background-color: #ffffff; /* even rows background color */
410
+ }
411
+
assets/css/wpDataTablesSkin_1.css ADDED
@@ -0,0 +1,472 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* WPDataTables skin styles */
2
+
3
+ .wpDataTablesWrapper table.wpDataTable thead th {
4
+ font-weight: bold;
5
+ }
6
+
7
+ .wpDataTablesWrapper table.wpDataTable { /* table font color */
8
+ color: #333;
9
+ }
10
+
11
+ .wpDataTablesWrapper table.wpDataTable thead th,
12
+ .wpDataTablesWrapper table.wpDataTable thead th.sorting {
13
+ background-color: #313131; /* th background color */
14
+ background-image: -webkit-gradient(linear,0 0,0 100%,from(#4c4c4c),to(#313131)) !important;
15
+ background-image: -webkit-linear-gradient(top,#4c4c4c,#313131) !important;
16
+ background-image: -o-linear-gradient(top,#4c4c4c,#313131) !important;
17
+ background-image: linear-gradient(to bottom,#4c4c4c,#313131) !important;
18
+ background-image: -moz-linear-gradient(top,#4c4c4c,#313131) !important;
19
+ background-repeat: repeat-x;
20
+ filter: progid:dximagetransform.microsoft.gradient(startColorstr= '#ff4c4c4c',endColorstr= '#ff313131',GradientType= 0) !important;
21
+ border-color: #000000; /* th border color */
22
+ border-left-color:#545454;
23
+ border-left-color:rgba(255,255,255,0.15);
24
+ color: #ffffff; /* th font color */
25
+ -o-transition:.5s;
26
+ -ms-transition:.5s;
27
+ -moz-transition:.5s;
28
+ -webkit-transition:.5s;
29
+ transition:.5s;
30
+ -webkit-box-shadow: 0 1px 0 rgba(255,255,255,0.2) inset;
31
+ -moz-box-shadow: 0 1px 0 rgba(255,255,255,0.2) inset;
32
+ box-shadow: 0 1px 0 rgba(255,255,255,0.2) inset;
33
+ text-shadow: 0 -1px 0 rgba(0,0,0,0.5);
34
+ }
35
+
36
+ .wpDataTablesWrapper table.wpDataTable thead th:first-child {
37
+ border-left-color: #000000;
38
+ -webkit-box-shadow: 1px 1px 0 rgba(255, 255, 255, 0.2) inset;
39
+ -moz-box-shadow: 1px 1px 0 rgba(255, 255, 255, 0.2) inset;
40
+ box-shadow: 1px 1px 0 rgba(255, 255, 255, 0.2) inset;
41
+ }
42
+
43
+ .wpDataTablesWrapper table.wpDataTable thead tr th {
44
+ -o-transition:.5s;
45
+ -ms-transition:.5s;
46
+ -moz-transition:.5s;
47
+ -webkit-transition:.5s;
48
+ transition:.5s;
49
+ }
50
+
51
+ .wpDataTablesWrapper table.wpDataTable thead th.sorting_asc,
52
+ .wpDataTablesWrapper table.wpDataTable thead th.sorting_desc,
53
+ .wpDataTablesWrapper table.wpDataTable thead th.sorting:hover {
54
+ background-color: #000000; /* th active/hover background color */
55
+ background-image: -webkit-gradient(linear,0 0,0 100%,from(#313131),to(#000)) !important;
56
+ background-image: -webkit-linear-gradient(top,#313131,#000) !important;
57
+ background-image: -o-linear-gradient(top,#313131,#000) !important;
58
+ background-image: linear-gradient(to bottom,#313131,#000) !important;
59
+ background-image: -moz-linear-gradient(top,#313131,#000) !important;
60
+ filter: progid:dximagetransform.microsoft.gradient(startColorstr= '#ff313131',endColorstr= '#ff000000',GradientType= 0) !important;
61
+ }
62
+
63
+ .wpDataTablesWrapper table.wpDataTable thead th.sorting:after,
64
+ .wpDataTablesWrapper table.wpDataTable thead th.sorting_asc:after {
65
+ border-bottom-color: #ffffff; /* th caret color = th font color */
66
+ }
67
+
68
+ .wpDataTablesWrapper table.wpDataTable thead th.sorting_desc:after {
69
+ border-top-color: #ffffff; /* th caret color = th font color */
70
+ }
71
+
72
+ .wpDataTablesWrapper table.wpDataTable td {
73
+ border-color: #e0e0e0; /* td inner border color */
74
+ -o-transition:.5s;
75
+ -ms-transition:.5s;
76
+ -moz-transition:.5s;
77
+ -webkit-transition:.5s;
78
+ transition:.5s;
79
+ }
80
+
81
+ .wpDataTablesWrapper table.wpDataTable tr:last-child td {
82
+ border-bottom-color: #c6c6c6; /* table outer border color */
83
+ }
84
+
85
+ .wpDataTablesWrapper table.wpDataTable tr td:first-child {
86
+ border-left-color: #c6c6c6; /* table outer border color */
87
+ }
88
+
89
+ .wpDataTablesWrapper table.wpDataTable tr td:last-child {
90
+ border-right-color: #c6c6c6; /* table outer border color */
91
+ }
92
+
93
+ .wpDataTablesWrapper table.wpDataTable tr.odd td {
94
+ background-color: #f5f5f5; /* odd rows background color */
95
+ }
96
+
97
+ .wpDataTablesWrapper table.wpDataTable tr.even td {
98
+ background-color: #ffffff; /* even rows background color */
99
+ }
100
+
101
+ .wpDataTablesWrapper table.wpDataTable tr.odd td.sorting_1 {
102
+ background-color: #dbeaf6; /* odd rows active background color */
103
+ }
104
+
105
+ .wpDataTablesWrapper table.wpDataTable tr.even td.sorting_1 {
106
+ background-color: #f0f6fb; /* even rows active background color */
107
+ }
108
+
109
+ .wpDataTablesWrapper table.wpDataTable tr.odd:hover > td,
110
+ .wpDataTablesWrapper table.wpDataTable tr.odd:hover > td.sorting_1,
111
+ .wpDataTablesWrapper table.wpDataTable tr.even:hover > td,
112
+ .wpDataTablesWrapper table.wpDataTable tr.even:hover > td.sorting_1 {
113
+ background-color: #f0f6fb; /* rows hover background color */
114
+ }
115
+
116
+ .wpDataTablesWrapper table.wpDataTable tr.odd.selected > td,
117
+ .wpDataTablesWrapper table.wpDataTable tr.odd.selected > td.sorting_1,
118
+ .wpDataTablesWrapper table.wpDataTable tr.even.selected > td,
119
+ .wpDataTablesWrapper table.wpDataTable tr.even.selected > td.sorting_1 {
120
+ background-color: #dbeaf6; /* selected rows background color */
121
+ }
122
+
123
+ .wpDataTablesWrapper .dataTables_paginate a,
124
+ .wpDataTablesWrapper .paging_full_numbers a.paginate_button {
125
+ background-color: transparent;
126
+ border-style: none;
127
+ color: inherit !important;
128
+ line-height: 2em;
129
+ text-decoration: none !important;
130
+ -o-transition:.5s;
131
+ -ms-transition:.5s;
132
+ -moz-transition:.5s;
133
+ -webkit-transition:.5s;
134
+ transition:.5s;
135
+ }
136
+
137
+ .wpDataTablesWrapper .paging_full_numbers a.paginate_button,
138
+ .wpDataTablesWrapper .paging_full_numbers a.paginate_active {
139
+ -webkit-border-radius: 0px;
140
+ -moz-border-radius: 0px;
141
+ border-radius: 0px;
142
+ }
143
+
144
+ .wpDataTablesWrapper .paging_full_numbers a.paginate_active,
145
+ .wpDataTablesWrapper .dataTables_paginate a,
146
+ .wpDataTablesWrapper .paging_full_numbers a.paginate_button,
147
+ .wpDataTablesWrapper .paging_full_numbers a.paginate_button:hover {
148
+ background: transparent;
149
+ border-style: none;
150
+ color: inherit !important;
151
+ }
152
+
153
+ .wpDataTablesWrapper .paginate_button_disabled {
154
+ opacity: 0.4;
155
+ cursor: default !important;
156
+ }
157
+
158
+ .wpDataTablesWrapper .paging_full_numbers a.paginate_active {
159
+ border-bottom: 1px dotted;
160
+ }
161
+
162
+ .wpDataTablesWrapper button.DTTT_button,
163
+ .wpDataTablesWrapper div.DTTT_button,
164
+ .wpDataTablesWrapper a.DTTT_button,
165
+ .wpDataTablesWrapper button.DTTT_button:hover,
166
+ .wpDataTablesWrapper div.DTTT_button:hover,
167
+ .wpDataTablesWrapper a.DTTT_button:hover {
168
+ background-color: transparent;
169
+ background-image: none;
170
+ -webkit-border-radius: 0px;
171
+ -moz-border-radius: 0px;
172
+ -ms-border-radius: 0px;
173
+ -o-border-radius: 0px;
174
+ border-radius: 0px;
175
+ -webkit-box-shadow: none;
176
+ -moz-box-shadow: none;
177
+ box-shadow: none;
178
+ }
179
+
180
+ .wpDataTablesWrapper .DTTT_button {
181
+ opacity: 0.7;
182
+ }
183
+
184
+ .wpDataTablesWrapper .DTTT_button {
185
+ opacity: 0.7;
186
+ }
187
+
188
+ .wpDataTablesWrapper .DTTT_button:hover {
189
+ opacity: 1;
190
+ }
191
+
192
+ .wpDataTablesWrapper .DTTT_button[disabled="disabled"] {
193
+ opacity: 0.4;
194
+ }
195
+
196
+ .wpDataTablesWrapper .checkbox_filter.btn {
197
+ background-color: transparent;
198
+ background-image: none;
199
+ color: inherit;
200
+ border-radius: 0px !important;
201
+ -webkit-box-shadow: none !important;
202
+ -moz-box-shadow: none !important;
203
+ box-shadow: none !important;
204
+ }
205
+
206
+ .wpDataTablesWrapper .checkbox_filter.btn:before {
207
+ opacity: 0.4;
208
+ }
209
+
210
+ .wpDataTablesWrapper .checkbox_filter.btn:hover:before {
211
+ opacity: 1;
212
+ }
213
+
214
+ /* Skin - buttons and selector plugin */
215
+ .wpDataTables .selecter .selecter-selected,
216
+ .remodal.wdtRemodal .btn {
217
+ background-color: #f5f5f5 !important; /** buttons background color */
218
+ background-image: -moz-linear-gradient(top,#f9f9f9,#ededed) !important;
219
+ background-image: -webkit-gradient(linear,0 0,0 100%,from(#f9f9f9),to(#ededed)) !important;
220
+ background-image: -webkit-linear-gradient(top,#f9f9f9,#ededed) !important;
221
+ background-image: -o-linear-gradient(top,#f9f9f9,#ededed) !important;
222
+ background-image: linear-gradient(to bottom,#f9f9f9,#ededed) !important;
223
+ background-repeat: repeat-x;
224
+ background-position: 0px 0px;
225
+ filter: progid:dximagetransform.microsoft.gradient(startColorstr = '#fff9f9f9',endColorstr = '#ffededed',GradientType = 0) !important;
226
+ border-color: #e0e0e0 !important; /** buttons border color */
227
+ color: #626262; /** buttons font color */
228
+ border-radius: 3px !important; /** buttons and inputs border radius */
229
+ -webkit-box-shadow: none !important;
230
+ -moz-box-shadow: none !important;
231
+ box-shadow: none !important;
232
+ }
233
+
234
+ .wpDataTables .selecter .selecter-selected:after {
235
+ border-top-color: #626262; /** buttons font color */
236
+ opacity: 0.5;
237
+ }
238
+
239
+ .wpDataTables .selecter .selecter-selected:hover,
240
+ .wpDataTables .selecter.open .selecter-selected,
241
+ .remodal.wdtRemodal .btn:hover {
242
+ background-color: #ededed !important; /** buttons background hover color */
243
+ background-image: -moz-linear-gradient(top,#f6f6f6,#e5e5e5) !important;
244
+ background-image: -webkit-gradient(linear,0 0,0 100%,from(#f6f6f6),to(#e5e5e5)) !important;
245
+ background-image: -webkit-linear-gradient(top,#f6f6f6,#e5e5e5) !important;
246
+ background-image: -o-linear-gradient(top,#f6f6f6,#e5e5e5) !important;
247
+ background-image: linear-gradient(to bottom,#f6f6f6,#e5e5e5) !important;
248
+ background-position: 0px 0px;
249
+ filter: progid:dximagetransform.microsoft.gradient(startColorstr = '#fff6f6f6',endColorstr = '#ffe5e5e5',GradientType = 0) !important;
250
+ border-color: #c7c7c7 !important; /** buttons hover border color */
251
+ color: #333333; /** buttons hover font color */
252
+ -webkit-box-shadow: none !important;
253
+ -moz-box-shadow: none !important;
254
+ box-shadow: none !important;
255
+ }
256
+
257
+ .wpDataTables .selecter.open .selecter-selected,
258
+ .wpDataTables .selecter.focus .selecter-selected {
259
+ border-bottom-left-radius: 0px !important;
260
+ border-bottom-right-radius: 0px !important;
261
+ }
262
+
263
+ .wpDataTables .selecter.open .selecter-selected:after,
264
+ .wpDataTables .selecter.focus .selecter-selected:after {
265
+ border-top-color: #626262; /** buttons font color */
266
+ opacity: 0.6;
267
+ }
268
+
269
+ .wpDataTables .selecter .selecter-selected:hover:after {
270
+ opacity: 1;
271
+ }
272
+
273
+ .wpDataTables .selecter .selecter-options {
274
+ background-color: #f5f5f5 !important; /** buttons background color */
275
+ border-color: #e0e0e0 !important; /** buttons border color */
276
+ border-radius: 0px 0px 3px 3px !important; /** buttons and inputs border radius */
277
+ }
278
+
279
+ .wpDataTables .selecter .selecter-item {
280
+ background-color: transparent !important;
281
+ color: #626262; /** buttons font color */
282
+ }
283
+
284
+ .wpDataTables .selecter .selecter-item:last-child {
285
+ border-radius: 0px 0px 2px 2px !important; /** (buttons and inputs border radius) - 1 */
286
+ }
287
+
288
+ .wpDataTables .selecter.open .selecter-item:hover,
289
+ .wpDataTables .selecter .selecter-item.selected {
290
+ background-color: #ededed !important; /** buttons background hover color */
291
+ color: #333333; /** buttons hover font color */
292
+ }
293
+
294
+ /* Plugins - Picker */
295
+ .wpDataTables .picker .picker-handle,
296
+ .wpDataTables .picker.focus .picker-handle {
297
+ border-color: #333333 !important; /** modals font color */
298
+ }
299
+ .wpDataTables .picker.picker-checkbox .picker-flag,
300
+ .wpDataTables .picker .picker-label {
301
+ color: #333333 !important; /** modals font color */
302
+ }
303
+ .wpDataTables .picker.picker-checkbox.checked .picker-flag {
304
+ background-color: transparent;
305
+ }
306
+
307
+ .wpDataTables .picker.picker-checkbox .picker-handle {
308
+ opacity: 0.5;
309
+ }
310
+
311
+ .wpDataTables .picker.picker-checkbox:hover .picker-handle,
312
+ .wpDataTables .picker.picker-checkbox .picker-handle:focus,
313
+ .wpDataTables .picker.picker-checkbox.checked .picker-handle {
314
+ opacity: 1;
315
+ }
316
+
317
+ /* Skin - modals (Remodal, Datepicker) */
318
+ .remodal-overlay,
319
+ .wpDataTablesWrapper .picker--opened .picker__holder {
320
+ background-color: rgba(0,0,0,0.8) !important; /** overlays background color */
321
+ }
322
+
323
+ .remodal.wdtRemodal,
324
+ .wpDataTables .picker__box {
325
+ background-color: #ffffff !important; /** modals background color */
326
+ color: #333333 !important; /** modals font color */
327
+ }
328
+
329
+ /* Skin - modals (Remodal) */
330
+ .wdtRemodal .remodal-close {
331
+ background-color: transparent !important;
332
+ color: inherit !important;
333
+ }
334
+
335
+ .remodal.wdtRemodal .remodal-close:after {
336
+ background-color: transparent !important;
337
+ color: inherit !important;
338
+ opacity: 0.5;
339
+ }
340
+
341
+ .remodal.wdtRemodal .remodal-close:hover:after {
342
+ opacity: 1;
343
+ }
344
+
345
+ /* Skin - modals (Datepicker) */
346
+ .wpDataTables .picker__box {
347
+ border-style: none !important;
348
+ -webkit-box-shadow: none !important;
349
+ -moz-box-shadow: none !important;
350
+ box-shadow: none !important;
351
+ }
352
+
353
+ .wpDataTables .picker__nav--prev,
354
+ .wpDataTables .picker__nav--next {
355
+ background-color: transparent !important;
356
+ opacity: 0.6;
357
+ }
358
+
359
+ .wpDataTables .picker__nav--prev:hover,
360
+ .wpDataTables .picker__nav--next:hover {
361
+ background-color: transparent !important;
362
+ opacity: 1;
363
+ }
364
+
365
+ .wpDataTables .picker__nav--disabled,
366
+ .wpDataTables .picker__nav--disabled:hover,
367
+ .wpDataTables .picker__nav--disabled:before,
368
+ .wpDataTables .picker__nav--disabled:before:hover {
369
+ opacity: 0.3;
370
+ }
371
+
372
+ .wpDataTables .picker__year {
373
+ color: inherit !important;
374
+ font-style: normal !important;
375
+ opacity: 0.7;
376
+ }
377
+
378
+ .wpDataTablesWrapper table.wpDataTable .picker__table thead th.picker__weekday {
379
+ background-color: transparent !important;
380
+ background-image: none !important;
381
+ }
382
+
383
+ .wpDataTables .picker__weekday {
384
+ background-color: transparent !important;
385
+ background-image: none !important;
386
+ color: #333333 !important; /** modals font color */
387
+ }
388
+
389
+ .wpDataTables .picker__day--outfocus {
390
+ color: inherit !important;
391
+ opacity: 0.5;
392
+ }
393
+
394
+ .wpDataTables .picker__day--today,
395
+ .wpDataTables .picker__day--infocus:hover,
396
+ .wpDataTables .picker__day--outfocus:hover,
397
+ .wpDataTables .picker__footer button {
398
+ background-color: #f5f5f5 !important; /** buttons background color */
399
+ background-image: -moz-linear-gradient(top,#f9f9f9,#ededed) !important;
400
+ background-image: -webkit-gradient(linear,0 0,0 100%,from(#f9f9f9),to(#ededed)) !important;
401
+ background-image: -webkit-linear-gradient(top,#f9f9f9,#ededed) !important;
402
+ background-image: -o-linear-gradient(top,#f9f9f9,#ededed) !important;
403
+ background-image: linear-gradient(to bottom,#f9f9f9,#ededed) !important;
404
+ background-repeat: repeat-x;
405
+ background-position: 0px 0px;
406
+ filter: progid:dximagetransform.microsoft.gradient(startColorstr = '#fff9f9f9',endColorstr = '#ffededed',GradientType = 0) !important;
407
+ border-color: #e0e0e0 !important; /** buttons border color */
408
+ color: #626262 !important; /** buttons font color */
409
+ }
410
+
411
+ .wpDataTables .picker__day--infocus,
412
+ .wpDataTables .picker__day--outfocus,
413
+ .wpDataTables .picker__footer button {
414
+ border-radius: 3px !important; /** buttons and inputs border radius */
415
+ }
416
+
417
+ .wpDataTables .picker__day--today:hover,
418
+ .wpDataTables .picker--focused .picker__day--highlighted,
419
+ .wpDataTables .picker__day--highlighted:hover,
420
+ .wpDataTables .picker__day--outfocus.picker__day--selected,
421
+ .wpDataTables .picker__footer button:hover {
422
+ background-color: #ededed !important; /** buttons background hover color */
423
+ background-image: -moz-linear-gradient(top,#f6f6f6,#e5e5e5) !important;
424
+ background-image: -webkit-gradient(linear,0 0,0 100%,from(#f6f6f6),to(#e5e5e5)) !important;
425
+ background-image: -webkit-linear-gradient(top,#f6f6f6,#e5e5e5) !important;
426
+ background-image: -o-linear-gradient(top,#f6f6f6,#e5e5e5) !important;
427
+ background-image: linear-gradient(to bottom,#f6f6f6,#e5e5e5) !important;
428
+ background-position: 0px 0px;
429
+ filter: progid:dximagetransform.microsoft.gradient(startColorstr = '#fff6f6f6',endColorstr = '#ffe5e5e5',GradientType = 0) !important;
430
+ border-color: #c7c7c7 !important; /** buttons hover border color */
431
+ color: #333333 !important; /** buttons hover font color */
432
+ }
433
+
434
+ .wpDataTables .picker__day--today:before {
435
+ border-top-color: #626262 !important; /** buttons font color */
436
+ }
437
+
438
+ .wpDataTables .picker__day--today:hover:after,
439
+ .wpDataTables .picker--focused .picker__day--today.picker__day--highlighted:after,
440
+ .wpDataTables .picker__day--today.picker__day--selected:after {
441
+ border-top-color: #333333 !important; /** buttons hover font color */
442
+ }
443
+
444
+ .wpDataTables .picker__button--today:before {
445
+ border-top-color: #626262 !important; /** buttons font color */
446
+ }
447
+
448
+ .wpDataTables .picker__button--today:hover:before {
449
+ border-top-color: #333333 !important; /** buttons hover font color */
450
+ }
451
+
452
+ .wpDataTables .picker__button--clear:before {
453
+ color: #626262 !important; /** buttons font color */
454
+ }
455
+
456
+ .wpDataTables .picker__button--clear:hover:before {
457
+ color: #333333 !important; /** buttons hover font color */
458
+ }
459
+
460
+ /* Responsive table skin styles */
461
+ .wpDataTablesWrapper table.has-columns-hidden span.responsiveExpander {
462
+ opacity: 0.6;
463
+ }
464
+
465
+ .wpDataTablesWrapper table.has-columns-hidden span.responsiveExpander:hover {
466
+ opacity: 1;
467
+ }
468
+
469
+ .wpDataTablesWrapper table.has-columns-hidden tr.row-detail > td {
470
+ background-color: #ffffff; /* even rows background color */
471
+ }
472
+
assets/css/wpdatatables.min.css ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * wpDataTables styles
3
+ *
4
+ */table.dataTable{margin:0 auto;clear:both;width:100%}table.dataTable thead th{padding:3px 18px 3px 10px;border-bottom:1px solid #000;font-weight:700;cursor:pointer}table.dataTable tfoot th{padding:3px 18px 3px 10px;border-top:1px solid #000;font-weight:700}table.dataTable td{padding:3px 10px}table.dataTable td.center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable tr.odd{background-color:#e2e4ff}table.dataTable tr.even{background-color:#fff}table.dataTable tr.odd td.sorting_1{background-color:#d3d6ff}table.dataTable tr.odd td.sorting_2{background-color:#dadcff}table.dataTable tr.odd td.sorting_3{background-color:#e0e2ff}table.dataTable tr.even td.sorting_1{background-color:#eaebff}table.dataTable tr.even td.sorting_2{background-color:#f2f3ff}table.dataTable tr.even td.sorting_3{background-color:#f9f9ff}.dataTables_wrapper{position:relative;clear:both}.dataTables_length{float:left}.dataTables_filter{float:right;text-align:right}.dataTables_info{clear:both;float:left}.dataTables_paginate{float:right;text-align:right}.paginate_disabled_next,.paginate_disabled_previous,.paginate_enabled_next,.paginate_enabled_previous{height:19px;float:left;cursor:pointer;color:#111!important}.paginate_disabled_next:hover,.paginate_disabled_previous:hover,.paginate_enabled_next:hover,.paginate_enabled_previous:hover{text-decoration:none!important}.paginate_disabled_next:active,.paginate_disabled_previous:active,.paginate_enabled_next:active,.paginate_enabled_previous:active{outline:0}.paginate_disabled_next,.paginate_disabled_previous{color:#666!important}.paginate_disabled_previous,.paginate_enabled_previous{padding-left:23px}.paginate_disabled_next,.paginate_enabled_next{padding-right:23px;margin-left:10px}.paginate_enabled_previous{background:url(../images/back_enabled.png) top left no-repeat}.paginate_enabled_previous:hover{background:url(../images/back_enabled_hover.png) top left no-repeat}.paginate_disabled_previous{background:url(../images/back_disabled.png) top left no-repeat}.paginate_enabled_next{background:url(../images/forward_enabled.png) top right no-repeat}.paginate_enabled_next:hover{background:url(../images/forward_enabled_hover.png) top right no-repeat}.paginate_disabled_next{background:url(../images/forward_disabled.png) top right no-repeat}.paging_full_numbers{height:22px;line-height:22px}.paging_full_numbers a:active{outline:0}.paging_full_numbers a:hover{text-decoration:none}.paging_full_numbers a.paginate_active,.paging_full_numbers a.paginate_button{border:1px solid #aaa;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;padding:2px 5px;margin:0 3px;cursor:pointer;color:#333!important}.paging_full_numbers a.paginate_button{background-color:#ddd}.paging_full_numbers a.paginate_button:hover{background-color:#ccc;text-decoration:none!important}.paging_full_numbers a.paginate_active{background-color:#99b3ff}.dataTables_processing{position:absolute;top:50%;left:50%;width:250px;height:30px;margin-left:-125px;margin-top:-15px;padding:14px 0 2px;border:1px solid #ddd;text-align:center;color:#999;font-size:14px;background-color:#fff}table.dataTable thead td:active,table.dataTable thead th:active{outline:0}.dataTables_scroll{clear:both}.dataTables_scrollBody{-webkit-overflow-scrolling:touch}/*!
5
+ * wpDataTables styles
6
+ *
7
+ */.wpDataTables:after,.wpDataTables:before{content:" ";display:table}.wpDataTables:after{clear:both}.wpDataTablesWrapper table.wpDataTable{background-color:transparent;border-collapse:collapse;border-spacing:0;clear:both;font-size:inherit;margin:0 auto;width:100%}.wpDataTablesWrapper table.wpDataTable td,.wpDataTablesWrapper table.wpDataTable th{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wpDataTablesWrapper table.wpDataTable thead th{border-style:solid;border-width:1px 1px 2px;cursor:pointer;padding:7px 10px;text-align:left}.wpDataTablesWrapper table.wpDataTable thead th.collapsible.sorting{text-align:center}.wpDataTablesWrapper table.wpDataTable thead th.sorting,.wpDataTablesWrapper table.wpDataTable thead th.sorting_asc,.wpDataTablesWrapper table.wpDataTable thead th.sorting_desc{background-image:none!important}.wpDataTablesWrapper table.wpDataTable thead th.sorting:after,.wpDataTablesWrapper table.wpDataTable thead th.sorting_asc:after,.wpDataTablesWrapper table.wpDataTable thead th.sorting_desc:after{border-color:transparent;border-style:solid;border-width:5px;display:inline-block;font-size:0;line-height:0;content:"";height:0;width:0;vertical-align:3px;margin:0 0 0 10px;opacity:.6}.wpDataTablesWrapper table.wpDataTable thead th.collapsible.sorting:after,.wpDataTablesWrapper table.wpDataTable thead th.collapsible.sorting_asc:after,.wpDataTablesWrapper table.wpDataTable thead th.collapsible.sorting_desc:after{margin-left:0}.wpDataTablesWrapper table.wpDataTable thead th.sorting:after,.wpDataTablesWrapper table.wpDataTable thead th.sorting_asc:after{border-top-width:0}.wpDataTablesWrapper table.wpDataTable thead th.sorting_desc:after{border-bottom-width:0}.wpDataTablesWrapper table.wpDataTable thead th.sorting:hover:after,.wpDataTablesWrapper table.wpDataTable thead th.sorting_asc:after,.wpDataTablesWrapper table.wpDataTable thead th.sorting_desc:after{opacity:1}.wpDataTablesWrapper table.wpDataTable td{border:1px solid;padding:3px 10px}.wpDataTablesWrapper table.wpDataTable tfoot td{border-width:1px 0;padding-bottom:7px;padding-top:7px;vertical-align:top;white-space:normal;overflow:visible}.wpDataTablesWrapper table.wpDataTable tfoot td input{display:block;margin:0;width:92%}.wpDataTablesWrapper table.wpDataTable tfoot td input.date_range_filter,.wpDataTablesWrapper table.wpDataTable tfoot td input.number_range_filter{display:block;width:100%}.wpDataTablesWrapper table.wpDataTable tfoot td input.date_range_filter:first-child,.wpDataTablesWrapper table.wpDataTable tfoot td input.number_range_filter:first-child{margin-bottom:5px!important}.wpDataTablesWrapper table.wpDataTable tfoot .selecter{width:100%!important}.wpDataTablesWrapper .dataTables_info{clear:both;float:left;margin-top:10px;padding:3px 0;font-size:11px}.wpDataTablesWrapper .dataTables_paginate{float:right;text-align:right;margin-top:10px}.wpDataTablesWrapper .dataTables_paginate a{display:inline-block;height:auto;cursor:pointer;padding:2px 7px;vertical-align:middle}.wpDataTablesWrapper .paginate_button:before{font-size:14px;line-height:1em}.wpDataTablesWrapper div.DTTT_container{margin-bottom:20px;margin-left:20px;margin-right:-15px}.wpDataTablesWrapper button.DTTT_button{position:relative;float:right;height:auto;line-height:18px!important;margin-right:15px;padding:0;font-size:1em}.wpDataTablesWrapper button.DTTT_button,.wpDataTablesWrapper button.DTTT_button:hover{border-color:transparent;border-style:solid}.wpDataTablesWrapper .DTTT_button[disabled=disabled]{cursor:default}.wpDataTablesWrapper .DTTT_button:before{font-size:18px;float:none;line-height:18px;margin-right:5px;margin-top:0}.wpDataTablesWrapper .DTTT_button span{vertical-align:middle}.wpDataTablesWrapper table.wpDataTable tr.selected td,.wpDataTablesWrapper table.wpDataTable tr.selected td.sorting_1{background-color:#ddd}.wpDataTablesWrapper .dataTables_length{float:left}.wpDataTablesWrapper .dataTables_filter,.wpDataTablesWrapper .dataTables_length{margin-bottom:20px}.wpDataTablesWrapper .dataTables_filter label,.wpDataTablesWrapper .dataTables_length label{font-size:inherit;line-height:inherit;margin-bottom:0}.wpDataTablesWrapper .dataTables_length .selecter{margin:0 5px!important;width:80px!important}.wpDataTablesWrapper .dataTables_filter input{margin-bottom:0}.wpDataTablesWrapper .dataTables_processing{position:absolute;top:0;left:0;bottom:0;right:0;width:100%;height:auto;margin-left:0;margin-top:0;padding:0;border-style:none;text-align:center;font-size:14px;background-color:rgba(255,255,255,.7)}.wpDataTablesWrapper .dataTables_processing img{display:inline-boock;position:absolute;top:50%;left:50%;margin-left:-25px;margin-top:-25px}.wpDataTablesWrapper div.wpDataTablesFilter span.filter_column input[type=text]{width:70px}.wpDataTablesWrapper .wdtCheckboxModalWrap,.wpDataTablesWrapper .wpDataTablesFilter{overflow:hidden}.wpDataTables input[type=text],.wpDataTables select,.wpDataTables textarea{display:inline-block!important;margin-bottom:0!important;max-width:100%;padding:3px 6px!important;vertical-align:middle!important;width:206px}.wpDataTables .btn,.wpDataTables .checkbox_filter.btn,.wpDataTables .selecter .selecter-item,.wpDataTables .selecter .selecter-selected,.wpDataTables input[type=text],.wpDataTables select,.wpDataTables textarea,.wpDataTablesWrapper .DTTT_button{font-size:inherit!important;line-height:22px!important;padding-bottom:3px!important;padding-top:3px!important;-webkit-box-sizing:border-box!important;-moz-box-sizing:border-box!important;box-sizing:border-box!important}.wpDataTables .btn,.wpDataTables .checkbox_filter.btn,.wpDataTables .selecter .selecter-item,.wpDataTables .selecter .selecter-selected,.wpDataTables input[type=text],.wpDataTables select,.wpDataTablesWrapper .DTTT_button{height:30px!important}.wpDataTables .checkbox_filter.btn{font-size:inherit;padding:3px 0}.wpDataTables .checkbox_filter.btn:before{font-size:18px;line-height:18px;margin-right:5px;margin-top:0;text-align:left}.wpDataTablesWrapper .wpDataTableFilterSection{float:left;padding:15px}.wpDataTablesFilter{margin-bottom:30px}.wpDataTablesFilter .wpDataTableFilterSection{float:left;margin-bottom:10px;margin-right:15px;min-width:180px}.wpDataTablesFilter .filter_select .selecter{width:100%!important}.wpDataTablesFilter .number_range_filter:first-child{margin-right:7px}.wpDataTables .overlayed{position:relative;pointer-events:none}.wpDataTables .overlayed>*{opacity:.3}.wpDataTables .overlayed:after{color:inherit;font-size:34px;left:50%;margin-left:-15px;margin-top:-20px;opacity:1;position:absolute;top:50%;-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0{-moz-transform:rotate(0)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0{-o-transform:rotate(0)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0{-ms-transform:rotate(0)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0{transform:rotate(0)}100%{transform:rotate(359deg)}}.wpDataTables .selecter{display:inline-block!important;height:auto!important;margin:0;max-width:none!important;min-width:80px!important;vertical-align:middle}.wpDataTables .selecter .selecter-selected{background-color:transparent!important;background-image:none!important;border:1px solid!important}.wpDataTables .selecter .selecter-selected:after{border-color:transparent;border-style:solid;border-width:5px 5px 0;display:inline-block;font-size:0;float:right;line-height:0;content:"";height:0;width:0;margin:8px -5px 0 5px}.wpDataTables .selecter .selecter-options{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-style:solid;border-width:0 1px 1px;width:100%}.wpDataTables .selecter .selecter-item{border-style:none!important;display:block!important;width:auto!important}.wpDataTables .picker.picker-checkbox.checked .picker-flag{font-size:14px;background-image:none!important;line-height:12px;text-align:center}.wpDataTables .picker.picker-radio .picker-handle{text-align:center}.wpDataTables .picker.picker-radio .picker-flag{display:inline-block}.remodal-overlay{filter:none!important}.remodal.wdtRemodal{-webkit-box-shadow:none!important;box-shadow:none!important;font-size:inherit!important;padding-top:15px!important;text-align:left}.wdtRemodal .remodal-close{display:inline-block!important;width:auto!important;height:auto!important;-webkit-border-radius:0!important;border-radius:0!important;border-style:none!important;left:auto!important;right:10px!important;top:5px!important}.remodal.wdtRemodal .remodal-close:after{font-size:18px!important}.remodal.wdtRemodal>h1{margin-bottom:15px;margin-top:0}.remodal.wdtRemodal .btn{border:1px solid;font-weight:400;margin:5px 10px 5px 0}.wdtCheckboxModalWrap{margin-bottom:15px}.wdtCheckboxModalWrap:after,.wdtCheckboxModalWrap:before{content:" ";display:table}.wdtCheckboxModalWrap:after{clear:both}.wdtEditDialog table{margin-bottom:15px}.wdtEditDialog td{padding-bottom:9px;vertical-align:top}.wdtEditDialog td>label{margin-right:15px}.wdtEditDialog input[type=text]{width:100%!important}.wdtEditDialog td>.selecter{display:block!important;width:auto!important}.wpDataTables .picker,.wpDataTables .picker__box{font-size:inherit!important}.wpDataTables .picker__header{margin-top:0!important;padding-top:.75em!important}.wpDataTables .picker__nav--next,.wpDataTables .picker__nav--prev{margin:.33em 0 0!important;top:0!important}.wpDataTables .picker__nav--next:before,.wpDataTables .picker__nav--prev:before{border-style:none!important;font-size:18px!important;height:auto!important;width:auto!important}.wpDataTables .picker__weekday{border-width:1px!important;text-align:center!important}.wpDataTables .picker__table{border-collapse:separate!important;border-spacing:2px!important}.wpDataTables .picker__table td,.wpDataTables .picker__table th{font-size:inherit!important;border-style:none!important}.wpDataTables .picker__table th{padding:0 0 10px!important}.wpDataTables .picker__table td{padding:0!important}.wpDataTables .picker__footer{margin-top:15px;text-align:center}.wpDataTables .picker__footer button{border:1px solid;display:inline!important;margin:5px 10px;max-width:200px!important;position:relative;vertical-align:middle!important}.wpDataTables .picker__button--today:before{margin-right:0!important;position:absolute!important;right:3px!important;top:3px!important}.wpDataTables .picker__button--clear:before{font-size:1em!important;height:auto!important;margin-right:15px!important;vertical-align:middle!important}@media(min-height:33.875em){.wpDataTables .picker--opened .picker__holder .picker__frame{margin-top:-200px;top:50%!important;bottom:auto!important}.wpDataTables .picker__box{-webkit-border-radius:5px!important;-moz-border-radius:5px!important;border-radius:5px!important}}@media(max-width:979px){.wpDataTablesWrapper .dataTables_filter input{width:100px}}@media(max-width:750px){.wpDataTablesWrapper .dataTables_filter input{width:200px}.wpDataTablesWrapper .DTTT_container,.wpDataTablesWrapper .dataTables_filter,.wpDataTablesWrapper .dataTables_length{float:none!important;margin-bottom:10px;text-align:left!important}.wpDataTablesWrapper .DTTT_container{margin-left:0!important}.wpDataTablesWrapper .DTTT_container button{display:none}.wpDataTablesWrapper .DTTT_container button.delete_table_entry,.wpDataTablesWrapper .DTTT_container button.edit_table,.wpDataTablesWrapper .DTTT_container button.new_table_entry{display:inline-block;float:none!important;position:static}}@font-face{font-weight:400;font-style:normal;font-family:WPDataTablesIcons;src:url(../fonts/wpdatatablesicons-base.eot);src:url(../fonts/wpdatatablesicons-base.eot?#iefix) format('embedded-opentype'),url(../fonts/wpdatatablesicons-base.woff) format('woff'),url(../fonts/wpdatatablesicons-base.ttf) format('truetype'),url(../fonts/wpdatatablesicons-base.svg#wpdatatablesicons-base) format('svg')}.wpDataTablesWrapper .dataTables_paginate>.paginate_button{font:0/0 a;background-color:transparent;border:0;text-shadow:none;text-indent:-9999em}.remodal.wdtRemodal .remodal-close:after,.wpDataTables .overlayed:after,.wpDataTables .picker.picker-checkbox.checked .picker-flag:before,.wpDataTables .picker__button--clear:before,.wpDataTables .picker__nav--next:before,.wpDataTables .picker__nav--prev:before,.wpDataTablesWrapper .DTTT_button:before,.wpDataTablesWrapper .checkbox_filter.btn:before,.wpDataTablesWrapper .paginate_button:before,.wpDataTablesWrapper table.has-columns-hidden span.responsiveExpander:before{display:inline-block;font-family:WPDataTablesIcons!important;font-style:normal;font-weight:400;text-align:center;text-decoration:none;vertical-align:middle;-webkit-font-smoothing:antialiased}.wpDataTables .picker__nav--next:before,.wpDataTablesWrapper .paginate_button.next:before{content:"\e001"!important}.wpDataTables .picker__nav--prev:before,.wpDataTablesWrapper .paginate_button.previous:before{content:"\e002"!important}.wpDataTablesWrapper .paginate_button.last:before{content:"\e003"}.wpDataTablesWrapper .paginate_button.first:before{content:"\e004"}.wdtRemodal .remodal-close:after,.wpDataTables .picker__button--clear:before{content:"\e005"!important}.wpDataTablesWrapper .DTTT_button.DTTT_button_new:before,.wpDataTablesWrapper table.has-columns-hidden span.responsiveExpander:before{content:"\e006"}.wpDataTablesWrapper table.has-columns-hidden tr.detail-show span.responsiveExpander:before{content:"\e007"}.wpDataTables .picker.picker-checkbox.checked .picker-flag:before{content:"\e008"}.wpDataTables .overlayed:after{font-family:dashicons!important;content:"\f463"}.wpDataTablesWrapper .checkbox_filter.btn:before{content:"\e00a"}.wpDataTablesWrapper .DTTT_button.DTTT_button_delete:before{content:"\e00b"}.wpDataTablesWrapper .DTTT_button.DTTT_button_edit:before{content:"\e00c"}.wpDataTablesWrapper .ico-search:before{content:"\e00d"}.wpDataTablesWrapper .ico-cntrl:before{content:"\e00e"}.wpDataTablesWrapper .DTTT_button.DTTT_button_print:before{content:"\e00f"}.wpDataTablesWrapper .DTTT_button.DTTT_button_xls:before{content:"\e010"}.wpDataTablesWrapper .ico-cal-day:before{content:"\e011"}.wpDataTablesWrapper .ico-cal-ok:before{content:"\e012"}.wpDataTablesWrapper .DTTT_button.DTTT_button_pdf:before{content:"\e013"}.wpDataTablesWrapper .DTTT_button.DTTT_button_csv:before{content:"\e014"}.wpDataTablesWrapper .DTTT_button.DTTT_button_copy:before{content:"\e015"}.wpDataTablesWrapper .picker__footer .picker__button--close{display:none!important}.wpDataTableFilterBox .picker__footer .picker__button--close{display:none!important} .wdtRemodal.overlayed{position:relative;pointer-events:none}.wdtRemodal.overlayed>*{opacity:.3}.wdtRemodal.overlayed:after{color:inherit;font-size:34px;left:50%;margin-left:-15px;margin-top:-20px;opacity:1;position:absolute;top:50%;-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0{-moz-transform:rotate(0)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0{-o-transform:rotate(0)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0{-ms-transform:rotate(0)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0{transform:rotate(0)}100%{transform:rotate(359deg)}} div.wdtEditDialog div.data_saved_notify { color: #3c763d; background-color: #dff0d8; border-color: #d6e9c6; padding: 15px; margin-bottom: 20px; border: 1px solid; border-radius: 4px; } div.wdtEditDialog div.data_invalid_notify { color: #a94442; background-color: #f2dede; border-color: #ebccd1;padding: 15px; margin-bottom: 20px; border: 1px solid; border-radius: 4px; }
8
+
9
+ div.data_validation_notify { color: #a94442; background-color: #f2dede; border-color: #ebccd1;padding: 15px; margin-bottom: 20px; border: 1px solid; border-radius: 4px; }
10
+ div.wdtEditDialog .error { border: 2px solid #f00; background-color: #fdd }
11
+ div.wpDataTableFilterSection input { margin: 10px; }
12
+ div.wdtEditDialog table th, div.wdtEditDialog table td { border: none; background-color: none; padding: 0 }
13
+ div.wdtEditDialog table td { padding: 3px; }
14
+ div.wdtEditDialog table textarea { width: 100% }
15
+ span.media-modal-icon span.screen-reader-text { display: none }
16
+ .powered_by_link { font-size: 12px; }
assets/css/wpdatatables_admin.css ADDED
@@ -0,0 +1,593 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .toplevel_page_wpdatatables-administration .wp-list-table .column-id, .wpdatatables_page_wpdatatables-charts .wp-list-table .column-id { width: 5%; }
2
+
3
+ .toplevel_page_wpdatatables-administration .wp-list-table .column-title { width: 45%; }
4
+
5
+ .toplevel_page_wpdatatables-administration .wrap > h2,
6
+ .toplevel_page_wpdatatables-administration #wpDataTablesSettings > h3 {
7
+ padding-left: 10px;
8
+ }
9
+
10
+ #wpDataTablesSettings .form-table.wpDataTables .picker .picker-label {
11
+ float: none;
12
+ margin-left: 30px;
13
+ }
14
+
15
+ .toplevel_page_wpdatatables-administration .form-table td,
16
+ .toplevel_page_wpdatatables-administration .form-table th {
17
+ padding: 15px 10px;
18
+ }
19
+
20
+ .toplevel_page_wpdatatables-administration .form-table th {
21
+ width: 200px;
22
+ }
23
+
24
+ .toplevel_page_wpdatatables-administration tr.fixcolumns_row {
25
+ display: none;
26
+ }
27
+
28
+ .toplevel_page_wpdatatables-administration tr.mysqlquery_row {
29
+ display: none;
30
+ }
31
+
32
+ .toplevel_page_wpdatatables-administration tr.inputfile_row {
33
+ display: none;
34
+ }
35
+
36
+ .toplevel_page_wpdatatables-administration tr.charttitle_row {
37
+ display: none;
38
+ }
39
+
40
+ .toplevel_page_wpdatatables-administration tr.serverside_row {
41
+ display: none;
42
+ }
43
+
44
+ .toplevel_page_wpdatatables-administration tr.step2_row {
45
+ display: none;
46
+ }
47
+
48
+ .toplevel_page_wpdatatables-administration tr.chart_row {
49
+ display: none;
50
+ }
51
+
52
+ .toplevel_page_wpdatatables-administration tr.table_editable_row {
53
+ display: none;
54
+ }
55
+
56
+ .toplevel_page_wpdatatables-administration tr.table_mysql_name_row {
57
+ // display: none;
58
+ }
59
+
60
+ .toplevel_page_wpdatatables-administration tr.editor_roles_row {
61
+ display: none;
62
+ }
63
+
64
+ .toplevel_page_wpdatatables-administration tr.responsive_table_column_row {
65
+ display: none;
66
+ }
67
+
68
+ .toplevel_page_wpdatatables-administration tr.editing_own_rows_row {
69
+ display: none;
70
+ }
71
+
72
+ .toplevel_page_wpdatatables-administration table tr.error,
73
+ .wpdatatables_page_wpdatatables-addnew table tr.error {
74
+ background-color: #faa;
75
+ }
76
+
77
+ #wdtPlaceholdersTable {
78
+ background-color: #f5f5f5;
79
+ margin-top: 10px;
80
+ border-radius: 4px;
81
+ }
82
+
83
+ #wdtPlaceholdersTable thead {
84
+ background-color: #e3e3e3;
85
+ }
86
+
87
+ .toplevel_page_wpdatatables-administration table.column_table {
88
+ border: 1px solid #ddd;
89
+ background-color: #f8f8f8;
90
+ margin: 5px;
91
+ table-layout: fixed;
92
+ -webkit-border-radius: 7px;
93
+ border-radius: 7px;
94
+ width: 320px;
95
+ }
96
+
97
+ .toplevel_page_wpdatatables-administration #wpTableEditorRoles{
98
+ margin: 5px;
99
+ padding: 5px;
100
+ }
101
+
102
+ .toplevel_page_wpdatatables-administration table.column_table td {
103
+ padding: 5px;
104
+ }
105
+
106
+ .toplevel_page_wpdatatables-administration table.column_table td:first-child {
107
+ width: 100px;
108
+ }
109
+
110
+ .toplevel_page_wpdatatables-administration table.column_table td:last-child {
111
+ width: 100%;
112
+ }
113
+
114
+ .toplevel_page_wpdatatables-administration td.columnsBlock table td {
115
+ margin: 3px;
116
+ }
117
+
118
+ .toplevel_page_wpdatatables-administration table.column_table tr.columnHeaderRow {
119
+ background: #2ea2cc;
120
+ text-align: center;
121
+ cursor: pointer;
122
+ padding: 20px;
123
+ margin: 10px;
124
+ color: #fff;
125
+ font-size: 21px;
126
+ font-weight: bold;
127
+ line-height: 1.3em;
128
+ text-shadow: -1px -1px #aa3030;
129
+ font-weight: normal;
130
+ }
131
+
132
+ .toplevel_page_wpdatatables-administration table.column_table tr.columnHeaderRow:hover {
133
+ background: #1e92bc;
134
+ }
135
+
136
+ .toplevel_page_wpdatatables-administration table.column_table tr.columnHeaderRow td {
137
+ border-color: #0074a2;
138
+ border-radius: 5px;
139
+ margin-bottom: 15px;
140
+ }
141
+
142
+ .toplevel_page_wpdatatables-administration td.columnsBlock table td {
143
+ vertical-align: top;
144
+ }
145
+
146
+
147
+ .toplevel_page_wpdatatables-administration #wdtPreloadLayer {
148
+ position: absolute;
149
+ height: 100%;
150
+ width: 100%;
151
+ background-color:rgba(255,255,255,0.7);
152
+ text-align: center;
153
+ display: none;
154
+ }
155
+
156
+ .toplevel_page_wpdatatables-administration .columnsBlock .selecter {
157
+ max-width: 100% !important;
158
+ }
159
+
160
+ .toplevel_page_wpdatatables-administration tr.wpMySQLParam {
161
+ display: none;
162
+ }
163
+
164
+ #wdtPreloadLayer {
165
+ position: absolute;
166
+ height: 100%;
167
+ width: 100%;
168
+ background-color:rgba(255,255,255,0.7);
169
+ text-align: center;
170
+ display: none;
171
+ z-index: 100;
172
+ }
173
+
174
+ .toplevel_page_wpdatatables-administration div.tipper-content {
175
+ max-width: 150px !important;
176
+ white-space: normal;
177
+ }
178
+
179
+ #wpbody-content .selecter {
180
+ width: 25em;
181
+ }
182
+
183
+ /* UI Dialog */
184
+ .toplevel_page_wpdatatables-administration .ui-dialog .ui-dialog-titlebar.ui-widget-header {
185
+ background-color: transparent;
186
+ background-image: none;
187
+ border-radius: 0px !important;
188
+ border-width: 0px 0px 1px 0px;
189
+ margin: -0.2em -0.2em 0 -0.2em;
190
+ }
191
+
192
+ .toplevel_page_wpdatatables-administration .ui-dialog-titlebar-close {
193
+ background-color: transparent !important;
194
+ background-image: none !important;
195
+ border-radius: 0px !important;
196
+ border-style: none !important;
197
+ color: #333333;
198
+ font-size: 16px !important;
199
+ height: auto !important;
200
+ margin-top: -12px !important;
201
+ opacity: 0.5;
202
+ width: auto !important;
203
+ }
204
+
205
+ .toplevel_page_wpdatatables-administration .ui-dialog-titlebar-close:hover {
206
+ opacity: 1;
207
+ }
208
+
209
+ .toplevel_page_wpdatatables-administration .ui-dialog-titlebar-close span {
210
+ display: none !important;
211
+ }
212
+
213
+ .toplevel_page_wpdatatables-administration .ui-button {
214
+ background-color: #fdfdfd !important;
215
+ border-color: #cccccc !important;
216
+ background-image: none !important;
217
+ color: #333333;
218
+ border-radius: 3px !important;
219
+ -webkit-box-shadow: none !important;
220
+ -moz-box-shadow: none !important;
221
+ box-shadow: none !important;
222
+ }
223
+
224
+ .toplevel_page_wpdatatables-administration .ui-button:hover,
225
+ .toplevel_page_wpdatatables-administration .ui-button:focus,
226
+ .toplevel_page_wpdatatables-administration .ui-button.ui-state-hover,
227
+ .toplevel_page_wpdatatables-administration .ui-button.ui-state-active {
228
+ background-color: #f5f5f5 !important;
229
+ border-color: #a1a1a1 !important;
230
+ color: #000000;
231
+ -webkit-box-shadow: none !important;
232
+ -moz-box-shadow: none !important;
233
+ box-shadow: none !important;
234
+ }
235
+
236
+ /* Remodal */
237
+ .remodal.wpDataTables.wdtRemodal {
238
+ max-width: 500px;
239
+ padding-bottom: 20px;
240
+ text-align: center;
241
+ }
242
+
243
+ /* Icons */
244
+ #toplevel_page_wpdatatables-administration div.wp-menu-image:before,
245
+ .toplevel_page_wpdatatables-administration .ui-dialog-titlebar-close:before {
246
+ display: inline-block;
247
+ font-family: 'WPDataTablesIcons' !important;
248
+ font-style: normal;
249
+ font-weight: normal;
250
+ text-align: center;
251
+ text-decoration: none;
252
+ vertical-align: middle;
253
+ -webkit-font-smoothing: antialiased;
254
+ }
255
+
256
+ #toplevel_page_wpdatatables-administration div.wp-menu-image:before {
257
+ content: "\e016";
258
+ }
259
+
260
+ .toplevel_page_wpdatatables-administration .ui-dialog-titlebar-close:before {
261
+ content: "\e005" !important;
262
+ }
263
+
264
+ .toplevel_page_wpdatatables-administration button.showHint {
265
+ padding: 3px;
266
+ line-height: 13px;
267
+ height: 20px;
268
+ margin-left: 5px
269
+ }
270
+
271
+ button.wpDataTablesDuplicateTable .dashicons {
272
+ margin-top: 3px;
273
+ }
274
+
275
+ button.wpDataTablesManualEdit .dashicons {
276
+ margin-top: 3px;
277
+ }
278
+
279
+ .pull-right {
280
+ float: right;
281
+ }
282
+
283
+
284
+ /** Constructor classes **/
285
+
286
+ td.columnsContainer div.columnBlock {
287
+ float: left;
288
+ padding-right: 5px;
289
+ }
290
+ /** Constructor classes **/
291
+
292
+ td.columnsContainer div.columnBlock {
293
+ float: left;
294
+ padding-right: 5px;
295
+ }
296
+
297
+ .constructorStep div.post_blocks,
298
+ .constructorStep div.mysql_table_blocks {
299
+ margin: 5px;
300
+ }
301
+
302
+ .constructorStep div.post_where_blocks,
303
+ .constructorStep div.post_where_blocks {
304
+ margin: 5px;
305
+ }
306
+
307
+ textarea.previewWPQuery {
308
+ border: 1px solid #ccc;
309
+ padding: 5px;
310
+ border-radius: 5px;
311
+ height: 250px !important;
312
+ margin-bottom: 10px !important;
313
+ width: 100%;
314
+ }
315
+
316
+ div.previewWPTable table {
317
+ margin: 5px;
318
+ border: 1px solid #ccc;
319
+ }
320
+
321
+ div.previewWPTable table thead th {
322
+ padding: 3px;
323
+ border: 1px solid #ccc;
324
+ background-color: #eee;
325
+ }
326
+
327
+ div.previewWPTable table tbody td {
328
+ padding: 3px;
329
+ border: 1px solid #ccc;
330
+ }
331
+
332
+ .columnsContainer div.columnBlock table {
333
+ border: 1px solid #ddd;
334
+ border-radius: 3px;
335
+ margin: 3px;
336
+ }
337
+
338
+ .columnsContainer div.columnBlock table td {
339
+ padding: 4px;
340
+ }
341
+
342
+
343
+ .columnsContainer div.columnBlock button.removeColumnBlock {
344
+ float:right;
345
+ padding: 3px;
346
+ }
347
+
348
+ .constructorStep button.addColumnBlock {
349
+ padding: 4px 4px 3px 3px;
350
+ }
351
+
352
+ td.columnBlockHeader {
353
+ background-color: #F0F0F0;
354
+ border-radius: 3px;
355
+ cursor: pointer;
356
+ }
357
+
358
+ td.columnBlockHeader:hover {
359
+ background-color: #E0E0E0;
360
+ }
361
+
362
+ .constructorStep div.columnBlock {
363
+ background-color: #FDFDFD;
364
+ }
365
+
366
+ table.wdt_file_based_preview input.error {
367
+ border: 2px solid red;
368
+ }
369
+
370
+ #wpDataTablesSettings div.columnPossibleValues > input {
371
+ display: none !important;
372
+ }
373
+
374
+
375
+ div.remodal.addColumn div.columnPossibleValues > input {
376
+ display: none !important;
377
+ }
378
+
379
+ div.wdtRemodal span.error {
380
+ font-weight: bold;
381
+ color: red;
382
+ }
383
+
384
+ div.chart_wizard_breadcrumbs {
385
+ padding: 1px;
386
+ position: relative;
387
+ overflow: hidden;
388
+ }
389
+
390
+ div.chart_wizard_breadcrumbs_block {
391
+ border: 1px solid #ddd;
392
+ border-radius: 3px;
393
+ background: rgb(255,255,255); /* Old browsers */
394
+ background: -moz-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(244,244,244,1) 100%); /* FF3.6+ */
395
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,1)), color-stop(100%,rgba(244,244,244,1))); /* Chrome,Safari4+ */
396
+ background: -webkit-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(244,244,244,1) 100%); /* Chrome10+,Safari5.1+ */
397
+ background: -o-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(244,244,244,1) 100%); /* Opera 11.10+ */
398
+ background: -ms-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(244,244,244,1) 100%); /* IE10+ */
399
+ background: linear-gradient(to bottom, rgba(255,255,255,1) 0%,rgba(244,244,244,1) 100%); /* W3C */
400
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f4f4f4',GradientType=0 ); /* IE6-9 */
401
+ padding: 3px;
402
+ padding-left: 6px;
403
+ padding-right: 6px;
404
+ height: 20px;
405
+ float: left;
406
+ margin: 3px;
407
+ cursor: pointer;
408
+ }
409
+
410
+ div.chart_wizard_breadcrumbs_block:hover {
411
+ background: -moz-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(250,250,250,1) 100%); /* FF3.6+ */
412
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,1)), color-stop(100%,rgba(250,250,250,1))); /* Chrome,Safari4+ */
413
+ background: -webkit-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(250,250,250,1) 100%); /* Chrome10+,Safari5.1+ */
414
+ background: -o-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(250,250,250,1) 100%); /* Opera 11.10+ */
415
+ background: -ms-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(250,250,250,1) 100%); /* IE10+ */
416
+ background: linear-gradient(to bottom, rgba(255,255,255,1) 0%,rgba(250,250,250,1) 100%); /* W3C */
417
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f4f4f4',GradientType=0 ); /* IE6-9 */
418
+ border-bottom-width: 1px;
419
+ }
420
+
421
+ div.chart_wizard_breadcrumbs_block.active {
422
+ background: -moz-linear-gradient(top, rgba(230,230,230,1) 0%, rgba(250,250,250,1) 100%); /* FF3.6+ */
423
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(230,230,230,1)), color-stop(100%,rgba250,250,250,1))); /* Chrome,Safari4+ */
424
+ background: -webkit-linear-gradient(top, rgba(230,230,230,1) 0%,rgba250,250,250,1) 100%); /* Chrome10+,Safari5.1+ */
425
+ background: -o-linear-gradient(top, rgba(230,230,230,1) 0%,rgba(250,250,250,1) 100%); /* Opera 11.10+ */
426
+ background: -ms-linear-gradient(top, rgba(230,230,230,1) 0%,rgba(250,250,250,1) 100%); /* IE10+ */
427
+ background: linear-gradient(to bottom, rgba(230,230,230,1) 0%,rgba(250,250,250,1) 100%); /* W3C */
428
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f4f4f4',GradientType=0 ); /* IE6-9 */
429
+ border-bottom-width: 1px;
430
+ font-weight: 600;
431
+ }
432
+
433
+ span.chart_wizard_breadcrumbs_separator {
434
+ float: left;
435
+ margin: 3px;
436
+ height: 26px;
437
+ line-height: 26px;
438
+ }
439
+
440
+ div.chart_column_picker_container {
441
+ position: relative;
442
+ width: 100%;
443
+ overflow: hidden;
444
+ }
445
+
446
+ div.chart_column_picker_container div.existing_columns {
447
+ float: left;
448
+ width: 40%;
449
+ margin: 4px;
450
+ padding: 3px;
451
+ border: 1px solid #ddd;
452
+ border-radius: 3px;
453
+ }
454
+
455
+ div.chart_column_picker_container div.picker_column {
456
+ float: left;
457
+ width: 100px;
458
+ margin: 4px;
459
+ padding: 3px;
460
+ }
461
+
462
+ div.chart_column_picker_container div.picker_column button {
463
+ width: 100px;
464
+ margin: 3px;
465
+ }
466
+
467
+ div.chart_column_picker_container div.chosen_columns {
468
+ float: left;
469
+ width: 40%;
470
+ margin: 4px;
471
+ padding: 3px;
472
+ border: 1px solid #ddd;
473
+ border-radius: 3px;
474
+ }
475
+
476
+ div.chart_column_picker_container div.chart_column_block {
477
+ border: 1px solid #ddd;
478
+ border-radius: 3px;
479
+ background: rgb(255,255,255); /* Old browsers */
480
+ background: -moz-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(244,244,244,1) 100%); /* FF3.6+ */
481
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,1)), color-stop(100%,rgba(244,244,244,1))); /* Chrome,Safari4+ */
482
+ background: -webkit-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(244,244,244,1) 100%); /* Chrome10+,Safari5.1+ */
483
+ background: -o-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(244,244,244,1) 100%); /* Opera 11.10+ */
484
+ background: -ms-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(244,244,244,1) 100%); /* IE10+ */
485
+ background: linear-gradient(to bottom, rgba(255,255,255,1) 0%,rgba(244,244,244,1) 100%); /* W3C */
486
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f4f4f4',GradientType=0 ); /* IE6-9 */
487
+ padding: 3px;
488
+ padding-left: 6px;
489
+ padding-right: 6px;
490
+ height: 20px;
491
+ margin: 3px;
492
+ cursor: pointer;
493
+ }
494
+
495
+ div.chart_column_picker_container div.chart_column_block:hover {
496
+ border: 1px solid #ddd;
497
+ border-radius: 3px;
498
+ background: rgb(255,255,255); /* Old browsers */
499
+ background: -moz-linear-gradient(top, rgba(244,244,244,1) 0%, rgba(255,255,255,1) 100%); /* FF3.6+ */
500
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba255,255,255,1)), color-stop(100%,rgba(244,244,244,1))); /* Chrome,Safari4+ */
501
+ background: -webkit-linear-gradient(top, rgba244,244,244,1) 0%,rgba(255,255,255,1) 100%); /* Chrome10+,Safari5.1+ */
502
+ background: -o-linear-gradient(top, rgba(244,244,244,1) 0%,rgba(255,255,255,1) 100%); /* Opera 11.10+ */
503
+ background: -ms-linear-gradient(top, rgba(244,244,244,1) 0%,rgba(255,255,255,1) 100%); /* IE10+ */
504
+ background: linear-gradient(to bottom, rgba(244,244,244,1) 0%,rgba(255,255,255,1) 100%); /* W3C */
505
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f4f4', endColorstr='ffffff',GradientType=0 ); /* IE6-9 */
506
+ }
507
+
508
+ div.chart_column_picker_container div.chart_column_block.selected {
509
+ border: 1px solid #c5c5c5;
510
+ border-radius: 3px;
511
+ background: rgb(255,255,255); /* Old browsers */
512
+ background: -moz-linear-gradient(top, rgba(233,233,233,1) 0%, rgba(211,211,211,1) 100%); /* FF3.6+ */
513
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(233,233,233,1)), color-stop(100%,rgba(211,211,211,1))); /* Chrome,Safari4+ */
514
+ background: -webkit-linear-gradient(top, rgba(233,233,233,1) 0%,rgba(211,211,211,1) 100%); /* Chrome10+,Safari5.1+ */
515
+ background: -o-linear-gradient(top, rgba(233,233,233,1) 0%,rgba(211,211,211,1) 100%); /* Opera 11.10+ */
516
+ background: -ms-linear-gradient(top, rgba(233,233,233,1) 0%,rgba(211,211,211,1) 100%); /* IE10+ */
517
+ background: linear-gradient(to bottom, rgba(233,233,233,1) 0%,rgba(211,211,211,1) 100%); /* W3C */
518
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f4f4f4',GradientType=0 ); /* IE6-9 */
519
+ }
520
+
521
+ div.chart_column_picker_container div.existing_columns_container,
522
+ div.chart_column_picker_container div.chosen_columns_container {
523
+ max-height: 200px;
524
+ overflow-y: scroll;
525
+ }
526
+
527
+ #pickRangeTableContainer { width: 100%; max-height: 400px; overflow: scroll; }
528
+ .remodal.wpDataTables.wdtRemodal.pickRange { max-width: 900px; }
529
+
530
+ div.pickRange table.rangePickerTable td { padding: 3px }
531
+
532
+ div.pickRange table.rangePickerTable td.selected { background-color:#ddd; }
533
+
534
+ div.pickRange table.rangePickerTable tr:hover {
535
+ cursor: pointer;
536
+ background-color: #eee;
537
+ }
538
+
539
+ #rangePickedInfo { padding: 3px; font-size: 10px; }
540
+
541
+ div.columns_block_selecter_buttons { margin: 5px }
542
+
543
+ div.wpDataTables div.strings_error,
544
+ div.wpDataTables div.min_columns_error,
545
+ div.wpDataTables div.max_columns_error {
546
+ font-weight: bold;
547
+ color: red;
548
+ margin: 5px;
549
+ padding: 3px;
550
+ border: 1px solid red;
551
+ border-radius: 3px;
552
+ background-color: #fdd;
553
+ }
554
+
555
+ .wpDataTables #series_settings_container div.chart_series_block {
556
+ margin: 3px;
557
+ position: relative;
558
+ overflow: hidden;
559
+ }
560
+
561
+ .wpDataTables #series_settings_container div.chart_series_block .chart_series_label {
562
+ margin: 3px;
563
+ float: left;
564
+ }
565
+
566
+ .wpDataTables #series_settings_container div.chart_series_block .chart_series_color {
567
+ margin: 3px;
568
+ float: left;
569
+ }
570
+
571
+ #wdt_chart_shortcode_container {
572
+ font-size: 15px;
573
+ padding: 10px;
574
+ background-color: #ffd;
575
+ border-radius: 3px;
576
+ border: 1px solid #dda;
577
+ font-weight: bold;
578
+ font: 400 20px/1;
579
+ text-align: center;
580
+ }
581
+
582
+ div.mce-widget button i.mce-i-wpdatatable:before{
583
+ content: "\e016";
584
+ font-family: 'WPDataTablesIcons' !important;
585
+ }
586
+
587
+ div.mce-widget button i.mce-i-wpdatachart:before{
588
+ content: "\f185";
589
+ font: 400 20px/1 dashicons;
590
+ }
591
+ table.colorFontSettings th, table.colorFontSettings { padding: 10px; }
592
+ #google_chart_type { display: none !important; }
593
+ #highcharts_chart_type { display: none !important; }
assets/fonts/wpdatatables-icons.eot ADDED
Binary file
assets/fonts/wpdatatables-icons.svg ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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="peppericonswhite" horiz-adv-x="867" >
7
+ <font-face units-per-em="1000" ascent="800" descent="-200" />
8
+ <missing-glyph horiz-adv-x="612" />
9
+ <glyph horiz-adv-x="1000" />
10
+ <glyph horiz-adv-x="1000" />
11
+ <glyph unicode="&#xd;" horiz-adv-x="1000" />
12
+ <glyph unicode=" " horiz-adv-x="612" />
13
+ <glyph unicode="&#x09;" horiz-adv-x="612" />
14
+ <glyph unicode="&#xa0;" horiz-adv-x="612" />
15
+ <glyph unicode="&#x2000;" horiz-adv-x="433" />
16
+ <glyph unicode="&#x2001;" />
17
+ <glyph unicode="&#x2002;" horiz-adv-x="433" />
18
+ <glyph unicode="&#x2003;" />
19
+ <glyph unicode="&#x2004;" horiz-adv-x="289" />
20
+ <glyph unicode="&#x2005;" horiz-adv-x="216" />
21
+ <glyph unicode="&#x2006;" horiz-adv-x="144" />
22
+ <glyph unicode="&#x2007;" horiz-adv-x="144" />
23
+ <glyph unicode="&#x2008;" horiz-adv-x="108" />
24
+ <glyph unicode="&#x2009;" horiz-adv-x="173" />
25
+ <glyph unicode="&#x200a;" horiz-adv-x="48" />
26
+ <glyph unicode="&#x202f;" horiz-adv-x="173" />
27
+ <glyph unicode="&#x205f;" horiz-adv-x="216" />
28
+ <glyph unicode="&#x25fc;" horiz-adv-x="510" d="M0 0z" />
29
+ <glyph unicode="&#xe001;" horiz-adv-x="524" d="M0 91l343 343l-343 343l91 90l433 -433l-433 -434z" />
30
+ <glyph unicode="&#xe002;" horiz-adv-x="524" d="M0 434l434 433l90 -90l-342 -343l342 -343l-90 -91z" />
31
+ <glyph unicode="&#xe003;" d="M0 91l343 343l-343 343l91 90l433 -433l-433 -434zM343 91l342 343l-342 343l91 90l433 -433l-433 -434z" />
32
+ <glyph unicode="&#xe004;" d="M0 434l434 433l90 -90l-341 -343l341 -343l-90 -91zM343 434l434 433l90 -90l-343 -343l343 -343l-90 -91z" />
33
+ <glyph unicode="&#xe005;" d="M0 86l348 348l-348 348l86 85l348 -348l348 348l85 -85l-348 -348l348 -348l-85 -86l-348 348l-348 -348z" />
34
+ <glyph unicode="&#xe006;" d="M0 351v165h351v351h165v-351h351v-165h-351v-351h-165v351h-351z" />
35
+ <glyph unicode="&#xe007;" d="M0 352v164h867v-164h-867z" />
36
+ <glyph unicode="&#xe008;" d="M0 230l204 168l150 -156q76 120 228 274.5t285 238.5q-26 -92 -26 -203q0 -38 4 -62q-137 -85 -265 -212t-226 -278q-59 83 -157.5 143t-196.5 87z" />
37
+ <glyph unicode="&#xe009;" d="M0 434q0 44 9 86l122 -38q-4 -32 -4 -48q0 -127 89 -218l-74 -103q-67 61 -104.5 144t-37.5 177zM39 612q46 104 139 171.5t208 80.5v-127q-73 -12 -133 -56t-93 -109zM219 56l76 104q66 -33 139 -33q72 0 138 33l76 -104q-98 -56 -214 -56q-117 0 -215 56zM482 737v127 q115 -13 208 -80.5t139 -171.5l-122 -40q-33 65 -92.5 109t-132.5 56zM651 216q90 92 90 218q0 16 -4 48l121 38q9 -42 9 -86q0 -193 -141 -321z" />
38
+ <glyph unicode="&#xe00a;" d="M0 748v119h867v-119l-346 -333v-309l-175 -106v415zM270 671l164 -156l163 156h-327z" />
39
+ <glyph unicode="&#xe00b;" horiz-adv-x="748" d="M0 713q0 32 23 54.5t55 22.5h37q0 32 23 54.5t55 22.5h363q32 0 55 -22.5t23 -54.5h37q32 0 55 -22.5t23 -54.5h-749zM84 78v581h581v-581q0 -32 -22.5 -55t-54.5 -23h-427q-32 0 -54.5 23t-22.5 55zM179 108q0 -16 11 -27.5t27 -11.5t27.5 11.5t11.5 27.5v445 q0 16 -11.5 27.5t-27.5 11.5t-27 -11.5t-11 -27.5v-445zM336 108q0 -16 11 -27.5t27 -11.5t27.5 11.5t11.5 27.5v445q0 16 -11.5 27.5t-27.5 11.5t-27 -11.5t-11 -27.5v-445zM493 108q0 -16 11.5 -27.5t27.5 -11.5t27 11.5t11 27.5v445q0 16 -11 27.5t-27 11.5t-27.5 -11.5 t-11.5 -27.5v-445z" />
40
+ <glyph unicode="&#xe00c;" d="M0 0l79 240l473 473l161 -160l-474 -474zM617 779l68 68q20 20 47 20t49 -20l32 -33l33 -33q21 -18 21 -47q0 -30 -21 -49l-67 -68z" />
41
+ <glyph unicode="&#xe00d;" d="M0 521q0 143 101.5 244.5t244.5 101.5t244 -101.5t101 -244.5q0 -112 -63 -200l234 -235q5 -5 5 -14q0 -4 -7 -14q-10 -15 -22 -27q-20 -18 -29 -24l-13 -7q-8 0 -13 5l-236 236q-89 -64 -201 -64q-143 0 -244.5 100.5t-101.5 243.5zM103 521q0 -101 71 -171.5t172 -70.5 t172 71t71 171q0 101 -71 172t-172 71t-172 -71t-71 -172z" />
42
+ <glyph unicode="&#xe00e;" d="M0 372v126q0 6 4.5 12t10.5 7l105 17q4 13 22 52q-10 16 -60 77q-5 7 -5 15q0 5 5 12q14 19 55 60t54 41q6 0 14 -5l78 -60q22 11 52 21q6 65 16 105q4 15 20 15h125q18 0 20 -17l17 -103q31 -11 51 -21l79 60q5 5 15 5q8 0 13 -5q70 -64 94 -96q4 -8 4 -12q0 -7 -5 -14 q-9 -14 -29.5 -39t-30.5 -38q17 -34 24 -55l103 -17q16 -2 16 -20v-126q0 -6 -4.5 -12t-10.5 -7l-105 -16q-9 -27 -21 -51q15 -23 60 -79q5 -7 5 -14t-5 -12q-14 -19 -55 -60t-53 -41q-8 0 -16 5l-77 60q-28 -14 -52 -22q-5 -59 -17 -105q-4 -15 -20 -15h-125q-18 0 -20 17 l-16 103q-24 8 -51 22l-80 -60q-5 -5 -13 -5t-14 6q-68 59 -94 95q-4 8 -4 12q0 6 5 13q9 14 29.5 39.5t29.5 38.5q-17 34 -24 56l-103 15q-16 2 -16 20zM252 434q0 -75 53.5 -128.5t128.5 -53.5t128 53.5t53 128.5t-53 128t-128 53t-128.5 -53t-53.5 -128z" />
43
+ <glyph unicode="&#xe00f;" d="M0 257v356q0 22 15 37t37 15h763q22 0 37 -15t15 -37v-356q0 -22 -15 -37t-37 -15h-152l-1 -33l-172 -172h-286v205h-152q-22 0 -37 15t-15 37zM204 726v141h459l-1 -141h-458zM256 52h234v120h120v118h-354v-238zM700 528q0 -14 10.5 -24.5t24.5 -10.5h33q14 0 24 10.5 t10 24.5v33q0 13 -10 23.5t-24 10.5h-33q-14 0 -24.5 -10t-10.5 -24v-33z" />
44
+ <glyph unicode="&#xe010;" horiz-adv-x="843" d="M0 73v646q258 44 424 74h56v-74h332q37 -2 46 -9q7 -10 9 -47v-479v-12.5v-15v-12.5q0 -22 -3 -41q-2 -9 -11 -13.5t-14 -5t-18 -1.5h-341v-83h-58q-83 15 -422 73zM65 193l92 -5l66 162l69 -170l101 -7l-114 230l111 226l-97 -10l-66 -165l-58 154l-91 -7l92 -202z M480 128h341v545h-341v-39h117v-90h-117v-37h117v-89h-117v-36h117v-90h-117v-37h117v-90h-117v-37zM632 165v90h145v-90h-145zM632 292v90h145v-90h-145zM632 418v89h145v-89h-145zM632 544v90h145v-90h-145z" />
45
+ <glyph unicode="&#xe011;" d="M0 43v694q0 17 13 30t30 13h69v-34q0 -40 28 -68.5t68 -28.5h57q40 0 68.5 28.5t28.5 68.5v34h143v-34q0 -40 28.5 -68.5t68.5 -28.5h57q40 0 68 28.5t28 68.5v34h69q17 0 30 -13t13 -30v-694q0 -17 -13 -30t-30 -13h-781q-17 0 -30 13t-13 30zM71 71h725v484h-725v-484z M165 746v78q0 17 13 30t30 13h57q17 0 30 -13t13 -30v-78q0 -17 -13 -30t-30 -13h-57q-17 0 -30 13t-13 30zM460 219v249h249v-249h-249zM520 280h128v127h-128v-127zM559 746v78q0 17 13 30t30 13h57q17 0 30 -13t13 -30v-78q0 -17 -13 -30t-30 -13h-57q-17 0 -30 13 t-13 30z" />
46
+ <glyph unicode="&#xe012;" d="M0 43v694q0 17 13 30t30 13h69v-34q0 -40 28 -68.5t68 -28.5h57q40 0 68.5 28.5t28.5 68.5v34h143v-34q0 -40 28.5 -68.5t68.5 -28.5h57q40 0 68 28.5t28 68.5v34h69q17 0 30 -13t13 -30v-92l-47 -30q-23 -14 -83 -60h-666v-484h180q76 -27 129 -71h-337q-17 0 -30 13 t-13 30zM165 746v78q0 17 13 30t30 13h57q17 0 30 -13t13 -30v-78q0 -17 -13 -30t-30 -13h-57q-17 0 -30 13t-13 30zM245 164l146 123l108 -114q54 86 163.5 197.5t204.5 172.5q-19 -64 -19 -144q0 -30 4 -47q-210 -131 -353 -352q-42 60 -113 102.5t-141 61.5zM559 746v78 q0 17 13 30t30 13h57q17 0 30 -13t13 -30v-78q0 -17 -13 -30t-30 -13h-57q-17 0 -30 13t-13 30zM604 0q36 47 57 71h135v133q42 35 71 54v-215q0 -17 -13 -30t-30 -13h-220z" />
47
+ <glyph unicode="&#xe013;" />
48
+ <glyph unicode="&#xe014;" />
49
+ <glyph unicode="&#xe015;" />
50
+ <glyph unicode="&#xe016;" />
51
+ <glyph unicode="&#xe017;" horiz-adv-x="208" />
52
+ <glyph unicode="&#xe018;" />
53
+ <glyph unicode="&#xe019;" />
54
+ <glyph unicode="&#xe01a;" />
55
+ <glyph unicode="&#xe01b;" />
56
+ <glyph unicode="&#xe01d;" />
57
+ <glyph unicode="&#xe01e;" />
58
+ <glyph unicode="&#xe01f;" />
59
+ <glyph unicode="&#xe020;" />
60
+ <glyph unicode="&#xe021;" />
61
+ <glyph unicode="&#xe022;" />
62
+ <glyph unicode="&#xe023;" />
63
+ <glyph unicode="&#xe024;" horiz-adv-x="436" />
64
+ <glyph unicode="&#xe025;" horiz-adv-x="438" />
65
+ <glyph unicode="&#xe026;" horiz-adv-x="693" />
66
+ <glyph unicode="&#xe027;" horiz-adv-x="693" />
67
+ <glyph unicode="&#xe028;" />
68
+ <glyph unicode="&#xe029;" />
69
+ <glyph unicode="&#xe02a;" />
70
+ <glyph unicode="&#xe02b;" />
71
+ <glyph unicode="&#xe02c;" />
72
+ <glyph unicode="&#xe02d;" />
73
+ </font>
74
+ </defs></svg>
assets/fonts/wpdatatables-icons.ttf ADDED
Binary file
assets/fonts/wpdatatables-icons.woff ADDED
Binary file
assets/fonts/wpdatatablesicons-base.eot ADDED
Binary file
assets/fonts/wpdatatablesicons-base.svg ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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="wpdatatablesiconsbase" horiz-adv-x="850" >
7
+ <font-face units-per-em="980" ascent="784" descent="-196" />
8
+ <missing-glyph horiz-adv-x="600" />
9
+ <glyph horiz-adv-x="980" />
10
+ <glyph horiz-adv-x="980" />
11
+ <glyph unicode="&#xd;" horiz-adv-x="980" />
12
+ <glyph unicode=" " horiz-adv-x="600" />
13
+ <glyph unicode="&#x09;" horiz-adv-x="600" />
14
+ <glyph unicode="&#xa0;" horiz-adv-x="600" />
15
+ <glyph unicode="&#x2000;" horiz-adv-x="425" />
16
+ <glyph unicode="&#x2001;" />
17
+ <glyph unicode="&#x2002;" horiz-adv-x="425" />
18
+ <glyph unicode="&#x2003;" />
19
+ <glyph unicode="&#x2004;" horiz-adv-x="283" />
20
+ <glyph unicode="&#x2005;" horiz-adv-x="212" />
21
+ <glyph unicode="&#x2006;" horiz-adv-x="141" />
22
+ <glyph unicode="&#x2007;" horiz-adv-x="141" />
23
+ <glyph unicode="&#x2008;" horiz-adv-x="106" />
24
+ <glyph unicode="&#x2009;" horiz-adv-x="170" />
25
+ <glyph unicode="&#x200a;" horiz-adv-x="47" />
26
+ <glyph unicode="&#x202f;" horiz-adv-x="170" />
27
+ <glyph unicode="&#x205f;" horiz-adv-x="212" />
28
+ <glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
29
+ <glyph unicode="&#xe001;" horiz-adv-x="514" d="M0 89l336 336l-336 336l89 89l425 -425l-425 -425z" />
30
+ <glyph unicode="&#xe002;" horiz-adv-x="514" d="M0 425l425 425l89 -89l-336 -336l336 -336l-89 -89z" />
31
+ <glyph unicode="&#xe003;" d="M0 89l336 336l-336 336l89 89l425 -425l-425 -425zM336 89l335 336l-335 336l89 89l425 -425l-425 -425z" />
32
+ <glyph unicode="&#xe004;" d="M0 425l425 425l89 -89l-335 -336l335 -336l-89 -89zM336 425l425 425l89 -89l-336 -336l336 -336l-89 -89z" />
33
+ <glyph unicode="&#xe005;" d="M0 84l341 341l-341 341l84 84l341 -341l341 341l84 -84l-341 -341l341 -341l-84 -84l-341 341l-341 -341z" />
34
+ <glyph unicode="&#xe006;" d="M0 344v162h344v344h162v-344h344v-162h-344v-344h-162v344h-344z" />
35
+ <glyph unicode="&#xe007;" d="M0 345v161h850v-161h-850z" />
36
+ <glyph unicode="&#xe008;" d="M0 225l200 165l147 -153q74 118 223.5 269t279.5 234q-26 -90 -26 -199q0 -37 4 -61q-134 -84 -259.5 -208.5t-221.5 -271.5q-58 82 -154.5 140.5t-192.5 84.5z" />
37
+ <glyph unicode="&#xe009;" d="M0 425q0 45 9 85l119 -38q-4 -32 -4 -47q0 -123 88 -213l-73 -101q-66 60 -102.5 141t-36.5 173zM38 600q45 101 136 167.5t204 79.5v-125q-72 -12 -130 -54.5t-91 -106.5zM215 55l74 102q64 -33 136 -33t136 33l74 -102q-97 -55 -210 -55t-210 55zM472 722v125 q113 -13 204 -79.5t136 -167.5l-119 -39q-33 64 -91 106.5t-130 54.5zM638 212q88 90 88 213q0 15 -4 47l119 38q9 -40 9 -85q0 -92 -36.5 -173t-102.5 -141z" />
38
+ <glyph unicode="&#xe00a;" d="M0 733v117h850v-117l-339 -326v-303l-172 -104v407zM265 658l160 -153l160 153h-320z" />
39
+ <glyph unicode="&#xe00b;" horiz-adv-x="734" d="M0 699q0 31 22 53t54 22h37q0 32 22.5 54t53.5 22h356q31 0 53.5 -22t22.5 -54h37q32 0 54 -22t22 -53h-734zM82 76v570h570v-570q0 -32 -22 -54t-54 -22h-418q-32 0 -54 22t-22 54zM175 106q0 -16 11 -27t27 -11t27 11t11 27v436q0 16 -11 27t-27 11t-27 -11t-11 -27 v-436zM329 106q0 -16 11 -27t27 -11t27 11t11 27v436q0 16 -11 27t-27 11t-27 -11t-11 -27v-436zM483 106q0 -16 11 -27t27 -11t27 11t11 27v436q0 16 -11 27t-27 11t-27 -11t-11 -27v-436z" />
40
+ <glyph unicode="&#xe00c;" d="M0 0l77 235l464 464l158 -157l-465 -465zM605 763l66 67q20 20 46 20t48 -20l32 -32l32 -33q21 -18 21 -46q0 -29 -21 -48l-66 -66z" />
41
+ <glyph unicode="&#xe00d;" d="M0 511q0 140 99.5 239.5t239.5 99.5t239 -99.5t99 -239.5q0 -109 -62 -196l230 -231q5 -5 5 -13q0 -4 -7 -14q-10 -15 -22 -27q-19 -17 -28 -23l-13 -7q-8 0 -13 5l-231 231q-88 -63 -197 -63q-140 0 -239.5 99t-99.5 239zM101 511q0 -98 69.5 -168t168.5 -70 q98 0 168 70t70 168q0 99 -70 168.5t-168 69.5q-99 0 -168.5 -69.5t-69.5 -168.5z" />
42
+ <glyph unicode="&#xe00e;" d="M0 365v123q0 6 4.5 12t10.5 7l103 16q4 16 21 51q-23 33 -59 76q-5 7 -5 14q0 5 5 12q14 19 54 59t53 40q6 0 14 -5l76 -59q24 12 51 21q6 65 16 103q4 15 20 15h122q18 0 20 -17l16 -101q27 -10 50 -21l78 59q5 5 14 5q8 0 13 -5q66 -60 92 -94q4 -8 4 -12q0 -6 -5 -13 q-9 -13 -28.5 -38t-29.5 -38q15 -30 23 -54l101 -16q16 -2 16 -20v-123q0 -6 -4.5 -12t-10.5 -7l-103 -16q-8 -24 -21 -50q22 -33 59 -77q5 -7 5 -14t-5 -12q-14 -19 -54 -59t-52 -40q-7 0 -15 5l-76 59q-24 -12 -51 -21q-6 -65 -16 -103q-4 -15 -20 -15h-122q-18 0 -20 17 l-16 101q-27 10 -50 21l-78 -59q-5 -5 -13 -5t-14 6q-64 55 -92 93q-4 8 -4 12q0 6 5 13q10 13 29.5 38t28.5 38q-15 31 -23 55l-101 15q-16 2 -16 20zM247 425q0 -73 52.5 -125.5t125.5 -52.5t125.5 52.5t52.5 125.5t-52.5 125.5t-125.5 52.5t-125.5 -52.5t-52.5 -125.5z " />
43
+ <glyph unicode="&#xe00f;" d="M0 252v349q0 22 15 36.5t36 14.5h748q21 0 36 -14.5t15 -36.5v-349q0 -21 -15 -36t-36 -15h-149l-1 -32l-169 -169h-280v201h-149q-21 0 -36 15t-15 36zM200 711v139h450l-1 -139h-449zM251 51h229v118h118v115h-347v-233zM686 517q0 -14 10 -24t24 -10h33q14 0 23.5 10 t9.5 24v33q0 14 -10 23.5t-23 9.5h-33q-14 0 -24 -9.5t-10 -23.5v-33z" />
44
+ <glyph unicode="&#xe010;" d="M0 0v850h643v-207h207v-643h-850zM88 273h105l60 98l61 -98h105l-103 157l94 147h-102l-53 -93l-54 93h-103l95 -146zM507 151h89v78h-89v-78zM507 274h89v78h-89v-78zM507 397h89v78h-89v-78zM507 520h89v79h-89v-79zM507 643h89v79h-89v-79zM642 151h157v78h-157v-78z M642 274h157v78h-157v-78zM642 397h157v78h-157v-78zM642 520h157v79h-157v-79zM682 682v168l168 -168h-168z" />
45
+ <glyph unicode="&#xe011;" d="M0 42v680q0 17 12.5 29.5t29.5 12.5h68v-33q0 -39 27.5 -67t66.5 -28h56q39 0 67 28t28 67v33h140v-33q0 -39 28 -67t67 -28h56q39 0 66.5 28t27.5 67v33h68q17 0 29.5 -12.5t12.5 -29.5v-680q0 -17 -12.5 -29.5t-29.5 -12.5h-766q-17 0 -29.5 12.5t-12.5 29.5zM70 70 h710v474h-710v-474zM162 731v77q0 17 12.5 29.5t29.5 12.5h56q17 0 29.5 -12.5t12.5 -29.5v-77q0 -17 -12.5 -29.5t-29.5 -12.5h-56q-17 0 -29.5 12.5t-12.5 29.5zM451 215v244h244v-244h-244zM510 274h125v125h-125v-125zM548 731v77q0 17 12.5 29.5t29.5 12.5h56 q17 0 29.5 -12.5t12.5 -29.5v-77q0 -17 -12.5 -29.5t-29.5 -12.5h-56q-17 0 -29.5 12.5t-12.5 29.5z" />
46
+ <glyph unicode="&#xe012;" d="M0 42v680q0 17 12.5 29.5t29.5 12.5h68v-33q0 -39 27.5 -67t66.5 -28h56q39 0 67 28t28 67v33h140v-33q0 -39 28 -67t67 -28h56q39 0 66.5 28t27.5 67v33h68q17 0 29.5 -12.5t12.5 -29.5v-90l-46 -29q-41 -27 -82 -59h-652v-474h176q74 -26 126 -70h-330 q-17 0 -29.5 12.5t-12.5 29.5zM162 731v77q0 17 12.5 29.5t29.5 12.5h56q17 0 29.5 -12.5t12.5 -29.5v-77q0 -17 -12.5 -29.5t-29.5 -12.5h-56q-17 0 -29.5 12.5t-12.5 29.5zM240 161l143 120l106 -111q53 84 160.5 193t200.5 169q-19 -62 -19 -141q0 -29 4 -46 q-97 -60 -187 -149.5t-159 -195.5q-42 58 -111 100t-138 61zM548 731v77q0 17 12.5 29.5t29.5 12.5h56q17 0 29.5 -12.5t12.5 -29.5v-77q0 -17 -12.5 -29.5t-29.5 -12.5h-56q-17 0 -29.5 12.5t-12.5 29.5zM592 0q36 48 56 70h132v130q40 33 70 53v-211q0 -17 -12.5 -29.5 t-29.5 -12.5h-216z" />
47
+ <glyph unicode="&#xe013;" d="M0 0v850h643v-207h207v-643h-850zM19 70q0 -18 12 -25l20 -11q13 -6 27 -6q38 0 83.5 48.5t105.5 153.5q146 49 291 69q53 -29 112 -48t99 -19q15 0 25 3q11 3 25 17q15 16 12 47q-3 23 -14 34q-27 25 -113 25q-59 0 -123 -10q-42 26 -59 42q-70 64 -108 167 q26 90 26 177q0 24 -3 36q-12 52 -47 52h-14q-17 0 -30.5 -8.5t-17.5 -22.5q-7 -21 -7 -52q0 -62 36 -203l-7 -18q-23 -57 -71 -148l-2 -6q-36 -69 -74 -134q-54 -24 -70 -33q-39 -23 -73.5 -57t-39.5 -61q-1 -3 -1 -9zM67 66q8 21 35 54t64 64l20 18q-73 -116 -119 -136z M290 276l35 64q32 61 61 133q41 -74 101 -125l16 -13q-115 -23 -213 -59zM378 738q0 25 4 48q0 7 3 10q8 0 15 -10.5t9 -27.5q1 -8 1 -26q0 -62 -19 -100q-3 8 -8 46.5t-5 59.5zM656 311q40 2 54 2q46 0 67 -7q31 -10 31 -18q0 -13 -23 -13q-46 0 -129 36zM682 682v168 l168 -168h-168z" />
48
+ <glyph unicode="&#xe014;" d="M0 0v850h643v-207h207v-643h-146l114 332l-54 2l-99 -297l-97 297h-54l112 -334h-129q33 27 33 74q0 20 -6 35.5t-19.5 28t-22 18t-26.5 16.5l-36 20q-19 11 -27.5 16.5t-19 18t-10.5 25.5q0 22 15.5 34t42.5 12q25 0 84 -17v48q-33 11 -81 11q-52 0 -85 -23.5t-33 -68.5 q0 -9 1.5 -17t5 -15t6 -12.5t9 -11.5t9.5 -9t11.5 -8.5t11 -7t12.5 -7t11 -6.5l33 -19q1 -1 10 -6t11 -6.5t9.5 -6.5t9.5 -7.5t7 -8t6.5 -10t3 -11t1.5 -13.5q0 -26 -19.5 -39t-48.5 -13q-51 0 -94 26v-40h-45v42q-42 -28 -83 -28q-95 0 -95 154q0 130 76 130q56 0 56 -61 h60q0 46 -30.5 74.5t-83.5 28.5q-135 0 -135 -180q0 -114 56 -160h-88zM682 682v168l168 -168h-168z" />
49
+ <glyph unicode="&#xe015;" d="M0 0v643h256v-500h273v-143h-529zM321 207v643h321v-208h208v-435h-529zM681 681v169l169 -169h-169z" />
50
+ <glyph unicode="&#xe016;" d="M0 425v142h142v142h708v-567h-567v141h-141v142h-142zM283 425h142v-142h142v142h-142v142h-142v-142z" />
51
+ </font>
52
+ </defs></svg>
assets/fonts/wpdatatablesicons-base.ttf ADDED
Binary file
assets/fonts/wpdatatablesicons-base.woff ADDED
Binary file
assets/img/buttonplus.png ADDED
File without changes
assets/img/chart_thumbs/google_area_chart.jpg ADDED
Binary file
assets/img/chart_thumbs/google_bar_chart.jpg ADDED
Binary file
assets/img/chart_thumbs/google_bubble_chart.jpg ADDED
Binary file
assets/img/chart_thumbs/google_candlestick_chart.jpg ADDED
Binary file
assets/img/chart_thumbs/google_column_chart.jpg ADDED
Binary file
assets/img/chart_thumbs/google_donut_chart.jpg ADDED
Binary file
assets/img/chart_thumbs/google_gauge_chart.jpg ADDED
Binary file
assets/img/chart_thumbs/google_histogram.jpg ADDED
Binary file
assets/img/chart_thumbs/google_line_chart.jpg ADDED
Binary file
assets/img/chart_thumbs/google_pie_chart.jpg ADDED
Binary file
assets/img/chart_thumbs/google_scatter_chart.jpg ADDED
Binary file
assets/img/chart_thumbs/google_stepped_area_chart.jpg ADDED
Binary file
assets/img/chart_thumbs/highcharts_3d_column_chart.jpg ADDED
Binary file
assets/img/chart_thumbs/highcharts_3d_donut_chart.jpg ADDED
Binary file
assets/img/chart_thumbs/highcharts_3d_pie_chart.jpg ADDED
Binary file
assets/img/chart_thumbs/highcharts_angular_gauge_chart.jpg ADDED
Binary file
assets/img/chart_thumbs/highcharts_basic_area_chart.jpg ADDED
Binary file
assets/img/chart_thumbs/highcharts_basic_bar_chart.jpg ADDED
Binary file
assets/img/chart_thumbs/highcharts_basic_column_chart.jpg ADDED
Binary file
assets/img/chart_thumbs/highcharts_donut_chart.jpg ADDED
Binary file
assets/img/chart_thumbs/highcharts_line_chart.jpg ADDED
Binary file
assets/img/chart_thumbs/highcharts_pie_chart.jpg ADDED
Binary file
assets/img/chart_thumbs/highcharts_pie_with_gradient_chart.jpg ADDED
Binary file
assets/img/chart_thumbs/highcharts_scatter_plot.jpg ADDED
Binary file
assets/img/chart_thumbs/highcharts_solid_gauge_chart.jpg ADDED
Binary file
assets/img/chart_thumbs/highcharts_stacked_area_chart.jpg ADDED
Binary file
assets/img/chart_thumbs/highcharts_stacked_bar_chart.jpg ADDED
Binary file
assets/img/chart_thumbs/highcharts_stacked_column_chart.jpg ADDED
Binary file
assets/img/icons.png ADDED
Binary file
assets/img/loadingAnimation.gif ADDED
Binary file
assets/img/spinner.gif ADDED
Binary file
assets/img/vc-charts-icon.png ADDED
Binary file
assets/img/vc-icon.png ADDED
Binary file
assets/img/wpdatatables-logo.png ADDED
Binary file
assets/index.html ADDED
File without changes
assets/js/ace/ace.js ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ (function(){function o(n){var i=e;n&&(e[n]||(e[n]={}),i=e[n]);if(!i.define||!i.define.packaged)t.original=i.define,i.define=t,i.define.packaged=!0;if(!i.require||!i.require.packaged)r.original=i.require,i.require=r,i.require.packaged=!0}var ACE_NAMESPACE = "ace",e=function(){return this}();!e&&typeof window!="undefined"&&(e=window);if(!ACE_NAMESPACE&&typeof requirejs!="undefined")return;var t=function(e,n,r){if(typeof e!="string"){t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(r=n),t.modules[e]||(t.payloads[e]=r,t.modules[e]=null)};t.modules={},t.payloads={};var n=function(e,t,n){if(typeof t=="string"){var i=s(e,t);if(i!=undefined)return n&&n(),i}else if(Object.prototype.toString.call(t)==="[object Array]"){var o=[];for(var u=0,a=t.length;u<a;++u){var f=s(e,t[u]);if(f==undefined&&r.original)return;o.push(f)}return n&&n.apply(null,o)||!0}},r=function(e,t){var i=n("",e,t);return i==undefined&&r.original?r.original.apply(this,arguments):i},i=function(e,t){if(t.indexOf("!")!==-1){var n=t.split("!");return i(e,n[0])+"!"+i(e,n[1])}if(t.charAt(0)=="."){var r=e.split("/").slice(0,-1).join("/");t=r+"/"+t;while(t.indexOf(".")!==-1&&s!=t){var s=t;t=t.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return t},s=function(e,r){r=i(e,r);var s=t.modules[r];if(!s){s=t.payloads[r];if(typeof s=="function"){var o={},u={id:r,uri:"",exports:o,packaged:!0},a=function(e,t){return n(r,e,t)},f=s(a,o,u);o=f||u.exports,t.modules[r]=o,delete t.payloads[r]}s=t.modules[r]=o||s}return s};o(ACE_NAMESPACE)})(),ace.define("ace/lib/regexp",["require","exports","module"],function(e,t,n){"use strict";function o(e){return(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.extended?"x":"")+(e.sticky?"y":"")}function u(e,t,n){if(Array.prototype.indexOf)return e.indexOf(t,n);for(var r=n||0;r<e.length;r++)if(e[r]===t)return r;return-1}var r={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},i=r.exec.call(/()??/,"")[1]===undefined,s=function(){var e=/^/g;return r.test.call(e,""),!e.lastIndex}();if(s&&i)return;RegExp.prototype.exec=function(e){var t=r.exec.apply(this,arguments),n,a;if(typeof e=="string"&&t){!i&&t.length>1&&u(t,"")>-1&&(a=RegExp(this.source,r.replace.call(o(this),"g","")),r.replace.call(e.slice(t.index),a,function(){for(var e=1;e<arguments.length-2;e++)arguments[e]===undefined&&(t[e]=undefined)}));if(this._xregexp&&this._xregexp.captureNames)for(var f=1;f<t.length;f++)n=this._xregexp.captureNames[f-1],n&&(t[n]=t[f]);!s&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--}return t},s||(RegExp.prototype.test=function(e){var t=r.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t})}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)=="[object Array]"});var m=Object("a"),g=m[0]!="a"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!="object")throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document=="undefined"||w(document.createElement("div"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T="Property description must be an object: ",N="Object.defineProperty called on non-object: ",C="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(N+t);if(typeof r!="object"&&typeof r!="function"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,"value"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,"get")&&l(t,n,r.get),f(r,"set")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n=="function"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n="";while(f(t,n))n+="?";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys called on a non-object");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _=" \n\f\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";if(!String.prototype.trim||_.trim()){_="["+_+"]";var D=new RegExp("^"+_+_+"*"),P=new RegExp(_+_+"*$");String.prototype.trim=function(){return String(this).replace(D,"").replace(P,"")}}var F=function(e){if(e==null)throw new TypeError("can't convert "+e+" to object");return Object(e)}}),ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],function(e,t,n){"use strict";e("./regexp"),e("./es5-shim")}),ace.define("ace/lib/dom",["require","exports","module"],function(e,t,n){"use strict";var r="http://www.w3.org/1999/xhtml";t.getDocumentHead=function(e){return e||(e=document),e.head||e.getElementsByTagName("head")[0]||e.documentElement},t.createElement=function(e,t){return document.createElementNS?document.createElementNS(t||r,e):document.createElement(e)},t.hasCssClass=function(e,t){var n=(e.className||"").split(/\s+/g);return n.indexOf(t)!==-1},t.addCssClass=function(e,n){t.hasCssClass(e,n)||(e.className+=" "+n)},t.removeCssClass=function(e,t){var n=e.className.split(/\s+/g);for(;;){var r=n.indexOf(t);if(r==-1)break;n.splice(r,1)}e.className=n.join(" ")},t.toggleCssClass=function(e,t){var n=e.className.split(/\s+/g),r=!0;for(;;){var i=n.indexOf(t);if(i==-1)break;r=!1,n.splice(i,1)}return r&&n.push(t),e.className=n.join(" "),r},t.setCssClass=function(e,n,r){r?t.addCssClass(e,n):t.removeCssClass(e,n)},t.hasCssString=function(e,t){var n=0,r;t=t||document;if(t.createStyleSheet&&(r=t.styleSheets)){while(n<r.length)if(r[n++].owningElement.id===e)return!0}else if(r=t.getElementsByTagName("style"))while(n<r.length)if(r[n++].id===e)return!0;return!1},t.importCssString=function(n,i,s){s=s||document;if(i&&t.hasCssString(i,s))return null;var o;s.createStyleSheet?(o=s.createStyleSheet(),o.cssText=n,i&&(o.owningElement.id=i)):(o=s.createElementNS?s.createElementNS(r,"style"):s.createElement("style"),o.appendChild(s.createTextNode(n)),i&&(o.id=i),t.getDocumentHead(s).appendChild(o))},t.importCssStylsheet=function(e,n){if(n.createStyleSheet)n.createStyleSheet(e);else{var r=t.createElement("link");r.rel="stylesheet",r.href=e,t.getDocumentHead(n).appendChild(r)}},t.getInnerWidth=function(e){return parseInt(t.computedStyle(e,"paddingLeft"),10)+parseInt(t.computedStyle(e,"paddingRight"),10)+e.clientWidth},t.getInnerHeight=function(e){return parseInt(t.computedStyle(e,"paddingTop"),10)+parseInt(t.computedStyle(e,"paddingBottom"),10)+e.clientHeight};if(typeof document=="undefined")return;window.pageYOffset!==undefined?(t.getPageScrollTop=function(){return window.pageYOffset},t.getPageScrollLeft=function(){return window.pageXOffset}):(t.getPageScrollTop=function(){return document.body.scrollTop},t.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?t.computedStyle=function(e,t){return t?(window.getComputedStyle(e,"")||{})[t]||"":window.getComputedStyle(e,"")||{}}:t.computedStyle=function(e,t){return t?e.currentStyle[t]:e.currentStyle},t.scrollbarWidth=function(e){var n=t.createElement("ace_inner");n.style.width="100%",n.style.minWidth="0px",n.style.height="200px",n.style.display="block";var r=t.createElement("ace_outer"),i=r.style;i.position="absolute",i.left="-10000px",i.overflow="hidden",i.width="200px",i.minWidth="0px",i.height="150px",i.display="block",r.appendChild(n);var s=e.documentElement;s.appendChild(r);var o=n.offsetWidth;i.overflow="scroll";var u=n.offsetWidth;return o==u&&(u=r.clientWidth),s.removeChild(r),o-u},t.setInnerHtml=function(e,t){var n=e.cloneNode(!1);return n.innerHTML=t,e.parentNode.replaceChild(n,e),n},"textContent"in document.documentElement?(t.setInnerText=function(e,t){e.textContent=t},t.getInnerText=function(e){return e.textContent}):(t.setInnerText=function(e,t){e.innerText=t},t.getInnerText=function(e){return e.innerText}),t.getParentWindow=function(e){return e.defaultView||e.parentWindow}}),ace.define("ace/lib/oop",["require","exports","module"],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define("ace/lib/keys",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop"],function(e,t,n){"use strict";e("./fixoldbrowsers");var r=e("./oop"),i=function(){var e={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,"super":8,meta:8,command:8,cmd:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9","-13":"NumpadEnter",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"}},t,n;for(n in e.FUNCTION_KEYS)t=e.FUNCTION_KEYS[n].toLowerCase(),e[t]=parseInt(n,10);for(n in e.PRINTABLE_KEYS)t=e.PRINTABLE_KEYS[n].toLowerCase(),e[t]=parseInt(n,10);return r.mixin(e,e.MODIFIER_KEYS),r.mixin(e,e.PRINTABLE_KEYS),r.mixin(e,e.FUNCTION_KEYS),e.enter=e["return"],e.escape=e.esc,e.del=e["delete"],e[173]="-",function(){var t=["cmd","ctrl","alt","shift"];for(var n=Math.pow(2,t.length);n--;)e.KEY_MODS[n]=t.filter(function(t){return n&e.KEY_MODS[t]}).join("-")+"-"}(),e.KEY_MODS[0]="",e.KEY_MODS[-1]="input-",e}();r.mixin(t,i),t.keyCodeToString=function(e){var t=i[e];return typeof t!="string"&&(t=String.fromCharCode(e)),t.toLowerCase()}}),ace.define("ace/lib/useragent",["require","exports","module"],function(e,t,n){"use strict";t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};if(typeof navigator!="object")return;var r=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase(),i=navigator.userAgent;t.isWin=r=="win",t.isMac=r=="mac",t.isLinux=r=="linux",t.isIE=navigator.appName=="Microsoft Internet Explorer"||navigator.appName.indexOf("MSAppHost")>=0?parseFloat((i.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((i.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=(window.Controllers||window.controllers)&&window.navigator.product==="Gecko",t.isOldGecko=t.isGecko&&parseInt((i.match(/rv\:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&Object.prototype.toString.call(window.opera)=="[object Opera]",t.isWebKit=parseFloat(i.split("WebKit/")[1])||undefined,t.isChrome=parseFloat(i.split(" Chrome/")[1])||undefined,t.isAIR=i.indexOf("AdobeAIR")>=0,t.isIPad=i.indexOf("iPad")>=0,t.isTouchPad=i.indexOf("TouchPad")>=0,t.isChromeOS=i.indexOf(" CrOS ")>=0}),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";function o(e,t,n){var o=s(t);if(!i.isMac&&u){if(u[91]||u[92])o|=8;if(u.altGr){if((3&o)==3)return;u.altGr=0}if(n===18||n===17){var f="location"in t?t.location:t.keyLocation;if(n===17&&f===1)u[n]==1&&(a=t.timeStamp);else if(n===18&&o===3&&f===2){var l=t.timestamp-a;l<50&&(u.altGr=!0)}}}n in r.MODIFIER_KEYS&&(n=-1),o&8&&(n===91||n===93)&&(n=-1);if(!o&&n===13){var f="location"in t?t.location:t.keyLocation;if(f===3){e(t,o,-n);if(t.defaultPrevented)return}}if(i.isChromeOS&&o&8){e(t,o,n);if(t.defaultPrevented)return;o&=-9}return!!o||n in r.FUNCTION_KEYS||n in r.PRINTABLE_KEYS?e(t,o,n):!1}var r=e("./keys"),i=e("./useragent");t.addListener=function(e,t,n){if(e.addEventListener)return e.addEventListener(t,n,!1);if(e.attachEvent){var r=function(){n.call(e,window.event)};n._wrapper=r,e.attachEvent("on"+t,r)}},t.removeListener=function(e,t,n){if(e.removeEventListener)return e.removeEventListener(t,n,!1);e.detachEvent&&e.detachEvent("on"+t,n._wrapper||n)},t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return e.type=="dblclick"?0:e.type=="contextmenu"||i.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,n,r){function i(e){n&&n(e),r&&r(e),t.removeListener(document,"mousemove",n,!0),t.removeListener(document,"mouseup",i,!0),t.removeListener(document,"dragstart",i,!0)}return t.addListener(document,"mousemove",n,!0),t.addListener(document,"mouseup",i,!0),t.addListener(document,"dragstart",i,!0),i},t.addMouseWheelListener=function(e,n){"onmousewheel"in e?t.addListener(e,"mousewheel",function(e){var t=8;e.wheelDeltaX!==undefined?(e.wheelX=-e.wheelDeltaX/t,e.wheelY=-e.wheelDeltaY/t):(e.wheelX=0,e.wheelY=-e.wheelDelta/t),n(e)}):"onwheel"in e?t.addListener(e,"wheel",function(e){var t=.35;switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=e.deltaX*t||0,e.wheelY=e.deltaY*t||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=(e.deltaX||0)*5,e.wheelY=(e.deltaY||0)*5}n(e)}):t.addListener(e,"DOMMouseScroll",function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=(e.detail||0)*5,e.wheelY=0):(e.wheelX=0,e.wheelY=(e.detail||0)*5),n(e)})},t.addMultiMouseDownListener=function(e,n,r,s){var o=0,u,a,f,l={2:"dblclick",3:"tripleclick",4:"quadclick"};t.addListener(e,"mousedown",function(e){t.getButton(e)!==0?o=0:e.detail>1?(o++,o>4&&(o=1)):o=1;if(i.isIE){var c=Math.abs(e.clientX-u)>5||Math.abs(e.clientY-a)>5;if(!f||c)o=1;f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),o==1&&(u=e.clientX,a=e.clientY)}e._clicks=o,r[s]("mousedown",e);if(o>4)o=0;else if(o>1)return r[s](l[o],e)}),i.isOldIE&&t.addListener(e,"dblclick",function(e){o=2,f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),r[s]("mousedown",e),r[s](l[o],e)})};var s=!i.isMac||!i.isOpera||"KeyboardEvent"in window?function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)}:function(e){return 0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)};t.getModifierString=function(e){return r.KEY_MODS[s(e)]};var u=null,a=0;t.addCommandKeyListener=function(e,n){var r=t.addListener;if(i.isOldGecko||i.isOpera&&!("KeyboardEvent"in window)){var s=null;r(e,"keydown",function(e){s=e.keyCode}),r(e,"keypress",function(e){return o(n,e,s)})}else{var a=null;r(e,"keydown",function(e){u[e.keyCode]=(u[e.keyCode]||0)+1;var t=o(n,e,e.keyCode);return a=e.defaultPrevented,t}),r(e,"keypress",function(e){a&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),a=null)}),r(e,"keyup",function(e){u[e.keyCode]=null}),u||(u=Object.create(null),r(window,"focus",function(e){u=Object.create(null)}))}};if(window.postMessage&&!i.isOldIE){var f=1;t.nextTick=function(e,n){n=n||window;var r="zero-timeout-message-"+f;t.addListener(n,"message",function i(s){s.data==r&&(t.stopPropagation(s),t.removeListener(n,"message",i),e())}),n.postMessage(r,"*")}}t.nextFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame,t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,n){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){var n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]=="object"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function(e){if(typeof e!="object"||!e)return e;var n=e.constructor;if(n===RegExp)return e;var r=n();for(var i in e)typeof e[i]=="object"?r[i]=t.deepCopy(e[i]):r[i]=e[i];return r},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(e){return e.replace(/&/g,"&#38;").replace(/"/g,"&#34;").replace(/'/g,"&#39;").replace(/</g,"&#60;")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=e("../lib/dom"),o=e("../lib/lang"),u=i.isChrome<18,a=i.isIE,f=function(e,t){function b(e){if(h)return;h=!0;if(k)t=0,r=e?0:n.value.length-1;else var t=e?2:1,r=2;try{n.setSelectionRange(t,r)}catch(i){}h=!1}function w(){if(h)return;n.value=f,i.isWebKit&&y.schedule()}function R(){clearTimeout(q),q=setTimeout(function(){p&&(n.style.cssText=p,p=""),t.renderer.$keepTextAreaAtCursor==null&&(t.renderer.$keepTextAreaAtCursor=!0,t.renderer.$moveTextAreaToCursor())},i.isOldIE?200:0)}var n=s.createElement("textarea");n.className="ace_text-input",i.isTouchPad&&n.setAttribute("x-palm-disable-auto-cap",!0),n.setAttribute("wrap","off"),n.setAttribute("autocorrect","off"),n.setAttribute("autocapitalize","off"),n.setAttribute("spellcheck",!1),n.style.opacity="0",i.isOldIE&&(n.style.top="-1000px"),e.insertBefore(n,e.firstChild);var f="",l=!1,c=!1,h=!1,p="",d=!0;try{var v=document.activeElement===n}catch(m){}r.addListener(n,"blur",function(e){t.onBlur(e),v=!1}),r.addListener(n,"focus",function(e){v=!0,t.onFocus(e),b()}),this.focus=function(){if(p)return n.focus();n.style.position="fixed",n.style.top="-1000px",n.focus(),setTimeout(function(){n.style.position=""},0)},this.blur=function(){n.blur()},this.isFocused=function(){return v};var g=o.delayedCall(function(){v&&b(d)}),y=o.delayedCall(function(){h||(n.value=f,v&&b())});i.isWebKit||t.addEventListener("changeSelection",function(){t.selection.isEmpty()!=d&&(d=!d,g.schedule())}),w(),v&&t.onFocus();var E=function(e){return e.selectionStart===0&&e.selectionEnd===e.value.length};!n.setSelectionRange&&n.createTextRange&&(n.setSelectionRange=function(e,t){var n=this.createTextRange();n.collapse(!0),n.moveStart("character",e),n.moveEnd("character",t),n.select()},E=function(e){try{var t=e.ownerDocument.selection.createRange()}catch(n){}return!t||t.parentElement()!=e?!1:t.text==e.value});if(i.isOldIE){var S=!1,x=function(e){if(S)return;var t=n.value;if(h||!t||t==f)return;if(e&&t==f[0])return T.schedule();A(t),S=!0,w(),S=!1},T=o.delayedCall(x);r.addListener(n,"propertychange",x);var N={13:1,27:1};r.addListener(n,"keyup",function(e){h&&(!n.value||N[e.keyCode])&&setTimeout(F,0);if((n.value.charCodeAt(0)||0)<129)return T.call();h?j():B()}),r.addListener(n,"keydown",function(e){T.schedule(50)})}var C=function(e){l?l=!1:E(n)?(t.selectAll(),b()):k&&b(t.selection.isEmpty())},k=null;this.setInputHandler=function(e){k=e},this.getInputHandler=function(){return k};var L=!1,A=function(e){k&&(e=k(e),k=null),c?(b(),e&&t.onPaste(e),c=!1):e==f.charAt(0)?L?t.execCommand("del",{source:"ace"}):t.execCommand("backspace",{source:"ace"}):(e.substring(0,2)==f?e=e.substr(2):e.charAt(0)==f.charAt(0)?e=e.substr(1):e.charAt(e.length-1)==f.charAt(0)&&(e=e.slice(0,-1)),e.charAt(e.length-1)==f.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),L&&(L=!1)},O=function(e){if(h)return;var t=n.value;A(t),w()},M=function(e,t){var n=e.clipboardData||window.clipboardData;if(!n||u)return;var r=a?"Text":"text/plain";return t?n.setData(r,t)!==!1:n.getData(r)},_=function(e,i){var s=t.getCopyText();if(!s)return r.preventDefault(e);M(e,s)?(i?t.onCut():t.onCopy(),r.preventDefault(e)):(l=!0,n.value=s,n.select(),setTimeout(function(){l=!1,w(),b(),i?t.onCut():t.onCopy()}))},D=function(e){_(e,!0)},P=function(e){_(e,!1)},H=function(e){var s=M(e);typeof s=="string"?(s&&t.onPaste(s),i.isIE&&setTimeout(b),r.preventDefault(e)):(n.value="",c=!0)};r.addCommandKeyListener(n,t.onCommandKey.bind(t)),r.addListener(n,"select",C),r.addListener(n,"input",O),r.addListener(n,"cut",D),r.addListener(n,"copy",P),r.addListener(n,"paste",H),(!("oncut"in n)||!("oncopy"in n)||!("onpaste"in n))&&r.addListener(e,"keydown",function(e){if(i.isMac&&!e.metaKey||!e.ctrlKey)return;switch(e.keyCode){case 67:P(e);break;case 86:H(e);break;case 88:D(e)}});var B=function(e){if(h||!t.onCompositionStart||t.$readOnly)return;h={},t.onCompositionStart(),setTimeout(j,0),t.on("mousedown",F),t.selection.isEmpty()||(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup()},j=function(){if(!h||!t.onCompositionUpdate||t.$readOnly)return;var e=n.value.replace(/\x01/g,"");if(h.lastValue===e)return;t.onCompositionUpdate(e),h.lastValue&&t.undo(),h.lastValue=e;if(h.lastValue){var r=t.selection.getRange();t.insert(h.lastValue),t.session.markUndoGroup(),h.range=t.selection.getRange(),t.selection.setRange(r),t.selection.clearSelection()}},F=function(e){if(!t.onCompositionEnd||t.$readOnly)return;var r=h;h=!1;var i=setTimeout(function(){i=null;var e=n.value.replace(/\x01/g,"");if(h)return;e==r.lastValue?w():!r.lastValue&&e&&(w(),A(e))});k=function(n){return i&&clearTimeout(i),n=n.replace(/\x01/g,""),n==r.lastValue?"":(r.lastValue&&i&&t.undo(),n)},t.onCompositionEnd(),t.removeListener("mousedown",F),e.type=="compositionend"&&r.range&&t.selection.setRange(r.range)},I=o.delayedCall(j,50);r.addListener(n,"compositionstart",B),i.isGecko?r.addListener(n,"text",function(){I.schedule()}):(r.addListener(n,"keyup",function(){I.schedule()}),r.addListener(n,"keydown",function(){I.schedule()})),r.addListener(n,"compositionend",F),this.getElement=function(){return n},this.setReadOnly=function(e){n.readOnly=e},this.onContextMenu=function(e){L=!0,b(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,o){if(!o&&i.isOldIE)return;p||(p=n.style.cssText),n.style.cssText=(o?"z-index:100000;":"")+"height:"+n.style.height+";"+(i.isIE?"opacity:0.1;":"");var u=t.container.getBoundingClientRect(),a=s.computedStyle(t.container),f=u.top+(parseInt(a.borderTopWidth)||0),l=u.left+(parseInt(u.borderLeftWidth)||0),c=u.bottom-f-n.clientHeight-2,h=function(e){n.style.left=e.clientX-l-2+"px",n.style.top=Math.min(e.clientY-f-2,c)+"px"};h(e);if(e.type!="mousedown")return;t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),i.isWin&&!i.isOldIE&&r.capture(t.container,h,R)},this.onContextMenuClose=R;var q,U=function(e){t.textInput.onContextMenu(e),R()};r.addListener(t.renderer.scroller,"contextmenu",U),r.addListener(n,"contextmenu",U)};t.TextInput=f}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";function u(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e));var n=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];n.forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function a(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}function f(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row==e.end.row-1&&!e.start.column&&!e.end.column)var n=t.column-4;else var n=2*t.row-e.start.row-e.end.row;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var r=e("../lib/dom"),i=e("../lib/event"),s=e("../lib/useragent"),o=0;(function(){this.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var r=this.editor,i=e.getButton();if(i!==0){var s=r.getSelectionRange(),o=s.isEmpty();r.$blockScrolling++,o&&r.selection.moveToPosition(n),r.$blockScrolling--,r.textInput.onContextMenu(e.domEvent);return}this.mousedownEvent.time=Date.now();if(t&&!r.isFocused()){r.focus();if(this.$focusTimout&&!this.$clickSelection&&!r.inMultiSelectMode){this.setState("focusWait"),this.captureMouse(e);return}}return this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;n.$blockScrolling++,this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.renderer.scroller.setCapture&&n.renderer.scroller.setCapture(),n.setStyle("ace_selecting"),this.setState("select"),n.$blockScrolling--},this.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);t.$blockScrolling++;if(this.$clickSelection){var r=this.$clickSelection.comparePoint(n);if(r==-1)e=this.$clickSelection.end;else if(r==1)e=this.$clickSelection.start;else{var i=f(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.$blockScrolling--,t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,n=this.editor,r=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](r.row,r.column);n.$blockScrolling++;if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),o=this.$clickSelection.comparePoint(i.end);if(s==-1&&o<=0){t=this.$clickSelection.end;if(i.end.row!=r.row||i.end.column!=r.column)r=i.start}else if(o==1&&s>=0){t=this.$clickSelection.start;if(i.start.row!=r.row||i.start.column!=r.column)r=i.end}else if(s==-1&&o==1)r=i.end,t=i.start;else{var u=f(this.$clickSelection,r);r=u.cursor,t=u.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(r),n.$blockScrolling--,n.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>o||t-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,r=n.session,i=r.getBracketRange(t);i?(i.isEmpty()&&(i.start.column--,i.end.column++),this.setState("select")):(i=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=i,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var r=n.getSelectionRange();r.isMultiLine()&&r.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(r.start.row),this.$clickSelection.end=n.selection.getLineRange(r.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(e.getAccelKey())return;e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=e.domEvent.timeStamp,n=t-(this.$lastScrollTime||0),r=this.editor,i=r.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed);if(i||n<200)return this.$lastScrollTime=t,r.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()}}).call(u.prototype),t.DefaultHandlers=u}),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(e,t,n){"use strict";function s(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}var r=e("./lib/oop"),i=e("./lib/dom");(function(){this.$init=function(){return this.$element=i.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){i.setInnerText(this.getElement(),e)},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){i.addCssClass(this.getElement(),e)},this.show=function(e,t,n){e!=null&&this.setText(e),t!=null&&n!=null&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth}}).call(s.prototype),t.Tooltip=s}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(e,t,n){"use strict";function u(e){function l(){var r=u.getDocumentPosition().row,s=n.$annotations[r];if(!s)return c();var o=t.session.getLength();if(r==o){var a=t.renderer.pixelToScreenCoordinates(0,u.y).row,l=u.$pos;if(a>t.session.documentToScreenRow(l.row,l.column))return c()}if(f==s)return;f=s.text.join("<br/>"),i.setHtml(f),i.show(),t.on("mousewheel",c);if(e.$tooltipFollowsMouse)h(u);else{var p=n.$cells[t.session.documentToScreenRow(r,0)].element,d=p.getBoundingClientRect(),v=i.getElement().style;v.left=d.right+"px",v.top=d.bottom+"px"}}function c(){o&&(o=clearTimeout(o)),f&&(i.hide(),f=null,t.removeEventListener("mousewheel",c))}function h(e){i.setPosition(e.x,e.y)}var t=e.editor,n=t.renderer.$gutterLayer,i=new a(t.container);e.editor.setDefaultHandler("guttermousedown",function(r){if(!t.isFocused()||r.getButton()!=0)return;var i=n.getRegion(r);if(i=="foldWidgets")return;var s=r.getDocumentPosition().row,o=t.session.selection;if(r.getShiftKey())o.selectTo(s,0);else{if(r.domEvent.detail==2)return t.selectAll(),r.preventDefault();e.$clickSelection=t.selection.getLineRange(s)}return e.setState("selectByLines"),e.captureMouse(r),r.preventDefault()});var o,u,f;e.editor.setDefaultHandler("guttermousemove",function(t){var n=t.domEvent.target||t.domEvent.srcElement;if(r.hasCssClass(n,"ace_fold-widget"))return c();f&&e.$tooltipFollowsMouse&&h(t),u=t;if(o)return;o=setTimeout(function(){o=null,u&&!e.isMousePressed?l():c()},50)}),s.addListener(t.renderer.$gutter,"mouseout",function(e){u=null;if(!f||o)return;o=setTimeout(function(){o=null,c()},50)}),t.on("changeSession",c)}function a(e){o.call(this,e)}var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/event"),o=e("../tooltip").Tooltip;i.inherits(a,o),function(){this.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),s=this.getHeight();e+=15,t+=15,e+i>n&&(e-=e+i-n),t+s>r&&(t-=20+s),o.prototype.setPosition.call(this,e,t)}}.call(a.prototype),t.GutterHandler=u}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){r.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){r.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(this.$inSelection!==null)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var n=this.getDocumentPosition();this.$inSelection=t.contains(n.row,n.column)}return this.$inSelection},this.getButton=function(){return r.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=i.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(s.prototype)}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";function f(e){function T(e,n){var r=Date.now(),i=!n||e.row!=n.row,s=!n||e.column!=n.column;if(!S||i||s)t.$blockScrolling+=1,t.moveCursorToPosition(e),t.$blockScrolling-=1,S=r,x={x:p,y:d};else{var o=l(x.x,x.y,p,d);o>a?S=null:r-S>=u&&(t.renderer.scrollCursorIntoView(),S=null)}}function N(e,n){var r=Date.now(),i=t.renderer.layerConfig.lineHeight,s=t.renderer.layerConfig.characterWidth,u=t.renderer.scroller.getBoundingClientRect(),a={x:{left:p-u.left,right:u.right-p},y:{top:d-u.top,bottom:u.bottom-d}},f=Math.min(a.x.left,a.x.right),l=Math.min(a.y.top,a.y.bottom),c={row:e.row,column:e.column};f/s<=2&&(c.column+=a.x.left<a.x.right?-3:2),l/i<=1&&(c.row+=a.y.top<a.y.bottom?-1:1);var h=e.row!=c.row,v=e.column!=c.column,m=!n||e.row!=n.row;h||v&&!m?E?r-E>=o&&t.renderer.scrollCursorIntoView(c):E=r:E=null}function C(){var e=g;g=t.renderer.screenToTextCoordinates(p,d),T(g,e),N(g,e)}function k(){m=t.selection.toOrientedRange(),h=t.session.addMarker(m,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(v),C(),v=setInterval(C,20),y=0,i.addListener(document,"mousemove",O)}function L(){clearInterval(v),t.session.removeMarker(h),h=null,t.$blockScrolling+=1,t.selection.fromOrientedRange(m),t.$blockScrolling-=1,t.isFocused()&&!w&&t.renderer.$cursorLayer.setBlinking(!t.getReadOnly()),m=null,g=null,y=0,E=null,S=null,i.removeListener(document,"mousemove",O)}function O(){A==null&&(A=setTimeout(function(){A!=null&&h&&L()},20))}function M(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return e=="text/plain"||e=="Text"})}function _(e){var t=["copy","copymove","all","uninitialized"],n=["move","copymove","linkmove","all","uninitialized"],r=s.isMac?e.altKey:e.ctrlKey,i="uninitialized";try{i=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o="none";return r&&t.indexOf(i)>=0?o="copy":n.indexOf(i)>=0?o="move":t.indexOf(i)>=0&&(o="copy"),o}var t=e.editor,n=r.createElement("img");n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",s.isOpera&&(n.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");var f=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];f.forEach(function(t){e[t]=this[t]},this),t.addEventListener("mousedown",this.onMouseDown.bind(e));var c=t.container,h,p,d,v,m,g,y=0,b,w,E,S,x;this.onDragStart=function(e){if(this.cancelDrag||!c.draggable){var r=this;return setTimeout(function(){r.startSelect(),r.captureMouse(e)},0),e.preventDefault()}m=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",s.isOpera&&(t.container.appendChild(n),n.scrollTop=0),i.setDragImage&&i.setDragImage(n,0,0),s.isOpera&&t.container.removeChild(n),i.clearData(),i.setData("Text",t.session.getTextRange()),w=!0,this.setState("drag")},this.onDragEnd=function(e){c.draggable=!1,w=!1,this.setState(null);if(!t.getReadOnly()){var n=e.dataTransfer.dropEffect;!b&&n=="move"&&t.session.remove(t.getSelectionRange()),t.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||k(),y++,e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragOver=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||(k(),y++),A!==null&&(A=null),e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragLeave=function(e){y--;if(y<=0&&h)return L(),b=null,i.preventDefault(e)},this.onDrop=function(e){if(!g)return;var n=e.dataTransfer;if(w)switch(b){case"move":m.contains(g.row,g.column)?m={start:g,end:g}:m=t.moveText(m,g);break;case"copy":m=t.moveText(m,g,!0)}else{var r=n.getData("Text");m={start:g,end:t.session.insert(g,r)},t.focus(),b=null}return L(),i.preventDefault(e)},i.addListener(c,"dragstart",this.onDragStart.bind(e)),i.addListener(c,"dragend",this.onDragEnd.bind(e)),i.addListener(c,"dragenter",this.onDragEnter.bind(e)),i.addListener(c,"dragover",this.onDragOver.bind(e)),i.addListener(c,"dragleave",this.onDragLeave.bind(e)),i.addListener(c,"drop",this.onDrop.bind(e));var A=null}function l(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}var r=e("../lib/dom"),i=e("../lib/event"),s=e("../lib/useragent"),o=200,u=200,a=5;(function(){this.dragWait=function(){var e=Date.now()-this.mousedownEvent.time;e>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var e=this.editor.container;e.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor,t=e.container;t.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var n=s.isWin?"default":"move";e.renderer.setCursorStyle(n),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(s.isIE&&this.state=="dragReady"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>3&&t.dragDrop()}if(this.state==="dragWait"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(!this.$dragEnabled)return;this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),r=e.getButton(),i=e.domEvent.detail||1;if(i===1&&r===0&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var o=e.domEvent.target||e.domEvent.srcElement;"unselectable"in o&&(o.unselectable="on");if(t.getDragDelay()){if(s.isWebKit){this.cancelDrag=!0;var u=t.container;u.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}).call(f.prototype),t.DragdropHandler=f}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){n.readyState===4&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=r.getDocumentHead(),i=document.createElement("script");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){if(n||!i.readyState||i.readyState=="loaded"||i.readyState=="complete")i=i.onload=i.onreadystatechange=null,n||t()}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?"unshift":"push"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define("ace/lib/app_config",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"no use strict";function o(e){typeof console!="undefined"&&console.warn&&console.warn.apply(console,arguments)}function u(e,t){var n=new Error(e);n.data=t,typeof console=="object"&&console.error&&console.error(n),setTimeout(function(){throw n})}var r=e("./oop"),i=e("./event_emitter").EventEmitter,s={setOptions:function(e){Object.keys(e).forEach(function(t){this.setOption(t,e[t])},this)},getOptions:function(e){var t={};return e?Array.isArray(e)||(t=e,e=Object.keys(t)):e=Object.keys(this.$options),e.forEach(function(e){t[e]=this.getOption(e)},this),t},setOption:function(e,t){if(this["$"+e]===t)return;var n=this.$options[e];if(!n)return o('misspelled option "'+e+'"');if(n.forwardTo)return this[n.forwardTo]&&this[n.forwardTo].setOption(e,t);n.handlesSet||(this["$"+e]=t),n&&n.set&&n.set.call(this,t)},getOption:function(e){var t=this.$options[e];return t?t.forwardTo?this[t.forwardTo]&&this[t.forwardTo].getOption(e):t&&t.get?t.get.call(this):this["$"+e]:o('misspelled option "'+e+'"')}},a=function(){this.$defaultOptions={}};(function(){r.implement(this,i),this.defineOptions=function(e,t,n){return e.$options||(this.$defaultOptions[t]=e.$options={}),Object.keys(n).forEach(function(t){var r=n[t];typeof r=="string"&&(r={forwardTo:r}),r.name||(r.name=t),e.$options[r.name]=r,"initialValue"in r&&(e["$"+r.name]=r.initialValue)}),r.implement(e,s),this},this.resetOptions=function(e){Object.keys(e.$options).forEach(function(t){var n=e.$options[t];"value"in n&&e.setOption(t,n.value)})},this.setDefaultValue=function(e,t,n){var r=this.$defaultOptions[e]||(this.$defaultOptions[e]={});r[t]&&(r.forwardTo?this.setDefaultValue(r.forwardTo,t,n):r[t].value=n)},this.setDefaultValues=function(e,t){Object.keys(t).forEach(function(n){this.setDefaultValue(e,n,t[n])},this)},this.warn=o,this.reportError=u}).call(a.prototype),t.AppConfig=a}),ace.define("ace/config",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/lib/net","ace/lib/app_config"],function(e,t,n){"no use strict";function f(r){a.packaged=r||e.packaged||n.packaged||u.define&&define.packaged;if(!u.document)return"";var i={},s="",o=document.currentScript||document._currentScript,f=o&&o.ownerDocument||document,c=f.getElementsByTagName("script");for(var h=0;h<c.length;h++){var p=c[h],d=p.src||p.getAttribute("src");if(!d)continue;var v=p.attributes;for(var m=0,g=v.length;m<g;m++){var y=v[m];y.name.indexOf("data-ace-")===0&&(i[l(y.name.replace(/^data-ace-/,""))]=y.value)}var b=d.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);b&&(s=b[1])}s&&(i.base=i.base||s,i.packaged=!0),i.basePath=i.base,i.workerPath=i.workerPath||i.base,i.modePath=i.modePath||i.base,i.themePath=i.themePath||i.base,delete i.base;for(var w in i)typeof i[w]!="undefined"&&t.set(w,i[w])}function l(e){return e.replace(/-(.)/g,function(e,t){return t.toUpperCase()})}var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./lib/net"),o=e("./lib/app_config").AppConfig;n.exports=t=new o;var u=function(){return this}(),a={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{}};t.get=function(e){if(!a.hasOwnProperty(e))throw new Error("Unknown config key: "+e);return a[e]},t.set=function(e,t){if(!a.hasOwnProperty(e))throw new Error("Unknown config key: "+e);a[e]=t},t.all=function(){return r.copyObject(a)},t.moduleUrl=function(e,t){if(a.$moduleUrls[e])return a.$moduleUrls[e];var n=e.split("/");t=t||n[n.length-2]||"";var r=t=="snippets"?"/":"-",i=n[n.length-1];if(t=="worker"&&r=="-"){var s=new RegExp("^"+t+"[\\-_]|[\\-_]"+t+"$","g");i=i.replace(s,"")}(!i||i==t)&&n.length>1&&(i=n[n.length-2]);var o=a[t+"Path"];return o==null?o=a.basePath:r=="/"&&(t=r=""),o&&o.slice(-1)!="/"&&(o+="/"),o+t+r+i+this.get("suffix")},t.setModuleUrl=function(e,t){return a.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(n,r){var i,o;Array.isArray(n)&&(o=n[0],n=n[1]);try{i=e(n)}catch(u){}if(i&&!t.$loading[n])return r&&r(i);t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(r);if(t.$loading[n].length>1)return;var a=function(){e([n],function(e){t._emit("load.module",{name:n,module:e});var r=t.$loading[n];t.$loading[n]=null,r.forEach(function(t){t&&t(e)})})};if(!t.get("packaged"))return a();s.loadScript(t.moduleUrl(n,o),a)},t.init=f}),ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/config"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=e("./default_handlers").DefaultHandlers,o=e("./default_gutter_handler").GutterHandler,u=e("./mouse_event").MouseEvent,a=e("./dragdrop_handler").DragdropHandler,f=e("../config"),l=function(e){var t=this;this.editor=e,new s(this),new o(this),new a(this);var n=function(t){(!document.hasFocus||!document.hasFocus())&&window.focus(),e.focus()},u=e.renderer.getMouseEventTarget();r.addListener(u,"click",this.onMouseEvent.bind(this,"click")),r.addListener(u,"mousemove",this.onMouseMove.bind(this,"mousemove")),r.addMultiMouseDownListener(u,[400,300,250],this,"onMouseEvent"),e.renderer.scrollBarV&&(r.addMultiMouseDownListener(e.renderer.scrollBarV.inner,[400,300,250],this,"onMouseEvent"),r.addMultiMouseDownListener(e.renderer.scrollBarH.inner,[400,300,250],this,"onMouseEvent"),i.isIE&&(r.addListener(e.renderer.scrollBarV.element,"mousedown",n),r.addListener(e.renderer.scrollBarH.element,"mousedown",n))),r.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel"));var f=e.renderer.$gutter;r.addListener(f,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),r.addListener(f,"click",this.onMouseEvent.bind(this,"gutterclick")),r.addListener(f,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),r.addListener(f,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),r.addListener(u,"mousedown",n),r.addListener(f,"mousedown",function(t){return e.focus(),r.preventDefault(t)}),e.on("mousemove",function(n){if(t.state||t.$dragDelay||!t.$dragEnabled)return;var r=e.renderer.screenToTextCoordinates(n.x,n.y),i=e.session.selection.getRange(),s=e.renderer;!i.isEmpty()&&i.insideStart(r.row,r.column)?s.setCursorStyle("default"):s.setCursorStyle("")})};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new u(t,this.editor))},this.onMouseMove=function(e,t){var n=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;if(!n||!n.length)return;this.editor._emit(e,new u(t,this.editor))},this.onMouseWheel=function(e,t){var n=new u(t,this.editor);n.speed=this.$scrollSpeed*2,n.wheelX=t.wheelX,n.wheelY=t.wheelY,this.editor._emit(e,n)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var n=this.editor.renderer;n.$keepTextAreaAtCursor&&(n.$keepTextAreaAtCursor=null);var s=this,o=function(e){if(!e)return;if(i.isWebKit&&!e.which&&s.releaseMouse)return s.releaseMouse();s.x=e.clientX,s.y=e.clientY,t&&t(e),s.mouseEvent=new u(e,s.editor),s.$mouseMoved=!0},a=function(e){clearInterval(l),f(),s[s.state+"End"]&&s[s.state+"End"](e),s.state="",n.$keepTextAreaAtCursor==null&&(n.$keepTextAreaAtCursor=!0,n.$moveTextAreaToCursor()),s.isMousePressed=!1,s.$onCaptureMouseMove=s.releaseMouse=null,e&&s.onMouseEvent("mouseup",e)},f=function(){s[s.state]&&s[s.state](),s.$mouseMoved=!1};if(i.isOldIE&&e.domEvent.type=="dblclick")return setTimeout(function(){a(e)});s.$onCaptureMouseMove=o,s.releaseMouse=r.capture(this.editor.container,o,a);var l=setInterval(f,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){if(t&&t.domEvent&&t.domEvent.type!="contextmenu")return;this.editor.off("nativecontextmenu",e),t&&t.domEvent&&r.stopEvent(t.domEvent)}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(l.prototype),f.defineOptions(l.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:i.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=l}),ace.define("ace/mouse/fold_handler",["require","exports","module"],function(e,t,n){"use strict";function r(e){e.on("click",function(t){var n=t.getDocumentPosition(),r=e.session,i=r.getFoldAt(n.row,n.column,1);i&&(t.getAccelKey()?r.removeFold(i):r.expandFold(i),t.stop())}),e.on("gutterclick",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n=="foldWidgets"){var r=t.getDocumentPosition().row,i=e.session;i.foldWidgets&&i.foldWidgets[r]&&e.session.onFoldWidgetClick(r,t),e.isFocused()||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n=="foldWidgets"){var r=t.getDocumentPosition().row,i=e.session,s=i.getParentFoldRangeData(r,!0),o=s.range||s.firstRange;if(o){r=o.start.row;var u=i.getFoldAt(r,i.getLine(r).length,1);u?i.removeFold(u):(i.addFold("...",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}})}t.FoldHandler=r}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,n){"use strict";var r=e("../lib/keys"),i=e("../lib/event"),s=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]==e)return;while(t[t.length-1]&&t[t.length-1]!=this.$defaultHandler)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)},this.addKeyboardHandler=function(e,t){if(!e)return;typeof e=="function"&&!e.handleKeyboard&&(e.handleKeyboard=e);var n=this.$handlers.indexOf(e);n!=-1&&this.$handlers.splice(n,1),t==undefined?this.$handlers.push(e):this.$handlers.splice(t,0,e),n==-1&&e.attach&&e.attach(this.$editor)},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return t==-1?!1:(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map(function(n){return n.getStatusText&&n.getStatusText(t,e)||""}).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(e,t,n,r){var s,o=!1,u=this.$editor.commands;for(var a=this.$handlers.length;a--;){s=this.$handlers[a].handleKeyboard(this.$data,e,t,n,r);if(!s||!s.command)continue;s.command=="null"?o=!0:o=u.exec(s.command,this.$editor,s.args,r),o&&r&&e!=-1&&s.passEvent!=1&&s.command.passEvent!=1&&i.stopEvent(r);if(o)break}return o},this.onCommandKey=function(e,t,n){var i=r.keyCodeToString(n);this.$callKeyboardHandlers(t,i,n,e)},this.onTextInput=function(e){var t=this.$callKeyboardHandlers(-1,e);t||this.$editor.commands.exec("insertstring",this.$editor,e)}}).call(s.prototype),t.KeyBinding=s}),ace.define("ace/range",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=function(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.lead=this.selectionLead=this.doc.createAnchor(0,0),this.anchor=this.selectionAnchor=this.doc.createAnchor(0,0);var t=this;this.lead.on("change",function(e){t._emit("changeCursor"),t.$isEmpty||t._emit("changeSelection"),!t.$keepDesiredColumnOnChange&&e.old.column!=e.value.column&&(t.$desiredColumn=null)}),this.selectionAnchor.on("change",function(){t.$isEmpty||t._emit("changeSelection")})};(function(){r.implement(this,s),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return this.isEmpty()?!1:this.getRange().isMultiLine()},this.getCursor=function(){return this.lead.getPosition()},this.setSelectionAnchor=function(e,t){this.anchor.setPosition(e,t),this.$isEmpty&&(this.$isEmpty=!1,this._emit("changeSelection"))},this.getSelectionAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionLead=function(){return this.lead.getPosition()},this.shiftSelection=function(e){if(this.$isEmpty){this.moveCursorTo(this.lead.row,this.lead.column+e);return}var t=this.getSelectionAnchor(),n=this.getSelectionLead(),r=this.isBackwards();(!r||t.column!==0)&&this.setSelectionAnchor(t.row,t.column+e),(r||n.column!==0)&&this.$moveSelection(function(){this.moveCursorTo(n.row,n.column+e)})},this.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.isEmpty()?o.fromPoints(t,t):this.isBackwards()?o.fromPoints(t,e):o.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var e=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(e,this.doc.getLine(e).length)},this.setRange=this.setSelectionRange=function(e,t){t?(this.setSelectionAnchor(e.end.row,e.end.column),this.selectTo(e.start.row,e.start.column)):(this.setSelectionAnchor(e.start.row,e.start.column),this.selectTo(e.end.row,e.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(typeof t=="undefined"){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var n=typeof e=="number"?e:this.lead.row,r,i=this.session.getFoldLine(n);return i?(n=i.start.row,r=i.end.row):r=n,t===!0?new o(n,0,r,this.session.getLine(r).length):new o(n,0,r+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,-1))this.moveCursorTo(t.start.row,t.start.column);else if(e.column===0)e.row>0&&this.moveCursorTo(e.row-1,this.doc.getLine(e.row-1).length);else{var n=this.session.getTabSize();this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(e.column-n,e.column).split(" ").length-1==n?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,1))this.moveCursorTo(t.end.row,t.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row<this.doc.getLength()-1&&this.moveCursorTo(this.lead.row+1,0);else{var n=this.session.getTabSize(),e=this.lead;this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(e.column,e.column+n).split(" ").length-1==n?this.moveCursorBy(0,n):this.moveCursorBy(0,1)}},this.moveCursorLineStart=function(){var e=this.lead.row,t=this.lead.column,n=this.session.documentToScreenRow(e,t),r=this.session.screenToDocumentPosition(n,0),i=this.session.getDisplayLine(e,null,r.row,r.column),s=i.match(/^\s*/);s[0].length!=t&&!this.session.$useEmacsStyleLineStart&&(r.column+=s[0].length),this.moveCursorToPosition(r)},this.moveCursorLineEnd=function(){var e=this.lead,t=this.session.getDocumentLastRowColumnPosition(e.row,e.column);if(this.lead.column==t.column){var n=this.session.getLine(t.row);if(t.column==n.length){var r=n.search(/\s+$/);r>0&&(t.column=r)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i;this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var s=this.session.getFoldAt(e,t,1);if(s){this.moveCursorTo(s.end.row,s.end.column);return}if(i=this.session.nonTokenRe.exec(r))t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,r=n.substring(t);if(t>=n.length){this.moveCursorTo(e,n.length),this.moveCursorRight(),e<this.doc.getLength()-1&&this.moveCursorWordRight();return}if(i=this.session.tokenRe.exec(r))t+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(e,t)},this.moveCursorLongWordLeft=function(){var e=this.lead.row,t=this.lead.column,n;if(n=this.session.getFoldAt(e,t,-1)){this.moveCursorTo(n.start.row,n.start.column);return}var r=this.session.getFoldStringAt(e,t,-1);r==null&&(r=this.doc.getLine(e).substring(0,t));var s=i.stringReverse(r),o;this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;if(o=this.session.nonTokenRe.exec(s))t-=this.session.nonTokenRe.lastIndex,s=s.slice(this.session.nonTokenRe.lastIndex),this.session.nonTokenRe.lastIndex=0;if(t<=0){this.moveCursorTo(e,0),this.moveCursorLeft(),e>0&&this.moveCursorWordLeft();return}if(o=this.session.tokenRe.exec(s))t-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(e,t)},this.$shortWordEndIndex=function(e){var t,n=0,r,i=/\s/,s=this.session.tokenRe;s.lastIndex=0;if(t=this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{while((r=e[n])&&i.test(r))n++;if(n<1){s.lastIndex=0;while((r=e[n])&&!s.test(r)){s.lastIndex=0,n++;if(i.test(r)){if(n>2){n--;break}while((r=e[n])&&i.test(r))n++;if(n>2)break}}}}return s.lastIndex=0,n},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var s=this.doc.getLength();do e++,r=this.doc.getLine(e);while(e<s&&/^\s*$/.test(r));/^\s+/.test(r)||(r=""),t=0}var o=this.$shortWordEndIndex(r);this.moveCursorTo(e,t+o)},this.moveCursorShortWordLeft=function(){var e=this.lead.row,t=this.lead.column,n;if(n=this.session.getFoldAt(e,t,-1))return this.moveCursorTo(n.start.row,n.start.column);var r=this.session.getLine(e).substring(0,t);if(t===0){do e--,r=this.doc.getLine(e);while(e>0&&/^\s*$/.test(r));t=r.length,/\s+$/.test(r)||(r="")}var s=i.stringReverse(r),o=this.$shortWordEndIndex(s);return this.moveCursorTo(e,t-o)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var n=this.session.documentToScreenPosition(this.lead.row,this.lead.column);t===0&&(this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var r=this.session.screenToDocumentPosition(n.row+e,n.column);e!==0&&t===0&&r.row===this.lead.row&&r.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[r.row]&&r.row++,this.moveCursorTo(r.row,r.column+t,t===0)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,n){var r=this.session.getFoldAt(e,t,1);r&&(e=r.start.row,t=r.start.column),this.$keepDesiredColumnOnChange=!0,this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,n){var r=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(r.row,r.column,n)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e.call(null,this);var n=this.getCursor();return o.fromPoints(t,n)}catch(r){return o.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(e.start==undefined){if(this.rangeList){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=o.fromPoints(e[t].start,e[t].end);e.isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(u.prototype),t.Selection=u}),ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,n){"use strict";var r=e("./config"),i=2e3,s=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){var n=this.states[t],r=[],i=0,s=this.matchMappings[t]={defaultToken:"text"},o="g",u=[];for(var a=0;a<n.length;a++){var f=n[a];f.defaultToken&&(s.defaultToken=f.defaultToken),f.caseInsensitive&&(o="gi");if(f.regex==null)continue;f.regex instanceof RegExp&&(f.regex=f.regex.toString().slice(1,-1));var l=f.regex,c=(new RegExp("(?:("+l+")|(.))")).exec("a").length-2;Array.isArray(f.token)?f.token.length==1||c==1?f.token=f.token[0]:c-1!=f.token.length?(this.reportError("number of classes and regexp groups doesn't match",{rule:f,groupCount:c-1}),f.token=f.token[0]):(f.tokenArray=f.token,f.token=null,f.onMatch=this.$arrayTokens):typeof f.token=="function"&&!f.onMatch&&(c>1?f.onMatch=this.$applyToken:f.onMatch=f.token),c>1&&(/\\\d/.test(f.regex)?l=f.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+i+1)}):(c=1,l=this.removeCapturingGroups(f.regex)),!f.splitRegex&&typeof f.token!="string"&&u.push(f)),s[i]=a,i+=c,r.push(l),f.onMatch||(f.onMatch=null)}r.length||(s[0]=0,r.push("$")),u.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,o)},this),this.regExps[t]=new RegExp("("+r.join(")|(")+")|($)",o)}};(function(){this.$setMaxTokenCount=function(e){i=e|0},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if(typeof n=="string")return[{type:n,value:e}];var r=[];for(var i=0,s=n.length;i<s;i++)t[i]&&(r[r.length]={type:n[i],value:t[i]});return r},this.$arrayTokens=function(e){if(!e)return[];var t=this.splitRegex.exec(e);if(!t)return"text";var n=[],r=this.tokenArray;for(var i=0,s=r.length;i<s;i++)t[i+1]&&(n[n.length]={type:r[i],value:t[i+1]});return n},this.removeCapturingGroups=function(e){var t=e.replace(/\[(?:\\.|[^\]])*?\]|\\.|\(\?[:=!]|(\()/g,function(e,t){return t?"(?:":e});return t},this.createSplitterRegexp=function(e,t){if(e.indexOf("(?=")!=-1){var n=0,r=!1,i={};e.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g,function(e,t,s,o,u,a){return r?r=u!="]":u?r=!0:o?(n==i.stack&&(i.end=a+1,i.stack=-1),n--):s&&(n++,s.length!=1&&(i.stack=n,i.start=a)),e}),i.end!=null&&/^\)*$/.test(e.substr(i.end))&&(e=e.substring(0,i.start)+e.substr(i.end))}return new RegExp(e,(t||"").replace("g",""))},this.getLineTokens=function(e,t){if(t&&typeof t!="string"){var n=t.slice(0);t=n[0],t==="#tmp"&&(n.shift(),t=n.shift())}else var n=[];var r=t||"start",s=this.states[r];s||(r="start",s=this.states[r]);var o=this.matchMappings[r],u=this.regExps[r];u.lastIndex=0;var a,f=[],l=0,c=0,h={type:null,value:""};while(a=u.exec(e)){var p=o.defaultToken,d=null,v=a[0],m=u.lastIndex;if(m-v.length>l){var g=e.substring(l,m-v.length);h.type==p?h.value+=g:(h.type&&f.push(h),h={type:p,value:g})}for(var y=0;y<a.length-2;y++){if(a[y+1]===undefined)continue;d=s[o[y]],d.onMatch?p=d.onMatch(v,r,n):p=d.token,d.next&&(typeof d.next=="string"?r=d.next:r=d.next(r,n),s=this.states[r],s||(this.reportError("state doesn't exist",r),r="start",s=this.states[r]),o=this.matchMappings[r],l=m,u=this.regExps[r],u.lastIndex=m);break}if(v)if(typeof p=="string")!!d&&d.merge===!1||h.type!==p?(h.type&&f.push(h),h={type:p,value:v}):h.value+=v;else if(p){h.type&&f.push(h),h={type:null,value:""};for(var y=0;y<p.length;y++)f.push(p[y])}if(l==e.length)break;l=m;if(c++>i){c>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});while(l<e.length)h.type&&f.push(h),h={value:e.substring(l,l+=2e3),type:"overflow"};r="start",n=[];break}}return h.type&&f.push(h),n.length>1&&n[0]!==r&&n.unshift("#tmp",r),{tokens:f,state:n.length?n:r}},this.reportError=r.reportError}).call(s.prototype),t.Tokenizer=s}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../lib/lang"),i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(!t){for(var n in e)this.$rules[n]=e[n];return}for(var n in e){var r=e[n];for(var i=0;i<r.length;i++){var s=r[i];if(s.next||s.onMatch)typeof s.next!="string"?s.nextState&&s.nextState.indexOf(t)!==0&&(s.nextState=t+s.nextState):s.next.indexOf(t)!==0&&(s.next=t+s.next)}this.$rules[t+n]=r}},this.getRules=function(){return this.$rules},this.embedRules=function(e,t,n,i,s){var o=typeof e=="function"?(new e).getRules():e;if(i)for(var u=0;u<i.length;u++)i[u]=t+i[u];else{i=[];for(var a in o)i.push(t+a)}this.addRules(o,t);if(n){var f=Array.prototype[s?"push":"unshift"];for(var u=0;u<i.length;u++)f.apply(this.$rules[i[u]],r.deepCopy(n))}this.$embeds||(this.$embeds=[]),this.$embeds.push(t)},this.getEmbeds=function(){return this.$embeds};var e=function(e,t){return(e!="start"||t.length)&&t.unshift(this.nextState,e),this.nextState},t=function(e,t){return t.shift(),t.shift()||"start"};this.normalizeRules=function(){function i(s){var o=r[s];o.processed=!0;for(var u=0;u<o.length;u++){var a=o[u];!a.regex&&a.start&&(a.regex=a.start,a.next||(a.next=[]),a.next.push({defaultToken:a.token},{token:a.token+".end",regex:a.end||a.start,next:"pop"}),a.token=a.token+".start",a.push=!0);var f=a.next||a.push;if(f&&Array.isArray(f)){var l=a.stateName;l||(l=a.token,typeof l!="string"&&(l=l[0]||""),r[l]&&(l+=n++)),r[l]=f,a.next=l,i(l)}else f=="pop"&&(a.next=t);a.push&&(a.nextState=a.next||a.push,a.next=e,delete a.push);if(a.rules)for(var c in a.rules)r[c]?r[c].push&&r[c].push.apply(r[c],a.rules[c]):r[c]=a.rules[c];if(a.include||typeof a=="string")var h=a.include||a,p=r[h];else Array.isArray(a)&&(p=a);if(p){var d=[u,1].concat(p);a.noEscape&&(d=d.filter(function(e){return!e.next})),o.splice.apply(o,d),u--,p=null}a.keywordMap&&(a.token=this.createKeywordMapper(a.keywordMap,a.defaultToken||"text",a.caseInsensitive),delete a.defaultToken)}}var n=0,r=this.$rules;Object.keys(r).forEach(i,this)},this.createKeywordMapper=function(e,t,n,r){var i=Object.create(null);return Object.keys(e).forEach(function(t){var s=e[t];n&&(s=s.toLowerCase());var o=s.split(r||"|");for(var u=o.length;u--;)i[o[u]]=t}),Object.getPrototypeOf(i)&&(i.__proto__=null),this.$keywordList=Object.keys(i),e=null,n?function(e){return i[e.toLowerCase()]||t}:function(e){return i[e]||t}},this.getKeywords=function(){return this.$keywords}}).call(i.prototype),t.TextHighlightRules=i}),ace.define("ace/mode/behaviour",["require","exports","module"],function(e,t,n){"use strict";var r=function(){this.$behaviours={}};(function(){this.add=function(e,t,n){switch(undefined){case this.$behaviours:this.$behaviours={};case this.$behaviours[e]:this.$behaviours[e]={}}this.$behaviours[e][t]=n},this.addBehaviours=function(e){for(var t in e)for(var n in e[t])this.add(t,n,e[t][n])},this.remove=function(e){this.$behaviours&&this.$behaviours[e]&&delete this.$behaviours[e]},this.inherit=function(e,t){if(typeof e=="function")var n=(new e).getBehaviours(t);else var n=e.getBehaviours(t);this.addBehaviours(n)},this.getBehaviours=function(e){if(!e)return this.$behaviours;var t={};for(var n=0;n<e.length;n++)this.$behaviours[e[n]]&&(t[e[n]]=this.$behaviours[e[n]]);return t}}).call(r.prototype),t.Behaviour=r}),ace.define("ace/unicode",["require","exports","module"],function(e,t,n){"use strict";function r(e){var n=/\w{4}/g;for(var r in e)t.packages[r]=e[r].replace(n,"\\u$&")}t.packages={},r({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"})}),ace.define("ace/token_iterator",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t,n){this.$session=e,this.$row=t,this.$rowTokens=e.getTokens(t);var r=e.getTokenAt(t,n);this.$tokenIndex=r?r.index:-1};(function(){this.stepBackward=function(){this.$tokenIndex-=1;while(this.$tokenIndex<0){this.$row-=1;if(this.$row<0)return this.$row=0,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=this.$rowTokens.length-1}return this.$rowTokens[this.$tokenIndex]},this.stepForward=function(){this.$tokenIndex+=1;var e;while(this.$tokenIndex>=this.$rowTokens.length){this.$row+=1,e||(e=this.$session.getLength());if(this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(n!==undefined)return n;n=0;while(t>0)t-=1,n+=e[t].value.length;return n}}).call(r.prototype),t.TokenIterator=r}),ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(e,t,n){"use strict";var r=e("../tokenizer").Tokenizer,i=e("./text_highlight_rules").TextHighlightRules,s=e("./behaviour").Behaviour,o=e("../unicode"),u=e("../lib/lang"),a=e("../token_iterator").TokenIterator,f=e("../range").Range,l=function(){this.HighlightRules=i,this.$behaviour=new s};(function(){this.tokenRe=new RegExp("^["+o.packages.L+o.packages.Mn+o.packages.Mc+o.packages.Nd+o.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+o.packages.L+o.packages.Mn+o.packages.Mc+o.packages.Nd+o.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules,this.$tokenizer=new r(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,t,n,r){function w(e){for(var t=n;t<=r;t++)e(i.getLine(t),t)}var i=t.doc,s=!0,o=!0,a=Infinity,f=t.getTabSize(),l=!1;if(!this.lineCommentStart){if(!this.blockComment)return!1;var c=this.blockComment.start,h=this.blockComment.end,p=new RegExp("^(\\s*)(?:"+u.escapeRegExp(c)+")"),d=new RegExp("(?:"+u.escapeRegExp(h)+")\\s*$"),v=function(e,t){if(g(e,t))return;if(!s||/\S/.test(e))i.insertInLine({row:t,column:e.length},h),i.insertInLine({row:t,column:a},c)},m=function(e,t){var n;(n=e.match(d))&&i.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(p))&&i.removeInLine(t,n[1].length,n[0].length)},g=function(e,n){if(p.test(e))return!0;var r=t.getTokens(n);for(var i=0;i<r.length;i++)if(r[i].type==="comment")return!0}}else{if(Array.isArray(this.lineCommentStart))var p=this.lineCommentStart.map(u.escapeRegExp).join("|"),c=this.lineCommentStart[0];else var p=u.escapeRegExp(this.lineCommentStart),c=this.lineCommentStart;p=new RegExp("^(\\s*)(?:"+p+") ?"),l=t.getUseSoftTabs();var m=function(e,t){var n=e.match(p);if(!n)return;var r=n[1].length,s=n[0].length;!b(e,r,s)&&n[0][s-1]==" "&&s--,i.removeInLine(t,r,s)},y=c+" ",v=function(e,t){if(!s||/\S/.test(e))b(e,a,a)?i.insertInLine({row:t,column:a},y):i.insertInLine({row:t,column:a},c)},g=function(e,t){return p.test(e)},b=function(e,t,n){var r=0;while(t--&&e.charAt(t)==" ")r++;if(r%f!=0)return!1;var r=0;while(e.charAt(n++)==" ")r++;return f>2?r%f!=f-1:r%f==0}}var E=Infinity;w(function(e,t){var n=e.search(/\S/);n!==-1?(n<a&&(a=n),o&&!g(e,t)&&(o=!1)):E>e.length&&(E=e.length)}),a==Infinity&&(a=E,s=!1,o=!1),l&&a%f!=0&&(a=Math.floor(a/f)*f),w(o?m:v)},this.toggleBlockComment=function(e,t,n,r){var i=this.blockComment;if(!i)return;!i.start&&i[0]&&(i=i[0]);var s=new a(t,r.row,r.column),o=s.getCurrentToken(),u=t.selection,l=t.selection.toOrientedRange(),c,h;if(o&&/comment/.test(o.type)){var p,d;while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.start);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;p=new f(m,g,m,g+i.start.length);break}o=s.stepBackward()}var s=new a(t,r.row,r.column),o=s.getCurrentToken();while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.end);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;d=new f(m,g,m,g+i.end.length);break}o=s.stepForward()}d&&t.remove(d),p&&(t.remove(p),c=p.start.row,h=-i.start.length)}else h=i.start.length,c=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);l.start.row==c&&(l.start.column+=h),l.end.row==c&&(l.end.column+=h),t.selection.fromOrientedRange(l)},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)e[t]&&(this.$embeds.push(t),this.$modes[t]=new e[t]);var n=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(var t=0;t<n.length;t++)(function(e){var r=n[t],i=e[r];e[n[t]]=function(){return this.$delegator(r,arguments,i)}})(this)},this.$delegator=function(e,t,n){var r=t[0];typeof r!="string"&&(r=r[0]);for(var i=0;i<this.$embeds.length;i++){if(!this.$modes[this.$embeds[i]])continue;var s=r.split(this.$embeds[i]);if(!s[0]&&s[1]){t[0]=s[1];var o=this.$modes[this.$embeds[i]];return o[e].apply(o,t)}}var u=n.apply(this,t);return n?u:undefined},this.transformAction=function(e,t,n,r,i){if(this.$behaviour){var s=this.$behaviour.getBehaviours();for(var o in s)if(s[o][t]){var u=s[o][t].apply(this,arguments);if(u)return u}}},this.getKeywords=function(e){if(!this.completionKeywords){var t=this.$tokenizer.rules,n=[];for(var r in t){var i=t[r];for(var s=0,o=i.length;s<o;s++)if(typeof i[s].token=="string")/keyword|support|storage/.test(i[s].token)&&n.push(i[s].regex);else if(typeof i[s].token=="object")for(var u=0,a=i[s].token.length;u<a;u++)if(/keyword|support|storage/.test(i[s].token[u])){var r=i[s].regex.match(/\(.+?\)/g)[u];n.push(r.substr(1,r.length-2))}}this.completionKeywords=n}return e?n.concat(this.$keywordList||[]):this.$keywordList},this.$createKeywordList=function(){return this.$highlightRules||this.getTokenizer(),this.$keywordList=this.$highlightRules.$keywordList||[]},this.getCompletions=function(e,t,n,r){var i=this.$keywordList||this.$createKeywordList();return i.map(function(e){return{name:e,value:e,score:0,meta:"keyword"}})},this.$id="ace/mode/text"}).call(l.prototype),t.Mode=l}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n=="undefined"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){var t=e.data,n=t.range;if(n.start.row==n.end.row&&n.start.row!=this.row)return;if(n.start.row>this.row)return;if(n.start.row==this.row&&n.start.column>this.column)return;var r=this.row,i=this.column,s=n.start,o=n.end;if(t.action==="insertText")if(s.row===r&&s.column<=i){if(s.column!==i||!this.$insertRight)s.row===o.row?i+=o.column-s.column:(i-=s.column,r+=o.row-s.row)}else s.row!==o.row&&s.row<r&&(r+=o.row-s.row);else t.action==="insertLines"?(s.row!==r||i!==0||!this.$insertRight)&&s.row<=r&&(r+=o.row-s.row):t.action==="removeText"?s.row===r&&s.column<i?o.column>=i?i=s.column:i=Math.max(0,i-(o.column-s.column)):s.row!==o.row&&s.row<r?(o.row===r&&(i=Math.max(0,i-o.column)+s.column),r-=o.row-s.row):o.row===r&&(r-=o.row-s.row,i=Math.max(0,i-o.column)+s.column):t.action=="removeLines"&&s.row<=r&&(o.row<=r?r-=o.row-s.row:(r=s.row,i=0));this.setPosition(r,i,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,o=e("./anchor").Anchor,u=function(e){this.$lines=[],e.length===0?this.$lines=[""]:Array.isArray(e)?this._insertLines(0,e):this.insert({row:0,column:0},e)};(function(){r.implement(this,i),this.setValue=function(e){var t=this.getLength();this.remove(new s(0,0,t,this.getLine(t-1).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new o(this,e,t)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){if(e.start.row==e.end.row)return this.getLine(e.start.row).substring(e.start.column,e.end.column);var t=this.getLines(e.start.row,e.end.row);t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;return e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column)),t.join(this.getNewLineCharacter())},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):e.row<0&&(e.row=0),e},this.insert=function(e,t){if(!t||t.length===0)return e;e=this.$clipPosition(e),this.getLength()<=1&&this.$detectNewLine(t);var n=this.$split(t),r=n.splice(0,1)[0],i=n.length==0?null:n.splice(n.length-1,1)[0];return e=this.insertInLine(e,r),i!==null&&(e=this.insertNewLine(e),e=this._insertLines(e.row,n),e=this.insertInLine(e,i||"")),e},this.insertLines=function(e,t){return e>=this.getLength()?this.insert({row:e,column:0},"\n"+t.join("\n")):this._insertLines(Math.max(e,0),t)},this._insertLines=function(e,t){if(t.length==0)return{row:e,column:0};while(t.length>2e4){var n=this._insertLines(e,t.slice(0,2e4));t=t.slice(2e4),e=n.row}var r=[e,0];r.push.apply(r,t),this.$lines.splice.apply(this.$lines,r);var i=new s(e,0,e+t.length,0),o={action:"insertLines",range:i,lines:t};return this._signal("change",{data:o}),i.end},this.insertNewLine=function(e){e=this.$clipPosition(e);var t=this.$lines[e.row]||"";this.$lines[e.row]=t.substring(0,e.column),this.$lines.splice(e.row+1,0,t.substring(e.column,t.length));var n={row:e.row+1,column:0},r={action:"insertText",range:s.fromPoints(e,n),text:this.getNewLineCharacter()};return this._signal("change",{data:r}),n},this.insertInLine=function(e,t){if(t.length==0)return e;var n=this.$lines[e.row]||"";this.$lines[e.row]=n.substring(0,e.column)+t+n.substring(e.column);var r={row:e.row,column:e.column+t.length},i={action:"insertText",range:s.fromPoints(e,r),text:t};return this._signal("change",{data:i}),r},this.remove=function(e){e instanceof s||(e=s.fromPoints(e.start,e.end)),e.start=this.$clipPosition(e.start),e.end=this.$clipPosition(e.end);if(e.isEmpty())return e.start;var t=e.start.row,n=e.end.row;if(e.isMultiLine()){var r=e.start.column==0?t:t+1,i=n-1;e.end.column>0&&this.removeInLine(n,0,e.end.column),i>=r&&this._removeLines(r,i),r!=t&&(this.removeInLine(t,e.start.column,this.getLine(t).length),this.removeNewLine(e.start.row))}else this.removeInLine(t,e.start.column,e.end.column);return e.start},this.removeInLine=function(e,t,n){if(t==n)return;var r=new s(e,t,e,n),i=this.getLine(e),o=i.substring(t,n),u=i.substring(0,t)+i.substring(n,i.length);this.$lines.splice(e,1,u);var a={action:"removeText",range:r,text:o};return this._signal("change",{data:a}),r.start},this.removeLines=function(e,t){return e<0||t>=this.getLength()?this.remove(new s(e,0,t+1,0)):this._removeLines(e,t)},this._removeLines=function(e,t){var n=new s(e,0,t+1,0),r=this.$lines.splice(e,t-e+1),i={action:"removeLines",range:n,nl:this.getNewLineCharacter(),lines:r};return this._signal("change",{data:i}),r},this.removeNewLine=function(e){var t=this.getLine(e),n=this.getLine(e+1),r=new s(e,t.length,e+1,0),i=t+n;this.$lines.splice(e,2,i);var o={action:"removeText",range:r,text:this.getNewLineCharacter()};this._signal("change",{data:o})},this.replace=function(e,t){e instanceof s||(e=s.fromPoints(e.start,e.end));if(t.length==0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);if(t)var n=this.insert(e.start,t);else n=e.start;return n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this.insertLines(r.start.row,n.lines):n.action=="insertText"?this.insert(r.start,n.text):n.action=="removeLines"?this._removeLines(r.start.row,r.end.row-1):n.action=="removeText"&&this.remove(r)}},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this._removeLines(r.start.row,r.end.row-1):n.action=="insertText"?this.remove(r):n.action=="removeLines"?this._insertLines(r.start.row,n.lines):n.action=="removeText"&&this.insert(r.start,n.text)}},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(u.prototype),t.Document=u}),ace.define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=function(e,t){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=e;var n=this;this.$worker=function(){if(!n.running)return;var e=new Date,t=n.currentLine,r=-1,i=n.doc;while(n.lines[t])t++;var s=t,o=i.getLength(),u=0;n.running=!1;while(t<o){n.$tokenizeRow(t),r=t;do t++;while(n.lines[t]);u++;if(u%5===0&&new Date-e>20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,s<=r&&n.fireUpdateEvent(s,r)}};(function(){r.implement(this,i),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal("update",{data:n})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.range,n=t.start.row,r=t.end.row-n;if(r===0)this.lines[n]=null;else if(e.action=="removeText"||e.action=="removeLines")this.lines.splice(n,r+1,null),this.states.splice(n,r+1,null);else{var i=Array(r+1);i.unshift(n,1),this.lines.splice.apply(this.lines,i),this.states.splice.apply(this.states,i)}this.currentLine=Math.min(n,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],r=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=r.state+""?(this.states[e]=r.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=r.tokens}}).call(s.prototype),t.BackgroundTokenizer=s}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(e,t,n){this.setRegexp(e),this.clazz=t,this.type=n||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){if(this.regExp+""==e+"")return;this.regExp=e,this.cache=[]},this.update=function(e,t,n,i){if(!this.regExp)return;var o=i.firstRow,u=i.lastRow;for(var a=o;a<=u;a++){var f=this.cache[a];f==null&&(f=r.getMatchOffsets(n.getLine(a),this.regExp),f.length>this.MAX_RANGES&&(f=f.slice(0,this.MAX_RANGES)),f=f.map(function(e){return new s(a,e.offset,a,e.offset+e.length)}),this.cache[a]=f.length?f:"");for(var l=f.length;l--;)t.drawSingleLineMarker(e,f[l].toScreenRange(n),this.clazz,i)}}}).call(o.prototype),t.SearchHighlight=o}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,n){"use strict";function i(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var n=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,n.end.row,n.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}var r=e("../range").Range;(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},this.addFold=function(e){if(e.sameRow){if(e.start.row<this.startRow||e.endRow>this.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,n){var r=0,i=this.folds,s,o,u,a=!0;t==null&&(t=this.end.row,n=this.end.column);for(var f=0;f<i.length;f++){s=i[f],o=s.range.compareStart(t,n);if(o==-1){e(null,t,n,r,a);return}u=e(null,s.start.row,s.start.column,r,a),u=!u&&e(s.placeholder,s.start.row,s.start.column,r);if(u||o===0)return;a=!s.sameRow,r=s.end.column}e(null,t,n,r,a)},this.getNextFoldTo=function(e,t){var n,r;for(var i=0;i<this.folds.length;i++){n=this.folds[i],r=n.range.compareEnd(e,t);if(r==-1)return{fold:n,kind:"after"};if(r===0)return{fold:n,kind:"inside"}}return null},this.addRemoveChars=function(e,t,n){var r=this.getNextFoldTo(e,t),i,s;if(r){i=r.fold;if(r.kind=="inside"&&i.start.column!=t&&i.start.row!=e)window.console&&window.console.log(e,t,i);else if(i.start.row==e){s=this.folds;var o=s.indexOf(i);o===0&&(this.start.column+=n);for(o;o<s.length;o++){i=s[o],i.start.column+=n;if(!i.sameRow)return;i.end.column+=n}this.end.column+=n}}},this.split=function(e,t){var n=this.getNextFoldTo(e,t);if(!n||n.kind=="inside")return null;var r=n.fold,s=this.folds,o=this.foldData,u=s.indexOf(r),a=s[u-1];this.end.row=a.end.row,this.end.column=a.end.column,s=s.splice(u,s.length-u);var f=new i(o,s);return o.splice(o.indexOf(this)+1,0,f),f},this.merge=function(e){var t=e.folds;for(var n=0;n<t.length;n++)this.addFold(t[n]);var r=this.foldData;r.splice(r.indexOf(e),1)},this.toString=function(){var e=[this.range.toString()+": ["];return this.folds.forEach(function(t){e.push(" "+t.toString())}),e.push("]"),e.join("\n")},this.idxToPosition=function(e){var t=0;for(var n=0;n<this.folds.length;n++){var r=this.folds[n];e-=r.start.column-t;if(e<0)return{row:r.start.row,column:r.start.column+e};e-=r.placeholder.length;if(e<0)return r.start;t=r.end.column}return{row:this.end.row,column:this.end.column+e}}}).call(i.prototype),t.FoldLine=i}),ace.define("ace/range_list",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("./range").Range,i=r.comparePoints,s=function(){this.ranges=[]};(function(){this.comparePoints=i,this.pointIndex=function(e,t,n){var r=this.ranges;for(var s=n||0;s<r.length;s++){var o=r[s],u=i(e,o.end);if(u>0)continue;var a=i(e,o.start);return u===0?t&&a!==0?-s-2:s:a>0||a===0&&!t?s:-s-1}return-s-1},this.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var r=this.pointIndex(e.end,t,n);return r<0?r=-r-1:r++,this.ranges.splice(n,r-n,e)},this.addList=function(e){var t=[];for(var n=e.length;n--;)t.push.call(t,this.add(e[n]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return i(e.start,t.start)});var n=t[0],r;for(var s=1;s<t.length;s++){r=n,n=t[s];var o=i(r.end,n.start);if(o<0)continue;if(o==0&&!r.isEmpty()&&!n.isEmpty())continue;i(r.end,n.end)<0&&(r.end.row=n.end.row,r.end.column=n.end.column),t.splice(s,1),e.push(n),n=r,s--}return this.ranges=t,e},this.contains=function(e,t){return this.pointIndex({row:e,column:t})>=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row<e)return[];var r=this.pointIndex({row:e,column:0});r<0&&(r=-r-1);var i=this.pointIndex({row:t,column:0},r);i<0&&(i=-i-1);var s=[];for(var o=r;o<i;o++)s.push(n[o]);return s},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(e){this.session&&this.detach(),this.session=e,this.onChange=this.$onChange.bind(this),this.session.on("change",this.onChange)},this.detach=function(){if(!this.session)return;this.session.removeListener("change",this.onChange),this.session=null},this.$onChange=function(e){var t=e.data.range;if(e.data.action[0]=="i")var n=t.start,r=t.end;else var r=t.start,n=t.end;var i=n.row,s=r.row,o=s-i,u=-n.column+r.column,a=this.ranges;for(var f=0,l=a.length;f<l;f++){var c=a[f];if(c.end.row<i)continue;if(c.start.row>i)break;c.start.row==i&&c.start.column>=n.column&&(c.start.column!=n.column||!this.$insertRight)&&(c.start.column+=u,c.start.row+=o);if(c.end.row==i&&c.end.column>=n.column){if(c.end.column==n.column&&this.$insertRight)continue;c.end.column==n.column&&u>0&&f<l-1&&c.end.column>c.start.column&&c.end.column==a[f+1].start.column&&(c.end.column-=u),c.end.column+=u,c.end.row+=o}}if(o!=0&&f<l)for(;f<l;f++){var c=a[f];c.start.row+=o,c.end.row+=o}}}).call(s.prototype),t.RangeList=s}),ace.define("ace/edit_session/fold",["require","exports","module","ace/range","ace/range_list","ace/lib/oop"],function(e,t,n){"use strict";function u(e,t){e.row-=t.row,e.row==0&&(e.column-=t.column)}function a(e,t){u(e.start,t),u(e.end,t)}function f(e,t){e.row==0&&(e.column+=t.column),e.row+=t.row}function l(e,t){f(e.start,t),f(e.end,t)}var r=e("../range").Range,i=e("../range_list").RangeList,s=e("../lib/oop"),o=t.Fold=function(e,t){this.foldLine=null,this.placeholder=t,this.range=e,this.start=e.start,this.end=e.end,this.sameRow=e.start.row==e.end.row,this.subFolds=this.ranges=[]};s.inherits(o,i),function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()},this.setFoldLine=function(e){this.foldLine=e,this.subFolds.forEach(function(t){t.setFoldLine(e)})},this.clone=function(){var e=this.range.clone(),t=new o(e,this.placeholder);return this.subFolds.forEach(function(e){t.subFolds.push(e.clone())}),t.collapseChildren=this.collapseChildren,t},this.addSubFold=function(e){if(this.range.isEqual(e))return;if(!this.range.containsRange(e))throw new Error("A fold can't intersect already existing fold"+e.range+this.range);a(e,this.start);var t=e.start.row,n=e.start.column;for(var r=0,i=-1;r<this.subFolds.length;r++){i=this.subFolds[r].range.compare(t,n);if(i!=1)break}var s=this.subFolds[r];if(i==0)return s.addSubFold(e);var t=e.range.end.row,n=e.range.end.column;for(var o=r,i=-1;o<this.subFolds.length;o++){i=this.subFolds[o].range.compare(t,n);if(i!=1)break}var u=this.subFolds[o];if(i==0)throw new Error("A fold can't intersect already existing fold"+e.range+this.range);var f=this.subFolds.splice(r,o-r,e);return e.setFoldLine(this.foldLine),e},this.restoreRange=function(e){return l(e,this.start)}}.call(o.prototype)}),ace.define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],function(e,t,n){"use strict";function u(){this.getFoldAt=function(e,t,n){var r=this.getFoldLine(e);if(!r)return null;var i=r.folds;for(var s=0;s<i.length;s++){var o=i[s];if(o.range.contains(e,t)){if(n==1&&o.range.isEnd(e,t))continue;if(n==-1&&o.range.isStart(e,t))continue;return o}}},this.getFoldsInRange=function(e){var t=e.start,n=e.end,r=this.$foldData,i=[];t.column+=1,n.column-=1;for(var s=0;s<r.length;s++){var o=r[s].range.compareRange(e);if(o==2)continue;if(o==-2)break;var u=r[s].folds;for(var a=0;a<u.length;a++){var f=u[a];o=f.range.compareRange(e);if(o==-2)break;if(o==2)continue;if(o==42)break;i.push(f)}}return t.column-=1,n.column+=1,i},this.getFoldsInRangeList=function(e){if(Array.isArray(e)){var t=[];e.forEach(function(e){t=t.concat(this.getFoldsInRange(e))},this)}else var t=this.getFoldsInRange(e);return t},this.getAllFolds=function(){var e=[],t=this.$foldData;for(var n=0;n<t.length;n++)for(var r=0;r<t[n].folds.length;r++)e.push(t[n].folds[r]);return e},this.getFoldStringAt=function(e,t,n,r){r=r||this.getFoldLine(e);if(!r)return null;var i={end:{column:0}},s,o;for(var u=0;u<r.folds.length;u++){o=r.folds[u];var a=o.range.compareEnd(e,t);if(a==-1){s=this.getLine(o.start.row).substring(i.end.column,o.start.column);break}if(a===0)return null;i=o}return s||(s=this.getLine(o.start.row).substring(i.end.column)),n==-1?s.substring(0,t-i.end.column):n==1?s.substring(t-i.end.column):s},this.getFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r<n.length;r++){var i=n[r];if(i.start.row<=e&&i.end.row>=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r<n.length;r++){var i=n[r];if(i.end.row>=e)return i}return null},this.getFoldedRowCount=function(e,t){var n=this.$foldData,r=t-e+1;for(var i=0;i<n.length;i++){var s=n[i],o=s.end.row,u=s.start.row;if(o>=t){u<t&&(u>=e?r-=t-u:r=0);break}o>=e&&(u>=e?r-=o-u:r-=o-e+1)}return r},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var n=this.$foldData,r=!1,o;e instanceof s?o=e:(o=new s(t,e),o.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(o.range);var u=o.start.row,a=o.start.column,f=o.end.row,l=o.end.column;if(u<f||u==f&&a<=l-2){var c=this.getFoldAt(u,a,1),h=this.getFoldAt(f,l,-1);if(c&&h==c)return c.addSubFold(o);c&&!c.range.isStart(u,a)&&this.removeFold(c),h&&!h.range.isEnd(f,l)&&this.removeFold(h);var p=this.getFoldsInRange(o.range);p.length>0&&(this.removeFolds(p),p.forEach(function(e){o.addSubFold(e)}));for(var d=0;d<n.length;d++){var v=n[d];if(f==v.start.row){v.addFold(o),r=!0;break}if(u==v.end.row){v.addFold(o),r=!0;if(!o.sameRow){var m=n[d+1];if(m&&m.start.row==f){v.merge(m);break}}break}if(f<=v.start.row)break}return r||(v=this.$addFoldLine(new i(this.$foldData,o))),this.$useWrapMode?this.$updateWrapData(v.start.row,v.start.row):this.$updateRowLengthCache(v.start.row,v.start.row),this.$modified=!0,this._emit("changeFold",{data:o,action:"add"}),o}throw new Error("The range has to be at least 2 characters width")},this.addFolds=function(e){e.forEach(function(e){this.addFold(e)},this)},this.removeFold=function(e){var t=e.foldLine,n=t.start.row,r=t.end.row,i=this.$foldData,s=t.folds;if(s.length==1)i.splice(i.indexOf(t),1);else if(t.range.isEnd(e.end.row,e.end.column))s.pop(),t.end.row=s[s.length-1].end.row,t.end.column=s[s.length-1].end.column;else if(t.range.isStart(e.start.row,e.start.column))s.shift(),t.start.row=s[0].start.row,t.start.column=s[0].start.column;else if(e.sameRow)s.splice(s.indexOf(e),1);else{var o=t.split(e.start.row,e.start.column);s=o.folds,s.shift(),o.start.row=s[0].start.row,o.start.column=s[0].start.column}this.$updating||(this.$useWrapMode?this.$updateWrapData(n,r):this.$updateRowLengthCache(n,r)),this.$modified=!0,this._emit("changeFold",{data:e,action:"remove"})},this.removeFolds=function(e){var t=[];for(var n=0;n<e.length;n++)t.push(e[n]);t.forEach(function(e){this.removeFold(e)},this),this.$modified=!0},this.expandFold=function(e){this.removeFold(e),e.subFolds.forEach(function(t){e.restoreRange(t),this.addFold(t)},this),e.collapseChildren>0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var n,i;e==null?(n=new r(0,0,this.getLength(),0),t=!0):typeof e=="number"?n=new r(e,0,e,this.getLine(e).length):"row"in e?n=r.fromPoints(e,e):n=e,i=this.getFoldsInRangeList(n);if(t)this.removeFolds(i);else{var s=i;while(s.length)this.expandFolds(s),s=this.getFoldsInRangeList(n)}if(i.length)return i},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,r,i){r==null&&(r=e.start.row),i==null&&(i=0),t==null&&(t=e.end.row),n==null&&(n=this.getLine(t).length);var s=this.doc,o="";return e.walk(function(e,t,n,u){if(t<r)return;if(t==r){if(n<i)return;u=Math.max(i,u)}e!=null?o+=e:o+=s.getLine(t).substring(u,n)},t,n),o},this.getDisplayLine=function(e,t,n,r){var i=this.getFoldLine(e);if(!i){var s;return s=this.doc.getLine(e),s.substring(r||0,t||s.length)}return this.getFoldDisplayLine(i,e,t,n,r)},this.$cloneFoldData=function(){var e=[];return e=this.$foldData.map(function(t){var n=t.folds.map(function(e){return e.clone()});return new i(e,n)}),e},this.toggleFold=function(e){var t=this.selection,n=t.getRange(),r,i;if(n.isEmpty()){var s=n.start;r=this.getFoldAt(s.row,s.column);if(r){this.expandFold(r);return}(i=this.findMatchingBracket(s))?n.comparePoint(i)==1?n.end=i:(n.start=i,n.start.column++,n.end.column--):(i=this.findMatchingBracket({row:s.row,column:s.column+1}))?(n.comparePoint(i)==1?n.end=i:n.start=i,n.start.column++):n=this.getCommentFoldRange(s.row,s.column)||n}else{var o=this.getFoldsInRange(n);if(e&&o.length){this.expandFolds(o);return}o.length==1&&(r=o[0])}r||(r=this.getFoldAt(n.start.row,n.start.column));if(r&&r.range.toString()==n.toString()){this.expandFold(r);return}var u="...";if(!n.isMultiLine()){u=this.getTextRange(n);if(u.length<4)return;u=u.trim().substring(0,2)+".."}this.addFold(u,n)},this.getCommentFoldRange=function(e,t,n){var i=new o(this,e,t),s=i.getCurrentToken();if(s&&/^comment|string/.test(s.type)){var u=new r,a=new RegExp(s.type.replace(/\..*/,"\\."));if(n!=1){do s=i.stepBackward();while(s&&a.test(s.type));i.stepForward()}u.start.row=i.getCurrentTokenRow(),u.start.column=i.getCurrentTokenColumn()+2,i=new o(this,e,t);if(n!=-1){do s=i.stepForward();while(s&&a.test(s.type));s=i.stepBackward()}else s=i.getCurrentToken();return u.end.row=i.getCurrentTokenRow(),u.end.column=i.getCurrentTokenColumn()+s.value.length-2,u}},this.foldAll=function(e,t,n){n==undefined&&(n=1e5);var r=this.foldWidgets;if(!r)return;t=t||this.getLength(),e=e||0;for(var i=e;i<t;i++){r[i]==null&&(r[i]=this.getFoldWidget(i));if(r[i]!="start")continue;var s=this.getFoldWidgetRange(i);if(s&&s.isMultiLine()&&s.end.row<=t&&s.start.row>=e){i=s.end.row;try{var o=this.addFold("...",s);o&&(o.collapseChildren=n)}catch(u){}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error("invalid fold style: "+e+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle==e)return;this.$foldStyle=e,e=="manual"&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)},this.$setFolding=function(e){if(this.$foldMode==e)return;this.$foldMode=e,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._emit("changeAnnotation");if(!e||this.$foldStyle=="manual"){this.foldWidgets=null;return}this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)},this.getParentFoldRangeData=function(e,t){var n=this.foldWidgets;if(!n||t&&n[e])return{};var r=e-1,i;while(r>=0){var s=n[r];s==null&&(s=n[r]=this.getFoldWidget(r));if(s=="start"){var o=this.getFoldWidgetRange(r);i||(i=o);if(o&&o.end.row>=e)break}r--}return{range:r!==-1&&o,firstRange:i}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey},r=this.$toggleFoldWidget(e,n);if(!r){var i=t.target||t.srcElement;i&&/ace_fold-widget/.test(i.className)&&(i.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(!this.getFoldWidget)return;var n=this.getFoldWidget(e),r=this.getLine(e),i=n==="end"?-1:1,s=this.getFoldAt(e,i===-1?0:r.length,i);if(s){t.children||t.all?this.removeFold(s):this.expandFold(s);return}var o=this.getFoldWidgetRange(e,!0);if(o&&!o.isMultiLine()){s=this.getFoldAt(o.start.row,o.start.column,1);if(s&&o.isEqual(s.range)){this.removeFold(s);return}}if(t.siblings){var u=this.getParentFoldRangeData(e);if(u.range)var a=u.range.start.row+1,f=u.range.end.row;this.foldAll(a,f,t.all?1e4:0)}else t.children?(f=o?o.end.row:this.getLength(),this.foldAll(e+1,f,t.all?1e4:0)):o&&(t.all&&(o.collapseChildren=1e4),this.addFold("...",o));return o},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(n)return;var r=this.getParentFoldRangeData(t,!0);n=r.range||r.firstRange;if(n){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold("...",n)}},this.updateFoldWidgets=function(e){var t=e.data,n=t.range,r=n.start.row,i=n.end.row-r;if(i===0)this.foldWidgets[r]=null;else if(t.action=="removeText"||t.action=="removeLines")this.foldWidgets.splice(r,i+1,null);else{var s=Array(i+1);s.unshift(r,1),this.foldWidgets.splice.apply(this.foldWidgets,s)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}var r=e("../range").Range,i=e("./fold_line").FoldLine,s=e("./fold").Fold,o=e("../token_iterator").TokenIterator;t.Folding=u}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,n){"use strict";function s(){this.findMatchingBracket=function(e,t){if(e.column==0)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(n=="")return null;var r=n.match(/([\(\[\{])|([\)\]\}])/);return r?r[1]?this.$findClosingBracket(r[1],e):this.$findOpeningBracket(r[2],e):null},this.getBracketRange=function(e){var t=this.getLine(e.row),n=!0,r,s=t.charAt(e.column-1),o=s&&s.match(/([\(\[\{])|([\)\]\}])/);o||(s=t.charAt(e.column),e={row:e.row,column:e.column+1},o=s&&s.match(/([\(\[\{])|([\)\]\}])/),n=!1);if(!o)return null;if(o[1]){var u=this.$findClosingBracket(o[1],e);if(!u)return null;r=i.fromPoints(e,u),n||(r.end.column++,r.start.column--),r.cursor=r.end}else{var u=this.$findOpeningBracket(o[2],e);if(!u)return null;r=i.fromPoints(u,e),n||(r.start.column++,r.end.column--),r.cursor=r.start}return r},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end|start|begin)\b/,"")+")+"));var a=t.column-o.getCurrentTokenColumn()-2,f=u.value;for(;;){while(a>=0){var l=f.charAt(a);if(l==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else l==e&&(s+=1);a-=1}do u=o.stepBackward();while(u&&!n.test(u.type));if(u==null)break;f=u.value,a=f.length-1}return null},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:end|start|begin)\b/,"")+")+"));var a=t.column-o.getCurrentTokenColumn();for(;;){var f=u.value,l=f.length;while(a<l){var c=f.charAt(a);if(c==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else c==e&&(s+=1);a+=1}do u=o.stepForward();while(u&&!n.test(u.type));if(u==null)break;a=0}return null}}var r=e("../token_iterator").TokenIterator,i=e("../range").Range;t.BracketMatch=s}),ace.define("ace/edit_session",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/config","ace/lib/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/search_highlight","ace/edit_session/folding","ace/edit_session/bracket_match"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./config"),o=e("./lib/event_emitter").EventEmitter,u=e("./selection").Selection,a=e("./mode/text").Mode,f=e("./range").Range,l=e("./document").Document,c=e("./background_tokenizer").BackgroundTokenizer,h=e("./search_highlight").SearchHighlight,p=function(e,t){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.$foldData.toString=function(){return this.join("\n")},this.on("changeFold",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this);if(typeof e!="object"||!e.getLine)e=new l(e);this.setDocument(e),this.selection=new u(this),s.resetOptions(this),this.setMode(t),s._signal("session",this)};(function(){function m(e){return e<4352?!1:e>=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510}r.implement(this,o),this.setDocument=function(e){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=e,e.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e){this.$docRowCache=[],this.$screenRowCache=[];return}var t=this.$docRowCache.length,n=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>n&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},this.$getRowCacheIndex=function(e,t){var n=0,r=e.length-1;while(n<=r){var i=n+r>>1,s=e[i];if(t>s)n=i+1;else{if(!(t<s))return i;r=i-1}}return n-1},this.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.bgTokenizer&&this.bgTokenizer.start(0)},this.onChangeFold=function(e){var t=e.data;this.$resetRowCache(t.start.row)},this.onChange=function(e){var t=e.data;this.$modified=!0,this.$resetRowCache(t.range.start.row);var n=this.$updateInternalDataOnChange(e);!this.$fromUndo&&this.$undoManager&&!t.ignore&&(this.$deltasDoc.push(t),n&&n.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:n}),this.$informUndoManager.schedule()),this.bgTokenizer&&this.bgTokenizer.$updateOnChange(t),this._signal("change",e)},this.setValue=function(e){this.doc.setValue(e),this.selection.moveTo(0,0),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.setUndoManager(this.$undoManager),this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(e){return this.bgTokenizer.getState(e)},this.getTokens=function(e){return this.bgTokenizer.getTokens(e)},this.getTokenAt=function(e,t){var n=this.bgTokenizer.getTokens(e),r,i=0;if(t==null)s=n.length-1,i=this.getLine(e).length;else for(var s=0;s<n.length;s++){i+=n[s].value.length;if(i>=t)break}return r=n[s],r?(r.index=s,r.start=i-r.value.length,r):null},this.setUndoManager=function(e){this.$undoManager=e,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(e){var t=this;this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.$deltasFold.length&&(t.$deltas.push({group:"fold",deltas:t.$deltasFold}),t.$deltasFold=[]),t.$deltasDoc.length&&(t.$deltas.push({group:"doc",deltas:t.$deltasDoc}),t.$deltasDoc=[]),t.$deltas.length>0&&e.execute({action:"aceupdate",args:[t.$deltas,t],merge:t.mergeUndoDeltas}),t.mergeUndoDeltas=!1,t.$deltas=[]},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(" ",this.getTabSize()):" "},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize===0},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t<e.length;t++)this.$breakpoints[e[t]]="ace_breakpoint";this._signal("changeBreakpoint",{})},this.clearBreakpoints=function(){this.$breakpoints=[],this._signal("changeBreakpoint",{})},this.setBreakpoint=function(e,t){t===undefined&&(t="ace_breakpoint"),t?this.$breakpoints[e]=t:delete this.$breakpoints[e],this._signal("changeBreakpoint",{})},this.clearBreakpoint=function(e){delete this.$breakpoints[e],this._signal("changeBreakpoint",{})},this.addMarker=function(e,t,n,r){var i=this.$markerId++,s={range:e,type:n||"line",renderer:typeof n=="function"?n:null,clazz:t,inFront:!!r,id:i};return r?(this.$frontMarkers[i]=s,this._signal("changeFrontMarker")):(this.$backMarkers[i]=s,this._signal("changeBackMarker")),i},this.addDynamicMarker=function(e,t){if(!e.update)return;var n=this.$markerId++;return e.id=n,e.inFront=!!t,t?(this.$frontMarkers[n]=e,this._signal("changeFrontMarker")):(this.$backMarkers[n]=e,this._signal("changeBackMarker")),e},this.removeMarker=function(e){var t=this.$frontMarkers[e]||this.$backMarkers[e];if(!t)return;var n=t.inFront?this.$frontMarkers:this.$backMarkers;t&&(delete n[e],this._signal(t.inFront?"changeFrontMarker":"changeBackMarker"))},this.getMarkers=function(e){return e?this.$frontMarkers:this.$backMarkers},this.highlight=function(e){if(!this.$searchHighlight){var t=new h(null,"ace_selected-word","text");this.$searchHighlight=this.addDynamicMarker(t)}this.$searchHighlight.setRegexp(e)},this.highlightLines=function(e,t,n,r){typeof t!="number"&&(n=t,t=e),n||(n="ace_step");var i=new f(e,0,t,Infinity);return i.id=this.addMarker(i,n,"fullLine",r),i},this.setAnnotations=function(e){this.$annotations=e,this._signal("changeAnnotation",{})},this.getAnnotations=function(){return this.$annotations||[]},this.clearAnnotations=function(){this.setAnnotations([])},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r?\n)/m);t?this.$autoNewLine=t[1]:this.$autoNewLine="\n"},this.getWordRange=function(e,t){var n=this.getLine(e),r=!1;t>0&&(r=!!n.charAt(t-1).match(this.tokenRe)),r||(r=!!n.charAt(t).match(this.tokenRe));if(r)var i=this.tokenRe;else if(/^\s+$/.test(n.slice(t-1,t+1)))var i=/\s/;else var i=this.nonTokenRe;var s=t;if(s>0){do s--;while(s>=0&&n.charAt(s).match(i));s++}var o=t;while(o<n.length&&n.charAt(o).match(i))o++;return new f(e,s,e,o)},this.getAWordRange=function(e,t){var n=this.getWordRange(e,t),r=this.getLine(n.end.row);while(r.charAt(n.end.column).match(/[ \t]/))n.end.column+=1;return n},this.setNewLineMode=function(e){this.doc.setNewLineMode(e)},this.getNewLineMode=function(){return this.doc.getNewLineMode()},this.setUseWorker=function(e){this.setOption("useWorker",e)},this.getUseWorker=function(){return this.$useWorker},this.onReloadTokenizer=function(e){var t=e.data;this.bgTokenizer.start(t.first),this._signal("tokenizerUpdate",e)},this.$modes={},this.$mode=null,this.$modeId=null,this.setMode=function(e,t){if(e&&typeof e=="object"){if(e.getTokenizer)return this.$onChangeMode(e);var n=e,r=n.path}else r=e||"ace/mode/text";this.$modes["ace/mode/text"]||(this.$modes["ace/mode/text"]=new a);if(this.$modes[r]&&!n){this.$onChangeMode(this.$modes[r]),t&&t();return}this.$modeId=r,s.loadModule(["mode",r],function(e){if(this.$modeId!==r)return t&&t();this.$modes[r]&&!n?this.$onChangeMode(this.$modes[r]):e&&e.Mode&&(e=new e.Mode(n),n||(this.$modes[r]=e,e.$id=r),this.$onChangeMode(e)),t&&t()}.bind(this)),this.$mode||this.$onChangeMode(this.$modes["ace/mode/text"],!0)},this.$onChangeMode=function(e,t){t||(this.$modeId=e.$id);if(this.$mode===e)return;this.$mode=e,this.$stopWorker(),this.$useWorker&&this.$startWorker();var n=e.getTokenizer();if(n.addEventListener!==undefined){var r=this.onReloadTokenizer.bind(this);n.addEventListener("update",r)}if(!this.bgTokenizer){this.bgTokenizer=new c(n);var i=this;this.bgTokenizer.addEventListener("update",function(e){i._signal("tokenizerUpdate",e)})}else this.bgTokenizer.setTokenizer(n);this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=e.tokenRe,this.nonTokenRe=e.nonTokenRe,t||(e.attachToSession&&e.attachToSession(this),this.$options.wrapMethod.set.call(this,this.$wrapMethod),this.$setFolding(e.foldingRules),this.bgTokenizer.start(0),this._emit("changeMode"))},this.$stopWorker=function(){this.$worker&&(this.$worker.terminate(),this.$worker=null)},this.$startWorker=function(){try{this.$worker=this.$mode.createWorker(this)}catch(e){s.warn("Could not load worker",e),this.$worker=null}},this.getMode=function(){return this.$mode},this.$scrollTop=0,this.setScrollTop=function(e){if(this.$scrollTop===e||isNaN(e))return;this.$scrollTop=e,this._signal("changeScrollTop",e)},this.getScrollTop=function(){return this.$scrollTop},this.$scrollLeft=0,this.setScrollLeft=function(e){if(this.$scrollLeft===e||isNaN(e))return;this.$scrollLeft=e,this._signal("changeScrollLeft",e)},this.getScrollLeft=function(){return this.$scrollLeft},this.getScreenWidth=function(){return this.$computeWidth(),this.lineWidgets?Math.max(this.getLineWidgetMaxWidth(),this.screenWidth):this.screenWidth},this.getLineWidgetMaxWidth=function(){if(this.lineWidgetsWidth!=null)return this.lineWidgetsWidth;var e=0;return this.lineWidgets.forEach(function(t){t&&t.screenWidth>e&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){this.$modified=!1;if(this.$useWrapMode)return this.screenWidth=this.$wrapLimit;var t=this.doc.getAllLines(),n=this.$rowLengthCache,r=0,i=0,s=this.$foldData[i],o=s?s.start.row:Infinity,u=t.length;for(var a=0;a<u;a++){if(a>o){a=s.end.row+1;if(a>=u)break;s=this.$foldData[i++],o=s?s.start.row:Infinity}n[a]==null&&(n[a]=this.$getStringScreenWidth(t[a])[0]),n[a]>r&&(r=n[a])}this.screenWidth=r}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.undoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;var n=null;for(var r=e.length-1;r!=-1;r--){var i=e[r];i.group=="doc"?(this.doc.revertDeltas(i.deltas),n=this.$getUndoSelection(i.deltas,!0,n)):i.deltas.forEach(function(e){this.addFolds(e.folds)},this)}return this.$fromUndo=!1,n&&this.$undoSelect&&!t&&this.selection.setSelectionRange(n),n},this.redoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;var n=null;for(var r=0;r<e.length;r++){var i=e[r];i.group=="doc"&&(this.doc.applyDeltas(i.deltas),n=this.$getUndoSelection(i.deltas,!1,n))}return this.$fromUndo=!1,n&&this.$undoSelect&&!t&&this.selection.setSelectionRange(n),n},this.setUndoSelect=function(e){this.$undoSelect=e},this.$getUndoSelection=function(e,t,n){function r(e){var n=e.action==="insertText"||e.action==="insertLines";return t?!n:n}var i=e[0],s,o,u=!1;r(i)?(s=f.fromPoints(i.range.start,i.range.end),u=!0):(s=f.fromPoints(i.range.start,i.range.start),u=!1);for(var a=1;a<e.length;a++)i=e[a],r(i)?(o=i.range.start,s.compare(o.row,o.column)==-1&&s.setStart(i.range.start),o=i.range.end,s.compare(o.row,o.column)==1&&s.setEnd(i.range.end),u=!0):(o=i.range.start,s.compare(o.row,o.column)==-1&&(s=f.fromPoints(i.range.start,i.range.start)),u=!1);if(n!=null){f.comparePoints(n.start,s.start)===0&&(n.start.column+=s.end.column-s.start.column,n.end.column+=s.end.column-s.start.column);var l=n.compareRange(s);l==1?s.setStart(n.start):l==-1&&s.setEnd(n.end)}return s},this.replace=function(e,t){return this.doc.replace(e,t)},this.moveText=function(e,t,n){var r=this.getTextRange(e),i=this.getFoldsInRange(e),s=f.fromPoints(t,t);if(!n){this.remove(e);var o=e.start.row-e.end.row,u=o?-e.end.column:e.start.column-e.end.column;u&&(s.start.row==e.end.row&&s.start.column>e.end.column&&(s.start.column+=u),s.end.row==e.end.row&&s.end.column>e.end.column&&(s.end.column+=u)),o&&s.start.row>=e.end.row&&(s.start.row+=o,s.end.row+=o)}s.end=this.insert(s.start,r);if(i.length){var a=e.start,l=s.start,o=l.row-a.row,u=l.column-a.column;this.addFolds(i.map(function(e){return e=e.clone(),e.start.row==a.row&&(e.start.column+=u),e.end.row==a.row&&(e.end.column+=u),e.start.row+=o,e.end.row+=o,e}))}return s},this.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var r=e;r<=t;r++)this.insert({row:r,column:0},n)},this.outdentRows=function(e){var t=e.collapseRows(),n=new f(0,0,0,0),r=this.getTabSize();for(var i=t.start.row;i<=t.end.row;++i){var s=this.getLine(i);n.start.row=i,n.end.row=i;for(var o=0;o<r;++o)if(s.charAt(o)!=" ")break;o<r&&s.charAt(o)==" "?(n.start.column=o,n.end.column=o+1):(n.start.column=0,n.end.column=o),this.remove(n)}},this.$moveLines=function(e,t,n){e=this.getRowFoldStart(e),t=this.getRowFoldEnd(t);if(n<0){var r=this.getRowFoldStart(e+n);if(r<0)return 0;var i=r-e}else if(n>0){var r=this.getRowFoldEnd(t+n);if(r>this.doc.getLength()-1)return 0;var i=r-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var i=t-e+1}var s=new f(e,0,t,Number.MAX_VALUE),o=this.getFoldsInRange(s).map(function(e){return e=e.clone(),e.start.row+=i,e.end.row+=i,e}),u=n==0?this.doc.getLines(e,t):this.doc.removeLines(e,t);return this.doc.insertLines(e+i,u),o.length&&this.addFolds(o),i},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){t=Math.max(0,t);if(e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0);if(e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){if(this.$wrapLimitRange.min!==e||this.$wrapLimitRange.max!==t)this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$useWrapMode&&this._signal("changeWrapMode")},this.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var r=this.$constrainWrapLimit(e,n.min,n.max);return r!=this.$wrapLimit&&r>1?(this.$wrapLimit=r,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n,r=e.data.action,i=e.data.range.start.row,s=e.data.range.end.row,o=e.data.range.start,u=e.data.range.end,a=null;r.indexOf("Lines")!=-1?(r=="insertLines"?s=i+e.data.lines.length:s=i,n=e.data.lines?e.data.lines.length:s-i):n=s-i,this.$updating=!0;if(n!=0)if(r.indexOf("remove")!=-1){this[t?"$wrapData":"$rowLengthCache"].splice(i,n);var f=this.$foldData;a=this.getFoldsInRange(e.data.range),this.removeFolds(a);var l=this.getFoldLine(u.row),c=0;if(l){l.addRemoveChars(u.row,u.column,o.column-u.column),l.shiftRow(-n);var h=this.getFoldLine(i);h&&h!==l&&(h.merge(l),l=h),c=f.indexOf(l)+1}for(c;c<f.length;c++){var l=f[c];l.start.row>=u.row&&l.shiftRow(-n)}s=i}else{var p=Array(n);p.unshift(i,0);var d=t?this.$wrapData:this.$rowLengthCache;d.splice.apply(d,p);var f=this.$foldData,l=this.getFoldLine(i),c=0;if(l){var v=l.range.compareInside(o.row,o.column);v==0?(l=l.split(o.row,o.column),l&&(l.shiftRow(n),l.addRemoveChars(s,0,u.column-o.column))):v==-1&&(l.addRemoveChars(i,0,u.column-o.column),l.shiftRow(n)),c=f.indexOf(l)+1}for(c;c<f.length;c++){var l=f[c];l.start.row>=i&&l.shiftRow(n)}}else{n=Math.abs(e.data.range.start.column-e.data.range.end.column),r.indexOf("remove")!=-1&&(a=this.getFoldsInRange(e.data.range),this.removeFolds(a),n=-n);var l=this.getFoldLine(i);l&&l.addRemoveChars(i,o.column,n)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(i,s):this.$updateRowLengthCache(i,s),a},this.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,t){var r=this.doc.getAllLines(),i=this.getTabSize(),s=this.$wrapData,o=this.$wrapLimit,a,f,l=e;t=Math.min(t,r.length-1);while(l<=t)f=this.getFoldLine(l,f),f?(a=[],f.walk(function(e,t,i,s){var o;if(e!=null){o=this.$getDisplayTokens(e,a.length),o[0]=n;for(var f=1;f<o.length;f++)o[f]=u}else o=this.$getDisplayTokens(r[t].substring(s,i),a.length);a=a.concat(o)}.bind(this),f.end.row,r[f.end.row].length+1),s[f.start.row]=this.$computeWrapSplits(a,o,i),l=f.end.row+1):(a=this.$getDisplayTokens(r[l]),s[l]=this.$computeWrapSplits(a,o,i),l++)};var e=1,t=2,n=3,u=4,l=9,p=10,d=11,v=12;this.$computeWrapSplits=function(e,r){function c(t){var n=e.slice(o,t),r=n.length;n.join("").replace(/12/g,function(){r-=1}).replace(/2/g,function(){r-=1}),a+=r,i.push(a),o=t}if(e.length==0)return[];var i=[],s=e.length,o=0,a=0,f=this.$wrapAsCode;while(s-o>r){var h=o+r;if(e[h-1]>=p&&e[h]>=p){c(h);continue}if(e[h]==n||e[h]==u){for(h;h!=o-1;h--)if(e[h]==n)break;if(h>o){c(h);continue}h=o+r;for(h;h<e.length;h++)if(e[h]!=u)break;if(h==e.length)break;c(h);continue}var d=Math.max(h-(f?10:r-(r>>2)),o-1);while(h>d&&e[h]<n)h--;if(f){while(h>d&&e[h]<n)h--;while(h>d&&e[h]==l)h--}else while(h>d&&e[h]<p)h--;if(h>d){c(++h);continue}h=o+r,e[h]==t&&h--,c(h)}return i},this.$getDisplayTokens=function(n,r){var i=[],s;r=r||0;for(var o=0;o<n.length;o++){var u=n.charCodeAt(o);if(u==9){s=this.getScreenTabSize(i.length+r),i.push(d);for(var a=1;a<s;a++)i.push(v)}else u==32?i.push(p):u>39&&u<48||u>57&&u<64?i.push(l):u>=4352&&m(u)?i.push(e,t):i.push(e)}return i},this.$getStringScreenWidth=function(e,t,n){if(t==0)return[0,0];t==null&&(t=Infinity),n=n||0;var r,i;for(i=0;i<e.length;i++){r=e.charCodeAt(i),r==9?n+=this.getScreenTabSize(n):r>=4352&&m(r)?n+=2:n+=1;if(n>t)break}return[n,i]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.getRowLineCount=function(e){return!this.$useWrapMode||!this.$wrapData[e]?1:this.$wrapData[e].length+1},this.getScreenLastRowColumn=function(e){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE);return this.documentToScreenColumn(t.row,t.column)},this.getDocumentLastRowColumn=function(e,t){var n=this.documentToScreenRow(e,t);return this.getScreenLastRowColumn(n)},this.getDocumentLastRowColumnPosition=function(e,t){var n=this.documentToScreenRow(e,t);return this.screenToDocumentPosition(n,Number.MAX_VALUE/10)},this.getRowSplitData=function(e){return this.$useWrapMode?this.$wrapData[e]:undefined},this.getScreenTabSize=function(e){return this.$tabSize-e%this.$tabSize},this.screenToDocumentRow=function(e,t){return this.screenToDocumentPosition(e,t).row},this.screenToDocumentColumn=function(e,t){return this.screenToDocumentPosition(e,t).column},this.screenToDocumentPosition=function(e,t){if(e<0)return{row:0,column:0};var n,r=0,i=0,s,o=0,u=0,a=this.$screenRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var o=a[f],r=this.$docRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getLength()-1,p=this.getNextFoldLine(r),d=p?p.start.row:Infinity;while(o<=e){u=this.getRowLength(r);if(o+u>e||r>=h)break;o+=u,r++,r>d&&(r=p.end.row+1,p=this.getNextFoldLine(r,p),d=p?p.start.row:Infinity),c&&(this.$docRowCache.push(r),this.$screenRowCache.push(o))}if(p&&p.start.row<=r)n=this.getFoldDisplayLine(p),r=p.start.row;else{if(o+u<=e||r>h)return{row:h,column:this.getLine(h).length};n=this.getLine(r),p=null}if(this.$useWrapMode){var v=this.$wrapData[r];if(v){var m=Math.floor(e-o);s=v[m],m>0&&v.length&&(i=v[m-1]||v[v.length-1],n=n.substring(i))}}return i+=this.$getStringScreenWidth(n,t)[1],this.$useWrapMode&&i>=s&&(i=s-1),p?p.idxToPosition(i):{row:r,column:i}},this.documentToScreenPosition=function(e,t){if(typeof t=="undefined")var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var r=0,i=null,s=null;s=this.getFoldAt(e,t,1),s&&(e=s.start.row,t=s.start.column);var o,u=0,a=this.$docRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var u=a[f],r=this.$screenRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getNextFoldLine(u),p=h?h.start.row:Infinity;while(u<e){if(u>=p){o=h.end.row+1;if(o>e)break;h=this.getNextFoldLine(o,h),p=h?h.start.row:Infinity}else o=u+1;r+=this.getRowLength(u),u=o,c&&(this.$docRowCache.push(u),this.$screenRowCache.push(r))}var d="";h&&u>=p?(d=this.getFoldDisplayLine(h,e,t),i=h.start.row):(d=this.getLine(e).substring(0,t),i=e);if(this.$useWrapMode){var v=this.$wrapData[i];if(v){var m=0;while(d.length>=v[m])r++,m++;d=d.substring(v[m-1]||0,d.length)}}return{row:r,column:this.$getStringScreenWidth(d)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(!this.$useWrapMode){e=this.getLength();var n=this.$foldData;for(var r=0;r<n.length;r++)t=n[r],e-=t.end.row-t.start.row}else{var i=this.$wrapData.length,s=0,r=0,t=this.$foldData[r++],o=t?t.start.row:Infinity;while(s<i){var u=this.$wrapData[s];e+=u?u.length+1:1,s++,s>o&&(s=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:Infinity)}}return this.lineWidgets&&(e+=this.$getWidgetScreenLength()),e},this.$setFontMetrics=function(e){},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()}}).call(p.prototype),e("./edit_session/folding").Folding.call(p.prototype),e("./edit_session/bracket_match").BracketMatch.call(p.prototype),s.defineOptions(p.prototype,"session",{wrap:{set:function(e){!e||e=="off"?e=!1:e=="free"?e=!0:e=="printMargin"?e=-1:typeof e=="string"&&(e=parseInt(e,10)||!1);if(this.$wrap==e)return;this.$wrap=e;if(!e)this.setUseWrapMode(!1);else{var t=typeof e=="number"?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){e=e=="auto"?this.$mode.type!="text":e!="text",e!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){if(isNaN(e)||this.$tabSize===e)return;this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize")},initialValue:4,handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId}}}),t.EditSession=p}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(){this.$options={}};(function(){this.set=function(e){return i.mixin(this.$options,e),this},this.getOptions=function(){return r.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var r=null;return n.forEach(function(e,n,i){if(!e.start){var o=e.offset+(i||0);r=new s(n,o,n,o+e.length);if(!e.length&&t.start&&t.start.start&&t.skipCurrent!=0&&r.isEqual(t.start))return r=null,!1}else r=e;return!0}),r},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),o=[],u=t.re;if(t.$isMultiLine){var a=u.length,f=i.length-a,l;e:for(var c=u.offset||0;c<=f;c++){for(var h=0;h<a;h++)if(i[c+h].search(u[h])==-1)continue e;var p=i[c],d=i[c+a-1],v=p.length-p.match(u[0])[0].length,m=d.match(u[a-1])[0].length;if(l&&l.end.row===c&&l.end.column>v)continue;o.push(l=new s(c,v,c+a-1,m)),a>2&&(c=c+a-2)}}else for(var g=0;g<i.length;g++){var y=r.getMatchOffsets(i[g],u);for(var h=0;h<y.length;h++){var b=y[h];o.push(new s(g,b.offset,g,b.offset+b.length))}}if(n){var w=n.start.column,E=n.start.column,g=0,h=o.length-1;while(g<h&&o[g].start.column<w&&o[g].start.row==n.start.row)g++;while(g<h&&o[h].end.column>E&&o[h].end.row==n.end.row)h--;o=o.slice(g,h+1);for(g=0,h=o.length;g<h;g++)o[g].start.row+=n.start.row,o[g].end.row+=n.start.row}return o},this.replace=function(e,t){var n=this.$options,r=this.$assembleRegExp(n);if(n.$isMultiLine)return t;if(!r)return;var i=r.exec(e);if(!i||i[0].length!=e.length)return null;t=e.replace(r,t);if(n.preserveCase){t=t.split("");for(var s=Math.min(e.length,e.length);s--;){var o=e[s];o&&o.toLowerCase()!=o?t[s]=t[s].toUpperCase():t[s]=t[s].toLowerCase()}t=t.join("")}return t},this.$matchIterator=function(e,t){var n=this.$assembleRegExp(t);if(!n)return!1;var i;if(t.$isMultiLine)var o=n.length,u=function(t,r,u){var a=t.search(n[0]);if(a==-1)return;for(var f=1;f<o;f++){t=e.getLine(r+f);if(t.search(n[f])==-1)return}var l=t.match(n[o-1])[0].length,c=new s(r,a,r+o-1,l);n.offset==1?(c.start.row--,c.start.column=Number.MAX_VALUE):u&&(c.start.column+=u);if(i(c))return!0};else if(t.backwards)var u=function(e,t,s){var o=r.getMatchOffsets(e,n);for(var u=o.length-1;u>=0;u--)if(i(o[u],t,s))return!0};else var u=function(e,t,s){var o=r.getMatchOffsets(e,n);for(var u=0;u<o.length;u++)if(i(o[u],t,s))return!0};var a=this.$lineIterator(e,t);return{forEach:function(e){i=e,a.forEach(u)}}},this.$assembleRegExp=function(e,t){if(e.needle instanceof RegExp)return e.re=e.needle;var n=e.needle;if(!e.needle)return e.re=!1;e.regExp||(n=r.escapeRegExp(n)),e.wholeWord&&(n="\\b"+n+"\\b");var i=e.caseSensitive?"gm":"gmi";e.$isMultiLine=!t&&/[\n\r]/.test(n);if(e.$isMultiLine)return e.re=this.$assembleMultilineRegExp(n,i);try{var s=new RegExp(n,i)}catch(o){s=!1}return e.re=s},this.$assembleMultilineRegExp=function(e,t){var n=e.replace(/\r\n|\r|\n/g,"$\n^").split("\n"),r=[];for(var i=0;i<n.length;i++)try{r.push(new RegExp(n[i],t))}catch(s){return!1}return n[0]==""?(r.shift(),r.offset=1):r.offset=0,r},this.$lineIterator=function(e,t){var n=t.backwards==1,r=t.skipCurrent!=0,i=t.range,s=t.start;s||(s=i?i[n?"end":"start"]:e.selection.getRange()),s.start&&(s=s[r!=n?"end":"start"]);var o=i?i.start.row:0,u=i?i.end.row:e.getLength()-1,a=n?function(n){var r=s.row,i=e.getLine(r).substring(0,s.column);if(n(i,r))return;for(r--;r>=o;r--)if(n(e.getLine(r),r))return;if(t.wrap==0)return;for(r=u,o=s.row;r>=o;r--)if(n(e.getLine(r),r))return}:function(n){var r=s.row,i=e.getLine(r).substr(s.column);if(n(i,r,s.column))return;for(r+=1;r<=u;r++)if(n(e.getLine(r),r))return;if(t.wrap==0)return;for(r=o,u=s.row;r<=u;r++)if(n(e.getLine(r),r))return};return{forEach:a}}}).call(o.prototype),t.Search=o}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";function o(e,t){this.platform=t||(i.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function u(e,t){o.call(this,e,t),this.$singleCommand=!1}var r=e("../lib/keys"),i=e("../lib/useragent"),s=r.KEY_MODS;u.prototype=o.prototype,function(){this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var n=e&&(typeof e=="string"?e:e.name);e=this.commands[n],t||delete this.commands[n];var r=this.commandKeyBinding;for(var i in r){var s=r[i];if(s==e)delete r[i];else if(Array.isArray(s)){var o=s.indexOf(e);o!=-1&&(s.splice(o,1),s.length==1&&(r[i]=s[0]))}}},this.bindKey=function(e,t,n){typeof e=="object"&&(e=e[this.platform]);if(!e)return;if(typeof t=="function")return this.addCommand({exec:t,bindKey:e,name:t.name||e});e.split("|").forEach(function(e){var r="";if(e.indexOf(" ")!=-1){var i=e.split(/\s+/);e=i.pop(),i.forEach(function(e){var t=this.parseKeys(e),n=s[t.hashId]+t.key;r+=(r?" ":"")+n,this._addCommandToBinding(r,"chainKeys")},this),r+=" "}var o=this.parseKeys(e),u=s[o.hashId]+o.key;this._addCommandToBinding(r+u,t,n)},this)},this._addCommandToBinding=function(e,t,n){var r=this.commandKeyBinding,i;t?!r[e]||this.$singleCommand?r[e]=t:(Array.isArray(r[e])?(i=r[e].indexOf(t))!=-1&&r[e].splice(i,1):r[e]=[r[e]],n||t.isDefault?r[e].unshift(t):r[e].push(t)):delete r[e]},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var n=e[t];if(!n)return;if(typeof n=="string")return this.bindKey(n,t);typeof n=="function"&&(n={exec:n});if(typeof n!="object")return;n.name||(n.name=t),this.addCommand(n)},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),n=t.pop(),i=r[n];if(r.FUNCTION_KEYS[i])n=r.FUNCTION_KEYS[i].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(t.length==1&&t[0]=="shift")return{key:n.toUpperCase(),hashId:-1}}var s=0;for(var o=t.length;o--;){var u=r.KEY_MODS[t[o]];if(u==null)return typeof console!="undefined"&&console.error("invalid modifier "+t[o]+" in "+e),!1;s|=u}return{key:n,hashId:s}},this.findKeyCommand=function(t,n){var r=s[t]+n;return this.commandKeyBinding[r]},this.handleKeyboard=function(e,t,n,r){var i=s[t]+n,o=this.commandKeyBinding[i];e.$keyChain&&(e.$keyChain+=" "+i,o=this.commandKeyBinding[e.$keyChain]||o);if(o)if(o=="chainKeys"||o[o.length-1]=="chainKeys")return e.$keyChain=e.$keyChain||i,{command:"null"};return e.$keyChain&&r>0&&(e.$keyChain=""),{command:o}}}.call(o.prototype),t.HashHandler=o,t.MultiHashHandler=u}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../keyboard/hash_handler").MultiHashHandler,s=e("../lib/event_emitter").EventEmitter,o=function(e,t){i.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};r.inherits(o,i),function(){r.implement(this,s),this.exec=function(e,t,n){if(Array.isArray(e)){for(var r=e.length;r--;)if(this.exec(e[r],t,n))return!0;return!1}typeof e=="string"&&(e=this.commands[e]);if(!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),i.returnValue===!1?!1:!0},this.toggleRecording=function(e){if(this.$inReplay)return;return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(this.$inReplay||!this.macro)return;if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t=="string"?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}},this.trimMacro=function(e){return e.map(function(e){return typeof e[0]!="string"&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(o.prototype),t.CommandManager=o}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,n){"use strict";function o(e,t){return{win:e,mac:t}}var r=e("../lib/lang"),i=e("../config"),s=e("../range").Range;t.commands=[{name:"showSettingsMenu",bindKey:o("Ctrl-,","Command-,"),exec:function(e){i.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:o("Alt-E","Ctrl-E"),exec:function(e){i.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:o("Alt-Shift-E","Ctrl-Shift-E"),exec:function(e){i.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:o("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",bindKey:o(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:o("Ctrl-L","Command-L"),exec:function(e){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||e.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:o("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:o("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:o("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:o("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:o(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:o("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:o("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:o("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:o("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:o("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:o("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",bindKey:o("Ctrl-F","Command-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:o("Ctrl-Shift-Home","Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:o("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:o("Shift-Up","Shift-Up"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:o("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:o("Ctrl-Shift-End","Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:o("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:o("Shift-Down","Shift-Down"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:o("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:o("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:o("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:o("Alt-Shift-Left","Command-Shift-Left"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:o("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:o("Shift-Left","Shift-Left"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:o("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:o("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:o("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:o("Alt-Shift-Right","Command-Shift-Right"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:o("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:o("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:o("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:o(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:o("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:o(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:o("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:o("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",bindKey:o("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",bindKey:o("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",bindKey:o("Ctrl-P","Ctrl-P"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:o("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:o("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:o(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"cut",exec:function(e){var t=e.getSelectionRange();e._emit("cut",t),e.selection.isEmpty()||(e.session.remove(t),e.clearSelection())},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"removeline",bindKey:o("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:o("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:o("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:o("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:o("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:o("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:o("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:o("Ctrl-H","Command-Option-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",bindKey:o("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",bindKey:o("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",bindKey:o("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:o("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:o("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:o("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:o("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:o("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:o("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:o("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:o("Alt-Delete","Ctrl-K"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:o("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:o("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:o("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:o("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:o("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:o("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:o(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:o("Ctrl-T","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:o("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:o("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:o("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",bindKey:o(null,null),exec:function(e){var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(n.row).length,u=e.session.doc.getTextRange(e.selection.getRange()),a=u.replace(/\n\s*/," ").length,f=e.session.doc.getLine(n.row);for(var l=n.row+1;l<=i.row+1;l++){var c=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(l)));c.length!==0&&(c=" "+c),f+=c}i.row+1<e.session.doc.getLength()-1&&(f+=e.session.doc.getNewLineCharacter()),e.clearSelection(),e.session.doc.replace(new s(n.row,0,i.row+2,0),f),a>0?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(o=e.session.doc.getLine(n.row).length>o?o+1:o,e.selection.moveCursorTo(n.row,o))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:o(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,r=e.selection.rangeList.ranges,i=[];r.length<1&&(r=[e.selection.getRange()]);for(var o=0;o<r.length;o++)o==r.length-1&&(r[o].end.row!==t||r[o].end.column!==n)&&i.push(new s(r[o].end.row,r[o].end.column,t,n)),o===0?(r[o].start.row!==0||r[o].start.column!==0)&&i.push(new s(0,0,r[o].start.row,r[o].start.column)):i.push(new s(r[o-1].end.row,r[o-1].end.column,r[o].start.row,r[o].start.column));e.exitMultiSelectMode(),e.clearSelection();for(var o=0;o<i.length;o++)e.selection.addRange(i[o],!1)},readOnly:!0,scrollIntoView:"none"}]}),ace.define("ace/editor",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands","ace/config","ace/token_iterator"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/lang"),o=e("./lib/useragent"),u=e("./keyboard/textinput").TextInput,a=e("./mouse/mouse_handler").MouseHandler,f=e("./mouse/fold_handler").FoldHandler,l=e("./keyboard/keybinding").KeyBinding,c=e("./edit_session").EditSession,h=e("./search").Search,p=e("./range").Range,d=e("./lib/event_emitter").EventEmitter,v=e("./commands/command_manager").CommandManager,m=e("./commands/default_commands").commands,g=e("./config"),y=e("./token_iterator").TokenIterator,b=function(e,t){var n=e.getContainerElement();this.container=n,this.renderer=e,this.commands=new v(o.isMac?"mac":"win",m),this.textInput=new u(e.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.keyBinding=new l(this),this.$mouseHandler=new a(this),new f(this),this.$blockScrolling=0,this.$search=(new h).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal("input",{}),this.session&&this.session.bgTokenizer&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(e,t){t._$emitInputEvent.schedule(31)}),this.setSession(t||new c("")),g.resetOptions(this),g._signal("editor",this)};(function(){r.implement(this,d),this.$initOperationListeners=function(){function e(e){return e[e.length-1]}this.selections=[],this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=s.delayedCall(this.endOperation.bind(this)),this.on("change",function(){this.curOp||this.startOperation(),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||this.startOperation(),this.curOp.selectionChanged=!0}.bind(this),!0)},this.curOp=null,this.prevOp={},this.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.command.name&&this.curOp.command.scrollIntoView!==undefined&&this.$blockScrolling++},this.endOperation=function(e){if(this.curOp){if(e&&e.returnValue===!1)return this.curOp=null;this._signal("beforeEndOperation");var t=this.curOp.command;t.name&&this.$blockScrolling>0&&this.$blockScrolling--;if(t&&t.scrollIntoView){switch(t.scrollIntoView){case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var n=this.selection.getRange(),r=this.renderer.layerConfig;(n.start.row>=r.lastRow||n.end.row<=r.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break;default:}t.scrollIntoView=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(!this.$mergeUndoDeltas)return;var t=this.prevOp,n=this.$mergeableCommands,r=t.command&&e.command.name==t.command.name;if(e.command.name=="insertstring"){var i=e.args;this.mergeNextCommand===undefined&&(this.mergeNextCommand=!0),r=r&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else r=r&&n.indexOf(e.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(r=!1),r?this.session.mergeUndoDeltas=!0:n.indexOf(e.command.name)!==-1&&(this.sequenceStartTime=Date.now())},this.setKeyboardHandler=function(e,t){if(e&&typeof e=="string"){this.$keybindingId=e;var n=this;g.loadModule(["keybinding",e],function(r){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(r&&r.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session==e)return;var t=this.session;if(t){this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange),this.session.removeEventListener("changeScrollTop",this.$onScrollTopChange),this.session.removeEventListener("changeScrollLeft",this.$onScrollLeftChange);var n=this.session.getSelection();n.removeEventListener("changeCursor",this.$onCursorChange),n.removeEventListener("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.addEventListener("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.addEventListener("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this})},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?t==1?this.navigateFileEnd():t==-1&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||i.computedStyle(this.container,"fontSize")},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(this.$highlightPending)return;var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(!t||!t.bgTokenizer)return;var n=t.findMatchingBracket(e.getCursorPosition());if(n)var r=new p(n.row,n.column,n.row,n.column+1);else if(t.$mode.getMatching)var r=t.$mode.getMatching(e.session);r&&(t.$bracketHighlight=t.addMarker(r,"ace_bracket","text"))},50)},this.$highlightTags=function(){if(this.$highlightTagPending)return;var e=this;this.$highlightTagPending=!0,setTimeout(function(){e.$highlightTagPending=!1;var t=e.session;if(!t||!t.bgTokenizer)return;var n=e.getCursorPosition(),r=new y(e.session,n.row,n.column),i=r.getCurrentToken();if(!i||!/\b(?:tag-open|tag-name)/.test(i.type)){t.removeMarker(t.$tagHighlight),t.$tagHighlight=null;return}if(i.type.indexOf("tag-open")!=-1){i=r.stepForward();if(!i)return}var s=i.value,o=0,u=r.stepBackward();if(u.value=="<"){do u=i,i=r.stepForward(),i&&i.value===s&&i.type.indexOf("tag-name")!==-1&&(u.value==="<"?o++:u.value==="</"&&o--);while(i&&o>=0)}else{do i=u,u=r.stepBackward(),i&&i.value===s&&i.type.indexOf("tag-name")!==-1&&(u.value==="<"?o++:u.value==="</"&&o--);while(u&&o<=0);r.stepForward()}if(!i){t.removeMarker(t.$tagHighlight),t.$tagHighlight=null;return}var a=r.getCurrentTokenRow(),f=r.getCurrentTokenColumn(),l=new p(a,f,a,f+i.value.length);t.$tagHighlight&&l.compareRange(t.$backMarkers[t.$tagHighlight].range)!==0&&(t.removeMarker(t.$tagHighlight),t.$tagHighlight=null),l&&!t.$tagHighlight&&(t.$tagHighlight=t.addMarker(l,"ace_bracket","text"))},50)},this.focus=function(){var e=this;setTimeout(function(){e.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(e){if(this.$isFocused)return;this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e)},this.onBlur=function(e){if(!this.$isFocused)return;this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e)},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(e){var t=e.data,n=t.range,r;n.start.row==n.end.row&&t.action!="insertLines"&&t.action!="removeLines"?r=n.end.row:r=Infinity,this.renderer.updateLines(n.start.row,r,this.session.$useWrapMode),this._signal("change",e),this.$cursorChange(),this.$updateHighlightActiveLine()},this.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$blockScrolling||(g.warn("Automatically scrolling cursor into view after selection change","this will be disabled in the next version","set editor.$blockScrolling = Infinity to disable this message"),this.renderer.scrollCursorIntoView()),this.$highlightBrackets(),this.$highlightTags(),this.$updateHighlightActiveLine(),this._signal("changeSelection")},this.$updateHighlightActiveLine=function(){var e=this.getSession(),t;if(this.$highlightActiveLine){if(this.$selectionStyle!="line"||!this.selection.isMultiLine())t=this.getCursorPosition();this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(t=!1)}if(e.$highlightLineMarker&&!t)e.removeMarker(e.$highlightLineMarker.id),e.$highlightLineMarker=null;else if(!e.$highlightLineMarker&&t){var n=new p(t.row,t.column,t.row,Infinity);n.id=e.addMarker(n,"ace_active-line","screenLine"),e.$highlightLineMarker=n}else t&&(e.$highlightLineMarker.start.row=t.row,e.$highlightLineMarker.end.row=t.row,e.$highlightLineMarker.start.column=t.column,e._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null;if(!this.selection.isEmpty()){var n=this.selection.getRange(),r=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",r)}else this.$updateHighlightActiveLine();var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(t.isEmpty()||t.isMultiLine())return;var n=t.start.column-1,r=t.end.column+1,i=e.getLine(t.start.row),s=i.length,o=i.substring(Math.max(n,0),Math.min(r,s));if(n>=0&&/^[\w\d]/.test(o)||r<=s&&/[\w\d]$/.test(o))return;o=i.substring(t.start.column,t.end.column);if(!/^[\w\d]+$/.test(o))return;var u=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:o});return u},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText();return this._signal("copy",e),e},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(e){if(this.$readOnly)return;var t={text:e};this._signal("paste",t),e=t.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(e);else{var n=e.split(/\r\n|\r|\n/),r=this.selection.rangeList.ranges;if(n.length>r.length||n.length<2||!n[1])return this.commands.exec("insertstring",this,e);for(var i=r.length;i--;){var s=r[i];s.isEmpty()||this.session.remove(s),this.session.insert(s.start,n[i])}}this.renderer.scrollCursorIntoView()},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var n=this.session,r=n.getMode(),i=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var s=r.transformAction(n.getState(i.row),"insertion",this,n,e);s&&(e!==s.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=s.text)}e==" "&&(e=this.session.getTabString());if(!this.selection.isEmpty()){var o=this.getSelectionRange();i=this.session.remove(o),this.clearSelection()}else if(this.session.getOverwrite()){var o=new p.fromPoints(i,i);o.end.column+=e.length,this.session.remove(o)}if(e=="\n"||e=="\r\n"){var u=n.getLine(i.row);if(i.column>u.search(/\S|$/)){var a=u.substr(i.column).search(/\S|$/);n.doc.removeInLine(i.row,i.column,i.column+a)}}this.clearSelection();var f=i.column,l=n.getState(i.row),u=n.getLine(i.row),c=r.checkOutdent(l,u,e),h=n.insert(i,e);s&&s.selection&&(s.selection.length==2?this.selection.setSelectionRange(new p(i.row,f+s.selection[0],i.row,f+s.selection[1])):this.selection.setSelectionRange(new p(i.row+s.selection[0],s.selection[1],i.row+s.selection[2],s.selection[3])));if(n.getDocument().isNewLine(e)){var d=r.getNextLineIndent(l,u.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},d)}c&&r.autoOutdent(l,n,i.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,n){this.keyBinding.onCommandKey(e,t,n)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&(e=="left"?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,r=n.getState(t.start.row),i=n.getMode().transformAction(r,"deletion",this,n,t);if(t.end.column===0){var s=n.getTextRange(t);if(s[s.length-1]=="\n"){var o=n.getLine(t.end.row);/^\s+$/.test(o)&&(t.end.column=o.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(!this.selection.isEmpty())return;var e=this.getCursorPosition(),t=e.column;if(t===0)return;var n=this.session.getLine(e.row),r,i;t<n.length?(r=n.charAt(t)+n.charAt(t-1),i=new p(e.row,t-1,e.row,t+1)):(r=n.charAt(t-1)+n.charAt(t-2),i=new p(e.row,t-2,e.row,t)),this.session.replace(i,r)},this.toLowerCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),n=this.session.getTextRange(t);this.session.replace(t,n.toLowerCase()),this.selection.setSelectionRange(e)},this.toUpperCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),n=this.session.getTextRange(t);this.session.replace(t,n.toUpperCase()),this.selection.setSelectionRange(e)},this.indent=function(){var e=this.session,t=this.getSelectionRange();if(t.start.row<t.end.row){var n=this.$getSelectedRows();e.indentRows(n.first,n.last," ");return}if(t.start.column<t.end.column){var r=e.getTextRange(t);if(!/^\s+$/.test(r)){var n=this.$getSelectedRows();e.indentRows(n.first,n.last," ");return}}var i=e.getLine(t.start.row),o=t.start,u=e.getTabSize(),a=e.documentToScreenColumn(o.row,o.column);if(this.session.getUseSoftTabs())var f=u-a%u,l=s.stringRepeat(" ",f);else{var f=a%u;while(i[t.start.column]==" "&&f)t.start.column--,f--;this.selection.setSelectionRange(t),l=" "}return this.insert(l)},this.blockIndent=function(){var e=this.$getSelectedRows();this.session.indentRows(e.first,e.last," ")},this.blockOutdent=function(){var e=this.session.getSelection();this.session.outdentRows(e.getRange())},this.sortLines=function(){var e=this.$getSelectedRows(),t=this.session,n=[];for(i=e.first;i<=e.last;i++)n.push(t.getLine(i));n.sort(function(e,t){return e.toLowerCase()<t.toLowerCase()?-1:e.toLowerCase()>t.toLowerCase()?1:0});var r=new p(0,0,0,0);for(var i=e.first;i<=e.last;i++){var s=t.getLine(i);r.start.row=i,r.end.row=i,r.end.column=s.length,t.replace(r,n[i-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},this.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;var r=this.session.getLine(e);while(n.lastIndex<t){var i=n.exec(r);if(i.index<=t&&i.index+i[0].length>=t){var s={value:i[0],start:i.index,end:i.index+i[0].length};return s}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,r=new p(t,n-1,t,n),i=this.session.getTextRange(r);if(!isNaN(parseFloat(i))&&isFinite(i)){var s=this.getNumberAt(t,n);if(s){var o=s.value.indexOf(".")>=0?s.start+s.value.indexOf(".")+1:s.end,u=s.start+s.value.length-o,a=parseFloat(s.value);a*=Math.pow(10,u),o!==s.end&&n<o?e*=Math.pow(10,s.end-n-1):e*=Math.pow(10,s.end-n),a+=e,a/=Math.pow(10,u);var f=a.toFixed(u),l=new p(t,s.start,t,s.end);this.session.replace(l,f),this.moveCursorTo(t,Math.max(s.start+1,n+f.length-s.value.length))}}},this.removeLines=function(){var e=this.$getSelectedRows(),t;e.first===0||e.last+1<this.session.getLength()?t=new p(e.first,0,e.last+1,0):t=new p(e.first-1,this.session.getLine(e.first-1).length,e.last,this.session.getLine(e.last).length),this.session.remove(t),this.clearSelection()},this.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),r=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var s=r?n.start:n.end,o=t.insert(s,t.getTextRange(n),!1);n.start=s,n.end=o,e.setSelectionRange(n,r)}},this.moveLinesDown=function(){this.$moveLines(1,!1)},this.moveLinesUp=function(){this.$moveLines(-1,!1)},this.moveText=function(e,t,n){return this.session.moveText(e,t,n)},this.copyLinesUp=function(){this.$moveLines(-1,!0)},this.copyLinesDown=function(){this.$moveLines(1,!0)},this.$moveLines=function(e,t){var n,r,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var s=i.toOrientedRange();n=this.$getSelectedRows(s),r=this.session.$moveLines(n.first,n.last,t?0:e),t&&e==-1&&(r=0),s.moveBy(r,0),i.fromOrientedRange(s)}else{var o=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;var u=0,a=0,f=o.length;for(var l=0;l<f;l++){var c=l;o[l].moveBy(u,0),n=this.$getSelectedRows(o[l]);var h=n.first,p=n.last;while(++l<f){a&&o[l].moveBy(a,0);var d=this.$getSelectedRows(o[l]);if(t&&d.first!=p)break;if(!t&&d.first>p+1)break;p=d.last}l--,u=this.session.$moveLines(h,p,t?0:e),t&&e==-1&&(c=l+1);while(c<=l)o[c].moveBy(u,0),c++;t||(u=0),a+=u}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var n=this.renderer,r=this.renderer.layerConfig,i=e*Math.floor(r.height/r.lineHeight);this.$blockScrolling++,t===!0?this.selection.$moveSelection(function(){this.moveCursorBy(i,0)}):t===!1&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection()),this.$blockScrolling--;var s=n.scrollTop;n.scrollBy(0,i*r.lineHeight),t!=null&&n.scrollCursorIntoView(null,.5),n.animateScrolling(s)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,n,r){this.renderer.scrollToLine(e,t,n,r)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var n=this.getCursorPosition(),r=new y(this.session,n.row,n.column),i=r.getCurrentToken(),s=i||r.stepForward();if(!s)return;var o,u=!1,a={},f=n.column-s.start,l,c={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(s.value.match(/[{}()\[\]]/g))for(;f<s.value.length&&!u;f++){if(!c[s.value[f]])continue;l=c[s.value[f]]+"."+s.type.replace("rparen","lparen"),isNaN(a[l])&&(a[l]=0);switch(s.value[f]){case"(":case"[":case"{":a[l]++;break;case")":case"]":case"}":a[l]--,a[l]===-1&&(o="bracket",u=!0)}}else s&&s.type.indexOf("tag-name")!==-1&&(isNaN(a[s.value])&&(a[s.value]=0),i.value==="<"?a[s.value]++:i.value==="</"&&a[s.value]--,a[s.value]===-1&&(o="tag",u=!0));u||(i=s,s=r.stepForward(),f=0)}while(s&&!u);if(!o)return;var h,d;if(o==="bracket"){h=this.session.getBracketRange(n);if(!h){h=new p(r.getCurrentTokenRow(),r.getCurrentTokenColumn()+f-1,r.getCurrentTokenRow(),r.getCurrentTokenColumn()+f-1),d=h.start;if(t||d.row===n.row&&Math.abs(d.column-n.column)<2)h=this.session.getBracketRange(d)}}else if(o==="tag"){if(!s||s.type.indexOf("tag-name")===-1)return;var v=s.value;h=new p(r.getCurrentTokenRow(),r.getCurrentTokenColumn()-2,r.getCurrentTokenRow(),r.getCurrentTokenColumn()-2);if(h.compare(n.row,n.column)===0){u=!1;do s=i,i=r.stepBackward(),i&&(i.type.indexOf("tag-close")!==-1&&h.setEnd(r.getCurrentTokenRow(),r.getCurrentTokenColumn()+1),s.value===v&&s.type.indexOf("tag-name")!==-1&&(i.value==="<"?a[v]++:i.value==="</"&&a[v]--,a[v]===0&&(u=!0)));while(i&&!u)}s&&s.type.indexOf("tag-name")&&(d=h.start,d.row==n.row&&Math.abs(d.column-n.column)<2&&(d=h.end))}d=h&&h.cursor||d,d&&(e?h&&t?this.selection.setRange(h):h&&h.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(d.row,d.column):this.selection.moveTo(d.row,d.column))},this.gotoLine=function(e,t,n){this.selection.clearSelection(),this.session.unfold({row:e-1,column:t||0}),this.$blockScrolling+=1,this.exitMultiSelectMode&&this.exitMultiSelectMode(),this.moveCursorTo(e-1,t||0),this.$blockScrolling-=1,this.isRowFullyVisible(e-1)||this.scrollToLine(e-1,!0,n)},this.navigateTo=function(e,t){this.selection.moveTo(e,t)},this.navigateUp=function(e){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(-e||-1,0)},this.navigateDown=function(e){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(e||1,0)},this.navigateLeft=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().start;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().end;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(e,t){t&&this.$search.set(t);var n=this.$search.find(this.session),r=0;return n?(this.$tryReplace(n,e)&&(r=1),n!==null&&(this.selection.setSelectionRange(n),this.renderer.scrollSelectionIntoView(n.start,n.end)),r):r},this.replaceAll=function(e,t){t&&this.$search.set(t);var n=this.$search.findAll(this.session),r=0;if(!n.length)return r;this.$blockScrolling+=1;var i=this.getSelectionRange();this.selection.moveTo(0,0);for(var s=n.length-1;s>=0;--s)this.$tryReplace(n[s],e)&&r++;return this.selection.setSelectionRange(i),this.$blockScrolling-=1,r},this.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return t=this.$search.replace(n,t),t!==null?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,n){t||(t={}),typeof e=="string"||e instanceof RegExp?t.needle=e:typeof e=="object"&&r.mixin(t,e);var i=this.selection.getRange();t.needle==null&&(e=this.session.getTextRange(i)||this.$search.$options.needle,e||(i=this.session.getWordRange(i.start.row,i.start.column),e=this.session.getTextRange(i)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:i});var s=this.$search.find(this.session);if(t.preventScroll)return s;if(s)return this.revealRange(s,n),s;t.backwards?i.start=i.end:i.end=i.start,this.selection.setRange(i)},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.$blockScrolling+=1,this.session.unfold(e),this.selection.setSelectionRange(e),this.$blockScrolling-=1;var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),t!==!1&&this.renderer.animateScrolling(n)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(e){if(!e)return;var t,n=this,r=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var i=this.$scrollAnchor;i.style.cssText="position:absolute",this.container.insertBefore(i,this.container.firstChild);var s=this.on("changeSelection",function(){r=!0}),o=this.renderer.on("beforeRender",function(){r&&(t=n.renderer.container.getBoundingClientRect())}),u=this.renderer.on("afterRender",function(){if(r&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,s=e.$cursorLayer.$pixelPos,o=e.layerConfig,u=s.top-o.offset;s.top>=0&&u+t.top<0?r=!0:s.top<o.height&&s.top+t.top+o.lineHeight>window.innerHeight?r=!1:r=null,r!=null&&(i.style.top=u+"px",i.style.left=s.left+"px",i.style.height=o.lineHeight+"px",i.scrollIntoView(r)),r=t=null}});this.setAutoScrollEditorIntoView=function(e){if(e)return;delete this.setAutoScrollEditorIntoView,this.removeEventListener("changeSelection",s),this.renderer.removeEventListener("afterRender",u),this.renderer.removeEventListener("beforeRender",o)}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;if(!t)return;t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&e!="wide",i.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e))}}).call(b.prototype),g.defineOptions(b.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showLineNumbers:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",foldStyle:"session",mode:"session"}),t.Editor=b}),ace.define("ace/undomanager",["require","exports","module"],function(e,t,n){"use strict";var r=function(){this.reset()};(function(){this.execute=function(e){var t=e.args[0];this.$doc=e.args[1],e.merge&&this.hasUndo()&&(this.dirtyCounter--,t=this.$undoStack.pop().concat(t)),this.$undoStack.push(t),this.$redoStack=[],this.dirtyCounter<0&&(this.dirtyCounter=NaN),this.dirtyCounter++},this.undo=function(e){var t=this.$undoStack.pop(),n=null;return t&&(n=this.$doc.undoChanges(t,e),this.$redoStack.push(t),this.dirtyCounter--),n},this.redo=function(e){var t=this.$redoStack.pop(),n=null;return t&&(n=this.$doc.redoChanges(t,e),this.$undoStack.push(t),this.dirtyCounter++),n},this.reset=function(){this.$undoStack=[],this.$redoStack=[],this.dirtyCounter=0},this.hasUndo=function(){return this.$undoStack.length>0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return this.dirtyCounter===0}}).call(r.prototype),t.UndoManager=r}),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/lang"),o=e("../lib/event_emitter").EventEmitter,u=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){i.implement(this,o),this.setSession=function(e){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=e,e&&e.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;t<e.length;t++){var n=e[t],r=n.row,i=this.$annotations[r];i||(i=this.$annotations[r]={text:[]});var o=n.text;o=o?s.escapeHTML(o):n.html||"",i.text.indexOf(o)===-1&&i.text.push(o);var u=n.type;u=="error"?i.className=" ace_error":u=="warning"&&i.className!=" ace_error"?i.className=" ace_warning":u=="info"&&!i.className&&(i.className=" ace_info")}},this.$updateAnnotations=function(e){if(!this.$annotations.length)return;var t=e.data,n=t.range,r=n.start.row,i=n.end.row-r;if(i!==0)if(t.action=="removeText"||t.action=="removeLines")this.$annotations.splice(r,i+1,null);else{var s=new Array(i+1);s.unshift(r,1),this.$annotations.splice.apply(this.$annotations,s)}},this.update=function(e){var t=this.session,n=e.firstRow,i=Math.min(e.lastRow+e.gutterOffset,t.getLength()-1),s=t.getNextFoldLine(n),o=s?s.start.row:Infinity,u=this.$showFoldWidgets&&t.foldWidgets,a=t.$breakpoints,f=t.$decorations,l=t.$firstLineNumber,c=0,h=t.gutterRenderer||this.$renderer,p=null,d=-1,v=n;for(;;){v>o&&(v=s.end.row+1,s=t.getNextFoldLine(v,s),o=s?s.start.row:Infinity);if(v>i){while(this.$cells.length>d+1)p=this.$cells.pop(),this.element.removeChild(p.element);break}p=this.$cells[++d],p||(p={element:null,textNode:null,foldWidget:null},p.element=r.createElement("div"),p.textNode=document.createTextNode(""),p.element.appendChild(p.textNode),this.element.appendChild(p.element),this.$cells[d]=p);var m="ace_gutter-cell ";a[v]&&(m+=a[v]),f[v]&&(m+=f[v]),this.$annotations[v]&&(m+=this.$annotations[v].className),p.element.className!=m&&(p.element.className=m);var g=t.getRowLength(v)*e.lineHeight+"px";g!=p.element.style.height&&(p.element.style.height=g);if(u){var y=u[v];y==null&&(y=u[v]=t.getFoldWidget(v))}if(y){p.foldWidget||(p.foldWidget=r.createElement("span"),p.element.appendChild(p.foldWidget));var m="ace_fold-widget ace_"+y;y=="start"&&v==o&&v<s.end.row?m+=" ace_closed":m+=" ace_open",p.foldWidget.className!=m&&(p.foldWidget.className=m);var g=e.lineHeight+"px";p.foldWidget.style.height!=g&&(p.foldWidget.style.height=g)}else p.foldWidget&&(p.element.removeChild(p.foldWidget),p.foldWidget=null);var b=c=h?h.getText(t,v):v+l;b!=p.textNode.data&&(p.textNode.data=b),v++}this.element.style.height=e.minHeight+"px";if(this.$fixedWidth||t.$useWrapMode)c=t.getLength()+l;var w=h?h.getWidth(t,c,e):c.toString().length*e.characterWidth,E=this.$padding||this.$computePadding();w+=E.left+E.right,w!==this.gutterWidth&&!isNaN(w)&&(this.gutterWidth=w,this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._emit("changeGutterWidth",w))},this.$fixedWidth=!1,this.$showLineNumbers=!0,this.$renderer="",this.setShowLineNumbers=function(e){this.$renderer=!e&&{getWidth:function(){return""},getText:function(){return""}}},this.getShowLineNumbers=function(){return this.$showLineNumbers},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(e){e?r.addCssClass(this.element,"ace_folding-enabled"):r.removeCssClass(this.element,"ace_folding-enabled"),this.$showFoldWidgets=e,this.$padding=null},this.getShowFoldWidgets=function(){return this.$showFoldWidgets},this.$computePadding=function(){if(!this.element.firstChild)return{left:0,right:0};var e=r.computedStyle(this.element.firstChild);return this.$padding={},this.$padding.left=parseInt(e.paddingLeft)+1||0,this.$padding.right=parseInt(e.paddingRight)||0,this.$padding},this.getRegion=function(e){var t=this.$padding||this.$computePadding(),n=this.element.getBoundingClientRect();if(e.x<t.left+n.left)return"markers";if(this.$showFoldWidgets&&e.x>n.right-t.right)return"foldWidgets"}}).call(u.prototype),t.Gutter=u}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../range").Range,i=e("../lib/dom"),s=function(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.update=function(e){var e=e||this.config;if(!e)return;this.config=e;var t=[];for(var n in this.markers){var r=this.markers[n];if(!r.range){r.update(t,this,this.session,e);continue}var i=r.range.clipRows(e.firstRow,e.lastRow);if(i.isEmpty())continue;i=i.toScreenRange(this.session);if(r.renderer){var s=this.$getTop(i.start.row,e),o=this.$padding+i.start.column*e.characterWidth;r.renderer(t,i,o,s,e)}else r.type=="fullLine"?this.drawFullLineMarker(t,i,r.clazz,e):r.type=="screenLine"?this.drawScreenLineMarker(t,i,r.clazz,e):i.isMultiLine()?r.type=="text"?this.drawTextMarker(t,i,r.clazz,e):this.drawMultiLineMarker(t,i,r.clazz,e):this.drawSingleLineMarker(t,i,r.clazz+" ace_start",e)}this.element.innerHTML=t.join("")},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(e,t,n,i,s){var o=t.start.row,u=new r(o,t.start.column,o,this.session.getScreenLastRowColumn(o));this.drawSingleLineMarker(e,u,n+" ace_start",i,1,s),o=t.end.row,u=new r(o,0,o,t.end.column),this.drawSingleLineMarker(e,u,n,i,0,s);for(o=t.start.row+1;o<t.end.row;o++)u.start.row=o,u.end.row=o,u.end.column=this.session.getScreenLastRowColumn(o),this.drawSingleLineMarker(e,u,n,i,1,s)},this.drawMultiLineMarker=function(e,t,n,r,i){var s=this.$padding,o=r.lineHeight,u=this.$getTop(t.start.row,r),a=s+t.start.column*r.characterWidth;i=i||"",e.push("<div class='",n," ace_start' style='","height:",o,"px;","right:0;","top:",u,"px;","left:",a,"px;",i,"'></div>"),u=this.$getTop(t.end.row,r);var f=t.end.column*r.characterWidth;e.push("<div class='",n,"' style='","height:",o,"px;","width:",f,"px;","top:",u,"px;","left:",s,"px;",i,"'></div>"),o=(t.end.row-t.start.row-1)*r.lineHeight;if(o<0)return;u=this.$getTop(t.start.row+1,r),e.push("<div class='",n,"' style='","height:",o,"px;","right:0;","top:",u,"px;","left:",s,"px;",i,"'></div>")},this.drawSingleLineMarker=function(e,t,n,r,i,s){var o=r.lineHeight,u=(t.end.column+(i||0)-t.start.column)*r.characterWidth,a=this.$getTop(t.start.row,r),f=this.$padding+t.start.column*r.characterWidth;e.push("<div class='",n,"' style='","height:",o,"px;","width:",u,"px;","top:",a,"px;","left:",f,"px;",s||"","'></div>")},this.drawFullLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,r)-s),e.push("<div class='",n,"' style='","height:",o,"px;","top:",s,"px;","left:0;right:0;",i||"","'></div>")},this.drawScreenLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;e.push("<div class='",n,"' style='","height:",o,"px;","top:",s,"px;","left:0;right:0;",i||"","'></div>")}}).call(s.prototype),t.Marker=s}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("../lib/useragent"),u=e("../lib/event_emitter").EventEmitter,a=function(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){r.implement(this,u),this.EOF_CHAR="\u00b6",this.EOL_CHAR_LF="\u00ac",this.EOL_CHAR_CRLF="\u00a4",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="\u2192",this.SPACE_CHAR="\u00b7",this.$padding=0,this.$updateEolChar=function(){var e=this.session.doc.getNewLineCharacter()=="\n"?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=e)return this.EOL_CHAR=e,!0},this.setPadding=function(e){this.$padding=e,this.element.style.padding="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;var t=this.$tabStrings=[0];for(var n=1;n<e+1;n++)this.showInvisibles?t.push("<span class='ace_invisible ace_invisible_tab'>"+this.TAB_CHAR+s.stringRepeat(" ",n-1)+"</span>"):t.push(s.stringRepeat(" ",n));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var r="ace_indent-guide",i="",o="";if(this.showInvisibles){r+=" ace_invisible",i=" ace_invisible_space",o=" ace_invisible_tab";var u=s.stringRepeat(this.SPACE_CHAR,this.tabSize),a=this.TAB_CHAR+s.stringRepeat(" ",this.tabSize-1)}else var u=s.stringRepeat(" ",this.tabSize),a=u;this.$tabStrings[" "]="<span class='"+r+i+"'>"+u+"</span>",this.$tabStrings[" "]="<span class='"+r+o+"'>"+a+"</span>"}},this.updateLines=function(e,t,n){(this.config.lastRow!=e.lastRow||this.config.firstRow!=e.firstRow)&&this.scrollLines(e),this.config=e;var r=Math.max(t,e.firstRow),i=Math.min(n,e.lastRow),s=this.element.childNodes,o=0;for(var u=e.firstRow;u<r;u++){var a=this.session.getFoldLine(u);if(a){if(a.containsRow(r)){r=a.start.row;break}u=a.end.row}o++}var u=r,a=this.session.getNextFoldLine(u),f=a?a.start.row:Infinity;for(;;){u>f&&(u=a.end.row+1,a=this.session.getNextFoldLine(u,a),f=a?a.start.row:Infinity);if(u>i)break;var l=s[o++];if(l){var c=[];this.$renderLine(c,u,!this.$useLineGroups(),u==f?a:!1),l.style.height=e.lineHeight*this.session.getRowLength(u)+"px",l.innerHTML=c.join("")}u++}},this.scrollLines=function(e){var t=this.config;this.config=e;if(!t||t.lastRow<e.firstRow)return this.update(e);if(e.lastRow<t.firstRow)return this.update(e);var n=this.element;if(t.firstRow<e.firstRow)for(var r=this.session.getFoldedRowCount(t.firstRow,e.firstRow-1);r>0;r--)n.removeChild(n.firstChild);if(t.lastRow>e.lastRow)for(var r=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);r>0;r--)n.removeChild(n.lastChild);if(e.firstRow<t.firstRow){var i=this.$renderLinesFragment(e,e.firstRow,t.firstRow-1);n.firstChild?n.insertBefore(i,n.firstChild):n.appendChild(i)}if(e.lastRow>t.lastRow){var i=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);n.appendChild(i)}},this.$renderLinesFragment=function(e,t,n){var r=this.element.ownerDocument.createDocumentFragment(),s=t,o=this.session.getNextFoldLine(s),u=o?o.start.row:Infinity;for(;;){s>u&&(s=o.end.row+1,o=this.session.getNextFoldLine(s,o),u=o?o.start.row:Infinity);if(s>n)break;var a=i.createElement("div"),f=[];this.$renderLine(f,s,!1,s==u?o:!1),a.innerHTML=f.join("");if(this.$useLineGroups())a.className="ace_line_group",r.appendChild(a),a.style.height=e.lineHeight*this.session.getRowLength(s)+"px";else while(a.firstChild)r.appendChild(a.firstChild);s++}return r},this.update=function(e){this.config=e;var t=[],n=e.firstRow,r=e.lastRow,i=n,s=this.session.getNextFoldLine(i),o=s?s.start.row:Infinity;for(;;){i>o&&(i=s.end.row+1,s=this.session.getNextFoldLine(i,s),o=s?s.start.row:Infinity);if(i>r)break;this.$useLineGroups()&&t.push("<div class='ace_line_group' style='height:",e.lineHeight*this.session.getRowLength(i),"px'>"),this.$renderLine(t,i,!1,i==o?s:!1),this.$useLineGroups()&&t.push("</div>"),i++}this.element.innerHTML=t.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,n,r){var i=this,o=/\t|&|<|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]/g,u=function(e,n,r,o,u){if(n)return i.showInvisibles?"<span class='ace_invisible ace_invisible_space'>"+s.stringRepeat(i.SPACE_CHAR,e.length)+"</span>":e;if(e=="&")return"&#38;";if(e=="<")return"&#60;";if(e==" "){var a=i.session.getScreenTabSize(t+o);return t+=a-1,i.$tabStrings[a]}if(e=="\u3000"){var f=i.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",l=i.showInvisibles?i.SPACE_CHAR:"";return t+=1,"<span class='"+f+"' style='width:"+i.config.characterWidth*2+"px'>"+l+"</span>"}return r?"<span class='ace_invisible ace_invisible_space ace_invalid'>"+i.SPACE_CHAR+"</span>":(t+=1,"<span class='ace_cjk' style='width:"+i.config.characterWidth*2+"px'>"+e+"</span>")},a=r.replace(o,u);if(!this.$textToken[n.type]){var f="ace_"+n.type.replace(/\./g," ace_"),l="";n.type=="fold"&&(l=" style='width:"+n.value.length*this.config.characterWidth+"px;' "),e.push("<span class='",f,"'",l,">",a,"</span>")}else e.push(a);return t+r.length},this.renderIndentGuide=function(e,t,n){var r=t.search(this.$indentGuideRe);return r<=0||r>=n?t:t[0]==" "?(r-=r%this.tabSize,e.push(s.stringRepeat(this.$tabStrings[" "],r/this.tabSize)),t.substr(r)):t[0]==" "?(e.push(s.stringRepeat(this.$tabStrings[" "],r)),t.substr(r)):t},this.$renderWrappedLine=function(e,t,n,r){var i=0,s=0,o=n[0],u=0;for(var a=0;a<t.length;a++){var f=t[a],l=f.value;if(a==0&&this.displayIndentGuides){i=l.length,l=this.renderIndentGuide(e,l,o);if(!l)continue;i-=l.length}if(i+l.length<o)u=this.$renderToken(e,u,f,l),i+=l.length;else{while(i+l.length>=o)u=this.$renderToken(e,u,f,l.substring(0,o-i)),l=l.substring(o-i),i=o,r||e.push("</div>","<div class='ace_line' style='height:",this.config.lineHeight,"px'>"),s++,u=0,o=n[s]||Number.MAX_VALUE;l.length!=0&&(i+=l.length,u=this.$renderToken(e,u,f,l))}}},this.$renderSimpleLine=function(e,t){var n=0,r=t[0],i=r.value;this.displayIndentGuides&&(i=this.renderIndentGuide(e,i)),i&&(n=this.$renderToken(e,n,r,i));for(var s=1;s<t.length;s++)r=t[s],i=r.value,n=this.$renderToken(e,n,r,i)},this.$renderLine=function(e,t,n,r){!r&&r!=0&&(r=this.session.getFoldLine(t));if(r)var i=this.$getFoldLineTokens(t,r);else var i=this.session.getTokens(t);n||e.push("<div class='ace_line' style='height:",this.config.lineHeight*(this.$useLineGroups()?1:this.session.getRowLength(t)),"px'>");if(i.length){var s=this.session.getRowSplitData(t);s&&s.length?this.$renderWrappedLine(e,i,s,n):this.$renderSimpleLine(e,i)}this.showInvisibles&&(r&&(t=r.end.row),e.push("<span class='ace_invisible ace_invisible_eol'>",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"</span>")),n||e.push("</div>")},this.$getFoldLineTokens=function(e,t){function i(e,t,n){var i=0,s=0;while(s+e[i].value.length<t){s+=e[i].value.length,i++;if(i==e.length)return}if(s!=t){var o=e[i].value.substring(t-s);o.length>n-t&&(o=o.substring(0,n-t)),r.push({type:e[i].type,value:o}),s=t+o.length,i+=1}while(s<n&&i<e.length){var o=e[i].value;o.length+s>n?r.push({type:e[i].type,value:o.substring(0,n-s)}):r.push(e[i]),s+=o.length,i+=1}}var n=this.session,r=[],s=n.getTokens(e);return t.walk(function(e,t,o,u,a){e!=null?r.push({type:"fold",value:e}):(a&&(s=n.getTokens(t)),s.length&&i(s,u,o))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(a.prototype),t.Text=a}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../lib/dom"),i,s=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),i===undefined&&(i="opacity"in this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateVisibility.bind(this)};(function(){this.$updateVisibility=function(e){var t=this.cursors;for(var n=t.length;n--;)t[n].style.visibility=e?"":"hidden"},this.$updateOpacity=function(e){var t=this.cursors;for(var n=t.length;n--;)t[n].style.opacity=e?"":"0"},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e!=this.smoothBlinking&&!i&&(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.$updateCursors=(e?this.$updateOpacity:this.$updateVisibility).bind(this),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking"),e(!0);if(!this.isBlinking||!this.blinkInterval||!this.isVisible)return;this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e),r=this.$padding+n.column*this.config.characterWidth,i=(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:r,top:i}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,n=0,r=0;if(t===undefined||t.length===0)t=[{cursor:null}];for(var n=0,i=t.length;n<i;n++){var s=this.getPixelPosition(t[n].cursor,!0);if((s.top>e.height+e.offset||s.top<0)&&n>1)continue;var o=(this.cursors[r++]||this.addCursor()).style;this.drawCursor?this.drawCursor(o,s,e,t[n],this.session):(o.left=s.left+"px",o.top=s.top+"px",o.width=e.characterWidth+"px",o.height=e.lineHeight+"px")}while(this.cursors.length>r)this.removeCursor();var u=this.session.getOverwrite();this.$setOverwrite(u),this.$pixelPos=s,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(s.prototype),t.Cursor=s}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/event"),o=e("./lib/event_emitter").EventEmitter,u=function(e){this.element=i.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=i.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,s.addListener(this.element,"scroll",this.onScroll.bind(this)),s.addListener(this.element,"mousedown",s.preventDefault)};(function(){r.implement(this,o),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e}}).call(u.prototype);var a=function(e,t){u.call(this,e),this.scrollTop=0,t.$scrollbarWidth=this.width=i.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px"};r.inherits(a,u),function(){this.classSuffix="-v",this.onScroll=function(){this.skipEvent||(this.scrollTop=this.element.scrollTop,this._emit("scroll",{data:this.scrollTop})),this.skipEvent=!1},this.getWidth=function(){return this.isVisible?this.width:0},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=function(e){this.inner.style.height=e+"px"},this.setScrollHeight=function(e){this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=this.element.scrollTop=e)}}.call(a.prototype);var f=function(e,t){u.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};r.inherits(f,u),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(f.prototype),t.ScrollBar=a,t.ScrollBarV=a,t.ScrollBarH=f,t.VScrollBar=a,t.HScrollBar=f}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,n){"use strict";var r=e("./lib/event"),i=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){this.changes=this.changes|e;if(!this.pending&&this.changes){this.pending=!0;var t=this;r.nextFrame(function(){t.pending=!1;var e;while(e=t.changes)t.changes=0,t.onRender(e)},this.window)}}}).call(i.prototype),t.RenderLoop=i}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("../lib/useragent"),u=e("../lib/event_emitter").EventEmitter,a=0,f=t.FontMetrics=function(e,t){this.el=i.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),a||this.$testFractionalRect(),this.$measureNode.innerHTML=s.stringRepeat("X",a),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){r.implement(this,u),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var e=i.createElement("div");this.$setMeasureNodeStyles(e.style),e.style.width="0.2px",document.documentElement.appendChild(e);var t=e.getBoundingClientRect().width;t>0&&t<1?a=50:a=100,e.parentNode.removeChild(e)},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",o.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(){var e=this.$measureSizes();if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=setInterval(function(){e.checkForSizeChanges()},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&this.$pollSizeChangesTimer},this.$measureSizes=function(){if(a===50){var e=null;try{e=this.$measureNode.getBoundingClientRect()}catch(t){e={width:0,height:0}}var n={height:e.height,width:e.width/a}}else var n={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/a};return n.width===0||n.height===0?null:n},this.$measureCharWidth=function(e){this.$main.innerHTML=s.stringRepeat(e,a);var t=this.$main.getBoundingClientRect();return t.width/a},this.getCharacterWidth=function(e){var t=this.charSizes[e];return t===undefined&&(this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(f.prototype)}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/lib/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./config"),o=e("./lib/useragent"),u=e("./layer/gutter").Gutter,a=e("./layer/marker").Marker,f=e("./layer/text").Text,l=e("./layer/cursor").Cursor,c=e("./scrollbar").HScrollBar,h=e("./scrollbar").VScrollBar,p=e("./renderloop").RenderLoop,d=e("./layer/font_metrics").FontMetrics,v=e("./lib/event_emitter").EventEmitter,m='.ace_editor {position: relative;overflow: hidden;font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;direction: ltr;}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;min-width: 100%;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: \'\';background: rgba(250, 250, 250, 0.01);z-index: 1000;}.ace_dragging.ace_dark .ace_scroller:before{background: rgba(0, 0, 0, 0.01);}.ace_selecting, .ace_selecting * {cursor: text !important;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");}.ace_scrollbar {position: absolute;right: 0;bottom: 0;z-index: 6;}.ace_scrollbar-inner {position: absolute;cursor: text;left: 0;top: 0;}.ace_scrollbar-v{overflow-x: hidden;overflow-y: scroll;top: 0;}.ace_scrollbar-h {overflow-x: scroll;overflow-y: hidden;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;text-indent: -1em;-ms-user-select: text;-moz-user-select: text;-webkit-user-select: text;user-select: text;}.ace_text-input.ace_composition {background: inherit;color: inherit;z-index: 1000;opacity: 1;text-indent: 0;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;word-wrap: normal;white-space: pre;height: 100%;width: 100%;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;}.ace_text-layer {font: inherit !important;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;border-left: 2px solid}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_smooth-blinking .ace_cursor {-webkit-transition: opacity 0.18s;transition: opacity 0.18s;}.ace_editor.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;}.ace_line .ace_fold {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");}.ace_tooltip {background-color: #FFF;background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;max-width: 100%;padding: 3px 4px;position: fixed;z-index: 999999;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: default;white-space: pre;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;pointer-events: none;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0 -12px 0 1px;display: none;width: 11px;vertical-align: top;background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;cursor: pointer;}.ace_folding-enabled .ace_fold-widget {display: inline-block; }.ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");}.ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}.ace_dark .ace_fold-widget {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");}.ace_dark .ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {-webkit-transition: opacity 0.4s ease 0.05s;transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {-webkit-transition: opacity 0.05s ease 0.05s;transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}.ace_error-marker {background-color: rgba(255, 0, 0,0.2);position: absolute;z-index: 9;}.ace_highlight-marker {background-color: rgba(255, 255, 0,0.2);position: absolute;z-index: 8;}';i.importCssString(m,"ace_editor.css");var g=function(e,t){var n=this;this.container=e||i.createElement("div"),this.$keepTextAreaAtCursor=!o.isOldIE,i.addCssClass(this.container,"ace_editor"),this.setTheme(t),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new u(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new a(this.content);var r=this.$textLayer=new f(this.content);this.canvas=r.element,this.$markerFront=new a(this.content),this.$cursorLayer=new l(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new h(this.container,this),this.scrollBarH=new c(this.container,this),this.scrollBarV.addEventListener("scroll",function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new d(this.container,500),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener("changeCharacterSize",function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$loop=new p(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),s.resetOptions(this),s._emit("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,r.implement(this,v),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e);if(!e)return;this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode)},this.updateLines=function(e,t,n){t===undefined&&(t=Infinity),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRow<t&&(this.$changedLines.lastRow=t)):this.$changedLines={firstRow:e,lastRow:t};if(this.$changedLines.lastRow<this.layerConfig.firstRow){if(!n)return;this.$changedLines.lastRow=this.layerConfig.lastRow}if(this.$changedLines.firstRow>this.layerConfig.lastRow)return;this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar()},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,n,r){if(this.resizing>2)return;this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;r||(r=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var s=this.$updateCachedSize(e,t,n,r);if(!this.$size.scrollerHeight||!n&&!r)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(s|this.$changes,!0):this.$loop.schedule(s|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null},this.$updateCachedSize=function(e,t,n,r){r-=this.$extraHeight||0;var i=0,s=this.$size,o={width:s.width,height:s.height,scrollerHeight:s.scrollerHeight,scrollerWidth:s.scrollerWidth};r&&(e||s.height!=r)&&(s.height=r,i|=this.CHANGE_SIZE,s.scrollerHeight=s.height,this.$horizScroll&&(s.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",i|=this.CHANGE_SCROLL);if(n&&(e||s.width!=n)){i|=this.CHANGE_SIZE,s.width=n,t==null&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,this.scrollBarH.element.style.left=this.scroller.style.left=t+"px",s.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()),this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+"px",this.scroller.style.bottom=this.scrollBarH.getHeight()+"px";if(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)i|=this.CHANGE_FULL}return s.$dirty=!n||!r,i&&this._signal("resize",o),i},this.onGutterResize=function(){var e=this.$showGutter?this.$gutter.offsetWidth:0;e!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,e,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-this.$padding*2,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updateGutterLineHighlight=function(){var e=this.$cursorLayer.$pixelPos,t=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var n=this.session.selection.getCursor();n.column=0,e=this.$cursorLayer.getPixelPosition(n,!0),t*=this.session.getRowLength(n.row)}this.$gutterLineHighlight.style.top=e.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=t+"px"},this.$updatePrintMargin=function(){if(!this.$showPrintMargin&&!this.$printMarginEl)return;if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.content},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(!this.$keepTextAreaAtCursor)return;var e=this.layerConfig,t=this.$cursorLayer.$pixelPos.top,n=this.$cursorLayer.$pixelPos.left;t-=e.offset;var r=this.textarea.style,i=this.lineHeight;if(t<0||t>e.height-i){r.top=r.left="0";return}var s=this.characterWidth;if(this.$composition){var o=this.textarea.value.replace(/^\x01+/,"");s*=this.session.$getStringScreenWidth(o)[0]+2,i+=2}n-=this.scrollLeft,n>this.$size.scrollerWidth-s&&(n=this.$size.scrollerWidth-s),n+=this.gutterWidth,r.height=i+"px",r.width=s+"px",r.left=Math.min(n,this.$size.scrollerWidth-s)+"px",r.top=Math.min(t,this.$size.height-i)+"px"},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},this.getLastFullyVisibleRow=function(){var e=Math.floor((this.layerConfig.height+this.layerConfig.offset)/this.layerConfig.lineHeight);return this.layerConfig.firstRow-1+e},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,n,r){var i=this.scrollMargin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){this.$changes&&(e|=this.$changes,this.$changes=0);if(!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t){this.$changes|=e;return}if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender");var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){e|=this.$computeLayerConfig();if(n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var r=this.scrollTop+(n.firstRow-this.layerConfig.firstRow)*this.lineHeight;r>0&&(this.scrollTop=r,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-n.offset+"px",this.content.style.marginTop=-n.offset+"px",this.content.style.width=n.width+2*this.$padding+"px",this.content.style.height=n.minHeight+"px"}e&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+"px",this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left");if(e&this.CHANGE_FULL){this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this._signal("afterRender");return}if(e&this.CHANGE_SCROLL){e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),this._signal("afterRender");return}e&this.CHANGE_TEXT?(this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n):(e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(n),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender")},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.max((this.$minLines||1)*this.lineHeight,Math.min(t,e))+this.scrollMargin.v+(this.$extraHeight||0),r=e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||r!=this.$vScroll){r!=this.$vScroll&&(this.$vScroll=r,this.scrollBarV.setVisible(r));var i=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,i,n),this.desiredHeight=n,this._signal("autosize")}},this.$computeLayerConfig=function(){this.$maxLines&&this.lineHeight>1&&this.$autosize();var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,r=this.session.getScreenLength(),i=r*this.lineHeight,s=this.scrollTop%this.lineHeight,o=t.scrollerHeight+this.lineHeight,u=this.$getLongestLine(),a=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-u-2*this.$padding<0),f=this.$horizScroll!==a;f&&(this.$horizScroll=a,this.scrollBarH.setVisible(a));var l=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;i+=l,this.session.setScrollTop(Math.max(-this.scrollMargin.top,Math.min(this.scrollTop,i-t.scrollerHeight+this.scrollMargin.bottom))),this.session.setScrollLeft(Math.max(-this.scrollMargin.left,Math.min(this.scrollLeft,u+2*this.$padding-t.scrollerWidth+this.scrollMargin.right)));var c=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-i+l<0||this.scrollTop),h=this.$vScroll!==c;h&&(this.$vScroll=c,this.scrollBarV.setVisible(c));var p=Math.ceil(o/this.lineHeight)-1,d=Math.max(0,Math.round((this.scrollTop-s)/this.lineHeight)),v=d+p,m,g,y=this.lineHeight;d=e.screenToDocumentRow(d,0);var b=e.getFoldLine(d);b&&(d=b.start.row),m=e.documentToScreenRow(d,0),g=e.getRowLength(d)*y,v=Math.min(e.screenToDocumentRow(v,0),e.getLength()-1),o=t.scrollerHeight+e.getRowLength(v)*y+g,s=this.scrollTop-m*y;var w=0;this.layerConfig.width!=u&&(w=this.CHANGE_H_SCROLL);if(f||h)w=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),h&&(u=this.$getLongestLine());return this.layerConfig={width:u,padding:this.$padding,firstRow:d,firstRowScreen:m,lastRow:v,lineHeight:y,characterWidth:this.characterWidth,minHeight:o,maxHeight:i,offset:s,gutterOffset:Math.max(0,Math.ceil((s+t.height-t.scrollerHeight)/y)),height:this.$size.scrollerHeight},w},this.$updateLines=function(){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(e>n.lastRow+1)return;if(t<n.firstRow)return;if(t===Infinity){this.$showGutter&&this.$gutterLayer.update(n),this.$textLayer.update(n);return}return this.$textLayer.updateLines(n,e,t),!0},this.$getLongestLine=function(){var e=this.session.getScreenWidth();return this.showInvisibles&&!this.session.$useWrapMode&&(e+=1),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},this.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},this.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},this.hideCursor=function(){this.$cursorLayer.hideCursor()},this.showCursor=function(){this.$cursorLayer.showCursor()},this.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},this.scrollCursorIntoView=function(e,t,n){if(this.$size.scrollerHeight===0)return;var r=this.$cursorLayer.getPixelPosition(e),i=r.left,s=r.top,o=n&&n.top||0,u=n&&n.bottom||0,a=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;a+o>s?(t&&(s-=t*this.$size.scrollerHeight),s===0&&(s=-this.scrollMargin.top),this.session.setScrollTop(s)):a+this.$size.scrollerHeight-u<s+this.lineHeight&&(t&&(s+=t*this.$size.scrollerHeight),this.session.setScrollTop(s+this.lineHeight-this.$size.scrollerHeight));var f=this.scrollLeft;f>i?(i<this.$padding+2*this.layerConfig.characterWidth&&(i=-this.scrollMargin.left),this.session.setScrollLeft(i)):f+this.$size.scrollerWidth<i+this.characterWidth?this.session.setScrollLeft(Math.round(i+this.characterWidth-this.$size.scrollerWidth)):f<=this.$padding&&i-f<this.characterWidth&&this.session.setScrollLeft(0)},this.getScrollTop=function(){return this.session.getScrollTop()},this.getScrollLeft=function(){return this.session.getScrollLeft()},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(e){this.session.setScrollTop(e*this.lineHeight)},this.alignCursor=function(e,t){typeof e=="number"&&(e={row:e,column:0});var n=this.$cursorLayer.getPixelPosition(e),r=this.$size.scrollerHeight-this.lineHeight,i=n.top-r*(t||0);return this.session.setScrollTop(i),i},this.STEPS=8,this.$calcSteps=function(e,t){var n=0,r=this.STEPS,i=[],s=function(e,t,n){return n*(Math.pow(e-1,3)+1)+t};for(n=0;n<r;++n)i.push(s(n/this.STEPS,e,t-e));return i},this.scrollToLine=function(e,t,n,r){var i=this.$cursorLayer.getPixelPosition({row:e,column:0}),s=i.top;t&&(s-=this.$size.scrollerHeight/2);var o=this.scrollTop;this.session.setScrollTop(s),n!==!1&&this.animateScrolling(o,r)},this.animateScrolling=function(e,t){var n=this.scrollTop;if(!this.$animatedScroll)return;var r=this;if(e==n)return;if(this.$scrollAnimation){var i=this.$scrollAnimation.steps;if(i.length){e=i[0];if(e==n)return}}var s=r.$calcSteps(e,n);this.$scrollAnimation={from:e,to:n,steps:s},clearInterval(this.$timer),r.session.setScrollTop(s.shift()),r.session.$scrollTop=n,this.$timer=setInterval(function(){s.length?(r.session.setScrollTop(s.shift()),r.session.$scrollTop=n):n!=null?(r.session.$scrollTop=-1,r.session.setScrollTop(n),n=null):(r.$timer=clearInterval(r.$timer),r.$scrollAnimation=null,t&&t())},10)},this.scrollToY=function(e){this.scrollTop!==e&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=e)},this.scrollToX=function(e){this.scrollLeft!==e&&(this.scrollLeft=e),this.$loop.schedule(this.CHANGE_H_SCROLL)},this.scrollTo=function(e,t){this.session.setScrollTop(t),this.session.setScrollLeft(t)},this.scrollBy=function(e,t){t&&this.session.setScrollTop(this.session.getScrollTop()+t),e&&this.session.setScrollLeft(this.session.getScrollLeft()+e)},this.isScrollableBy=function(e,t){if(t<0&&this.session.getScrollTop()>=1-this.scrollMargin.top)return!0;if(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom)return!0;if(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left)return!0;if(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},this.pixelToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=(e+this.scrollLeft-n.left-this.$padding)/this.characterWidth,i=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),s=Math.round(r);return{row:i,column:s,side:r-s>0?1:-1}},this.screenToTextCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=Math.round((e+this.scrollLeft-n.left-this.$padding)/this.characterWidth),i=(t+this.scrollTop-n.top)/this.lineHeight;return this.session.screenToDocumentPosition(i,Math.max(r,0))},this.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=this.session.documentToScreenPosition(e,t),i=this.$padding+Math.round(r.column*this.characterWidth),s=r.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+s-this.scrollTop}},this.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(e){this.$moveTextAreaToCursor()},this.hideComposition=function(){if(!this.$composition)return;i.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null},this.setTheme=function(e,t){function o(r){if(n.$themeId!=e)return t&&t();if(!r.cssClass)return;i.importCssString(r.cssText,r.cssClass,n.container.ownerDocument),n.theme&&i.removeCssClass(n.container,n.theme.cssClass);var s="padding"in r?r.padding:"padding"in(n.theme||{})?4:n.$padding;n.$padding&&s!=n.$padding&&n.setPadding(s),n.$theme=r.cssClass,n.theme=r,i.addCssClass(n.container,r.cssClass),i.setCssClass(n.container,"ace_dark",r.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent("themeLoaded",{theme:r}),t&&t()}var n=this;this.$themeId=e,n._dispatchEvent("themeChange",{theme:e});if(!e||typeof e=="string"){var r=e||this.$options.theme.initialValue;s.loadModule(["theme",r],o)}else o(e)},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){i.setCssClass(this.container,e,t!==!1)},this.unsetStyle=function(e){i.removeCssClass(this.container,e)},this.setCursorStyle=function(e){this.scroller.style.cursor!=e&&(this.scroller.style.cursor=e)},this.setMouseCursor=function(e){this.scroller.style.cursor=e},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(g.prototype),s.defineOptions(g.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){typeof e=="number"&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e)},initialValue:!0},showLineNumbers:{set:function(e){this.$gutterLayer.setShowLineNumbers(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){if(!this.$gutterLineHighlight){this.$gutterLineHighlight=i.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",this.$gutter.appendChild(this.$gutterLineHighlight);return}this.$gutterLineHighlight.style.display=e?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(e){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){typeof e=="number"&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.updateFull()}},scrollPastEnd:{set:function(e){e=+e||0;if(this.$scrollPastEnd==e)return;this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0}}),t.VirtualRenderer=g}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/net"),s=e("../lib/event_emitter").EventEmitter,o=e("../config"),u=function(t,n,r,i){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl);if(o.get("packaged")||!e.toUrl)i=i||o.moduleUrl(n,"worker");else{var s=this.$normalizePath;i=i||s(e.toUrl("ace/worker/worker.js",null,"_"));var u={};t.forEach(function(t){u[t]=s(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}try{this.$worker=new Worker(i)}catch(a){if(!(a instanceof window.DOMException))throw a;var f=this.$workerBlob(i),l=window.URL||window.webkitURL,c=l.createObjectURL(f);this.$worker=new Worker(c),l.revokeObjectURL(c)}this.$worker.postMessage({init:!0,tlns:u,module:n,classname:r}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){r.implement(this,s),this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var r=this.callbackId++;this.callbacks[r]=n,t.push(r)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(n){console.error(n.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener)},this.changeListener=function(e){this.deltaQueue?this.deltaQueue.push(e.data):(this.deltaQueue=[e.data],setTimeout(this.$sendDeltaQueue,0))},this.$sendDeltaQueue=function(){var e=this.deltaQueue;if(!e)return;this.deltaQueue=null,e.length>20&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e})},this.$workerBlob=function(e){var t="importScripts('"+i.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(n){var r=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,s=new r;return s.append(t),s.getBlob("application/javascript")}}}).call(u.prototype);var a=function(e,t,n){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var r=null,i=!1,u=Object.create(s),a=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){a.messageBuffer.push(e),r&&(i?setTimeout(f):f())},this.setEmitSync=function(e){i=e};var f=function(){var e=a.messageBuffer.shift();e.command?r[e.command].apply(r,e.args):e.event&&u._signal(e.event,e.data)};u.postMessage=function(e){a.onMessage({data:e})},u.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},u.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},o.loadModule(["worker",t],function(e){r=new e[n](u);while(a.messageBuffer.length)f()})};a.prototype=u.prototype,t.UIWorkerClient=a,t.WorkerClient=u}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,n){"use strict";var r=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,s=e("./lib/oop"),o=function(e,t,n,r,i,s){var o=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=s,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=r,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=n;var u=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=u.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){s.implement(this,i),this.setup=function(){var e=this,t=this.doc,n=this.session,i=this.$pos;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(i.row,i.column),this.markerId=n.addMarker(new r(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.pos.on("change",function(t){n.removeMarker(e.markerId),e.markerId=n.addMarker(new r(t.value.row,t.value.column,t.value.row,t.value.column+e.length),e.mainClass,null,!1)}),this.others=[],this.$others.forEach(function(n){var r=t.createAnchor(n.row,n.column);e.others.push(r)}),n.setUndoSelect(!1)},this.showOtherMarkers=function(){if(this.othersActive)return;var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(n){n.markerId=e.addMarker(new r(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1),n.on("change",function(i){e.removeMarker(n.markerId),n.markerId=e.addMarker(new r(i.value.row,i.value.column,i.value.row,i.value.column+t.length),t.othersClass,null,!1)})})},this.hideOtherMarkers=function(){if(!this.othersActive)return;this.othersActive=!1;for(var e=0;e<this.others.length;e++)this.session.removeMarker(this.others[e].markerId)},this.onUpdate=function(e){var t=e.data,n=t.range;if(n.start.row!==n.end.row)return;if(n.start.row!==this.pos.row)return;if(this.$updating)return;this.$updating=!0;var i=t.action==="insertText"?n.end.column-n.start.column:n.start.column-n.end.column;if(n.start.column>=this.pos.column&&n.start.column<=this.pos.column+this.length+1){var s=n.start.column-this.pos.column;this.length+=i;if(!this.session.$fromUndo){if(t.action==="insertText")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};u.row===n.start.row&&n.start.column<u.column&&(a.column+=i),this.doc.insert(a,t.text)}else if(t.action==="removeText")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};u.row===n.start.row&&n.start.column<u.column&&(a.column+=i),this.doc.remove(new r(a.row,a.column,a.row,a.column-i))}n.start.column===this.pos.column&&t.action==="insertText"?setTimeout(function(){this.pos.setPosition(this.pos.row,this.pos.column-i);for(var e=0;e<this.others.length;e++){var t=this.others[e],r={row:t.row,column:t.column-i};t.row===n.start.row&&n.start.column<t.column&&(r.column+=i),t.setPosition(r.row,r.column)}}.bind(this),0):n.start.column===this.pos.column&&t.action==="removeText"&&setTimeout(function(){for(var e=0;e<this.others.length;e++){var t=this.others[e];t.row===n.start.row&&n.start.column<t.column&&t.setPosition(t.row,t.column-i)}}.bind(this),0)}this.pos._emit("change",{value:this.pos});for(var o=0;o<this.others.length;o++)this.others[o]._emit("change",{value:this.others[o]})}this.$updating=!1},this.onCursorChange=function(e){if(this.$updating||!this.session)return;var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))},this.detach=function(){this.session.removeMarker(this.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.pos.detach();for(var e=0;e<this.others.length;e++)this.others[e].detach();this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(this.$undoStackDepth===-1)throw Error("Canceling placeholders only supported with undo manager attached to session.");var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth;for(var n=0;n<t;n++)e.undo(!0);this.selectionBefore&&this.session.selection.fromJSON(this.selectionBefore)}}).call(o.prototype),t.PlaceHolder=o}),ace.define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){function s(e,t){return e.row==t.row&&e.column==t.column}function o(e){var t=e.domEvent,n=t.altKey,o=t.shiftKey,u=t.ctrlKey,a=e.getAccelKey(),f=e.getButton();u&&i.isMac&&(f=t.button);if(e.editor.inMultiSelectMode&&f==2){e.editor.textInput.onContextMenu(e.domEvent);return}if(!u&&!n&&!a){f===0&&e.editor.inMultiSelectMode&&e.editor.exitMultiSelectMode();return}if(f!==0)return;var l=e.editor,c=l.selection,h=l.inMultiSelectMode,p=e.getDocumentPosition(),d=c.getCursor(),v=e.inSelection()||c.isEmpty()&&s(p,d),m=e.x,g=e.y,y=function(e){m=e.clientX,g=e.clientY},b=l.session,w=l.renderer.pixelToScreenCoordinates(m,g),E=w,S;if(l.$mouseHandler.$enableJumpToDef)u&&n||a&&n?S="add":n&&(S="block");else if(a&&!n){S="add";if(!h&&o)return}else n&&(S="block");S&&i.isMac&&t.ctrlKey&&l.$mouseHandler.cancelContextMenu();if(S=="add"){if(!h&&v)return;if(!h){var x=c.toOrientedRange();l.addSelectionMarker(x)}var T=c.rangeList.rangeAtPoint(p);l.$blockScrolling++,l.inVirtualSelectionMode=!0,o&&(T=null,x=c.ranges[0],l.removeSelectionMarker(x)),l.once("mouseup",function(){var e=c.toOrientedRange();T&&e.isEmpty()&&s(T.cursor,e.cursor)?c.substractPoint(e.cursor):(o?c.substractPoint(x.cursor):x&&(l.removeSelectionMarker(x),c.addRange(x)),c.addRange(e)),l.$blockScrolling--,l.inVirtualSelectionMode=!1})}else if(S=="block"){e.stop(),l.inVirtualSelectionMode=!0;var N,C=[],k=function(){var e=l.renderer.pixelToScreenCoordinates(m,g),t=b.screenToDocumentPosition(e.row,e.column);if(s(E,e)&&s(t,c.lead))return;E=e,l.$blockScrolling++,l.selection.moveToPosition(t),l.renderer.scrollCursorIntoView(),l.removeSelectionMarkers(C),C=c.rectangularRangeBlock(E,w),l.$mouseHandler.$clickSelection&&C.length==1&&C[0].isEmpty()&&(C[0]=l.$mouseHandler.$clickSelection.clone()),C.forEach(l.addSelectionMarker,l),l.updateSelectionMarkers(),l.$blockScrolling--};l.$blockScrolling++,h&&!a?c.toSingleRange():!h&&a&&(N=c.toOrientedRange(),l.addSelectionMarker(N)),o?w=b.documentToScreenPosition(c.lead):c.moveToPosition(p),l.$blockScrolling--,E={row:-1,column:-1};var L=function(e){clearInterval(O),l.removeSelectionMarkers(C),C.length||(C=[c.toOrientedRange()]),l.$blockScrolling++,N&&(l.removeSelectionMarker(N),c.toSingleRange(N));for(var t=0;t<C.length;t++)c.addRange(C[t]);l.inVirtualSelectionMode=!1,l.$mouseHandler.$clickSelection=null,l.$blockScrolling--},A=k;r.capture(l.container,y,L);var O=setInterval(function(){A()},20);return e.preventDefault()}}var r=e("../lib/event"),i=e("../lib/useragent");t.onMouseDown=o}),ace.define("ace/commands/multi_select_commands",["require","exports","module","ace/keyboard/hash_handler"],function(e,t,n){t.defaultCommands=[{name:"addCursorAbove",exec:function(e){e.selectMoreLines(-1)},bindKey:{win:"Ctrl-Alt-Up",mac:"Ctrl-Alt-Up"},scrollIntoView:"cursor",readonly:!0},{name:"addCursorBelow",exec:function(e){e.selectMoreLines(1)},bindKey:{win:"Ctrl-Alt-Down",mac:"Ctrl-Alt-Down"},scrollIntoView:"cursor",readonly:!0},{name:"addCursorAboveSkipCurrent",exec:function(e){e.selectMoreLines(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Up",mac:"Ctrl-Alt-Shift-Up"},scrollIntoView:"cursor",readonly:!0},{name:"addCursorBelowSkipCurrent",exec:function(e){e.selectMoreLines(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Down",mac:"Ctrl-Alt-Shift-Down"},scrollIntoView:"cursor",readonly:!0},{name:"selectMoreBefore",exec:function(e){e.selectMore(-1)},bindKey:{win:"Ctrl-Alt-Left",mac:"Ctrl-Alt-Left"},scrollIntoView:"cursor",readonly:!0},{name:"selectMoreAfter",exec:function(e){e.selectMore(1)},bindKey:{win:"Ctrl-Alt-Right",mac:"Ctrl-Alt-Right"},scrollIntoView:"cursor",readonly:!0},{name:"selectNextBefore",exec:function(e){e.selectMore(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Left",mac:"Ctrl-Alt-Shift-Left"},scrollIntoView:"cursor",readonly:!0},{name:"selectNextAfter",exec:function(e){e.selectMore(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Right",mac:"Ctrl-Alt-Shift-Right"},scrollIntoView:"cursor",readonly:!0},{name:"splitIntoLines",exec:function(e){e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readonly:!0},{name:"alignCursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readonly:!0}],t.multiSelectCommands=[{name:"singleSelection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readonly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var r=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new r(t.multiSelectCommands)}),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(e,t,n){function h(e,t,n){return c.$options.wrap=!0,c.$options.needle=t,c.$options.backwards=n==-1,c.find(e)}function v(e,t){return e.row==t.row&&e.column==t.column}function m(e){if(e.$multiselectOnSessionChange)return;e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",o),e.commands.addCommands(f.defaultCommands),g(e)}function g(e){function r(t){n&&(e.renderer.setMouseCursor(""),n=!1)}var t=e.textInput.getElement(),n=!1;u.addListener(t,"keydown",function(t){t.keyCode==18&&!(t.ctrlKey||t.shiftKey||t.metaKey)?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&r()}),u.addListener(t,"keyup",r),u.addListener(t,"blur",r)}var r=e("./range_list").RangeList,i=e("./range").Range,s=e("./selection").Selection,o=e("./mouse/multi_select_handler").onMouseDown,u=e("./lib/event"),a=e("./lib/lang"),f=e("./commands/multi_select_commands");t.commands=f.defaultCommands.concat(f.multiSelectCommands);var l=e("./search").Search,c=new l,p=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(p.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(!e)return;if(!this.inMultiSelectMode&&this.rangeCount===0){var n=this.toOrientedRange();this.rangeList.add(n),this.rangeList.add(e);if(this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var r=this.rangeList.add(e);return this.$onAddRange(e),r.length&&this.$onRemoveRange(r),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length?this.$onRemoveRange(e):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var r=this.ranges.indexOf(e[n]);this.ranges.splice(r,1)}this._signal("removeRange",{ranges:e}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),t=t||this.ranges[0],t&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new r,this.ranges=[],this.rangeCount=0},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var n=this.getRange(),r=this.isBackwards(),s=n.start.row,o=n.end.row;if(s==o){if(r)var u=n.end,a=n.start;else var u=n.start,a=n.end;this.addRange(i.fromPoints(a,a)),this.addRange(i.fromPoints(u,u));return}var f=[],l=this.getLineRange(s,!0);l.start.column=n.start.column,f.push(l);for(var c=s+1;c<o;c++)f.push(this.getLineRange(c,!0));l=this.getLineRange(o,!0),l.end.column=n.end.column,f.push(l),f.forEach(this.addRange,this)}},this.toggleBlockSelection=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var r=this.session.documentToScreenPosition(this.selectionLead),s=this.session.documentToScreenPosition(this.selectionAnchor),o=this.rectangularRangeBlock(r,s);o.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var r=[],s=e.column<t.column;if(s)var o=e.column,u=t.column;else var o=t.column,u=e.column;var a=e.row<t.row;if(a)var f=e.row,l=t.row;else var f=t.row,l=e.row;o<0&&(o=0),f<0&&(f=0),f==l&&(n=!0);for(var c=f;c<=l;c++){var h=i.fromPoints(this.session.screenToDocumentPosition(c,o),this.session.screenToDocumentPosition(c,u));if(h.isEmpty()){if(p&&v(h.end,p))break;var p=h.end}h.cursor=s?h.start:h.end,r.push(h)}a&&r.reverse();if(!n){var d=r.length-1;while(r[d].isEmpty()&&d>0)d--;if(d>0){var m=0;while(r[m].isEmpty())m++}for(var g=d;g>=m;g--)r[g].isEmpty()&&r.splice(g,1)}return r}}.call(s.prototype);var d=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(!e.marker)return;this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);t!=-1&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.removeSelectionMarkers=function(e){var t=this.session.$selectionMarkers;for(var n=e.length;n--;){var r=e[n];if(!r.marker)continue;this.session.removeMarker(r.marker);var i=t.indexOf(r);i!=-1&&t.splice(i,1)}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){if(this.inMultiSelectMode)return;this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onSingleSelect=function(e){if(this.session.multiSelect.inVirtualMode)return;this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection")},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(!n.multiSelect)return;if(!t.multiSelectAction){var r=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}else t.multiSelectAction=="forEach"?r=n.forEachSelection(t,e.args):t.multiSelectAction=="forEachLine"?r=n.forEachSelection(t,e.args,!0):t.multiSelectAction=="single"?(n.exitMultiSelectMode(),r=t.exec(n,e.args||{})):r=t.multiSelectAction(n,e.args||{});return r},this.forEachSelection=function(e,t,n){if(this.inVirtualSelectionMode)return;var r=n&&n.keepOrder,i=n==1||n&&n.$byLines,o=this.session,u=this.selection,a=u.rangeList,f=(r?u:a).ranges,l;if(!f.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var c=u._eventRegistry;u._eventRegistry={};var h=new s(o);this.inVirtualSelectionMode=!0;for(var p=f.length;p--;){if(i)while(p>0&&f[p].start.row==f[p-1].end.row)p--;h.fromOrientedRange(f[p]),h.index=p,this.selection=o.selection=h;var d=e.exec?e.exec(this,t||{}):e(this,t||{});!l&&d!==undefined&&(l=d),h.toOrientedRange(f[p])}h.detach(),this.selection=o.selection=u,this.inVirtualSelectionMode=!1,u._eventRegistry=c,u.mergeOverlappingRanges();var v=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),v&&v.from==v.to&&this.renderer.animateScrolling(v.from),l},this.exitMultiSelectMode=function(){if(!this.inMultiSelectMode||this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var t=this.multiSelect.rangeList.ranges,n=[];for(var r=0;r<t.length;r++)n.push(this.session.getTextRange(t[r]));var i=this.session.getDocument().getNewLineCharacter();e=n.join(i),e.length==(n.length-1)*i.length&&(e="")}else this.selection.isEmpty()||(e=this.session.getTextRange(this.getSelectionRange()));return e},this.$checkMultiselectChange=function(e,t){if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var n=this.multiSelect.ranges[0];if(this.multiSelect.isEmpty()&&t==this.multiSelect.anchor)return;var r=t==this.multiSelect.anchor?n.cursor==n.start?n.end:n.start:n.cursor;(r.row!=t.row||this.session.$clipPositionToDocument(r.row,r.column).column!=t.column)&&this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange())}},this.findAll=function(e,t,n){t=t||{},t.needle=e||t.needle;if(t.needle==undefined){var r=this.selection.isEmpty()?this.selection.getWordRange():this.selection.getRange();t.needle=this.session.getTextRange(r)}this.$search.set(t);var i=this.$search.findAll(this.session);if(!i.length)return 0;this.$blockScrolling+=1;var s=this.multiSelect;n||s.toSingleRange(i[0]);for(var o=i.length;o--;)s.addRange(i[o],!0);return r&&s.rangeList.rangeAtPoint(r.start)&&s.addRange(r,!0),this.$blockScrolling-=1,i.length},this.selectMoreLines=function(e,t){var n=this.selection.toOrientedRange(),r=n.cursor==n.end,s=this.session.documentToScreenPosition(n.cursor);this.selection.$desiredColumn&&(s.column=this.selection.$desiredColumn);var o=this.session.screenToDocumentPosition(s.row+e,s.column);if(!n.isEmpty())var u=this.session.documentToScreenPosition(r?n.end:n.start),a=this.session.screenToDocumentPosition(u.row+e,u.column);else var a=o;if(r){var f=i.fromPoints(o,a);f.cursor=f.start}else{var f=i.fromPoints(a,o);f.cursor=f.end}f.desiredColumn=s.column;if(!this.selection.inMultiSelectMode)this.selection.addRange(n);else if(t)var l=n.cursor;this.selection.addRange(f),l&&this.selection.substractPoint(l)},this.transposeSelections=function(e){var t=this.session,n=t.multiSelect,r=n.ranges;for(var i=r.length;i--;){var s=r[i];if(s.isEmpty()){var o=t.getWordRange(s.start.row,s.start.column);s.start.row=o.start.row,s.start.column=o.start.column,s.end.row=o.end.row,s.end.column=o.end.column}}n.mergeOverlappingRanges();var u=[];for(var i=r.length;i--;){var s=r[i];u.unshift(t.getTextRange(s))}e<0?u.unshift(u.pop()):u.push(u.shift());for(var i=r.length;i--;){var s=r[i],o=s.clone();t.replace(s,u[i]),s.start.row=o.start.row,s.start.column=o.start.column}},this.selectMore=function(e,t,n){var r=this.session,i=r.multiSelect,s=i.toOrientedRange();if(s.isEmpty()){s=r.getWordRange(s.start.row,s.start.column),s.cursor=e==-1?s.start:s.end,this.multiSelect.addRange(s);if(n)return}var o=r.getTextRange(s),u=h(r,o,e);u&&(u.cursor=e==-1?u.start:u.end,this.$blockScrolling+=1,this.session.unfold(u),this.multiSelect.addRange(u),this.$blockScrolling-=1,this.renderer.scrollCursorIntoView(null,.5)),t&&this.multiSelect.substractPoint(s.cursor)},this.alignCursors=function(){var e=this.session,t=e.multiSelect,n=t.ranges,r=-1,s=n.filter(function(e){if(e.cursor.row==r)return!0;r=e.cursor.row});if(!n.length||s.length==n.length-1){var o=this.selection.getRange(),u=o.start.row,f=o.end.row,l=u==f;if(l){var c=this.session.getLength(),h;do h=this.session.getLine(f);while(/[=:]/.test(h)&&++f<c);do h=this.session.getLine(u);while(/[=:]/.test(h)&&--u>0);u<0&&(u=0),f>=c&&(f=c-1)}var p=this.session.doc.removeLines(u,f);p=this.$reAlignText(p,l),this.session.doc.insert({row:u,column:0},p.join("\n")+"\n"),l||(o.start.column=0,o.end.column=p[p.length-1].length),this.selection.setRange(o)}else{s.forEach(function(e){t.substractPoint(e.cursor)});var d=0,v=Infinity,m=n.map(function(t){var n=t.cursor,r=e.getLine(n.row),i=r.substr(n.column).search(/\S/g);return i==-1&&(i=0),n.column>d&&(d=n.column),i<v&&(v=i),i});n.forEach(function(t,n){var r=t.cursor,s=d-r.column,o=m[n]-v;s>o?e.insert(r,a.stringRepeat(" ",s-o)):e.remove(new i(r.row,r.column,r.row,r.column-s+o)),t.start.column=t.end.column=d,t.start.row=t.end.row=r.row,t.cursor=t.end}),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(e,t){function u(e){return a.stringRepeat(" ",e)}function f(e){return e[2]?u(i)+e[2]+u(s-e[2].length+o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function l(e){return e[2]?u(i+s-e[2].length)+e[2]+u(o," ")+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function c(e){return e[2]?u(i)+e[2]+u(o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var n=!0,r=!0,i,s,o;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?i==null?(i=t[1].length,s=t[2].length,o=t[3].length,t):(i+s+o!=t[1].length+t[2].length+t[3].length&&(r=!1),i!=t[1].length&&(n=!1),i>t[1].length&&(i=t[1].length),s<t[2].length&&(s=t[2].length),o>t[3].length&&(o=t[3].length),t):[e]}).map(t?f:n?r?l:f:c)}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=m,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){m(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",o)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",o))},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?"start":t=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(r)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,s=e.getLine(t),o=s.search(i);if(o==-1)return;var u=n||s.length,a=e.getLength(),f=t,l=t;while(++t<a){var c=e.getLine(t).search(i);if(c==-1)continue;if(c<=o)break;l=t}if(l>f){var h=e.getLine(l).length;return new r(f,u,l,h)}},this.openingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i+1},u=e.$findClosingBracket(t,o,s);if(!u)return;var a=e.foldWidgets[u.row];return a==null&&(a=e.getFoldWidget(u.row)),a=="start"&&u.row>o.row&&(u.row--,u.column=e.getLine(u.row).length),r.fromPoints(o,u)},this.closingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i},u=e.$findOpeningBracket(t,o);if(!u)return;return u.column++,o.column--,r.fromPoints(u,o)}}).call(i.prototype)}),ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;border-radius: 2px;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}),ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(e,t,n){"use strict";function o(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeEditor",this.$onChangeEditor)}var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./range").Range;(function(){this.getRowLength=function(e){var t;return this.lineWidgets?t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0:t=0,!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&(e+=t.rowCount)}),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach();if(this.editor==e)return;this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets))},this.detach=function(e){var t=this.editor;if(!t)return;this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var n=this.session.lineWidgets;n&&n.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})},this.updateOnChange=function(e){var t=this.session.lineWidgets;if(!t)return;var n=e.data,r=n.range,i=r.start.row,s=r.end.row-i;if(s!==0)if(n.action=="removeText"||n.action=="removeLines"){var o=t.splice(i+1,s);o.forEach(function(e){e&&this.removeLineWidget(e)},this),this.$updateRows()}else{var u=new Array(s);u.unshift(i,0),t.splice.apply(t,u),this.$updateRows()}},this.$updateRows=function(){var e=this.session.lineWidgets;if(!e)return;var t=!0;e.forEach(function(e,n){e&&(t=!1,e.row=n)}),t&&(this.session.lineWidgets=null)},this.addLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength())),this.session.lineWidgets[e.row]=e;var t=this.editor.renderer;return e.html&&!e.el&&(e.el=i.createElement("div"),e.el.innerHTML=e.html),e.el&&(i.addCssClass(e.el,"ace_lineWidgetContainer"),e.el.style.position="absolute",e.el.style.zIndex=5,t.container.appendChild(e.el),e._inDocument=!0),e.coverGutter||(e.el.style.zIndex=3),e.pixelHeight||(e.pixelHeight=e.el.offsetHeight),e.rowCount==null&&(e.rowCount=e.pixelHeight/t.layerConfig.lineHeight),this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,t),e},this.removeLineWidget=function(e){e._inDocument=!1,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el);if(e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(t){}this.session.lineWidgets&&(this.session.lineWidgets[e.row]=undefined),this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},this.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(e,t){var n=this.session._changedWidgets,r=t.layerConfig;if(!n||!n.length)return;var i=Infinity;for(var s=0;s<n.length;s++){var o=n[s];o._inDocument||(o._inDocument=!0,t.container.appendChild(o.el)),o.h=o.el.offsetHeight,o.fixedWidth||(o.w=o.el.offsetWidth,o.screenWidth=Math.ceil(o.w/r.characterWidth));var u=o.h/r.lineHeight;o.coverLine&&(u-=this.session.getRowLineCount(o.row),u<0&&(u=0)),o.rowCount!=u&&(o.rowCount=u,o.row<i&&(i=o.row))}i!=Infinity&&(this.session._emit("changeFold",{data:{start:{row:i}}}),this.session.lineWidgetWidth=null),this.session._changedWidgets=[]},this.renderWidgets=function(e,t){var n=t.layerConfig,r=this.session.lineWidgets;if(!r)return;var i=Math.min(this.firstRow,n.firstRow),s=Math.max(this.lastRow,n.lastRow,r.length);while(i>0&&!r[i])i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var o=i;o<=s;o++){var u=r[o];if(!u||!u.el)continue;u._inDocument||(u._inDocument=!0,t.container.appendChild(u.el));var a=t.$cursorLayer.getPixelPosition({row:o,column:0},!0).top;u.coverLine||(a+=n.lineHeight*this.session.getRowLineCount(u.row)),u.el.style.top=a-n.offset+"px";var f=u.coverGutter?0:t.gutterWidth;u.fixedWidth||(f-=t.scrollLeft),u.el.style.left=f+"px",u.fixedWidth?u.el.style.right=t.scrollBar.getWidth()+"px":u.el.style.right=""}}}).call(o.prototype),t.LineWidgets=o}),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(e,t,n){"use strict";function o(e,t,n){var r=0,i=e.length-1;while(r<=i){var s=r+i>>1,o=n(t,e[s]);if(o>0)r=s+1;else{if(!(o<0))return s;i=s-1}}return-(r+1)}function u(e,t,n){var r=e.getAnnotations().sort(s.comparePoints);if(!r.length)return;var i=o(r,{row:t,column:-1},s.comparePoints);i<0&&(i=-i-1),i>=r.length?i=n>0?0:r.length-1:i===0&&n<0&&(i=r.length-1);var u=r[i];if(!u||!n)return;if(u.row===t){do u=r[i+=n];while(u&&u.row===t);if(!u)return r.slice()}var a=[];t=u.row;do a[n<0?"unshift":"push"](u),u=r[i+=n];while(u&&u.row==t);return a.length&&a}var r=e("../line_widgets").LineWidgets,i=e("../lib/dom"),s=e("../range").Range;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new r(n),n.widgetManager.attach(e));var s=e.getCursorPosition(),o=s.row,a=n.lineWidgets&&n.lineWidgets[o];a?a.destroy():o-=t;var f=u(n,o,t),l;if(f){var c=f[0];s.column=(c.pos&&typeof c.column!="number"?c.pos.sc:c.column)||0,s.row=c.row,l=e.renderer.$gutterLayer.$annotations[s.row]}else{if(a)return;l={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(s.row),e.selection.moveToPosition(s);var h={row:s.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div")},p=h.el.appendChild(i.createElement("div")),d=h.el.appendChild(i.createElement("div"));d.className="error_widget_arrow "+l.className;var v=e.renderer.$cursorLayer.getPixelPosition(s).left;d.style.left=v+e.renderer.gutterWidth-5+"px",h.el.className="error_widget_wrapper",p.className="error_widget "+l.className,p.innerHTML=l.text.join("<br>"),p.appendChild(i.createElement("div"));var m=function(e,t,n){if(t===0&&(n==="esc"||n==="return"))return h.destroy(),{command:"null"}};h.destroy=function(){if(e.$mouseHandler.isMousePressed)return;e.keyBinding.removeKeyboardHandler(m),n.widgetManager.removeLineWidget(h),e.off("changeSelection",h.destroy),e.off("changeSession",h.destroy),e.off("mouseup",h.destroy),e.off("change",h.destroy)},e.keyBinding.addKeyboardHandler(m),e.on("changeSelection",h.destroy),e.on("changeSession",h.destroy),e.on("mouseup",h.destroy),e.on("change",h.destroy),e.session.widgetManager.addLineWidget(h),h.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:h.el.offsetHeight})},i.importCssString(" .error_widget_wrapper { background: inherit; color: inherit; border:none } .error_widget { border-top: solid 2px; border-bottom: solid 2px; margin: 5px 0; padding: 10px 40px; white-space: pre-wrap; } .error_widget.ace_error, .error_widget_arrow.ace_error{ border-color: #ff5a5a } .error_widget.ace_warning, .error_widget_arrow.ace_warning{ border-color: #F1D817 } .error_widget.ace_info, .error_widget_arrow.ace_info{ border-color: #5a5a5a } .error_widget.ace_ok, .error_widget_arrow.ace_ok{ border-color: #5aaa5a } .error_widget_arrow { position: absolute; border: solid 5px; border-top-color: transparent!important; border-right-color: transparent!important; border-left-color: transparent!important; top: -5px; }","")}),ace.define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/dom"),i=e("./lib/event"),s=e("./editor").Editor,o=e("./edit_session").EditSession,u=e("./undomanager").UndoManager,a=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.require=e,t.edit=function(e){if(typeof e=="string"){var n=e;e=document.getElementById(n);if(!e)throw new Error("ace.edit can't find div #"+n)}if(e&&e.env&&e.env.editor instanceof s)return e.env.editor;var o="";if(e&&/input|textarea/i.test(e.tagName)){var u=e;o=u.value,e=r.createElement("pre"),u.parentNode.replaceChild(e,u)}else o=r.getInnerText(e),e.innerHTML="";var f=t.createEditSession(o),l=new s(new a(e));l.setSession(f);var c={document:f,editor:l,onResize:l.resize.bind(l,null)};return u&&(c.textarea=u),i.addListener(window,"resize",c.onResize),l.on("destroy",function(){i.removeListener(window,"resize",c.onResize),c.editor.container.env=null}),l.container.env=l.env=c,l},t.createEditSession=function(e,t){var n=new o(e,t);return n.setUndoManager(new u),n},t.EditSession=o,t.UndoManager=u});
2
+ (function() {
3
+ ace.require(["ace/ace"], function(a) {
4
+ a && a.config.init(true);
5
+ if (!window.ace)
6
+ window.ace = a;
7
+ for (var key in a) if (a.hasOwnProperty(key))
8
+ window.ace[key] = a[key];
9
+ });
10
+ })();
11
+
assets/js/ace/mode-sql.js ADDED
@@ -0,0 +1 @@
 
1
+ ace.define("ace/mode/sql_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="select|insert|update|delete|from|where|and|or|group|by|order|limit|offset|having|as|case|when|else|end|type|left|right|join|on|outer|desc|asc|union",t="true|false|null",n="count|min|max|avg|sum|rank|now|coalesce",r=this.createKeywordMapper({"support.function":n,keyword:e,"constant.language":t},"identifier",!0);this.$rules={start:[{token:"comment",regex:"--.*$"},{token:"comment",start:"/\\*",end:"\\*/"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"paren.lparen",regex:"[\\(]"},{token:"paren.rparen",regex:"[\\)]"},{token:"text",regex:"\\s+"}]},this.normalizeRules()};r.inherits(s,i),t.SqlHighlightRules=s}),ace.define("ace/mode/sql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sql_highlight_rules","ace/range"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./sql_highlight_rules").SqlHighlightRules,o=e("../range").Range,u=function(){this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart="--",this.$id="ace/mode/sql"}.call(u.prototype),t.Mode=u})
assets/js/ace/theme-idle_fingers.js ADDED
@@ -0,0 +1 @@
 
1
+ ace.define("ace/theme/idle_fingers",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-idle-fingers",t.cssText=".ace-idle-fingers .ace_gutter {background: #3b3b3b;color: rgb(153,153,153)}.ace-idle-fingers .ace_print-margin {width: 1px;background: #3b3b3b}.ace-idle-fingers {background-color: #323232;color: #FFFFFF}.ace-idle-fingers .ace_cursor {color: #91FF00}.ace-idle-fingers .ace_marker-layer .ace_selection {background: rgba(90, 100, 126, 0.88)}.ace-idle-fingers.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #323232;border-radius: 2px}.ace-idle-fingers .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-idle-fingers .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404040}.ace-idle-fingers .ace_marker-layer .ace_active-line {background: #353637}.ace-idle-fingers .ace_gutter-active-line {background-color: #353637}.ace-idle-fingers .ace_marker-layer .ace_selected-word {border: 1px solid rgba(90, 100, 126, 0.88)}.ace-idle-fingers .ace_invisible {color: #404040}.ace-idle-fingers .ace_keyword,.ace-idle-fingers .ace_meta {color: #CC7833}.ace-idle-fingers .ace_constant,.ace-idle-fingers .ace_constant.ace_character,.ace-idle-fingers .ace_constant.ace_character.ace_escape,.ace-idle-fingers .ace_constant.ace_other,.ace-idle-fingers .ace_support.ace_constant {color: #6C99BB}.ace-idle-fingers .ace_invalid {color: #FFFFFF;background-color: #FF0000}.ace-idle-fingers .ace_fold {background-color: #CC7833;border-color: #FFFFFF}.ace-idle-fingers .ace_support.ace_function {color: #B83426}.ace-idle-fingers .ace_variable.ace_parameter {font-style: italic}.ace-idle-fingers .ace_string {color: #A5C261}.ace-idle-fingers .ace_string.ace_regexp {color: #CCCC33}.ace-idle-fingers .ace_comment {font-style: italic;color: #BC9458}.ace-idle-fingers .ace_meta.ace_tag {color: #FFE5BB}.ace-idle-fingers .ace_entity.ace_name {color: #FFC66D}.ace-idle-fingers .ace_collab.ace_user1 {color: #323232;background-color: #FFF980}.ace-idle-fingers .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMwMjLyZYiPj/8PAAreAwAI1+g0AAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
assets/js/colorpicker/bg.png ADDED
Binary file
assets/js/colorpicker/hue.png ADDED
Binary file
assets/js/colorpicker/jquery.modcoder.excolor.js ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * ExColor for jQuery, V. 1.2
3
+ * http://modcoder.org/
4
+ *
5
+ * Settings wizard http://modcoder.org/?ptab=jquery&item=excolor#wizard
6
+ *
7
+ * Copyright 2011, ModCoder
8
+ * Dual licensed under the MIT or GPL Version 2 licenses.
9
+ *
10
+ * Date: Thu May 12 21:36:33 2011
11
+ */
12
+
13
+ eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('H.57.58=J(C){O C=H.59({4f:0,4g:0,4h:0,3X:1E,4i:1F,3Y:1F,26:\'3s\',4j:\'3s\',2v:\'5a\',4k:1E,2g:1E,2w:4,3t:\'#5b\',4l:\'5c\',2X:1E,2Y:\'3s\',2Z:\'3Z\',30:\'3s\',40:\'12\',4m:\'12\',4n:J(){O a=\'\'}},C);2h P.5d(J(){O j=\'2i\',1X=\'2i\',2J=0,2x=0,2y=0,2z=0,31=0,14=0,4o=0,1s=0,S=0,2K=0,2A=0,1n=1,1o=1,1N=0,2j=0,1R=0,1S=0,1T=0,28=0,32=0,33=0,41=0,1d=P,34=H(P).1U(),2L=1F,1Y=0,1w=0,17=0,3u=1F,1x=\'\',1b=\'\',U=\'\',5e=0,1y=0;1X=H(\'5f\');35(O i=0;i<1X.29;i++){j=\'\'+H(1X[i]).5g(\'2a\');j=j.5h();j=j.4p(\'5i.5j.5k.5l\');I(j.29==2){U=j[0]}}O k=1t 2k();O l=1t 2k();O m=1t 2k();O n=1t 2k();O o=1t 2k();O p=1t 2k();O q=1t 2k();O t=1t 2k();k.2a=U+\'4q.1e\';l.2a=U+\'1N.1e\';m.2a=U+\'4r.2b\';n.2a=U+\'S.2b\';o.2a=U+\'42.2b\';p.2a=U+\'4s.2b\';q.2a=U+\'1O.1e\';t.2a=U+\'2M.1e\';1X=\'2i\';j=\'2i\';H(1d).2l(J(){1G(17);17=1p(J(){1w=1E},1h)}).2m(J(){1G(17);17=1p(J(){1w=1F},1h)});I(C.3X){H(1d).5m(\'<4t V="18:0;19:0 \'+H(1d).36()+\'X 0 0;1Z:37-38;T:12;M:12;2n-W:5n;"></4t>\')}O u=\'\',2o=\'\',3v=\'\',2g=\'\',2X=\'\';I(C.4k){u=\'-43-T-1P:3w;-3x-T-1P:3w;-3y-T-1P:3w;T-1P:3w;\';2o=\'-43-T-1P:2N;-3x-T-1P:2N;-3y-T-1P:2N;T-1P:2N;\';3v=\'-43-T-1P: 0 1Q 1Q 1Q;-3x-T-1P: 0 1Q 1Q 1Q;-3y-T-1P: 0 1Q 1Q 1Q;T-1P: 0 1Q 1Q 1Q;\'}I(C.2g){2g=\'44-2g:0 \'+C.2w+\'X \'+(C.2w*2)+\'X 0 \'+C.3t+\';-3y-44-2g:0 \'+C.2w+\'X \'+(C.2w*2)+\'X 0 \'+C.3t+\';-3x-44-2g:0 \'+C.2w+\'X \'+(C.2w*2)+\'X 0 \'+C.3t+\';\'}I(C.2X){2X=\'M-1I:0 0;M-Y:1q-Y;M-21:1c(\'+U+\'4s.2b);\'}O w=1t 2B(0,1,2,3,4,5,6,7,8,9);w[8]=8;w[46]=46;O y=1t 2B();y[\'0\']=1;y[\'1\']=1;y[\'2\']=1;y[\'3\']=1;y[\'4\']=1;y[\'5\']=1;y[\'6\']=1;y[\'7\']=1;y[\'8\']=1;y[\'9\']=1;y[\'A\']=1;y[\'B\']=1;y[\'C\']=1;y[\'D\']=1;y[\'E\']=1;y[\'F\']=1;y[\'a\']=1;y[\'b\']=1;y[\'c\']=1;y[\'d\']=1;y[\'e\']=1;y[\'f\']=1;O z=1t 2B();z[0]=\'5o 5p\';z[8]=\'5q\';z[5r]=\'3z v\';z[5s]=\'3z v\';z[5t]=\'3z c\';z[67]=\'3z c\';O A=\' \'+1a.5u();A=A.4p(\'.\');A=\'5v\'+A[1];O B=H(1d).3A().1U();H(1d).3A().4u(\'&5w;<1J 2c="5x" 4v="4v" 1i="\'+A+\'" 39="1K" V="1Z:12;3a:3B;Z:\'+(H(1d).36()-4)+\'X;W:\'+(H(1d).36()-4)+\'X;M:12;\'+2o+\'T:1u 1V \'+C.26+\';" />\');H(1d).5y().1L().5z(\'4w\'+A).N(\'1I\',\'3b\').N(\'5A\',\'45\').5B(\'1j\');1p(J(){O a=H(\'1j > .4w\'+A);H(1d).3A().1z(\'#\'+A).N(\'Z\',(H(a).36()-2)+\'X\');H(a).2d()},5C);1Y=H(1d).3A().1z(\'#\'+A).2l(J(){1G(17);17=1p(J(){1w=1E},50)}).2m(J(){1G(17);17=1p(J(){1w=1F},50)}).4x(J(){H(1d).4x()});I(C.3X){1p(J(){H(1Y).1L()},5D)}3C();J 3C(){1x=H.2p(H(1d).L()+\'\');1b=\'\';I(1x==\'\'){H(1Y).L(\'\').N(\'M\',\'1c(\'+U+\'2M.1e) Y\');H(14).1z(\'1J\').L(\'\')}1g{35(O i=0;i<1x.29;i++){I(1x.22(i)!=\'#\'&&(1x.22(i)+\'\')2O y){I(1b.29<6){1b+=1x.22(i)+\'\'}}}3c(1b.29){1k 0:1b=\'5E\'+1b;1f;1k 1:1b=\'4y\'+1b;1f;1k 2:1b=\'4z\'+1b;1f;1k 3:1b=\'4A\'+1b;1f;1k 4:1b=\'4B\'+1b;1f;1k 5:1b=\'0\'+1b;1f}1x=47(1b);1x=3D(1x[\'r\'],1x[\'g\'],1x[\'b\']);S=48-1a.1r(1x[\'h\']*1/3);I(S<0){S=0}I(S>1v){S=1v}1n=1x[\'s\'];1o=1x[\'v\'];H(1Y).N(\'M\',\'#\'+1b)}I(C.3Y){H(1d).N(\'T-1A\',\'#\'+1b)}};J 3d(){I(!2L){2h 1F}H(1N).2d();H(2A).2d();H(1y).2d();1w=1E;3c(C.40){1k\'4C\':H(14).4D({Z:\'3e\',W:\'3e\'},C.2v,J(){3f();H(14).2d()});1f;1k\'4E\':H(14).5F(C.2v,J(){3f();H(14).2d()});1f;1k\'4F\':H(14).49(C.2v,0,J(){3f();H(14).2d()});1f;4G:3f();H(14).2d();1f}2L=1F};J 3f(){I(3u){O a=\'#\'+3g(H(1R).L()*1,H(1S).L()*1,H(1T).L()*1);I(H.2p(H(1R).L())==\'\'&&H.2p(H(1S).L())==\'\'&&H.2p(H(1T).L())==\'\'){H(1Y).N(\'M\',\'1c(\'+U+\'2M.1e) Y\');H(1d).L(\'\')}1g{H(1Y).N(\'M\',a);I(C.3Y){H(1d).N(\'T-1A\',a)}H(1d).L(a)}3u=1F;C.4n()}};J 3E(){O a=3D(H(1R).L()*1,H(1S).L()*1,H(1T).L()*1);S=-1*(1a.1r(a[\'h\']*1/3)-48);I(S<0){S=0}I(S>1v){S=1v}1n=a[\'s\'];1o=a[\'v\'];H(1N).N(\'Q\',1s.Q+\'X\').N(\'10\',(1s.10+S)+\'X\');2C();3h();H(28).L(3g(H(1R).L()*1,H(1S).L()*1,H(1T).L()*1))};J 2P(){O a=1E,1l=\'\';1l=H.2p(H(28).L());3c(1l.29){1k 1:1l=\'4y\'+1l;1f;1k 2:1l=\'4z\'+1l;1f;1k 3:1l=\'4A\'+1l;1f;1k 4:1l=\'4B\'+1l;1f;1k 5:1l=\'0\'+1l;1f}I(1l.29>0){35(O i=0;i<1l.29;i++){I(!((1l.22(i)+\'\')2O y)){a=1F}}}I(a){I(1l==\'\'){S=1v;1n=0;1o=0}1g{O b=47(1l);H(1R).L(b[\'r\']);H(1S).L(b[\'g\']);H(1T).L(b[\'b\']);O b=3D(b[\'r\'],b[\'g\'],b[\'b\']);S=-1*(1a.1r(b[\'h\']*1/3)-48);I(S<0){S=0}I(S>1v){S=1v}1n=b[\'s\'];1o=b[\'v\']}H(1N).N(\'Q\',1s.Q+\'X\').N(\'10\',(1s.10+S)+\'X\');2C();3h();I(1l==\'\'){H(2j).N(\'M-21\',\'1c(\'+U+\'2M.1e)\').N(\'M-Y\',\'Y\');H(1Y).L(\'\').N(\'M\',\'1c(\'+U+\'2M.1e) Y\');H(1y).N(\'M\',\'1c(\'+U+\'1O.1e) -2D 0 1q-Y\');H(14).1z(\'1J\').L(\'\')}}};J 2E(){O a=2Q(-1*(S-1v)*3,1n,1o,\'4H\');H(1R).L(1a.1r(a[\'r\'])*1);H(1S).L(1a.1r(a[\'g\'])*1);H(1T).L(1a.1r(a[\'b\'])*1);H(28).L(3g(a[\'r\'],a[\'g\'],a[\'b\']))};J 2Q(a,b,c,d){O h=a/3F;O s=b/1h;O v=c/1h;O e=1t 2B();O f,2e,2q,3i,3j,2r,2s;I(s==0){e[\'r\']=v*1B;e[\'g\']=v*1B;e[\'b\']=v*1B}1g{f=h*6;2e=1a.5G(f);2q=v*(1-s);3i=v*(1-s*(f-2e));3j=v*(1-s*(1-(f-2e)));I(2e==0){2r=v;2s=3j;2F=2q}1g I(2e==1){2r=3i;2s=v;2F=2q}1g I(2e==2){2r=2q;2s=v;2F=3j}1g I(2e==3){2r=2q;2s=3i;2F=v}1g I(2e==4){2r=3j;2s=2q;2F=v}1g{2r=v;2s=2q;2F=3i};e[\'r\']=1a.1r(2r*1B);e[\'g\']=1a.1r(2s*1B);e[\'b\']=1a.1r(2F*1B)}I(d==\'3k\'){2h 3g(e[\'r\'],e[\'g\'],e[\'b\'])}1g I(d==\'4H\'){2h(e)}1g{2h(e)}};J 47(h){O a=1t 4a();a=h;a.4I();h=a;O i,x=\'5H\',c=\'\';O b=1t 2B();I(h){h=h.4I();35(i=0;i<6;i+=2){3c(i){1k 0:b[\'r\']=(16*x.2R(h.22(i))+x.2R(h.22(i+1)))*1;1f;1k 2:b[\'g\']=(16*x.2R(h.22(i))+x.2R(h.22(i+1)))*1;1f;1k 4:b[\'b\']=(16*x.2R(h.22(i))+x.2R(h.22(i+1)))*1;1f}}}2h b};J 3D(a,c,d){O e=0,2f=0,2S=0,h=0,s=0,b=0;O f=1t 2B();h=0.0;e=1a.4J(1a.4J(a,c),d);2f=1a.4K(1a.4K(a,c),d);2S=(2f-e);b=2f;I(2f!=0.0){s=1B.0*2S/2f}1g{s=0.0}I(s!=0.0){I(a==2f){h=(c-d)/2S}1g{I(c==2f){h=2.0+(d-a)/2S}1g{I(d==2f){h=4.0+(a-c)/2S}}}}1g{h=-1.0}h=h*60;I(h<0.0){h=h+3F.0}f[\'h\']=1a.1r(h);f[\'s\']=1a.1r(s*1h/1B);f[\'v\']=1a.1r(b*1h/1B);I(f[\'h\']>3F){f[\'h\']=3F}I(f[\'s\']>1h){f[\'s\']=1h}I(f[\'v\']>1h){f[\'v\']=1h}2h f};J 3g(r,g,b){O a=1t 2B();a[0]=r;a[1]=g;a[2]=b;O c=[\'0\',\'1\',\'2\',\'3\',\'4\',\'5\',\'6\',\'7\',\'8\',\'9\',\'a\',\'b\',\'c\',\'d\',\'e\',\'f\'];O d=\'\';35(O i=0;i<a.29;i++){4b=4L(a[i]);d+=c[4L(4b/16)]+c[4b%16]}2h d};J 2C(){H(1N).N(\'Q\',1s.Q+\'X\').N(\'10\',(1s.10+S)+\'X\');H(2A).N(\'Q\',(1C.Q+1a.1r(1n*1.3)-4)+\'X\').N(\'10\',(1C.10+H(2K).W()-4-1a.1r(1o*1.3))+\'X\')};J 3h(){H(2K).N(\'M-1A\',\'#\'+2Q(-1*(S-1v)*3,1h,1h,\'3k\'));H(2j).N(\'M-1A\',\'#\'+2Q(-1*(S-1v)*3,1n,1o,\'3k\')).N(\'M-21\',\'12\');H(1y).N(\'M\',\'1c(\'+U+\'1O.1e) 0 0 1q-Y\')};1p(J(){34=H(1d).1U()},5I);J 4M(){O b=-1*C.4f*20,2T=C.4m,3G,2U;I(3H(2T*1)){3G=2U=\'\'}1g{2T=2T*1;3G=\'z-4N:\'+2T+\';\';2U=\'z-4N:\'+(2T+1)+\';\'}O c=\'<K 1i="5J" V="Z:5K;W:5L;1D:Q;M:12;T:1u 1V \'+C.26+\';18:0;19:0;\'+u+\'"><K 1i="4O" V="Z:5M;W:5N;T:1u 1V 3Z;1D:Q;19:0;18:0;\'+u+\'"></K></K>\';3C();H(\'1j\').4u(\'<K V="1Z:12;\'+3G+\'Z:4P;W:4Q;1I:3b;4R:45;19:0;18:0;\'+3v+2g+\'" 1i="3I" 1i="5O"><K 1i="5P" V="W:3J;Z:5Q;18:0;19:1M 5R 1M 1M;1D:Q;4R:45;M-1A:\'+C.4l+\';T:1u 1V \'+C.26+\';\'+2X+3v+\'"><K 1i="5S" V="Z:3J;W:3J;1D:Q;M:12;19:0;18:0;T:12;"><K 1i="4S" V="Z:4T;W:4T;T:5T 1V \'+C.4j+\';19:0;18:0;\'+u+\'"><K V="Z:3K;W:3K;1D:Q;M-21:1c(\'+U+\'4r.2b);M-1I:0 0;M-Y:1q-Y;T:1u 1V 3Z;19:0;18:0;"></K></K></K><K 1i="5U" V="Z:2D;W:3K;1D:Q;19:2G 5V 3e 1M;18:0;T:12;"><K 1i="4U" V="Z:2D;W:3K;1D:Q;M:1c(\'+U+\'S.2b) \'+b+\'X 0 1q-Y;18:0;19:0;T:12;"></K></K><K 1i="5W" V="1D:Q;1m-1H:1M;1m-3l: 3m, 3n, 3o, 3p-3q;Z:4V;W:3J;18:0;19:0;T:12;">\'+c+\'<K 2c="3L" V="1D:Q;19:4W 0 0 0;18:0;T:12;"><b V="1Z:37-38;Z:23;1K-2t:Q;1m-1H:1M;1m-3l: 3m, 3n, 3o, 3p-3q;1m-3M:3N;1A:\'+C.30+\';2n-W:23;">R</b><1J V="2n-W:23;19:1u 0;18:0;1A:\'+C.2Y+\';T:1u 1V \'+C.26+\';M:\'+C.2Z+\';Z:3O;1m-1H:1M;1K-2t:3P;\'+2o+\'" 1i="4X" 2c="3r 2V" 39="1K" 1H="3" 3Q="3" /></K><K 2c="3L" V="1D:Q;19:2N 0 0 0;18:0;T:12;"><b V="1Z:37-38;Z:23;1K-2t:Q;1m-1H:1M;1m-3l: 3m, 3n, 3o, 3p-3q;1m-3M:3N;1A:\'+C.30+\';2n-W:23;">G</b><1J V="2n-W:23;19:1u 0;18:0;1A:\'+C.2Y+\';T:1u 1V \'+C.26+\';M:\'+C.2Z+\';Z:3O;1m-1H:1M;1K-2t:3P;\'+2o+\'" 1i="4Y" 2c="3r 2V" 39="1K" 1H="3" 3Q="3" /></K><K 2c="3L" V="1D:Q;19:2N 0 0 0;18:0;T:12;"><b V="1Z:37-38;Z:23;1K-2t:Q;1m-1H:1M;1m-3l: 3m, 3n, 3o, 3p-3q;1m-3M:3N;1A:\'+C.30+\';2n-W:23;">B</b><1J V="19:1u 0;18:0;1A:\'+C.2Y+\';T:1u 1V \'+C.26+\';M:\'+C.2Z+\';Z:3O;1m-1H:1M;1K-2t:3P;\'+2o+\'" 1i="4Z" 2c="3r 2V" 39="1K" 1H="3" 3Q="3" /></K><K 2c="3L" V="1D:Q;19:4W 0;18:0;T:12;"><b V="1Z:37-38;Z:23;1K-2t:Q;1m-1H:1M;1m-3l: 3m, 3n, 3o, 3p-3q;1m-3M:3N;1A:\'+C.30+\';2n-W:23;">#</b><1J V="19:1u 0;18:0;1A:\'+C.2Y+\';T:1u 1V \'+C.26+\';M:\'+C.2Z+\';Z:3O;1m-1H:1M;1K-2t:3P;\'+2o+\'" 1i="51" 2c="3r" 39="1K" 1H="6" 3Q="6" /></K><K V="Z:4V;W:2G;19:0;18:0;T:12;1D:Q;"><K 1i="52" V="18:0;19:0;Z:3R;W:2G;1D:Q;3a:3B;M-21:1c(\'+U+\'42.2b);M-1I: 0 0;M-Y:1q-Y;"></K><K 1i="53" V="18:0;19:0;Z:2G;W:2G;1D:5X;3a:3B;M-21:1c(\'+U+\'42.2b);M-1I: -3R 0;M-Y:1q-Y;"></K></K></K></K></K><K V="1Z:12;\'+2U+\'Z:4c;W:4c;1I:3b;M: 1c(\'+U+\'4q.1e) \'+(-1*C.4h*11)+\'X 0 1q-Y;18:0;19:0;T:12;" 1i="2H"></K><K V="1Z:12;\'+2U+\'Z:2D;W:4c;1I:3b;M: 1c(\'+U+\'1N.1e) \'+(-1*C.4g*20)+\'X 0 1q-Y;18:0;19:0;T:12;3a:n-5Y;" 1i="2I"></K><K 1i="4d" V="T:1u 1V \'+C.26+\';1Z:12;\'+2U+\'19:0;18:0;1m-1H:1u;2n-W:1u;Z:2D;W:5Z;M:1c(\'+U+\'1O.1e) 0 0 1q-Y;1I:3b;3a:3B;\'+2o+\'"></K>\');34=H(1d).1U();14=H(\'1j > K#3I\').N(\'Q\',34.Q+\'X\').N(\'10\',(34.10+H(1d).36())+\'X\').2l(J(){1G(17);17=1p(J(){1w=1E},50)}).2m(J(){1G(17);17=1p(J(){1w=1F},50)});28=H(14).1z(\'1J#51\');1y=H(\'1j > K#4d\');1N=H(\'1j > K#2I\');2A=H(\'1j > K#2H\');3c(C.40){1k\'4C\':H(14).N(\'Z\',\'3e\').N(\'W\',\'3e\').1L().4D({Z:\'4P\',W:\'4Q\'},C.2v,J(){H(P).1L();H(\'1j > K#2I, 1j > K#2H\').1L();H(1y).1L()});1f;1k\'4E\':H(14).61(C.2v,J(){H(P).1L();H(\'1j > K#2I, 1j > K#2H\').1L();H(1y).1L()});1f;1k\'4F\':H(\'1j > K#3I, 1j > K#2I, 1j > K#2H, 1j > K#4d\').49(1,0,J(){H(P).1L().49(C.2v,1)});1f;4G:H(14).1L();H(1y).1L();H(\'1j > K#2I, 1j > K#2H\').1L();1f}31=H(14).1z(\'K#4U\');2K=H(14).1z(\'K#4S K\');2j=H(14).1z(\'#4O\');1R=H(14).1z(\'1J#4X\');1S=H(14).1z(\'1J#4Y\');1T=H(14).1z(\'1J#4Z\');33=H(14).1z(\'#52\');41=H(14).1z(\'#53\');4o=H(14).1U();1C=H(2K).1U();1s=H(31).1U();H(1y).1W(J(){I(H.2p(H(1R).L())==\'\'&&H.2p(H(1S).L())==\'\'&&H.2p(H(1T).L())==\'\'){H(2j).N(\'M-21\',\'12\');H(P).N(\'M\',\'1c(\'+U+\'1O.1e) 0 0 1q-Y\');2E()}1g{H(2j).N(\'M-21\',\'1c(\'+U+\'2M.1e)\').N(\'M-Y\',\'Y\');H(14).1z(\'1J\').L(\'\');H(P).N(\'M\',\'1c(\'+U+\'1O.1e) -2D 0 1q-Y\')}}).N(\'Q\',(1s.Q-1)+\'X\').N(\'10\',(1s.10-15)+\'X\').2l(J(){1G(17);17=1p(J(){1w=1E},50)}).2m(J(){1G(17);17=1p(J(){1w=1F},50)});H(1N).2l(J(){1G(17);17=1p(J(){1w=1E},50)}).2m(J(){1G(17);17=1p(J(){1w=1F},50)});H(2A).2l(J(){1G(17);17=1p(J(){1w=1E},50)}).2m(J(){1G(17);17=1p(J(){1w=1F},50)}).62(J(e){H(33).1W()});H(2A).3S(J(e){2y=H(P).1U();2J=e.2W-2y.Q;2x=e.24-2y.10;j=P;H(1y).N(\'M\',\'1c(\'+U+\'1O.1e) 0 0 1q-Y\');e.25()}).1W(J(e){});H(1N).3S(J(e){2z=H(P).1U();2J=e.2W-2z.Q;2x=e.24-2z.10;1X=P;H(1y).N(\'M\',\'1c(\'+U+\'1O.1e) 0 0 1q-Y\');e.25()});H(31).3S(J(e){I(e.24>=(1s.10+5)&&e.24<=((1s.10+H(31).W())-6)){S=e.24-1s.10-5;I(S<0)S=0;I(S>1v)S=1v;H(1y).N(\'M\',\'1c(\'+U+\'1O.1e) 0 0 1q-Y\');2C();3h();2E();2z=H(1N).1U();2J=e.2W-2z.Q;2x=e.24-2z.10;1X=1N;e.25()}});H(2K).3S(J(e){1n=1a.1r((e.2W-1C.Q-1)/1.3);I(1n>1h){1n=1h}I(1n<1){1n=1}1o=-1*(1a.1r((e.24-1C.10-1)/1.3)-1h);I(1o>1h){1o=1h}I(1o<1){1o=1}H(1y).N(\'M\',\'1c(\'+U+\'1O.1e) 0 0 1q-Y\');2C();H(2j).N(\'M-1A\',\'#\'+2Q(-1*(S-1v)*3,1n,1o,\'3k\')).N(\'M-21\',\'12\');2E();j=2A;2y=H(j).1U();2J=e.2W-2y.Q;2x=e.24-2y.10;e.25()});H(14).1z(\'1J.3r\').63(J(a){I(H(P).4e(\'2V\')){I(!((4a.54(a.3T)*1)2O w)&&!(a.3T 2O z)){a.25()}}1g{I(!(4a.54(a.3T)2O y)&&!(a.3T 2O z)){a.25()}}}).64(J(){I(H(P).4e(\'2V\')){I(H(P).L()==\'\'){H(P).L(\'0\')}I(3H(H(P).L()*1)){H(P).L(\'0\')}I(H(P).L()*1>1B){H(P).L(\'1B\')}I(H(P).L()*1<0){H(P).L(\'0\')}3E()}1g{2P()}}).55(J(){I(H(P).4e(\'2V\')){I(H(P).L()==\'\'){H(P).L(\'0\')}I(3H(H(P).L()*1)){H(P).L(\'0\')}I(H(P).L()*1>1B){H(P).L(\'1B\')}I(H(P).L()*1<0){H(P).L(\'0\')}3E()}1g{2P()}});28[0].3U=28[0].3V=J(e){1G(32);32=1p(J(){2P()},1h)};1R[0].3U=1R[0].3V=1S[0].3U=1S[0].3V=1T[0].3U=1T[0].3V=J(e){I(H(P).L()==\'\'){H(P).L(\'0\')}I(3H(H(P).L()*1)){H(P).L(\'0\')}I(H(P).L()*1>1B){H(P).L(\'1B\')}I(H(P).L()*1<0){H(P).L(\'0\')}1G(32);32=1p(J(){3E()},1h)};H(33).1W(J(){3u=1E;3d()}).2l(J(){H(P).N(\'M-1I\',\'0 -2G\')}).2m(J(){H(P).N(\'M-1I\',\'0 0\')});H(41).1W(J(){3d()}).2l(J(){H(P).N(\'M-1I\',\'-3R -2G\')}).2m(J(){H(P).N(\'M-1I\',\'-3R 0\')});2C();H(28).L(1b);2P();2L=1E;I(1b==\'\'){H(1y).N(\'M\',\'1c(\'+U+\'1O.1e) -2D 0 1q-Y\')}1g{H(1y).N(\'M\',\'1c(\'+U+\'1O.1e) 0 0 1q-Y\')}};H(65).66(J(e){j=\'2i\';1X=\'2i\'}).68(J(e){I(j!=\'2i\'){e.25();O a=0,2u=0;a=e.2W-2J;I(a<(1C.Q-4)){a=1C.Q-4}I(a>(1C.Q+3W)){a=1C.Q+3W}2u=e.24-2x;I(2u<(1C.10-4)){2u=1C.10-4}I(2u>(1C.10+3W)){2u=1C.10+3W}H(j).N(\'Q\',a+\'X\').N(\'10\',2u+\'X\');1o=-1*(1a.1r((2u-1C.10+5)/1.3)-1h)+1;1n=1a.1r((a-1C.Q+5)/1.3);I(1o==1){1o=0}I(1n==1){1n=0}H(2j).N(\'M-1A\',\'#\'+2Q(-1*(S-1v)*3,1n,1o,\'3k\')).N(\'M-21\',\'12\');2E()}I(1X!=\'2i\'){e.25();S=e.24-1s.10-2x;I(S<0){S=0}I(S>1v){S=1v}H(1X).N(\'Q\',1s.Q+\'X\').N(\'10\',(1s.10+S)+\'X\');3h();2E()}}).69(J(a){I(a.56==\'27\'){a.25();3d()}I(a.56==\'13\'){a.25();H(33).1W()}}).1W(J(){I(!1w){3d()}});H(1d).1W(J(){I(!2L){H(\'1j > K#2I, 1j > K#2H, 1j > K#3I\').6a().2d();1p(J(){4M()},50)}}).55(J(){I(2L){3C();2E();2C();H(28).L(1b);2P()}});H(1Y).1W(J(){H(1d).1W()});I(C.4i){H(1Y).1W()}})};',62,383,'|||||||||||||||||||||||||||||||||||||||||||jQuery|if|function|div|val|background|css|var|this|left||hue|border|root_path|style|height|px|repeat|width|top||none||wrapper|||click_to|margin|padding|Math|inputhex|url|aitem|gif|break|else|100|id|body|case|hexistr|font|saturation|brightness|setTimeout|no|round|pos_huebox|new|1px|119|click_flag|parsex|switcher|find|color|255|pos_sbbox|float|true|false|clearTimeout|size|position|input|text|show|10px|slider|transp0|radius|7px|inp_r|inp_g|inp_b|offset|solid|click|moved_slider|isample|display||image|charAt|13px|pageY|preventDefault|border_color||inp_hex|length|src|png|class|remove|var_i|maxrgb|shadow|return|mel|colsample|Image|mouseenter|mouseleave|line|rad3px|trim|var_1|var_r|var_g|align|tty|anim_speed|shadow_size|correct_y|pos_sel|pos_slider|sb_sel|Array|init_positions|20px|update_inputs|var_b|15px|modcoder_picker|modcoder_slider|correct_x|sbbox|opened|transp|3px|in|hex_valid_and_draw|hsb2rgb_hex|indexOf|delta|cz_index|zindex2|modcoder_rgb|pageX|backlight|input_text_color|input_background_color|label_color|huebox|hexto|ok_but|aitem_pos|for|outerHeight|inline|block|type|cursor|absolute|switch|action_exit|0px|action_ok|rgb2hex|init_colors|var_2|var_3|hex|family|Verdana|Arial|Helvetica|Sans|serif|modcoder_input|black|shadow_color|userok|radwrap|5px|moz|webkit|ctrl|parent|pointer|init_color|rgb2hsv|draw_rgb|360|zindex1|isNaN|modcoder_colorpicker|140px|130px|modcoder_dataitem|weight|bold|49px|center|maxlength|47px|mousedown|which|onpaste|oninput|125|color_box|show_color_on_border|white|effect|close_but|ok|khtml|box|hidden||hex2rgb|120|fadeTo|String|dec|11px|modcoder_switcher|hasClass|hue_bar|hue_slider|sb_slider|demo_mode|sb_border_color|round_corners|background_color|z_index|callback_on_ok|pos_wrap|split|sel|bg|shbg|span|append|readonly|mds|focus|00000|0000|000|00|zoom|animate|slide|fade|default|rgb|toUpperCase|min|max|parseInt|run_modcoder_colorpicker|index|modcoder_sample|265px|162px|overflow|modcoder_grad|132px|modcoder_hue|66px|6px|modcoder_r|modcoder_g|modcoder_b||modcoder_hex|modcoder_ok|modcoder_close|fromCharCode|keyup|keyCode|fn|modcoder_excolor|extend|slow|8a8a8a|silver|each|looper|script|attr|toLowerCase|jquery|modcoder|excolor|js|wrap|auto|system|keys|backspace|118|86|99|random|mc|nbsp|modcoder_excolor_clrbox|clone|addClass|visibility|appendTo|300|150|000000|slideUp|floor|0123456789ABCDEF|200|modcoder_sample_wrapper|62px|30px|60px|28px|modcoder_colorpicker_class|modcoder_colorpicker_wrapper|244px|9px|modcoder_grad_wrap|4px|modcoder_hue_wrap|8px|modcoder_data|right|resize|12px||slideDown|dblclick|keypress|change|document|mouseup||mousemove|keydown|stop'.split('|'),0,{}))
assets/js/colorpicker/ok.png ADDED
Binary file
assets/js/colorpicker/sel.gif ADDED
Binary file
assets/js/colorpicker/shbg.png ADDED
Binary file
assets/js/colorpicker/slider.gif ADDED
Binary file
assets/js/colorpicker/transp.gif ADDED
Binary file
assets/js/colorpicker/transp0.gif ADDED
Binary file
assets/js/datepicker/legacy.js ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Legacy browser support
3
+ */
4
+ [].map||(Array.prototype.map=function(a,b){for(var c=this,d=c.length,e=new Array(d),f=0;d>f;f++)f in c&&(e[f]=a.call(b,c[f],f,c));return e}),[].filter||(Array.prototype.filter=function(a){if(null==this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=[],e=arguments[1],f=0;c>f;f++)if(f in b){var g=b[f];a.call(e,g,f,b)&&d.push(g)}return d}),[].indexOf||(Array.prototype.indexOf=function(a){if(null==this)throw new TypeError;var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=0;if(arguments.length>1&&(d=Number(arguments[1]),d!=d?d=0:0!==d&&1/0!=d&&d!=-1/0&&(d=(d>0||-1)*Math.floor(Math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:Math.max(c-Math.abs(d),0);c>e;e++)if(e in b&&b[e]===a)return e;return-1});/*!
5
+ * Cross-Browser Split 1.1.1
6
+ * Copyright 2007-2012 Steven Levithan <stevenlevithan.com>
7
+ * Available under the MIT License
8
+ * http://blog.stevenlevithan.com/archives/cross-browser-split
9
+ */
10
+ var nativeSplit=String.prototype.split,compliantExecNpcg=void 0===/()??/.exec("")[1];String.prototype.split=function(a,b){var c=this;if("[object RegExp]"!==Object.prototype.toString.call(a))return nativeSplit.call(c,a,b);var d,e,f,g,h=[],i=(a.ignoreCase?"i":"")+(a.multiline?"m":"")+(a.extended?"x":"")+(a.sticky?"y":""),j=0;for(a=new RegExp(a.source,i+"g"),c+="",compliantExecNpcg||(d=new RegExp("^"+a.source+"$(?!\\s)",i)),b=void 0===b?-1>>>0:b>>>0;(e=a.exec(c))&&(f=e.index+e[0].length,!(f>j&&(h.push(c.slice(j,e.index)),!compliantExecNpcg&&e.length>1&&e[0].replace(d,function(){for(var a=1;a<arguments.length-2;a++)void 0===arguments[a]&&(e[a]=void 0)}),e.length>1&&e.index<c.length&&Array.prototype.push.apply(h,e.slice(1)),g=e[0].length,j=f,h.length>=b)));)a.lastIndex===e.index&&a.lastIndex++;return j===c.length?(g||!a.test(""))&&h.push(""):h.push(c.slice(j)),h.length>b?h.slice(0,b):h};
assets/js/datepicker/picker.date.js ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /*!
2
+ * Date picker for pickadate.js v3.5.5
3
+ * http://amsul.github.io/pickadate.js/date.htm
4
+ */
5
+ !function(a){"function"==typeof define&&define.amd?define(["picker","jquery"],a):"object"==typeof exports?module.exports=a(require("./picker.js"),require("jquery")):a(Picker,jQuery)}(function(a,b){function c(a,b){var c=this,d=a.$node[0],e=d.value,f=a.$node.data("value"),g=f||e,h=f?b.formatSubmit:b.format,i=function(){return d.currentStyle?"rtl"==d.currentStyle.direction:"rtl"==getComputedStyle(a.$root[0]).direction};c.settings=b,c.$node=a.$node,c.queue={min:"measure create",max:"measure create",now:"now create",select:"parse create validate",highlight:"parse navigate create validate",view:"parse create validate viewset",disable:"deactivate",enable:"activate"},c.item={},c.item.clear=null,c.item.disable=(b.disable||[]).slice(0),c.item.enable=-function(a){return a[0]===!0?a.shift():-1}(c.item.disable),c.set("min",b.min).set("max",b.max).set("now"),g?c.set("select",g,{format:h,defaultValue:!0}):c.set("select",null).set("highlight",c.item.now),c.key={40:7,38:-7,39:function(){return i()?-1:1},37:function(){return i()?1:-1},go:function(a){var b=c.item.highlight,d=new Date(b.year,b.month,b.date+a);c.set("highlight",d,{interval:a}),this.render()}},a.on("render",function(){a.$root.find("."+b.klass.selectMonth).on("change",function(){var c=this.value;c&&(a.set("highlight",[a.get("view").year,c,a.get("highlight").date]),a.$root.find("."+b.klass.selectMonth).trigger("focus"))}),a.$root.find("."+b.klass.selectYear).on("change",function(){var c=this.value;c&&(a.set("highlight",[c,a.get("view").month,a.get("highlight").date]),a.$root.find("."+b.klass.selectYear).trigger("focus"))})},1).on("open",function(){var d="";c.disabled(c.get("now"))&&(d=":not(."+b.klass.buttonToday+")"),a.$root.find("button"+d+", select").attr("disabled",!1)},1).on("close",function(){a.$root.find("button, select").attr("disabled",!0)},1)}var d=7,e=6,f=a._;c.prototype.set=function(a,b,c){var d=this,e=d.item;return null===b?("clear"==a&&(a="select"),e[a]=b,d):(e["enable"==a?"disable":"flip"==a?"enable":a]=d.queue[a].split(" ").map(function(e){return b=d[e](a,b,c)}).pop(),"select"==a?d.set("highlight",e.select,c):"highlight"==a?d.set("view",e.highlight,c):a.match(/^(flip|min|max|disable|enable)$/)&&(e.select&&d.disabled(e.select)&&d.set("select",e.select,c),e.highlight&&d.disabled(e.highlight)&&d.set("highlight",e.highlight,c)),d)},c.prototype.get=function(a){return this.item[a]},c.prototype.create=function(a,c,d){var e,g=this;return c=void 0===c?a:c,c==-1/0||1/0==c?e=c:b.isPlainObject(c)&&f.isInteger(c.pick)?c=c.obj:b.isArray(c)?(c=new Date(c[0],c[1],c[2]),c=f.isDate(c)?c:g.create().obj):c=f.isInteger(c)||f.isDate(c)?g.normalize(new Date(c),d):g.now(a,c,d),{year:e||c.getFullYear(),month:e||c.getMonth(),date:e||c.getDate(),day:e||c.getDay(),obj:e||c,pick:e||c.getTime()}},c.prototype.createRange=function(a,c){var d=this,e=function(a){return a===!0||b.isArray(a)||f.isDate(a)?d.create(a):a};return f.isInteger(a)||(a=e(a)),f.isInteger(c)||(c=e(c)),f.isInteger(a)&&b.isPlainObject(c)?a=[c.year,c.month,c.date+a]:f.isInteger(c)&&b.isPlainObject(a)&&(c=[a.year,a.month,a.date+c]),{from:e(a),to:e(c)}},c.prototype.withinRange=function(a,b){return a=this.createRange(a.from,a.to),b.pick>=a.from.pick&&b.pick<=a.to.pick},c.prototype.overlapRanges=function(a,b){var c=this;return a=c.createRange(a.from,a.to),b=c.createRange(b.from,b.to),c.withinRange(a,b.from)||c.withinRange(a,b.to)||c.withinRange(b,a.from)||c.withinRange(b,a.to)},c.prototype.now=function(a,b,c){return b=new Date,c&&c.rel&&b.setDate(b.getDate()+c.rel),this.normalize(b,c)},c.prototype.navigate=function(a,c,d){var e,f,g,h,i=b.isArray(c),j=b.isPlainObject(c),k=this.item.view;if(i||j){for(j?(f=c.year,g=c.month,h=c.date):(f=+c[0],g=+c[1],h=+c[2]),d&&d.nav&&k&&k.month!==g&&(f=k.year,g=k.month),e=new Date(f,g+(d&&d.nav?d.nav:0),1),f=e.getFullYear(),g=e.getMonth();new Date(f,g,h).getMonth()!==g;)h-=1;c=[f,g,h]}return c},c.prototype.normalize=function(a){return a.setHours(0,0,0,0),a},c.prototype.measure=function(a,b){var c=this;return b?"string"==typeof b?b=c.parse(a,b):f.isInteger(b)&&(b=c.now(a,b,{rel:b})):b="min"==a?-1/0:1/0,b},c.prototype.viewset=function(a,b){return this.create([b.year,b.month,1])},c.prototype.validate=function(a,c,d){var e,g,h,i,j=this,k=c,l=d&&d.interval?d.interval:1,m=-1===j.item.enable,n=j.item.min,o=j.item.max,p=m&&j.item.disable.filter(function(a){if(b.isArray(a)){var d=j.create(a).pick;d<c.pick?e=!0:d>c.pick&&(g=!0)}return f.isInteger(a)}).length;if((!d||!d.nav&&!d.defaultValue)&&(!m&&j.disabled(c)||m&&j.disabled(c)&&(p||e||g)||!m&&(c.pick<=n.pick||c.pick>=o.pick)))for(m&&!p&&(!g&&l>0||!e&&0>l)&&(l*=-1);j.disabled(c)&&(Math.abs(l)>1&&(c.month<k.month||c.month>k.month)&&(c=k,l=l>0?1:-1),c.pick<=n.pick?(h=!0,l=1,c=j.create([n.year,n.month,n.date+(c.pick===n.pick?0:-1)])):c.pick>=o.pick&&(i=!0,l=-1,c=j.create([o.year,o.month,o.date+(c.pick===o.pick?0:1)])),!h||!i);)c=j.create([c.year,c.month,c.date+l]);return c},c.prototype.disabled=function(a){var c=this,d=c.item.disable.filter(function(d){return f.isInteger(d)?a.day===(c.settings.firstDay?d:d-1)%7:b.isArray(d)||f.isDate(d)?a.pick===c.create(d).pick:b.isPlainObject(d)?c.withinRange(d,a):void 0});return d=d.length&&!d.filter(function(a){return b.isArray(a)&&"inverted"==a[3]||b.isPlainObject(a)&&a.inverted}).length,-1===c.item.enable?!d:d||a.pick<c.item.min.pick||a.pick>c.item.max.pick},c.prototype.parse=function(a,b,c){var d=this,e={};return b&&"string"==typeof b?(c&&c.format||(c=c||{},c.format=d.settings.format),d.formats.toArray(c.format).map(function(a){var c=d.formats[a],g=c?f.trigger(c,d,[b,e]):a.replace(/^!/,"").length;c&&(e[a]=b.substr(0,g)),b=b.substr(g)}),[e.yyyy||e.yy,+(e.mm||e.m)-1,e.dd||e.d]):b},c.prototype.formats=function(){function a(a,b,c){var d=a.match(/[^\x00-\x7F]+|\w+/)[0];return c.mm||c.m||(c.m=b.indexOf(d)+1),d.length}function b(a){return a.match(/\w+/)[0].length}return{d:function(a,b){return a?f.digits(a):b.date},dd:function(a,b){return a?2:f.lead(b.date)},ddd:function(a,c){return a?b(a):this.settings.weekdaysShort[c.day]},dddd:function(a,c){return a?b(a):this.settings.weekdaysFull[c.day]},m:function(a,b){return a?f.digits(a):b.month+1},mm:function(a,b){return a?2:f.lead(b.month+1)},mmm:function(b,c){var d=this.settings.monthsShort;return b?a(b,d,c):d[c.month]},mmmm:function(b,c){var d=this.settings.monthsFull;return b?a(b,d,c):d[c.month]},yy:function(a,b){return a?2:(""+b.year).slice(2)},yyyy:function(a,b){return a?4:b.year},toArray:function(a){return a.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g)},toString:function(a,b){var c=this;return c.formats.toArray(a).map(function(a){return f.trigger(c.formats[a],c,[0,b])||a.replace(/^!/,"")}).join("")}}}(),c.prototype.isDateExact=function(a,c){var d=this;return f.isInteger(a)&&f.isInteger(c)||"boolean"==typeof a&&"boolean"==typeof c?a===c:(f.isDate(a)||b.isArray(a))&&(f.isDate(c)||b.isArray(c))?d.create(a).pick===d.create(c).pick:b.isPlainObject(a)&&b.isPlainObject(c)?d.isDateExact(a.from,c.from)&&d.isDateExact(a.to,c.to):!1},c.prototype.isDateOverlap=function(a,c){var d=this,e=d.settings.firstDay?1:0;return f.isInteger(a)&&(f.isDate(c)||b.isArray(c))?(a=a%7+e,a===d.create(c).day+1):f.isInteger(c)&&(f.isDate(a)||b.isArray(a))?(c=c%7+e,c===d.create(a).day+1):b.isPlainObject(a)&&b.isPlainObject(c)?d.overlapRanges(a,c):!1},c.prototype.flipEnable=function(a){var b=this.item;b.enable=a||(-1==b.enable?1:-1)},c.prototype.deactivate=function(a,c){var d=this,e=d.item.disable.slice(0);return"flip"==c?d.flipEnable():c===!1?(d.flipEnable(1),e=[]):c===!0?(d.flipEnable(-1),e=[]):c.map(function(a){for(var c,g=0;g<e.length;g+=1)if(d.isDateExact(a,e[g])){c=!0;break}c||(f.isInteger(a)||f.isDate(a)||b.isArray(a)||b.isPlainObject(a)&&a.from&&a.to)&&e.push(a)}),e},c.prototype.activate=function(a,c){var d=this,e=d.item.disable,g=e.length;return"flip"==c?d.flipEnable():c===!0?(d.flipEnable(1),e=[]):c===!1?(d.flipEnable(-1),e=[]):c.map(function(a){var c,h,i,j;for(i=0;g>i;i+=1){if(h=e[i],d.isDateExact(h,a)){c=e[i]=null,j=!0;break}if(d.isDateOverlap(h,a)){b.isPlainObject(a)?(a.inverted=!0,c=a):b.isArray(a)?(c=a,c[3]||c.push("inverted")):f.isDate(a)&&(c=[a.getFullYear(),a.getMonth(),a.getDate(),"inverted"]);break}}if(c)for(i=0;g>i;i+=1)if(d.isDateExact(e[i],a)){e[i]=null;break}if(j)for(i=0;g>i;i+=1)if(d.isDateOverlap(e[i],a)){e[i]=null;break}c&&e.push(c)}),e.filter(function(a){return null!=a})},c.prototype.nodes=function(a){var b=this,c=b.settings,g=b.item,h=g.now,i=g.select,j=g.highlight,k=g.view,l=g.disable,m=g.min,n=g.max,o=function(a,b){return c.firstDay&&(a.push(a.shift()),b.push(b.shift())),f.node("thead",f.node("tr",f.group({min:0,max:d-1,i:1,node:"th",item:function(d){return[a[d],c.klass.weekdays,'scope=col title="'+b[d]+'"']}})))}((c.showWeekdaysFull?c.weekdaysFull:c.weekdaysShort).slice(0),c.weekdaysFull.slice(0)),p=function(a){return f.node("div"," ",c.klass["nav"+(a?"Next":"Prev")]+(a&&k.year>=n.year&&k.month>=n.month||!a&&k.year<=m.year&&k.month<=m.month?" "+c.klass.navDisabled:""),"data-nav="+(a||-1)+" "+f.ariaAttr({role:"button",controls:b.$node[0].id+"_table"})+' title="'+(a?c.labelMonthNext:c.labelMonthPrev)+'"')},q=function(){var d=c.showMonthsShort?c.monthsShort:c.monthsFull;return c.selectMonths?f.node("select",f.group({min:0,max:11,i:1,node:"option",item:function(a){return[d[a],0,"value="+a+(k.month==a?" selected":"")+(k.year==m.year&&a<m.month||k.year==n.year&&a>n.month?" disabled":"")]}}),c.klass.selectMonth,(a?"":"disabled")+" "+f.ariaAttr({controls:b.$node[0].id+"_table"})+' title="'+c.labelMonthSelect+'"'):f.node("div",d[k.month],c.klass.month)},r=function(){var d=k.year,e=c.selectYears===!0?5:~~(c.selectYears/2);if(e){var g=m.year,h=n.year,i=d-e,j=d+e;if(g>i&&(j+=g-i,i=g),j>h){var l=i-g,o=j-h;i-=l>o?o:l,j=h}return f.node("select",f.group({min:i,max:j,i:1,node:"option",item:function(a){return[a,0,"value="+a+(d==a?" selected":"")]}}),c.klass.selectYear,(a?"":"disabled")+" "+f.ariaAttr({controls:b.$node[0].id+"_table"})+' title="'+c.labelYearSelect+'"')}return f.node("div",d,c.klass.year)};return f.node("div",(c.selectYears?r()+q():q()+r())+p()+p(1),c.klass.header)+f.node("table",o+f.node("tbody",f.group({min:0,max:e-1,i:1,node:"tr",item:function(a){var e=c.firstDay&&0===b.create([k.year,k.month,1]).day?-7:0;return[f.group({min:d*a-k.day+e+1,max:function(){return this.min+d-1},i:1,node:"td",item:function(a){a=b.create([k.year,k.month,a+(c.firstDay?1:0)]);var d=i&&i.pick==a.pick,e=j&&j.pick==a.pick,g=l&&b.disabled(a)||a.pick<m.pick||a.pick>n.pick,o=f.trigger(b.formats.toString,b,[c.format,a]);return[f.node("div",a.date,function(b){return b.push(k.month==a.month?c.klass.infocus:c.klass.outfocus),h.pick==a.pick&&b.push(c.klass.now),d&&b.push(c.klass.selected),e&&b.push(c.klass.highlighted),g&&b.push(c.klass.disabled),b.join(" ")}([c.klass.day]),"data-pick="+a.pick+" "+f.ariaAttr({role:"gridcell",label:o,selected:d&&b.$node.val()===o?!0:null,activedescendant:e?!0:null,disabled:g?!0:null})),"",f.ariaAttr({role:"presentation"})]}})]}})),c.klass.table,'id="'+b.$node[0].id+'_table" '+f.ariaAttr({role:"grid",controls:b.$node[0].id,readonly:!0}))+f.node("div",f.node("button",c.today,c.klass.buttonToday,"type=button data-pick="+h.pick+(a&&!b.disabled(h)?"":" disabled")+" "+f.ariaAttr({controls:b.$node[0].id}))+f.node("button",c.clear,c.klass.buttonClear,"type=button data-clear=1"+(a?"":" disabled")+" "+f.ariaAttr({controls:b.$node[0].id}))+f.node("button",c.close,c.klass.buttonClose,"type=button data-close=true "+(a?"":" disabled")+" "+f.ariaAttr({controls:b.$node[0].id})),c.klass.footer)},c.defaults=function(a){return{labelMonthNext:"Next month",labelMonthPrev:"Previous month",labelMonthSelect:"Select a month",labelYearSelect:"Select a year",monthsFull:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdaysFull:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],weekdaysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],today:"Today",clear:"Clear",close:"Close",closeOnSelect:!0,closeOnClear:!0,format:"d mmmm, yyyy",klass:{table:a+"table",header:a+"header",navPrev:a+"nav--prev",navNext:a+"nav--next",navDisabled:a+"nav--disabled",month:a+"month",year:a+"year",selectMonth:a+"select--month",selectYear:a+"select--year",weekdays:a+"weekday",day:a+"day",disabled:a+"day--disabled",selected:a+"day--selected",highlighted:a+"day--highlighted",now:a+"day--today",infocus:a+"day--infocus",outfocus:a+"day--outfocus",footer:a+"footer",buttonClear:a+"button--clear",buttonToday:a+"button--today",buttonClose:a+"button--close"}}}(a.klasses().picker+"__"),a.extend("pickadate",c)});
assets/js/datepicker/picker.js ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ /*!
2
+ * pickadate.js v3.5.5, 2015/02/08
3
+ * By Amsul, http://amsul.ca
4
+ * Hosted on http://amsul.github.io/pickadate.js
5
+ * Licensed under MIT
6
+ */
7
+ !function(a){"function"==typeof define&&define.amd?define("picker",["jquery"],a):"object"==typeof exports?module.exports=a(require("jquery")):this.Picker=a(jQuery)}(function(a){function b(f,g,i,m){function n(){return b._.node("div",b._.node("div",b._.node("div",b._.node("div",B.component.nodes(w.open),y.box),y.wrap),y.frame),y.holder,'tabindex="-1"')}function o(){z.data(g,B).addClass(y.input).val(z.data("value")?B.get("select",x.format):f.value),x.editable||z.on("focus."+w.id+" click."+w.id,function(a){a.preventDefault(),B.open()}).on("keydown."+w.id,u),e(f,{haspopup:!0,expanded:!1,readonly:!1,owns:f.id+"_root"})}function p(){e(B.$root[0],"hidden",!0)}function q(){B.$holder.on({keydown:u,"focus.toOpen":t,blur:function(){z.removeClass(y.target)},focusin:function(a){B.$root.removeClass(y.focused),a.stopPropagation()},"mousedown click":function(b){var c=b.target;c!=B.$holder[0]&&(b.stopPropagation(),"mousedown"!=b.type||a(c).is("input, select, textarea, button, option")||(b.preventDefault(),B.$holder[0].focus()))}}).on("click","[data-pick], [data-nav], [data-clear], [data-close]",function(){var b=a(this),c=b.data(),d=b.hasClass(y.navDisabled)||b.hasClass(y.disabled),e=h();e=e&&(e.type||e.href),(d||e&&!a.contains(B.$root[0],e))&&B.$holder[0].focus(),!d&&c.nav?B.set("highlight",B.component.item.highlight,{nav:c.nav}):!d&&"pick"in c?(B.set("select",c.pick),x.closeOnSelect&&B.close(!0)):c.clear?(B.clear(),x.closeOnClear&&B.close(!0)):c.close&&B.close(!0)})}function r(){var b;x.hiddenName===!0?(b=f.name,f.name=""):(b=["string"==typeof x.hiddenPrefix?x.hiddenPrefix:"","string"==typeof x.hiddenSuffix?x.hiddenSuffix:"_submit"],b=b[0]+f.name+b[1]),B._hidden=a('<input type=hidden name="'+b+'"'+(z.data("value")||f.value?' value="'+B.get("select",x.formatSubmit)+'"':"")+">")[0],z.on("change."+w.id,function(){B._hidden.value=f.value?B.get("select",x.formatSubmit):""})}function s(){v&&l?B.$holder.find("."+y.frame).one("transitionend",function(){B.$holder[0].focus()}):B.$holder[0].focus()}function t(a){a.stopPropagation(),z.addClass(y.target),B.$root.addClass(y.focused),B.open()}function u(a){var b=a.keyCode,c=/^(8|46)$/.test(b);return 27==b?(B.close(!0),!1):void((32==b||c||!w.open&&B.component.key[b])&&(a.preventDefault(),a.stopPropagation(),c?B.clear().close():B.open()))}if(!f)return b;var v=!1,w={id:f.id||"P"+Math.abs(~~(Math.random()*new Date))},x=i?a.extend(!0,{},i.defaults,m):m||{},y=a.extend({},b.klasses(),x.klass),z=a(f),A=function(){return this.start()},B=A.prototype={constructor:A,$node:z,start:function(){return w&&w.start?B:(w.methods={},w.start=!0,w.open=!1,w.type=f.type,f.autofocus=f==h(),f.readOnly=!x.editable,f.id=f.id||w.id,"text"!=f.type&&(f.type="text"),B.component=new i(B,x),B.$root=a('<div class="'+y.picker+'" id="'+f.id+'_root" />'),p(),B.$holder=a(n()).appendTo(B.$root),q(),x.formatSubmit&&r(),o(),x.containerHidden?a(x.containerHidden).append(B._hidden):z.after(B._hidden),x.container?a(x.container).append(B.$root):z.after(B.$root),B.on({start:B.component.onStart,render:B.component.onRender,stop:B.component.onStop,open:B.component.onOpen,close:B.component.onClose,set:B.component.onSet}).on({start:x.onStart,render:x.onRender,stop:x.onStop,open:x.onOpen,close:x.onClose,set:x.onSet}),v=c(B.$holder[0]),f.autofocus&&B.open(),B.trigger("start").trigger("render"))},render:function(a){return a?(B.$holder=n(),B.$root.html(B.$holder)):B.$root.find("."+y.box).html(B.component.nodes(w.open)),B.trigger("render")},stop:function(){return w.start?(B.close(),B._hidden&&B._hidden.parentNode.removeChild(B._hidden),B.$root.remove(),z.removeClass(y.input).removeData(g),setTimeout(function(){z.off("."+w.id)},0),f.type=w.type,f.readOnly=!1,B.trigger("stop"),w.methods={},w.start=!1,B):B},open:function(c){return w.open?B:(z.addClass(y.active),e(f,"expanded",!0),setTimeout(function(){B.$root.addClass(y.opened),e(B.$root[0],"hidden",!1)},0),c!==!1&&(w.open=!0,v&&k.css("overflow","hidden").css("padding-right","+="+d()),s(),j.on("click."+w.id+" focusin."+w.id,function(a){var b=a.target;b!=f&&b!=document&&3!=a.which&&B.close(b===B.$holder[0])}).on("keydown."+w.id,function(c){var d=c.keyCode,e=B.component.key[d],f=c.target;27==d?B.close(!0):f!=B.$holder[0]||!e&&13!=d?a.contains(B.$root[0],f)&&13==d&&(c.preventDefault(),f.click()):(c.preventDefault(),e?b._.trigger(B.component.key.go,B,[b._.trigger(e)]):B.$root.find("."+y.highlighted).hasClass(y.disabled)||(B.set("select",B.component.item.highlight),x.closeOnSelect&&B.close(!0)))})),B.trigger("open"))},close:function(a){return a&&(x.editable?f.focus():(B.$holder.off("focus.toOpen").focus(),setTimeout(function(){B.$holder.on("focus.toOpen",t)},0))),z.removeClass(y.active),e(f,"expanded",!1),setTimeout(function(){B.$root.removeClass(y.opened+" "+y.focused),e(B.$root[0],"hidden",!0)},0),w.open?(w.open=!1,v&&k.css("overflow","").css("padding-right","-="+d()),j.off("."+w.id),B.trigger("close")):B},clear:function(a){return B.set("clear",null,a)},set:function(b,c,d){var e,f,g=a.isPlainObject(b),h=g?b:{};if(d=g&&a.isPlainObject(c)?c:d||{},b){g||(h[b]=c);for(e in h)f=h[e],e in B.component.item&&(void 0===f&&(f=null),B.component.set(e,f,d)),("select"==e||"clear"==e)&&z.val("clear"==e?"":B.get(e,x.format)).trigger("change");B.render()}return d.muted?B:B.trigger("set",h)},get:function(a,c){if(a=a||"value",null!=w[a])return w[a];if("valueSubmit"==a){if(B._hidden)return B._hidden.value;a="value"}if("value"==a)return f.value;if(a in B.component.item){if("string"==typeof c){var d=B.component.get(a);return d?b._.trigger(B.component.formats.toString,B.component,[c,d]):""}return B.component.get(a)}},on:function(b,c,d){var e,f,g=a.isPlainObject(b),h=g?b:{};if(b){g||(h[b]=c);for(e in h)f=h[e],d&&(e="_"+e),w.methods[e]=w.methods[e]||[],w.methods[e].push(f)}return B},off:function(){var a,b,c=arguments;for(a=0,namesCount=c.length;a<namesCount;a+=1)b=c[a],b in w.methods&&delete w.methods[b];return B},trigger:function(a,c){var d=function(a){var d=w.methods[a];d&&d.map(function(a){b._.trigger(a,B,[c])})};return d("_"+a),d(a),B}};return new A}function c(a){var b,c="position";return a.currentStyle?b=a.currentStyle[c]:window.getComputedStyle&&(b=getComputedStyle(a)[c]),"fixed"==b}function d(){if(k.height()<=i.height())return 0;var b=a('<div style="visibility:hidden;width:100px" />').appendTo("body"),c=b[0].offsetWidth;b.css("overflow","scroll");var d=a('<div style="width:100%" />').appendTo(b),e=d[0].offsetWidth;return b.remove(),c-e}function e(b,c,d){if(a.isPlainObject(c))for(var e in c)f(b,e,c[e]);else f(b,c,d)}function f(a,b,c){a.setAttribute(("role"==b?"":"aria-")+b,c)}function g(b,c){a.isPlainObject(b)||(b={attribute:c}),c="";for(var d in b){var e=("role"==d?"":"aria-")+d,f=b[d];c+=null==f?"":e+'="'+b[d]+'"'}return c}function h(){try{return document.activeElement}catch(a){}}var i=a(window),j=a(document),k=a(document.documentElement),l=null!=document.body.style.transition;return b.klasses=function(a){return a=a||"picker",{picker:a,opened:a+"--opened",focused:a+"--focused",input:a+"__input",active:a+"__input--active",target:a+"__input--target",holder:a+"__holder",frame:a+"__frame",wrap:a+"__wrap",box:a+"__box"}},b._={group:function(a){for(var c,d="",e=b._.trigger(a.min,a);e<=b._.trigger(a.max,a,[e]);e+=a.i)c=b._.trigger(a.item,a,[e]),d+=b._.node(a.node,c[0],c[1],c[2]);return d},node:function(b,c,d,e){return c?(c=a.isArray(c)?c.join(""):c,d=d?' class="'+d+'"':"",e=e?" "+e:"","<"+b+d+e+">"+c+"</"+b+">"):""},lead:function(a){return(10>a?"0":"")+a},trigger:function(a,b,c){return"function"==typeof a?a.apply(b,c||[]):a},digits:function(a){return/\d/.test(a[1])?2:1},isDate:function(a){return{}.toString.call(a).indexOf("Date")>-1&&this.isInteger(a.getDate())},isInteger:function(a){return{}.toString.call(a).indexOf("Number")>-1&&a%1===0},ariaAttr:g},b.extend=function(c,d){a.fn[c]=function(e,f){var g=this.data(c);return"picker"==e?g:g&&"string"==typeof e?b._.trigger(g[e],g,[f]):this.each(function(){var f=a(this);f.data(c)||new b(this,c,d,e)})},a.fn[c].defaults=d.defaults},b});
assets/js/datepicker/picker.time.js ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /*!
2
+ * Time picker for pickadate.js v3.5.5
3
+ * http://amsul.github.io/pickadate.js/time.htm
4
+ */
5
+ !function(a){"function"==typeof define&&define.amd?define(["picker","jquery"],a):"object"==typeof exports?module.exports=a(require("./picker.js"),require("jquery")):a(Picker,jQuery)}(function(a,b){function c(a,b){var c=this,d=a.$node[0].value,e=a.$node.data("value"),f=e||d,g=e?b.formatSubmit:b.format;c.settings=b,c.$node=a.$node,c.queue={interval:"i",min:"measure create",max:"measure create",now:"now create",select:"parse create validate",highlight:"parse create validate",view:"parse create validate",disable:"deactivate",enable:"activate"},c.item={},c.item.clear=null,c.item.interval=b.interval||30,c.item.disable=(b.disable||[]).slice(0),c.item.enable=-function(a){return a[0]===!0?a.shift():-1}(c.item.disable),c.set("min",b.min).set("max",b.max).set("now"),f?c.set("select",f,{format:g}):c.set("select",null).set("highlight",c.item.now),c.key={40:1,38:-1,39:1,37:-1,go:function(a){c.set("highlight",c.item.highlight.pick+a*c.item.interval,{interval:a*c.item.interval}),this.render()}},a.on("render",function(){var c=a.$root.children(),d=c.find("."+b.klass.viewset),e=function(a){return["webkit","moz","ms","o",""].map(function(b){return(b?"-"+b+"-":"")+a})},f=function(a,b){e("transform").map(function(c){a.css(c,b)}),e("transition").map(function(c){a.css(c,b)})};d.length&&(f(c,"none"),c[0].scrollTop=~~d.position().top-2*d[0].clientHeight,f(c,""))},1).on("open",function(){a.$root.find("button").attr("disabled",!1)},1).on("close",function(){a.$root.find("button").attr("disabled",!0)},1)}var d=24,e=60,f=12,g=d*e,h=a._;c.prototype.set=function(a,b,c){var d=this,e=d.item;return null===b?("clear"==a&&(a="select"),e[a]=b,d):(e["enable"==a?"disable":"flip"==a?"enable":a]=d.queue[a].split(" ").map(function(e){return b=d[e](a,b,c)}).pop(),"select"==a?d.set("highlight",e.select,c):"highlight"==a?d.set("view",e.highlight,c):"interval"==a?d.set("min",e.min,c).set("max",e.max,c):a.match(/^(flip|min|max|disable|enable)$/)&&(e.select&&d.disabled(e.select)&&d.set("select",b,c),e.highlight&&d.disabled(e.highlight)&&d.set("highlight",b,c),"min"==a&&d.set("max",e.max,c)),d)},c.prototype.get=function(a){return this.item[a]},c.prototype.create=function(a,c,f){var i=this;return c=void 0===c?a:c,h.isDate(c)&&(c=[c.getHours(),c.getMinutes()]),b.isPlainObject(c)&&h.isInteger(c.pick)?c=c.pick:b.isArray(c)?c=+c[0]*e+ +c[1]:h.isInteger(c)||(c=i.now(a,c,f)),"max"==a&&c<i.item.min.pick&&(c+=g),"min"!=a&&"max"!=a&&(c-i.item.min.pick)%i.item.interval!==0&&(c+=i.item.interval),c=i.normalize(a,c,f),{hour:~~(d+c/e)%d,mins:(e+c%e)%e,time:(g+c)%g,pick:c%g}},c.prototype.createRange=function(a,c){var d=this,e=function(a){return a===!0||b.isArray(a)||h.isDate(a)?d.create(a):a};return h.isInteger(a)||(a=e(a)),h.isInteger(c)||(c=e(c)),h.isInteger(a)&&b.isPlainObject(c)?a=[c.hour,c.mins+a*d.settings.interval]:h.isInteger(c)&&b.isPlainObject(a)&&(c=[a.hour,a.mins+c*d.settings.interval]),{from:e(a),to:e(c)}},c.prototype.withinRange=function(a,b){return a=this.createRange(a.from,a.to),b.pick>=a.from.pick&&b.pick<=a.to.pick},c.prototype.overlapRanges=function(a,b){var c=this;return a=c.createRange(a.from,a.to),b=c.createRange(b.from,b.to),c.withinRange(a,b.from)||c.withinRange(a,b.to)||c.withinRange(b,a.from)||c.withinRange(b,a.to)},c.prototype.now=function(a,b){var c,d=this.item.interval,f=new Date,g=f.getHours()*e+f.getMinutes(),i=h.isInteger(b);return g-=g%d,c=0>b&&-d>=d*b+g,g+="min"==a&&c?0:d,i&&(g+=d*(c&&"max"!=a?b+1:b)),g},c.prototype.normalize=function(a,b){var c=this.item.interval,d=this.item.min&&this.item.min.pick||0;return b-="min"==a?0:(b-d)%c},c.prototype.measure=function(a,c,f){var g=this;return c||(c="min"==a?[0,0]:[d-1,e-1]),"string"==typeof c?c=g.parse(a,c):c===!0||h.isInteger(c)?c=g.now(a,c,f):b.isPlainObject(c)&&h.isInteger(c.pick)&&(c=g.normalize(a,c.pick,f)),c},c.prototype.validate=function(a,b,c){var d=this,e=c&&c.interval?c.interval:d.item.interval;return d.disabled(b)&&(b=d.shift(b,e)),b=d.scope(b),d.disabled(b)&&(b=d.shift(b,-1*e)),b},c.prototype.disabled=function(a){var c=this,d=c.item.disable.filter(function(d){return h.isInteger(d)?a.hour==d:b.isArray(d)||h.isDate(d)?a.pick==c.create(d).pick:b.isPlainObject(d)?c.withinRange(d,a):void 0});return d=d.length&&!d.filter(function(a){return b.isArray(a)&&"inverted"==a[2]||b.isPlainObject(a)&&a.inverted}).length,-1===c.item.enable?!d:d||a.pick<c.item.min.pick||a.pick>c.item.max.pick},c.prototype.shift=function(a,b){var c=this,d=c.item.min.pick,e=c.item.max.pick;for(b=b||c.item.interval;c.disabled(a)&&(a=c.create(a.pick+=b),!(a.pick<=d||a.pick>=e)););return a},c.prototype.scope=function(a){var b=this.item.min.pick,c=this.item.max.pick;return this.create(a.pick>c?c:a.pick<b?b:a)},c.prototype.parse=function(a,b,c){var d,f,g,i,j,k=this,l={};if(!b||"string"!=typeof b)return b;c&&c.format||(c=c||{},c.format=k.settings.format),k.formats.toArray(c.format).map(function(a){var c,d=k.formats[a],e=d?h.trigger(d,k,[b,l]):a.replace(/^!/,"").length;d&&(c=b.substr(0,e),l[a]=c.match(/^\d+$/)?+c:c),b=b.substr(e)});for(i in l)j=l[i],h.isInteger(j)?i.match(/^(h|hh)$/i)?(d=j,("h"==i||"hh"==i)&&(d%=12)):"i"==i&&(f=j):i.match(/^a$/i)&&j.match(/^p/i)&&("h"in l||"hh"in l)&&(g=!0);return(g?d+12:d)*e+f},c.prototype.formats={h:function(a,b){return a?h.digits(a):b.hour%f||f},hh:function(a,b){return a?2:h.lead(b.hour%f||f)},H:function(a,b){return a?h.digits(a):""+b.hour%24},HH:function(a,b){return a?h.digits(a):h.lead(b.hour%24)},i:function(a,b){return a?2:h.lead(b.mins)},a:function(a,b){return a?4:g/2>b.time%g?"a.m.":"p.m."},A:function(a,b){return a?2:g/2>b.time%g?"AM":"PM"},toArray:function(a){return a.split(/(h{1,2}|H{1,2}|i|a|A|!.)/g)},toString:function(a,b){var c=this;return c.formats.toArray(a).map(function(a){return h.trigger(c.formats[a],c,[0,b])||a.replace(/^!/,"")}).join("")}},c.prototype.isTimeExact=function(a,c){var d=this;return h.isInteger(a)&&h.isInteger(c)||"boolean"==typeof a&&"boolean"==typeof c?a===c:(h.isDate(a)||b.isArray(a))&&(h.isDate(c)||b.isArray(c))?d.create(a).pick===d.create(c).pick:b.isPlainObject(a)&&b.isPlainObject(c)?d.isTimeExact(a.from,c.from)&&d.isTimeExact(a.to,c.to):!1},c.prototype.isTimeOverlap=function(a,c){var d=this;return h.isInteger(a)&&(h.isDate(c)||b.isArray(c))?a===d.create(c).hour:h.isInteger(c)&&(h.isDate(a)||b.isArray(a))?c===d.create(a).hour:b.isPlainObject(a)&&b.isPlainObject(c)?d.overlapRanges(a,c):!1},c.prototype.flipEnable=function(a){var b=this.item;b.enable=a||(-1==b.enable?1:-1)},c.prototype.deactivate=function(a,c){var d=this,e=d.item.disable.slice(0);return"flip"==c?d.flipEnable():c===!1?(d.flipEnable(1),e=[]):c===!0?(d.flipEnable(-1),e=[]):c.map(function(a){for(var c,f=0;f<e.length;f+=1)if(d.isTimeExact(a,e[f])){c=!0;break}c||(h.isInteger(a)||h.isDate(a)||b.isArray(a)||b.isPlainObject(a)&&a.from&&a.to)&&e.push(a)}),e},c.prototype.activate=function(a,c){var d=this,e=d.item.disable,f=e.length;return"flip"==c?d.flipEnable():c===!0?(d.flipEnable(1),e=[]):c===!1?(d.flipEnable(-1),e=[]):c.map(function(a){var c,g,i,j;for(i=0;f>i;i+=1){if(g=e[i],d.isTimeExact(g,a)){c=e[i]=null,j=!0;break}if(d.isTimeOverlap(g,a)){b.isPlainObject(a)?(a.inverted=!0,c=a):b.isArray(a)?(c=a,c[2]||c.push("inverted")):h.isDate(a)&&(c=[a.getFullYear(),a.getMonth(),a.getDate(),"inverted"]);break}}if(c)for(i=0;f>i;i+=1)if(d.isTimeExact(e[i],a)){e[i]=null;break}if(j)for(i=0;f>i;i+=1)if(d.isTimeOverlap(e[i],a)){e[i]=null;break}c&&e.push(c)}),e.filter(function(a){return null!=a})},c.prototype.i=function(a,b){return h.isInteger(b)&&b>0?b:this.item.interval},c.prototype.nodes=function(a){var b=this,c=b.settings,d=b.item.select,e=b.item.highlight,f=b.item.view,g=b.item.disable;return h.node("ul",h.group({min:b.item.min.pick,max:b.item.max.pick,i:b.item.interval,node:"li",item:function(a){a=b.create(a);var i=a.pick,j=d&&d.pick==i,k=e&&e.pick==i,l=g&&b.disabled(a),m=h.trigger(b.formats.toString,b,[c.format,a]);return[h.trigger(b.formats.toString,b,[h.trigger(c.formatLabel,b,[a])||c.format,a]),function(a){return j&&a.push(c.klass.selected),k&&a.push(c.klass.highlighted),f&&f.pick==i&&a.push(c.klass.viewset),l&&a.push(c.klass.disabled),a.join(" ")}([c.klass.listItem]),"data-pick="+a.pick+" "+h.ariaAttr({role:"option",label:m,selected:j&&b.$node.val()===m?!0:null,activedescendant:k?!0:null,disabled:l?!0:null})]}})+h.node("li",h.node("button",c.clear,c.klass.buttonClear,"type=button data-clear=1"+(a?"":" disabled")+" "+h.ariaAttr({controls:b.$node[0].id})),"",h.ariaAttr({role:"presentation"})),c.klass.list,h.ariaAttr({role:"listbox",controls:b.$node[0].id}))},c.defaults=function(a){return{clear:"Clear",format:"h:i A",interval:30,closeOnSelect:!0,closeOnClear:!0,klass:{picker:a+" "+a+"--time",holder:a+"__holder",list:a+"__list",listItem:a+"__list-item",disabled:a+"__list-item--disabled",selected:a+"__list-item--selected",highlighted:a+"__list-item--highlighted",viewset:a+"__list-item--viewset",now:a+"__list-item--now",buttonClear:a+"__button--clear"}}}(a.klasses().picker),a.extend("pickatime",c)});
assets/js/fileupload/jquery.fileupload-jquery-ui.js ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jQuery File Upload jQuery UI Plugin 8.7.0
3
+ * https://github.com/blueimp/jQuery-File-Upload
4
+ *
5
+ * Copyright 2013, Sebastian Tschan
6
+ * https://blueimp.net
7
+ *
8
+ * Licensed under the MIT license:
9
+ * http://www.opensource.org/licenses/MIT
10
+ */
11
+
12
+ /*jslint nomen: true, unparam: true */
13
+ /*global define, window */
14
+
15
+ (function (factory) {
16
+ 'use strict';
17
+ if (typeof define === 'function' && define.amd) {
18
+ // Register as an anonymous AMD module:
19
+ define(['jquery', './jquery.fileupload-ui'], factory);
20
+ } else {
21
+ // Browser globals:
22
+ factory(window.jQuery);
23
+ }
24
+ }(function ($) {
25
+ 'use strict';
26
+
27
+ $.widget('blueimp.fileupload', $.blueimp.fileupload, {
28
+
29
+ options: {
30
+ progress: function (e, data) {
31
+ if (data.context) {
32
+ data.context.find('.progress').progressbar(
33
+ 'option',
34
+ 'value',
35
+ parseInt(data.loaded / data.total * 100, 10)
36
+ );
37
+ }
38
+ },
39
+ progressall: function (e, data) {
40
+ var $this = $(this);
41
+ $this.find('.fileupload-progress')
42
+ .find('.progress').progressbar(
43
+ 'option',
44
+ 'value',
45
+ parseInt(data.loaded / data.total * 100, 10)
46
+ ).end()
47
+ .find('.progress-extended').each(function () {
48
+ $(this).html(
49
+ ($this.data('blueimp-fileupload') ||
50
+ $this.data('fileupload'))
51
+ ._renderExtendedProgress(data)
52
+ );
53
+ });
54
+ }
55
+ },
56
+
57
+ _renderUpload: function (func, files) {
58
+ var node = this._super(func, files),
59
+ showIconText = $(window).width() > 480;
60
+ node.find('.progress').empty().progressbar();
61
+ node.find('.start').button({
62
+ icons: {primary: 'ui-icon-circle-arrow-e'},
63
+ text: showIconText
64
+ });
65
+ node.find('.cancel').button({
66
+ icons: {primary: 'ui-icon-cancel'},
67
+ text: showIconText
68
+ });
69
+ if (node.hasClass('fade')) {
70
+ node.hide();
71
+ }
72
+ return node;
73
+ },
74
+
75
+ _renderDownload: function (func, files) {
76
+ var node = this._super(func, files),
77
+ showIconText = $(window).width() > 480;
78
+ node.find('.delete').button({
79
+ icons: {primary: 'ui-icon-trash'},
80
+ text: showIconText
81
+ });
82
+ if (node.hasClass('fade')) {
83
+ node.hide();
84
+ }
85
+ return node;
86
+ },
87
+
88
+ _transition: function (node) {
89
+ var deferred = $.Deferred();
90
+ if (node.hasClass('fade')) {
91
+ node.fadeToggle(
92
+ this.options.transitionDuration,
93
+ this.options.transitionEasing,
94
+ function () {
95
+ deferred.resolveWith(node);
96
+ }
97
+ );
98
+ } else {
99
+ deferred.resolveWith(node);
100
+ }
101
+ return deferred;
102
+ },
103
+
104
+ _create: function () {
105
+ this._super();
106
+ this.element
107
+ .find('.fileupload-buttonbar')
108
+ .find('.fileinput-button').each(function () {
109
+ var input = $(this).find('input:file').detach();
110
+ $(this)
111
+ .button({icons: {primary: 'ui-icon-plusthick'}})
112
+ .append(input);
113
+ })
114
+ .end().find('.start')
115
+ .button({icons: {primary: 'ui-icon-circle-arrow-e'}})
116
+ .end().find('.cancel')
117
+ .button({icons: {primary: 'ui-icon-cancel'}})
118
+ .end().find('.delete')
119
+ .button({icons: {primary: 'ui-icon-trash'}})
120
+ .end().find('.progress').progressbar();
121
+ },
122
+
123
+ _destroy: function () {
124
+ this.element
125
+ .find('.fileupload-buttonbar')
126
+ .find('.fileinput-button').each(function () {
127
+ var input = $(this).find('input:file').detach();
128
+ $(this)
129
+ .button('destroy')
130
+ .append(input);
131
+ })
132
+ .end().find('.start')
133
+ .button('destroy')
134
+ .end().find('.cancel')
135
+ .button('destroy')
136
+ .end().find('.delete')
137
+ .button('destroy')
138
+ .end().find('.progress').progressbar('destroy');
139
+ this._super();
140
+ }
141
+
142
+ });
143
+
144
+ }));
assets/js/fileupload/jquery.fileupload-process.js ADDED
@@ -0,0 +1,172 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jQuery File Upload Processing Plugin 1.3.0
3
+ * https://github.com/blueimp/jQuery-File-Upload
4
+ *
5
+ * Copyright 2012, Sebastian Tschan
6
+ * https://blueimp.net
7
+ *
8
+ * Licensed under the MIT license:
9
+ * http://www.opensource.org/licenses/MIT
10
+ */
11
+
12
+ /*jslint nomen: true, unparam: true */
13
+ /*global define, window */
14
+
15
+ (function (factory) {
16
+ 'use strict';
17
+ if (typeof define === 'function' && define.amd) {
18
+ // Register as an anonymous AMD module:
19
+ define([
20
+ 'jquery',
21
+ './jquery.fileupload'
22
+ ], factory);
23
+ } else {
24
+ // Browser globals:
25
+ factory(
26
+ window.jQuery
27
+ );
28
+ }
29
+ }(function ($) {
30
+ 'use strict';
31
+
32
+ var originalAdd = $.blueimp.fileupload.prototype.options.add;
33
+
34
+ // The File Upload Processing plugin extends the fileupload widget
35
+ // with file processing functionality:
36
+ $.widget('blueimp.fileupload', $.blueimp.fileupload, {
37
+
38
+ options: {
39
+ // The list of processing actions:
40
+ processQueue: [
41
+ /*
42
+ {
43
+ action: 'log',
44
+ type: 'debug'
45
+ }
46
+ */
47
+ ],
48
+ add: function (e, data) {
49
+ var $this = $(this);
50
+ data.process(function () {
51
+ return $this.fileupload('process', data);
52
+ });
53
+ originalAdd.call(this, e, data);
54
+ }
55
+ },
56
+
57
+ processActions: {
58
+ /*
59
+ log: function (data, options) {
60
+ console[options.type](
61
+ 'Processing "' + data.files[data.index].name + '"'
62
+ );
63
+ }
64
+ */
65
+ },
66
+
67
+ _processFile: function (data, originalData) {
68
+ var that = this,
69
+ dfd = $.Deferred().resolveWith(that, [data]),
70
+ chain = dfd.promise();
71
+ this._trigger('process', null, data);
72
+ $.each(data.processQueue, function (i, settings) {
73
+ var func = function (data) {
74
+ if (originalData.errorThrown) {
75
+ return $.Deferred()
76
+ .rejectWith(that, [originalData]).promise();
77
+ }
78
+ return that.processActions[settings.action].call(
79
+ that,
80
+ data,
81
+ settings
82
+ );
83
+ };
84
+ chain = chain.pipe(func, settings.always && func);
85
+ });
86
+ chain
87
+ .done(function () {
88
+ that._trigger('processdone', null, data);
89
+ that._trigger('processalways', null, data);
90
+ })
91
+ .fail(function () {
92
+ that._trigger('processfail', null, data);
93
+ that._trigger('processalways', null, data);
94
+ });
95
+ return chain;
96
+ },
97
+
98
+ // Replaces the settings of each processQueue item that
99
+ // are strings starting with an "@", using the remaining
100
+ // substring as key for the option map,
101
+ // e.g. "@autoUpload" is replaced with options.autoUpload:
102
+ _transformProcessQueue: function (options) {
103
+ var processQueue = [];
104
+ $.each(options.processQueue, function () {
105
+ var settings = {},
106
+ action = this.action,
107
+ prefix = this.prefix === true ? action : this.prefix;
108
+ $.each(this, function (key, value) {
109
+ if ($.type(value) === 'string' &&
110
+ value.charAt(0) === '@') {
111
+ settings[key] = options[
112
+ value.slice(1) || (prefix ? prefix +
113
+ key.charAt(0).toUpperCase() + key.slice(1) : key)
114
+ ];
115
+ } else {
116
+ settings[key] = value;
117
+ }
118
+
119
+ });
120
+ processQueue.push(settings);
121
+ });
122
+ options.processQueue = processQueue;
123
+ },
124
+
125
+ // Returns the number of files currently in the processsing queue:
126
+ processing: function () {
127
+ return this._processing;
128
+ },
129
+
130
+ // Processes the files given as files property of the data parameter,
131
+ // returns a Promise object that allows to bind callbacks:
132
+ process: function (data) {
133
+ var that = this,
134
+ options = $.extend({}, this.options, data);
135
+ if (options.processQueue && options.processQueue.length) {
136
+ this._transformProcessQueue(options);
137
+ if (this._processing === 0) {
138
+ this._trigger('processstart');
139
+ }
140
+ $.each(data.files, function (index) {
141
+ var opts = index ? $.extend({}, options) : options,
142
+ func = function () {
143
+ if (data.errorThrown) {
144
+ return $.Deferred()
145
+ .rejectWith(that, [data]).promise();
146
+ }
147
+ return that._processFile(opts, data);
148
+ };
149
+ opts.index = index;
150
+ that._processing += 1;
151
+ that._processingQueue = that._processingQueue.pipe(func, func)
152
+ .always(function () {
153
+ that._processing -= 1;
154
+ if (that._processing === 0) {
155
+ that._trigger('processstop');
156
+ }
157
+ });
158
+ });
159
+ }
160
+ return this._processingQueue;
161
+ },
162
+
163
+ _create: function () {
164
+ this._super();
165
+ this._processing = 0;
166
+ this._processingQueue = $.Deferred().resolveWith(this)
167
+ .promise();
168
+ }
169
+
170
+ });
171
+
172
+ }));
assets/js/fileupload/jquery.fileupload-ui.js ADDED
@@ -0,0 +1,699 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jQuery File Upload User Interface Plugin 9.0.0
3
+ * https://github.com/blueimp/jQuery-File-Upload
4
+ *
5
+ * Copyright 2010, Sebastian Tschan
6
+ * https://blueimp.net
7
+ *
8
+ * Licensed under the MIT license:
9
+ * http://www.opensource.org/licenses/MIT
10
+ */
11
+
12
+ /*jslint nomen: true, unparam: true, regexp: true */
13
+ /*global define, window, URL, webkitURL, FileReader */
14
+
15
+ (function (factory) {
16
+ 'use strict';
17
+ if (typeof define === 'function' && define.amd) {
18
+ // Register as an anonymous AMD module:
19
+ define([
20
+ 'jquery',
21
+ 'tmpl',
22
+ './jquery.fileupload-image',
23
+ './jquery.fileupload-audio',
24
+ './jquery.fileupload-video',
25
+ './jquery.fileupload-validate'
26
+ ], factory);
27
+ } else {
28
+ // Browser globals:
29
+ factory(
30
+ window.jQuery,
31
+ window.tmpl
32
+ );
33
+ }
34
+ }(function ($, tmpl, loadImage) {
35
+ 'use strict';
36
+
37
+ $.blueimp.fileupload.prototype._specialOptions.push(
38
+ 'filesContainer',
39
+ 'uploadTemplateId',
40
+ 'downloadTemplateId'
41
+ );
42
+
43
+ // The UI version extends the file upload widget
44
+ // and adds complete user interface interaction:
45
+ $.widget('blueimp.fileupload', $.blueimp.fileupload, {
46
+
47
+ options: {
48
+ // By default, files added to the widget are uploaded as soon
49
+ // as the user clicks on the start buttons. To enable automatic
50
+ // uploads, set the following option to true:
51
+ autoUpload: false,
52
+ // The ID of the upload template:
53
+ uploadTemplateId: 'template-upload',
54
+ // The ID of the download template:
55
+ downloadTemplateId: 'template-download',
56
+ // The container for the list of files. If undefined, it is set to
57
+ // an element with class "files" inside of the widget element:
58
+ filesContainer: undefined,
59
+ // By default, files are appended to the files container.
60
+ // Set the following option to true, to prepend files instead:
61
+ prependFiles: false,
62
+ // The expected data type of the upload response, sets the dataType
63
+ // option of the $.ajax upload requests:
64
+ dataType: 'json',
65
+
66
+ // Function returning the current number of files,
67
+ // used by the maxNumberOfFiles validation:
68
+ getNumberOfFiles: function () {
69
+ return this.filesContainer.children()
70
+ .not('.processing').length;
71
+ },
72
+
73
+ // Callback to retrieve the list of files from the server response:
74
+ getFilesFromResponse: function (data) {
75
+ if (data.result && $.isArray(data.result.files)) {
76
+ return data.result.files;
77
+ }
78
+ return [];
79
+ },
80
+
81
+ // The add callback is invoked as soon as files are added to the fileupload
82
+ // widget (via file input selection, drag & drop or add API call).
83
+ // See the basic file upload widget for more information:
84
+ add: function (e, data) {
85
+ if (e.isDefaultPrevented()) {
86
+ return false;
87
+ }
88
+ var $this = $(this),
89
+ that = $this.data('blueimp-fileupload') ||
90
+ $this.data('fileupload'),
91
+ options = that.options;
92
+ data.context = that._renderUpload(data.files)
93
+ .data('data', data)
94
+ .addClass('processing');
95
+ options.filesContainer[
96
+ options.prependFiles ? 'prepend' : 'append'
97
+ ](data.context);
98
+ that._forceReflow(data.context);
99
+ $.when(
100
+ that._transition(data.context),
101
+ data.process(function () {
102
+ return $this.fileupload('process', data);
103
+ })
104
+ ).always(function () {
105
+ data.context.each(function (index) {
106
+ $(this).find('.size').text(
107
+ that._formatFileSize(data.files[index].size)
108
+ );
109
+ }).removeClass('processing');
110
+ that._renderPreviews(data);
111
+ }).done(function () {
112
+ data.context.find('.start').prop('disabled', false);
113
+ if ((that._trigger('added', e, data) !== false) &&
114
+ (options.autoUpload || data.autoUpload) &&
115
+ data.autoUpload !== false) {
116
+ data.submit();
117
+ }
118
+ }).fail(function () {
119
+ if (data.files.error) {
120
+ data.context.each(function (index) {
121
+ var error = data.files[index].error;
122
+ if (error) {
123
+ $(this).find('.error').text(error);
124
+ }
125
+ });
126
+ }
127
+ });
128
+ },
129
+ // Callback for the start of each file upload request:
130
+ send: function (e, data) {
131
+ if (e.isDefaultPrevented()) {
132
+ return false;
133
+ }
134
+ var that = $(this).data('blueimp-fileupload') ||
135
+ $(this).data('fileupload');
136
+ if (data.context && data.dataType &&
137
+ data.dataType.substr(0, 6) === 'iframe') {
138
+ // Iframe Transport does not support progress events.
139
+ // In lack of an indeterminate progress bar, we set
140
+ // the progress to 100%, showing the full animated bar:
141
+ data.context
142
+ .find('.progress').addClass(
143
+ !$.support.transition && 'progress-animated'
144
+ )
145
+ .attr('aria-valuenow', 100)
146
+ .children().first().css(
147
+ 'width',
148
+ '100%'
149
+ );
150
+ }
151
+ return that._trigger('sent', e, data);
152
+ },
153
+ // Callback for successful uploads:
154
+ done: function (e, data) {
155
+ if (e.isDefaultPrevented()) {
156
+ return false;
157
+ }
158
+ var that = $(this).data('blueimp-fileupload') ||
159
+ $(this).data('fileupload'),
160
+ getFilesFromResponse = data.getFilesFromResponse ||
161
+ that.options.getFilesFromResponse,
162
+ files = getFilesFromResponse(data),
163
+ template,
164
+ deferred;
165
+ if (data.context) {
166
+ data.context.each(function (index) {
167
+ var file = files[index] ||
168
+ {error: 'Empty file upload result'};
169
+ deferred = that._addFinishedDeferreds();
170
+ that._transition($(this)).done(
171
+ function () {
172
+ var node = $(this);
173
+ template = that._renderDownload([file])
174
+ .replaceAll(node);
175
+ that._forceReflow(template);
176
+ that._transition(template).done(
177
+ function () {
178
+ data.context = $(this);
179
+ that._trigger('completed', e, data);
180
+ that._trigger('finished', e, data);
181
+ deferred.resolve();
182
+ }
183
+ );
184
+ }
185
+ );
186
+ });
187
+ } else {
188
+ template = that._renderDownload(files)[
189
+ that.options.prependFiles ? 'prependTo' : 'appendTo'
190
+ ](that.options.filesContainer);
191
+ that._forceReflow(template);
192
+ deferred = that._addFinishedDeferreds();
193
+ that._transition(template).done(
194
+ function () {
195
+ data.context = $(this);
196
+ that._trigger('completed', e, data);
197
+ that._trigger('finished', e, data);
198
+ deferred.resolve();
199
+ }
200
+ );
201
+ }
202
+ },
203
+ // Callback for failed (abort or error) uploads:
204
+ fail: function (e, data) {
205
+ if (e.isDefaultPrevented()) {
206
+ return false;
207
+ }
208
+ var that = $(this).data('blueimp-fileupload') ||
209
+ $(this).data('fileupload'),
210
+ template,
211
+ deferred;
212
+ if (data.context) {
213
+ data.context.each(function (index) {
214
+ if (data.errorThrown !== 'abort') {
215
+ var file = data.files[index];
216
+ file.error = file.error || data.errorThrown ||
217
+ true;
218
+ deferred = that._addFinishedDeferreds();
219
+ that._transition($(this)).done(
220
+ function () {
221
+ var node = $(this);
222
+ template = that._renderDownload([file])
223
+ .replaceAll(node);
224
+ that._forceReflow(template);
225
+ that._transition(template).done(
226
+ function () {
227
+ data.context = $(this);
228
+ that._trigger('failed', e, data);
229
+ that._trigger('finished', e, data);
230
+ deferred.resolve();
231
+ }
232
+ );
233
+ }
234
+ );
235
+ } else {
236
+ deferred = that._addFinishedDeferreds();
237
+ that._transition($(this)).done(
238
+ function () {
239
+ $(this).remove();
240
+ that._trigger('failed', e, data);
241
+ that._trigger('finished', e, data);
242
+ deferred.resolve();
243
+ }
244
+ );
245
+ }
246
+ });
247
+ } else if (data.errorThrown !== 'abort') {
248
+ data.context = that._renderUpload(data.files)[
249
+ that.options.prependFiles ? 'prependTo' : 'appendTo'
250
+ ](that.options.filesContainer)
251
+ .data('data', data);
252
+ that._forceReflow(data.context);
253
+ deferred = that._addFinishedDeferreds();
254
+ that._transition(data.context).done(
255
+ function () {
256
+ data.context = $(this);
257
+ that._trigger('failed', e, data);
258
+ that._trigger('finished', e, data);
259
+ deferred.resolve();
260
+ }
261
+ );
262
+ } else {
263
+ that._trigger('failed', e, data);
264
+ that._trigger('finished', e, data);
265
+ that._addFinishedDeferreds().resolve();
266
+ }
267
+ },
268
+ // Callback for upload progress events:
269
+ progress: function (e, data) {
270
+ if (e.isDefaultPrevented()) {
271
+ return false;
272
+ }
273
+ var progress = Math.floor(data.loaded / data.total * 100);
274
+ if (data.context) {
275
+ data.context.each(function () {
276
+ $(this).find('.progress')
277
+ .attr('aria-valuenow', progress)
278
+ .children().first().css(
279
+ 'width',
280
+ progress + '%'
281
+ );
282
+ });
283
+ }
284
+ },
285
+ // Callback for global upload progress events:
286
+ progressall: function (e, data) {
287
+ if (e.isDefaultPrevented()) {
288
+ return false;
289
+ }
290
+ var $this = $(this),
291
+ progress = Math.floor(data.loaded / data.total * 100),
292
+ globalProgressNode = $this.find('.fileupload-progress'),
293
+ extendedProgressNode = globalProgressNode
294
+ .find('.progress-extended');
295
+ if (extendedProgressNode.length) {
296
+ extendedProgressNode.html(
297
+ ($this.data('blueimp-fileupload') || $this.data('fileupload'))
298
+ ._renderExtendedProgress(data)
299
+ );
300
+ }
301
+ globalProgressNode
302
+ .find('.progress')
303
+ .attr('aria-valuenow', progress)
304
+ .children().first().css(
305
+ 'width',
306
+ progress + '%'
307
+ );
308
+ },
309
+ // Callback for uploads start, equivalent to the global ajaxStart event:
310
+ start: function (e) {
311
+ if (e.isDefaultPrevented()) {
312
+ return false;
313
+ }
314
+ var that = $(this).data('blueimp-fileupload') ||
315
+ $(this).data('fileupload');
316
+ that._resetFinishedDeferreds();
317
+ that._transition($(this).find('.fileupload-progress')).done(
318
+ function () {
319
+ that._trigger('started', e);
320
+ }
321
+ );
322
+ },
323
+ // Callback for uploads stop, equivalent to the global ajaxStop event:
324
+ stop: function (e) {
325
+ if (e.isDefaultPrevented()) {
326
+ return false;
327
+ }
328
+ var that = $(this).data('blueimp-fileupload') ||
329
+ $(this).data('fileupload'),
330
+ deferred = that._addFinishedDeferreds();
331
+ $.when.apply($, that._getFinishedDeferreds())
332
+ .done(function () {
333
+ that._trigger('stopped', e);
334
+ });
335
+ that._transition($(this).find('.fileupload-progress')).done(
336
+ function () {
337
+ $(this).find('.progress')
338
+ .attr('aria-valuenow', '0')
339
+ .children().first().css('width', '0%');
340
+ $(this).find('.progress-extended').html('&nbsp;');
341
+ deferred.resolve();
342
+ }
343
+ );
344
+ },
345
+ processstart: function (e) {
346
+ if (e.isDefaultPrevented()) {
347
+ return false;
348
+ }
349
+ $(this).addClass('fileupload-processing');
350
+ },
351
+ processstop: function (e) {
352
+ if (e.isDefaultPrevented()) {
353
+ return false;
354
+ }
355
+ $(this).removeClass('fileupload-processing');
356
+ },
357
+ // Callback for file deletion:
358
+ destroy: function (e, data) {
359
+ if (e.isDefaultPrevented()) {
360
+ return false;
361
+ }
362
+ var that = $(this).data('blueimp-fileupload') ||
363
+ $(this).data('fileupload'),
364
+ removeNode = function () {
365
+ that._transition(data.context).done(
366
+ function () {
367
+ $(this).remove();
368
+ that._trigger('destroyed', e, data);
369
+ }
370
+ );
371
+ };
372
+ if (data.url) {
373
+ data.dataType = data.dataType || that.options.dataType;
374
+ $.ajax(data).done(removeNode);
375
+ } else {
376
+ removeNode();
377
+ }
378
+ }
379
+ },
380
+
381
+ _resetFinishedDeferreds: function () {
382
+ this._finishedUploads = [];
383
+ },
384
+
385
+ _addFinishedDeferreds: function (deferred) {
386
+ if (!deferred) {
387
+ deferred = $.Deferred();
388
+ }
389
+ this._finishedUploads.push(deferred);
390
+ return deferred;
391
+ },
392
+
393
+ _getFinishedDeferreds: function () {
394
+ return this._finishedUploads;
395
+ },
396
+
397
+ // Link handler, that allows to download files
398
+ // by drag & drop of the links to the desktop:
399
+ _enableDragToDesktop: function () {
400
+ var link = $(this),
401
+ url = link.prop('href'),
402
+ name = link.prop('download'),
403
+ type = 'application/octet-stream';
404
+ link.bind('dragstart', function (e) {
405
+ try {
406
+ e.originalEvent.dataTransfer.setData(
407
+ 'DownloadURL',
408
+ [type, name, url].join(':')
409
+ );
410
+ } catch (ignore) {}
411
+ });
412
+ },
413
+
414
+ _formatFileSize: function (bytes) {
415
+ if (typeof bytes !== 'number') {
416
+ return '';
417
+ }
418
+ if (bytes >= 1000000000) {
419
+ return (bytes / 1000000000).toFixed(2) + ' GB';
420
+ }
421
+ if (bytes >= 1000000) {
422
+ return (bytes / 1000000).toFixed(2) + ' MB';
423
+ }
424
+ return (bytes / 1000).toFixed(2) + ' KB';
425
+ },
426
+
427
+ _formatBitrate: function (bits) {
428
+ if (typeof bits !== 'number') {
429
+ return '';
430
+ }
431
+ if (bits >= 1000000000) {
432
+ return (bits / 1000000000).toFixed(2) + ' Gbit/s';
433
+ }
434
+ if (bits >= 1000000) {
435
+ return (bits / 1000000).toFixed(2) + ' Mbit/s';
436
+ }
437
+ if (bits >= 1000) {
438
+ return (bits / 1000).toFixed(2) + ' kbit/s';
439
+ }
440
+ return bits.toFixed(2) + ' bit/s';
441
+ },
442
+
443
+ _formatTime: function (seconds) {
444
+ var date = new Date(seconds * 1000),
445
+ days = Math.floor(seconds / 86400);
446
+ days = days ? days + 'd ' : '';
447
+ return days +
448
+ ('0' + date.getUTCHours()).slice(-2) + ':' +
449
+ ('0' + date.getUTCMinutes()).slice(-2) + ':' +
450
+ ('0' + date.getUTCSeconds()).slice(-2);
451
+ },
452
+
453
+ _formatPercentage: function (floatValue) {
454
+ return (floatValue * 100).toFixed(2) + ' %';
455
+ },
456
+
457
+ _renderExtendedProgress: function (data) {
458
+ return this._formatBitrate(data.bitrate) + ' | ' +
459
+ this._formatTime(
460
+ (data.total - data.loaded) * 8 / data.bitrate
461
+ ) + ' | ' +
462
+ this._formatPercentage(
463
+ data.loaded / data.total
464
+ ) + ' | ' +
465
+ this._formatFileSize(data.loaded) + ' / ' +
466
+ this._formatFileSize(data.total);
467
+ },
468
+
469
+ _renderTemplate: function (func, files) {
470
+ if (!func) {
471
+ return $();
472
+ }
473
+ var result = func({
474
+ files: files,
475
+ formatFileSize: this._formatFileSize,
476
+ options: this.options
477
+ });
478
+ if (result instanceof $) {
479
+ return result;
480
+ }
481
+ return $(this.options.templatesContainer).html(result).children();
482
+ },
483
+
484
+ _renderPreviews: function (data) {
485
+ data.context.find('.preview').each(function (index, elm) {
486
+ $(elm).append(data.files[index].preview);
487
+ });
488
+ },
489
+
490
+ _renderUpload: function (files) {
491
+ return this._renderTemplate(
492
+ this.options.uploadTemplate,
493
+ files
494
+ );
495
+ },
496
+
497
+ _renderDownload: function (files) {
498
+ return this._renderTemplate(
499
+ this.options.downloadTemplate,
500
+ files
501
+ ).find('a[download]').each(this._enableDragToDesktop).end();
502
+ },
503
+
504
+ _startHandler: function (e) {
505
+ e.preventDefault();
506
+ var button = $(e.currentTarget),
507
+ template = button.closest('.template-upload'),
508
+ data = template.data('data');
509
+ button.prop('disabled', true);
510
+ if (data && data.submit) {
511
+ data.submit();
512
+ }
513
+ },
514
+
515
+ _cancelHandler: function (e) {
516
+ e.preventDefault();
517
+ var template = $(e.currentTarget)
518
+ .closest('.template-upload,.template-download'),
519
+ data = template.data('data') || {};
520
+ if (!data.jqXHR) {
521
+ data.context = data.context || template;
522
+ data.errorThrown = 'abort';
523
+ this._trigger('fail', e, data);
524
+ } else {
525
+ data.jqXHR.abort();
526
+ }
527
+ },
528
+
529
+ _deleteHandler: function (e) {
530
+ e.preventDefault();
531
+ var button = $(e.currentTarget);
532
+ this._trigger('destroy', e, $.extend({
533
+ context: button.closest('.template-download'),
534
+ type: 'DELETE'
535
+ }, button.data()));
536
+ },
537
+
538
+ _forceReflow: function (node) {
539
+ return $.support.transition && node.length &&
540
+ node[0].offsetWidth;
541
+ },
542
+
543
+ _transition: function (node) {
544
+ var dfd = $.Deferred();
545
+ if ($.support.transition && node.hasClass('fade') && node.is(':visible')) {
546
+ node.bind(
547
+ $.support.transition.end,
548
+ function (e) {
549
+ // Make sure we don't respond to other transitions events
550
+ // in the container element, e.g. from button elements:
551
+ if (e.target === node[0]) {
552
+ node.unbind($.support.transition.end);
553
+ dfd.resolveWith(node);
554
+ }
555
+ }
556
+ ).toggleClass('in');
557
+ } else {
558
+ node.toggleClass('in');
559
+ dfd.resolveWith(node);
560
+ }
561
+ return dfd;
562
+ },
563
+
564
+ _initButtonBarEventHandlers: function () {
565
+ var fileUploadButtonBar = this.element.find('.fileupload-buttonbar'),
566
+ filesList = this.options.filesContainer;
567
+ this._on(fileUploadButtonBar.find('.start'), {
568
+ click: function (e) {
569
+ e.preventDefault();
570
+ filesList.find('.start').click();
571
+ }
572
+ });
573
+ this._on(fileUploadButtonBar.find('.cancel'), {
574
+ click: function (e) {
575
+ e.preventDefault();
576
+ filesList.find('.cancel').click();
577
+ }
578
+ });
579
+ this._on(fileUploadButtonBar.find('.delete'), {
580
+ click: function (e) {
581
+ e.preventDefault();
582
+ filesList.find('.toggle:checked')
583
+ .closest('.template-download')
584
+ .find('.delete').click();
585
+ fileUploadButtonBar.find('.toggle')
586
+ .prop('checked', false);
587
+ }
588
+ });
589
+ this._on(fileUploadButtonBar.find('.toggle'), {
590
+ change: function (e) {
591
+ filesList.find('.toggle').prop(
592
+ 'checked',
593
+ $(e.currentTarget).is(':checked')
594
+ );
595
+ }
596
+ });
597
+ },
598
+
599
+ _destroyButtonBarEventHandlers: function () {
600
+ this._off(
601
+ this.element.find('.fileupload-buttonbar')
602
+ .find('.start, .cancel, .delete'),
603
+ 'click'
604
+ );
605
+ this._off(
606
+ this.element.find('.fileupload-buttonbar .toggle'),
607
+ 'change.'
608
+ );
609
+ },
610
+
611
+ _initEventHandlers: function () {
612
+ this._super();
613
+ this._on(this.options.filesContainer, {
614
+ 'click .start': this._startHandler,
615
+ 'click .cancel': this._cancelHandler,
616
+ 'click .delete': this._deleteHandler
617
+ });
618
+ this._initButtonBarEventHandlers();
619
+ },
620
+
621
+ _destroyEventHandlers: function () {
622
+ this._destroyButtonBarEventHandlers();
623
+ this._off(this.options.filesContainer, 'click');
624
+ this._super();
625
+ },
626
+
627
+ _enableFileInputButton: function () {
628
+ this.element.find('.fileinput-button input')
629
+ .prop('disabled', false)
630
+ .parent().removeClass('disabled');
631
+ },
632
+
633
+ _disableFileInputButton: function () {
634
+ this.element.find('.fileinput-button input')
635
+ .prop('disabled', true)
636
+ .parent().addClass('disabled');
637
+ },
638
+
639
+ _initTemplates: function () {
640
+ var options = this.options;
641
+ options.templatesContainer = this.document[0].createElement(
642
+ options.filesContainer.prop('nodeName')
643
+ );
644
+ if (tmpl) {
645
+ if (options.uploadTemplateId) {
646
+ options.uploadTemplate = tmpl(options.uploadTemplateId);
647
+ }
648
+ if (options.downloadTemplateId) {
649
+ options.downloadTemplate = tmpl(options.downloadTemplateId);
650
+ }
651
+ }
652
+ },
653
+
654
+ _initFilesContainer: function () {
655
+ var options = this.options;
656
+ if (options.filesContainer === undefined) {
657
+ options.filesContainer = this.element.find('.files');
658
+ } else if (!(options.filesContainer instanceof $)) {
659
+ options.filesContainer = $(options.filesContainer);
660
+ }
661
+ },
662
+
663
+ _initSpecialOptions: function () {
664
+ this._super();
665
+ this._initFilesContainer();
666
+ this._initTemplates();
667
+ },
668
+
669
+ _create: function () {
670
+ this._super();
671
+ this._resetFinishedDeferreds();
672
+ if (!$.support.fileInput) {
673
+ this._disableFileInputButton();
674
+ }
675
+ },
676
+
677
+ enable: function () {
678
+ var wasDisabled = false;
679
+ if (this.options.disabled) {
680
+ wasDisabled = true;
681
+ }
682
+ this._super();
683
+ if (wasDisabled) {
684
+ this.element.find('input, button').prop('disabled', false);
685
+ this._enableFileInputButton();
686
+ }
687
+ },
688
+
689
+ disable: function () {
690
+ if (!this.options.disabled) {
691
+ this.element.find('input, button').prop('disabled', true);
692
+ this._disableFileInputButton();
693
+ }
694
+ this._super();
695
+ }
696
+
697
+ });
698
+
699
+ }));
assets/js/fileupload/jquery.fileupload.js ADDED
@@ -0,0 +1,1367 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jQuery File Upload Plugin 5.34.0
3
+ * https://github.com/blueimp/jQuery-File-Upload
4
+ *
5
+ * Copyright 2010, Sebastian Tschan
6
+ * https://blueimp.net
7
+ *
8
+ * Licensed under the MIT license:
9
+ * http://www.opensource.org/licenses/MIT
10
+ */
11
+
12
+ /*jslint nomen: true, unparam: true, regexp: true */
13
+ /*global define, window, document, location, File, Blob, FormData */
14
+
15
+ (function (factory) {
16
+ 'use strict';
17
+ if (typeof define === 'function' && define.amd) {
18
+ // Register as an anonymous AMD module:
19
+ define([
20
+ 'jquery',
21
+ 'jquery.ui.widget'
22
+ ], factory);
23
+ } else {
24
+ // Browser globals:
25
+ factory(window.jQuery);
26
+ }
27
+ }(function ($) {
28
+ 'use strict';
29
+
30
+ // Detect file input support, based on
31
+ // http://viljamis.com/blog/2012/file-upload-support-on-mobile/
32
+ $.support.fileInput = !(new RegExp(
33
+ // Handle devices which give false positives for the feature detection:
34
+ '(Android (1\\.[0156]|2\\.[01]))' +
35
+ '|(Windows Phone (OS 7|8\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)' +
36
+ '|(w(eb)?OSBrowser)|(webOS)' +
37
+ '|(Kindle/(1\\.0|2\\.[05]|3\\.0))'
38
+ ).test(window.navigator.userAgent) ||
39
+ // Feature detection for all other devices:
40
+ $('<input type="file">').prop('disabled'));
41
+
42
+ // The FileReader API is not actually used, but works as feature detection,
43
+ // as e.g. Safari supports XHR file uploads via the FormData API,
44
+ // but not non-multipart XHR file uploads:
45
+ $.support.xhrFileUpload = !!(window.XMLHttpRequestUpload && window.FileReader);
46
+ $.support.xhrFormDataFileUpload = !!window.FormData;
47
+
48
+ // Detect support for Blob slicing (required for chunked uploads):
49
+ $.support.blobSlice = window.Blob && (Blob.prototype.slice ||
50
+ Blob.prototype.webkitSlice || Blob.prototype.mozSlice);
51
+
52
+ // The fileupload widget listens for change events on file input fields defined
53
+ // via fileInput setting and paste or drop events of the given dropZone.
54
+ // In addition to the default jQuery Widget methods, the fileupload widget
55
+ // exposes the "add" and "send" methods, to add or directly send files using
56
+ // the fileupload API.
57
+ // By default, files added via file input selection, paste, drag & drop or
58
+ // "add" method are uploaded immediately, but it is possible to override
59
+ // the "add" callback option to queue file uploads.
60
+ $.widget('blueimp.fileupload', {
61
+
62
+ options: {
63
+ // The drop target element(s), by the default the complete document.
64
+ // Set to null to disable drag & drop support:
65
+ dropZone: $(document),
66
+ // The paste target element(s), by the default the complete document.
67
+ // Set to null to disable paste support:
68
+ pasteZone: $(document),
69
+ // The file input field(s), that are listened to for change events.
70
+ // If undefined, it is set to the file input fields inside
71
+ // of the widget element on plugin initialization.
72
+ // Set to null to disable the change listener.
73
+ fileInput: undefined,
74
+ // By default, the file input field is replaced with a clone after
75
+ // each input field change event. This is required for iframe transport
76
+ // queues and allows change events to be fired for the same file
77
+ // selection, but can be disabled by setting the following option to false:
78
+ replaceFileInput: true,
79
+ // The parameter name for the file form data (the request argument name).
80
+ // If undefined or empty, the name property of the file input field is
81
+ // used, or "files[]" if the file input name property is also empty,
82
+ // can be a string or an array of strings:
83
+ paramName: undefined,
84
+ // By default, each file of a selection is uploaded using an individual
85
+ // request for XHR type uploads. Set to false to upload file
86
+ // selections in one request each:
87
+ singleFileUploads: true,
88
+ // To limit the number of files uploaded with one XHR request,
89
+ // set the following option to an integer greater than 0:
90
+ limitMultiFileUploads: undefined,
91
+ // Set the following option to true to issue all file upload requests
92
+ // in a sequential order:
93
+ sequentialUploads: false,
94
+ // To limit the number of concurrent uploads,
95
+ // set the following option to an integer greater than 0:
96
+ limitConcurrentUploads: undefined,
97
+ // Set the following option to true to force iframe transport uploads:
98
+ forceIframeTransport: false,
99
+ // Set the following option to the location of a redirect url on the
100
+ // origin server, for cross-domain iframe transport uploads:
101
+ redirect: undefined,
102
+ // The parameter name for the redirect url, sent as part of the form
103
+ // data and set to 'redirect' if this option is empty:
104
+ redirectParamName: undefined,
105
+ // Set the following option to the location of a postMessage window,
106
+ // to enable postMessage transport uploads:
107
+ postMessage: undefined,
108
+ // By default, XHR file uploads are sent as multipart/form-data.
109
+ // The iframe transport is always using multipart/form-data.
110
+ // Set to false to enable non-multipart XHR uploads:
111
+ multipart: true,
112
+ // To upload large files in smaller chunks, set the following option
113
+ // to a preferred maximum chunk size. If set to 0, null or undefined,
114
+ // or the browser does not support the required Blob API, files will
115
+ // be uploaded as a whole.
116
+ maxChunkSize: undefined,
117
+ // When a non-multipart upload or a chunked multipart upload has been
118
+ // aborted, this option can be used to resume the upload by setting
119
+ // it to the size of the already uploaded bytes. This option is most
120
+ // useful when modifying the options object inside of the "add" or
121
+ // "send" callbacks, as the options are cloned for each file upload.
122
+ uploadedBytes: undefined,
123
+ // By default, failed (abort or error) file uploads are removed from the
124
+ // global progress calculation. Set the following option to false to
125
+ // prevent recalculating the global progress data:
126
+ recalculateProgress: true,
127
+ // Interval in milliseconds to calculate and trigger progress events:
128
+ progressInterval: 100,
129
+ // Interval in milliseconds to calculate progress bitrate:
130
+ bitrateInterval: 500,
131
+ // By default, uploads are started automatically when adding files:
132
+ autoUpload: true,
133
+
134
+ // Error and info messages:
135
+ messages: {
136
+ uploadedBytes: 'Uploaded bytes exceed file size'
137
+ },
138
+
139
+ // Translation function, gets the message key to be translated
140
+ // and an object with context specific data as arguments:
141
+ i18n: function (message, context) {
142
+ message = this.messages[message] || message.toString();
143
+ if (context) {
144
+ $.each(context, function (key, value) {
145
+ message = message.replace('{' + key + '}', value);
146
+ });
147
+ }
148
+ return message;
149
+ },
150
+
151
+ // Additional form data to be sent along with the file uploads can be set
152
+ // using this option, which accepts an array of objects with name and
153
+ // value properties, a function returning such an array, a FormData
154
+ // object (for XHR file uploads), or a simple object.
155
+ // The form of the first fileInput is given as parameter to the function:
156
+ formData: function (form) {
157
+ return form.serializeArray();
158
+ },
159
+
160
+ // The add callback is invoked as soon as files are added to the fileupload
161
+ // widget (via file input selection, drag & drop, paste or add API call).
162
+ // If the singleFileUploads option is enabled, this callback will be
163
+ // called once for each file in the selection for XHR file uploads, else
164
+ // once for each file selection.
165
+ //
166
+ // The upload starts when the submit method is invoked on the data parameter.
167
+ // The data object contains a files property holding the added files
168
+ // and allows you to override plugin options as well as define ajax settings.
169
+ //
170
+ // Listeners for this callback can also be bound the following way:
171
+ // .bind('fileuploadadd', func);
172
+ //
173
+ // data.submit() returns a Promise object and allows to attach additional
174
+ // handlers using jQuery's Deferred callbacks:
175
+ // data.submit().done(func).fail(func).always(func);
176
+ add: function (e, data) {
177
+ if (e.isDefaultPrevented()) {
178
+ return false;
179
+ }
180
+ if (data.autoUpload || (data.autoUpload !== false &&
181
+ $(this).fileupload('option', 'autoUpload'))) {
182
+ data.process().done(function () {
183
+ data.submit();
184
+ });
185
+ }
186
+ },
187
+
188
+ // Other callbacks:
189
+
190
+ // Callback for the submit event of each file upload:
191
+ // submit: function (e, data) {}, // .bind('fileuploadsubmit', func);
192
+
193
+ // Callback for the start of each file upload request:
194
+ // send: function (e, data) {}, // .bind('fileuploadsend', func);
195
+
196
+ // Callback for successful uploads:
197
+ // done: function (e, data) {}, // .bind('fileuploaddone', func);
198
+
199
+ // Callback for failed (abort or error) uploads:
200
+ // fail: function (e, data) {}, // .bind('fileuploadfail', func);
201
+
202
+ // Callback for completed (success, abort or error) requests:
203
+ // always: function (e, data) {}, // .bind('fileuploadalways', func);
204
+
205
+ // Callback for upload progress events:
206
+ // progress: function (e, data) {}, // .bind('fileuploadprogress', func);
207
+
208
+ // Callback for global upload progress events:
209
+ // progressall: function (e, data) {}, // .bind('fileuploadprogressall', func);
210
+
211
+ // Callback for uploads start, equivalent to the global ajaxStart event:
212
+ // start: function (e) {}, // .bind('fileuploadstart', func);
213
+
214
+ // Callback for uploads stop, equivalent to the global ajaxStop event:
215
+ // stop: function (e) {}, // .bind('fileuploadstop', func);
216
+
217
+ // Callback for change events of the fileInput(s):
218
+ // change: function (e, data) {}, // .bind('fileuploadchange', func);
219
+
220
+ // Callback for paste events to the pasteZone(s):
221
+ // paste: function (e, data) {}, // .bind('fileuploadpaste', func);
222
+
223
+ // Callback for drop events of the dropZone(s):
224
+ // drop: function (e, data) {}, // .bind('fileuploaddrop', func);
225
+
226
+ // Callback for dragover events of the dropZone(s):
227
+ // dragover: function (e) {}, // .bind('fileuploaddragover', func);
228
+
229
+ // Callback for the start of each chunk upload request:
230
+ // chunksend: function (e, data) {}, // .bind('fileuploadchunksend', func);
231
+
232
+ // Callback for successful chunk uploads:
233
+ // chunkdone: function (e, data) {}, // .bind('fileuploadchunkdone', func);
234
+
235
+ // Callback for failed (abort or error) chunk uploads:
236
+ // chunkfail: function (e, data) {}, // .bind('fileuploadchunkfail', func);
237
+
238
+ // Callback for completed (success, abort or error) chunk upload requests:
239
+ // chunkalways: function (e, data) {}, // .bind('fileuploadchunkalways', func);
240
+
241
+ // The plugin options are used as settings object for the ajax calls.
242
+ // The following are jQuery ajax settings required for the file uploads:
243
+ processData: false,
244
+ contentType: false,
245
+ cache: false
246
+ },
247
+
248
+ // A list of options that require reinitializing event listeners and/or
249
+ // special initialization code:
250
+ _specialOptions: [
251
+ 'fileInput',
252
+ 'dropZone',
253
+ 'pasteZone',
254
+ 'multipart',
255
+ 'forceIframeTransport'
256
+ ],
257
+
258
+ _blobSlice: $.support.blobSlice && function () {
259
+ var slice = this.slice || this.webkitSlice || this.mozSlice;
260
+ return slice.apply(this, arguments);
261
+ },
262
+
263
+ _BitrateTimer: function () {
264
+ this.timestamp = ((Date.now) ? Date.now() : (new Date()).getTime());
265
+ this.loaded = 0;
266
+ this.bitrate = 0;
267
+ this.getBitrate = function (now, loaded, interval) {
268
+ var timeDiff = now - this.timestamp;
269
+ if (!this.bitrate || !interval || timeDiff > interval) {
270
+ this.bitrate = (loaded - this.loaded) * (1000 / timeDiff) * 8;
271
+ this.loaded = loaded;
272
+ this.timestamp = now;
273
+ }
274
+ return this.bitrate;
275
+ };
276
+ },
277
+
278
+ _isXHRUpload: function (options) {
279
+ return !options.forceIframeTransport &&
280
+ ((!options.multipart && $.support.xhrFileUpload) ||
281
+ $.support.xhrFormDataFileUpload);
282
+ },
283
+
284
+ _getFormData: function (options) {
285
+ var formData;
286
+ if (typeof options.formData === 'function') {
287
+ return options.formData(options.form);
288
+ }
289
+ if ($.isArray(options.formData)) {
290
+ return options.formData;
291
+ }
292
+ if ($.type(options.formData) === 'object') {
293
+ formData = [];
294
+ $.each(options.formData, function (name, value) {
295
+ formData.push({name: name, value: value});
296
+ });
297
+ return formData;
298
+ }
299
+ return [];
300
+ },
301
+
302
+ _getTotal: function (files) {
303
+ var total = 0;
304
+ $.each(files, function (index, file) {
305
+ total += file.size || 1;
306
+ });
307
+ return total;
308
+ },
309
+
310
+ _initProgressObject: function (obj) {
311
+ var progress = {
312
+ loaded: 0,
313
+ total: 0,
314
+ bitrate: 0
315
+ };
316
+ if (obj._progress) {
317
+ $.extend(obj._progress, progress);
318
+ } else {
319
+ obj._progress = progress;
320
+ }
321
+ },
322
+
323
+ _initResponseObject: function (obj) {
324
+ var prop;
325
+ if (obj._response) {
326
+ for (prop in obj._response) {
327
+ if (obj._response.hasOwnProperty(prop)) {
328
+ delete obj._response[prop];
329
+ }
330
+ }
331
+ } else {
332
+ obj._response = {};
333
+ }
334
+ },
335
+
336
+ _onProgress: function (e, data) {
337
+ if (e.lengthComputable) {
338
+ var now = ((Date.now) ? Date.now() : (new Date()).getTime()),
339
+ loaded;
340
+ if (data._time && data.progressInterval &&
341
+ (now - data._time < data.progressInterval) &&
342
+ e.loaded !== e.total) {
343
+ return;
344
+ }
345
+ data._time = now;
346
+ loaded = Math.floor(
347
+ e.loaded / e.total * (data.chunkSize || data._progress.total)
348
+ ) + (data.uploadedBytes || 0);
349
+ // Add the difference from the previously loaded state
350
+ // to the global loaded counter:
351
+ this._progress.loaded += (loaded - data._progress.loaded);
352
+ this._progress.bitrate = this._bitrateTimer.getBitrate(
353
+ now,
354
+ this._progress.loaded,
355
+ data.bitrateInterval
356
+ );
357
+ data._progress.loaded = data.loaded = loaded;
358
+ data._progress.bitrate = data.bitrate = data._bitrateTimer.getBitrate(
359
+ now,
360
+ loaded,
361
+ data.bitrateInterval
362
+ );
363
+ // Trigger a custom progress event with a total data property set
364
+ // to the file size(s) of the current upload and a loaded data
365
+ // property calculated accordingly:
366
+ this._trigger(
367
+ 'progress',
368
+ $.Event('progress', {delegatedEvent: e}),
369
+ data
370
+ );
371
+ // Trigger a global progress event for all current file uploads,
372
+ // including ajax calls queued for sequential file uploads:
373
+ this._trigger(
374
+ 'progressall',
375
+ $.Event('progressall', {delegatedEvent: e}),
376
+ this._progress
377
+ );
378
+ }
379
+ },
380
+
381
+ _initProgressListener: function (options) {
382
+ var that = this,
383
+ xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr();
384
+ // Accesss to the native XHR object is required to add event listeners
385
+ // for the upload progress event:
386
+ if (xhr.upload) {
387
+ $(xhr.upload).bind('progress', function (e) {
388
+ var oe = e.originalEvent;
389
+ // Make sure the progress event properties get copied over:
390
+ e.lengthComputable = oe.lengthComputable;
391
+ e.loaded = oe.loaded;
392
+ e.total = oe.total;
393
+ that._onProgress(e, options);
394
+ });
395
+ options.xhr = function () {
396
+ return xhr;
397
+ };
398
+ }
399
+ },
400
+
401
+ _isInstanceOf: function (type, obj) {
402
+ // Cross-frame instanceof check
403
+ return Object.prototype.toString.call(obj) === '[object ' + type + ']';
404
+ },
405
+
406
+ _initXHRData: function (options) {
407
+ var that = this,
408
+ formData,
409
+ file = options.files[0],
410
+ // Ignore non-multipart setting if not supported:
411
+ multipart = options.multipart || !$.support.xhrFileUpload,
412
+ paramName = options.paramName[0];
413
+ options.headers = $.extend({}, options.headers);
414
+ if (options.contentRange) {
415
+ options.headers['Content-Range'] = options.contentRange;
416
+ }
417
+ if (!multipart || options.blob || !this._isInstanceOf('File', file)) {
418
+ options.headers['Content-Disposition'] = 'attachment; filename="' +
419
+ encodeURI(file.name) + '"';
420
+ }
421
+ if (!multipart) {
422
+ options.contentType = file.type;
423
+ options.data = options.blob || file;
424
+ } else if ($.support.xhrFormDataFileUpload) {
425
+ if (options.postMessage) {
426
+ // window.postMessage does not allow sending FormData
427
+ // objects, so we just add the File/Blob objects to
428
+ // the formData array and let the postMessage window
429
+ // create the FormData object out of this array:
430
+ formData = this._getFormData(options);
431
+ if (options.blob) {
432
+ formData.push({
433
+ name: paramName,
434
+ value: options.blob
435
+ });
436
+ } else {
437
+ $.each(options.files, function (index, file) {
438
+ formData.push({
439
+ name: options.paramName[index] || paramName,
440
+ value: file
441
+ });
442
+ });
443
+ }
444
+ } else {
445
+ if (that._isInstanceOf('FormData', options.formData)) {
446
+ formData = options.formData;
447
+ } else {
448
+ formData = new FormData();
449
+ $.each(this._getFormData(options), function (index, field) {
450
+ formData.append(field.name, field.value);
451
+ });
452
+ }
453
+ if (options.blob) {
454
+ formData.append(paramName, options.blob, file.name);
455
+ } else {
456
+ $.each(options.files, function (index, file) {
457
+ // This check allows the tests to run with
458
+ // dummy objects:
459
+ if (that._isInstanceOf('File', file) ||
460
+ that._isInstanceOf('Blob', file)) {
461
+ formData.append(
462
+ options.paramName[index] || paramName,
463
+ file,
464
+ file.name
465
+ );
466
+ }
467
+ });
468
+ }
469
+ }
470
+ options.data = formData;
471
+ }
472
+ // Blob reference is not needed anymore, free memory:
473
+ options.blob = null;
474
+ },
475
+
476
+ _initIframeSettings: function (options) {
477
+ var targetHost = $('<a></a>').prop('href', options.url).prop('host');
478
+ // Setting the dataType to iframe enables the iframe transport:
479
+ options.dataType = 'iframe ' + (options.dataType || '');
480
+ // The iframe transport accepts a serialized array as form data:
481
+ options.formData = this._getFormData(options);
482
+ // Add redirect url to form data on cross-domain uploads:
483
+ if (options.redirect && targetHost && targetHost !== location.host) {
484
+ options.formData.push({
485
+ name: options.redirectParamName || 'redirect',
486
+ value: options.redirect
487
+ });
488
+ }
489
+ },
490
+
491
+ _initDataSettings: function (options) {
492
+ if (this._isXHRUpload(options)) {
493
+ if (!this._chunkedUpload(options, true)) {
494
+ if (!options.data) {
495
+ this._initXHRData(options);
496
+ }
497
+ this._initProgressListener(options);
498
+ }
499
+ if (options.postMessage) {
500
+ // Setting the dataType to postmessage enables the
501
+ // postMessage transport:
502
+ options.dataType = 'postmessage ' + (options.dataType || '');
503
+ }
504
+ } else {
505
+ this._initIframeSettings(options);
506
+ }
507
+ },
508
+
509
+ _getParamName: function (options) {
510
+ var fileInput = $(options.fileInput),
511
+ paramName = options.paramName;
512
+ if (!paramName) {
513
+ paramName = [];
514
+ fileInput.each(function () {
515
+ var input = $(this),
516
+ name = input.prop('name') || 'files[]',
517
+ i = (input.prop('files') || [1]).length;
518
+ while (i) {
519
+ paramName.push(name);
520
+ i -= 1;
521
+ }
522
+ });
523
+ if (!paramName.length) {
524
+ paramName = [fileInput.prop('name') || 'files[]'];
525
+ }
526
+ } else if (!$.isArray(paramName)) {
527
+ paramName = [paramName];
528
+ }
529
+ return paramName;
530
+ },
531
+
532
+ _initFormSettings: function (options) {
533
+ // Retrieve missing options from the input field and the
534
+ // associated form, if available:
535
+ if (!options.form || !options.form.length) {
536
+ options.form = $(options.fileInput.prop('form'));
537
+ // If the given file input doesn't have an associated form,
538
+ // use the default widget file input's form:
539
+ if (!options.form.length) {
540
+ options.form = $(this.options.fileInput.prop('form'));
541
+ }
542
+ }
543
+ options.paramName = this._getParamName(options);
544
+ if (!options.url) {
545
+ options.url = options.form.prop('action') || location.href;
546
+ }
547
+ // The HTTP request method must be "POST" or "PUT":
548
+ options.type = (options.type ||
549
+ ($.type(options.form.prop('method')) === 'string' &&
550
+ options.form.prop('method')) || ''
551
+ ).toUpperCase();
552
+ if (options.type !== 'POST' && options.type !== 'PUT' &&
553
+ options.type !== 'PATCH') {
554
+ options.type = 'POST';
555
+ }
556
+ if (!options.formAcceptCharset) {
557
+ options.formAcceptCharset = options.form.attr('accept-charset');
558
+ }
559
+ },
560
+
561
+ _getAJAXSettings: function (data) {
562
+ var options = $.extend({}, this.options, data);
563
+ this._initFormSettings(options);
564
+ this._initDataSettings(options);
565
+ return options;
566
+ },
567
+
568
+ // jQuery 1.6 doesn't provide .state(),
569
+ // while jQuery 1.8+ removed .isRejected() and .isResolved():
570
+ _getDeferredState: function (deferred) {
571
+ if (deferred.state) {
572
+ return deferred.state();
573
+ }
574
+ if (deferred.isResolved()) {
575
+ return 'resolved';
576
+ }
577
+ if (deferred.isRejected()) {
578
+ return 'rejected';
579
+ }
580
+ return 'pending';
581
+ },
582
+
583
+ // Maps jqXHR callbacks to the equivalent
584
+ // methods of the given Promise object:
585
+ _enhancePromise: function (promise) {
586
+ promise.success = promise.done;
587
+ promise.error = promise.fail;
588
+ promise.complete = promise.always;
589
+ return promise;
590
+ },
591
+
592
+ // Creates and returns a Promise object enhanced with
593
+ // the jqXHR methods abort, success, error and complete:
594
+ _getXHRPromise: function (resolveOrReject, context, args) {
595
+ var dfd = $.Deferred(),
596
+ promise = dfd.promise();
597
+ context = context || this.options.context || promise;
598
+ if (resolveOrReject === true) {
599
+ dfd.resolveWith(context, args);
600
+ } else if (resolveOrReject === false) {
601
+ dfd.rejectWith(context, args);
602
+ }
603
+ promise.abort = dfd.promise;
604
+ return this._enhancePromise(promise);
605
+ },
606
+
607
+ // Adds convenience methods to the data callback argument:
608
+ _addConvenienceMethods: function (e, data) {
609
+ var that = this,
610
+ getPromise = function (data) {
611
+ return $.Deferred().resolveWith(that, [data]).promise();
612
+ };
613
+ data.process = function (resolveFunc, rejectFunc) {
614
+ if (resolveFunc || rejectFunc) {
615
+ data._processQueue = this._processQueue =
616
+ (this._processQueue || getPromise(this))
617
+ .pipe(resolveFunc, rejectFunc);
618
+ }
619
+ return this._processQueue || getPromise(this);
620
+ };
621
+ data.submit = function () {
622
+ if (this.state() !== 'pending') {
623
+ data.jqXHR = this.jqXHR =
624
+ (that._trigger(
625
+ 'submit',
626
+ $.Event('submit', {delegatedEvent: e}),
627
+ this
628
+ ) !== false) && that._onSend(e, this);
629
+ }
630
+ return this.jqXHR || that._getXHRPromise();
631
+ };
632
+ data.abort = function () {
633
+ if (this.jqXHR) {
634
+ return this.jqXHR.abort();
635
+ }
636
+ return that._getXHRPromise();
637
+ };
638
+ data.state = function () {
639
+ if (this.jqXHR) {
640
+ return that._getDeferredState(this.jqXHR);
641
+ }
642
+ if (this._processQueue) {
643
+ return that._getDeferredState(this._processQueue);
644
+ }
645
+ };
646
+ data.progress = function () {
647
+ return this._progress;
648
+ };
649
+ data.response = function () {
650
+ return this._response;
651
+ };
652
+ },
653
+
654
+ // Parses the Range header from the server response
655
+ // and returns the uploaded bytes:
656
+ _getUploadedBytes: function (jqXHR) {
657
+ var range = jqXHR.getResponseHeader('Range'),
658
+ parts = range && range.split('-'),
659
+ upperBytesPos = parts && parts.length > 1 &&
660
+ parseInt(parts[1], 10);
661
+ return upperBytesPos && upperBytesPos + 1;
662
+ },
663
+
664
+ // Uploads a file in multiple, sequential requests
665
+ // by splitting the file up in multiple blob chunks.
666
+ // If the second parameter is true, only tests if the file
667
+ // should be uploaded in chunks, but does not invoke any
668
+ // upload requests:
669
+ _chunkedUpload: function (options, testOnly) {
670
+ options.uploadedBytes = options.uploadedBytes || 0;
671
+ var that = this,
672
+ file = options.files[0],
673
+ fs = file.size,
674
+ ub = options.uploadedBytes,
675
+ mcs = options.maxChunkSize || fs,
676
+ slice = this._blobSlice,
677
+ dfd = $.Deferred(),
678
+ promise = dfd.promise(),
679
+ jqXHR,
680
+ upload;
681
+ if (!(this._isXHRUpload(options) && slice && (ub || mcs < fs)) ||
682
+ options.data) {
683
+ return false;
684
+ }
685
+ if (testOnly) {
686
+ return true;
687
+ }
688
+ if (ub >= fs) {
689
+ file.error = options.i18n('uploadedBytes');
690
+ return this._getXHRPromise(
691
+ false,
692
+ options.context,
693
+ [null, 'error', file.error]
694
+ );
695
+ }
696
+ // The chunk upload method:
697
+ upload = function () {
698
+ // Clone the options object for each chunk upload:
699
+ var o = $.extend({}, options),
700
+ currentLoaded = o._progress.loaded;
701
+ o.blob = slice.call(
702
+ file,
703
+ ub,
704
+ ub + mcs,
705
+ file.type
706
+ );
707
+ // Store the current chunk size, as the blob itself
708
+ // will be dereferenced after data processing:
709
+ o.chunkSize = o.blob.size;
710
+ // Expose the chunk bytes position range:
711
+ o.contentRange = 'bytes ' + ub + '-' +
712
+ (ub + o.chunkSize - 1) + '/' + fs;
713
+ // Process the upload data (the blob and potential form data):
714
+ that._initXHRData(o);
715
+ // Add progress listeners for this chunk upload:
716
+ that._initProgressListener(o);
717
+ jqXHR = ((that._trigger('chunksend', null, o) !== false && $.ajax(o)) ||
718
+ that._getXHRPromise(false, o.context))
719
+ .done(function (result, textStatus, jqXHR) {
720
+ ub = that._getUploadedBytes(jqXHR) ||
721
+ (ub + o.chunkSize);
722
+ // Create a progress event if no final progress event
723
+ // with loaded equaling total has been triggered
724
+ // for this chunk:
725
+ if (currentLoaded + o.chunkSize - o._progress.loaded) {
726
+ that._onProgress($.Event('progress', {
727
+ lengthComputable: true,
728
+ loaded: ub - o.uploadedBytes,
729
+ total: ub - o.uploadedBytes
730
+ }), o);
731
+ }
732
+ options.uploadedBytes = o.uploadedBytes = ub;
733
+ o.result = result;
734
+ o.textStatus = textStatus;
735
+ o.jqXHR = jqXHR;
736
+ that._trigger('chunkdone', null, o);
737
+ that._trigger('chunkalways', null, o);
738
+ if (ub < fs) {
739
+ // File upload not yet complete,
740
+ // continue with the next chunk:
741
+ upload();
742
+ } else {
743
+ dfd.resolveWith(
744
+ o.context,
745
+ [result, textStatus, jqXHR]
746
+ );
747
+ }
748
+ })
749
+ .fail(function (jqXHR, textStatus, errorThrown) {
750
+ o.jqXHR = jqXHR;
751
+ o.textStatus = textStatus;
752
+ o.errorThrown = errorThrown;
753
+ that._trigger('chunkfail', null, o);
754
+ that._trigger('chunkalways', null, o);
755
+ dfd.rejectWith(
756
+ o.context,
757
+ [jqXHR, textStatus, errorThrown]
758
+ );
759
+ });
760
+ };
761
+ this._enhancePromise(promise);
762
+ promise.abort = function () {
763
+ return jqXHR.abort();
764
+ };
765
+ upload();
766
+ return promise;
767
+ },
768
+
769
+ _beforeSend: function (e, data) {
770
+ if (this._active === 0) {
771
+ // the start callback is triggered when an upload starts
772
+ // and no other uploads are currently running,
773
+ // equivalent to the global ajaxStart event:
774
+ this._trigger('start');
775
+ // Set timer for global bitrate progress calculation:
776
+ this._bitrateTimer = new this._BitrateTimer();
777
+ // Reset the global progress values:
778
+ this._progress.loaded = this._progress.total = 0;
779
+ this._progress.bitrate = 0;
780
+ }
781
+ // Make sure the container objects for the .response() and
782
+ // .progress() methods on the data object are available
783
+ // and reset to their initial state:
784
+ this._initResponseObject(data);
785
+ this._initProgressObject(data);
786
+ data._progress.loaded = data.loaded = data.uploadedBytes || 0;
787
+ data._progress.total = data.total = this._getTotal(data.files) || 1;
788
+ data._progress.bitrate = data.bitrate = 0;
789
+ this._active += 1;
790
+ // Initialize the global progress values:
791
+ this._progress.loaded += data.loaded;
792
+ this._progress.total += data.total;
793
+ },
794
+
795
+ _onDone: function (result, textStatus, jqXHR, options) {
796
+ var total = options._progress.total,
797
+ response = options._response;
798
+ if (options._progress.loaded < total) {
799
+ // Create a progress event if no final progress event
800
+ // with loaded equaling total has been triggered:
801
+ this._onProgress($.Event('progress', {
802
+ lengthComputable: true,
803
+ loaded: total,
804
+ total: total
805
+ }), options);
806
+ }
807
+ response.result = options.result = result;
808
+ response.textStatus = options.textStatus = textStatus;
809
+ response.jqXHR = options.jqXHR = jqXHR;
810
+ this._trigger('done', null, options);
811
+ },
812
+
813
+ _onFail: function (jqXHR, textStatus, errorThrown, options) {
814
+ var response = options._response;
815
+ if (options.recalculateProgress) {
816
+ // Remove the failed (error or abort) file upload from
817
+ // the global progress calculation:
818
+ this._progress.loaded -= options._progress.loaded;
819
+ this._progress.total -= options._progress.total;
820
+ }
821
+ response.jqXHR = options.jqXHR = jqXHR;
822
+ response.textStatus = options.textStatus = textStatus;
823
+ response.errorThrown = options.errorThrown = errorThrown;
824
+ this._trigger('fail', null, options);
825
+ },
826
+
827
+ _onAlways: function (jqXHRorResult, textStatus, jqXHRorError, options) {
828
+ // jqXHRorResult, textStatus and jqXHRorError are added to the
829
+ // options object via done and fail callbacks
830
+ this._trigger('always', null, options);
831
+ },
832
+
833
+ _onSend: function (e, data) {
834
+ if (!data.submit) {
835
+ this._addConvenienceMethods(e, data);
836
+ }
837
+ var that = this,
838
+ jqXHR,
839
+ aborted,
840
+ slot,
841
+ pipe,
842
+ options = that._getAJAXSettings(data),
843
+ send = function () {
844
+ that._sending += 1;
845
+ // Set timer for bitrate progress calculation:
846
+ options._bitrateTimer = new that._BitrateTimer();
847
+ jqXHR = jqXHR || (
848
+ ((aborted || that._trigger(
849
+ 'send',
850
+ $.Event('send', {delegatedEvent: e}),
851
+ options
852
+ ) === false) &&
853
+ that._getXHRPromise(false, options.context, aborted)) ||
854
+ that._chunkedUpload(options) || $.ajax(options)
855
+ ).done(function (result, textStatus, jqXHR) {
856
+ that._onDone(result, textStatus, jqXHR, options);
857
+ }).fail(function (jqXHR, textStatus, errorThrown) {
858
+ that._onFail(jqXHR, textStatus, errorThrown, options);
859
+ }).always(function (jqXHRorResult, textStatus, jqXHRorError) {
860
+ that._onAlways(
861
+ jqXHRorResult,
862
+ textStatus,
863
+ jqXHRorError,
864
+ options
865
+ );
866
+ that._sending -= 1;
867
+ that._active -= 1;
868
+ if (options.limitConcurrentUploads &&
869
+ options.limitConcurrentUploads > that._sending) {
870
+ // Start the next queued upload,
871
+ // that has not been aborted:
872
+ var nextSlot = that._slots.shift();
873
+ while (nextSlot) {
874
+ if (that._getDeferredState(nextSlot) === 'pending') {
875
+ nextSlot.resolve();
876
+ break;
877
+ }
878
+ nextSlot = that._slots.shift();
879
+ }
880
+ }
881
+ if (that._active === 0) {
882
+ // The stop callback is triggered when all uploads have
883
+ // been completed, equivalent to the global ajaxStop event:
884
+ that._trigger('stop');
885
+ }
886
+ });
887
+ return jqXHR;
888
+ };
889
+ this._beforeSend(e, options);
890
+ if (this.options.sequentialUploads ||
891
+ (this.options.limitConcurrentUploads &&
892
+ this.options.limitConcurrentUploads <= this._sending)) {
893
+ if (this.options.limitConcurrentUploads > 1) {
894
+ slot = $.Deferred();
895
+ this._slots.push(slot);
896
+ pipe = slot.pipe(send);
897
+ } else {
898
+ this._sequence = this._sequence.pipe(send, send);
899
+ pipe = this._sequence;
900
+ }
901
+ // Return the piped Promise object, enhanced with an abort method,
902
+ // which is delegated to the jqXHR object of the current upload,
903
+ // and jqXHR callbacks mapped to the equivalent Promise methods:
904
+ pipe.abort = function () {
905
+ aborted = [undefined, 'abort', 'abort'];
906
+ if (!jqXHR) {
907
+ if (slot) {
908
+ slot.rejectWith(options.context, aborted);
909
+ }
910
+ return send();
911
+ }
912
+ return jqXHR.abort();
913
+ };
914
+ return this._enhancePromise(pipe);
915
+ }
916
+ return send();
917
+ },
918
+
919
+ _onAdd: function (e, data) {
920
+ var that = this,
921
+ result = true,
922
+ options = $.extend({}, this.options, data),
923
+ limit = options.limitMultiFileUploads,
924
+ paramName = this._getParamName(options),
925
+ paramNameSet,
926
+ paramNameSlice,
927
+ fileSet,
928
+ i;
929
+ if (!(options.singleFileUploads || limit) ||
930
+ !this._isXHRUpload(options)) {
931
+ fileSet = [data.files];
932
+ paramNameSet = [paramName];
933
+ } else if (!options.singleFileUploads && limit) {
934
+ fileSet = [];
935
+ paramNameSet = [];
936
+ for (i = 0; i < data.files.length; i += limit) {
937
+ fileSet.push(data.files.slice(i, i + limit));
938
+ paramNameSlice = paramName.slice(i, i + limit);
939
+ if (!paramNameSlice.length) {
940
+ paramNameSlice = paramName;
941
+ }
942
+ paramNameSet.push(paramNameSlice);
943
+ }
944
+ } else {
945
+ paramNameSet = paramName;
946
+ }
947
+ data.originalFiles = data.files;
948
+ $.each(fileSet || data.files, function (index, element) {
949
+ var newData = $.extend({}, data);
950
+ newData.files = fileSet ? element : [element];
951
+ newData.paramName = paramNameSet[index];
952
+ that._initResponseObject(newData);
953
+ that._initProgressObject(newData);
954
+ that._addConvenienceMethods(e, newData);
955
+ result = that._trigger(
956
+ 'add',
957
+ $.Event('add', {delegatedEvent: e}),
958
+ newData
959
+ );
960
+ return result;
961
+ });
962
+ return result;
963
+ },
964
+
965
+ _replaceFileInput: function (input) {
966
+ var inputClone = input.clone(true);
967
+ $('<form></form>').append(inputClone)[0].reset();
968
+ // Detaching allows to insert the fileInput on another form
969
+ // without loosing the file input value:
970
+ input.after(inputClone).detach();
971
+ // Avoid memory leaks with the detached file input:
972
+ $.cleanData(input.unbind('remove'));
973
+ // Replace the original file input element in the fileInput
974
+ // elements set with the clone, which has been copied including
975
+ // event handlers:
976
+ this.options.fileInput = this.options.fileInput.map(function (i, el) {
977
+ if (el === input[0]) {
978
+ return inputClone[0];
979
+ }
980
+ return el;
981
+ });
982
+ // If the widget has been initialized on the file input itself,
983
+ // override this.element with the file input clone:
984
+ if (input[0] === this.element[0]) {
985
+ this.element = inputClone;
986
+ }
987
+ },
988
+
989
+ _handleFileTreeEntry: function (entry, path) {
990
+ var that = this,
991
+ dfd = $.Deferred(),
992
+ errorHandler = function (e) {
993
+ if (e && !e.entry) {
994
+ e.entry = entry;
995
+ }
996
+ // Since $.when returns immediately if one
997
+ // Deferred is rejected, we use resolve instead.
998
+ // This allows valid files and invalid items
999
+ // to be returned together in one set:
1000
+ dfd.resolve([e]);
1001
+ },
1002
+ dirReader;
1003
+ path = path || '';
1004
+ if (entry.isFile) {
1005
+ if (entry._file) {
1006
+ // Workaround for Chrome bug #149735
1007
+ entry._file.relativePath = path;
1008
+ dfd.resolve(entry._file);
1009
+ } else {
1010
+ entry.file(function (file) {
1011
+ file.relativePath = path;
1012
+ dfd.resolve(file);
1013
+ }, errorHandler);
1014
+ }
1015
+ } else if (entry.isDirectory) {
1016
+ dirReader = entry.createReader();
1017
+ dirReader.readEntries(function (entries) {
1018
+ that._handleFileTreeEntries(
1019
+ entries,
1020
+ path + entry.name + '/'
1021
+ ).done(function (files) {
1022
+ dfd.resolve(files);
1023
+ }).fail(errorHandler);
1024
+ }, errorHandler);
1025
+ } else {
1026
+ // Return an empy list for file system items
1027
+ // other than files or directories:
1028
+ dfd.resolve([]);
1029
+ }
1030
+ return dfd.promise();
1031
+ },
1032
+
1033
+ _handleFileTreeEntries: function (entries, path) {
1034
+ var that = this;
1035
+ return $.when.apply(
1036
+ $,
1037
+ $.map(entries, function (entry) {
1038
+ return that._handleFileTreeEntry(entry, path);
1039
+ })
1040
+ ).pipe(function () {
1041
+ return Array.prototype.concat.apply(
1042
+ [],
1043
+ arguments
1044
+ );
1045
+ });
1046
+ },
1047
+
1048
+ _getDroppedFiles: function (dataTransfer) {
1049
+ dataTransfer = dataTransfer || {};
1050
+ var items = dataTransfer.items;
1051
+ if (items && items.length && (items[0].webkitGetAsEntry ||
1052
+ items[0].getAsEntry)) {
1053
+ return this._handleFileTreeEntries(
1054
+ $.map(items, function (item) {
1055
+ var entry;
1056
+ if (item.webkitGetAsEntry) {
1057
+ entry = item.webkitGetAsEntry();
1058
+ if (entry) {
1059
+ // Workaround for Chrome bug #149735:
1060
+ entry._file = item.getAsFile();
1061
+ }
1062
+ return entry;
1063
+ }
1064
+ return item.getAsEntry();
1065
+ })
1066
+ );
1067
+ }
1068
+ return $.Deferred().resolve(
1069
+ $.makeArray(dataTransfer.files)
1070
+ ).promise();
1071
+ },
1072
+
1073
+ _getSingleFileInputFiles: function (fileInput) {
1074
+ fileInput = $(fileInput);
1075
+ var entries = fileInput.prop('webkitEntries') ||
1076
+ fileInput.prop('entries'),
1077
+ files,
1078
+ value;
1079
+ if (entries && entries.length) {
1080
+ return this._handleFileTreeEntries(entries);
1081
+ }
1082
+ files = $.makeArray(fileInput.prop('files'));
1083
+ if (!files.length) {
1084
+ value = fileInput.prop('value');
1085
+ if (!value) {
1086
+ return $.Deferred().resolve([]).promise();
1087
+ }
1088
+ // If the files property is not available, the browser does not
1089
+ // support the File API and we add a pseudo File object with
1090
+ // the input value as name with path information removed:
1091
+ files = [{name: value.replace(/^.*\\/, '')}];
1092
+ } else if (files[0].name === undefined && files[0].fileName) {
1093
+ // File normalization for Safari 4 and Firefox 3:
1094
+ $.each(files, function (index, file) {
1095
+ file.name = file.fileName;
1096
+ file.size = file.fileSize;
1097
+ });
1098
+ }
1099
+ return $.Deferred().resolve(files).promise();
1100
+ },
1101
+
1102
+ _getFileInputFiles: function (fileInput) {
1103
+ if (!(fileInput instanceof $) || fileInput.length === 1) {
1104
+ return this._getSingleFileInputFiles(fileInput);
1105
+ }
1106
+ return $.when.apply(
1107
+ $,
1108
+ $.map(fileInput, this._getSingleFileInputFiles)
1109
+ ).pipe(function () {
1110
+ return Array.prototype.concat.apply(
1111
+ [],
1112
+ arguments
1113
+ );
1114
+ });
1115
+ },
1116
+
1117
+ _onChange: function (e) {
1118
+ var that = this,
1119
+ data = {
1120
+ fileInput: $(e.target),
1121
+ form: $(e.target.form)
1122
+ };
1123
+ this._getFileInputFiles(data.fileInput).always(function (files) {
1124
+ data.files = files;
1125
+ if (that.options.replaceFileInput) {
1126
+ that._replaceFileInput(data.fileInput);
1127
+ }
1128
+ if (that._trigger(
1129
+ 'change',
1130
+ $.Event('change', {delegatedEvent: e}),
1131
+ data
1132
+ ) !== false) {
1133
+ that._onAdd(e, data);
1134
+ }
1135
+ });
1136
+ },
1137
+
1138
+ _onPaste: function (e) {
1139
+ var items = e.originalEvent && e.originalEvent.clipboardData &&
1140
+ e.originalEvent.clipboardData.items,
1141
+ data = {files: []};
1142
+ if (items && items.length) {
1143
+ $.each(items, function (index, item) {
1144
+ var file = item.getAsFile && item.getAsFile();
1145
+ if (file) {
1146
+ data.files.push(file);
1147
+ }
1148
+ });
1149
+ if (this._trigger(
1150
+ 'paste',
1151
+ $.Event('paste', {delegatedEvent: e}),
1152
+ data
1153
+ ) !== false) {
1154
+ this._onAdd(e, data);
1155
+ }
1156
+ }
1157
+ },
1158
+
1159
+ _onDrop: function (e) {
1160
+ e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;
1161
+ var that = this,
1162
+ dataTransfer = e.dataTransfer,
1163
+ data = {};
1164
+ if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {
1165
+ e.preventDefault();
1166
+ this._getDroppedFiles(dataTransfer).always(function (files) {
1167
+ data.files = files;
1168
+ if (that._trigger(
1169
+ 'drop',
1170
+ $.Event('drop', {delegatedEvent: e}),
1171
+ data
1172
+ ) !== false) {
1173
+ that._onAdd(e, data);
1174
+ }
1175
+ });
1176
+ }
1177
+ },
1178
+
1179
+ _onDragOver: function (e) {
1180
+ e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;
1181
+ var dataTransfer = e.dataTransfer;
1182
+ if (dataTransfer && $.inArray('Files', dataTransfer.types) !== -1 &&
1183
+ this._trigger(
1184
+ 'dragover',
1185
+ $.Event('dragover', {delegatedEvent: e})
1186
+ ) !== false) {
1187
+ e.preventDefault();
1188
+ dataTransfer.dropEffect = 'copy';
1189
+ }
1190
+ },
1191
+
1192
+ _initEventHandlers: function () {
1193
+ if (this._isXHRUpload(this.options)) {
1194
+ this._on(this.options.dropZone, {
1195
+ dragover: this._onDragOver,
1196
+ drop: this._onDrop
1197
+ });
1198
+ this._on(this.options.pasteZone, {
1199
+ paste: this._onPaste
1200
+ });
1201
+ }
1202
+ if ($.support.fileInput) {
1203
+ this._on(this.options.fileInput, {
1204
+ change: this._onChange
1205
+ });
1206
+ }
1207
+ },
1208
+
1209
+ _destroyEventHandlers: function () {
1210
+ this._off(this.options.dropZone, 'dragover drop');
1211
+ this._off(this.options.pasteZone, 'paste');
1212
+ this._off(this.options.fileInput, 'change');
1213
+ },
1214
+
1215
+ _setOption: function (key, value) {
1216
+ var reinit = $.inArray(key, this._specialOptions) !== -1;
1217
+ if (reinit) {
1218
+ this._destroyEventHandlers();
1219
+ }
1220
+ this._super(key, value);
1221
+ if (reinit) {
1222
+ this._initSpecialOptions();
1223
+ this._initEventHandlers();
1224
+ }
1225
+ },
1226
+
1227
+ _initSpecialOptions: function () {
1228
+ var options = this.options;
1229
+ if (options.fileInput === undefined) {
1230
+ options.fileInput = this.element.is('input[type="file"]') ?
1231
+ this.element : this.element.find('input[type="file"]');
1232
+ } else if (!(options.fileInput instanceof $)) {
1233
+ options.fileInput = $(options.fileInput);
1234
+ }
1235
+ if (!(options.dropZone instanceof $)) {
1236
+ options.dropZone = $(options.dropZone);
1237
+ }
1238
+ if (!(options.pasteZone instanceof $)) {
1239
+ options.pasteZone = $(options.pasteZone);
1240
+ }
1241
+ },
1242
+
1243
+ _getRegExp: function (str) {
1244
+ var parts = str.split('/'),
1245
+ modifiers = parts.pop();
1246
+ parts.shift();
1247
+ return new RegExp(parts.join('/'), modifiers);
1248
+ },
1249
+
1250
+ _isRegExpOption: function (key, value) {
1251
+ return key !== 'url' && $.type(value) === 'string' &&
1252
+ /^\/.*\/[igm]{0,3}$/.test(value);
1253
+ },
1254
+
1255
+ _initDataAttributes: function () {
1256
+ var that = this,
1257
+ options = this.options;
1258
+ // Initialize options set via HTML5 data-attributes:
1259
+ $.each(
1260
+ $(this.element[0].cloneNode(false)).data(),
1261
+ function (key, value) {
1262
+ if (that._isRegExpOption(key, value)) {
1263
+ value = that._getRegExp(value);
1264
+ }
1265
+ options[key] = value;
1266
+ }
1267
+ );
1268
+ },
1269
+
1270
+ _create: function () {
1271
+ this._initDataAttributes();
1272
+ this._initSpecialOptions();
1273
+ this._slots = [];
1274
+ this._sequence = this._getXHRPromise(true);
1275
+ this._sending = this._active = 0;
1276
+ this._initProgressObject(this);
1277
+ this._initEventHandlers();
1278
+ },
1279
+
1280
+ // This method is exposed to the widget API and allows to query
1281
+ // the number of active uploads:
1282
+ active: function () {
1283
+ return this._active;
1284
+ },
1285
+
1286
+ // This method is exposed to the widget API and allows to query
1287
+ // the widget upload progress.
1288
+ // It returns an object with loaded, total and bitrate properties
1289
+ // for the running uploads:
1290
+ progress: function () {
1291
+ return this._progress;
1292
+ },
1293
+
1294
+ // This method is exposed to the widget API and allows adding files
1295
+ // using the fileupload API. The data parameter accepts an object which
1296
+ // must have a files property and can contain additional options:
1297
+ // .fileupload('add', {files: filesList});
1298
+ add: function (data) {
1299
+ var that = this;
1300
+ if (!data || this.options.disabled) {
1301
+ return;
1302
+ }
1303
+ if (data.fileInput && !data.files) {
1304
+ this._getFileInputFiles(data.fileInput).always(function (files) {
1305
+ data.files = files;
1306
+ that._onAdd(null, data);
1307
+ });
1308
+ } else {
1309
+ data.files = $.makeArray(data.files);
1310
+ this._onAdd(null, data);
1311
+ }
1312
+ },
1313
+
1314
+ // This method is exposed to the widget API and allows sending files
1315
+ // using the fileupload API. The data parameter accepts an object which
1316
+ // must have a files or fileInput property and can contain additional options:
1317
+ // .fileupload('send', {files: filesList});
1318
+ // The method returns a Promise object for the file upload call.
1319
+ send: function (data) {
1320
+ if (data && !this.options.disabled) {
1321
+ if (data.fileInput && !data.files) {
1322
+ var that = this,
1323
+ dfd = $.Deferred(),
1324
+ promise = dfd.promise(),
1325
+ jqXHR,
1326
+ aborted;
1327
+ promise.abort = function () {
1328
+ aborted = true;
1329
+ if (jqXHR) {
1330
+ return jqXHR.abort();
1331
+ }
1332
+ dfd.reject(null, 'abort', 'abort');
1333
+ return promise;
1334
+ };
1335
+ this._getFileInputFiles(data.fileInput).always(
1336
+ function (files) {
1337
+ if (aborted) {
1338
+ return;
1339
+ }
1340
+ if (!files.length) {
1341
+ dfd.reject();
1342
+ return;
1343
+ }
1344
+ data.files = files;
1345
+ jqXHR = that._onSend(null, data).then(
1346
+ function (result, textStatus, jqXHR) {
1347
+ dfd.resolve(result, textStatus, jqXHR);
1348
+ },
1349
+ function (jqXHR, textStatus, errorThrown) {
1350
+ dfd.reject(jqXHR, textStatus, errorThrown);
1351
+ }
1352
+ );
1353
+ }
1354
+ );
1355
+ return this._enhancePromise(promise);
1356
+ }
1357
+ data.files = $.makeArray(data.files);
1358
+ if (data.files.length) {
1359
+ return this._onSend(null, data);
1360
+ }
1361
+ }
1362
+ return this._getXHRPromise(false, data && data.context);
1363
+ }
1364
+
1365
+ });
1366
+
1367
+ }));
assets/js/fileupload/jquery.iframe-transport.js ADDED
@@ -0,0 +1,208 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jQuery Iframe Transport Plugin 1.8.0
3
+ * https://github.com/blueimp/jQuery-File-Upload
4
+ *
5
+ * Copyright 2011, Sebastian Tschan
6
+ * https://blueimp.net
7
+ *
8
+ * Licensed under the MIT license:
9
+ * http://www.opensource.org/licenses/MIT
10
+ */
11
+
12
+ /*jslint unparam: true, nomen: true */
13
+ /*global define, window, document */
14
+
15
+ (function (factory) {
16
+ 'use strict';
17
+ if (typeof define === 'function' && define.amd) {
18
+ // Register as an anonymous AMD module:
19
+ define(['jquery'], factory);
20
+ } else {
21
+ // Browser globals:
22
+ factory(window.jQuery);
23
+ }
24
+ }(function ($) {
25
+ 'use strict';
26
+
27
+ // Helper variable to create unique names for the transport iframes:
28
+ var counter = 0;
29
+
30
+ // The iframe transport accepts four additional options:
31
+ // options.fileInput: a jQuery collection of file input fields
32
+ // options.paramName: the parameter name for the file form data,
33
+ // overrides the name property of the file input field(s),
34
+ // can be a string or an array of strings.
35
+ // options.formData: an array of objects with name and value properties,
36
+ // equivalent to the return data of .serializeArray(), e.g.:
37
+ // [{name: 'a', value: 1}, {name: 'b', value: 2}]
38
+ // options.initialIframeSrc: the URL of the initial iframe src,
39
+ // by default set to "javascript:false;"
40
+ $.ajaxTransport('iframe', function (options) {
41
+ if (options.async) {
42
+ // javascript:false as initial iframe src
43
+ // prevents warning popups on HTTPS in IE6:
44
+ var initialIframeSrc = options.initialIframeSrc || 'javascript:false;',
45
+ form,
46
+ iframe,
47
+ addParamChar;
48
+ return {
49
+ send: function (_, completeCallback) {
50
+ form = $('<form style="display:none;"></form>');
51
+ form.attr('accept-charset', options.formAcceptCharset);
52
+ addParamChar = /\?/.test(options.url) ? '&' : '?';
53
+ // XDomainRequest only supports GET and POST:
54
+ if (options.type === 'DELETE') {
55
+ options.url = options.url + addParamChar + '_method=DELETE';
56
+ options.type = 'POST';
57
+ } else if (options.type === 'PUT') {
58
+ options.url = options.url + addParamChar + '_method=PUT';
59
+ options.type = 'POST';
60
+ } else if (options.type === 'PATCH') {
61
+ options.url = options.url + addParamChar + '_method=PATCH';
62
+ options.type = 'POST';
63
+ }
64
+ // IE versions below IE8 cannot set the name property of
65
+ // elements that have already been added to the DOM,
66
+ // so we set the name along with the iframe HTML markup:
67
+ counter += 1;
68
+ iframe = $(
69
+ '<iframe src="' + initialIframeSrc +
70
+ '" name="iframe-transport-' + counter + '"></iframe>'
71
+ ).bind('load', function () {
72
+ var fileInputClones,
73
+ paramNames = $.isArray(options.paramName) ?
74
+ options.paramName : [options.paramName];
75
+ iframe
76
+ .unbind('load')
77
+ .bind('load', function () {
78
+ var response;
79
+ // Wrap in a try/catch block to catch exceptions thrown
80
+ // when trying to access cross-domain iframe contents:
81
+ try {
82
+ response = iframe.contents();
83
+ // Google Chrome and Firefox do not throw an
84
+ // exception when calling iframe.contents() on
85
+ // cross-domain requests, so we unify the response:
86
+ if (!response.length || !response[0].firstChild) {
87
+ throw new Error();
88
+ }
89
+ } catch (e) {
90
+ response = undefined;
91
+ }
92
+ // The complete callback returns the
93
+ // iframe content document as response object:
94
+ completeCallback(
95
+ 200,
96
+ 'success',
97
+ {'iframe': response}
98
+ );
99
+ // Fix for IE endless progress bar activity bug
100
+ // (happens on form submits to iframe targets):
101
+ $('<iframe src="' + initialIframeSrc + '"></iframe>')
102
+ .appendTo(form);
103
+ window.setTimeout(function () {
104
+ // Removing the form in a setTimeout call
105
+ // allows Chrome's developer tools to display
106
+ // the response result
107
+ form.remove();
108
+ }, 0);
109
+ });
110
+ form
111
+ .prop('target', iframe.prop('name'))
112
+ .prop('action', options.url)
113
+ .prop('method', options.type);
114
+ if (options.formData) {
115
+ $.each(options.formData, function (index, field) {
116
+ $('<input type="hidden"/>')
117
+ .prop('name', field.name)
118
+ .val(field.value)
119
+ .appendTo(form);
120
+ });
121
+ }
122
+ if (options.fileInput && options.fileInput.length &&
123
+ options.type === 'POST') {
124
+ fileInputClones = options.fileInput.clone();
125
+ // Insert a clone for each file input field:
126
+ options.fileInput.after(function (index) {
127
+ return fileInputClones[index];
128
+ });
129
+ if (options.paramName) {
130
+ options.fileInput.each(function (index) {
131
+ $(this).prop(
132
+ 'name',
133
+ paramNames[index] || options.paramName
134
+ );
135
+ });
136
+ }
137
+ // Appending the file input fields to the hidden form
138
+ // removes them from their original location:
139
+ form
140
+ .append(options.fileInput)
141
+ .prop('enctype', 'multipart/form-data')
142
+ // enctype must be set as encoding for IE:
143
+ .prop('encoding', 'multipart/form-data');
144
+ }
145
+ form.submit();
146
+ // Insert the file input fields at their original location
147
+ // by replacing the clones with the originals:
148
+ if (fileInputClones && fileInputClones.length) {
149
+ options.fileInput.each(function (index, input) {
150
+ var clone = $(fileInputClones[index]);
151
+ $(input).prop('name', clone.prop('name'));
152
+ clone.replaceWith(input);
153
+ });
154
+ }
155
+ });
156
+ form.append(iframe).appendTo(document.body);
157
+ },
158
+ abort: function () {
159
+ if (iframe) {
160
+ // javascript:false as iframe src aborts the request
161
+ // and prevents warning popups on HTTPS in IE6.
162
+ // concat is used to avoid the "Script URL" JSLint error:
163
+ iframe
164
+ .unbind('load')
165
+ .prop('src', initialIframeSrc);
166
+ }
167
+ if (form) {
168
+ form.remove();
169
+ }
170
+ }
171
+ };
172
+ }
173
+ });
174
+
175
+ // The iframe transport returns the iframe content document as response.
176
+ // The following adds converters from iframe to text, json, html, xml
177
+ // and script.
178
+ // Please note that the Content-Type for JSON responses has to be text/plain
179
+ // or text/html, if the browser doesn't include application/json in the
180
+ // Accept header, else IE will show a download dialog.
181
+ // The Content-Type for XML responses on the other hand has to be always
182
+ // application/xml or text/xml, so IE properly parses the XML response.
183
+ // See also
184
+ // https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation
185
+ $.ajaxSetup({
186
+ converters: {
187
+ 'iframe text': function (iframe) {
188
+ return iframe && $(iframe[0].body).text();
189
+ },
190
+ 'iframe json': function (iframe) {
191
+ return iframe && $.parseJSON($(iframe[0].body).text());
192
+ },
193
+ 'iframe html': function (iframe) {
194
+ return iframe && $(iframe[0].body).html();
195
+ },
196
+ 'iframe xml': function (iframe) {
197
+ var xmlDoc = iframe && iframe[0];
198
+ return xmlDoc && $.isXMLDoc(xmlDoc) ? xmlDoc :
199
+ $.parseXML((xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) ||
200
+ $(xmlDoc.body).html());
201
+ },
202
+ 'iframe script': function (iframe) {
203
+ return iframe && $.globalEval($(iframe[0].body).text());
204
+ }
205
+ }
206
+ });
207
+
208
+ }));
assets/js/icheck/icheck.min.js ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ /*! iCheck v1.0.2 by Damir Sultanov, http://git.io/arlzeA, MIT Licensed */
2
+ (function(f){function A(a,b,d){var c=a[0],g=/er/.test(d)?_indeterminate:/bl/.test(d)?n:k,e=d==_update?{checked:c[k],disabled:c[n],indeterminate:"true"==a.attr(_indeterminate)||"false"==a.attr(_determinate)}:c[g];if(/^(ch|di|in)/.test(d)&&!e)x(a,g);else if(/^(un|en|de)/.test(d)&&e)q(a,g);else if(d==_update)for(var f in e)e[f]?x(a,f,!0):q(a,f,!0);else if(!b||"toggle"==d){if(!b)a[_callback]("ifClicked");e?c[_type]!==r&&q(a,g):x(a,g)}}function x(a,b,d){var c=a[0],g=a.parent(),e=b==k,u=b==_indeterminate,
3
+ v=b==n,s=u?_determinate:e?y:"enabled",F=l(a,s+t(c[_type])),B=l(a,b+t(c[_type]));if(!0!==c[b]){if(!d&&b==k&&c[_type]==r&&c.name){var w=a.closest("form"),p='input[name="'+c.name+'"]',p=w.length?w.find(p):f(p);p.each(function(){this!==c&&f(this).data(m)&&q(f(this),b)})}u?(c[b]=!0,c[k]&&q(a,k,"force")):(d||(c[b]=!0),e&&c[_indeterminate]&&q(a,_indeterminate,!1));D(a,e,b,d)}c[n]&&l(a,_cursor,!0)&&g.find("."+C).css(_cursor,"default");g[_add](B||l(a,b)||"");g.attr("role")&&!u&&g.attr("aria-"+(v?n:k),"true");
4
+ g[_remove](F||l(a,s)||"")}function q(a,b,d){var c=a[0],g=a.parent(),e=b==k,f=b==_indeterminate,m=b==n,s=f?_determinate:e?y:"enabled",q=l(a,s+t(c[_type])),r=l(a,b+t(c[_type]));if(!1!==c[b]){if(f||!d||"force"==d)c[b]=!1;D(a,e,s,d)}!c[n]&&l(a,_cursor,!0)&&g.find("."+C).css(_cursor,"pointer");g[_remove](r||l(a,b)||"");g.attr("role")&&!f&&g.attr("aria-"+(m?n:k),"false");g[_add](q||l(a,s)||"")}function E(a,b){if(a.data(m)){a.parent().html(a.attr("style",a.data(m).s||""));if(b)a[_callback](b);a.off(".i").unwrap();
5
+ f(_label+'[for="'+a[0].id+'"]').add(a.closest(_label)).off(".i")}}function l(a,b,f){if(a.data(m))return a.data(m).o[b+(f?"":"Class")]}function t(a){return a.charAt(0).toUpperCase()+a.slice(1)}function D(a,b,f,c){if(!c){if(b)a[_callback]("ifToggled");a[_callback]("ifChanged")[_callback]("if"+t(f))}}var m="iCheck",C=m+"-helper",r="radio",k="checked",y="un"+k,n="disabled";_determinate="determinate";_indeterminate="in"+_determinate;_update="update";_type="type";_click="click";_touch="touchbegin.i touchend.i";
6
+ _add="addClass";_remove="removeClass";_callback="trigger";_label="label";_cursor="cursor";_mobile=/ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i.test(navigator.userAgent);f.fn[m]=function(a,b){var d='input[type="checkbox"], input[type="'+r+'"]',c=f(),g=function(a){a.each(function(){var a=f(this);c=a.is(d)?c.add(a):c.add(a.find(d))})};if(/^(check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy)$/i.test(a))return a=a.toLowerCase(),g(this),c.each(function(){var c=
7
+ f(this);"destroy"==a?E(c,"ifDestroyed"):A(c,!0,a);f.isFunction(b)&&b()});if("object"!=typeof a&&a)return this;var e=f.extend({checkedClass:k,disabledClass:n,indeterminateClass:_indeterminate,labelHover:!0},a),l=e.handle,v=e.hoverClass||"hover",s=e.focusClass||"focus",t=e.activeClass||"active",B=!!e.labelHover,w=e.labelHoverClass||"hover",p=(""+e.increaseArea).replace("%","")|0;if("checkbox"==l||l==r)d='input[type="'+l+'"]';-50>p&&(p=-50);g(this);return c.each(function(){var a=f(this);E(a);var c=this,
8
+ b=c.id,g=-p+"%",d=100+2*p+"%",d={position:"absolute",top:g,left:g,display:"block",width:d,height:d,margin:0,padding:0,background:"#fff",border:0,opacity:0},g=_mobile?{position:"absolute",visibility:"hidden"}:p?d:{position:"absolute",opacity:0},l="checkbox"==c[_type]?e.checkboxClass||"icheckbox":e.radioClass||"i"+r,z=f(_label+'[for="'+b+'"]').add(a.closest(_label)),u=!!e.aria,y=m+"-"+Math.random().toString(36).substr(2,6),h='<div class="'+l+'" '+(u?'role="'+c[_type]+'" ':"");u&&z.each(function(){h+=
9
+ 'aria-labelledby="';this.id?h+=this.id:(this.id=y,h+=y);h+='"'});h=a.wrap(h+"/>")[_callback]("ifCreated").parent().append(e.insert);d=f('<ins class="'+C+'"/>').css(d).appendTo(h);a.data(m,{o:e,s:a.attr("style")}).css(g);e.inheritClass&&h[_add](c.className||"");e.inheritID&&b&&h.attr("id",m+"-"+b);"static"==h.css("position")&&h.css("position","relative");A(a,!0,_update);if(z.length)z.on(_click+".i mouseover.i mouseout.i "+_touch,function(b){var d=b[_type],e=f(this);if(!c[n]){if(d==_click){if(f(b.target).is("a"))return;
10
+ A(a,!1,!0)}else B&&(/ut|nd/.test(d)?(h[_remove](v),e[_remove](w)):(h[_add](v),e[_add](w)));if(_mobile)b.stopPropagation();else return!1}});a.on(_click+".i focus.i blur.i keyup.i keydown.i keypress.i",function(b){var d=b[_type];b=b.keyCode;if(d==_click)return!1;if("keydown"==d&&32==b)return c[_type]==r&&c[k]||(c[k]?q(a,k):x(a,k)),!1;if("keyup"==d&&c[_type]==r)!c[k]&&x(a,k);else if(/us|ur/.test(d))h["blur"==d?_remove:_add](s)});d.on(_click+" mousedown mouseup mouseover mouseout "+_touch,function(b){var d=
11
+ b[_type],e=/wn|up/.test(d)?t:v;if(!c[n]){if(d==_click)A(a,!1,!0);else{if(/wn|er|in/.test(d))h[_add](e);else h[_remove](e+" "+t);if(z.length&&B&&e==v)z[/ut|nd/.test(d)?_remove:_add](w)}if(_mobile)b.stopPropagation();else return!1}})})}})(window.jQuery||window.Zepto);
assets/js/image-picker/image-picker.min.js ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ // Image Picker
2
+ // by Rodrigo Vera
3
+ //
4
+ // Version 0.2.4
5
+ // Full source at https://github.com/rvera/image-picker
6
+ // MIT License, https://github.com/rvera/image-picker/blob/master/LICENSE
7
+ (function(){var t,e,i,s,l=function(t,e){return function(){return t.apply(e,arguments)}},n=[].indexOf||function(t){for(var e=0,i=this.length;i>e;e++)if(e in this&&this[e]===t)return e;return-1};jQuery.fn.extend({imagepicker:function(e){return null==e&&(e={}),this.each(function(){var i;return i=jQuery(this),i.data("picker")&&i.data("picker").destroy(),i.data("picker",new t(this,s(e))),null!=e.initialized?e.initialized.call(i.data("picker")):void 0})}}),s=function(t){var e;return e={hide_select:!0,show_label:!1,initialized:void 0,changed:void 0,clicked:void 0,selected:void 0,limit:void 0,limit_reached:void 0},jQuery.extend(e,t)},i=function(t,e){return 0===jQuery(t).not(e).length&&0===jQuery(e).not(t).length},t=function(){function t(t,e){this.opts=null!=e?e:{},this.sync_picker_with_select=l(this.sync_picker_with_select,this),this.select=jQuery(t),this.multiple="multiple"===this.select.attr("multiple"),null!=this.select.data("limit")&&(this.opts.limit=parseInt(this.select.data("limit"))),this.build_and_append_picker()}return t.prototype.destroy=function(){var t,e,i,s;for(s=this.picker_options,e=0,i=s.length;i>e;e++)t=s[e],t.destroy();return this.picker.remove(),this.select.unbind("change"),this.select.removeData("picker"),this.select.show()},t.prototype.build_and_append_picker=function(){var t=this;return this.opts.hide_select&&this.select.hide(),this.select.change(function(){return t.sync_picker_with_select()}),null!=this.picker&&this.picker.remove(),this.create_picker(),this.select.after(this.picker),this.sync_picker_with_select()},t.prototype.sync_picker_with_select=function(){var t,e,i,s,l;for(s=this.picker_options,l=[],e=0,i=s.length;i>e;e++)t=s[e],t.is_selected()?l.push(t.mark_as_selected()):l.push(t.unmark_as_selected());return l},t.prototype.create_picker=function(){return this.picker=jQuery("<ul class='thumbnails image_picker_selector'></ul>"),this.picker_options=[],this.recursively_parse_option_groups(this.select,this.picker),this.picker},t.prototype.recursively_parse_option_groups=function(t,i){var s,l,n,r,c,o,h,a,p,u;for(a=t.children("optgroup"),r=0,o=a.length;o>r;r++)n=a[r],n=jQuery(n),s=jQuery("<ul></ul>"),s.append(jQuery("<li class='group_title'>"+n.attr("label")+"</li>")),i.append(jQuery("<li>").append(s)),this.recursively_parse_option_groups(n,s);for(p=function(){var i,s,n,r;for(n=t.children("option"),r=[],i=0,s=n.length;s>i;i++)l=n[i],r.push(new e(l,this,this.opts));return r}.call(this),u=[],c=0,h=p.length;h>c;c++)l=p[c],this.picker_options.push(l),l.has_image()&&u.push(i.append(l.node));return u},t.prototype.has_implicit_blanks=function(){var t;return function(){var e,i,s,l;for(s=this.picker_options,l=[],e=0,i=s.length;i>e;e++)t=s[e],t.is_blank()&&!t.has_image()&&l.push(t);return l}.call(this).length>0},t.prototype.selected_values=function(){return this.multiple?this.select.val()||[]:[this.select.val()]},t.prototype.toggle=function(t){var e,s,l;return s=this.selected_values(),l=""+t.value(),this.multiple?n.call(this.selected_values(),l)>=0?(e=this.selected_values(),e.splice(jQuery.inArray(l,s),1),this.select.val([]),this.select.val(e)):null!=this.opts.limit&&this.selected_values().length>=this.opts.limit?null!=this.opts.limit_reached&&this.opts.limit_reached.call(this.select):this.select.val(this.selected_values().concat(l)):this.has_implicit_blanks()&&t.is_selected()?this.select.val(""):this.select.val(l),i(s,this.selected_values())||(this.select.change(),null==this.opts.changed)?void 0:this.opts.changed.call(this.select,s,this.selected_values())},t}(),e=function(){function t(t,e,i){this.picker=e,this.opts=null!=i?i:{},this.clicked=l(this.clicked,this),this.option=jQuery(t),this.create_node()}return t.prototype.destroy=function(){return this.node.find(".thumbnail").unbind()},t.prototype.has_image=function(){return null!=this.option.data("img-src")},t.prototype.is_blank=function(){return!(null!=this.value()&&""!==this.value())},t.prototype.is_selected=function(){var t;return t=this.picker.select.val(),this.picker.multiple?jQuery.inArray(this.value(),t)>=0:this.value()===t},t.prototype.mark_as_selected=function(){return this.node.find(".thumbnail").addClass("selected")},t.prototype.unmark_as_selected=function(){return this.node.find(".thumbnail").removeClass("selected")},t.prototype.value=function(){return this.option.val()},t.prototype.label=function(){return this.option.data("img-label")?this.option.data("img-label"):this.option.text()},t.prototype.clicked=function(){return this.picker.toggle(this),null!=this.opts.clicked&&this.opts.clicked.call(this.picker.select,this),null!=this.opts.selected&&this.is_selected()?this.opts.selected.call(this.picker.select,this):void 0},t.prototype.create_node=function(){var t,e;return this.node=jQuery("<li/>"),t=jQuery("<img class='image_picker_image'/>"),t.attr("src",this.option.data("img-src")),e=jQuery("<div class='thumbnail'>"),e.click({option:this},function(t){return t.data.option.clicked()}),e.append(t),this.opts.show_label&&e.append(jQuery("<p/>").html(this.label())),this.node.append(e),this.node},t}()}).call(this);
assets/js/jquery-datatables/FixedHeader.js ADDED
@@ -0,0 +1,1058 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * File: FixedHeader.js
3
+ * Version: 2.0.6
4
+ * Description: "Fix" a header at the top of the table, so it scrolls with the table
5
+ * Author: Allan Jardine (www.sprymedia.co.uk)
6
+ * Created: Wed 16 Sep 2009 19:46:30 BST
7
+ * Language: Javascript
8
+ * License: GPL v2 or BSD 3 point style
9
+ * Project: Just a little bit of fun - enjoy :-)
10
+ * Contact: www.sprymedia.co.uk/contact
11
+ *
12
+ * Copyright 2009-2012 Allan Jardine, all rights reserved.
13
+ *
14
+ * Modified by cjbug@ya.ru for the PHPDataTables module
15
+ *
16
+ * This source file is free software, under either the GPL v2 license or a
17
+ * BSD style license, available at:
18
+ * http://datatables.net/license_gpl2
19
+ * http://datatables.net/license_bsd
20
+ */
21
+
22
+ /*
23
+ * Function: FixedHeader
24
+ * Purpose: Provide 'fixed' header, footer and columns on an HTML table
25
+ * Returns: object:FixedHeader - must be called with 'new'
26
+ * Inputs: mixed:mTable - target table
27
+ * 1. DataTable object - when using FixedHeader with DataTables, or
28
+ * 2. HTML table node - when using FixedHeader without DataTables
29
+ * object:oInit - initialisation settings, with the following properties (each optional)
30
+ * bool:top - fix the header (default true)
31
+ * bool:bottom - fix the footer (default false)
32
+ * bool:left - fix the left most column (default false)
33
+ * bool:right - fix the right most column (default false)
34
+ * int:zTop - fixed header zIndex
35
+ * int:zBottom - fixed footer zIndex
36
+ * int:zLeft - fixed left zIndex
37
+ * int:zRight - fixed right zIndex
38
+ */
39
+ var FixedHeader = function ( mTable, oInit ) {
40
+ /* Sanity check - you just know it will happen */
41
+ if ( typeof this.fnInit != 'function' )
42
+ {
43
+ alert( "FixedHeader warning: FixedHeader must be initialised with the 'new' keyword." );
44
+ return;
45
+ }
46
+
47
+ var that = this;
48
+ var oSettings = {
49
+ "aoCache": [],
50
+ "oSides": {
51
+ "top": true,
52
+ "bottom": false,
53
+ "left": false,
54
+ "right": false
55
+ },
56
+ "oZIndexes": {
57
+ "top": 104,
58
+ "bottom": 103,
59
+ "left": 102,
60
+ "right": 101
61
+ },
62
+ "oMes": {
63
+ "iTableWidth": 0,
64
+ "iTableHeight": 0,
65
+ "iTableLeft": 0,
66
+ "iTableRight": 0, /* note this is left+width, not actually "right" */
67
+ "iTableTop": 0,
68
+ "iTableBottom": 0 /* note this is top+height, not actually "bottom" */
69
+ },
70
+ "oOffset": {
71
+ "top": 0,
72
+ "left": 0
73
+ },
74
+ "tableId": null,
75
+ "nTable": null,
76
+ "bUseAbsPos": false,
77
+ "bFooter": false
78
+ };
79
+
80
+ /*
81
+ * Function: fnGetSettings
82
+ * Purpose: Get the settings for this object
83
+ * Returns: object: - settings object
84
+ * Inputs: -
85
+ */
86
+ this.fnGetSettings = function () {
87
+ return oSettings;
88
+ };
89
+
90
+ /*
91
+ * Function: fnUpdate
92
+ * Purpose: Update the positioning and copies of the fixed elements
93
+ * Returns: -
94
+ * Inputs: -
95
+ */
96
+ this.fnUpdate = function () {
97
+ this._fnUpdateClones();
98
+ this._fnUpdatePositions();
99
+ };
100
+
101
+ /*
102
+ * Function: fnPosition
103
+ * Purpose: Update the positioning of the fixed elements
104
+ * Returns: -
105
+ * Inputs: -
106
+ */
107
+ this.fnPosition = function () {
108
+ this._fnUpdatePositions();
109
+ };
110
+
111
+ /* Let's do it */
112
+ this.fnInit( mTable, oInit );
113
+
114
+ /* Store the instance on the DataTables object for easy access */
115
+ if ( typeof mTable.fnSettings == 'function' )
116
+ {
117
+ mTable._oPluginFixedHeader = this;
118
+ }
119
+ };
120
+
121
+
122
+ /*
123
+ * Variable: FixedHeader
124
+ * Purpose: Prototype for FixedHeader
125
+ * Scope: global
126
+ */
127
+ FixedHeader.prototype = {
128
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
129
+ * Initialisation
130
+ */
131
+
132
+ /*
133
+ * Function: fnInit
134
+ * Purpose: The "constructor"
135
+ * Returns: -
136
+ * Inputs: {as FixedHeader function}
137
+ */
138
+ fnInit: function ( oTable, oInit )
139
+ {
140
+ var s = this.fnGetSettings();
141
+ var that = this;
142
+
143
+ /* Record the user definable settings */
144
+ this.fnInitSettings( s, oInit );
145
+
146
+ /* DataTables specific stuff */
147
+ if ( typeof oTable.fnSettings == 'function' )
148
+ {
149
+ var oDtSettings = oTable.fnSettings();
150
+
151
+ if ( oDtSettings.oScroll.sX != "" || oDtSettings.oScroll.sY != "" )
152
+ {
153
+ alert( "FixedHeader 2 is not supported with DataTables' scrolling mode at this time" );
154
+ return;
155
+ }
156
+
157
+ s.nTable = oDtSettings.nTable;
158
+ oDtSettings.aoDrawCallback.push( {
159
+ "fn": function () {
160
+ FixedHeader.fnMeasure();
161
+ that._fnUpdateClones.call(that);
162
+ that._fnUpdatePositions.call(that);
163
+ },
164
+ "sName": "FixedHeader"
165
+ } );
166
+ }
167
+ else
168
+ {
169
+ s.nTable = oTable;
170
+ }
171
+
172
+ s.bFooter = (jQuery('>tfoot', s.nTable).length > 0) ? true : false;
173
+
174
+ /* "Detect" browsers that don't support absolute positioing - or have bugs
175
+ s.bUseAbsPos = (jQuery.browser.msie && (jQuery.browser.version=="6.0"||jQuery.browser.version=="7.0"));
176
+ */
177
+ /* Add the 'sides' that are fixed */
178
+ if ( s.oSides.top )
179
+ {
180
+ s.aoCache.push( that._fnCloneTable( "fixedHeader", "FixedHeader_Header", that._fnCloneThead ) );
181
+ }
182
+ if ( s.oSides.bottom )
183
+ {
184
+ s.aoCache.push( that._fnCloneTable( "fixedFooter", "FixedHeader_Footer", that._fnCloneTfoot ) );
185
+ }
186
+ if ( s.oSides.left )
187
+ {
188
+ s.aoCache.push( that._fnCloneTable( "fixedLeft", "FixedHeader_Left", that._fnCloneTLeft ) );
189
+ s.aoCache.push( that._fnCloneTable( "fixedLeftHeader", "FixedHeader_LeftHeader", that._fnCloneTLeftHead ) );
190
+ }
191
+ if ( s.oSides.right )
192
+ {
193
+ s.aoCache.push( that._fnCloneTable( "fixedRight", "FixedHeader_Right", that._fnCloneTRight ) );
194
+ }
195
+
196
+ /* Event listeners for window movement */
197
+ FixedHeader.afnScroll.push( function () {
198
+ that._fnUpdatePositions.call(that);
199
+ } );
200
+
201
+
202
+ jQuery(window).resize( function () {
203
+ FixedHeader.fnMeasure();
204
+ that._fnUpdateClones.call(that);
205
+ that._fnUpdatePositions.call(that);
206
+ } );
207
+
208
+ /* Get things right to start with */
209
+ FixedHeader.fnMeasure();
210
+ that._fnUpdateClones();
211
+ that._fnUpdatePositions();
212
+ that.fnGetSettings().initialized = true;
213
+ jQuery(window).trigger('resize');
214
+ },
215
+
216
+
217
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
218
+ * Support functions
219
+ */
220
+
221
+ /*
222
+ * Function: fnInitSettings
223
+ * Purpose: Take the user's settings and copy them to our local store
224
+ * Returns: -
225
+ * Inputs: object:s - the local settings object
226
+ * object:oInit - the user's settings object
227
+ */
228
+ fnInitSettings: function ( s, oInit )
229
+ {
230
+ if ( typeof oInit != 'undefined' )
231
+ {
232
+ if ( typeof oInit.top != 'undefined' ) {
233
+ s.oSides.top = oInit.top;
234
+ }
235
+ if ( typeof oInit.bottom != 'undefined' ) {
236
+ s.oSides.bottom = oInit.bottom;
237
+ }
238
+ if ( typeof oInit.left != 'undefined' ) {
239
+ s.oSides.left = oInit.left;
240
+ }
241
+ if ( typeof oInit.right != 'undefined' ) {
242
+ s.oSides.right = oInit.right;
243
+ }
244
+
245
+ if ( typeof oInit.zTop != 'undefined' ) {
246
+ s.oZIndexes.top = oInit.zTop;
247
+ }
248
+ if ( typeof oInit.zBottom != 'undefined' ) {
249
+ s.oZIndexes.bottom = oInit.zBottom;
250
+ }
251
+ if ( typeof oInit.zLeft != 'undefined' ) {
252
+ s.oZIndexes.left = oInit.zLeft;
253
+ }
254
+ if ( typeof oInit.zRight != 'undefined' ) {
255
+ s.oZIndexes.right = oInit.zRight;
256
+ }
257
+
258
+ if ( typeof oInit.offsetTop != 'undefined' ) {
259
+ s.oOffset.top = oInit.offsetTop;
260
+ }
261
+
262
+ if ( typeof oInit.offsetLeft != 'undefined' ) {
263
+ s.oOffset.left = oInit.offsetLeft;
264
+ }
265
+
266
+ if ( typeof oInit.tableId != 'undefined' ) {
267
+ s.tableId = oInit.tableId;
268
+ }
269
+
270
+ }
271
+
272
+ /* Detect browsers which have poor position:fixed support so we can use absolute positions.
273
+ * This is much slower since the position must be updated for each scroll, but widens
274
+ * compatibility */
275
+
276
+ s.bUseAbsPos = (jQuery.browser.msie &&
277
+ (jQuery.browser.version=="6.0"||jQuery.browser.version=="7.0"));
278
+
279
+ },
280
+
281
+ /*
282
+ * Function: _fnCloneTable
283
+ * Purpose: Clone the table node and do basic initialisation
284
+ * Returns: -
285
+ * Inputs: -
286
+ */
287
+ _fnCloneTable: function ( sType, sClass, fnClone )
288
+ {
289
+ var s = this.fnGetSettings();
290
+ var nCTable;
291
+
292
+ /* We know that the table _MUST_ has a DIV wrapped around it, because this is simply how
293
+ * DataTables works. Therefore, we can set this to be relatively position (if it is not
294
+ * alreadu absolute, and use this as the base point for the cloned header */
295
+
296
+ if ( jQuery(s.nTable.parentNode).css('position') != "absolute" )
297
+ {
298
+ s.nTable.parentNode.style.position = "relative";
299
+ }
300
+
301
+ /* Just a shallow clone will do - we only want the table node */
302
+ nCTable = s.nTable.cloneNode( false );
303
+ nCTable.removeAttribute( 'id' );
304
+
305
+ var nDiv = document.createElement( 'div' );
306
+ nDiv.style.position = "absolute";
307
+ nDiv.style.top = "0px";
308
+ nDiv.style.left = "0px";
309
+ nDiv.className += " FixedHeader_Cloned "+sType+" "+sClass+" "+s.tableId;
310
+
311
+ /* Set the zIndexes */
312
+ if ( sType == "fixedHeader" )
313
+ {
314
+ nDiv.style.zIndex = s.oZIndexes.top;
315
+ }
316
+ if ( sType == "fixedFooter" )
317
+ {
318
+ nDiv.style.zIndex = s.oZIndexes.bottom;
319
+ }
320
+ if ( sType == "fixedLeft" )
321
+ {
322
+ nDiv.style.zIndex = s.oZIndexes.left;
323
+ }
324
+ else if ( sType == "fixedRight" )
325
+ {
326
+ nDiv.style.zIndex = s.oZIndexes.right;
327
+ }
328
+
329
+ /* remove margins since we are going to poistion it absolutely */
330
+ nCTable.style.margin = "0";
331
+
332
+ /* Insert the newly cloned table into the DOM, on top of the "real" header */
333
+ nDiv.appendChild( nCTable );
334
+ document.body.appendChild( nDiv );
335
+
336
+ return {
337
+ "nNode": nCTable,
338
+ "nWrapper": nDiv,
339
+ "sType": sType,
340
+ "sPosition": "",
341
+ "sTop": "",
342
+ "sLeft": "",
343
+ "fnClone": fnClone
344
+ };
345
+ },
346
+
347
+ /*
348
+ * Function: _fnUpdatePositions
349
+ * Purpose: Get the current positioning of the table in the DOM
350
+ * Returns: -
351
+ * Inputs: -
352
+ */
353
+ _fnMeasure: function ()
354
+ {
355
+ var
356
+ s = this.fnGetSettings(),
357
+ m = s.oMes,
358
+ jqTable = jQuery(s.nTable),
359
+ oOffset = jqTable.offset();
360
+ //oOffset.top = jqTable.position().top,
361
+ //oOffset.left = jqTable.position().left;
362
+
363
+ var iParentScrollTop = this._fnSumScroll( s.nTable.parentNode, 'scrollTop' ),
364
+ iParentScrollLeft = this._fnSumScroll( s.nTable.parentNode, 'scrollLeft' );
365
+
366
+ m.iTableWidth = jqTable.outerWidth();
367
+ m.iTableHeight = jqTable.outerHeight();
368
+ m.iTableLeft = oOffset.left + s.nTable.parentNode.scrollLeft;
369
+ m.iTableTop = oOffset.top + iParentScrollTop;
370
+ m.iTableRight = m.iTableLeft + m.iTableWidth;
371
+
372
+ jQuery.browser.chrome = /chrome/.test(navigator.userAgent.toLowerCase());
373
+ if(jQuery.browser.chrome){
374
+ var iWidth = 0;
375
+ jQuery("thead>tr th", s.nTable).each( function (i) {
376
+ iWidth += jQuery(this).outerWidth()
377
+ } );
378
+ m.iTableWidth = iWidth;
379
+ }
380
+
381
+ m.iTableRight = FixedHeader.oDoc.iWidth - m.iTableLeft - m.iTableWidth;
382
+ m.iTableBottom = FixedHeader.oDoc.iHeight - m.iTableTop - m.iTableHeight;
383
+
384
+ /*
385
+ m.iTableRight = s.nTable.parentNode.outerWidth() - m.iTableLeft - m.iTableWidth;
386
+ m.iTableBottom = s.nTable.parentNode.outerHeight() - m.iTableTop - m.iTableHeight;
387
+ */
388
+ },
389
+
390
+ /*
391
+ * Function: _fnSumScroll
392
+ * Purpose: Sum node parameters all the way to the top
393
+ * Returns: int: sum
394
+ * Inputs: node:n - node to consider
395
+ * string:side - scrollTop or scrollLeft
396
+ */
397
+ _fnSumScroll: function ( n, side )
398
+ {
399
+
400
+ var i = n[side];
401
+
402
+ while ( n = n.parentNode )
403
+ {
404
+ if ( n.nodeName == 'HTML' || n.nodeName == 'BODY' )
405
+ {
406
+ break;
407
+ }
408
+ i = n[side];
409
+ }
410
+
411
+ return i;
412
+ },
413
+
414
+ /*
415
+ * Function: _fnUpdatePositions
416
+ * Purpose: Loop over the fixed elements for this table and update their positions
417
+ * Returns: -
418
+ * Inputs: -
419
+ */
420
+ _fnUpdatePositions: function ()
421
+ {
422
+ var s = this.fnGetSettings();
423
+ this._fnMeasure();
424
+
425
+ for ( var i=0, iLen=s.aoCache.length ; i<iLen ; i++ )
426
+ {
427
+ if ( s.aoCache[i].sType == "fixedHeader" )
428
+ {
429
+ this._fnScrollFixedHeader( s.aoCache[i] );
430
+ }
431
+ else if ( s.aoCache[i].sType == "fixedFooter" )
432
+ {
433
+ this._fnScrollFixedFooter( s.aoCache[i] );
434
+ }
435
+ else if ( s.aoCache[i].sType == "fixedLeft" )
436
+ {
437
+ this._fnScrollHorizontalLeft( s.aoCache[i] );
438
+ }
439
+ else if ( s.aoCache[i].sType == "fixedRight" )
440
+ {
441
+ this._fnScrollHorizontalRight( s.aoCache[i] );
442
+ }
443
+
444
+ // additional: left top columns scroll both ways:
445
+ if ( s.aoCache[i].sType == "fixedLeftHeader" )
446
+ {
447
+ this._fnScrollFixedHeader( s.aoCache[i] );
448
+ this._fnScrollHorizontalLeft( s.aoCache[i] );
449
+ }
450
+
451
+
452
+ }
453
+ },
454
+
455
+ /*
456
+ * Function: _fnUpdateClones
457
+ * Purpose: Loop over the fixed elements for this table and call their cloning functions
458
+ * Returns: -
459
+ * Inputs: -
460
+ */
461
+ _fnUpdateClones: function ()
462
+ {
463
+ var s = this.fnGetSettings();
464
+ for ( var i=0, iLen=s.aoCache.length ; i<iLen ; i++ )
465
+ {
466
+ s.aoCache[i].fnClone.call( this, s.aoCache[i] );
467
+ }
468
+ },
469
+
470
+
471
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
472
+ * Scrolling functions
473
+ */
474
+
475
+ /*
476
+ * Function: _fnScrollHorizontalLeft
477
+ * Purpose: Update the positioning of the scrolling elements
478
+ * Returns: -
479
+ * Inputs: object:oCache - the cahced values for this fixed element
480
+ */
481
+ _fnScrollHorizontalRight: function ( oCache )
482
+ {
483
+ var
484
+ s = this.fnGetSettings(),
485
+ oMes = s.oMes,
486
+ oWin = FixedHeader.oWin,
487
+ oDoc = FixedHeader.oDoc,
488
+ nTable = oCache.nWrapper,
489
+ iFixedWidth = jQuery(nTable).outerWidth();
490
+
491
+ if ( oWin.iScrollRight < oMes.iTableRight )
492
+ {
493
+ /* Fully right aligned */
494
+ this._fnUpdateCache( oCache, 'sPosition', 'absolute', 'position', nTable.style );
495
+ this._fnUpdateCache( oCache, 'sTop', oMes.iTableTop+"px", 'top', nTable.style );
496
+ this._fnUpdateCache( oCache, 'sLeft', (oMes.iTableLeft+oMes.iTableWidth-iFixedWidth)+"px", 'left', nTable.style );
497
+ }
498
+ else if ( oMes.iTableLeft < oDoc.iWidth-oWin.iScrollRight-iFixedWidth )
499
+ {
500
+ /* Middle */
501
+ if ( s.bUseAbsPos )
502
+ {
503
+ this._fnUpdateCache( oCache, 'sPosition', 'absolute', 'position', nTable.style );
504
+ this._fnUpdateCache( oCache, 'sTop', oMes.iTableTop+"px", 'top', nTable.style );
505
+ this._fnUpdateCache( oCache, 'sLeft', (oDoc.iWidth-oWin.iScrollRight-iFixedWidth)+"px", 'left', nTable.style );
506
+ }
507
+ else
508
+ {
509
+ this._fnUpdateCache( oCache, 'sPosition', 'fixed', 'position', nTable.style );
510
+ this._fnUpdateCache( oCache, 'sTop', (oMes.iTableTop-oWin.iScrollTop)+"px", 'top', nTable.style );
511
+ this._fnUpdateCache( oCache, 'sLeft', (oWin.iWidth-iFixedWidth)+"px", 'left', nTable.style );
512
+ }
513
+ }
514
+ else
515
+ {
516
+ /* Fully left aligned */
517
+ this._fnUpdateCache( oCache, 'sPosition', 'absolute', 'position', nTable.style );
518
+ this._fnUpdateCache( oCache, 'sTop', oMes.iTableTop+"px", 'top', nTable.style );
519
+ this._fnUpdateCache( oCache, 'sLeft', oMes.iTableLeft+"px", 'left', nTable.style );
520
+ }
521
+ },
522
+
523
+ /*
524
+ * Function: _fnScrollHorizontalLeft
525
+ * Purpose: Update the positioning of the scrolling elements
526
+ * Returns: -
527
+ * Inputs: object:oCache - the cahced values for this fixed element
528
+ */
529
+ _fnScrollHorizontalLeft: function ( oCache )
530
+ {
531
+ var
532
+ s = this.fnGetSettings(),
533
+ oMes = s.oMes,
534
+ oWin = FixedHeader.oWin,
535
+ oDoc = FixedHeader.oDoc,
536
+ nTable = oCache.nWrapper,
537
+ iCellWidth = jQuery(nTable).outerWidth();
538
+
539
+ if ( oWin.iScrollLeft < oMes.iTableLeft )
540
+ {
541
+ /* Fully left align */
542
+ this._fnUpdateCache( oCache, 'sPosition', 'absolute', 'position', nTable.style );
543
+ if( oCache.sType != 'fixedLeftHeader' ){
544
+ this._fnUpdateCache( oCache, 'sTop', oMes.iTableTop+"px", 'top', nTable.style );
545
+ }
546
+ this._fnUpdateCache( oCache, 'sLeft', oMes.iTableLeft+"px", 'left', nTable.style );
547
+ }
548
+ else if ( oWin.iScrollLeft < oMes.iTableLeft+oMes.iTableWidth-iCellWidth )
549
+ {
550
+ /* Middle */
551
+ if ( s.bUseAbsPos )
552
+ {
553
+ this._fnUpdateCache( oCache, 'sPosition', 'absolute', 'position', nTable.style );
554
+ if( ( oCache.sType != 'fixedLeftHeader' )
555
+ || (oMes.iTableTop > oWin.iScrollTop + s.oOffset.top) ){
556
+ this._fnUpdateCache( oCache, 'sTop', oMes.iTableTop+"px", 'top', nTable.style );
557
+ }
558
+ this._fnUpdateCache( oCache, 'sLeft', oWin.iScrollLeft+"px", 'left', nTable.style );
559
+ }
560
+ else
561
+ {
562
+ this._fnUpdateCache( oCache, 'sPosition', 'fixed', 'position', nTable.style );
563
+ if( ( oCache.sType != 'fixedLeftHeader' )
564
+ || (oMes.iTableTop > oWin.iScrollTop + s.oOffset.top)) {
565
+ this._fnUpdateCache( oCache, 'sTop', (oMes.iTableTop-oWin.iScrollTop)+"px", 'top', nTable.style );
566
+ }
567
+ this._fnUpdateCache( oCache, 'sLeft', "0px", 'left', nTable.style );
568
+ }
569
+ }
570
+ else
571
+ {
572
+ /* Fully right align */
573
+ this._fnUpdateCache( oCache, 'sPosition', 'absolute', 'position', nTable.style );
574
+ this._fnUpdateCache( oCache, 'sTop', oMes.iTableTop+"px", 'top', nTable.style );
575
+ this._fnUpdateCache( oCache, 'sLeft', (oMes.iTableLeft+oMes.iTableWidth-iCellWidth)+"px", 'left', nTable.style );
576
+ }
577
+
578
+ },
579
+
580
+ /*
581
+ * Function: _fnScrollFixedFooter
582
+ * Purpose: Update the positioning of the scrolling elements
583
+ * Returns: -
584
+ * Inputs: object:oCache - the cahced values for this fixed element
585
+ */
586
+ _fnScrollFixedFooter: function ( oCache )
587
+ {
588
+ var
589
+ s = this.fnGetSettings(),
590
+ oMes = s.oMes,
591
+ oWin = FixedHeader.oWin,
592
+ oDoc = FixedHeader.oDoc,
593
+ nTable = oCache.nWrapper,
594
+ iTheadHeight = jQuery("thead", s.nTable).outerHeight(),
595
+ iCellHeight = jQuery(nTable).outerHeight();
596
+
597
+ if ( oWin.iScrollBottom < oMes.iTableBottom )
598
+ {
599
+ /* Below */
600
+ this._fnUpdateCache( oCache, 'sPosition', 'absolute', 'position', nTable.style );
601
+ this._fnUpdateCache( oCache, 'sTop', (oMes.iTableTop+oMes.iTableHeight-iCellHeight)+"px", 'top', nTable.style );
602
+ this._fnUpdateCache( oCache, 'sLeft', oMes.iTableLeft+"px", 'left', nTable.style );
603
+ }
604
+ else if ( oWin.iScrollBottom < oMes.iTableBottom+oMes.iTableHeight-iCellHeight-iTheadHeight )
605
+ {
606
+ this._fnUpdateCache( oCache, 'sPosition', "absolute", 'position', nTable.style );
607
+ this._fnUpdateCache( oCache, 'sTop', (oDoc.iHeight-oWin.iScrollBottom-iCellHeight)+"px", 'top', nTable.style );
608
+ this._fnUpdateCache( oCache, 'sLeft', oMes.iTableLeft+"px", 'left', nTable.style );
609
+ }
610
+ else
611
+ {
612
+ /* Above */
613
+ this._fnUpdateCache( oCache, 'sPosition', 'absolute', 'position', nTable.style );
614
+ this._fnUpdateCache( oCache, 'sTop', (oMes.iTableTop+iCellHeight)+"px", 'top', nTable.style );
615
+ this._fnUpdateCache( oCache, 'sLeft', oMes.iTableLeft+"px", 'left', nTable.style );
616
+ }
617
+ },
618
+
619
+ /*
620
+ * Function: _fnScrollFixedHeader
621
+ * Purpose: Update the positioning of the scrolling elements
622
+ * Returns: -
623
+ * Inputs: object:oCache - the cahced values for this fixed element
624
+ */
625
+ _fnScrollFixedHeader: function ( oCache )
626
+ {
627
+ var
628
+ s = this.fnGetSettings(),
629
+ oMes = s.oMes,
630
+ oWin = FixedHeader.oWin,
631
+ oDoc = FixedHeader.oDoc,
632
+ nTable = oCache.nWrapper,
633
+ iTbodyHeight = 0,
634
+ anTbodies = s.nTable.getElementsByTagName('tbody');
635
+
636
+ for (var i = 0; i < anTbodies.length; ++i) {
637
+ iTbodyHeight += anTbodies[i].offsetHeight;
638
+ }
639
+
640
+ if ( oMes.iTableTop > oWin.iScrollTop + s.oOffset.top )
641
+ {
642
+ /* Above the table */
643
+ this._fnUpdateCache( oCache, 'sPosition', 'absolute', 'position', nTable.style );
644
+ this._fnUpdateCache( oCache, 'sTop', oMes.iTableTop+"px", 'top', nTable.style );
645
+ /* we're adjusting left only if this is not fixed left upper corner */
646
+ if(oCache.sType != 'fixedLeftHeader'){
647
+ this._fnUpdateCache( oCache, 'sLeft', oMes.iTableLeft+"px", 'left', nTable.style );
648
+ }
649
+ }
650
+ else if ( oWin.iScrollTop + s.oOffset.top > oMes.iTableTop+iTbodyHeight )
651
+ {
652
+ /* At the bottom of the table */
653
+ this._fnUpdateCache( oCache, 'sPosition', "absolute", 'position', nTable.style );
654
+ this._fnUpdateCache( oCache, 'sTop', (oMes.iTableTop+iTbodyHeight)+"px", 'top', nTable.style );
655
+ this._fnUpdateCache( oCache, 'sLeft', oMes.iTableLeft+"px", 'left', nTable.style );
656
+ }
657
+ else
658
+ {
659
+ /* In the middle of the table */
660
+ if ( s.bUseAbsPos )
661
+ {
662
+ this._fnUpdateCache( oCache, 'sPosition', "absolute", 'position', nTable.style );
663
+ this._fnUpdateCache( oCache, 'sTop', oWin.iScrollTop+"px", 'top', nTable.style );
664
+ this._fnUpdateCache( oCache, 'sLeft', oMes.iTableLeft+"px", 'left', nTable.style );
665
+ }
666
+ else
667
+ {
668
+ this._fnUpdateCache( oCache, 'sPosition', 'fixed', 'position', nTable.style );
669
+ this._fnUpdateCache( oCache, 'sTop', s.oOffset.top+"px", 'top', nTable.style );
670
+ this._fnUpdateCache( oCache, 'sLeft', (oMes.iTableLeft-oWin.iScrollLeft)+"px", 'left', nTable.style );
671
+ }
672
+ }
673
+ },
674
+
675
+ /*
676
+ * Function: _fnUpdateCache
677
+ * Purpose: Check the cache and update cache and value if needed
678
+ * Returns: -
679
+ * Inputs: object:oCache - local cache object
680
+ * string:sCache - cache property
681
+ * string:sSet - value to set
682
+ * string:sProperty - object property to set
683
+ * object:oObj - object to update
684
+ */
685
+ _fnUpdateCache: function ( oCache, sCache, sSet, sProperty, oObj )
686
+ {
687
+ if ( oCache[sCache] != sSet )
688
+ {
689
+ oObj[sProperty] = sSet;
690
+ oCache[sCache] = sSet;
691
+ }
692
+ },
693
+
694
+
695
+
696
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
697
+ * Cloning functions
698
+ */
699
+
700
+ /*
701
+ * Function: _fnCloneThead
702
+ * Purpose: Clone the thead element
703
+ * Returns: -
704
+ * Inputs: object:oCache - the cahced values for this fixed element
705
+ */
706
+ _fnCloneThead: function ( oCache )
707
+ {
708
+ var s = this.fnGetSettings();
709
+ var nTable = oCache.nNode;
710
+
711
+ /* Set the wrapper width to match that of the cloned table */
712
+ oCache.nWrapper.style.width = jQuery(s.nTable).outerWidth()+"px";
713
+
714
+ /* Remove any children the cloned table has */
715
+ while ( nTable.childNodes.length > 0 )
716
+ {
717
+ jQuery('thead th', nTable).unbind( 'click' );
718
+ nTable.removeChild( nTable.childNodes[0] );
719
+ }
720
+
721
+ /* Clone the DataTables header */
722
+ var nThead = jQuery('thead', s.nTable).clone(true)[0];
723
+ nTable.appendChild( nThead );
724
+
725
+ var iWidth = 0;
726
+ /* Copy the widths across - apparently a clone isn't good enough for this */
727
+ jQuery("thead>tr th", s.nTable).each( function (i) {
728
+ jQuery("thead>tr th:eq("+i+")", nTable).width( jQuery(this).width() );
729
+ iWidth += jQuery(this).outerWidth()
730
+ } );
731
+
732
+ jQuery("thead>tr td", s.nTable).each( function (i) {
733
+ jQuery("thead>tr td:eq("+i+")", nTable).width( jQuery(this).width() );
734
+ } );
735
+
736
+ jQuery.browser.chrome = /chrome/.test(navigator.userAgent.toLowerCase());
737
+ if(jQuery.browser.chrome){
738
+ nTable.style.width = iWidth+"px";
739
+ oCache.nWrapper.style.width = iWidth+"px";
740
+ }
741
+ },
742
+
743
+ /*
744
+ * Function: _fnCloneTfoot
745
+ * Purpose: Clone the tfoot element
746
+ * Returns: -
747
+ * Inputs: object:oCache - the cahced values for this fixed element
748
+ */
749
+ _fnCloneTfoot: function ( oCache )
750
+ {
751
+ var s = this.fnGetSettings();
752
+ var nTable = oCache.nNode;
753
+
754
+ /* Set the wrapper width to match that of the cloned table */
755
+ oCache.nWrapper.style.width = jQuery(s.nTable).outerWidth()+"px";
756
+
757
+ /* Remove any children the cloned table has */
758
+ while ( nTable.childNodes.length > 0 )
759
+ {
760
+ nTable.removeChild( nTable.childNodes[0] );
761
+ }
762
+
763
+ /* Clone the DataTables footer */
764
+ var nTfoot = jQuery('tfoot', s.nTable).clone(true)[0];
765
+ nTable.appendChild( nTfoot );
766
+
767
+ /* Copy the widths across - apparently a clone isn't good enough for this */
768
+ jQuery("tfoot:eq(0)>tr th", s.nTable).each( function (i) {
769
+ jQuery("tfoot:eq(0)>tr th:eq("+i+")", nTable).width( jQuery(this).width() );
770
+ } );
771
+
772
+ jQuery("tfoot:eq(0)>tr td", s.nTable).each( function (i) {
773
+ jQuery("tfoot:eq(0)>tr th:eq("+i+")", nTable)[0].style.width( jQuery(this).width() );
774
+ } );
775
+ },
776
+
777
+ /*
778
+ * Function: _fnCloneTLeft
779
+ * Purpose: Clone the left column
780
+ * Returns: -
781
+ * Inputs: object:oCache - the cached values for this fixed element
782
+ */
783
+ _fnCloneTLeftHead: function ( oCache ) {
784
+
785
+ var s = this.fnGetSettings();
786
+ var nTable = oCache.nNode;
787
+ var amountCols = s.oSides.left-1;
788
+
789
+ /* Set the wrapper width to match that of the cloned table */
790
+ oCache.nWrapper.style.width = jQuery(s.nTable).outerWidth()+"px";
791
+
792
+ /* Remove any children the cloned table has */
793
+ while ( nTable.childNodes.length > 0 )
794
+ {
795
+ jQuery('thead th', nTable).unbind( 'click' );
796
+ nTable.removeChild( nTable.childNodes[0] );
797
+ }
798
+
799
+ /* Clone the DataTables header */
800
+ var nThead = jQuery('thead', s.nTable).clone(true)[0];
801
+ nTable.appendChild( nThead );
802
+
803
+ /* Copy the widths across - apparently a clone isn't good enough for this */
804
+ jQuery("thead>tr:visible th:lt("+s.oSides.left+")", s.nTable).each( function (i) {
805
+ jQuery("thead>tr th:eq("+i+")", nTable).width( jQuery(this).width() );
806
+ jQuery("thead>tr th:eq("+i+")", nTable).height( jQuery(this).height() );
807
+ } );
808
+
809
+ jQuery(oCache.nWrapper).css('z-index', 110);
810
+
811
+ /* Remove unneeded cells */
812
+ jQuery('thead tr', nTable).each( function (k) {
813
+ jQuery(this).children('th:gt('+amountCols+')').remove();
814
+ } );
815
+
816
+
817
+ var clonedCols = jQuery('thead tr:visible th:lt('+s.oSides.left+')', s.nTable);
818
+ /* this is to include table's horizontal spacing. if someone knows better way - would be great */
819
+ var horSpacing = 0;
820
+ if(jQuery(s.nTable).css('border-spacing')){
821
+ horSpacing = parseInt(jQuery(s.nTable).css('border-spacing').split(' ')[0].replace('px', ''));
822
+ }
823
+ var iWidth = horSpacing;
824
+ clonedCols.each(function(){
825
+ iWidth += jQuery(this).outerWidth(true)+horSpacing;
826
+ });
827
+
828
+ nTable.style.width = iWidth+"px";
829
+ oCache.nWrapper.style.width = iWidth+"px";
830
+
831
+ },
832
+
833
+ /*
834
+ * Function: _fnCloneTLeft
835
+ * Purpose: Clone the left column
836
+ * Returns: -
837
+ * Inputs: object:oCache - the cached values for this fixed element
838
+ */
839
+ _fnCloneTLeft: function ( oCache )
840
+ {
841
+ var s = this.fnGetSettings();
842
+ var nTable = oCache.nNode;
843
+ var nBody = jQuery('tbody', s.nTable)[0];
844
+ var amountCols = s.oSides.left-1;
845
+
846
+ /* Remove any children the cloned table has */
847
+ while ( nTable.childNodes.length > 0 )
848
+ {
849
+ nTable.removeChild( nTable.childNodes[0] );
850
+ }
851
+
852
+ /* Is this the most efficient way to do this - it looks horrible... */
853
+ nTable.appendChild( jQuery("thead", s.nTable).clone(true)[0] );
854
+ nTable.appendChild( jQuery("tbody", s.nTable).clone(true)[0] );
855
+ if ( s.bFooter )
856
+ {
857
+ nTable.appendChild( jQuery("tfoot", s.nTable).clone(true)[0] );
858
+ }
859
+
860
+
861
+ /* Remove unneeded cells */
862
+ jQuery('thead tr', nTable).each( function (k) {
863
+ jQuery(this).children('th:gt('+amountCols+')').remove();
864
+ } );
865
+
866
+ jQuery('tfoot tr', nTable).each( function (k) {
867
+ jQuery(this).children('th:gt('+amountCols+')').remove();
868
+ } );
869
+
870
+ jQuery('tbody:first > tr', nTable).each( function (k) {
871
+ jQuery(this).children('td:gt('+amountCols+')').remove();
872
+ } );
873
+
874
+ /* Copy the widths across - apparently a clone isn't good enough for this */
875
+ /* this is to include table's horizontal spacing. if someone knows better way - would be great */
876
+ var horSpacing = 0;
877
+ if(jQuery(s.nTable).css('border-spacing')){
878
+ horSpacing = parseInt(jQuery(s.nTable).css('border-spacing').split(' ')[0].replace('px', ''));
879
+ }
880
+ var iWidth = horSpacing;
881
+ jQuery("thead>tr:visible th:lt("+s.oSides.left+")", s.nTable).each( function (i) {
882
+ jQuery("thead>tr th:eq("+i+")", nTable).width( jQuery(this).width() );
883
+ jQuery("thead>tr th:eq("+i+")", nTable).height( jQuery(this).height() );
884
+ iWidth += jQuery(this).outerWidth()+horSpacing;
885
+ } );
886
+
887
+ //this.fnEqualiseHeights( 'tbody', nBody.parentNode, nTable );
888
+
889
+ nTable.style.width = iWidth+"px";
890
+ oCache.nWrapper.style.width = iWidth+"px";
891
+
892
+ },
893
+
894
+ /*
895
+ * Function: _fnCloneTRight
896
+ * Purpose: Clone the right most colun
897
+ * Returns: -
898
+ * Inputs: object:oCache - the cahced values for this fixed element
899
+ */
900
+ _fnCloneTRight: function ( oCache )
901
+ {
902
+ var s = this.fnGetSettings();
903
+ var nBody = jQuery('tbody', s.nTable)[0];
904
+ var nTable = oCache.nNode;
905
+ var iCols = jQuery('tbody tr:eq(0) td', s.nTable).length;
906
+ var bRubbishOldIE = ($.browser.msie && ($.browser.version == "6.0" || $.browser.version == "7.0"));
907
+
908
+ /* Remove any children the cloned table has */
909
+ while ( nTable.childNodes.length > 0 )
910
+ {
911
+ nTable.removeChild( nTable.childNodes[0] );
912
+ }
913
+
914
+ /* Is this the most efficient way to do this - it looks horrible... */
915
+ nTable.appendChild( jQuery("thead", s.nTable).clone(true)[0] );
916
+ nTable.appendChild( jQuery("tbody", s.nTable).clone(true)[0] );
917
+ if ( s.bFooter )
918
+ {
919
+ nTable.appendChild( jQuery("tfoot", s.nTable).clone(true)[0] );
920
+ }
921
+ jQuery('thead tr th:not(:nth-child('+iCols+'n))', nTable).remove();
922
+ jQuery('tfoot tr th:not(:nth-child('+iCols+'n))', nTable).remove();
923
+
924
+ /* Remove unneeded cells */
925
+ jQuery('tbody tr', nTable).each( function (k) {
926
+ jQuery('td:lt('+(iCols-1)+')', this).remove();
927
+ } );
928
+
929
+ this.fnEqualiseHeights( 'tbody', nBody.parentNode, nTable );
930
+
931
+ var iWidth = jQuery('thead tr th:eq('+(iCols-1)+')', s.nTable).outerWidth();
932
+ nTable.style.width = iWidth+"px";
933
+ oCache.nWrapper.style.width = iWidth+"px";
934
+ },
935
+
936
+
937
+ /**
938
+ * Equalise the heights of the rows in a given table node in a cross browser way. Note that this
939
+ * is more or less lifted as is from FixedColumns
940
+ * @method fnEqualiseHeights
941
+ * @returns void
942
+ * @param {string} parent Node type - thead, tbody or tfoot
943
+ * @param {element} original Original node to take the heights from
944
+ * @param {element} clone Copy the heights to
945
+ * @private
946
+ */
947
+ "fnEqualiseHeights": function ( parent, original, clone )
948
+ {
949
+ var that = this,
950
+ jqBoxHack = jQuery(parent+' tr:eq(0)', original).children(':eq(0)'),
951
+ iBoxHack = jqBoxHack.outerHeight() - jqBoxHack.height(),
952
+ bRubbishOldIE = ($.browser.msie && ($.browser.version == "6.0" || $.browser.version == "7.0"));
953
+
954
+ /* Remove cells which are not needed and copy the height from the original table */
955
+ jQuery(parent+' tr', clone).each( function (k) {
956
+ /* Can we use some kind of object detection here?! This is very nasty - damn browsers */
957
+ if ( $.browser.mozilla || $.browser.opera )
958
+ {
959
+ jQuery(this).children().height( jQuery(parent+' tr:eq('+k+')', original).outerHeight() );
960
+ }
961
+ else
962
+ {
963
+ jQuery(this).children().height( jQuery(parent+' tr:eq('+k+')', original).outerHeight() - iBoxHack );
964
+ }
965
+
966
+ if ( !bRubbishOldIE )
967
+ {
968
+ jQuery(parent+' tr:eq('+k+')', original).height( jQuery(parent+' tr:eq('+k+')', original).outerHeight() );
969
+ }
970
+ } );
971
+ }
972
+ };
973
+
974
+
975
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
976
+ * Static properties and methods
977
+ * We use these for speed! This information is common to all instances of FixedHeader, so no
978
+ * point if having them calculated and stored for each different instance.
979
+ */
980
+
981
+ /*
982
+ * Variable: oWin
983
+ * Purpose: Store information about the window positioning
984
+ * Scope: FixedHeader
985
+ */
986
+ FixedHeader.oWin = {
987
+ "iScrollTop": 0,
988
+ "iScrollRight": 0,
989
+ "iScrollBottom": 0,
990
+ "iScrollLeft": 0,
991
+ "iHeight": 0,
992
+ "iWidth": 0
993
+ };
994
+
995
+ /*
996
+ * Variable: oDoc
997
+ * Purpose: Store information about the document size
998
+ * Scope: FixedHeader
999
+ */
1000
+ FixedHeader.oDoc = {
1001
+ "iHeight": 0,
1002
+ "iWidth": 0
1003
+ };
1004
+
1005
+ /*
1006
+ * Variable: afnScroll
1007
+ * Purpose: Array of functions that are to be used for the scrolling components
1008
+ * Scope: FixedHeader
1009
+ */
1010
+ FixedHeader.afnScroll = [];
1011
+
1012
+ /*
1013
+ * Function: fnMeasure
1014
+ * Purpose: Update the measurements for the window and document
1015
+ * Returns: -
1016
+ * Inputs: -
1017
+ */
1018
+ FixedHeader.fnMeasure = function ()
1019
+ {
1020
+ var
1021
+ jqWin = jQuery(window),
1022
+ jqDoc = jQuery(document),
1023
+
1024
+ oWin = FixedHeader.oWin,
1025
+ oDoc = FixedHeader.oDoc;
1026
+
1027
+ oDoc.iHeight = jqDoc.height();
1028
+ oDoc.iWidth = jqDoc.width();
1029
+
1030
+ oWin.iHeight = jqWin.height();
1031
+ oWin.iWidth = jqWin.width();
1032
+ oWin.iScrollTop = jqWin.scrollTop();
1033
+ oWin.iScrollLeft = jqWin.scrollLeft();
1034
+ oWin.iScrollRight = oDoc.iWidth - oWin.iScrollLeft - oWin.iWidth;
1035
+ oWin.iScrollBottom = oDoc.iHeight - oWin.iScrollTop - oWin.iHeight;
1036
+
1037
+ };
1038
+
1039
+
1040
+ FixedHeader.VERSION = "2.0.6";
1041
+ FixedHeader.prototype.VERSION = FixedHeader.VERSION;
1042
+
1043
+
1044
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
1045
+ * Global processing
1046
+ */
1047
+
1048
+ /*
1049
+ * Just one 'scroll' event handler in FixedHeader, which calls the required components. This is
1050
+ * done as an optimisation, to reduce calculation and proagation time
1051
+ */
1052
+ jQuery(window).scroll( function () {
1053
+ FixedHeader.fnMeasure();
1054
+ for ( var i=0, iLen=FixedHeader.afnScroll.length ; i<iLen ; i++ )
1055
+ {
1056
+ FixedHeader.afnScroll[i]();
1057
+ }
1058
+ } );
assets/js/jquery-datatables/TableTools.min.js ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Simple Set Clipboard System
2
+ // Author: Joseph Huckaby
3
+ var ZeroClipboard={version:"1.0.4-TableTools2",clients:{},moviePath:"",nextId:1,$:function(a){"string"==typeof a&&(a=document.getElementById(a));if(!a.addClass)a.hide=function(){this.style.display="none"},a.show=function(){this.style.display=""},a.addClass=function(a){this.removeClass(a);this.className+=" "+a},a.removeClass=function(a){this.className=this.className.replace(RegExp("\\s*"+a+"\\s*")," ").replace(/^\s+/,"").replace(/\s+$/,"")},a.hasClass=function(a){return!!this.className.match(RegExp("\\s*"+
4
+ a+"\\s*"))};return a},setMoviePath:function(a){this.moviePath=a},dispatch:function(a,b,c){(a=this.clients[a])&&a.receiveEvent(b,c)},register:function(a,b){this.clients[a]=b},getDOMObjectPosition:function(a){var b={left:0,top:0,width:a.width?a.width:a.offsetWidth,height:a.height?a.height:a.offsetHeight};if(""!=a.style.width)b.width=a.style.width.replace("px","");if(""!=a.style.height)b.height=a.style.height.replace("px","");for(;a;)b.left+=a.offsetLeft,b.top+=a.offsetTop,a=a.offsetParent;return b},
5
+ Client:function(a){this.handlers={};this.id=ZeroClipboard.nextId++;this.movieId="ZeroClipboardMovie_"+this.id;ZeroClipboard.register(this.id,this);a&&this.glue(a)}};
6
+ ZeroClipboard.Client.prototype={id:0,ready:!1,movie:null,clipText:"",fileName:"",action:"copy",handCursorEnabled:!0,cssEffects:!0,handlers:null,sized:!1,glue:function(a,b){this.domElement=ZeroClipboard.$(a);var c=99;this.domElement.style.zIndex&&(c=parseInt(this.domElement.style.zIndex)+1);var d=ZeroClipboard.getDOMObjectPosition(this.domElement);this.div=document.createElement("div");var e=this.div.style;e.position="absolute";e.left=this.domElement.offsetLeft+"px";e.top=this.domElement.offsetTop+
7
+ "px";e.width=d.width+"px";e.height=d.height+"px";e.zIndex=c;if("undefined"!=typeof b&&""!=b)this.div.title=b;if(0!=d.width&&0!=d.height)this.sized=!0;this.domElement.parentNode.appendChild(this.div);this.div.innerHTML=this.getHTML(d.width,d.height)},positionElement:function(){var a=ZeroClipboard.getDOMObjectPosition(this.domElement),b=this.div.style;b.position="absolute";b.left=this.domElement.offsetLeft+"px";b.top=this.domElement.offsetTop+"px";b.width=a.width+"px";b.height=a.height+"px";if(0!=a.width&&
8
+ 0!=a.height)this.sized=!0,b=this.div.childNodes[0],b.width=a.width,b.height=a.height},getHTML:function(a,b){var c="",d="id="+this.id+"&width="+a+"&height="+b;if(navigator.userAgent.match(/MSIE/))var e=location.href.match(/^https/i)?"https://":"http://",c=c+('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="'+e+'download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="'+a+'" height="'+b+'" id="'+this.movieId+'" align="middle"><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="false" /><param name="movie" value="'+
9
+ ZeroClipboard.moviePath+'" /><param name="loop" value="false" /><param name="menu" value="false" /><param name="quality" value="best" /><param name="bgcolor" value="#ffffff" /><param name="flashvars" value="'+d+'"/><param name="wmode" value="transparent"/></object>');else c+='<embed id="'+this.movieId+'" src="'+ZeroClipboard.moviePath+'" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="'+a+'" height="'+b+'" name="'+this.movieId+'" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="'+
10
+ d+'" wmode="transparent" />';return c},hide:function(){if(this.div)this.div.style.left="-2000px"},show:function(){this.reposition()},destroy:function(){if(this.domElement&&this.div){this.hide();this.div.innerHTML="";var a=document.getElementsByTagName("body")[0];try{a.removeChild(this.div)}catch(b){}this.div=this.domElement=null}},reposition:function(a){if(a)(this.domElement=ZeroClipboard.$(a))||this.hide();if(this.domElement&&this.div){var a=ZeroClipboard.getDOMObjectPosition(this.domElement),b=
11
+ this.div.style;b.left=""+a.left+"px";b.top=""+a.top+"px"}},clearText:function(){this.clipText="";this.ready&&this.movie.clearText()},appendText:function(a){this.clipText+=a;this.ready&&this.movie.appendText(a)},setText:function(a){this.clipText=a;this.ready&&this.movie.setText(a)},setCharSet:function(a){this.charSet=a;this.ready&&this.movie.setCharSet(a)},setBomInc:function(a){this.incBom=a;this.ready&&this.movie.setBomInc(a)},setFileName:function(a){this.fileName=a;this.ready&&this.movie.setFileName(a)},
12
+ setAction:function(a){this.action=a;this.ready&&this.movie.setAction(a)},addEventListener:function(a,b){a=a.toString().toLowerCase().replace(/^on/,"");this.handlers[a]||(this.handlers[a]=[]);this.handlers[a].push(b)},setHandCursor:function(a){this.handCursorEnabled=a;this.ready&&this.movie.setHandCursor(a)},setCSSEffects:function(a){this.cssEffects=!!a},receiveEvent:function(a,b){a=a.toString().toLowerCase().replace(/^on/,"");switch(a){case "load":this.movie=document.getElementById(this.movieId);
13
+ if(!this.movie){var c=this;setTimeout(function(){c.receiveEvent("load",null)},1);return}if(!this.ready&&navigator.userAgent.match(/Firefox/)&&navigator.userAgent.match(/Windows/)){c=this;setTimeout(function(){c.receiveEvent("load",null)},100);this.ready=!0;return}this.ready=!0;this.movie.clearText();this.movie.appendText(this.clipText);this.movie.setFileName(this.fileName);this.movie.setAction(this.action);this.movie.setCharSet(this.charSet);this.movie.setBomInc(this.incBom);this.movie.setHandCursor(this.handCursorEnabled);
14
+ break;case "mouseover":this.domElement&&this.cssEffects&&this.recoverActive&&this.domElement.addClass("active");break;case "mouseout":if(this.domElement&&this.cssEffects&&(this.recoverActive=!1,this.domElement.hasClass("active")))this.domElement.removeClass("active"),this.recoverActive=!0;break;case "mousedown":this.domElement&&this.cssEffects&&this.domElement.addClass("active");break;case "mouseup":if(this.domElement&&this.cssEffects)this.domElement.removeClass("active"),this.recoverActive=!1}if(this.handlers[a])for(var d=
15
+ 0,e=this.handlers[a].length;d<e;d++){var f=this.handlers[a][d];if("function"==typeof f)f(this,b);else if("object"==typeof f&&2==f.length)f[0][f[1]](this,b);else if("string"==typeof f)window[f](this,b)}}};
16
+
17
+
18
+ /*
19
+ * File: TableTools.min.js
20
+ * Version: 2.0.2
21
+ * Author: Allan Jardine (www.sprymedia.co.uk)
22
+ *
23
+ * Copyright 2009-2011 Allan Jardine, all rights reserved.
24
+ *
25
+ * This source file is free software, under either the GPL v2 license or a
26
+ * BSD (3 point) style license, as supplied with this software.
27
+ *
28
+ * This source file is distributed in the hope that it will be useful, but
29
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
30
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.
31
+ */
32
+ var TableTools;
33
+ (function(e,n,h){TableTools=function(a,b){(!this.CLASS||"TableTools"!=this.CLASS)&&alert("Warning: TableTools must be initialised with the keyword 'new'");this.s={that:this,dt:null,print:{saveStart:-1,saveLength:-1,saveScroll:-1,funcEnd:function(){}},buttonCounter:0,select:{type:"",selected:[],preRowSelect:null,postSelected:null,postDeselected:null,all:!1,selectedClass:""},custom:{},swfPath:"",buttonSet:[],master:!1};this.dom={container:null,table:null,print:{hidden:[],message:null},collection:{collection:null,
34
+ background:null}};this.fnSettings=function(){return this.s};"undefined"==typeof b&&(b={});this.s.dt=a.fnSettings();this._fnConstruct(b);return this};TableTools.prototype={fnGetSelected:function(){return this._fnGetMasterSettings().select.selected},fnGetSelectedData:function(){for(var a=this._fnGetMasterSettings().select.selected,b=[],c=0,d=a.length;c<d;c++)b.push(this.s.dt.oInstance.fnGetData(a[c]));return b},fnIsSelected:function(a){for(var b=this.fnGetSelected(),c=0,d=b.length;c<d;c++)if(a==b[c])return!0;
35
+ return!1},fnSelectAll:function(){this._fnGetMasterSettings().that._fnRowSelectAll()},fnSelectNone:function(){this._fnGetMasterSettings().that._fnRowDeselectAll()},fnSelect:function(a){this.fnIsSelected(a)||("single"==this.s.select.type?this._fnRowSelectSingle(a):"multi"==this.s.select.type&&this._fnRowSelectMulti(a))},fnDeselect:function(a){this.fnIsSelected(a)&&("single"==this.s.select.type?this._fnRowSelectSingle(a):"multi"==this.s.select.type&&this._fnRowSelectMulti(a))},fnGetTitle:function(a){var b=
36
+ "";if("undefined"!=typeof a.sTitle&&""!==a.sTitle)b=a.sTitle;else if(a=h.getElementsByTagName("title"),0<a.length)b=a[0].innerHTML;return 4>"\u00a1".toString().length?b.replace(/[^a-zA-Z0-9_\u00A1-\uFFFF\.,\-_ !\(\)]/g,""):b.replace(/[^a-zA-Z0-9_\.,\-_ !\(\)]/g,"")},fnCalcColRatios:function(a){var b=this.s.dt.aoColumns,a=this._fnColumnTargets(a.mColumns),c=[],d=0,e=0,f,g;for(f=0,g=a.length;f<g;f++)if(a[f])d=b[f].nTh.offsetWidth,e+=d,c.push(d);for(f=0,g=c.length;f<g;f++)c[f]/=e;return c.join("\t")},
37
+ fnGetTableData:function(a){if(this.s.dt)return this._fnGetDataTablesData(a)},fnSetText:function(a,b){this._fnFlashSetText(a,b)},fnResizeButtons:function(){for(var a in ZeroClipboard.clients)if(a){var b=ZeroClipboard.clients[a];"undefined"!=typeof b.domElement&&b.domElement.parentNode==this.dom.container&&b.positionElement()}},fnResizeRequired:function(){for(var a in ZeroClipboard.clients)if(a){var b=ZeroClipboard.clients[a];if("undefined"!=typeof b.domElement&&b.domElement.parentNode==this.dom.container&&
38
+ !1===b.sized)return!0}return!1},_fnConstruct:function(a){var b=this;this._fnCustomiseSettings(a);this.dom.container=h.createElement("div");this.dom.container.className=!this.s.dt.bJUI?"DTTT_container":"DTTT_container ui-buttonset ui-buttonset-multi";"none"!=this.s.select.type&&this._fnRowSelectConfig();this._fnButtonDefinations(this.s.buttonSet,this.dom.container);this.s.dt.aoDestroyCallback.push({sName:"TableTools",fn:function(){b.dom.container.innerHTML=""}})},_fnCustomiseSettings:function(a){if("undefined"==
39
+ typeof this.s.dt._TableToolsInit)this.s.master=!0,this.s.dt._TableToolsInit=!0;this.dom.table=this.s.dt.nTable;this.s.custom=e.extend({},TableTools.DEFAULTS,a);this.s.swfPath=this.s.custom.sSwfPath;if("undefined"!=typeof ZeroClipboard)ZeroClipboard.moviePath=this.s.swfPath;this.s.select.type=this.s.custom.sRowSelect;this.s.select.preRowSelect=this.s.custom.fnPreRowSelect;this.s.select.postSelected=this.s.custom.fnRowSelected;this.s.select.postDeselected=this.s.custom.fnRowDeselected;this.s.select.selectedClass=
40
+ this.s.custom.sSelectedClass;this.s.buttonSet=this.s.custom.aButtons},_fnButtonDefinations:function(a,b){for(var c,d=0,j=a.length;d<j;d++){if("string"==typeof a[d]){if("undefined"==typeof TableTools.BUTTONS[a[d]]){alert("TableTools: Warning - unknown button type: "+a[d]);continue}c=e.extend({},TableTools.BUTTONS[a[d]],!0)}else{if("undefined"==typeof TableTools.BUTTONS[a[d].sExtends]){alert("TableTools: Warning - unknown button type: "+a[d].sExtends);continue}c=e.extend({},TableTools.BUTTONS[a[d].sExtends],
41
+ !0);c=e.extend(c,a[d],!0)}this.s.dt.bJUI&&(c.sButtonClass+=" ui-button ui-state-default",c.sButtonClassHover+=" ui-state-hover");b.appendChild(this._fnCreateButton(c))}},_fnCreateButton:function(a){var b="div"==a.sAction?this._fnDivBase(a):this._fnButtonBase(a);"print"==a.sAction?this._fnPrintConfig(b,a):a.sAction.match(/flash/)?this._fnFlashConfig(b,a):"text"==a.sAction?this._fnTextConfig(b,a):"div"==a.sAction?this._fnTextConfig(b,a):"collection"==a.sAction&&(this._fnTextConfig(b,a),this._fnCollectionConfig(b,
42
+ a));return b},_fnButtonBase:function(a){var b=h.createElement("button"),c=h.createElement("span"),d=this._fnGetMasterSettings();b.className="DTTT_button "+a.sButtonClass;b.setAttribute("id","ToolTables_"+this.s.dt.sInstance+"_"+d.buttonCounter);b.appendChild(c);c.innerHTML=a.sButtonText;d.buttonCounter++;return b},_fnDivBase:function(a){var b=h.createElement("div"),c=this._fnGetMasterSettings();b.className=a.sButtonClass;b.setAttribute("id","ToolTables_"+this.s.dt.sInstance+"_"+c.buttonCounter);b.innerHTML=
43
+ a.sButtonText;null!==a.nContent&&b.appendChild(a.nContent);c.buttonCounter++;return b},_fnGetMasterSettings:function(){if(this.s.master)return this.s;for(var a=TableTools._aInstances,b=0,c=a.length;b<c;b++)if(this.dom.table==a[b].s.dt.nTable)return a[b].s},_fnCollectionConfig:function(a,b){var c=h.createElement("div");c.style.display="none";c.className=!this.s.dt.bJUI?"DTTT_collection":"DTTT_collection ui-buttonset ui-buttonset-multi";b._collection=c;this._fnButtonDefinations(b.aButtons,c)},_fnCollectionShow:function(a,
44
+ b){var c=this,d=e(a).offset(),j=b._collection,f=d.left,d=d.top+e(a).outerHeight(),g=e(n).height(),l=e(h).height(),m=e(n).width(),o=e(h).width();j.style.position="absolute";j.style.left=f+"px";j.style.top=d+"px";j.style.display="block";e(j).css("opacity",0);var k=h.createElement("div");k.style.position="absolute";k.style.left="0px";k.style.top="0px";k.style.height=(g>l?g:l)+"px";k.style.width=(m>o?m:o)+"px";k.className="DTTT_collection_background";e(k).css("opacity",0);h.body.appendChild(k);h.body.appendChild(j);
45
+ g=e(j).outerWidth();m=e(j).outerHeight();if(f+g>o)j.style.left=o-g+"px";if(d+m>l)j.style.top=d-m-e(a).outerHeight()+"px";this.dom.collection.collection=j;this.dom.collection.background=k;setTimeout(function(){e(j).animate({opacity:1},500);e(k).animate({opacity:0.25},500)},10);e(k).click(function(){c._fnCollectionHide.call(c,null,null)})},_fnCollectionHide:function(a,b){if(!(null!==b&&"collection"==b.sExtends)&&null!==this.dom.collection.collection)e(this.dom.collection.collection).animate({opacity:0},
46
+ 500,function(){this.style.display="none"}),e(this.dom.collection.background).animate({opacity:0},500,function(){this.parentNode.removeChild(this)}),this.dom.collection.collection=null,this.dom.collection.background=null},_fnRowSelectConfig:function(){if(this.s.master){var a=this;e(a.s.dt.nTable).addClass("DTTT_selectable");e("tr",a.s.dt.nTBody).live("click",function(b){if(this.parentNode==a.s.dt.nTBody){var c=a.s.dt.oInstance.fnGetNodes();-1===e.inArray(this,c)||null!==a.s.select.preRowSelect&&!a.s.select.preRowSelect.call(a,
47
+ b)||("single"==a.s.select.type?a._fnRowSelectSingle.call(a,this):a._fnRowSelectMulti.call(a,this))}});a.s.dt.aoDrawCallback.push({fn:function(){a.s.select.all&&a.s.dt.oFeatures.bServerSide&&a.fnSelectAll()},sName:"TableTools_select"})}},_fnRowSelectSingle:function(a){this.s.master&&!e("td",a).hasClass(this.s.dt.oClasses.sRowEmpty)&&(e(a).hasClass(this.s.select.selectedClass)?this._fnRowDeselect(a):(0!==this.s.select.selected.length&&this._fnRowDeselectAll(),this.s.select.selected.push(a),e(a).addClass(this.s.select.selectedClass),
48
+ null!==this.s.select.postSelected&&this.s.select.postSelected.call(this,a)),TableTools._fnEventDispatch(this,"select",a))},_fnRowSelectMulti:function(a){this.s.master&&!e("td",a).hasClass(this.s.dt.oClasses.sRowEmpty)&&(e(a).hasClass(this.s.select.selectedClass)?this._fnRowDeselect(a):(this.s.select.selected.push(a),e(a).addClass(this.s.select.selectedClass),null!==this.s.select.postSelected&&this.s.select.postSelected.call(this,a)),TableTools._fnEventDispatch(this,"select",a))},_fnRowSelectAll:function(){if(this.s.master){for(var a,
49
+ b=0,c=this.s.dt.aiDisplayMaster.length;b<c;b++)a=this.s.dt.aoData[this.s.dt.aiDisplayMaster[b]].nTr,e(a).hasClass(this.s.select.selectedClass)||(this.s.select.selected.push(a),e(a).addClass(this.s.select.selectedClass));null!==this.s.select.postSelected&&this.s.select.postSelected.call(this,null);this.s.select.all=!0;TableTools._fnEventDispatch(this,"select",null)}},_fnRowDeselectAll:function(){if(this.s.master){for(var a=this.s.select.selected.length-1;0<=a;a--)this._fnRowDeselect(a,!1);null!==this.s.select.postDeselected&&
50
+ this.s.select.postDeselected.call(this,null);this.s.select.all=!1;TableTools._fnEventDispatch(this,"select",null)}},_fnRowDeselect:function(a,b){"undefined"!=typeof a.nodeName&&(a=e.inArray(a,this.s.select.selected));var c=this.s.select.selected[a];e(c).removeClass(this.s.select.selectedClass);this.s.select.selected.splice(a,1);("undefined"==typeof b||b)&&null!==this.s.select.postDeselected&&this.s.select.postDeselected.call(this,c);this.s.select.all=!1},_fnTextConfig:function(a,b){var c=this;null!==
51
+ b.fnInit&&b.fnInit.call(this,a,b);if(""!==b.sToolTip)a.title=b.sToolTip;e(a).hover(function(){e(a).addClass(b.sButtonClassHover);null!==b.fnMouseover&&b.fnMouseover.call(this,a,b,null)},function(){e(a).removeClass(b.sButtonClassHover);null!==b.fnMouseout&&b.fnMouseout.call(this,a,b,null)});null!==b.fnSelect&&TableTools._fnEventListen(this,"select",function(d){b.fnSelect.call(c,a,b,d)});e(a).click(function(d){d.preventDefault();null!==b.fnClick&&b.fnClick.call(c,a,b,null);null!==b.fnComplete&&b.fnComplete.call(c,
52
+ a,b,null,null);c._fnCollectionHide(a,b)})},_fnFlashConfig:function(a,b){var c=this,d=new ZeroClipboard.Client;null!==b.fnInit&&b.fnInit.call(this,a,b);d.setHandCursor(!0);"flash_save"==b.sAction?(d.setAction("save"),d.setCharSet("utf16le"==b.sCharSet?"UTF16LE":"UTF8"),d.setBomInc(b.bBomInc),d.setFileName(b.sFileName.replace("*",this.fnGetTitle(b)))):"flash_pdf"==b.sAction?(d.setAction("pdf"),d.setFileName(b.sFileName.replace("*",this.fnGetTitle(b)))):d.setAction("copy");d.addEventListener("mouseOver",
53
+ function(){e(a).addClass(b.sButtonClassHover);null!==b.fnMouseover&&b.fnMouseover.call(c,a,b,d)});d.addEventListener("mouseOut",function(){e(a).removeClass(b.sButtonClassHover);null!==b.fnMouseout&&b.fnMouseout.call(c,a,b,d)});d.addEventListener("mouseDown",function(){null!==b.fnClick&&b.fnClick.call(c,a,b,d)});d.addEventListener("complete",function(e,f){null!==b.fnComplete&&b.fnComplete.call(c,a,b,d,f);c._fnCollectionHide(a,b)});this._fnFlashGlue(d,a,b.sToolTip)},_fnFlashGlue:function(a,b,c){var d=
54
+ this,e=b.getAttribute("id");if(h.getElementById(e)){if(a.glue(b,c),a.domElement.parentNode!=a.div.parentNode&&"undefined"==typeof d.__bZCWarning)d.s.dt.oApi._fnLog(this.s.dt,0,"It looks like you are using the version of ZeroClipboard which came with TableTools 1. Please update to use the version that came with TableTools 2."),d.__bZCWarning=!0}else setTimeout(function(){d._fnFlashGlue(a,b,c)},100)},_fnFlashSetText:function(a,b){var c=this._fnChunkData(b,8192);a.clearText();for(var d=0,e=c.length;d<
55
+ e;d++)a.appendText(c[d])},_fnColumnTargets:function(a){var b=[],c=this.s.dt;if("object"==typeof a){for(i=0,iLen=c.aoColumns.length;i<iLen;i++)b.push(!1);for(i=0,iLen=a.length;i<iLen;i++)b[a[i]]=!0}else if("visible"==a)for(i=0,iLen=c.aoColumns.length;i<iLen;i++)b.push(c.aoColumns[i].bVisible?!0:!1);else if("hidden"==a)for(i=0,iLen=c.aoColumns.length;i<iLen;i++)b.push(c.aoColumns[i].bVisible?!1:!0);else if("sortable"==a)for(i=0,iLen=c.aoColumns.length;i<iLen;i++)b.push(c.aoColumns[i].bSortable?!0:!1);
56
+ else for(i=0,iLen=c.aoColumns.length;i<iLen;i++)b.push(!0);return b},_fnNewline:function(a){return"auto"==a.sNewLine?navigator.userAgent.match(/Windows/)?"\r\n":"\n":a.sNewLine},_fnGetDataTablesData:function(a){var b,c,d,j,f="",g="",h=this.s.dt,m=RegExp(a.sFieldBoundary,"g"),o=this._fnColumnTargets(a.mColumns),k=this._fnNewline(a),n="undefined"!=typeof a.bSelectedOnly?a.bSelectedOnly:!1;if(a.bHeader){for(b=0,c=h.aoColumns.length;b<c;b++)o[b]&&(g=h.aoColumns[b].sTitle.replace(/\n/g," ").replace(/<.*?>/g,
57
+ "").replace(/^\s+|\s+$/g,""),g=this._fnHtmlDecode(g),f+=this._fnBoundData(g,a.sFieldBoundary,m)+a.sFieldSeperator);f=f.slice(0,-1*a.sFieldSeperator.length);f+=k}for(d=0,j=h.aiDisplay.length;d<j;d++)if("none"==this.s.select.type||n&&e(h.aoData[h.aiDisplay[d]].nTr).hasClass(this.s.select.selectedClass)||n&&0==this.s.select.selected.length){for(b=0,c=h.aoColumns.length;b<c;b++)o[b]&&(g=h.oApi._fnGetCellData(h,h.aiDisplay[d],b,"display"),a.fnCellRender?g=a.fnCellRender(g,b)+"":"string"==typeof g?(g=g.replace(/\n/g,
58
+ " "),g=g.replace(/<img.*?\s+alt\s*=\s*(?:"([^"]+)"|'([^']+)'|([^\s>]+)).*?>/gi,"$1$2$3"),g=g.replace(/<.*?>/g,"")):g+="",g=g.replace(/^\s+/,"").replace(/\s+$/,""),g=this._fnHtmlDecode(g),f+=this._fnBoundData(g,a.sFieldBoundary,m)+a.sFieldSeperator);f=f.slice(0,-1*a.sFieldSeperator.length);f+=k}f.slice(0,-1);if(a.bFooter){for(b=0,c=h.aoColumns.length;b<c;b++)o[b]&&null!==h.aoColumns[b].nTf&&(g=h.aoColumns[b].nTf.innerHTML.replace(/\n/g," ").replace(/<.*?>/g,""),g=this._fnHtmlDecode(g),f+=this._fnBoundData(g,
59
+ a.sFieldBoundary,m)+a.sFieldSeperator);f=f.slice(0,-1*a.sFieldSeperator.length)}return _sLastData=f},_fnBoundData:function(a,b,c){return""===b?a:b+a.replace(c,b+b)+b},_fnChunkData:function(a,b){for(var c=[],d=a.length,e=0;e<d;e+=b)e+b<d?c.push(a.substring(e,e+b)):c.push(a.substring(e,d));return c},_fnHtmlDecode:function(a){if(-1==a.indexOf("&"))return a;var a=this._fnChunkData(a,2048),b=h.createElement("div"),c,d,e,f="";for(c=0,d=a.length;c<d;c++)e=a[c].lastIndexOf("&"),-1!=e&&8<=a[c].length&&e>a[c].length-
60
+ 8&&(a[c].substr(e),a[c]=a[c].substr(0,e)),b.innerHTML=a[c],f+=b.childNodes[0].nodeValue;return f},_fnPrintConfig:function(a,b){var c=this;null!==b.fnInit&&b.fnInit.call(this,a,b);if(""!==b.sToolTip)a.title=b.sToolTip;e(a).hover(function(){e(a).addClass(b.sButtonClassHover)},function(){e(a).removeClass(b.sButtonClassHover)});null!==b.fnSelect&&TableTools._fnEventListen(this,"select",function(d){b.fnSelect.call(c,a,b,d)});e(a).click(function(d){d.preventDefault();c._fnPrintStart.call(c,d,b);null!==
61
+ b.fnClick&&b.fnClick.call(c,a,b,null);null!==b.fnComplete&&b.fnComplete.call(c,a,b,null,null);c._fnCollectionHide(a,b)})},_fnPrintStart:function(a,b){var c=this,d=this.s.dt;this._fnPrintHideNodes(d.nTable);this.s.print.saveStart=d._iDisplayStart;this.s.print.saveLength=d._iDisplayLength;if(b.bShowAll)d._iDisplayStart=0,d._iDisplayLength=-1,d.oApi._fnCalculateEnd(d),d.oApi._fnDraw(d);(""!==d.oScroll.sX||""!==d.oScroll.sY)&&this._fnPrintScrollStart(d);var d=d.aanFeatures,j;for(j in d)if("i"!=j&&"t"!=
62
+ j&&1==j.length)for(var f=0,g=d[j].length;f<g;f++)this.dom.print.hidden.push({node:d[j][f],display:"block"}),d[j][f].style.display="none";e(h.body).addClass("DTTT_Print");if(""!==b.sInfo){var l=h.createElement("div");l.className="DTTT_print_info";l.innerHTML=b.sInfo;h.body.appendChild(l);setTimeout(function(){e(l).fadeOut("normal",function(){h.body.removeChild(l)})},2E3)}if(""!==b.sMessage)this.dom.print.message=h.createElement("div"),this.dom.print.message.className="DTTT_PrintMessage",this.dom.print.message.innerHTML=
63
+ b.sMessage,h.body.insertBefore(this.dom.print.message,h.body.childNodes[0]);this.s.print.saveScroll=e(n).scrollTop();n.scrollTo(0,0);this.s.print.funcEnd=function(a){c._fnPrintEnd.call(c,a)};e(h).bind("keydown",null,this.s.print.funcEnd)},_fnPrintEnd:function(a){if(27==a.keyCode){a.preventDefault();var a=this.s.dt,b=this.s.print,c=this.dom.print;this._fnPrintShowNodes();(""!==a.oScroll.sX||""!==a.oScroll.sY)&&this._fnPrintScrollEnd();n.scrollTo(0,b.saveScroll);if(null!==c.message)h.body.removeChild(c.message),
64
+ c.message=null;e(h.body).removeClass("DTTT_Print");a._iDisplayStart=b.saveStart;a._iDisplayLength=b.saveLength;a.oApi._fnCalculateEnd(a);a.oApi._fnDraw(a);e(h).unbind("keydown",this.s.print.funcEnd);this.s.print.funcEnd=null}},_fnPrintScrollStart:function(){var a=this.s.dt;a.nScrollHead.getElementsByTagName("div")[0].getElementsByTagName("table");var b=a.nTable.parentNode,c=a.nTable.getElementsByTagName("thead");0<c.length&&a.nTable.removeChild(c[0]);null!==a.nTFoot&&(c=a.nTable.getElementsByTagName("tfoot"),
65
+ 0<c.length&&a.nTable.removeChild(c[0]));c=a.nTHead.cloneNode(!0);a.nTable.insertBefore(c,a.nTable.childNodes[0]);null!==a.nTFoot&&(c=a.nTFoot.cloneNode(!0),a.nTable.insertBefore(c,a.nTable.childNodes[1]));if(""!==a.oScroll.sX)a.nTable.style.width=e(a.nTable).outerWidth()+"px",b.style.width=e(a.nTable).outerWidth()+"px",b.style.overflow="visible";if(""!==a.oScroll.sY)b.style.height=e(a.nTable).outerHeight()+"px",b.style.overflow="visible"},_fnPrintScrollEnd:function(){var a=this.s.dt,b=a.nTable.parentNode;
66
+ if(""!==a.oScroll.sX)b.style.width=a.oApi._fnStringToCss(a.oScroll.sX),b.style.overflow="auto";if(""!==a.oScroll.sY)b.style.height=a.oApi._fnStringToCss(a.oScroll.sY),b.style.overflow="auto"},_fnPrintShowNodes:function(){for(var a=this.dom.print.hidden,b=0,c=a.length;b<c;b++)a[b].node.style.display=a[b].display;a.splice(0,a.length)},_fnPrintHideNodes:function(a){for(var b=this.dom.print.hidden,c=a.parentNode,d=c.childNodes,j=0,f=d.length;j<f;j++)if(d[j]!=a&&1==d[j].nodeType){var g=e(d[j]).css("display");
67
+ if("none"!=g)b.push({node:d[j],display:g}),d[j].style.display="none"}"BODY"!=c.nodeName&&this._fnPrintHideNodes(c)}};TableTools._aInstances=[];TableTools._aListeners=[];TableTools.fnGetMasters=function(){for(var a=[],b=0,c=TableTools._aInstances.length;b<c;b++)TableTools._aInstances[b].s.master&&a.push(TableTools._aInstances[b]);return a};TableTools.fnGetInstance=function(a){"object"!=typeof a&&(a=h.getElementById(a));for(var b=0,c=TableTools._aInstances.length;b<c;b++)if(TableTools._aInstances[b].s.master&&
68
+ TableTools._aInstances[b].dom.table==a)return TableTools._aInstances[b];return null};TableTools._fnEventListen=function(a,b,c){TableTools._aListeners.push({that:a,type:b,fn:c})};TableTools._fnEventDispatch=function(a,b,c){for(var d=TableTools._aListeners,e=0,f=d.length;e<f;e++)a.dom.table==d[e].that.dom.table&&d[e].type==b&&d[e].fn(c)};TableTools.BUTTONS={csv:{sAction:"flash_save",sCharSet:"utf8",bBomInc:!1,sFileName:"*.csv",sFieldBoundary:'"',sFieldSeperator:",",sNewLine:"auto",sTitle:"",sToolTip:"",
69
+ sButtonClass:"DTTT_button_csv",sButtonClassHover:"DTTT_button_csv_hover",sButtonText:"CSV",mColumns:"all",bHeader:!0,bFooter:!0,bSelectedOnly:!1,fnMouseover:null,fnMouseout:null,fnClick:function(a,b,c){this.fnSetText(c,this.fnGetTableData(b))},fnSelect:null,fnComplete:null,fnInit:null,fnCellRender:null},xls:{sAction:"flash_save",sCharSet:"utf16le",bBomInc:!0,sFileName:"*.xls",sFieldBoundary:"",sFieldSeperator:"\t",sNewLine:"auto",sTitle:"",sToolTip:"",sButtonClass:"DTTT_button_xls",sButtonClassHover:"DTTT_button_xls_hover",
70
+ sButtonText:"Excel",mColumns:"all",bHeader:!0,bFooter:!0,bSelectedOnly:!1,fnMouseover:null,fnMouseout:null,fnClick:function(a,b,c){this.fnSetText(c,this.fnGetTableData(b))},fnSelect:null,fnComplete:null,fnInit:null,fnCellRender:null},copy:{sAction:"flash_copy",sFieldBoundary:"",sFieldSeperator:"\t",sNewLine:"auto",sToolTip:"",sButtonClass:"DTTT_button_copy",sButtonClassHover:"DTTT_button_copy_hover",sButtonText:"Copy",mColumns:"all",bHeader:!0,bFooter:!0,bSelectedOnly:!1,fnMouseover:null,fnMouseout:null,
71
+ fnClick:function(a,b,c){this.fnSetText(c,this.fnGetTableData(b))},fnSelect:null,fnComplete:function(a,b,c,d){a=d.split("\n").length;a=null===this.s.dt.nTFoot?a-1:a-2;alert("Copied "+a+" row"+(1==a?"":"s")+" to the clipboard")},fnInit:null,fnCellRender:null},pdf:{sAction:"flash_pdf",sFieldBoundary:"",sFieldSeperator:"\t",sNewLine:"\n",sFileName:"*.pdf",sToolTip:"",sTitle:"",sButtonClass:"DTTT_button_pdf",sButtonClassHover:"DTTT_button_pdf_hover",sButtonText:"PDF",mColumns:"all",bHeader:!0,bFooter:!1,
72
+ bSelectedOnly:!1,fnMouseover:null,fnMouseout:null,sPdfOrientation:"portrait",sPdfSize:"A4",sPdfMessage:"",fnClick:function(a,b,c){this.fnSetText(c,"title:"+this.fnGetTitle(b)+"\nmessage:"+b.sPdfMessage+"\ncolWidth:"+this.fnCalcColRatios(b)+"\norientation:"+b.sPdfOrientation+"\nsize:"+b.sPdfSize+"\n--/TableToolsOpts--\n"+this.fnGetTableData(b))},fnSelect:null,fnComplete:null,fnInit:null,fnCellRender:null},print:{sAction:"print",sInfo:"<h6>Print view</h6><p>Please use your browser's print function to print this table. Press escape when finished.",
73
+ sMessage:"",bShowAll:!0,sToolTip:"View print view",sButtonClass:"DTTT_button_print",sButtonClassHover:"DTTT_button_print_hover",sButtonText:"Print",fnMouseover:null,fnMouseout:null,fnClick:null,fnSelect:null,fnComplete:null,fnInit:null,fnCellRender:null},text:{sAction:"text",sToolTip:"",sButtonClass:"DTTT_button_text",sButtonClassHover:"DTTT_button_text_hover",sButtonText:"Text button",mColumns:"all",bHeader:!0,bFooter:!0,bSelectedOnly:!1,fnMouseover:null,fnMouseout:null,fnClick:null,fnSelect:null,
74
+ fnComplete:null,fnInit:null,fnCellRender:null},select:{sAction:"text",sToolTip:"",sButtonClass:"DTTT_button_text",sButtonClassHover:"DTTT_button_text_hover",sButtonText:"Select button",mColumns:"all",bHeader:!0,bFooter:!0,fnMouseover:null,fnMouseout:null,fnClick:null,fnSelect:function(a){0!==this.fnGetSelected().length?e(a).removeClass("DTTT_disabled"):e(a).addClass("DTTT_disabled")},fnComplete:null,fnInit:function(a){e(a).addClass("DTTT_disabled")},fnCellRender:null},select_single:{sAction:"text",
75
+ sToolTip:"",sButtonClass:"DTTT_button_text",sButtonClassHover:"DTTT_button_text_hover",sButtonText:"Select button",mColumns:"all",bHeader:!0,bFooter:!0,fnMouseover:null,fnMouseout:null,fnClick:null,fnSelect:function(a){1==this.fnGetSelected().length?e(a).removeClass("DTTT_disabled"):e(a).addClass("DTTT_disabled")},fnComplete:null,fnInit:function(a){e(a).addClass("DTTT_disabled")},fnCellRender:null},select_all:{sAction:"text",sToolTip:"",sButtonClass:"DTTT_button_text",sButtonClassHover:"DTTT_button_text_hover",
76
+ sButtonText:"Select all",mColumns:"all",bHeader:!0,bFooter:!0,fnMouseover:null,fnMouseout:null,fnClick:function(){this.fnSelectAll()},fnSelect:function(a){this.fnGetSelected().length==this.s.dt.fnRecordsDisplay()?e(a).addClass("DTTT_disabled"):e(a).removeClass("DTTT_disabled")},fnComplete:null,fnInit:null,fnCellRender:null},select_none:{sAction:"text",sToolTip:"",sButtonClass:"DTTT_button_text",sButtonClassHover:"DTTT_button_text_hover",sButtonText:"Deselect all",mColumns:"all",bHeader:!0,bFooter:!0,
77
+ fnMouseover:null,fnMouseout:null,fnClick:function(){this.fnSelectNone()},fnSelect:function(a){0!==this.fnGetSelected().length?e(a).removeClass("DTTT_disabled"):e(a).addClass("DTTT_disabled")},fnComplete:null,fnInit:function(a){e(a).addClass("DTTT_disabled")},fnCellRender:null},ajax:{sAction:"text",sFieldBoundary:"",sFieldSeperator:"\t",sNewLine:"\n",sAjaxUrl:"/xhr.php",sToolTip:"",sButtonClass:"DTTT_button_text",sButtonClassHover:"DTTT_button_text_hover",sButtonText:"Ajax button",mColumns:"all",bHeader:!0,
78
+ bFooter:!0,bSelectedOnly:!1,fnMouseover:null,fnMouseout:null,fnClick:function(a,b){var c=this.fnGetTableData(b);e.ajax({url:b.sAjaxUrl,data:[{name:"tableData",value:c}],success:b.fnAjaxComplete,dataType:"json",type:"POST",cache:!1,error:function(){alert("Error detected when sending table data to server")}})},fnSelect:null,fnComplete:null,fnInit:null,fnAjaxComplete:function(){alert("Ajax complete")},fnCellRender:null},div:{sAction:"div",sToolTip:"",sButtonClass:"DTTT_nonbutton",sButtonClassHover:"",
79
+ sButtonText:"Text button",fnMouseover:null,fnMouseout:null,fnClick:null,fnSelect:null,fnComplete:null,fnInit:null,nContent:null,fnCellRender:null},collection:{sAction:"collection",sToolTip:"",sButtonClass:"DTTT_button_collection",sButtonClassHover:"DTTT_button_collection_hover",sButtonText:"Collection",fnMouseover:null,fnMouseout:null,fnClick:function(a,b){this._fnCollectionShow(a,b)},fnSelect:null,fnComplete:null,fnInit:null,fnCellRender:null}};TableTools.DEFAULTS={sSwfPath:"media/swf/copy_cvs_xls_pdf.swf",
80
+ sRowSelect:"none",sSelectedClass:"DTTT_selected",fnPreRowSelect:null,fnRowSelected:null,fnRowDeselected:null,aButtons:["copy","csv","xls","pdf","print"]};TableTools.prototype.CLASS="TableTools";TableTools.VERSION="2.0.2";TableTools.prototype.VERSION=TableTools.VERSION;"function"==typeof e.fn.dataTable&&"function"==typeof e.fn.dataTableExt.fnVersionCheck&&e.fn.dataTableExt.fnVersionCheck("1.8.2")?e.fn.dataTableExt.aoFeatures.push({fnInit:function(a){a=new TableTools(a.oInstance,"undefined"!=typeof a.oInit.oTableTools?
81
+ a.oInit.oTableTools:{});TableTools._aInstances.push(a);return a.dom.container},cFeature:"T",sFeature:"TableTools"}):alert("Warning: TableTools 2 requires DataTables 1.8.2 or newer - www.datatables.net/download")})(jQuery,window,document);
assets/js/jquery-datatables/jquery.dataTables.min.js ADDED
@@ -0,0 +1,155 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * File: jquery.dataTables.min.js
3
+ * Version: 1.9.4
4
+ * Author: Allan Jardine (www.sprymedia.co.uk)
5
+ * Info: www.datatables.net
6
+ *
7
+ * Copyright 2008-2012 Allan Jardine, all rights reserved.
8
+ *
9
+ * This source file is free software, under either the GPL v2 license or a
10
+ * BSD style license, available at:
11
+ * http://datatables.net/license_gpl2
12
+ * http://datatables.net/license_bsd
13
+ *
14
+ * This source file is distributed in the hope that it will be useful, but
15
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.
17
+ */
18
+ (function(X,l,n){var L=function(h){var j=function(e){function o(a,b){var c=j.defaults.columns,d=a.aoColumns.length,c=h.extend({},j.models.oColumn,c,{sSortingClass:a.oClasses.sSortable,sSortingClassJUI:a.oClasses.sSortJUI,nTh:b?b:l.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.oDefaults:d});a.aoColumns.push(c);if(a.aoPreSearchCols[d]===n||null===a.aoPreSearchCols[d])a.aoPreSearchCols[d]=h.extend({},j.models.oSearch);else if(c=a.aoPreSearchCols[d],
19
+ c.bRegex===n&&(c.bRegex=!0),c.bSmart===n&&(c.bSmart=!0),c.bCaseInsensitive===n)c.bCaseInsensitive=!0;m(a,d,null)}function m(a,b,c){var d=a.aoColumns[b];c!==n&&null!==c&&(c.mDataProp&&!c.mData&&(c.mData=c.mDataProp),c.sType!==n&&(d.sType=c.sType,d._bAutoType=!1),h.extend(d,c),p(d,c,"sWidth","sWidthOrig"),c.iDataSort!==n&&(d.aDataSort=[c.iDataSort]),p(d,c,"aDataSort"));var i=d.mRender?Q(d.mRender):null,f=Q(d.mData);d.fnGetData=function(a,b){var c=f(a,b);return d.mRender&&b&&""!==b?i(c,b,a):c};d.fnSetData=
20
+ L(d.mData);a.oFeatures.bSort||(d.bSortable=!1);!d.bSortable||-1==h.inArray("asc",d.asSorting)&&-1==h.inArray("desc",d.asSorting)?(d.sSortingClass=a.oClasses.sSortableNone,d.sSortingClassJUI=""):-1==h.inArray("asc",d.asSorting)&&-1==h.inArray("desc",d.asSorting)?(d.sSortingClass=a.oClasses.sSortable,d.sSortingClassJUI=a.oClasses.sSortJUI):-1!=h.inArray("asc",d.asSorting)&&-1==h.inArray("desc",d.asSorting)?(d.sSortingClass=a.oClasses.sSortableAsc,d.sSortingClassJUI=a.oClasses.sSortJUIAscAllowed):-1==
21
+ h.inArray("asc",d.asSorting)&&-1!=h.inArray("desc",d.asSorting)&&(d.sSortingClass=a.oClasses.sSortableDesc,d.sSortingClassJUI=a.oClasses.sSortJUIDescAllowed)}function k(a){if(!1===a.oFeatures.bAutoWidth)return!1;da(a);for(var b=0,c=a.aoColumns.length;b<c;b++)a.aoColumns[b].nTh.style.width=a.aoColumns[b].sWidth}function G(a,b){var c=r(a,"bVisible");return"number"===typeof c[b]?c[b]:null}function R(a,b){var c=r(a,"bVisible"),c=h.inArray(b,c);return-1!==c?c:null}function t(a){return r(a,"bVisible").length}
22
+ function r(a,b){var c=[];h.map(a.aoColumns,function(a,i){a[b]&&c.push(i)});return c}function B(a){for(var b=j.ext.aTypes,c=b.length,d=0;d<c;d++){var i=b[d](a);if(null!==i)return i}return"string"}function u(a,b){for(var c=b.split(","),d=[],i=0,f=a.aoColumns.length;i<f;i++)for(var g=0;g<f;g++)if(a.aoColumns[i].sName==c[g]){d.push(g);break}return d}function M(a){for(var b="",c=0,d=a.aoColumns.length;c<d;c++)b+=a.aoColumns[c].sName+",";return b.length==d?"":b.slice(0,-1)}function ta(a,b,c,d){var i,f,
23
+ g,e,w;if(b)for(i=b.length-1;0<=i;i--){var j=b[i].aTargets;h.isArray(j)||D(a,1,"aTargets must be an array of targets, not a "+typeof j);f=0;for(g=j.length;f<g;f++)if("number"===typeof j[f]&&0<=j[f]){for(;a.aoColumns.length<=j[f];)o(a);d(j[f],b[i])}else if("number"===typeof j[f]&&0>j[f])d(a.aoColumns.length+j[f],b[i]);else if("string"===typeof j[f]){e=0;for(w=a.aoColumns.length;e<w;e++)("_all"==j[f]||h(a.aoColumns[e].nTh).hasClass(j[f]))&&d(e,b[i])}}if(c){i=0;for(a=c.length;i<a;i++)d(i,c[i])}}function H(a,
24
+ b){var c;c=h.isArray(b)?b.slice():h.extend(!0,{},b);var d=a.aoData.length,i=h.extend(!0,{},j.models.oRow);i._aData=c;a.aoData.push(i);for(var f,i=0,g=a.aoColumns.length;i<g;i++)c=a.aoColumns[i],"function"===typeof c.fnRender&&c.bUseRendered&&null!==c.mData?F(a,d,i,S(a,d,i)):F(a,d,i,v(a,d,i)),c._bAutoType&&"string"!=c.sType&&(f=v(a,d,i,"type"),null!==f&&""!==f&&(f=B(f),null===c.sType?c.sType=f:c.sType!=f&&"html"!=c.sType&&(c.sType="string")));a.aiDisplayMaster.push(d);a.oFeatures.bDeferRender||ea(a,
25
+ d);return d}function ua(a){var b,c,d,i,f,g,e;if(a.bDeferLoading||null===a.sAjaxSource)for(b=a.nTBody.firstChild;b;){if("TR"==b.nodeName.toUpperCase()){c=a.aoData.length;b._DT_RowIndex=c;a.aoData.push(h.extend(!0,{},j.models.oRow,{nTr:b}));a.aiDisplayMaster.push(c);f=b.firstChild;for(d=0;f;){g=f.nodeName.toUpperCase();if("TD"==g||"TH"==g)F(a,c,d,h.trim(f.innerHTML)),d++;f=f.nextSibling}}b=b.nextSibling}i=T(a);d=[];b=0;for(c=i.length;b<c;b++)for(f=i[b].firstChild;f;)g=f.nodeName.toUpperCase(),("TD"==
26
+ g||"TH"==g)&&d.push(f),f=f.nextSibling;c=0;for(i=a.aoColumns.length;c<i;c++){e=a.aoColumns[c];null===e.sTitle&&(e.sTitle=e.nTh.innerHTML);var w=e._bAutoType,o="function"===typeof e.fnRender,k=null!==e.sClass,n=e.bVisible,m,p;if(w||o||k||!n){g=0;for(b=a.aoData.length;g<b;g++)f=a.aoData[g],m=d[g*i+c],w&&"string"!=e.sType&&(p=v(a,g,c,"type"),""!==p&&(p=B(p),null===e.sType?e.sType=p:e.sType!=p&&"html"!=e.sType&&(e.sType="string"))),e.mRender?m.innerHTML=v(a,g,c,"display"):e.mData!==c&&(m.innerHTML=v(a,
27
+ g,c,"display")),o&&(p=S(a,g,c),m.innerHTML=p,e.bUseRendered&&F(a,g,c,p)),k&&(m.className+=" "+e.sClass),n?f._anHidden[c]=null:(f._anHidden[c]=m,m.parentNode.removeChild(m)),e.fnCreatedCell&&e.fnCreatedCell.call(a.oInstance,m,v(a,g,c,"display"),f._aData,g,c)}}if(0!==a.aoRowCreatedCallback.length){b=0;for(c=a.aoData.length;b<c;b++)f=a.aoData[b],A(a,"aoRowCreatedCallback",null,[f.nTr,f._aData,b])}}function I(a,b){return b._DT_RowIndex!==n?b._DT_RowIndex:null}function fa(a,b,c){for(var b=J(a,b),d=0,a=
28
+ a.aoColumns.length;d<a;d++)if(b[d]===c)return d;return-1}function Y(a,b,c,d){for(var i=[],f=0,g=d.length;f<g;f++)i.push(v(a,b,d[f],c));return i}function v(a,b,c,d){var i=a.aoColumns[c];if((c=i.fnGetData(a.aoData[b]._aData,d))===n)return a.iDrawError!=a.iDraw&&null===i.sDefaultContent&&(D(a,0,"Requested unknown parameter "+("function"==typeof i.mData?"{mData function}":"'"+i.mData+"'")+" from the data source for row "+b),a.iDrawError=a.iDraw),i.sDefaultContent;if(null===c&&null!==i.sDefaultContent)c=
29
+ i.sDefaultContent;else if("function"===typeof c)return c();return"display"==d&&null===c?"":c}function F(a,b,c,d){a.aoColumns[c].fnSetData(a.aoData[b]._aData,d)}function Q(a){if(null===a)return function(){return null};if("function"===typeof a)return function(b,d,i){return a(b,d,i)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("["))){var b=function(a,d,i){var f=i.split("."),g;if(""!==i){var e=0;for(g=f.length;e<g;e++){if(i=f[e].match(U)){f[e]=f[e].replace(U,"");""!==f[e]&&(a=a[f[e]]);
30
+ g=[];f.splice(0,e+1);for(var f=f.join("."),e=0,h=a.length;e<h;e++)g.push(b(a[e],d,f));a=i[0].substring(1,i[0].length-1);a=""===a?g:g.join(a);break}if(null===a||a[f[e]]===n)return n;a=a[f[e]]}}return a};return function(c,d){return b(c,d,a)}}return function(b){return b[a]}}function L(a){if(null===a)return function(){};if("function"===typeof a)return function(b,d){a(b,"set",d)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("["))){var b=function(a,d,i){var i=i.split("."),f,g,e=0;for(g=
31
+ i.length-1;e<g;e++){if(f=i[e].match(U)){i[e]=i[e].replace(U,"");a[i[e]]=[];f=i.slice();f.splice(0,e+1);g=f.join(".");for(var h=0,j=d.length;h<j;h++)f={},b(f,d[h],g),a[i[e]].push(f);return}if(null===a[i[e]]||a[i[e]]===n)a[i[e]]={};a=a[i[e]]}a[i[i.length-1].replace(U,"")]=d};return function(c,d){return b(c,d,a)}}return function(b,d){b[a]=d}}function Z(a){for(var b=[],c=a.aoData.length,d=0;d<c;d++)b.push(a.aoData[d]._aData);return b}function ga(a){a.aoData.splice(0,a.aoData.length);a.aiDisplayMaster.splice(0,
32
+ a.aiDisplayMaster.length);a.aiDisplay.splice(0,a.aiDisplay.length);y(a)}function ha(a,b){for(var c=-1,d=0,i=a.length;d<i;d++)a[d]==b?c=d:a[d]>b&&a[d]--; -1!=c&&a.splice(c,1)}function S(a,b,c){var d=a.aoColumns[c];return d.fnRender({iDataRow:b,iDataColumn:c,oSettings:a,aData:a.aoData[b]._aData,mDataProp:d.mData},v(a,b,c,"display"))}function ea(a,b){var c=a.aoData[b],d;if(null===c.nTr){c.nTr=l.createElement("tr");c.nTr._DT_RowIndex=b;c._aData.DT_RowId&&(c.nTr.id=c._aData.DT_RowId);c._aData.DT_RowClass&&
33
+ (c.nTr.className=c._aData.DT_RowClass);for(var i=0,f=a.aoColumns.length;i<f;i++){var g=a.aoColumns[i];d=l.createElement(g.sCellType);d.innerHTML="function"===typeof g.fnRender&&(!g.bUseRendered||null===g.mData)?S(a,b,i):v(a,b,i,"display");null!==g.sClass&&(d.className=g.sClass);g.bVisible?(c.nTr.appendChild(d),c._anHidden[i]=null):c._anHidden[i]=d;g.fnCreatedCell&&g.fnCreatedCell.call(a.oInstance,d,v(a,b,i,"display"),c._aData,b,i)}A(a,"aoRowCreatedCallback",null,[c.nTr,c._aData,b])}}function va(a){var b,
34
+ c,d;if(0!==h("th, td",a.nTHead).length){b=0;for(d=a.aoColumns.length;b<d;b++)if(c=a.aoColumns[b].nTh,c.setAttribute("role","columnheader"),a.aoColumns[b].bSortable&&(c.setAttribute("tabindex",a.iTabIndex),c.setAttribute("aria-controls",a.sTableId)),null!==a.aoColumns[b].sClass&&h(c).addClass(a.aoColumns[b].sClass),a.aoColumns[b].sTitle!=c.innerHTML)c.innerHTML=a.aoColumns[b].sTitle}else{var i=l.createElement("tr");b=0;for(d=a.aoColumns.length;b<d;b++)c=a.aoColumns[b].nTh,c.innerHTML=a.aoColumns[b].sTitle,
35
+ c.setAttribute("tabindex","0"),null!==a.aoColumns[b].sClass&&h(c).addClass(a.aoColumns[b].sClass),i.appendChild(c);h(a.nTHead).html("")[0].appendChild(i);V(a.aoHeader,a.nTHead)}h(a.nTHead).children("tr").attr("role","row");if(a.bJUI){b=0;for(d=a.aoColumns.length;b<d;b++){c=a.aoColumns[b].nTh;i=l.createElement("div");i.className=a.oClasses.sSortJUIWrapper;h(c).contents().appendTo(i);var f=l.createElement("span");f.className=a.oClasses.sSortIcon;i.appendChild(f);c.appendChild(i)}}if(a.oFeatures.bSort)for(b=
36
+ 0;b<a.aoColumns.length;b++)!1!==a.aoColumns[b].bSortable?ia(a,a.aoColumns[b].nTh,b):h(a.aoColumns[b].nTh).addClass(a.oClasses.sSortableNone);""!==a.oClasses.sFooterTH&&h(a.nTFoot).children("tr").children("th").addClass(a.oClasses.sFooterTH);if(null!==a.nTFoot){c=N(a,null,a.aoFooter);b=0;for(d=a.aoColumns.length;b<d;b++)c[b]&&(a.aoColumns[b].nTf=c[b],a.aoColumns[b].sClass&&h(c[b]).addClass(a.aoColumns[b].sClass))}}function W(a,b,c){var d,i,f,g=[],e=[],h=a.aoColumns.length,j;c===n&&(c=!1);d=0;for(i=
37
+ b.length;d<i;d++){g[d]=b[d].slice();g[d].nTr=b[d].nTr;for(f=h-1;0<=f;f--)!a.aoColumns[f].bVisible&&!c&&g[d].splice(f,1);e.push([])}d=0;for(i=g.length;d<i;d++){if(a=g[d].nTr)for(;f=a.firstChild;)a.removeChild(f);f=0;for(b=g[d].length;f<b;f++)if(j=h=1,e[d][f]===n){a.appendChild(g[d][f].cell);for(e[d][f]=1;g[d+h]!==n&&g[d][f].cell==g[d+h][f].cell;)e[d+h][f]=1,h++;for(;g[d][f+j]!==n&&g[d][f].cell==g[d][f+j].cell;){for(c=0;c<h;c++)e[d+c][f+j]=1;j++}g[d][f].cell.rowSpan=h;g[d][f].cell.colSpan=j}}}function x(a){var b=
38
+ A(a,"aoPreDrawCallback","preDraw",[a]);if(-1!==h.inArray(!1,b))E(a,!1);else{var c,d,b=[],i=0,f=a.asStripeClasses.length;c=a.aoOpenRows.length;a.bDrawing=!0;a.iInitDisplayStart!==n&&-1!=a.iInitDisplayStart&&(a._iDisplayStart=a.oFeatures.bServerSide?a.iInitDisplayStart:a.iInitDisplayStart>=a.fnRecordsDisplay()?0:a.iInitDisplayStart,a.iInitDisplayStart=-1,y(a));if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++;else if(a.oFeatures.bServerSide){if(!a.bDestroying&&!wa(a))return}else a.iDraw++;if(0!==a.aiDisplay.length){var g=
39
+ a._iDisplayStart;d=a._iDisplayEnd;a.oFeatures.bServerSide&&(g=0,d=a.aoData.length);for(;g<d;g++){var e=a.aoData[a.aiDisplay[g]];null===e.nTr&&ea(a,a.aiDisplay[g]);var j=e.nTr;if(0!==f){var o=a.asStripeClasses[i%f];e._sRowStripe!=o&&(h(j).removeClass(e._sRowStripe).addClass(o),e._sRowStripe=o)}A(a,"aoRowCallback",null,[j,a.aoData[a.aiDisplay[g]]._aData,i,g]);b.push(j);i++;if(0!==c)for(e=0;e<c;e++)if(j==a.aoOpenRows[e].nParent){b.push(a.aoOpenRows[e].nTr);break}}}else b[0]=l.createElement("tr"),a.asStripeClasses[0]&&
40
+ (b[0].className=a.asStripeClasses[0]),c=a.oLanguage,f=c.sZeroRecords,1==a.iDraw&&null!==a.sAjaxSource&&!a.oFeatures.bServerSide?f=c.sLoadingRecords:c.sEmptyTable&&0===a.fnRecordsTotal()&&(f=c.sEmptyTable),c=l.createElement("td"),c.setAttribute("valign","top"),c.colSpan=t(a),c.className=a.oClasses.sRowEmpty,c.innerHTML=ja(a,f),b[i].appendChild(c);A(a,"aoHeaderCallback","header",[h(a.nTHead).children("tr")[0],Z(a),a._iDisplayStart,a.fnDisplayEnd(),a.aiDisplay]);A(a,"aoFooterCallback","footer",[h(a.nTFoot).children("tr")[0],
41
+ Z(a),a._iDisplayStart,a.fnDisplayEnd(),a.aiDisplay]);i=l.createDocumentFragment();c=l.createDocumentFragment();if(a.nTBody){f=a.nTBody.parentNode;c.appendChild(a.nTBody);if(!a.oScroll.bInfinite||!a._bInitComplete||a.bSorted||a.bFiltered)for(;c=a.nTBody.firstChild;)a.nTBody.removeChild(c);c=0;for(d=b.length;c<d;c++)i.appendChild(b[c]);a.nTBody.appendChild(i);null!==f&&f.appendChild(a.nTBody)}A(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1;a.oFeatures.bServerSide&&(E(a,!1),
42
+ a._bInitComplete||$(a))}}function aa(a){a.oFeatures.bSort?O(a,a.oPreviousSearch):a.oFeatures.bFilter?K(a,a.oPreviousSearch):(y(a),x(a))}function xa(a){var b=h("<div></div>")[0];a.nTable.parentNode.insertBefore(b,a.nTable);a.nTableWrapper=h('<div id="'+a.sTableId+'_wrapper" class="'+a.oClasses.sWrapper+'" role="grid"></div>')[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var c=a.nTableWrapper,d=a.sDom.split(""),i,f,g,e,w,o,k,m=0;m<d.length;m++){f=0;g=d[m];if("<"==g){e=h("<div></div>")[0];w=d[m+
43
+ 1];if("'"==w||'"'==w){o="";for(k=2;d[m+k]!=w;)o+=d[m+k],k++;"H"==o?o=a.oClasses.sJUIHeader:"F"==o&&(o=a.oClasses.sJUIFooter);-1!=o.indexOf(".")?(w=o.split("."),e.id=w[0].substr(1,w[0].length-1),e.className=w[1]):"#"==o.charAt(0)?e.id=o.substr(1,o.length-1):e.className=o;m+=k}c.appendChild(e);c=e}else if(">"==g)c=c.parentNode;else if("l"==g&&a.oFeatures.bPaginate&&a.oFeatures.bLengthChange)i=ya(a),f=1;else if("f"==g&&a.oFeatures.bFilter)i=za(a),f=1;else if("r"==g&&a.oFeatures.bProcessing)i=Aa(a),f=
44
+ 1;else if("t"==g)i=Ba(a),f=1;else if("i"==g&&a.oFeatures.bInfo)i=Ca(a),f=1;else if("p"==g&&a.oFeatures.bPaginate)i=Da(a),f=1;else if(0!==j.ext.aoFeatures.length){e=j.ext.aoFeatures;k=0;for(w=e.length;k<w;k++)if(g==e[k].cFeature){(i=e[k].fnInit(a))&&(f=1);break}}1==f&&null!==i&&("object"!==typeof a.aanFeatures[g]&&(a.aanFeatures[g]=[]),a.aanFeatures[g].push(i),c.appendChild(i))}b.parentNode.replaceChild(a.nTableWrapper,b)}function V(a,b){var c=h(b).children("tr"),d,i,f,g,e,j,o,k,m,p;a.splice(0,a.length);
45
+ f=0;for(j=c.length;f<j;f++)a.push([]);f=0;for(j=c.length;f<j;f++){d=c[f];for(i=d.firstChild;i;){if("TD"==i.nodeName.toUpperCase()||"TH"==i.nodeName.toUpperCase()){k=1*i.getAttribute("colspan");m=1*i.getAttribute("rowspan");k=!k||0===k||1===k?1:k;m=!m||0===m||1===m?1:m;g=0;for(e=a[f];e[g];)g++;o=g;p=1===k?!0:!1;for(e=0;e<k;e++)for(g=0;g<m;g++)a[f+g][o+e]={cell:i,unique:p},a[f+g].nTr=d}i=i.nextSibling}}}function N(a,b,c){var d=[];c||(c=a.aoHeader,b&&(c=[],V(c,b)));for(var b=0,i=c.length;b<i;b++)for(var f=
46
+ 0,g=c[b].length;f<g;f++)if(c[b][f].unique&&(!d[f]||!a.bSortCellsTop))d[f]=c[b][f].cell;return d}function wa(a){if(a.bAjaxDataGet){a.iDraw++;E(a,!0);var b=Ea(a);ka(a,b);a.fnServerData.call(a.oInstance,a.sAjaxSource,b,function(b){Fa(a,b)},a);return!1}return!0}function Ea(a){var b=a.aoColumns.length,c=[],d,i,f,g;c.push({name:"sEcho",value:a.iDraw});c.push({name:"iColumns",value:b});c.push({name:"sColumns",value:M(a)});c.push({name:"iDisplayStart",value:a._iDisplayStart});c.push({name:"iDisplayLength",
47
+ value:!1!==a.oFeatures.bPaginate?a._iDisplayLength:-1});for(f=0;f<b;f++)d=a.aoColumns[f].mData,c.push({name:"mDataProp_"+f,value:"function"===typeof d?"function":d});if(!1!==a.oFeatures.bFilter){c.push({name:"sSearch",value:a.oPreviousSearch.sSearch});c.push({name:"bRegex",value:a.oPreviousSearch.bRegex});for(f=0;f<b;f++)c.push({name:"sSearch_"+f,value:a.aoPreSearchCols[f].sSearch}),c.push({name:"bRegex_"+f,value:a.aoPreSearchCols[f].bRegex}),c.push({name:"bSearchable_"+f,value:a.aoColumns[f].bSearchable})}if(!1!==
48
+ a.oFeatures.bSort){var e=0;d=null!==a.aaSortingFixed?a.aaSortingFixed.concat(a.aaSorting):a.aaSorting.slice();for(f=0;f<d.length;f++){i=a.aoColumns[d[f][0]].aDataSort;for(g=0;g<i.length;g++)c.push({name:"iSortCol_"+e,value:i[g]}),c.push({name:"sSortDir_"+e,value:d[f][1]}),e++}c.push({name:"iSortingCols",value:e});for(f=0;f<b;f++)c.push({name:"bSortable_"+f,value:a.aoColumns[f].bSortable})}return c}function ka(a,b){A(a,"aoServerParams","serverParams",[b])}function Fa(a,b){if(b.sEcho!==n){if(1*b.sEcho<
49
+ a.iDraw)return;a.iDraw=1*b.sEcho}(!a.oScroll.bInfinite||a.oScroll.bInfinite&&(a.bSorted||a.bFiltered))&&ga(a);a._iRecordsTotal=parseInt(b.iTotalRecords,10);a._iRecordsDisplay=parseInt(b.iTotalDisplayRecords,10);var c=M(a),c=b.sColumns!==n&&""!==c&&b.sColumns!=c,d;c&&(d=u(a,b.sColumns));for(var i=Q(a.sAjaxDataProp)(b),f=0,g=i.length;f<g;f++)if(c){for(var e=[],h=0,j=a.aoColumns.length;h<j;h++)e.push(i[f][d[h]]);H(a,e)}else H(a,i[f]);a.aiDisplay=a.aiDisplayMaster.slice();a.bAjaxDataGet=!1;x(a);a.bAjaxDataGet=
50
+ !0;E(a,!1)}function za(a){var b=a.oPreviousSearch,c=a.oLanguage.sSearch,c=-1!==c.indexOf("_INPUT_")?c.replace("_INPUT_",'<input type="text" />'):""===c?'<input type="text" />':c+' <input type="text" />',d=l.createElement("div");d.className=a.oClasses.sFilter;d.innerHTML="<label>"+c+"</label>";a.aanFeatures.f||(d.id=a.sTableId+"_filter");c=h('input[type="text"]',d);d._DT_Input=c[0];c.val(b.sSearch.replace('"',"&quot;"));c.bind("keyup.DT",function(){for(var c=a.aanFeatures.f,d=this.value===""?"":this.value,
51
+ g=0,e=c.length;g<e;g++)c[g]!=h(this).parents("div.dataTables_filter")[0]&&h(c[g]._DT_Input).val(d);d!=b.sSearch&&K(a,{sSearch:d,bRegex:b.bRegex,bSmart:b.bSmart,bCaseInsensitive:b.bCaseInsensitive})});c.attr("aria-controls",a.sTableId).bind("keypress.DT",function(a){if(a.keyCode==13)return false});return d}function K(a,b,c){var d=a.oPreviousSearch,i=a.aoPreSearchCols,f=function(a){d.sSearch=a.sSearch;d.bRegex=a.bRegex;d.bSmart=a.bSmart;d.bCaseInsensitive=a.bCaseInsensitive};if(a.oFeatures.bServerSide)f(b);
52
+ else{Ga(a,b.sSearch,c,b.bRegex,b.bSmart,b.bCaseInsensitive);f(b);for(b=0;b<a.aoPreSearchCols.length;b++)Ha(a,i[b].sSearch,b,i[b].bRegex,i[b].bSmart,i[b].bCaseInsensitive);Ia(a)}a.bFiltered=!0;h(a.oInstance).trigger("filter",a);a._iDisplayStart=0;y(a);x(a);la(a,0)}function Ia(a){for(var b=j.ext.afnFiltering,c=r(a,"bSearchable"),d=0,i=b.length;d<i;d++)for(var f=0,g=0,e=a.aiDisplay.length;g<e;g++){var h=a.aiDisplay[g-f];b[d](a,Y(a,h,"filter",c),h)||(a.aiDisplay.splice(g-f,1),f++)}}function Ha(a,b,c,
53
+ d,i,f){if(""!==b)for(var g=0,b=ma(b,d,i,f),d=a.aiDisplay.length-1;0<=d;d--)i=Ja(v(a,a.aiDisplay[d],c,"filter"),a.aoColumns[c].sType),b.test(i)||(a.aiDisplay.splice(d,1),g++)}function Ga(a,b,c,d,i,f){d=ma(b,d,i,f);i=a.oPreviousSearch;c||(c=0);0!==j.ext.afnFiltering.length&&(c=1);if(0>=b.length)a.aiDisplay.splice(0,a.aiDisplay.length),a.aiDisplay=a.aiDisplayMaster.slice();else if(a.aiDisplay.length==a.aiDisplayMaster.length||i.sSearch.length>b.length||1==c||0!==b.indexOf(i.sSearch)){a.aiDisplay.splice(0,
54
+ a.aiDisplay.length);la(a,1);for(b=0;b<a.aiDisplayMaster.length;b++)d.test(a.asDataSearch[b])&&a.aiDisplay.push(a.aiDisplayMaster[b])}else for(b=c=0;b<a.asDataSearch.length;b++)d.test(a.asDataSearch[b])||(a.aiDisplay.splice(b-c,1),c++)}function la(a,b){if(!a.oFeatures.bServerSide){a.asDataSearch=[];for(var c=r(a,"bSearchable"),d=1===b?a.aiDisplayMaster:a.aiDisplay,i=0,f=d.length;i<f;i++)a.asDataSearch[i]=na(a,Y(a,d[i],"filter",c))}}function na(a,b){var c=b.join(" ");-1!==c.indexOf("&")&&(c=h("<div>").html(c).text());
55
+ return c.replace(/[\n\r]/g," ")}function ma(a,b,c,d){if(c)return a=b?a.split(" "):oa(a).split(" "),a="^(?=.*?"+a.join(")(?=.*?")+").*$",RegExp(a,d?"i":"");a=b?a:oa(a);return RegExp(a,d?"i":"")}function Ja(a,b){return"function"===typeof j.ext.ofnSearch[b]?j.ext.ofnSearch[b](a):null===a?"":"html"==b?a.replace(/[\r\n]/g," ").replace(/<.*?>/g,""):"string"===typeof a?a.replace(/[\r\n]/g," "):a}function oa(a){return a.replace(RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)","g"),
56
+ "\\$1")}function Ca(a){var b=l.createElement("div");b.className=a.oClasses.sInfo;a.aanFeatures.i||(a.aoDrawCallback.push({fn:Ka,sName:"information"}),b.id=a.sTableId+"_info");a.nTable.setAttribute("aria-describedby",a.sTableId+"_info");return b}function Ka(a){if(a.oFeatures.bInfo&&0!==a.aanFeatures.i.length){var b=a.oLanguage,c=a._iDisplayStart+1,d=a.fnDisplayEnd(),i=a.fnRecordsTotal(),f=a.fnRecordsDisplay(),g;g=0===f?b.sInfoEmpty:b.sInfo;f!=i&&(g+=" "+b.sInfoFiltered);g+=b.sInfoPostFix;g=ja(a,g);
57
+ null!==b.fnInfoCallback&&(g=b.fnInfoCallback.call(a.oInstance,a,c,d,i,f,g));a=a.aanFeatures.i;b=0;for(c=a.length;b<c;b++)h(a[b]).html(g)}}function ja(a,b){var c=a.fnFormatNumber(a._iDisplayStart+1),d=a.fnDisplayEnd(),d=a.fnFormatNumber(d),i=a.fnRecordsDisplay(),i=a.fnFormatNumber(i),f=a.fnRecordsTotal(),f=a.fnFormatNumber(f);a.oScroll.bInfinite&&(c=a.fnFormatNumber(1));return b.replace(/_START_/g,c).replace(/_END_/g,d).replace(/_TOTAL_/g,i).replace(/_MAX_/g,f)}function ba(a){var b,c,d=a.iInitDisplayStart;
58
+ if(!1===a.bInitialised)setTimeout(function(){ba(a)},200);else{xa(a);va(a);W(a,a.aoHeader);a.nTFoot&&W(a,a.aoFooter);E(a,!0);a.oFeatures.bAutoWidth&&da(a);b=0;for(c=a.aoColumns.length;b<c;b++)null!==a.aoColumns[b].sWidth&&(a.aoColumns[b].nTh.style.width=q(a.aoColumns[b].sWidth));a.oFeatures.bSort?O(a):a.oFeatures.bFilter?K(a,a.oPreviousSearch):(a.aiDisplay=a.aiDisplayMaster.slice(),y(a),x(a));null!==a.sAjaxSource&&!a.oFeatures.bServerSide?(c=[],ka(a,c),a.fnServerData.call(a.oInstance,a.sAjaxSource,
59
+ c,function(c){var f=a.sAjaxDataProp!==""?Q(a.sAjaxDataProp)(c):c;for(b=0;b<f.length;b++)H(a,f[b]);a.iInitDisplayStart=d;if(a.oFeatures.bSort)O(a);else{a.aiDisplay=a.aiDisplayMaster.slice();y(a);x(a)}E(a,false);$(a,c)},a)):a.oFeatures.bServerSide||(E(a,!1),$(a))}}function $(a,b){a._bInitComplete=!0;A(a,"aoInitComplete","init",[a,b])}function pa(a){var b=j.defaults.oLanguage;!a.sEmptyTable&&(a.sZeroRecords&&"No data available in table"===b.sEmptyTable)&&p(a,a,"sZeroRecords","sEmptyTable");!a.sLoadingRecords&&
60
+ (a.sZeroRecords&&"Loading..."===b.sLoadingRecords)&&p(a,a,"sZeroRecords","sLoadingRecords")}function ya(a){if(a.oScroll.bInfinite)return null;var b='<select size="1" '+('name="'+a.sTableId+'_length"')+">",c,d,i=a.aLengthMenu;if(2==i.length&&"object"===typeof i[0]&&"object"===typeof i[1]){c=0;for(d=i[0].length;c<d;c++)b+='<option value="'+i[0][c]+'">'+i[1][c]+"</option>"}else{c=0;for(d=i.length;c<d;c++)b+='<option value="'+i[c]+'">'+i[c]+"</option>"}b+="</select>";i=l.createElement("div");a.aanFeatures.l||
61
+ (i.id=a.sTableId+"_length");i.className=a.oClasses.sLength;i.innerHTML="<label>"+a.oLanguage.sLengthMenu.replace("_MENU_",b)+"</label>";h('select option[value="'+a._iDisplayLength+'"]',i).attr("selected",!0);h("select",i).bind("change.DT",function(){var b=h(this).val(),i=a.aanFeatures.l;c=0;for(d=i.length;c<d;c++)i[c]!=this.parentNode&&h("select",i[c]).val(b);a._iDisplayLength=parseInt(b,10);y(a);if(a.fnDisplayEnd()==a.fnRecordsDisplay()){a._iDisplayStart=a.fnDisplayEnd()-a._iDisplayLength;if(a._iDisplayStart<
62
+ 0)a._iDisplayStart=0}if(a._iDisplayLength==-1)a._iDisplayStart=0;x(a)});h("select",i).attr("aria-controls",a.sTableId);return i}function y(a){a._iDisplayEnd=!1===a.oFeatures.bPaginate?a.aiDisplay.length:a._iDisplayStart+a._iDisplayLength>a.aiDisplay.length||-1==a._iDisplayLength?a.aiDisplay.length:a._iDisplayStart+a._iDisplayLength}function Da(a){if(a.oScroll.bInfinite)return null;var b=l.createElement("div");b.className=a.oClasses.sPaging+a.sPaginationType;j.ext.oPagination[a.sPaginationType].fnInit(a,
63
+ b,function(a){y(a);x(a)});a.aanFeatures.p||a.aoDrawCallback.push({fn:function(a){j.ext.oPagination[a.sPaginationType].fnUpdate(a,function(a){y(a);x(a)})},sName:"pagination"});return b}function qa(a,b){var c=a._iDisplayStart;if("number"===typeof b)a._iDisplayStart=b*a._iDisplayLength,a._iDisplayStart>a.fnRecordsDisplay()&&(a._iDisplayStart=0);else if("first"==b)a._iDisplayStart=0;else if("previous"==b)a._iDisplayStart=0<=a._iDisplayLength?a._iDisplayStart-a._iDisplayLength:0,0>a._iDisplayStart&&(a._iDisplayStart=
64
+ 0);else if("next"==b)0<=a._iDisplayLength?a._iDisplayStart+a._iDisplayLength<a.fnRecordsDisplay()&&(a._iDisplayStart+=a._iDisplayLength):a._iDisplayStart=0;else if("last"==b)if(0<=a._iDisplayLength){var d=parseInt((a.fnRecordsDisplay()-1)/a._iDisplayLength,10)+1;a._iDisplayStart=(d-1)*a._iDisplayLength}else a._iDisplayStart=0;else D(a,0,"Unknown paging action: "+b);h(a.oInstance).trigger("page",a);return c!=a._iDisplayStart}function Aa(a){var b=l.createElement("div");a.aanFeatures.r||(b.id=a.sTableId+
65
+ "_processing");b.innerHTML=a.oLanguage.sProcessing;b.className=a.oClasses.sProcessing;a.nTable.parentNode.insertBefore(b,a.nTable);return b}function E(a,b){if(a.oFeatures.bProcessing)for(var c=a.aanFeatures.r,d=0,i=c.length;d<i;d++)c[d].style.visibility=b?"visible":"hidden";h(a.oInstance).trigger("processing",[a,b])}function Ba(a){if(""===a.oScroll.sX&&""===a.oScroll.sY)return a.nTable;var b=l.createElement("div"),c=l.createElement("div"),d=l.createElement("div"),i=l.createElement("div"),f=l.createElement("div"),
66
+ g=l.createElement("div"),e=a.nTable.cloneNode(!1),j=a.nTable.cloneNode(!1),o=a.nTable.getElementsByTagName("thead")[0],k=0===a.nTable.getElementsByTagName("tfoot").length?null:a.nTable.getElementsByTagName("tfoot")[0],m=a.oClasses;c.appendChild(d);f.appendChild(g);i.appendChild(a.nTable);b.appendChild(c);b.appendChild(i);d.appendChild(e);e.appendChild(o);null!==k&&(b.appendChild(f),g.appendChild(j),j.appendChild(k));b.className=m.sScrollWrapper;c.className=m.sScrollHead;d.className=m.sScrollHeadInner;
67
+ i.className=m.sScrollBody;f.className=m.sScrollFoot;g.className=m.sScrollFootInner;a.oScroll.bAutoCss&&(c.style.overflow="hidden",c.style.position="relative",f.style.overflow="hidden",i.style.overflow="auto");c.style.border="0";c.style.width="100%";f.style.border="0";d.style.width=""!==a.oScroll.sXInner?a.oScroll.sXInner:"100%";e.removeAttribute("id");e.style.marginLeft="0";a.nTable.style.marginLeft="0";null!==k&&(j.removeAttribute("id"),j.style.marginLeft="0");d=h(a.nTable).children("caption");0<
68
+ d.length&&(d=d[0],"top"===d._captionSide?e.appendChild(d):"bottom"===d._captionSide&&k&&j.appendChild(d));""!==a.oScroll.sX&&(c.style.width=q(a.oScroll.sX),i.style.width=q(a.oScroll.sX),null!==k&&(f.style.width=q(a.oScroll.sX)),h(i).scroll(function(){c.scrollLeft=this.scrollLeft;if(k!==null)f.scrollLeft=this.scrollLeft}));""!==a.oScroll.sY&&(i.style.height=q(a.oScroll.sY));a.aoDrawCallback.push({fn:La,sName:"scrolling"});a.oScroll.bInfinite&&h(i).scroll(function(){if(!a.bDrawing&&h(this).scrollTop()!==
69
+ 0&&h(this).scrollTop()+h(this).height()>h(a.nTable).height()-a.oScroll.iLoadGap&&a.fnDisplayEnd()<a.fnRecordsDisplay()){qa(a,"next");y(a);x(a)}});a.nScrollHead=c;a.nScrollFoot=f;return b}function La(a){var b=a.nScrollHead.getElementsByTagName("div")[0],c=b.getElementsByTagName("table")[0],d=a.nTable.parentNode,i,f,g,e,j,o,k,m,p=[],n=[],l=null!==a.nTFoot?a.nScrollFoot.getElementsByTagName("div")[0]:null,R=null!==a.nTFoot?l.getElementsByTagName("table")[0]:null,r=a.oBrowser.bScrollOversize,s=function(a){k=
70
+ a.style;k.paddingTop="0";k.paddingBottom="0";k.borderTopWidth="0";k.borderBottomWidth="0";k.height=0};h(a.nTable).children("thead, tfoot").remove();i=h(a.nTHead).clone()[0];a.nTable.insertBefore(i,a.nTable.childNodes[0]);g=a.nTHead.getElementsByTagName("tr");e=i.getElementsByTagName("tr");null!==a.nTFoot&&(j=h(a.nTFoot).clone()[0],a.nTable.insertBefore(j,a.nTable.childNodes[1]),o=a.nTFoot.getElementsByTagName("tr"),j=j.getElementsByTagName("tr"));""===a.oScroll.sX&&(d.style.width="100%",b.parentNode.style.width=
71
+ "100%");var t=N(a,i);i=0;for(f=t.length;i<f;i++)m=G(a,i),t[i].style.width=a.aoColumns[m].sWidth;null!==a.nTFoot&&C(function(a){a.style.width=""},j);a.oScroll.bCollapse&&""!==a.oScroll.sY&&(d.style.height=d.offsetHeight+a.nTHead.offsetHeight+"px");i=h(a.nTable).outerWidth();if(""===a.oScroll.sX){if(a.nTable.style.width="100%",r&&(h("tbody",d).height()>d.offsetHeight||"scroll"==h(d).css("overflow-y")))a.nTable.style.width=q(h(a.nTable).outerWidth()-a.oScroll.iBarWidth)}else""!==a.oScroll.sXInner?a.nTable.style.width=
72
+ q(a.oScroll.sXInner):i==h(d).width()&&h(d).height()<h(a.nTable).height()?(a.nTable.style.width=q(i-a.oScroll.iBarWidth),h(a.nTable).outerWidth()>i-a.oScroll.iBarWidth&&(a.nTable.style.width=q(i))):a.nTable.style.width=q(i);i=h(a.nTable).outerWidth();C(s,e);C(function(a){p.push(q(h(a).width()))},e);C(function(a,b){a.style.width=p[b]},g);h(e).height(0);null!==a.nTFoot&&(C(s,j),C(function(a){n.push(q(h(a).width()))},j),C(function(a,b){a.style.width=n[b]},o),h(j).height(0));C(function(a,b){a.innerHTML=
73
+ "";a.style.width=p[b]},e);null!==a.nTFoot&&C(function(a,b){a.innerHTML="";a.style.width=n[b]},j);if(h(a.nTable).outerWidth()<i){g=d.scrollHeight>d.offsetHeight||"scroll"==h(d).css("overflow-y")?i+a.oScroll.iBarWidth:i;if(r&&(d.scrollHeight>d.offsetHeight||"scroll"==h(d).css("overflow-y")))a.nTable.style.width=q(g-a.oScroll.iBarWidth);d.style.width=q(g);a.nScrollHead.style.width=q(g);null!==a.nTFoot&&(a.nScrollFoot.style.width=q(g));""===a.oScroll.sX?D(a,1,"The table cannot fit into the current element which will cause column misalignment. The table has been drawn at its minimum possible width."):
74
+ ""!==a.oScroll.sXInner&&D(a,1,"The table cannot fit into the current element which will cause column misalignment. Increase the sScrollXInner value or remove it to allow automatic calculation")}else d.style.width=q("100%"),a.nScrollHead.style.width=q("100%"),null!==a.nTFoot&&(a.nScrollFoot.style.width=q("100%"));""===a.oScroll.sY&&r&&(d.style.height=q(a.nTable.offsetHeight+a.oScroll.iBarWidth));""!==a.oScroll.sY&&a.oScroll.bCollapse&&(d.style.height=q(a.oScroll.sY),r=""!==a.oScroll.sX&&a.nTable.offsetWidth>
75
+ d.offsetWidth?a.oScroll.iBarWidth:0,a.nTable.offsetHeight<d.offsetHeight&&(d.style.height=q(a.nTable.offsetHeight+r)));r=h(a.nTable).outerWidth();c.style.width=q(r);b.style.width=q(r);c=h(a.nTable).height()>d.clientHeight||"scroll"==h(d).css("overflow-y");b.style.paddingRight=c?a.oScroll.iBarWidth+"px":"0px";null!==a.nTFoot&&(R.style.width=q(r),l.style.width=q(r),l.style.paddingRight=c?a.oScroll.iBarWidth+"px":"0px");h(d).scroll();if(a.bSorted||a.bFiltered)d.scrollTop=0}function C(a,b,c){for(var d=
76
+ 0,i=0,f=b.length,g,e;i<f;){g=b[i].firstChild;for(e=c?c[i].firstChild:null;g;)1===g.nodeType&&(c?a(g,e,d):a(g,d),d++),g=g.nextSibling,e=c?e.nextSibling:null;i++}}function Ma(a,b){if(!a||null===a||""===a)return 0;b||(b=l.body);var c,d=l.createElement("div");d.style.width=q(a);b.appendChild(d);c=d.offsetWidth;b.removeChild(d);return c}function da(a){var b=0,c,d=0,i=a.aoColumns.length,f,e,j=h("th",a.nTHead),o=a.nTable.getAttribute("width");e=a.nTable.parentNode;for(f=0;f<i;f++)a.aoColumns[f].bVisible&&
77
+ (d++,null!==a.aoColumns[f].sWidth&&(c=Ma(a.aoColumns[f].sWidthOrig,e),null!==c&&(a.aoColumns[f].sWidth=q(c)),b++));if(i==j.length&&0===b&&d==i&&""===a.oScroll.sX&&""===a.oScroll.sY)for(f=0;f<a.aoColumns.length;f++)c=h(j[f]).width(),null!==c&&(a.aoColumns[f].sWidth=q(c));else{b=a.nTable.cloneNode(!1);f=a.nTHead.cloneNode(!0);d=l.createElement("tbody");c=l.createElement("tr");b.removeAttribute("id");b.appendChild(f);null!==a.nTFoot&&(b.appendChild(a.nTFoot.cloneNode(!0)),C(function(a){a.style.width=
78
+ ""},b.getElementsByTagName("tr")));b.appendChild(d);d.appendChild(c);d=h("thead th",b);0===d.length&&(d=h("tbody tr:eq(0)>td",b));j=N(a,f);for(f=d=0;f<i;f++){var k=a.aoColumns[f];k.bVisible&&null!==k.sWidthOrig&&""!==k.sWidthOrig?j[f-d].style.width=q(k.sWidthOrig):k.bVisible?j[f-d].style.width="":d++}for(f=0;f<i;f++)a.aoColumns[f].bVisible&&(d=Na(a,f),null!==d&&(d=d.cloneNode(!0),""!==a.aoColumns[f].sContentPadding&&(d.innerHTML+=a.aoColumns[f].sContentPadding),c.appendChild(d)));e.appendChild(b);
79
+ ""!==a.oScroll.sX&&""!==a.oScroll.sXInner?b.style.width=q(a.oScroll.sXInner):""!==a.oScroll.sX?(b.style.width="",h(b).width()<e.offsetWidth&&(b.style.width=q(e.offsetWidth))):""!==a.oScroll.sY?b.style.width=q(e.offsetWidth):o&&(b.style.width=q(o));b.style.visibility="hidden";Oa(a,b);i=h("tbody tr:eq(0)",b).children();0===i.length&&(i=N(a,h("thead",b)[0]));if(""!==a.oScroll.sX){for(f=d=e=0;f<a.aoColumns.length;f++)a.aoColumns[f].bVisible&&(e=null===a.aoColumns[f].sWidthOrig?e+h(i[d]).outerWidth():
80
+ e+(parseInt(a.aoColumns[f].sWidth.replace("px",""),10)+(h(i[d]).outerWidth()-h(i[d]).width())),d++);b.style.width=q(e);a.nTable.style.width=q(e)}for(f=d=0;f<a.aoColumns.length;f++)a.aoColumns[f].bVisible&&(e=h(i[d]).width(),null!==e&&0<e&&(a.aoColumns[f].sWidth=q(e)),d++);i=h(b).css("width");a.nTable.style.width=-1!==i.indexOf("%")?i:q(h(b).outerWidth());b.parentNode.removeChild(b)}o&&(a.nTable.style.width=q(o))}function Oa(a,b){""===a.oScroll.sX&&""!==a.oScroll.sY?(h(b).width(),b.style.width=q(h(b).outerWidth()-
81
+ a.oScroll.iBarWidth)):""!==a.oScroll.sX&&(b.style.width=q(h(b).outerWidth()))}function Na(a,b){var c=Pa(a,b);if(0>c)return null;if(null===a.aoData[c].nTr){var d=l.createElement("td");d.innerHTML=v(a,c,b,"");return d}return J(a,c)[b]}function Pa(a,b){for(var c=-1,d=-1,i=0;i<a.aoData.length;i++){var e=v(a,i,b,"display")+"",e=e.replace(/<.*?>/g,"");e.length>c&&(c=e.length,d=i)}return d}function q(a){if(null===a)return"0px";if("number"==typeof a)return 0>a?"0px":a+"px";var b=a.charCodeAt(a.length-1);
82
+ return 48>b||57<b?a:a+"px"}function Qa(){var a=l.createElement("p"),b=a.style;b.width="100%";b.height="200px";b.padding="0px";var c=l.createElement("div"),b=c.style;b.position="absolute";b.top="0px";b.left="0px";b.visibility="hidden";b.width="200px";b.height="150px";b.padding="0px";b.overflow="hidden";c.appendChild(a);l.body.appendChild(c);b=a.offsetWidth;c.style.overflow="scroll";a=a.offsetWidth;b==a&&(a=c.clientWidth);l.body.removeChild(c);return b-a}function O(a,b){var c,d,i,e,g,k,o=[],m=[],p=
83
+ j.ext.oSort,l=a.aoData,q=a.aoColumns,G=a.oLanguage.oAria;if(!a.oFeatures.bServerSide&&(0!==a.aaSorting.length||null!==a.aaSortingFixed)){o=null!==a.aaSortingFixed?a.aaSortingFixed.concat(a.aaSorting):a.aaSorting.slice();for(c=0;c<o.length;c++)if(d=o[c][0],i=R(a,d),e=a.aoColumns[d].sSortDataType,j.ext.afnSortData[e])if(g=j.ext.afnSortData[e].call(a.oInstance,a,d,i),g.length===l.length){i=0;for(e=l.length;i<e;i++)F(a,i,d,g[i])}else D(a,0,"Returned data sort array (col "+d+") is the wrong length");c=
84
+ 0;for(d=a.aiDisplayMaster.length;c<d;c++)m[a.aiDisplayMaster[c]]=c;var r=o.length,s;c=0;for(d=l.length;c<d;c++)for(i=0;i<r;i++){s=q[o[i][0]].aDataSort;g=0;for(k=s.length;g<k;g++)e=q[s[g]].sType,e=p[(e?e:"string")+"-pre"],l[c]._aSortData[s[g]]=e?e(v(a,c,s[g],"sort")):v(a,c,s[g],"sort")}a.aiDisplayMaster.sort(function(a,b){var c,d,e,i,f;for(c=0;c<r;c++){f=q[o[c][0]].aDataSort;d=0;for(e=f.length;d<e;d++)if(i=q[f[d]].sType,i=p[(i?i:"string")+"-"+o[c][1]](l[a]._aSortData[f[d]],l[b]._aSortData[f[d]]),0!==
85
+ i)return i}return p["numeric-asc"](m[a],m[b])})}(b===n||b)&&!a.oFeatures.bDeferRender&&P(a);c=0;for(d=a.aoColumns.length;c<d;c++)e=q[c].sTitle.replace(/<.*?>/g,""),i=q[c].nTh,i.removeAttribute("aria-sort"),i.removeAttribute("aria-label"),q[c].bSortable?0<o.length&&o[0][0]==c?(i.setAttribute("aria-sort","asc"==o[0][1]?"ascending":"descending"),i.setAttribute("aria-label",e+("asc"==(q[c].asSorting[o[0][2]+1]?q[c].asSorting[o[0][2]+1]:q[c].asSorting[0])?G.sSortAscending:G.sSortDescending))):i.setAttribute("aria-label",
86
+ e+("asc"==q[c].asSorting[0]?G.sSortAscending:G.sSortDescending)):i.setAttribute("aria-label",e);a.bSorted=!0;h(a.oInstance).trigger("sort",a);a.oFeatures.bFilter?K(a,a.oPreviousSearch,1):(a.aiDisplay=a.aiDisplayMaster.slice(),a._iDisplayStart=0,y(a),x(a))}function ia(a,b,c,d){Ra(b,{},function(b){if(!1!==a.aoColumns[c].bSortable){var e=function(){var d,e;if(b.shiftKey){for(var f=!1,h=0;h<a.aaSorting.length;h++)if(a.aaSorting[h][0]==c){f=!0;d=a.aaSorting[h][0];e=a.aaSorting[h][2]+1;a.aoColumns[d].asSorting[e]?
87
+ (a.aaSorting[h][1]=a.aoColumns[d].asSorting[e],a.aaSorting[h][2]=e):a.aaSorting.splice(h,1);break}!1===f&&a.aaSorting.push([c,a.aoColumns[c].asSorting[0],0])}else 1==a.aaSorting.length&&a.aaSorting[0][0]==c?(d=a.aaSorting[0][0],e=a.aaSorting[0][2]+1,a.aoColumns[d].asSorting[e]||(e=0),a.aaSorting[0][1]=a.aoColumns[d].asSorting[e],a.aaSorting[0][2]=e):(a.aaSorting.splice(0,a.aaSorting.length),a.aaSorting.push([c,a.aoColumns[c].asSorting[0],0]));O(a)};a.oFeatures.bProcessing?(E(a,!0),setTimeout(function(){e();
88
+ a.oFeatures.bServerSide||E(a,!1)},0)):e();"function"==typeof d&&d(a)}})}function P(a){var b,c,d,e,f,g=a.aoColumns.length,j=a.oClasses;for(b=0;b<g;b++)a.aoColumns[b].bSortable&&h(a.aoColumns[b].nTh).removeClass(j.sSortAsc+" "+j.sSortDesc+" "+a.aoColumns[b].sSortingClass);c=null!==a.aaSortingFixed?a.aaSortingFixed.concat(a.aaSorting):a.aaSorting.slice();for(b=0;b<a.aoColumns.length;b++)if(a.aoColumns[b].bSortable){f=a.aoColumns[b].sSortingClass;e=-1;for(d=0;d<c.length;d++)if(c[d][0]==b){f="asc"==c[d][1]?
89
+ j.sSortAsc:j.sSortDesc;e=d;break}h(a.aoColumns[b].nTh).addClass(f);a.bJUI&&(f=h("span."+j.sSortIcon,a.aoColumns[b].nTh),f.removeClass(j.sSortJUIAsc+" "+j.sSortJUIDesc+" "+j.sSortJUI+" "+j.sSortJUIAscAllowed+" "+j.sSortJUIDescAllowed),f.addClass(-1==e?a.aoColumns[b].sSortingClassJUI:"asc"==c[e][1]?j.sSortJUIAsc:j.sSortJUIDesc))}else h(a.aoColumns[b].nTh).addClass(a.aoColumns[b].sSortingClass);f=j.sSortColumn;if(a.oFeatures.bSort&&a.oFeatures.bSortClasses){a=J(a);e=[];for(b=0;b<g;b++)e.push("");b=0;
90
+ for(d=1;b<c.length;b++)j=parseInt(c[b][0],10),e[j]=f+d,3>d&&d++;f=RegExp(f+"[123]");var o;b=0;for(c=a.length;b<c;b++)j=b%g,d=a[b].className,o=e[j],j=d.replace(f,o),j!=d?a[b].className=h.trim(j):0<o.length&&-1==d.indexOf(o)&&(a[b].className=d+" "+o)}}function ra(a){if(a.oFeatures.bStateSave&&!a.bDestroying){var b,c;b=a.oScroll.bInfinite;var d={iCreate:(new Date).getTime(),iStart:b?0:a._iDisplayStart,iEnd:b?a._iDisplayLength:a._iDisplayEnd,iLength:a._iDisplayLength,aaSorting:h.extend(!0,[],a.aaSorting),
91
+ oSearch:h.extend(!0,{},a.oPreviousSearch),aoSearchCols:h.extend(!0,[],a.aoPreSearchCols),abVisCols:[]};b=0;for(c=a.aoColumns.length;b<c;b++)d.abVisCols.push(a.aoColumns[b].bVisible);A(a,"aoStateSaveParams","stateSaveParams",[a,d]);a.fnStateSave.call(a.oInstance,a,d)}}function Sa(a,b){if(a.oFeatures.bStateSave){var c=a.fnStateLoad.call(a.oInstance,a);if(c){var d=A(a,"aoStateLoadParams","stateLoadParams",[a,c]);if(-1===h.inArray(!1,d)){a.oLoadedState=h.extend(!0,{},c);a._iDisplayStart=c.iStart;a.iInitDisplayStart=
92
+ c.iStart;a._iDisplayEnd=c.iEnd;a._iDisplayLength=c.iLength;a.aaSorting=c.aaSorting.slice();a.saved_aaSorting=c.aaSorting.slice();h.extend(a.oPreviousSearch,c.oSearch);h.extend(!0,a.aoPreSearchCols,c.aoSearchCols);b.saved_aoColumns=[];for(d=0;d<c.abVisCols.length;d++)b.saved_aoColumns[d]={},b.saved_aoColumns[d].bVisible=c.abVisCols[d];A(a,"aoStateLoaded","stateLoaded",[a,c])}}}}function s(a){for(var b=0;b<j.settings.length;b++)if(j.settings[b].nTable===a)return j.settings[b];return null}function T(a){for(var b=
93
+ [],a=a.aoData,c=0,d=a.length;c<d;c++)null!==a[c].nTr&&b.push(a[c].nTr);return b}function J(a,b){var c=[],d,e,f,g,h,j;e=0;var o=a.aoData.length;b!==n&&(e=b,o=b+1);for(f=e;f<o;f++)if(j=a.aoData[f],null!==j.nTr){e=[];for(d=j.nTr.firstChild;d;)g=d.nodeName.toLowerCase(),("td"==g||"th"==g)&&e.push(d),d=d.nextSibling;g=d=0;for(h=a.aoColumns.length;g<h;g++)a.aoColumns[g].bVisible?c.push(e[g-d]):(c.push(j._anHidden[g]),d++)}return c}function D(a,b,c){a=null===a?"DataTables warning: "+c:"DataTables warning (table id = '"+
94
+ a.sTableId+"'): "+c;if(0===b)if("alert"==j.ext.sErrMode)alert(a);else throw Error(a);else X.console&&console.log&&console.log(a)}function p(a,b,c,d){d===n&&(d=c);b[c]!==n&&(a[d]=b[c])}function Ta(a,b){var c,d;for(d in b)b.hasOwnProperty(d)&&(c=b[d],"object"===typeof e[d]&&null!==c&&!1===h.isArray(c)?h.extend(!0,a[d],c):a[d]=c);return a}function Ra(a,b,c){h(a).bind("click.DT",b,function(b){a.blur();c(b)}).bind("keypress.DT",b,function(a){13===a.which&&c(a)}).bind("selectstart.DT",function(){return!1})}
95
+ function z(a,b,c,d){c&&a[b].push({fn:c,sName:d})}function A(a,b,c,d){for(var b=a[b],e=[],f=b.length-1;0<=f;f--)e.push(b[f].fn.apply(a.oInstance,d));null!==c&&h(a.oInstance).trigger(c,d);return e}function Ua(a){var b=h('<div style="position:absolute; top:0; left:0; height:1px; width:1px; overflow:hidden"><div style="position:absolute; top:1px; left:1px; width:100px; overflow:scroll;"><div id="DT_BrowserTest" style="width:100%; height:10px;"></div></div></div>')[0];l.body.appendChild(b);a.oBrowser.bScrollOversize=
96
+ 100===h("#DT_BrowserTest",b)[0].offsetWidth?!0:!1;l.body.removeChild(b)}function Va(a){return function(){var b=[s(this[j.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return j.ext.oApi[a].apply(this,b)}}var U=/\[.*?\]$/,Wa=X.JSON?JSON.stringify:function(a){var b=typeof a;if("object"!==b||null===a)return"string"===b&&(a='"'+a+'"'),a+"";var c,d,e=[],f=h.isArray(a);for(c in a)d=a[c],b=typeof d,"string"===b?d='"'+d+'"':"object"===b&&null!==d&&(d=Wa(d)),e.push((f?"":'"'+c+'":')+d);return(f?
97
+ "[":"{")+e+(f?"]":"}")};this.$=function(a,b){var c,d,e=[],f;d=s(this[j.ext.iApiIndex]);var g=d.aoData,o=d.aiDisplay,k=d.aiDisplayMaster;b||(b={});b=h.extend({},{filter:"none",order:"current",page:"all"},b);if("current"==b.page){c=d._iDisplayStart;for(d=d.fnDisplayEnd();c<d;c++)(f=g[o[c]].nTr)&&e.push(f)}else if("current"==b.order&&"none"==b.filter){c=0;for(d=k.length;c<d;c++)(f=g[k[c]].nTr)&&e.push(f)}else if("current"==b.order&&"applied"==b.filter){c=0;for(d=o.length;c<d;c++)(f=g[o[c]].nTr)&&e.push(f)}else if("original"==
98
+ b.order&&"none"==b.filter){c=0;for(d=g.length;c<d;c++)(f=g[c].nTr)&&e.push(f)}else if("original"==b.order&&"applied"==b.filter){c=0;for(d=g.length;c<d;c++)f=g[c].nTr,-1!==h.inArray(c,o)&&f&&e.push(f)}else D(d,1,"Unknown selection options");e=h(e);c=e.filter(a);e=e.find(a);return h([].concat(h.makeArray(c),h.makeArray(e)))};this._=function(a,b){var c=[],d,e,f=this.$(a,b);d=0;for(e=f.length;d<e;d++)c.push(this.fnGetData(f[d]));return c};this.fnAddData=function(a,b){if(0===a.length)return[];var c=[],
99
+ d,e=s(this[j.ext.iApiIndex]);if("object"===typeof a[0]&&null!==a[0])for(var f=0;f<a.length;f++){d=H(e,a[f]);if(-1==d)return c;c.push(d)}else{d=H(e,a);if(-1==d)return c;c.push(d)}e.aiDisplay=e.aiDisplayMaster.slice();(b===n||b)&&aa(e);return c};this.fnAdjustColumnSizing=function(a){var b=s(this[j.ext.iApiIndex]);k(b);a===n||a?this.fnDraw(!1):(""!==b.oScroll.sX||""!==b.oScroll.sY)&&this.oApi._fnScrollDraw(b)};this.fnClearTable=function(a){var b=s(this[j.ext.iApiIndex]);ga(b);(a===n||a)&&x(b)};this.fnClose=
100
+ function(a){for(var b=s(this[j.ext.iApiIndex]),c=0;c<b.aoOpenRows.length;c++)if(b.aoOpenRows[c].nParent==a)return(a=b.aoOpenRows[c].nTr.parentNode)&&a.removeChild(b.aoOpenRows[c].nTr),b.aoOpenRows.splice(c,1),0;return 1};this.fnDeleteRow=function(a,b,c){var d=s(this[j.ext.iApiIndex]),e,f,a="object"===typeof a?I(d,a):a,g=d.aoData.splice(a,1);e=0;for(f=d.aoData.length;e<f;e++)null!==d.aoData[e].nTr&&(d.aoData[e].nTr._DT_RowIndex=e);e=h.inArray(a,d.aiDisplay);d.asDataSearch.splice(e,1);ha(d.aiDisplayMaster,
101
+ a);ha(d.aiDisplay,a);"function"===typeof b&&b.call(this,d,g);d._iDisplayStart>=d.fnRecordsDisplay()&&(d._iDisplayStart-=d._iDisplayLength,0>d._iDisplayStart&&(d._iDisplayStart=0));if(c===n||c)y(d),x(d);return g};this.fnDestroy=function(a){var b=s(this[j.ext.iApiIndex]),c=b.nTableWrapper.parentNode,d=b.nTBody,i,f,a=a===n?!1:a;b.bDestroying=!0;A(b,"aoDestroyCallback","destroy",[b]);if(!a){i=0;for(f=b.aoColumns.length;i<f;i++)!1===b.aoColumns[i].bVisible&&this.fnSetColumnVis(i,!0)}h(b.nTableWrapper).find("*").andSelf().unbind(".DT");
102
+ h("tbody>tr>td."+b.oClasses.sRowEmpty,b.nTable).parent().remove();b.nTable!=b.nTHead.parentNode&&(h(b.nTable).children("thead").remove(),b.nTable.appendChild(b.nTHead));b.nTFoot&&b.nTable!=b.nTFoot.parentNode&&(h(b.nTable).children("tfoot").remove(),b.nTable.appendChild(b.nTFoot));b.nTable.parentNode.removeChild(b.nTable);h(b.nTableWrapper).remove();b.aaSorting=[];b.aaSortingFixed=[];P(b);h(T(b)).removeClass(b.asStripeClasses.join(" "));h("th, td",b.nTHead).removeClass([b.oClasses.sSortable,b.oClasses.sSortableAsc,
103
+ b.oClasses.sSortableDesc,b.oClasses.sSortableNone].join(" "));b.bJUI&&(h("th span."+b.oClasses.sSortIcon+", td span."+b.oClasses.sSortIcon,b.nTHead).remove(),h("th, td",b.nTHead).each(function(){var a=h("div."+b.oClasses.sSortJUIWrapper,this),c=a.contents();h(this).append(c);a.remove()}));!a&&b.nTableReinsertBefore?c.insertBefore(b.nTable,b.nTableReinsertBefore):a||c.appendChild(b.nTable);i=0;for(f=b.aoData.length;i<f;i++)null!==b.aoData[i].nTr&&d.appendChild(b.aoData[i].nTr);!0===b.oFeatures.bAutoWidth&&
104
+ (b.nTable.style.width=q(b.sDestroyWidth));if(f=b.asDestroyStripes.length){a=h(d).children("tr");for(i=0;i<f;i++)a.filter(":nth-child("+f+"n + "+i+")").addClass(b.asDestroyStripes[i])}i=0;for(f=j.settings.length;i<f;i++)j.settings[i]==b&&j.settings.splice(i,1);e=b=null};this.fnDraw=function(a){var b=s(this[j.ext.iApiIndex]);!1===a?(y(b),x(b)):aa(b)};this.fnFilter=function(a,b,c,d,e,f){var g=s(this[j.ext.iApiIndex]);if(g.oFeatures.bFilter){if(c===n||null===c)c=!1;if(d===n||null===d)d=!0;if(e===n||null===
105
+ e)e=!0;if(f===n||null===f)f=!0;if(b===n||null===b){if(K(g,{sSearch:a+"",bRegex:c,bSmart:d,bCaseInsensitive:f},1),e&&g.aanFeatures.f){b=g.aanFeatures.f;c=0;for(d=b.length;c<d;c++)try{b[c]._DT_Input!=l.activeElement&&h(b[c]._DT_Input).val(a)}catch(o){h(b[c]._DT_Input).val(a)}}}else h.extend(g.aoPreSearchCols[b],{sSearch:a+"",bRegex:c,bSmart:d,bCaseInsensitive:f}),K(g,g.oPreviousSearch,1)}};this.fnGetData=function(a,b){var c=s(this[j.ext.iApiIndex]);if(a!==n){var d=a;if("object"===typeof a){var e=a.nodeName.toLowerCase();
106
+ "tr"===e?d=I(c,a):"td"===e&&(d=I(c,a.parentNode),b=fa(c,d,a))}return b!==n?v(c,d,b,""):c.aoData[d]!==n?c.aoData[d]._aData:null}return Z(c)};this.fnGetNodes=function(a){var b=s(this[j.ext.iApiIndex]);return a!==n?b.aoData[a]!==n?b.aoData[a].nTr:null:T(b)};this.fnGetPosition=function(a){var b=s(this[j.ext.iApiIndex]),c=a.nodeName.toUpperCase();return"TR"==c?I(b,a):"TD"==c||"TH"==c?(c=I(b,a.parentNode),a=fa(b,c,a),[c,R(b,a),a]):null};this.fnIsOpen=function(a){for(var b=s(this[j.ext.iApiIndex]),c=0;c<
107
+ b.aoOpenRows.length;c++)if(b.aoOpenRows[c].nParent==a)return!0;return!1};this.fnOpen=function(a,b,c){var d=s(this[j.ext.iApiIndex]),e=T(d);if(-1!==h.inArray(a,e)){this.fnClose(a);var e=l.createElement("tr"),f=l.createElement("td");e.appendChild(f);f.className=c;f.colSpan=t(d);"string"===typeof b?f.innerHTML=b:h(f).html(b);b=h("tr",d.nTBody);-1!=h.inArray(a,b)&&h(e).insertAfter(a);d.aoOpenRows.push({nTr:e,nParent:a});return e}};this.fnPageChange=function(a,b){var c=s(this[j.ext.iApiIndex]);qa(c,a);
108
+ y(c);(b===n||b)&&x(c)};this.fnSetColumnVis=function(a,b,c){var d=s(this[j.ext.iApiIndex]),e,f,g=d.aoColumns,h=d.aoData,o,m;if(g[a].bVisible!=b){if(b){for(e=f=0;e<a;e++)g[e].bVisible&&f++;m=f>=t(d);if(!m)for(e=a;e<g.length;e++)if(g[e].bVisible){o=e;break}e=0;for(f=h.length;e<f;e++)null!==h[e].nTr&&(m?h[e].nTr.appendChild(h[e]._anHidden[a]):h[e].nTr.insertBefore(h[e]._anHidden[a],J(d,e)[o]))}else{e=0;for(f=h.length;e<f;e++)null!==h[e].nTr&&(o=J(d,e)[a],h[e]._anHidden[a]=o,o.parentNode.removeChild(o))}g[a].bVisible=
109
+ b;W(d,d.aoHeader);d.nTFoot&&W(d,d.aoFooter);e=0;for(f=d.aoOpenRows.length;e<f;e++)d.aoOpenRows[e].nTr.colSpan=t(d);if(c===n||c)k(d),x(d);ra(d)}};this.fnSettings=function(){return s(this[j.ext.iApiIndex])};this.fnSort=function(a){var b=s(this[j.ext.iApiIndex]);b.aaSorting=a;O(b)};this.fnSortListener=function(a,b,c){ia(s(this[j.ext.iApiIndex]),a,b,c)};this.fnUpdate=function(a,b,c,d,e){var f=s(this[j.ext.iApiIndex]),b="object"===typeof b?I(f,b):b;if(h.isArray(a)&&c===n){f.aoData[b]._aData=a.slice();
110
+ for(c=0;c<f.aoColumns.length;c++)this.fnUpdate(v(f,b,c),b,c,!1,!1)}else if(h.isPlainObject(a)&&c===n){f.aoData[b]._aData=h.extend(!0,{},a);for(c=0;c<f.aoColumns.length;c++)this.fnUpdate(v(f,b,c),b,c,!1,!1)}else{F(f,b,c,a);var a=v(f,b,c,"display"),g=f.aoColumns[c];null!==g.fnRender&&(a=S(f,b,c),g.bUseRendered&&F(f,b,c,a));null!==f.aoData[b].nTr&&(J(f,b)[c].innerHTML=a)}c=h.inArray(b,f.aiDisplay);f.asDataSearch[c]=na(f,Y(f,b,"filter",r(f,"bSearchable")));(e===n||e)&&k(f);(d===n||d)&&aa(f);return 0};
111
+ this.fnVersionCheck=j.ext.fnVersionCheck;this.oApi={_fnExternApiFunc:Va,_fnInitialise:ba,_fnInitComplete:$,_fnLanguageCompat:pa,_fnAddColumn:o,_fnColumnOptions:m,_fnAddData:H,_fnCreateTr:ea,_fnGatherData:ua,_fnBuildHead:va,_fnDrawHead:W,_fnDraw:x,_fnReDraw:aa,_fnAjaxUpdate:wa,_fnAjaxParameters:Ea,_fnAjaxUpdateDraw:Fa,_fnServerParams:ka,_fnAddOptionsHtml:xa,_fnFeatureHtmlTable:Ba,_fnScrollDraw:La,_fnAdjustColumnSizing:k,_fnFeatureHtmlFilter:za,_fnFilterComplete:K,_fnFilterCustom:Ia,_fnFilterColumn:Ha,
112
+ _fnFilter:Ga,_fnBuildSearchArray:la,_fnBuildSearchRow:na,_fnFilterCreateSearch:ma,_fnDataToSearch:Ja,_fnSort:O,_fnSortAttachListener:ia,_fnSortingClasses:P,_fnFeatureHtmlPaginate:Da,_fnPageChange:qa,_fnFeatureHtmlInfo:Ca,_fnUpdateInfo:Ka,_fnFeatureHtmlLength:ya,_fnFeatureHtmlProcessing:Aa,_fnProcessingDisplay:E,_fnVisibleToColumnIndex:G,_fnColumnIndexToVisible:R,_fnNodeToDataIndex:I,_fnVisbleColumns:t,_fnCalculateEnd:y,_fnConvertToWidth:Ma,_fnCalculateColumnWidths:da,_fnScrollingWidthAdjust:Oa,_fnGetWidestNode:Na,
113
+ _fnGetMaxLenString:Pa,_fnStringToCss:q,_fnDetectType:B,_fnSettingsFromNode:s,_fnGetDataMaster:Z,_fnGetTrNodes:T,_fnGetTdNodes:J,_fnEscapeRegex:oa,_fnDeleteIndex:ha,_fnReOrderIndex:u,_fnColumnOrdering:M,_fnLog:D,_fnClearTable:ga,_fnSaveState:ra,_fnLoadState:Sa,_fnCreateCookie:function(a,b,c,d,e){var f=new Date;f.setTime(f.getTime()+1E3*c);var c=X.location.pathname.split("/"),a=a+"_"+c.pop().replace(/[\/:]/g,"").toLowerCase(),g;null!==e?(g="function"===typeof h.parseJSON?h.parseJSON(b):eval("("+b+")"),
114
+ b=e(a,g,f.toGMTString(),c.join("/")+"/")):b=a+"="+encodeURIComponent(b)+"; expires="+f.toGMTString()+"; path="+c.join("/")+"/";a=l.cookie.split(";");e=b.split(";")[0].length;f=[];if(4096<e+l.cookie.length+10){for(var j=0,o=a.length;j<o;j++)if(-1!=a[j].indexOf(d)){var k=a[j].split("=");try{(g=eval("("+decodeURIComponent(k[1])+")"))&&g.iCreate&&f.push({name:k[0],time:g.iCreate})}catch(m){}}for(f.sort(function(a,b){return b.time-a.time});4096<e+l.cookie.length+10;){if(0===f.length)return;d=f.pop();l.cookie=
115
+ d.name+"=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path="+c.join("/")+"/"}}l.cookie=b},_fnReadCookie:function(a){for(var b=X.location.pathname.split("/"),a=a+"_"+b[b.length-1].replace(/[\/:]/g,"").toLowerCase()+"=",b=l.cookie.split(";"),c=0;c<b.length;c++){for(var d=b[c];" "==d.charAt(0);)d=d.substring(1,d.length);if(0===d.indexOf(a))return decodeURIComponent(d.substring(a.length,d.length))}return null},_fnDetectHeader:V,_fnGetUniqueThs:N,_fnScrollBarWidth:Qa,_fnApplyToChildren:C,_fnMap:p,_fnGetRowData:Y,
116
+ _fnGetCellData:v,_fnSetCellData:F,_fnGetObjectDataFn:Q,_fnSetObjectDataFn:L,_fnApplyColumnDefs:ta,_fnBindAction:Ra,_fnExtend:Ta,_fnCallbackReg:z,_fnCallbackFire:A,_fnJsonString:Wa,_fnRender:S,_fnNodeToColumnIndex:fa,_fnInfoMacros:ja,_fnBrowserDetect:Ua,_fnGetColumns:r};h.extend(j.ext.oApi,this.oApi);for(var sa in j.ext.oApi)sa&&(this[sa]=Va(sa));var ca=this;this.each(function(){var a=0,b,c,d;c=this.getAttribute("id");var i=!1,f=!1;if("table"!=this.nodeName.toLowerCase())D(null,0,"Attempted to initialise DataTables on a node which is not a table: "+
117
+ this.nodeName);else{a=0;for(b=j.settings.length;a<b;a++){if(j.settings[a].nTable==this){if(e===n||e.bRetrieve)return j.settings[a].oInstance;if(e.bDestroy){j.settings[a].oInstance.fnDestroy();break}else{D(j.settings[a],0,"Cannot reinitialise DataTable.\n\nTo retrieve the DataTables object for this table, pass no arguments or see the docs for bRetrieve and bDestroy");return}}if(j.settings[a].sTableId==this.id){j.settings.splice(a,1);break}}if(null===c||""===c)this.id=c="DataTables_Table_"+j.ext._oExternConfig.iNextUnique++;
118
+ var g=h.extend(!0,{},j.models.oSettings,{nTable:this,oApi:ca.oApi,oInit:e,sDestroyWidth:h(this).width(),sInstance:c,sTableId:c});j.settings.push(g);g.oInstance=1===ca.length?ca:h(this).dataTable();e||(e={});e.oLanguage&&pa(e.oLanguage);e=Ta(h.extend(!0,{},j.defaults),e);p(g.oFeatures,e,"bPaginate");p(g.oFeatures,e,"bLengthChange");p(g.oFeatures,e,"bFilter");p(g.oFeatures,e,"bSort");p(g.oFeatures,e,"bInfo");p(g.oFeatures,e,"bProcessing");p(g.oFeatures,e,"bAutoWidth");p(g.oFeatures,e,"bSortClasses");
119
+ p(g.oFeatures,e,"bServerSide");p(g.oFeatures,e,"bDeferRender");p(g.oScroll,e,"sScrollX","sX");p(g.oScroll,e,"sScrollXInner","sXInner");p(g.oScroll,e,"sScrollY","sY");p(g.oScroll,e,"bScrollCollapse","bCollapse");p(g.oScroll,e,"bScrollInfinite","bInfinite");p(g.oScroll,e,"iScrollLoadGap","iLoadGap");p(g.oScroll,e,"bScrollAutoCss","bAutoCss");p(g,e,"asStripeClasses");p(g,e,"asStripClasses","asStripeClasses");p(g,e,"fnServerData");p(g,e,"fnFormatNumber");p(g,e,"sServerMethod");p(g,e,"aaSorting");p(g,
120
+ e,"aaSortingFixed");p(g,e,"aLengthMenu");p(g,e,"sPaginationType");p(g,e,"sAjaxSource");p(g,e,"sAjaxDataProp");p(g,e,"iCookieDuration");p(g,e,"sCookiePrefix");p(g,e,"sDom");p(g,e,"bSortCellsTop");p(g,e,"iTabIndex");p(g,e,"oSearch","oPreviousSearch");p(g,e,"aoSearchCols","aoPreSearchCols");p(g,e,"iDisplayLength","_iDisplayLength");p(g,e,"bJQueryUI","bJUI");p(g,e,"fnCookieCallback");p(g,e,"fnStateLoad");p(g,e,"fnStateSave");p(g.oLanguage,e,"fnInfoCallback");z(g,"aoDrawCallback",e.fnDrawCallback,"user");
121
+ z(g,"aoServerParams",e.fnServerParams,"user");z(g,"aoStateSaveParams",e.fnStateSaveParams,"user");z(g,"aoStateLoadParams",e.fnStateLoadParams,"user");z(g,"aoStateLoaded",e.fnStateLoaded,"user");z(g,"aoRowCallback",e.fnRowCallback,"user");z(g,"aoRowCreatedCallback",e.fnCreatedRow,"user");z(g,"aoHeaderCallback",e.fnHeaderCallback,"user");z(g,"aoFooterCallback",e.fnFooterCallback,"user");z(g,"aoInitComplete",e.fnInitComplete,"user");z(g,"aoPreDrawCallback",e.fnPreDrawCallback,"user");g.oFeatures.bServerSide&&
122
+ g.oFeatures.bSort&&g.oFeatures.bSortClasses?z(g,"aoDrawCallback",P,"server_side_sort_classes"):g.oFeatures.bDeferRender&&z(g,"aoDrawCallback",P,"defer_sort_classes");e.bJQueryUI?(h.extend(g.oClasses,j.ext.oJUIClasses),e.sDom===j.defaults.sDom&&"lfrtip"===j.defaults.sDom&&(g.sDom='<"H"lfr>t<"F"ip>')):h.extend(g.oClasses,j.ext.oStdClasses);h(this).addClass(g.oClasses.sTable);if(""!==g.oScroll.sX||""!==g.oScroll.sY)g.oScroll.iBarWidth=Qa();g.iInitDisplayStart===n&&(g.iInitDisplayStart=e.iDisplayStart,
123
+ g._iDisplayStart=e.iDisplayStart);e.bStateSave&&(g.oFeatures.bStateSave=!0,Sa(g,e),z(g,"aoDrawCallback",ra,"state_save"));null!==e.iDeferLoading&&(g.bDeferLoading=!0,a=h.isArray(e.iDeferLoading),g._iRecordsDisplay=a?e.iDeferLoading[0]:e.iDeferLoading,g._iRecordsTotal=a?e.iDeferLoading[1]:e.iDeferLoading);null!==e.aaData&&(f=!0);""!==e.oLanguage.sUrl?(g.oLanguage.sUrl=e.oLanguage.sUrl,h.getJSON(g.oLanguage.sUrl,null,function(a){pa(a);h.extend(true,g.oLanguage,e.oLanguage,a);ba(g)}),i=!0):h.extend(!0,
124
+ g.oLanguage,e.oLanguage);null===e.asStripeClasses&&(g.asStripeClasses=[g.oClasses.sStripeOdd,g.oClasses.sStripeEven]);b=g.asStripeClasses.length;g.asDestroyStripes=[];if(b){c=!1;d=h(this).children("tbody").children("tr:lt("+b+")");for(a=0;a<b;a++)d.hasClass(g.asStripeClasses[a])&&(c=!0,g.asDestroyStripes.push(g.asStripeClasses[a]));c&&d.removeClass(g.asStripeClasses.join(" "))}c=[];a=this.getElementsByTagName("thead");0!==a.length&&(V(g.aoHeader,a[0]),c=N(g));if(null===e.aoColumns){d=[];a=0;for(b=
125
+ c.length;a<b;a++)d.push(null)}else d=e.aoColumns;a=0;for(b=d.length;a<b;a++)e.saved_aoColumns!==n&&e.saved_aoColumns.length==b&&(null===d[a]&&(d[a]={}),d[a].bVisible=e.saved_aoColumns[a].bVisible),o(g,c?c[a]:null);ta(g,e.aoColumnDefs,d,function(a,b){m(g,a,b)});a=0;for(b=g.aaSorting.length;a<b;a++){g.aaSorting[a][0]>=g.aoColumns.length&&(g.aaSorting[a][0]=0);var k=g.aoColumns[g.aaSorting[a][0]];g.aaSorting[a][2]===n&&(g.aaSorting[a][2]=0);e.aaSorting===n&&g.saved_aaSorting===n&&(g.aaSorting[a][1]=
126
+ k.asSorting[0]);c=0;for(d=k.asSorting.length;c<d;c++)if(g.aaSorting[a][1]==k.asSorting[c]){g.aaSorting[a][2]=c;break}}P(g);Ua(g);a=h(this).children("caption").each(function(){this._captionSide=h(this).css("caption-side")});b=h(this).children("thead");0===b.length&&(b=[l.createElement("thead")],this.appendChild(b[0]));g.nTHead=b[0];b=h(this).children("tbody");0===b.length&&(b=[l.createElement("tbody")],this.appendChild(b[0]));g.nTBody=b[0];g.nTBody.setAttribute("role","alert");g.nTBody.setAttribute("aria-live",
127
+ "polite");g.nTBody.setAttribute("aria-relevant","all");b=h(this).children("tfoot");if(0===b.length&&0<a.length&&(""!==g.oScroll.sX||""!==g.oScroll.sY))b=[l.createElement("tfoot")],this.appendChild(b[0]);0<b.length&&(g.nTFoot=b[0],V(g.aoFooter,g.nTFoot));if(f)for(a=0;a<e.aaData.length;a++)H(g,e.aaData[a]);else ua(g);g.aiDisplay=g.aiDisplayMaster.slice();g.bInitialised=!0;!1===i&&ba(g)}});ca=null;return this};j.fnVersionCheck=function(e){for(var h=function(e,h){for(;e.length<h;)e+="0";return e},m=j.ext.sVersion.split("."),
128
+ e=e.split("."),k="",n="",l=0,t=e.length;l<t;l++)k+=h(m[l],3),n+=h(e[l],3);return parseInt(k,10)>=parseInt(n,10)};j.fnIsDataTable=function(e){for(var h=j.settings,m=0;m<h.length;m++)if(h[m].nTable===e||h[m].nScrollHead===e||h[m].nScrollFoot===e)return!0;return!1};j.fnTables=function(e){var o=[];jQuery.each(j.settings,function(j,k){(!e||!0===e&&h(k.nTable).is(":visible"))&&o.push(k.nTable)});return o};j.version="1.9.4";j.settings=[];j.models={};j.models.ext={afnFiltering:[],afnSortData:[],aoFeatures:[],
129
+ aTypes:[],fnVersionCheck:j.fnVersionCheck,iApiIndex:0,ofnSearch:{},oApi:{},oStdClasses:{},oJUIClasses:{},oPagination:{},oSort:{},sVersion:j.version,sErrMode:"alert",_oExternConfig:{iNextUnique:0}};j.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0};j.models.oRow={nTr:null,_aData:[],_aSortData:[],_anHidden:[],_sRowStripe:""};j.models.oColumn={aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bUseRendered:null,bVisible:null,_bAutoType:!0,fnCreatedCell:null,fnGetData:null,
130
+ fnRender:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,sClass:null,sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null};j.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bJQueryUI:!1,bLengthChange:!0,
131
+ bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollAutoCss:!0,bScrollCollapse:!1,bScrollInfinite:!1,bServerSide:!1,bSort:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCookieCallback:null,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(e){if(1E3>e)return e;for(var h=e+"",e=h.split(""),j="",h=h.length,k=0;k<h;k++)0===k%3&&0!==k&&(j=this.oLanguage.sInfoThousands+j),j=e[h-k-1]+j;return j},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,
132
+ fnRowCallback:null,fnServerData:function(e,j,m,k){k.jqXHR=h.ajax({url:e,data:j,success:function(e){e.sError&&k.oApi._fnLog(k,0,e.sError);h(k.oInstance).trigger("xhr",[k,e]);m(e)},dataType:"json",cache:!1,type:k.sServerMethod,error:function(e,h){"parsererror"==h&&k.oApi._fnLog(k,0,"DataTables warning: JSON data from server could not be parsed. This is caused by a JSON formatting error.")}})},fnServerParams:null,fnStateLoad:function(e){var e=this.oApi._fnReadCookie(e.sCookiePrefix+e.sInstance),j;try{j=
133
+ "function"===typeof h.parseJSON?h.parseJSON(e):eval("("+e+")")}catch(m){j=null}return j},fnStateLoadParams:null,fnStateLoaded:null,fnStateSave:function(e,h){this.oApi._fnCreateCookie(e.sCookiePrefix+e.sInstance,this.oApi._fnJsonString(h),e.iCookieDuration,e.sCookiePrefix,e.fnCookieCallback)},fnStateSaveParams:null,iCookieDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iScrollLoadGap:100,iTabIndex:0,oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},
134
+ oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sInfoThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sUrl:"",sZeroRecords:"No matching records found"},oSearch:h.extend({},j.models.oSearch),sAjaxDataProp:"aaData",
135
+ sAjaxSource:null,sCookiePrefix:"SpryMedia_DataTables_",sDom:"lfrtip",sPaginationType:"two_button",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET"};j.defaults.columns={aDataSort:null,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bUseRendered:!0,bVisible:!0,fnCreatedCell:null,fnRender:null,iDataSort:-1,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};j.models.oSettings={oFeatures:{bAutoWidth:null,
136
+ bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortClasses:null,bStateSave:null},oScroll:{bAutoCss:null,bCollapse:null,bInfinite:null,iBarWidth:0,iLoadGap:null,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1},aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aoColumns:[],aoHeader:[],aoFooter:[],asDataSearch:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:null,
137
+ asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,sPaginationType:"two_button",iCookieDuration:0,sCookiePrefix:"",fnCookieCallback:null,aoStateSave:[],aoStateLoad:[],
138
+ oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iDisplayEnd:10,_iRecordsTotal:0,_iRecordsDisplay:0,bJUI:null,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return this.oFeatures.bServerSide?parseInt(this._iRecordsTotal,10):this.aiDisplayMaster.length},
139
+ fnRecordsDisplay:function(){return this.oFeatures.bServerSide?parseInt(this._iRecordsDisplay,10):this.aiDisplay.length},fnDisplayEnd:function(){return this.oFeatures.bServerSide?!1===this.oFeatures.bPaginate||-1==this._iDisplayLength?this._iDisplayStart+this.aiDisplay.length:Math.min(this._iDisplayStart+this._iDisplayLength,this._iRecordsDisplay):this._iDisplayEnd},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null};j.ext=h.extend(!0,{},j.models.ext);h.extend(j.ext.oStdClasses,
140
+ {sTable:"dataTable",sPagePrevEnabled:"paginate_enabled_previous",sPagePrevDisabled:"paginate_disabled_previous",sPageNextEnabled:"paginate_enabled_next",sPageNextDisabled:"paginate_disabled_next",sPageJUINext:"",sPageJUIPrev:"",sPageButton:"paginate_button",sPageButtonActive:"paginate_active",sPageButtonStaticDisabled:"paginate_button paginate_button_disabled",sPageFirst:"first",sPagePrevious:"previous",sPageNext:"next",sPageLast:"last",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",
141
+ sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",
142
+ sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sFooterTH:"",sJUIHeader:"",sJUIFooter:""});h.extend(j.ext.oJUIClasses,j.ext.oStdClasses,{sPagePrevEnabled:"fg-button ui-button ui-state-default ui-corner-left",sPagePrevDisabled:"fg-button ui-button ui-state-default ui-corner-left ui-state-disabled",sPageNextEnabled:"fg-button ui-button ui-state-default ui-corner-right",
143
+ sPageNextDisabled:"fg-button ui-button ui-state-default ui-corner-right ui-state-disabled",sPageJUINext:"ui-icon ui-icon-circle-arrow-e",sPageJUIPrev:"ui-icon ui-icon-circle-arrow-w",sPageButton:"fg-button ui-button ui-state-default",sPageButtonActive:"fg-button ui-button ui-state-default ui-state-disabled",sPageButtonStaticDisabled:"fg-button ui-button ui-state-default ui-state-disabled",sPageFirst:"first ui-corner-tl ui-corner-bl",sPageLast:"last ui-corner-tr ui-corner-br",sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_",
144
+ sSortAsc:"ui-state-default",sSortDesc:"ui-state-default",sSortable:"ui-state-default",sSortableAsc:"ui-state-default",sSortableDesc:"ui-state-default",sSortableNone:"ui-state-default",sSortJUIAsc:"css_right ui-icon ui-icon-triangle-1-n",sSortJUIDesc:"css_right ui-icon ui-icon-triangle-1-s",sSortJUI:"css_right ui-icon ui-icon-carat-2-n-s",sSortJUIAscAllowed:"css_right ui-icon ui-icon-carat-1-n",sSortJUIDescAllowed:"css_right ui-icon ui-icon-carat-1-s",sSortJUIWrapper:"DataTables_sort_wrapper",sSortIcon:"DataTables_sort_icon",
145
+ sScrollHead:"dataTables_scrollHead ui-state-default",sScrollFoot:"dataTables_scrollFoot ui-state-default",sFooterTH:"ui-state-default",sJUIHeader:"fg-toolbar ui-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix",sJUIFooter:"fg-toolbar ui-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix"});h.extend(j.ext.oPagination,{two_button:{fnInit:function(e,j,m){var k=e.oLanguage.oPaginate,n=function(h){e.oApi._fnPageChange(e,h.data.action)&&m(e)},k=!e.bJUI?'<a class="'+
146
+ e.oClasses.sPagePrevDisabled+'" tabindex="'+e.iTabIndex+'" role="button">'+k.sPrevious+'</a><a class="'+e.oClasses.sPageNextDisabled+'" tabindex="'+e.iTabIndex+'" role="button">'+k.sNext+"</a>":'<a class="'+e.oClasses.sPagePrevDisabled+'" tabindex="'+e.iTabIndex+'" role="button"><span class="'+e.oClasses.sPageJUIPrev+'"></span></a><a class="'+e.oClasses.sPageNextDisabled+'" tabindex="'+e.iTabIndex+'" role="button"><span class="'+e.oClasses.sPageJUINext+'"></span></a>';h(j).append(k);var l=h("a",j),
147
+ k=l[0],l=l[1];e.oApi._fnBindAction(k,{action:"previous"},n);e.oApi._fnBindAction(l,{action:"next"},n);e.aanFeatures.p||(j.id=e.sTableId+"_paginate",k.id=e.sTableId+"_previous",l.id=e.sTableId+"_next",k.setAttribute("aria-controls",e.sTableId),l.setAttribute("aria-controls",e.sTableId))},fnUpdate:function(e){if(e.aanFeatures.p)for(var h=e.oClasses,j=e.aanFeatures.p,k,l=0,n=j.length;l<n;l++)if(k=j[l].firstChild)k.className=0===e._iDisplayStart?h.sPagePrevDisabled:h.sPagePrevEnabled,k=k.nextSibling,
148
+ k.className=e.fnDisplayEnd()==e.fnRecordsDisplay()?h.sPageNextDisabled:h.sPageNextEnabled}},iFullNumbersShowPages:5,full_numbers:{fnInit:function(e,j,m){var k=e.oLanguage.oPaginate,l=e.oClasses,n=function(h){e.oApi._fnPageChange(e,h.data.action)&&m(e)};h(j).append('<a tabindex="'+e.iTabIndex+'" class="'+l.sPageButton+" "+l.sPageFirst+'">'+k.sFirst+'</a><a tabindex="'+e.iTabIndex+'" class="'+l.sPageButton+" "+l.sPagePrevious+'">'+k.sPrevious+'</a><span></span><a tabindex="'+e.iTabIndex+'" class="'+
149
+ l.sPageButton+" "+l.sPageNext+'">'+k.sNext+'</a><a tabindex="'+e.iTabIndex+'" class="'+l.sPageButton+" "+l.sPageLast+'">'+k.sLast+"</a>");var t=h("a",j),k=t[0],l=t[1],r=t[2],t=t[3];e.oApi._fnBindAction(k,{action:"first"},n);e.oApi._fnBindAction(l,{action:"previous"},n);e.oApi._fnBindAction(r,{action:"next"},n);e.oApi._fnBindAction(t,{action:"last"},n);e.aanFeatures.p||(j.id=e.sTableId+"_paginate",k.id=e.sTableId+"_first",l.id=e.sTableId+"_previous",r.id=e.sTableId+"_next",t.id=e.sTableId+"_last")},
150
+ fnUpdate:function(e,o){if(e.aanFeatures.p){var m=j.ext.oPagination.iFullNumbersShowPages,k=Math.floor(m/2),l=Math.ceil(e.fnRecordsDisplay()/e._iDisplayLength),n=Math.ceil(e._iDisplayStart/e._iDisplayLength)+1,t="",r,B=e.oClasses,u,M=e.aanFeatures.p,L=function(h){e.oApi._fnBindAction(this,{page:h+r-1},function(h){e.oApi._fnPageChange(e,h.data.page);o(e);h.preventDefault()})};-1===e._iDisplayLength?n=k=r=1:l<m?(r=1,k=l):n<=k?(r=1,k=m):n>=l-k?(r=l-m+1,k=l):(r=n-Math.ceil(m/2)+1,k=r+m-1);for(m=r;m<=k;m++)t+=
151
+ n!==m?'<a tabindex="'+e.iTabIndex+'" class="'+B.sPageButton+'">'+e.fnFormatNumber(m)+"</a>":'<a tabindex="'+e.iTabIndex+'" class="'+B.sPageButtonActive+'">'+e.fnFormatNumber(m)+"</a>";m=0;for(k=M.length;m<k;m++)u=M[m],u.hasChildNodes()&&(h("span:eq(0)",u).html(t).children("a").each(L),u=u.getElementsByTagName("a"),u=[u[0],u[1],u[u.length-2],u[u.length-1]],h(u).removeClass(B.sPageButton+" "+B.sPageButtonActive+" "+B.sPageButtonStaticDisabled),h([u[0],u[1]]).addClass(1==n?B.sPageButtonStaticDisabled:
152
+ B.sPageButton),h([u[2],u[3]]).addClass(0===l||n===l||-1===e._iDisplayLength?B.sPageButtonStaticDisabled:B.sPageButton))}}}});h.extend(j.ext.oSort,{"string-pre":function(e){"string"!=typeof e&&(e=null!==e&&e.toString?e.toString():"");return e.toLowerCase()},"string-asc":function(e,h){return e<h?-1:e>h?1:0},"string-desc":function(e,h){return e<h?1:e>h?-1:0},"html-pre":function(e){return e.replace(/<.*?>/g,"").toLowerCase()},"html-asc":function(e,h){return e<h?-1:e>h?1:0},"html-desc":function(e,h){return e<
153
+ h?1:e>h?-1:0},"date-pre":function(e){e=Date.parse(e);if(isNaN(e)||""===e)e=Date.parse("01/01/1970 00:00:00");return e},"date-asc":function(e,h){return e-h},"date-desc":function(e,h){return h-e},"numeric-pre":function(e){return"-"==e||""===e?0:1*e},"numeric-asc":function(e,h){return e-h},"numeric-desc":function(e,h){return h-e}});h.extend(j.ext.aTypes,[function(e){if("number"===typeof e)return"numeric";if("string"!==typeof e)return null;var h,j=!1;h=e.charAt(0);if(-1=="0123456789-".indexOf(h))return null;
154
+ for(var k=1;k<e.length;k++){h=e.charAt(k);if(-1=="0123456789.".indexOf(h))return null;if("."==h){if(j)return null;j=!0}}return"numeric"},function(e){var h=Date.parse(e);return null!==h&&!isNaN(h)||"string"===typeof e&&0===e.length?"date":null},function(e){return"string"===typeof e&&-1!=e.indexOf("<")&&-1!=e.indexOf(">")?"html":null}]);h.fn.DataTable=j;h.fn.dataTable=j;h.fn.dataTableSettings=j.settings;h.fn.dataTableExt=j.ext};"function"===typeof define&&define.amd?define(["jquery"],L):jQuery&&!jQuery.fn.dataTable&&
155
+ L(jQuery)})(window,document);
assets/js/jquery-datatables/jquery.dataTables.rowGrouping.js ADDED
@@ -0,0 +1,453 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * File: jquery.dataTables.grouping.js
3
+ * Version: 1.1.6.
4
+ * Author: Jovan Popovic
5
+ *
6
+ * Copyright 2011 Jovan Popovic, all rights reserved.
7
+ *
8
+ * This source file is free software, under either the GPL v2 license or a
9
+ * BSD style license, as supplied with this software.
10
+ *
11
+ * This source file is distributed in the hope that it will be useful, but
12
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13
+ * or FITNESS FOR A PARTICULAR PURPOSE.
14
+ * Parameters:
15
+ * @iGroupingColumnIndex Integer Index of the column that will be used for grouping - default 0
16
+ * @sGroupingColumnSortDirection Enumeration Sort direction of the group
17
+ * @iGroupingOrderByColumnIndex Integer Index of the column that will be used for ordering groups
18
+ * @sGroupingClass String Class that will be associated to the group row. Default - "group"
19
+ * @bSetGroupingClassOnTR Boolean If set class will be set to the TR instead of the TD withing the grouping TR
20
+ * @bHideGroupingColumn Boolean Hide column used for grouping once results are grouped. Default - true
21
+ * @bHideGroupingOrderByColumn Boolean Hide column used for ordering groups once results are grouped. Default - true
22
+ * @sGroupBy Enumeration Type of grouping that should be applied. Values "name"(default), "letter", "year"
23
+ * @sGroupLabelPrefix String Prefix that will be added to each group cell
24
+ * @bExpandableGrouping Boolean Attach expand/collapse handlers to the grouping rows
25
+ * @bExpandSingleGroup Boolean Use accordon grouping
26
+ * @iExpandGroupOffset Integer Number of pixels to set scroll position above the currently selected group. If -1 scroll will be alligned to the table
27
+ * General settings
28
+ * @sDateFormat: "dd/MM/yyyy" String Date format used for grouping
29
+ * @sEmptyGroupLabel String Lable that will be placed as group if grouping cells are empty. Default "-"
30
+
31
+ * Parameters used in the second level grouping
32
+ * @iGroupingColumnIndex2 Integer Index of the secondary column that will be used for grouping - default 0
33
+ * @sGroupingColumnSortDirection2 Enumeration Sort direction of the secondary group
34
+ * @iGroupingOrderByColumnIndex2 Integer Index of the column that will be used for ordering secondary groups
35
+ * @sGroupingClass2 String Class that will be associated to the secondary group row. Default "subgroup"
36
+ * @bHideGroupingColumn2 Boolean Hide column used for secondary grouping once results are grouped. Default - true,
37
+ * @bHideGroupingOrderByColumn2 Boolean Hide column used for ordering secondary groups once results are grouped. Default - true,
38
+ * @sGroupBy2 Enumeration Type of grouping that should be applied to secondary column. Values "name"(default), "letter", "year",
39
+ * @sGroupLabelPrefix2 String Prefix that will be added to each secondary group cell
40
+ * @fnOnGrouped Function Function that is called when grouping is finished. Function has no parameters.
41
+ */
42
+ (function ($) {
43
+
44
+ $.fn.rowGrouping = function (options) {
45
+
46
+ function _fnOnGrouped() {
47
+
48
+ }
49
+
50
+ function _getMonthName(iMonth) {
51
+ var asMonths = ["January", "February", "March", "April", "May", "June", "Jully", "August", "September", "October", "November", "December"];
52
+ return asMonths[iMonth - 1];
53
+ }
54
+
55
+ var defaults = {
56
+
57
+ iGroupingColumnIndex: 0,
58
+ sGroupingColumnSortDirection: "",
59
+ iGroupingOrderByColumnIndex: -1,
60
+ sGroupingClass: "group",
61
+ bHideGroupingColumn: true,
62
+ bHideGroupingOrderByColumn: true,
63
+ sGroupBy: "name",
64
+ sGroupLabelPrefix: "",
65
+ bExpandableGrouping: false,
66
+ bExpandSingleGroup: false,
67
+ iExpandGroupOffset: 100,
68
+ asExpandedGroups: null,
69
+
70
+ sDateFormat: "dd/MM/yyyy",
71
+ sEmptyGroupLabel: "-",
72
+ bSetGroupingClassOnTR: false,
73
+
74
+ iGroupingColumnIndex2: -1,
75
+ sGroupingColumnSortDirection2: "",
76
+ iGroupingOrderByColumnIndex2: -1,
77
+ sGroupingClass2: "subgroup",
78
+ bHideGroupingColumn2: true,
79
+ bHideGroupingOrderByColumn2: true,
80
+ sGroupBy2: "name",
81
+ sGroupLabelPrefix2: "",
82
+ bExpandableGrouping2: false,
83
+
84
+ fnOnGrouped: _fnOnGrouped
85
+ };
86
+
87
+ return this.each(function (index, elem) {
88
+
89
+ var oTable = $(elem).dataTable();
90
+ function _fnIsGroupExpanded(sGroup) {
91
+ return ($.inArray(sGroup, asExpandedGroups) != -1);
92
+ }
93
+ function _fnGetYear(x) {
94
+ return x.substr(iYearIndex, iYearLength);
95
+ }
96
+ function _fnGetGroupByName(x) {
97
+ return x;
98
+ }
99
+
100
+ function _fnGetGroupByLetter(x) {
101
+ return x.substr(0, 1);
102
+ }
103
+
104
+ function _fnGetGroupByYear(x) {
105
+ return _fnGetYear(x);
106
+ //return Date.parseExact(x, properties.sDateFormat).getFullYear();//slooooow
107
+ }
108
+
109
+ function _fnGetGroupByYearMonth(x) {
110
+ //var date = Date.parseExact(x, "dd/MM/yyyy");
111
+ //return date.getFullYear() + " / " + date.getMonthName();
112
+ //return x.substr(iYearIndex, iYearLength) + '/' + x.substr(iMonthIndex, iMonthLength);
113
+ return x.substr(iYearIndex, iYearLength) + ' ' + _getMonthName(x.substr(iMonthIndex, iMonthLength));
114
+ }
115
+
116
+ function _fnGetCleanedGroup(sGroup) {
117
+ //return sGroup.toLowerCase().replace(" ", "-");
118
+ //return sGroup.toLowerCase().replace(/\s/g, "-"); //Fix provided by danilo.t (Issue 3)
119
+ return sGroup.toLowerCase().replace(/\W+/g, "-"); //Fix provided by bmathews (Issue 7)
120
+ }
121
+
122
+ var _fnOnGroupClick = function (e) {
123
+ ///<summary>
124
+ ///Function that is called when user click on the group cell in order to
125
+ ///expand of collapse group
126
+ ///</summary>
127
+
128
+ var sGroup = $(this).attr("rel");
129
+
130
+ var bIsExpanded = _fnIsGroupExpanded(sGroup);
131
+ if (properties.bExpandSingleGroup) {
132
+ if (!bIsExpanded) {
133
+ var sCurrentGroup = asExpandedGroups[0];
134
+ asExpandedGroups = new Array();
135
+ asExpandedGroups.push(sGroup);
136
+
137
+ $(".group-item-" + sCurrentGroup, oTable).hide();
138
+ $(".group-item-" + sGroup, oTable).show();
139
+
140
+ var oTrExpandedGroup = $(".expanded-group");
141
+ oTrExpandedGroup.removeClass("expanded-group");
142
+ oTrExpandedGroup.addClass("collapsed-group");
143
+ $(this).addClass("expanded-group");
144
+ $(this).removeClass("collapsed-group");
145
+ if (properties.iExpandGroupOffset != -1) {
146
+ var position = $("#group-id-" + oTable.attr("id") + "-" + sGroup).offset().top - properties.iExpandGroupOffset;
147
+ window.scroll(0, position);
148
+ } else {
149
+ var position = oTable.offset().top;
150
+ window.scroll(0, position);
151
+ }
152
+ }
153
+ } else {
154
+ if (bIsExpanded) {
155
+ var index = $.inArray(sGroup, asExpandedGroups);
156
+ asExpandedGroups.splice(index, 1);
157
+ $(this).removeClass("expanded-group");
158
+ $(this).addClass("collapsed-group");
159
+ $(".group-item-" + sGroup, oTable).hide();
160
+ } else {
161
+ asExpandedGroups.push(sGroup);
162
+ $(this).addClass("expanded-group");
163
+ $(this).removeClass("collapsed-group");
164
+ $(".group-item-" + sGroup, oTable).show();
165
+ }
166
+ }
167
+ e.preventDefault();
168
+
169
+ }; //end function _fnOnGroupClick
170
+
171
+ //var oTable = this;
172
+ var iYearIndex = 6;
173
+ var iYearLength = 4;
174
+ var asExpandedGroups = new Array();
175
+ var bInitialGrouping = true;
176
+
177
+ var properties = $.extend(defaults, options);
178
+
179
+ if (properties.sGrupingClass != null || properties.sGrupingClass2 != null)
180
+ alert("Since the version 1.1. sGrupingClass sGrupingClass2 are renamed to sGroupingClass and sGroupingClass2. Please correct your settings");
181
+
182
+ if (properties.iGroupingOrderByColumnIndex == -1) {
183
+ properties.bCustomColumnOrdering = false;
184
+ properties.iGroupingOrderByColumnIndex = properties.iGroupingColumnIndex;
185
+ } else {
186
+ properties.bCustomColumnOrdering = true;
187
+ }
188
+
189
+ if (properties.sGroupingColumnSortDirection == "") {
190
+ if (properties.sGroupBy == "year")
191
+ properties.sGroupingColumnSortDirection = "desc";
192
+ else
193
+ properties.sGroupingColumnSortDirection = "asc";
194
+ }
195
+
196
+
197
+ if (properties.iGroupingOrderByColumnIndex2 == -1) {
198
+ properties.bCustomColumnOrdering2 = false;
199
+ properties.iGroupingOrderByColumnIndex2 = properties.iGroupingColumnIndex2;
200
+ } else {
201
+ properties.bCustomColumnOrdering2 = true;
202
+ }
203
+
204
+ if (properties.sGroupingColumnSortDirection2 == "") {
205
+ if (properties.sGroupBy2 == "year")
206
+ properties.sGroupingColumnSortDirection2 = "desc";
207
+ else
208
+ properties.sGroupingColumnSortDirection2 = "asc";
209
+ }
210
+
211
+ if (properties.asExpandedGroups != null) {
212
+ if (properties.asExpandedGroups == "NONE") {
213
+ properties.asExpandedGroups = [];
214
+ asExpandedGroups = properties.asExpandedGroups;
215
+ bInitialGrouping = false;
216
+ } else if (properties.asExpandedGroups == "ALL") {
217
+
218
+ } else if (properties.asExpandedGroups.constructor == String) {
219
+ var currentGroup = properties.asExpandedGroups;
220
+ properties.asExpandedGroups = new Array();
221
+ properties.asExpandedGroups.push(_fnGetCleanedGroup(currentGroup));
222
+ asExpandedGroups = properties.asExpandedGroups;
223
+ bInitialGrouping = false;
224
+ } else if (properties.asExpandedGroups.constructor == Array) {
225
+ for (var i = 0; i < properties.asExpandedGroups.length; i++) {
226
+ asExpandedGroups.push(_fnGetCleanedGroup(properties.asExpandedGroups[i]));
227
+ if (properties.bExpandSingleGroup)
228
+ break;
229
+ }
230
+ bInitialGrouping = false;
231
+ }
232
+ }
233
+
234
+ iYearIndex = properties.sDateFormat.toLowerCase().indexOf('yy');
235
+ iYearLength = properties.sDateFormat.toLowerCase().lastIndexOf('y') - properties.sDateFormat.toLowerCase().indexOf('y') + 1;
236
+
237
+ iMonthIndex = properties.sDateFormat.toLowerCase().indexOf('mm');
238
+ iMonthLength = properties.sDateFormat.toLowerCase().lastIndexOf('m') - properties.sDateFormat.toLowerCase().indexOf('m') + 1;
239
+
240
+ var fnGetGroup = _fnGetGroupByName;
241
+ switch (properties.sGroupBy) {
242
+ case "letter": fnGetGroup = _fnGetGroupByLetter;
243
+ break;
244
+ case "year": fnGetGroup = _fnGetGroupByYear;
245
+ break;
246
+ case "month": fnGetGroup = _fnGetGroupByYearMonth;
247
+ break;
248
+ default: fnGetGroup = _fnGetGroupByName;
249
+ break;
250
+ }
251
+
252
+ var _fnDrawCallBackWithGrouping = function (oSettings) {
253
+
254
+ if (oTable.fnSettings().oFeatures.bServerSide)
255
+ bInitialGrouping = true;
256
+ var bUseSecondaryGrouping = false;
257
+
258
+ //-----Start grouping
259
+
260
+ if (oSettings.aiDisplay.length == 0) {
261
+ return;
262
+ }
263
+
264
+ var nTrs = $('tbody > tr', oTable).filter(function() {
265
+ return !$(this).parent().hasClass('noGroup');
266
+ });
267
+
268
+ //var iColspan = nTrs[0].getElementsByTagName('td').length;
269
+ var iColspan = $(nTrs[0]).find(' > td').length;
270
+
271
+ var sLastGroup = null;
272
+ var sLastGroup2 = null;
273
+ for (var i = 0; i < nTrs.length; i++) {
274
+
275
+
276
+ var iDisplayIndex = oSettings._iDisplayStart + i;
277
+ if (oTable.fnSettings().oFeatures.bServerSide)
278
+ iDisplayIndex = i;
279
+ var sGroupData = "";
280
+ var sGroup = null;
281
+ var sGroupData2 = "";
282
+ var sGroup2 = null;
283
+
284
+ try {
285
+ sGroupData = this.fnGetData(nTrs[i], properties.iGroupingColumnIndex);
286
+ } catch(e) { }
287
+
288
+ var sGroup = sGroupData;
289
+
290
+ if (properties.sGroupBy != "year")
291
+ sGroup = fnGetGroup(sGroupData);
292
+
293
+ $(nTrs[i]).attr("data-group", _fnGetCleanedGroup(sGroup));
294
+
295
+ if (bUseSecondaryGrouping) {
296
+ sGroupData2 = oSettings.aoData[oSettings.aiDisplay[iDisplayIndex]]._aData[properties.iGroupingColumnIndex2];
297
+ if (sGroupData2 == undefined)
298
+ sGroupData2 = oSettings.aoData[oSettings.aiDisplay[iDisplayIndex]]._aData[oSettings.aoColumns[properties.iGroupingColumnIndex2].mDataProp];
299
+ if (properties.sGroupBy2 != "year")
300
+ sGroup2 = fnGetGroup(sGroupData2);
301
+ $(nTrs[i]).attr("data-group", _fnGetCleanedGroup(sGroup)+'_'+_fnGetCleanedGroup(sGroup2));
302
+ }
303
+
304
+ if (sLastGroup == null || _fnGetCleanedGroup(sGroup) != _fnGetCleanedGroup(sLastGroup)) {
305
+ var sGroupCleaned = _fnGetCleanedGroup(sGroup);
306
+
307
+ if (properties.bExpandableGrouping && bInitialGrouping) {
308
+ if (properties.bExpandSingleGroup) {
309
+ if (asExpandedGroups.length == 0)
310
+ asExpandedGroups.push(sGroupCleaned);
311
+ } else {
312
+ asExpandedGroups.push(sGroupCleaned);
313
+ }
314
+ }
315
+
316
+
317
+ var nGroup = document.createElement('tr');
318
+ var nCell = document.createElement('td');
319
+
320
+ nGroup.id = "group-id-" + oTable.attr("id") + "-" + sGroupCleaned;
321
+
322
+ if (properties.bSetGroupingClassOnTR) {
323
+ nGroup.className = properties.sGroupingClass + " " + sGroupCleaned;
324
+ } else {
325
+ nCell.className = properties.sGroupingClass + " " + sGroupCleaned;
326
+ }
327
+
328
+ nCell.colSpan = iColspan;
329
+ nCell.innerHTML = properties.sGroupLabelPrefix + (sGroup == "" ? properties.sEmptyGroupLabel : sGroup);
330
+ if (properties.bExpandableGrouping) {
331
+
332
+
333
+ if (_fnIsGroupExpanded(sGroupCleaned)) {
334
+ nCell.className += " expanded-group";
335
+ } else {
336
+ nCell.className += " collapsed-group";
337
+ }
338
+ nCell.className += " group-item-expander";
339
+ //nCell.rel = sGroupCleaned;
340
+ $(nCell).attr('rel', sGroupCleaned); //Fix provided by mssskhalsa (Issue 5)
341
+
342
+ ///*************
343
+ $(nCell).click(_fnOnGroupClick);
344
+ ///***********
345
+ }
346
+
347
+ nGroup.appendChild(nCell);
348
+ nTrs[i].parentNode.insertBefore(nGroup, nTrs[i]);
349
+ sLastGroup = sGroup;
350
+ sLastGroup2 = null; //to reset second level grouping
351
+ } // end if (sLastGroup == null || sGroup != sLastGroup)
352
+
353
+ if (properties.bExpandableGrouping) {
354
+ $(nTrs[i]).addClass("group-item-" + sGroupCleaned);
355
+ if (/*properties.bExpandSingleGroup &&*/!_fnIsGroupExpanded(sGroupCleaned)) {
356
+ $(nTrs[i]).hide();
357
+ }
358
+ }
359
+
360
+ if (bUseSecondaryGrouping) {
361
+
362
+ if (sLastGroup2 == null || _fnGetCleanedGroup(sGroup2) != _fnGetCleanedGroup(sLastGroup2)) {
363
+ var nGroup2 = document.createElement('tr');
364
+ var nCell2 = document.createElement('td');
365
+
366
+ if (properties.bSetGroupingClassOnTR) {
367
+ nGroup2.className = properties.sGroupingClass2 + " " + sGroup2.toLowerCase().replace(" ", "-");
368
+ } else {
369
+ nCell2.className = properties.sGroupingClass2 + " " + sGroup2.toLowerCase().replace(" ", "-");
370
+ }
371
+
372
+ nCell2.colSpan = iColspan;
373
+ nCell2.innerHTML = properties.sGroupLabelPrefix2 + (sGroup2 == "" ? properties.sEmptyGroupLabel : sGroup2);
374
+
375
+ nGroup2.appendChild(nCell2);
376
+ nTrs[i].parentNode.insertBefore(nGroup2, nTrs[i]);
377
+ sLastGroup2 = sGroup2;
378
+ }
379
+ } //end if (bUseSecondaryGrouping)
380
+ } // end for (var i = 0; i < nTrs.length; i++)
381
+
382
+ //-----End grouping
383
+ properties.fnOnGrouped();
384
+
385
+ bInitialGrouping = false;
386
+ };
387
+
388
+ oTable.fnSetColumnVis(properties.iGroupingColumnIndex, !properties.bHideGroupingColumn);
389
+ if (properties.bCustomColumnOrdering) {
390
+ oTable.fnSetColumnVis(properties.iGroupingOrderByColumnIndex, !properties.bHideGroupingOrderByColumn);
391
+ }
392
+ if (properties.iGroupingColumnIndex2 != -1) {
393
+ oTable.fnSetColumnVis(properties.iGroupingColumnIndex2, !properties.bHideGroupingColumn2);
394
+ }
395
+ if (properties.bCustomColumnOrdering2) {
396
+ oTable.fnSetColumnVis(properties.iGroupingOrderByColumnIndex2, !properties.bHideGroupingOrderByColumn2);
397
+ }
398
+ oTable.fnSettings().aoDrawCallback.push({
399
+ "fn": _fnDrawCallBackWithGrouping,
400
+ "sName": "fnRowGrouping"
401
+ });
402
+
403
+ var aaSortingFixed = new Array();
404
+ aaSortingFixed.push([properties.iGroupingOrderByColumnIndex, properties.sGroupingColumnSortDirection]);
405
+ if (properties.iGroupingColumnIndex2 != -1) {
406
+ aaSortingFixed.push([properties.iGroupingOrderByColumnIndex2, properties.sGroupingColumnSortDirection2]);
407
+ }
408
+
409
+ oTable.fnSettings().aaSortingFixed = aaSortingFixed;
410
+ //Old way
411
+ //oTable.fnSettings().aaSortingFixed = [[properties.iGroupingOrderByColumnIndex, properties.sGroupingColumnSortDirection]];
412
+
413
+ switch (properties.sGroupBy) {
414
+ case "name":
415
+ break;
416
+ case "letter":
417
+ /* Create an array with the values of all the input boxes in a column */
418
+ oTable.fnSettings().aoColumns[properties.iGroupingOrderByColumnIndex].sSortDataType = "rg-letter";
419
+ $.fn.dataTableExt.afnSortData['rg-letter'] = function (oSettings, iColumn) {
420
+ var aData = [];
421
+ $('td:eq(' + iColumn + ')', oSettings.oApi._fnGetTrNodes(oSettings)).each(function () {
422
+ aData.push(_fnGetGroupByLetter(this.innerHTML));
423
+ });
424
+ return aData;
425
+ }
426
+ break;
427
+
428
+ case "year":
429
+ /* Create an array with the values of all the input boxes in a column */
430
+ oTable.fnSettings().aoColumns[properties.iGroupingOrderByColumnIndex].sSortDataType = "rg-date";
431
+ $.fn.dataTableExt.afnSortData['rg-date'] = function (oSettings, iColumn) {
432
+ var aData = [];
433
+ $('td:eq(' + iColumn + ')', oSettings.oApi._fnGetTrNodes(oSettings)).each(function () {
434
+ aData.push(_fnGetYear(this.innerHTML));
435
+ });
436
+ return aData;
437
+ }
438
+ break;
439
+
440
+ default:
441
+ break;
442
+
443
+ }
444
+
445
+ if (properties.sGroupBy == "name" || properties.sGroupBy == "letter") {
446
+ } else {
447
+ //oTable.fnSettings().aaSortingFixed = [[properties.iGroupingOrderByColumnIndex, properties.sGroupingColumnSortDirection]];
448
+ }
449
+
450
+ oTable.fnDraw();
451
+ });
452
+ };
453
+ })(jQuery);
assets/js/jquery-datatables/jquery.dataTables.rowGrouping.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(r){r.fn.rowGrouping=function(e){function n(){}function o(r){var e=["January","February","March","April","May","June","Jully","August","September","October","November","December"];return e[r-1]}var a={iGroupingColumnIndex:0,sGroupingColumnSortDirection:"",iGroupingOrderByColumnIndex:-1,sGroupingClass:"group",bHideGroupingColumn:!0,bHideGroupingOrderByColumn:!0,sGroupBy:"name",sGroupLabelPrefix:"",bExpandableGrouping:!1,bExpandSingleGroup:!1,iExpandGroupOffset:100,asExpandedGroups:null,sDateFormat:"dd/MM/yyyy",sEmptyGroupLabel:"-",bSetGroupingClassOnTR:!1,iGroupingColumnIndex2:-1,sGroupingColumnSortDirection2:"",iGroupingOrderByColumnIndex2:-1,sGroupingClass2:"subgroup",bHideGroupingColumn2:!0,bHideGroupingOrderByColumn2:!0,sGroupBy2:"name",sGroupLabelPrefix2:"",bExpandableGrouping2:!1,fnOnGrouped:n};return this.each(function(n,u){function s(e){return-1!=r.inArray(e,f)}function t(r){return r.substr(C,c)}function i(r){return r}function p(r){return r.substr(0,1)}function l(r){return t(r)}function d(r){return r.substr(C,c)+" "+o(r.substr(iMonthIndex,iMonthLength))}function g(r){return r.toLowerCase().replace(/\W+/g,"-")}var m=r(u).dataTable(),G=function(e){var n=r(this).attr("rel"),o=s(n);if(y.bExpandSingleGroup){if(!o){var a=f[0];f=new Array,f.push(n),r(".group-item-"+a,m).hide(),r(".group-item-"+n,m).show();var u=r(".expanded-group");if(u.removeClass("expanded-group"),u.addClass("collapsed-group"),r(this).addClass("expanded-group"),r(this).removeClass("collapsed-group"),-1!=y.iExpandGroupOffset){var t=r("#group-id-"+m.attr("id")+"-"+n).offset().top-y.iExpandGroupOffset;window.scroll(0,t)}else{var t=m.offset().top;window.scroll(0,t)}}}else if(o){var i=r.inArray(n,f);f.splice(i,1),r(this).removeClass("expanded-group"),r(this).addClass("collapsed-group"),r(".group-item-"+n,m).hide()}else f.push(n),r(this).addClass("expanded-group"),r(this).removeClass("collapsed-group"),r(".group-item-"+n,m).show();e.preventDefault()},C=6,c=4,f=new Array,x=!0,y=r.extend(a,e);if((null!=y.sGrupingClass||null!=y.sGrupingClass2)&&alert("Since the version 1.1. sGrupingClass sGrupingClass2 are renamed to sGroupingClass and sGroupingClass2. Please correct your settings"),-1==y.iGroupingOrderByColumnIndex?(y.bCustomColumnOrdering=!1,y.iGroupingOrderByColumnIndex=y.iGroupingColumnIndex):y.bCustomColumnOrdering=!0,""==y.sGroupingColumnSortDirection&&(y.sGroupingColumnSortDirection="year"==y.sGroupBy?"desc":"asc"),-1==y.iGroupingOrderByColumnIndex2?(y.bCustomColumnOrdering2=!1,y.iGroupingOrderByColumnIndex2=y.iGroupingColumnIndex2):y.bCustomColumnOrdering2=!0,""==y.sGroupingColumnSortDirection2&&(y.sGroupingColumnSortDirection2="year"==y.sGroupBy2?"desc":"asc"),null!=y.asExpandedGroups)if("NONE"==y.asExpandedGroups)y.asExpandedGroups=[],f=y.asExpandedGroups,x=!1;else if("ALL"==y.asExpandedGroups);else if(y.asExpandedGroups.constructor==String){var b=y.asExpandedGroups;y.asExpandedGroups=new Array,y.asExpandedGroups.push(g(b)),f=y.asExpandedGroups,x=!1}else if(y.asExpandedGroups.constructor==Array){for(var h=0;h<y.asExpandedGroups.length&&(f.push(g(y.asExpandedGroups[h])),!y.bExpandSingleGroup);h++);x=!1}C=y.sDateFormat.toLowerCase().indexOf("yy"),c=y.sDateFormat.toLowerCase().lastIndexOf("y")-y.sDateFormat.toLowerCase().indexOf("y")+1,iMonthIndex=y.sDateFormat.toLowerCase().indexOf("mm"),iMonthLength=y.sDateFormat.toLowerCase().lastIndexOf("m")-y.sDateFormat.toLowerCase().indexOf("m")+1;var S=i;switch(y.sGroupBy){case"letter":S=p;break;case"year":S=l;break;case"month":S=d;break;default:S=i}var O=function(e){m.fnSettings().oFeatures.bServerSide&&(x=!0);var n=!1;if(0!=e.aiDisplay.length){for(var o=r("tbody > tr",m).filter(function(){return!r(this).parent().hasClass("noGroup")}),a=r(o[0]).find(" > td").length,u=null,t=null,i=0;i<o.length;i++){var p=e._iDisplayStart+i;m.fnSettings().oFeatures.bServerSide&&(p=i);var l="",d=null,C="",c=null;try{l=this.fnGetData(o[i],y.iGroupingColumnIndex)}catch(b){}var d=l;if("year"!=y.sGroupBy&&(d=S(l)),r(o[i]).attr("data-group",g(d)),n&&(C=e.aoData[e.aiDisplay[p]]._aData[y.iGroupingColumnIndex2],void 0==C&&(C=e.aoData[e.aiDisplay[p]]._aData[e.aoColumns[y.iGroupingColumnIndex2].mDataProp]),"year"!=y.sGroupBy2&&(c=S(C)),r(o[i]).attr("data-group",g(d)+"_"+g(c))),null==u||g(d)!=g(u)){var h=g(d);y.bExpandableGrouping&&x&&(y.bExpandSingleGroup?0==f.length&&f.push(h):f.push(h));var O=document.createElement("tr"),E=document.createElement("td");O.id="group-id-"+m.attr("id")+"-"+h,y.bSetGroupingClassOnTR?O.className=y.sGroupingClass+" "+h:E.className=y.sGroupingClass+" "+h,E.colSpan=a,E.innerHTML=y.sGroupLabelPrefix+(""==d?y.sEmptyGroupLabel:d),y.bExpandableGrouping&&(E.className+=s(h)?" expanded-group":" collapsed-group",E.className+=" group-item-expander",r(E).attr("rel",h),r(E).click(G)),O.appendChild(E),o[i].parentNode.insertBefore(O,o[i]),u=d,t=null}if(y.bExpandableGrouping&&(r(o[i]).addClass("group-item-"+h),s(h)||r(o[i]).hide()),n&&(null==t||g(c)!=g(t))){var v=document.createElement("tr"),D=document.createElement("td");y.bSetGroupingClassOnTR?v.className=y.sGroupingClass2+" "+c.toLowerCase().replace(" ","-"):D.className=y.sGroupingClass2+" "+c.toLowerCase().replace(" ","-"),D.colSpan=a,D.innerHTML=y.sGroupLabelPrefix2+(""==c?y.sEmptyGroupLabel:c),v.appendChild(D),o[i].parentNode.insertBefore(v,o[i]),t=c}}y.fnOnGrouped(),x=!1}};m.fnSetColumnVis(y.iGroupingColumnIndex,!y.bHideGroupingColumn),y.bCustomColumnOrdering&&m.fnSetColumnVis(y.iGroupingOrderByColumnIndex,!y.bHideGroupingOrderByColumn),-1!=y.iGroupingColumnIndex2&&m.fnSetColumnVis(y.iGroupingColumnIndex2,!y.bHideGroupingColumn2),y.bCustomColumnOrdering2&&m.fnSetColumnVis(y.iGroupingOrderByColumnIndex2,!y.bHideGroupingOrderByColumn2),m.fnSettings().aoDrawCallback.push({fn:O,sName:"fnRowGrouping"});var E=new Array;switch(E.push([y.iGroupingOrderByColumnIndex,y.sGroupingColumnSortDirection]),-1!=y.iGroupingColumnIndex2&&E.push([y.iGroupingOrderByColumnIndex2,y.sGroupingColumnSortDirection2]),m.fnSettings().aaSortingFixed=E,y.sGroupBy){case"name":break;case"letter":m.fnSettings().aoColumns[y.iGroupingOrderByColumnIndex].sSortDataType="rg-letter",r.fn.dataTableExt.afnSortData["rg-letter"]=function(e,n){var o=[];return r("td:eq("+n+")",e.oApi._fnGetTrNodes(e)).each(function(){o.push(p(this.innerHTML))}),o};break;case"year":m.fnSettings().aoColumns[y.iGroupingOrderByColumnIndex].sSortDataType="rg-date",r.fn.dataTableExt.afnSortData["rg-date"]=function(e,n){var o=[];return r("td:eq("+n+")",e.oApi._fnGetTrNodes(e)).each(function(){o.push(t(this.innerHTML))}),o}}"name"==y.sGroupBy||"letter"==y.sGroupBy,m.fnDraw()})}}(jQuery);
assets/js/jquery-datatables/media/swf/copy_cvs_xls_pdf.swf ADDED
Binary file
assets/js/jsrender/jsrender.min.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ /*! JsRender v1.0.0-beta: http://github.com/BorisMoore/jsrender and http://jsviews.com/jsviews
2
+ informal pre V1.0 commit counter: 56 */
3
+ (function(n,t,i){"use strict";function ot(n){return n}function nr(n){return n}function bt(n){s._dbgMode=n;yt=n?"Unavailable (nested view): use #getIndex()":"";it("dbg",si.dbg=tt.dbg=n?nr:ot)}function st(n){this.name=(u.link?"JsViews":"JsRender")+" Error";this.message=n||this.name}function f(n,t){for(var i in t)n[i]=t[i];return n}function d(n){return typeof n=="function"}function kt(n,t,i){return(!o.rTag||n)&&(p=n?n.charAt(0):p,w=n?n.charAt(1):w,h=t?t.charAt(0):h,v=t?t.charAt(1):v,nt=i||nt,n="\\"+p+"(\\"+nt+")?\\"+w,t="\\"+h+"\\"+v,y="(?:(?:(\\w+(?=[\\/\\s\\"+h+"]))|(?:(\\w+)?(:)|(>)|!--((?:[^-]|-(?!-))*)--|(\\*)))\\s*((?:[^\\"+h+"]|\\"+h+"(?!\\"+v+"))*?)",o.rTag=y+")",y=new RegExp(n+y+"(\\/)?|(?:\\/(\\w+)))"+t,"g"),vt=new RegExp("<.*>|([^\\\\]|^)[{}]|"+n+".*"+t)),[p,w,h,v,nt]}function tr(n,t){t||(t=n,n=i);var e,f,o,u,r=this,s=!t||t==="root";if(n){if(u=r.type===t?r:i,!u)if(e=r.views,r._.useKey){for(f in e)if(u=e[f].get(n,t))break}else for(f=0,o=e.length;!u&&f<o;f++)u=e[f].get(n,t)}else if(s)while(r.parent.parent)u=r=r.parent;else while(r&&!u)u=r.type===t?r:i,r=r.parent;return u}function dt(){var n=this.get("item");return n?n.index:i}function gt(){return this.index}function ir(t){var u,e=this,o=e.linkCtx,r=(e.ctx||{})[t];return r===i&&o&&o.ctx&&(r=o.ctx[t]),r===i&&(r=si[t]),r&&d(r)&&!r._wrp&&(u=function(){return r.apply(!this||this===n?e:this,arguments)},u._wrp=1,f(u,r)),u||r}function rr(n,t,u){var f,e,c,s=+u===u&&u,h=t.linkCtx;if(s&&(u=(s=t.tmpl.bnds[s-1])(t.data,t,r)),e=u.args[0],n||s){f=h&&h.tag;f||(f={_:{inline:!h,bnd:s},tagName:":",cvt:n,flow:!0,tagCtx:u,_is:"tag"},h&&(h.tag=f,f.linkCtx=h,u.ctx=a(u.ctx,h.view.ctx)),o._lnk(f));for(c in u.props)ft.test(c)&&(f[c]=u.props[c]);u.view=t;f.ctx=u.ctx||{};delete u.ctx;t._.tag=f;e=ht(f,f.convert||n!=="true"&&n)[0];e=s&&t._.onRender?t._.onRender(e,t,s):e;t._.tag=i}return e!=i?e:""}function ht(n,t){var r=n.tagCtx,u=r.view,i=r.args;return t=t&&(""+t===t?u.getRsc("converters",t)||c("Unknown converter: '"+t+"'"):t),i=!i.length&&!r.index?[u.data]:t?i.slice():i,t&&(t.depends&&(n.depends=o.getDeps(n.depends,n,t.depends,t)),i[0]=t.apply(n,i)),i}function ur(n,t){for(var f,e,u=this;f===i&&u;)e=u.tmpl[n],f=e&&e[t],u=u.parent;return f||r[n][t]}function fr(n,t,u,s,h){var lt,l,pt,at,et,y,vt,d,v,ot,rt,wt,g,yt,bt,k,p,st,it,kt,nt="",ct=+s===s&&s,w=t.linkCtx||0,ut=t.ctx,dt=u||t.tmpl;for(n._is==="tag"&&(l=n,n=l.tagName,s=l.tagCtxs),l=l||w.tag,ct&&(s=(wt=dt.bnds[ct-1])(t.data,t,r)),vt=s.length,y=0;y<vt;y++){if(y||u&&l||(g=t.getRsc("tags",n)||c("Unknown tag: {{"+n+"}}")),v=s[y],w.tag||(rt=v.tmpl,rt=v.content=rt&&dt.tmpls[rt-1],f(v,{tmpl:(l?l:g).template||rt,render:ui,index:y,view:t,ctx:a(v.ctx,ut)})),(u=v.props.tmpl)&&(u=""+u===u?t.getRsc("templates",u)||e(u):u,v.tmpl=u),l||(g._ctr?(l=new g._ctr,yt=!!l.init,l.attr=l.attr||g.attr||i):o._lnk(l={render:g.render}),l._={inline:!w},w&&(w.attr=l.attr=w.attr||l.attr,w.tag=l,l.linkCtx=w),(l._.bnd=wt||w.fn)?l._.arrVws={}:l.dataBoundOnly&&c("{^{"+n+"}} tag must be data-bound"),l.tagName=n,l.parent=et=ut&&ut.tag,l._is="tag",l._def=g,l.tagCtxs=s),!y)for(st in it=v.props)ft.test(st)&&(l[st]=it[st]);v.tag=l;l.dataMap&&l.tagCtxs&&(v.map=l.tagCtxs[y].map);l.flow||(ot=v.ctx=v.ctx||{},pt=l.parents=ot.parentTags=ut&&a(ot.parentTags,ut.parentTags)||{},et&&(pt[et.tagName]=et),ot.tag=l)}for(t._.tag=l,l.rendering={},y=0;y<vt;y++)v=l.tagCtx=l.tagCtxs[y],it=v.props,p=ht(l,l.convert),(bt=it.dataMap||l.dataMap)&&(p.length||it.dataMap)&&(k=v.map,(!k||k.src!==p[0]||h)&&(k&&k.src&&k.unmap(),k=v.map=bt.map(p[0],it)),p=[k.tgt]),l.ctx=v.ctx,!y&&yt&&(kt=l.template,l.init(v,w,l.ctx),yt=i,l.template!==kt&&(l._.tmpl=l.template)),d=i,lt=l.render,(lt=l.render)&&(d=lt.apply(l,p)),p=p.length?p:[t],d=d!==i?d:v.render(p[0],!0)||(h?i:""),nt=nt?nt+(d||""):d;return delete l.rendering,l.tagCtx=l.tagCtxs[0],l.ctx=l.tagCtx.ctx,l._.inline&&(at=l.attr)&&at!==b&&(nt=at==="text"?tt.html(nt):""),ct&&t._.onRender?t._.onRender(nt,t,ct):nt}function g(n,t,i,r,u,f,e,o){var a,h,c,s=this,v=t==="array",l={key:0,useKey:v?0:1,id:""+gi++,onRender:o,bnds:{}};s.data=r;s.tmpl=u;s.content=e;s.views=v?[]:{};s.parent=i;s.type=t;s._=l;s.linked=!!o;i?(a=i.views,h=i._,h.useKey?(a[l.key="_"+h.useKey++]=s,s.index=yt,s.getIndex=dt,c=h.tag,l.bnd=v&&(!c||!!c._.bnd&&c)):a.splice(l.key=s.index=f,0,s),s.ctx=n||i.ctx):s.ctx=n}function er(n){var i,r,t,u,e,f,s;for(i in k)if(e=k[i],(f=e.compile)&&(r=n[i+"s"]))for(t in r)u=r[t]=f(t,r[t],n),u&&(s=o.onStore[i])&&s(t,u,f)}function or(n,t,r){var o,u;return d(t)?t={depends:t.depends,render:t}:(t.baseTag&&(t.flow=!!t.flow,t=f(f({},t.baseTag),t)),(u=t.template)!==i&&(t.template=""+u===u?e[u]||e(u):u),t.init!==!1&&(o=t._ctr=function(){},(o.prototype=t).constructor=o)),r&&(t._parentTmpl=r),t}function ni(r,u,f,o){function c(u){if(""+u===u||u.nodeType>0){try{h=u.nodeType>0?u:!vt.test(u)&&t&&t(n.document).find(u)[0]}catch(s){}return h&&(u=e[r=r||h.getAttribute(et)],u||(r=r||"_"+di++,h.setAttribute(et,r),u=e[r]=ni(r,h.innerHTML,f,o)),h=i),u}}var s,h;return u=u||"",s=c(u),o=o||(u.markup?u:{}),o.tmplName=r,f&&(o._parentTmpl=f),!s&&u.markup&&(s=c(u.markup))&&s.fn&&(s.debug!==u.debug||s.allowCode!==u.allowCode)&&(s=s.markup),s!==i?(r&&!f&&(wt[r]=function(){return u.render.apply(u,arguments)}),s.fn||u.fn?s.fn&&(u=r&&r!==s.tmplName?a(o,s):s):(u=ii(s,o),lt(s.replace(vi,"\\$&"),u)),er(o),u):void 0}function ti(n){function t(t,i){this.tgt=n.getTgt(t,i)}return d(n)&&(n={getTgt:n}),n.baseMap&&(n=f(f({},n.baseMap),n)),n.map=function(n,i){return new t(n,i)},n}function ii(n,t){var i,e=s.wrapMap||{},r=f({markup:n,tmpls:[],links:{},tags:{},bnds:[],_is:"template",render:ri},t);return t.htmlTag||(i=wi.exec(n),r.htmlTag=i?i[1].toLowerCase():""),i=e[r.htmlTag],i&&i!==e.div&&(r.markup=u.trim(r.markup)),r}function sr(n,t){function u(e,s,h){var v,c,l,a;if(e&&typeof e=="object"&&!e.nodeType&&!e.markup&&!e.getTgt){for(l in e)u(l,e[l],s);return r}return s===i&&(s=e,e=i),e&&""+e!==e&&(h=s,s=e,e=i),a=h?h[f]=h[f]||{}:u,c=t.compile,s===null?e&&delete a[e]:(s=c?s=c(e,s,h):s,e&&(a[e]=s)),c&&s&&(s._is=n),s&&(v=o.onStore[n])&&v(e,s,c),s}var f=n+"s";r[f]=u;k[n]=t}function hr(n,t){var i=this.jquery&&(this[0]||c('Unknown template: "'+this.selector+'"')),r=i.getAttribute(et);return ri.call(r?e[r]:e(i),n,t)}function ct(n,t,i){if(s._dbgMode)try{return n.fn(t,i,r)}catch(u){return c(u,i)}return n.fn(t,i,r)}function ri(n,t,i,r,f,e){var o=this;return!r&&o.fn._nvw&&!u.isArray(n)?ct(o,n,{tmpl:o}):ui.call(o,n,t,i,r,f,e)}function ui(n,t,r,f,o,s){var y,ut,d,l,nt,tt,it,p,v,rt,w,ft,h,et,c=this,k="";if(!!t===t&&(r=t,t=i),o===!0&&(it=!0,o=0),c.tag?(p=c,c=c.tag,rt=c._,ft=c.tagName,h=rt.tmpl||p.tmpl,et=c.attr&&c.attr!==b,t=a(t,c.ctx),v=p.content,p.props.link===!1&&(t=t||{},t.link=!1),f=f||p.view,n=arguments.length?n:f):h=c,h&&(!f&&n&&n._is==="view"&&(f=n),f&&(v=v||f.content,s=s||f._.onRender,n===f&&(n=f.data),t=a(t,f.ctx)),f&&f.data!==i||((t=t||{}).root=n),h.fn||(h=e[h]||e(h)),h)){if(s=(t&&t.link)!==!1&&!et&&s,w=s,s===!0&&(w=i,s=f._.onRender),t=h.helpers?a(h.helpers,t):t,u.isArray(n)&&!r)for(l=it?f:o!==i&&f||new g(t,"array",f,n,h,o,v,s),y=0,ut=n.length;y<ut;y++)d=n[y],nt=new g(t,"item",l,d,h,(o||0)+y,v,s),tt=ct(h,d,nt),k+=l._.onRender?l._.onRender(tt,nt):tt;else(f||!h.fn._nvw)&&(l=it?f:new g(t,ft||"data",f,n,h,o,v,s),rt&&!c.flow&&(l.tag=c)),k+=ct(h,n,l);return w?w(k,l):k}return""}function c(n,t,i){var r=s.onError(n,t,i);if(""+n===n)throw new o.Err(r);return!t.linkCtx&&t.linked?tt.html(r):r}function l(n){c("Syntax error\n"+n)}function lt(n,t,i,r){function k(t){t-=f;t&&h.push(n.substr(f,t).replace(ut,"\\n"))}function c(t){t&&l('Unmatched or missing tag: "{{/'+t+'}}" in template:\n'+n)}function d(e,o,v,y,p,d,nt,tt,it,rt,et,ot){d&&(p=":",y=b);rt=rt||i;var st=(o||i)&&[],ct="",lt="",at="",vt="",yt="",pt="",wt="",bt="",ht=!rt&&!p&&!nt;v=v||(it=it||"#data",p);k(ot);f=ot+e.length;tt?g&&h.push(["*","\n"+it.replace(ai,"$1")+"\n"]):v?(v==="else"&&(pi.test(it)&&l('for "{{else if expr}}" use "{{else expr}}"'),st=u[7],u[8]=n.substring(u[8],ot),u=s.pop(),h=u[2],ht=!0),it&&oi(it.replace(ut," "),st,t).replace(yi,function(n,t,i,r,u,f,e,o){return e?(lt+=f+",",vt+="'"+o+"',"):i?(at+=r+f+",",pt+=r+"'"+o+"',"):t?wt+=f:(u==="trigger"&&(bt+=f),ct+=r+f+",",yt+=r+"'"+o+"',",w=w||ft.test(u)),""}).slice(0,-1),a=[v,y||!!r||w||"",ht&&[],fi(vt,yt,pt),fi(lt,ct,at),wt,bt,st||0],h.push(a),ht&&(s.push(u),u=a,u[8]=f)):et&&(c(et!==u[0]&&u[0]!=="else"&&et),u[8]=n.substring(u[8],ot),u=s.pop());c(!u&&et);h=u[2]}var o,a,w,g=t&&t.allowCode,e=[],f=0,s=[],h=e,u=[,,e];return i&&(n=p+n+v),c(s[0]&&s[0][2].pop()[0]),n.replace(y,d),k(n.length),(f=e[e.length-1])&&c(""+f!==f&&+f[8]===f[8]&&f[0]),i?(o=at(e,n,i),o.paths=e[0][7]):o=at(e,t),o._nvw&&(o._nvw=!/[~#]/.test(n)),o}function fi(n,t,i){return[n.slice(0,-1),t.slice(0,-1),i.slice(0,-1)]}function ei(n,t){return"\n\t"+(t?t+":{":"")+"args:["+n[0]+"]"+(n[1]||!t?",\n\tprops:{"+n[1]+"}":"")+(n[2]?",\n\tctx:{"+n[2]+"}":"")}function oi(n,t,i){function p(p,b,k,d,g,nt,tt,it,rt,ut,ft,et,ot,st,ht,ct,at,vt,yt,pt){function dt(n,i,r,f,e,s,h,l){if(r&&(t&&(u==="linkTo"&&(o=t._jsvto=t._jsvto||[],o.push(g)),(!u||c)&&t.push(g.slice(i.length))),r!==".")){var a=(f?'view.hlp("'+f+'")':e?"view":"data")+(l?(s?"."+s:f?"":e?"":"."+r)+(h||""):(l=f?"":e?s||"":r,""));return a=a+(l?"."+l:""),i+(a.slice(0,9)==="view.data"?a.slice(5):a)}return n}nt=nt||"";k=k||b||et;g=g||rt;ut=ut||at||"";var bt,kt,wt;if(!tt||e||f)return t&&ct&&!e&&!f&&(!u||c||o)&&(bt=y[r],pt.length-1>yt-bt&&(bt=pt.slice(bt,yt+1),ct=w+":"+bt+h,wt=v[ct],wt||(v[ct]=1,v[ct]=wt=lt(ct,i||t,!0),wt.paths.push({_jsvOb:wt})),wt!==1&&(o||t).push({_jsvOb:wt}))),e?(e=!ot,e?p:'"'):f?(f=!st,f?p:'"'):(k?(r++,y[r]=yt++,k):"")+(vt?r?"":(s=pt.slice(s,yt),u?(u=c=o=!1,"\b"):"\b,")+s+(s=yt+p.length,"\b"):it?(r&&l(n),u=g,c=d,s=yt+p.length,g+":"):g?g.split("^").join(".").replace(ci,dt)+(ut?(a[++r]=!0,g.charAt(0)!=="."&&(y[r]=yt),kt?"":ut):nt):nt?nt:ht?(a[r--]=!1,ht)+(ut?(a[++r]=!0,ut):""):ft?(a[r]||l(n),","):b?"":(e=ot,f=st,'"'));l(n)}var u,o,c,f,e,s=0,v=i?i.links:t&&(t.links=t.links||{}),a={},y={0:-1},r=0;return(n+(i?" ":"")).replace(/\)\^/g,").").replace(li,p)}function at(n,i,r){var y,f,e,c,d,ht,ct,bt,lt,g,rt,p,o,ft,et,v,nt,w,tt,vt,k,yt,pt,ot,s,a,st,wt,h=0,u="",it={},kt=n.length;for(""+i===i?(v=r?'data-link="'+i.replace(ut," ").slice(1,-1)+'"':i,i=0):(v=i.tmplName||"unnamed",i.allowCode&&(it.allowCode=!0),i.debug&&(it.debug=!0),p=i.bnds,et=i.tmpls),y=0;y<kt;y++)if(f=n[y],""+f===f)u+='\n+"'+f+'"';else if(e=f[0],e==="*")u+=";\n"+f[1]+"\nret=ret";else{if(c=f[1],tt=f[2],d=ei(f[3],"params")+"},"+ei(ft=f[4]),a=f[5],wt=f[6],vt=f[8],(pt=e==="else")||(h=0,p&&(o=f[7])&&(h=p.push(o))),(ot=e===":")?c&&(e=c===b?">":c+e):(tt&&(nt=ii(vt,it),nt.tmplName=v+"/"+e,at(tt,nt),et.push(nt)),pt||(w=e,yt=u,u=""),k=n[y+1],k=k&&k[0]==="else"),st=a?";\ntry{\nret+=":"\n+",ot&&(o||wt||c&&c!==b)){if(s="return {"+d+"};",a&&(s="try {\n"+s+"\n}catch(e){return {error: j._err(e,view,"+a+")}}\n"),s=new Function("data,view,j,u"," // "+v+" "+h+" "+e+"\n"+s),s.paths=o,s._tag=e,r)return s;rt=1}if(u+=ot?(r?(a?"\ntry{\n":"")+"return ":st)+(rt?(rt=0,g=lt=!0,'c("'+c+'",view,'+(o?(p[h-1]=s,h):"{"+d+"}")+")"):e===">"?(ct=!0,"h("+ft[0]+")"):(bt=!0,"((v="+ft[0]+')!=null?v:"")')):(g=ht=!0,"\n{view:view,tmpl:"+(tt?et.length:"0")+","+d+"},"),w&&!k){if(u="["+u.slice(0,-1)+"]",(r||o)&&(u=new Function("data,view,j,u"," // "+v+" "+h+" "+w+"\nreturn "+u+";"),o&&((p[h-1]=u).paths=o),u._tag=e,r))return u;u=yt+st+'t("'+w+'",view,this,'+(h||u)+")";o=0;w=0}a&&(g=!0,u+=";\n}catch(e){ret"+(r?"urn ":"+=")+"j._err(e,view,"+a+");}\n"+(r?"":"ret=ret"))}u="// "+v+"\nj=j||"+(t?"jQuery.":"jsviews.")+"views;var v"+(ht?",t=j._tag":"")+(lt?",c=j._cnvt":"")+(ct?",h=j.converters.html":"")+(r?";\n":',ret=""\n')+(it.debug?"debugger;":"")+u+(r?"\n":";\nreturn ret;");try{u=new Function("data,view,j,u",u)}catch(dt){l("Compiled template code:\n\n"+u+'\n: "'+dt.message+'"')}return i&&(i.fn=u),g||(u._nvw=!0),u}function a(n,t){return n&&n!==t?t?f(f({},t),n):n:t&&f({},t)}function cr(n){return pt[n]||(pt[n]="&#"+n.charCodeAt(0)+";")}function lr(n){var i,t,r=[];if(typeof n=="object")for(i in n)t=n[i],t&&t.toJSON&&!t.toJSON()||d(t)||r.push({key:i,prop:t});return r}function hi(n){return n!=null?bi.test(n)&&(""+n).replace(ki,cr)||n:""}if((!t||!t.render)&&!n.jsviews){var u,rt,y,vt,yt,p="{",w="{",h="}",v="}",nt="^",ci=/^(!*?)(?:null|true|false|\d[\d.]*|([\w$]+|\.|~([\w$]+)|#(view|([\w$]+))?)([\w$.^]*?)(?:[.[^]([\w$]+)\]?)?)$/g,li=/(\()(?=\s*\()|(?:([([])\s*)?(?:(\^?)(!*?[#~]?[\w$.^]+)?\s*((\+\+|--)|\+|-|&&|\|\||===|!==|==|!=|<=|>=|[<>%*:?\/]|(=))\s*|(!*?[#~]?[\w$.^]+)([([])?)|(,\s*)|(\(?)\\?(?:(')|("))|(?:\s*(([)\]])(?=\s*\.|\s*\^|\s*$)|[)\]])([([]?))|(\s+)/g,ut=/[ \t]*(\r\n|\n|\r)/g,ai=/\\(['"])/g,vi=/['"\\]/g,yi=/(?:\x08|^)(onerror:)?(?:(~?)(([\w$]+):)?([^\x08]+))\x08(,)?([^\x08]+)/gi,pi=/^if\s/,wi=/<(\w+)[>\s]/,bi=/[\x00`><\"'&]/,ft=/^on[A-Z]|^convert(Back)?$/,ki=/[\x00`><"'&]/g,di=0,gi=0,pt={"&":"&amp;","<":"&lt;",">":"&gt;","\x00":"&#0;","'":"&#39;",'"':"&#34;","`":"&#96;"},b="html",et="data-jsv-tmpl",wt={},k={template:{compile:ni},tag:{compile:or},helper:{},converter:{}},r={jsviews:"v1.0.0-beta",settings:function(n){f(s,n);bt(s._dbgMode);s.jsv&&s.jsv()},sub:{View:g,Err:st,tmplFn:lt,cvt:ht,parse:oi,extend:f,syntaxErr:l,onStore:{},_lnk:ot},map:ti,_cnvt:rr,_tag:fr,_err:c};(st.prototype=new Error).constructor=st;dt.depends=function(){return[this.get("item"),"index"]};gt.depends=function(){return["index"]};g.prototype={get:tr,getIndex:gt,getRsc:ur,hlp:ir,_is:"view"};for(rt in k)sr(rt,k[rt]);var e=r.templates,tt=r.converters,si=r.helpers,it=r.tags,o=r.sub,s=r.settings;t?(u=t,u.fn.render=hr,u.observable&&(f(o,u.views.sub),r.map=u.views.map)):(u=n.jsviews={},u.isArray=Array&&Array.isArray||function(n){return Object.prototype.toString.call(n)==="[object Array]"});u.render=wt;u.views=r;u.templates=e=r.templates;s({debugMode:bt,delimiters:kt,onError:function(n,t,r){return t&&(n=r===i?"{Error: "+n+"}":d(r)?r(n,t):r),n==i?"":n},_dbgMode:!0});it({"else":function(){},"if":{render:function(n){var t=this;return t.rendering.done||!n&&(arguments.length||!t.tagCtx.index)?"":(t.rendering.done=!0,t.selected=t.tagCtx.index,t.tagCtx.render(t.tagCtx.view,!0))},onUpdate:function(n,t,i){for(var r,f,u=0;(r=this.tagCtxs[u])&&r.args.length;u++)if(r=r.args[0],f=!r!=!i[u].args[0],!this.convert&&!!r||f)return f;return!1},flow:!0},"for":{render:function(n){var f,t=this,r=t.tagCtx,e="",o=0;return t.rendering.done||((f=!arguments.length)&&(n=r.view.data),n!==i&&(e+=r.render(n,f),o+=u.isArray(n)?n.length:1),(t.rendering.done=o)&&(t.selected=r.index)),e},flow:!0},include:{flow:!0},"*":{render:ot,flow:!0}});it("props",{baseTag:it["for"],dataMap:ti(lr)});tt({html:hi,attr:hi,url:function(n){return n!=i?encodeURI(""+n):n===null?n:""}});kt()}})(this,this.jQuery);
4
+ /*
5
+ //# sourceMappingURL=jsrender.min.js.map
6
+ */
assets/js/jsrender/jsrender.min.js.map ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "version":3,
3
+ "file":"jsrender.min.js",
4
+ "lineCount":3,
5
+ "mappings":";;CAWC,QAAQ,CAACA,CAAM,CAAEC,CAAM,CAAEC,CAAjB,CAA4B,CAEpC,Y,CAoFAC,SAASA,EAAM,CAACC,CAAD,CAAM,CACpB,OAAOA,CADa,CAIrBC,SAASA,EAAQ,CAACD,CAAD,CAAM,CAEtB,OAAOA,CAFe,CAKvBE,SAASA,EAAO,CAACC,CAAD,CAAY,CAC3BC,CAAcC,SAAU,CAAEF,CAAS,CACnCG,EAAS,CAAEH,CAAU,CAAE,4CAA6C,CAAE,EAAE,CACxEI,EAAK,CAAC,KAAK,CAAEC,EAAQC,IAAK,CAAEC,EAAWD,IAAK,CAAEN,CAAU,CAAEF,EAAS,CAAEF,EAAhE,CAHsB,CAM5BY,SAASA,EAAY,CAACC,CAAD,CAAU,CAG9B,IAAIC,KAAM,CAAE,CAACC,CAACC,KAAM,CAAE,SAAU,CAAE,UAAtB,CAAkC,CAAE,QAAQ,CACxD,IAAIH,QAAS,CAAEA,CAAQ,EAAG,IAAIC,KAJA,CAO/BG,SAASA,CAAO,CAACC,CAAM,CAAEC,CAAT,CAAiB,CAEhC,IAAK,IAAAL,EAAK,GAAGK,CAAb,CACCD,CAAO,CAAAJ,CAAA,CAAM,CAAEK,CAAO,CAAAL,CAAA,CACvB,CACA,OAAOI,CALyB,CAQjCE,SAASA,CAAW,CAACC,CAAD,CAAK,CACxB,OAAO,OAAOA,CAAG,EAAI,UADG,CAWzBC,SAASA,EAAgB,CAACC,CAAS,CAAEC,CAAU,CAAER,CAAxB,CAA8B,CA6BtD,OAzBI,CAACS,CAAIC,KAAM,EAAGH,E,GACjBI,CAAe,CAAEJ,CAAU,CAAEA,CAASK,OAAO,CAAC,CAAD,CAAI,CAAED,CAAc,CACjEE,CAAe,CAAEN,CAAU,CAAEA,CAASK,OAAO,CAAC,CAAD,CAAI,CAAEC,CAAc,CACjEC,CAAgB,CAAEN,CAAW,CAAEA,CAAUI,OAAO,CAAC,CAAD,CAAI,CAAEE,CAAe,CACrEC,CAAgB,CAAEP,CAAW,CAAEA,CAAUI,OAAO,CAAC,CAAD,CAAI,CAAEG,CAAe,CACrEC,EAAS,CAAEhB,CAAK,EAAGgB,EAAQ,CAC3BT,CAAU,CAAE,IAAK,CAAEI,CAAe,CAAE,KAAM,CAAEK,EAAS,CAAE,MAAO,CAAEH,CAAc,CAC9EL,CAAW,CAAE,IAAK,CAAEM,CAAgB,CAAE,IAAK,CAAEC,CAAe,CAG5DL,CAAK,CAAE,yBAA0B,CAAEI,CAAgB,CAAE,mEACnC,CAAEA,CAAgB,CAAE,MAAO,CAAEA,CAAgB,CAAE,OAAQ,CAAEC,CAAgB,CAAE,OAAO,CAGpGN,CAAIC,KAAM,CAAEA,CAAK,CAAE,GAAG,CAEtBA,CAAK,CAAE,IAAIO,MAAM,CAACV,CAAU,CAAEG,CAAK,CAAE,uBAAwB,CAAEF,CAAU,CAAE,GAA1D,CAA8D,CAK/EU,EAAY,CAAE,IAAID,MAAM,CAAC,uBAAwB,CAAEV,CAAU,CAAE,IAAK,CAAEC,CAA9C,EAAyD,CAI3E,CAACG,CAAc,CAAEE,CAAc,CAAEC,CAAe,CAAEC,CAAe,CAAEC,EAAnE,CA7B+C,CAoCvDG,SAASA,EAAO,CAACC,CAAK,CAAEC,CAAR,CAAc,CACxBA,C,GAEJA,CAAK,CAAED,CAAK,CACZA,CAAM,CAAErC,EAAS,CAGlB,IAAIuC,EAAOC,EAAGC,EAAGC,EAChBC,EAAO,KACPC,EAAO,CAACN,CAAK,EAAGA,CAAK,GAAI,MAAM,CAGhC,GAAID,EAAO,CAGV,GADAK,CAAM,CAAEC,CAAIL,KAAM,GAAIA,CAAK,CAAEK,CAAK,CAAE3C,CAAS,CACzC,CAAC0C,EAEJ,GADAH,CAAM,CAAEI,CAAIJ,MAAM,CACdI,CAAIE,EAAEC,QAAS,CAClB,IAAKN,EAAE,GAAGD,CAAV,CACC,GAAIG,CAAM,CAAEH,CAAM,CAAAC,CAAA,CAAEO,IAAI,CAACV,CAAK,CAAEC,CAAR,EACvB,KAHgB,CAMjB,KACD,IAAKE,CAAE,CAAE,C,CAAGC,CAAE,CAAEF,CAAKS,OAAO,CAAE,CAACN,CAAM,EAAGF,CAAE,CAAEC,CAAC,CAAED,CAAC,EAAhD,CACCE,CAAM,CAAEH,CAAM,CAAAC,CAAA,CAAEO,IAAI,CAACV,CAAK,CAAEC,CAAR,CAbb,CAiBT,KAAK,GAAIM,QAEHD,CAAIM,OAAOA,QACjBP,CAAM,CAAEC,CAAK,CAAEA,CAAIM,OACpB,CACC,WACMN,CAAK,EAAG,CAACD,EAEfA,CAAM,CAAEC,CAAIL,KAAM,GAAIA,CAAK,CAAEK,CAAK,CAAE3C,CAAS,CAC7C2C,CAAK,CAAEA,CAAIM,OAEb,CACA,OAAOP,CAzCsB,CA4C9BQ,SAASA,EAAc,CAAA,CAAG,CACzB,IAAIP,EAAO,IAAII,IAAI,CAAC,MAAD,CAAQ,CAC3B,OAAOJ,CAAK,CAAEA,CAAIQ,MAAO,CAAEnD,CAFF,CAS1BoD,SAASA,EAAQ,CAAA,CAAG,CACnB,OAAO,IAAID,MADQ,CAYpBE,SAASA,EAAS,CAACC,CAAD,CAAS,CAE1B,IAAIC,EACHZ,EAAO,KACPa,EAAMb,CAAIc,SACVC,EAAM,CAACf,CAAIa,IAAK,EAAG,CAAA,CAAb,CAAiB,CAAAF,CAAA,CAAO,CAsB/B,OApBII,CAAI,GAAI1D,CAAU,EAAGwD,CAAI,EAAGA,CAAGA,I,GAClCE,CAAI,CAAEF,CAAGA,IAAK,CAAAF,CAAA,EAAO,CAElBI,CAAI,GAAI1D,C,GACX0D,CAAI,CAAEhD,EAAS,CAAA4C,CAAA,EAAO,CAGnBI,C,EACCrC,CAAW,CAACqC,CAAD,CAAM,EAAG,CAACA,CAAGC,K,GAC3BJ,CAAQ,CAAEA,QAAQ,CAAA,CAAG,CAKpB,OAAOG,CAAGE,MAAM,CAAE,CAAC,IAAK,EAAG,IAAK,GAAI9D,CAAQ,CAAE6C,CAAK,CAAE,IAAI,CAAEkB,SAA3C,CALI,CAMpB,CACDN,CAAOI,KAAM,CAAE,CAAC,CAChBzC,CAAO,CAACqC,CAAO,CAAEG,CAAV,EAAc,CAGhBH,CAAQ,EAAGG,CA3BQ,CAkC3BI,SAASA,EAAU,CAACC,CAAS,CAAEpB,CAAI,CAAEqB,CAAlB,CAA0B,CAE5C,IAAIC,EAAKC,EAAOC,EACfC,EAAc,CAACJ,CAAO,GAAIA,CAAO,EAAGA,EACpCP,EAAUd,CAAIc,QAAQ,CAQvB,GANIW,C,GAEHJ,CAAO,CAAE,CAACI,CAAY,CAAEzB,CAAI0B,KAAKC,KAAM,CAAAF,CAAW,CAAC,CAAZ,CAA9B,CAA6C,CAACzB,CAAI4B,KAAK,CAAE5B,CAAI,CAAE6B,CAAlB,EAAyB,CAGhFN,CAAM,CAAEF,CAAMS,KAAM,CAAA,CAAA,CAAE,CAClBV,CAAU,EAAGK,EAAa,CAC7BH,CAAI,CAAER,CAAQ,EAAGA,CAAOQ,IAAI,CACvBA,C,GACJA,CAAI,CAAE,CACL,CAAC,CAAE,CACF,MAAM,CAAE,CAACR,CAAO,CAChB,GAAG,CAAEW,CAFH,CAGF,CACD,OAAO,CAAE,GAAG,CACZ,GAAG,CAAEL,CAAS,CACd,IAAI,CAAE,CAAA,CAAI,CACV,MAAM,CAAEC,CAAM,CACd,GAAG,CAAE,KATA,CAUL,CACGP,C,GACHA,CAAOQ,IAAK,CAAEA,CAAG,CACjBA,CAAGR,QAAS,CAAEA,CAAO,CACrBO,CAAMR,IAAK,CAAEkB,CAAS,CAACV,CAAMR,IAAI,CAAEC,CAAOd,KAAKa,IAAzB,EAA8B,CAErD9B,CAAIiD,KAAK,CAACV,CAAD,EAAK,CAEf,IAAKE,EAAK,GAAGH,CAAMY,MAAnB,CACKC,EAAYC,KAAK,CAACX,CAAD,C,GACpBF,CAAI,CAAAE,CAAA,CAAM,CAAEH,CAAMY,MAAO,CAAAT,CAAA,EAG3B,CAEAH,CAAMrB,KAAM,CAAEA,CAAI,CAElBsB,CAAGT,IAAK,CAAEQ,CAAMR,IAAK,EAAG,CAAA,CAAE,CAC1B,OAAOQ,CAAMR,IAAI,CAEjBb,CAAIE,EAAEoB,IAAK,CAAEA,CAAG,CAEhBC,CAAM,CAAEa,EAAW,CAACd,CAAG,CAAEA,CAAGe,QAAS,EAAGjB,CAAU,GAAI,MAAO,EAAGA,CAA7C,CAAwD,CAAA,CAAA,CAAE,CAG7EG,CAAM,CAAEE,CAAY,EAAGzB,CAAIE,EAAEoC,SAC5B,CAAEtC,CAAIE,EAAEoC,SAAS,CAACf,CAAK,CAAEvB,CAAI,CAAEyB,CAAd,CACjB,CAAEF,CAAK,CACRvB,CAAIE,EAAEoB,IAAK,CAAEjE,CAzCgB,CA2C9B,OAAOkE,CAAM,EAAGlE,CAAU,CAAEkE,CAAM,CAAE,EAvDQ,CA0D7Ca,SAASA,EAAW,CAACd,CAAG,CAAEF,CAAN,CAAiB,CACpC,IAAIC,EAASC,CAAGD,QACfrB,EAAOqB,CAAMrB,MACb8B,EAAOT,CAAMS,KAAK,CAmBnB,OAjBAV,CAAU,CAAEA,CAAU,EAAG,CAAC,EAAG,CAAEA,CAAU,GAAIA,CAC5C,CAAGpB,CAAIuC,OAAO,CAAC,YAAY,CAAEnB,CAAf,CAA0B,EAAGoB,CAAK,CAAC,sBAAsB,CAAEpB,CAAU,CAAE,GAArC,CAChD,CAAEA,CAFsB,CAEZ,CAEbU,CAAK,CAAE,CAACA,CAAIzB,OAAQ,EAAG,CAACgB,CAAMb,MAC7B,CAAE,CAACR,CAAI4B,KAAL,CACF,CAAER,CACD,CAAEU,CAAIW,MAAM,CAAA,CAEZ,CAAEX,CAAI,CAEJV,C,GACCA,CAASsB,Q,GACZpB,CAAGoB,QAAS,CAAE3D,CAAI4D,QAAQ,CAACrB,CAAGoB,QAAQ,CAAEpB,CAAG,CAAEF,CAASsB,QAAQ,CAAEtB,CAAtC,EAAgD,CAE3EU,CAAK,CAAA,CAAA,CAAG,CAAEV,CAASH,MAAM,CAACK,CAAG,CAAEQ,CAAN,EAAW,CAE9BA,CAtB6B,CA6BrCc,SAASA,EAAW,CAACC,CAAY,CAAEC,CAAf,CAAyB,CAG5C,IAFA,IAAI/B,EAAKgC,EACR/C,EAAO,IACR,CAAQe,CAAI,GAAI1D,CAAW,EAAG2C,CAA9B,CAAA,CACC+C,CAAM,CAAE/C,CAAI0B,KAAM,CAAAmB,CAAA,CAAa,CAC/B9B,CAAI,CAAEgC,CAAM,EAAGA,CAAM,CAAAD,CAAA,CAAS,CAC9B9C,CAAK,CAAEA,CAAIM,OACZ,CACA,OAAOS,CAAI,EAAGc,CAAO,CAAAgB,CAAA,CAAc,CAAAC,CAAA,CARS,CAW7CE,SAASA,EAAS,CAACC,CAAO,CAAEC,CAAU,CAAExB,CAAI,CAAEyB,CAAO,CAAEC,CAArC,CAA+C,CAIhE,IAAIC,GAAQ/B,EAAKgC,GAAMC,GAAMC,GAAW3D,EAAGC,GAAG2D,EAASpC,EAAQqC,GAAWC,GAASC,GAAYC,EAC9FC,GAAUC,GAAQC,EAASlC,EAAMN,GAAMS,GAAOgC,GAC9CC,GAAM,GACNC,GAAc,CAAChB,CAAQ,GAAIA,CAAQ,EAAGA,EACtCrC,EAAUoC,CAAUpC,QAAS,EAAG,EAChCD,GAAMqC,CAAUrC,KAChBuD,GAAa1C,CAAK,EAAGwB,CAAUxB,KAAK,CAiBrC,IAfIuB,CAAOoB,IAAK,GAAI,K,GACnB/C,CAAI,CAAE2B,CAAO,CACbA,CAAQ,CAAE3B,CAAG2B,QAAQ,CACrBE,CAAQ,CAAE7B,CAAG6B,SAAQ,CAEtB7B,CAAI,CAAEA,CAAI,EAAGR,CAAOQ,IAAI,CAGpB6C,E,GAGHhB,CAAQ,CAAE,CAACS,EAAW,CAAEQ,EAAUzC,KAAM,CAAAwC,EAAW,CAAC,CAAZ,CAA9B,CAA6C,CAACjB,CAAUtB,KAAK,CAAEsB,CAAU,CAAErB,CAA9B,EAAqC,CAG7F/B,EAAE,CAAEqD,CAAO9C,OAAO,CACbR,CAAE,CAAE,CAAC,CAAEA,CAAE,CAAEC,EAAC,CAAED,CAAC,EAApB,CAAwB,CAmFvB,GAlFKA,CAAE,EAAK6B,CAAK,EAAIJ,C,GACpBuC,CAAO,CAAEX,CAAUX,OAAO,CAAC,MAAM,CAAEU,CAAT,CAAkB,EAAGT,CAAK,CAAC,iBAAiB,CAAES,CAAQ,CAAE,IAA9B,EAAmC,CAExF5B,CAAO,CAAE8B,CAAQ,CAAAtD,CAAA,CAAE,CACdiB,CAAOQ,I,GAEXqC,EAAQ,CAAEtC,CAAMK,KAAK,CACrBiC,EAAQ,CAAEtC,CAAMsC,QAAS,CAAEA,EAAQ,EAAGS,EAAUE,MAAO,CAAAX,EAAQ,CAAE,CAAV,CAAY,CAEnEpF,CAAO,CAAC8C,CAAM,CAAE,CACf,IAAI,CAAE,CAACC,CAAI,CAAEA,CAAI,CAAEuC,CAAb,CAAoBU,SAAU,EAAGZ,EAAO,CAC9C,MAAM,CAAEa,EAAa,CAYrB,KAAK,CAAE3E,CAAC,CACR,IAAI,CAAEqD,CAAU,CAChB,GAAG,CAAEnB,CAAS,CAACV,CAAMR,IAAI,CAAEA,EAAb,CAhBC,CAAT,EAiBL,EAECa,CAAK,CAAEL,CAAMY,MAAMP,M,GAEtBA,CAAK,CAAE,EAAG,CAAEA,CAAK,GAAIA,CACpB,CAAEwB,CAAUX,OAAO,CAAC,WAAW,CAAEb,CAAd,CAAoB,EAAG+C,CAAU,CAAC/C,CAAD,CACpD,CAAEA,CAAI,CAEPL,CAAMK,KAAM,CAAEA,EAAI,CAGdJ,C,GAGAuC,CAAMa,KAAV,EAICpD,CAAI,CAAE,IAAIuC,CAAMa,KAAO,CACvBZ,EAAS,CAAE,CAAC,CAACxC,CAAGqD,KAAK,CAGrBrD,CAAGiC,KAAM,CAAEjC,CAAGiC,KAAM,EAAGM,CAAMN,KAAM,EAAGlG,EARvC,CAYC0B,CAAIiD,KAAK,CAACV,CAAI,CAAE,CAEf,MAAM,CAAEuC,CAAMR,OAFC,CAAP,C,CAKV/B,CAAGpB,EAAG,CAAE,CACP,MAAM,CAAE,CAACY,CADF,CAEP,CACGA,C,GAEHA,CAAOyC,KAAM,CAAEjC,CAAGiC,KAAM,CAAEzC,CAAOyC,KAAM,EAAGjC,CAAGiC,KAAK,CAClDzC,CAAOQ,IAAK,CAAEA,CAAG,CACjBA,CAAGR,QAAS,CAAEA,EAAO,EAElBQ,CAAGpB,EAAE0E,IAAK,CAAEhB,EAAW,EAAG9C,CAAO+D,IAArC,CAECvD,CAAGpB,EAAE4E,OAAQ,CAAE,CAAA,CAFhB,CAGWxD,CAAGyD,c,EACbvC,CAAK,CAAC,KAAM,CAAES,CAAQ,CAAE,2BAAnB,C,CAEN3B,CAAG2B,QAAS,CAAEA,CAAO,CACrB3B,CAAGhB,OAAQ,CAAEkD,EAAU,CAAE3C,EAAI,EAAGA,EAAGS,IAAI,CACvCA,CAAG+C,IAAK,CAAE,KAAK,CACf/C,CAAG0D,KAAM,CAAEnB,CAAM,CACjBvC,CAAG6B,QAAS,CAAEA,EAAO,CAMlB,CAACtD,EACJ,IAAK2B,GAAK,GAAGS,EAAM,CAAEZ,CAAMY,MAA3B,CACKC,EAAYC,KAAK,CAACX,EAAD,C,GACpBF,CAAI,CAAAE,EAAA,CAAM,CAAES,EAAM,CAAAT,EAAA,EAGrB,CACAH,CAAMC,IAAK,CAAEA,CAAG,CACZA,CAAG2D,QAAS,EAAG3D,CAAG6B,Q,GACrB9B,CAAM6D,IAAK,CAAE5D,CAAG6B,QAAS,CAAAtD,CAAA,CAAEqF,KAAI,CAE3B5D,CAAG6D,K,GACPzB,EAAU,CAAErC,CAAMR,IAAK,CAAEQ,CAAMR,IAAK,EAAG,CAAA,CAAE,CAGzCyC,EAAK,CAAEhC,CAAG8D,QAAS,CAAE1B,EAAS2B,WAAY,CAAExE,EAAI,EAAGkB,CAAS,CAAC2B,EAAS2B,WAAW,CAAExE,EAAGwE,WAA1B,CAAuC,EAAG,CAAA,CAAE,CACpG7B,E,GACHF,EAAK,CAAAE,EAASP,QAAT,CAAmB,CAAEO,GAAS,CAGpCE,EAASpC,IAAK,CAAEA,EAvGM,CA4GxB,IAFA4B,CAAUhD,EAAEoB,IAAK,CAAEA,CAAG,CACtBA,CAAGgE,UAAW,CAAE,CAAA,CAAE,CACbzF,CAAE,CAAE,CAAC,CAAEA,CAAE,CAAEC,EAAC,CAAED,CAAC,EAApB,CACCwB,CAAO,CAAEC,CAAGD,OAAQ,CAAEC,CAAG6B,QAAS,CAAAtD,CAAA,CAAE,CACpCoC,EAAM,CAAEZ,CAAMY,MAAM,CACpBH,CAAK,CAAEM,EAAW,CAACd,CAAG,CAAEA,CAAGe,QAAT,CAAkB,EAEhC0B,EAAO,CAAE9B,EAAKgD,QAAS,EAAG3D,CAAG2D,S,GAC5BnD,CAAIzB,OAAQ,EAAG4B,EAAKgD,S,GACvBjB,CAAQ,CAAE3C,CAAM6D,IAAI,EAChB,CAAClB,CAAQ,EAAGA,CAAOuB,IAAK,GAAIzD,CAAK,CAAA,CAAA,CAAG,EAAGsB,E,GACtCY,CAAQ,EAAGA,CAAOuB,I,EACrBvB,CAAOwB,MAAM,CAAA,CAAE,CAEhBxB,CAAQ,CAAE3C,CAAM6D,IAAK,CAAEnB,EAAMmB,IAAI,CAACpD,CAAK,CAAA,CAAA,CAAE,CAAEG,EAAV,EAAgB,CAElDH,CAAK,CAAE,CAACkC,CAAOyB,IAAR,EAAa,CAGtBnE,CAAGT,IAAK,CAAEQ,CAAMR,IAAI,CAEhB,CAAChB,CAAE,EAAGiE,E,GACTG,EAAY,CAAE3C,CAAGiD,SAAS,CAC1BjD,CAAGqD,KAAK,CAACtD,CAAM,CAAEP,CAAO,CAAEQ,CAAGT,IAArB,CAA0B,CAClCiD,EAAS,CAAEzG,CAAS,CAChBiE,CAAGiD,SAAU,GAAIN,E,GACpB3C,CAAGpB,EAAEwB,KAAM,CAAEJ,CAAGiD,WAAS,CAI3Bd,CAAQ,CAAEpG,CAAS,CACnBgG,EAAO,CAAE/B,CAAG+B,OAAO,EACfA,EAAO,CAAE/B,CAAG+B,Q,GACfI,CAAQ,CAAEJ,EAAMpC,MAAM,CAACK,CAAG,CAAEQ,CAAN,EAAW,CAElCA,CAAK,CAAEA,CAAIzB,OAAQ,CAAEyB,CAAK,CAAE,CAACoB,CAAD,CAAY,CACxCO,CAAQ,CAAEA,CAAQ,GAAIpG,CACrB,CAAEoG,CACF,CAAEpC,CAAMgC,OAAO,CAACvB,CAAK,CAAA,CAAA,CAAE,CAAE,CAAA,CAAV,CAAgB,EAAG,CAACsB,CAAS,CAAE/F,CAAU,CAAE,EAAxB,CAA2B,CAE9D6G,EAAI,CAAEA,EAAI,CAAEA,EAAI,CAAE,CAACT,CAAQ,EAAG,EAAZ,CAAgB,CAAEA,CACrC,CAaA,OAXA,OAAOnC,CAAGgE,UAAU,CAEpBhE,CAAGD,OAAQ,CAAEC,CAAG6B,QAAS,CAAA,CAAA,CAAE,CAC3B7B,CAAGT,IAAI,CAAES,CAAGD,OAAOR,IAAI,CAEnBS,CAAGpB,EAAEwF,OAAQ,EAAG,CAACnC,EAAK,CAAEjC,CAAGiC,KAAX,CAAkB,EAAGA,EAAK,GAAIoC,C,GAEjDzB,EAAI,CAAEX,EAAK,GAAI,MACd,CAAEtF,EAAW2H,KAAK,CAAC1B,EAAD,CAClB,CAAE,GAAE,CAECC,EAAY,EAAGjB,CAAUhD,EAAEoC,SAEjC,CAAEY,CAAUhD,EAAEoC,SAAS,CAAC4B,EAAG,CAAEhB,CAAU,CAAEiB,EAAlB,CACvB,CAAED,EA9L6D,CAqMjE2B,SAASA,CAAI,CAACC,CAAO,CAAEnG,CAAI,CAAEuD,CAAU,CAAEtB,CAAI,CAAE2C,CAAQ,CAAEwB,CAAG,CAAEC,CAAW,CAAE1D,CAA9D,CAAwE,CAEpF,IAAI1C,EAAOqG,EAAa3E,EACvB4E,EAAO,KACPC,EAAUxG,CAAK,GAAI,QACnByG,EAAQ,CACP,GAAG,CAAE,CAAC,CACN,MAAM,CAAED,CAAQ,CAAE,CAAE,CAAE,CAAC,CACvB,EAAE,CAAE,EAAG,CAAEE,EAAM,EAAE,CACjB,QAAQ,CAAE/D,CAAQ,CAClB,IAAI,CAAE,CAAA,CALC,CAMP,CAEF4D,CAAItE,KAAM,CAAEA,CAAI,CAChBsE,CAAIxE,KAAM,CAAE6C,C,CACZ2B,CAAIvC,QAAS,CAAEqC,C,CACfE,CAAItG,MAAO,CAAEuG,CAAQ,CAAE,CAAA,CAAG,CAAE,CAAA,CAAE,CAC9BD,CAAI5F,OAAQ,CAAE4C,CAAU,CACxBgD,CAAIvG,KAAM,CAAEA,CAAI,CAIhBuG,CAAIhG,EAAG,CAAEkG,CAAK,CACdF,CAAII,OAAQ,CAAE,CAAC,CAAChE,CAAQ,CACpBY,CAAJ,EACCtD,CAAM,CAAEsD,CAAUtD,MAAM,CACxBqG,CAAY,CAAE/C,CAAUhD,EAAE,CACtB+F,CAAW9F,OAAf,EAGCP,CAAM,CAAAwG,CAAKL,IAAK,CAAE,GAAI,CAAEE,CAAW9F,OAAO,EAApC,CAAwC,CAAE+F,CAAI,CACpDA,CAAI1F,MAAO,CAAE3C,EAAQ,CACrBqI,CAAIzF,SAAU,CAAEF,EAAc,CAC9Be,CAAI,CAAE2E,CAAW3E,IAAI,CACrB8E,CAAKxB,IAAK,CAAEuB,CAAQ,EAAG,CAAC,CAAC7E,CAAI,EAAG,CAAC,CAACA,CAAGpB,EAAE0E,IAAK,EAAGtD,CAAxB,EAPxB,CAWC1B,CAAK2G,OAAO,CAEXH,CAAKL,IAAK,CAAEG,CAAI1F,MAAO,CAAEuF,CAAG,CAC7B,CAAC,CAAEG,CAHS,C,CAObA,CAAIrF,IAAK,CAAEiF,CAAQ,EAAG5C,CAAUrC,KArBjC,CAuBCqF,CAAIrF,IAAK,CAAEiF,CA/CwE,CA+DrFU,SAASA,EAAqB,CAACpC,CAAD,CAAa,CAC1C,IAAIqC,EAAWC,EAAWC,EAAcC,EAAUC,EAAUC,EAASC,CAAO,CAC5E,IAAKN,EAAU,GAAGO,CAAlB,CAEC,GADAH,CAAS,CAAEG,CAAU,CAAAP,CAAA,CAAU,CAC3B,CAACK,CAAQ,CAAED,CAAQC,QAAnB,CAA6B,EAAG,CAACJ,CAAU,CAAEtC,CAAW,CAAAqC,CAAU,CAAE,GAAZ,CAAxB,EACnC,IAAKE,EAAa,GAAGD,CAArB,CAECE,CAAS,CAAEF,CAAU,CAAAC,CAAA,CAAc,CAAEG,CAAO,CAACH,CAAY,CAAED,CAAU,CAAAC,CAAA,CAAa,CAAEvC,CAAxC,CAAmD,CAC3FwC,CAAS,EAAG,CAACG,CAAQ,CAAEhI,CAAIgI,QAAS,CAAAN,CAAA,CAAxB,C,EAEfM,CAAO,CAACJ,CAAY,CAAEC,CAAQ,CAAEE,CAAzB,CAV+B,CAiB3CG,SAASA,EAAU,CAAC7I,CAAI,CAAEyF,CAAM,CAAEO,CAAf,CAA2B,CAC7C,IAAIO,EAAMjD,CAAI,CA0Bd,OAzBIhD,CAAW,CAACmF,CAAD,CAAf,CAECA,CAAO,CAAE,CACR,OAAO,CAAEA,CAAMnB,QAAQ,CACvB,MAAM,CAAEmB,CAFA,CAFV,EAOKA,CAAMqD,Q,GACTrD,CAAMsB,KAAM,CAAE,CAAC,CAACtB,CAAMsB,KAAK,CAC3BtB,CAAO,CAAEtF,CAAO,CAACA,CAAO,CAAC,CAAA,CAAE,CAAEsF,CAAMqD,QAAX,CAAoB,CAAErD,CAA9B,EAAqC,CAGlD,CAACnC,CAAK,CAAEmC,CAAMU,SAAd,CAAyB,GAAIlH,C,GAChCwG,CAAMU,SAAU,CAAE,EAAG,CAAE7C,CAAK,GAAIA,CAAK,CAAG+C,CAAW,CAAA/C,CAAA,CAAM,EAAG+C,CAAU,CAAC/C,CAAD,CAAQ,CAAEA,EAAI,CAEjFmC,CAAMc,KAAM,GAAI,CAAA,C,GAGnBA,CAAK,CAAEd,CAAMa,KAAM,CAAEyC,QAAQ,CAAA,CAAG,EAAE,CAClC,CAACxC,CAAIyC,UAAW,CAAEvD,CAAlB,CAAyBwD,YAAa,CAAE1C,G,CAGtCP,C,GACHP,CAAMyD,YAAa,CAAElD,EAAU,CAEzBP,CA3BsC,CA8B9C0D,SAASA,EAAW,CAACnJ,CAAI,CAAEsD,CAAI,CAAE0C,CAAU,CAAEoD,CAAzB,CAAkC,CAIrDC,SAASA,CAAmB,CAAClG,CAAD,CAAQ,CAInC,GAAK,EAAG,CAAEA,CAAM,GAAIA,CAAO,EAAGA,CAAKmG,SAAU,CAAE,EAAG,CACjD,GAAI,CACHC,CAAK,CAAEpG,CAAKmG,SAAU,CAAE,CACxB,CAAEnG,CACF,CAAE,CAAC/B,EAAW2C,KAAK,CAACZ,CAAD,CAElB,EAAGnE,CAAO,EAAGA,CAAM,CAACD,CAAMyK,SAAP,CAAiBC,KAAK,CAACtG,CAAD,CAAQ,CAAA,CAAA,CAL/C,OAQKuG,IAoBT,OAlBIH,C,GAOHpG,CAAM,CAAEkD,CAAW,CAAArG,CAAK,CAAEA,CAAK,EAAGuJ,CAAII,aAAa,CAACC,EAAD,CAAhC,CAA2C,CACzDzG,C,GAGJnD,CAAK,CAAEA,CAAK,EAAG,GAAI,CAAE6J,EAAY,EAAE,CACnCN,CAAIO,aAAa,CAACF,EAAQ,CAAE5J,CAAX,CAAgB,CAEjCmD,CAAM,CAAEkD,CAAW,CAAArG,CAAA,CAAM,CAAEmJ,EAAW,CAACnJ,CAAI,CAAEuJ,CAAIQ,UAAU,CAAE/D,CAAU,CAAEoD,CAAnC,EAA2C,CAElFG,CAAK,CAAEtK,EAAS,CAEVkE,CA7B0C,CAJf,CAsCpC,IAAI6G,EAAcT,CAAI,CAqBtB,OAlBAjG,CAAK,CAAEA,CAAK,EAAG,EAAE,CACjB0G,CAAa,CAAEX,CAAmB,CAAC/F,CAAD,CAAM,CAIxC8F,CAAQ,CAAEA,CAAQ,EAAG,CAAC9F,CAAI2G,OAAQ,CAAE3G,CAAK,CAAE,CAAA,CAAtB,CAAyB,CAC9C8F,CAAOc,SAAU,CAAElK,CAAI,CACnBgG,C,GACHoD,CAAOF,YAAa,CAAElD,EAAU,CAI7B,CAACgE,CAAa,EAAG1G,CAAI2G,OAAQ,EAAG,CAACD,CAAa,CAAEX,CAAmB,CAAC/F,CAAI2G,OAAL,CAAnC,C,EAC/BD,CAAYvD,GAAI,EAAG,CAACuD,CAAYG,MAAO,GAAI7G,CAAI6G,MAAO,EAAGH,CAAYI,UAAW,GAAI9G,CAAI8G,UAArE,C,GAEtBJ,CAAa,CAAEA,CAAYC,QAAO,CAGhCD,CAAa,GAAI/K,CAAjB,EACCe,CAAK,EAAG,CAACgG,C,GACZqE,EAAQ,CAAArK,CAAA,CAAM,CAAE,QAAQ,CAAA,CAAG,CAC1B,OAAOsD,CAAI2B,OAAOpC,MAAM,CAACS,CAAI,CAAER,SAAP,CADE,EAE1B,CAEEkH,CAAYvD,GAAI,EAAGnD,CAAImD,GAA3B,CAEKuD,CAAYvD,G,GAEdnD,CAAK,CADFtD,CAAK,EAAGA,CAAK,GAAIgK,CAAYE,SAAjC,CACQvG,CAAS,CAACyF,CAAO,CAAEY,CAAV,CADjB,CAGQA,EANV,EAYC1G,CAAK,CAAEgH,EAAU,CAACN,CAAY,CAAEZ,CAAf,CAAuB,CAExCmB,EAAM,CAACP,CAAYQ,QAAQ,CAACC,EAAa,CAAE,MAAhB,CAAuB,CAAEnH,CAA9C,E,CAEP8E,EAAqB,CAACgB,CAAD,CAAS,CACvB9F,EAvBJ,CAuBH,KAAA,CAtFoD,CA0FtDuD,SAASA,EAAO,CAAClB,CAAD,CAAS,CACxB+E,SAASA,CAAM,CAACrK,CAAM,CAAE+I,CAAT,CAAkB,CAChC,IAAI/B,IAAK,CAAE1B,CAAMgF,OAAO,CAACtK,CAAM,CAAE+I,CAAT,CADQ,CAkBjC,OAdI9I,CAAW,CAACqF,CAAD,C,GAEdA,CAAO,CAAE,CACR,MAAM,CAAEA,CADA,EAER,CAGEA,CAAMiF,Q,GACTjF,CAAO,CAAExF,CAAO,CAACA,CAAO,CAAC,CAAA,CAAE,CAAEwF,CAAMiF,QAAX,CAAoB,CAAEjF,CAA9B,EAAqC,CAGtDA,CAAMmB,IAAK,CAAE+D,QAAQ,CAACxK,CAAM,CAAE+I,CAAT,CAAkB,CACtC,OAAO,IAAIsB,CAAM,CAACrK,CAAM,CAAE+I,CAAT,CADqB,CAEtC,CACMzD,CAnBiB,CAwBzB2E,SAASA,EAAU,CAACL,CAAM,CAAEb,CAAT,CAAkB,CAEpC,IAAI0B,EACHC,EAAUxL,CAAcwL,QAAS,EAAG,CAAA,EACpCzH,EAAOnD,CAAO,CACb,CACC,MAAM,CAAE8J,CAAM,CACd,KAAK,CAAE,CAAA,CAAE,CACT,KAAK,CAAE,CAAA,CAAE,CACT,IAAI,CAAE,CAAA,CAAE,CACR,IAAI,CAAE,CAAA,CAAE,CACR,GAAG,CAAE,UAAU,CACf,MAAM,CAAEe,EAPT,CAQC,CACD5B,CAVa,CAWb,CAcF,OAZKA,CAAO0B,Q,GAEXA,CAAQ,CAAEG,EAAUC,KAAK,CAACjB,CAAD,CAAQ,CACjC3G,CAAIwH,QAAS,CAAEA,CAAQ,CAAEA,CAAQ,CAAA,CAAA,CAAEK,YAAY,CAAA,CAAG,CAAE,GAAE,CAEvDL,CAAQ,CAAEC,CAAQ,CAAAzH,CAAIwH,QAAJ,CAAa,CAC3BA,CAAQ,EAAGA,CAAQ,GAAIC,CAAOK,I,GAGjC9H,CAAI2G,OAAQ,CAAEhK,CAACoL,KAAK,CAAC/H,CAAI2G,OAAL,EAAa,CAG3B3G,CA7B6B,CAgCrCgI,SAASA,EAAa,CAACjD,CAAS,CAAEkD,CAAZ,CAA2B,CAEhDC,SAASA,CAAQ,CAACxL,CAAI,CAAEyL,CAAI,CAAEzF,CAAb,CAAyB,CAOzC,IAAI2C,EAASD,EAAShE,EAAUgH,CAAS,CAEzC,GAAI1L,CAAK,EAAG,OAAOA,CAAK,EAAI,QAAS,EAAG,CAACA,CAAIsJ,SAAU,EAAG,CAACtJ,CAAIiK,OAAQ,EAAG,CAACjK,CAAI2K,QAAS,CAKvF,IAAKjG,EAAS,GAAG1E,CAAjB,CACCwL,CAAQ,CAAC9G,CAAQ,CAAE1E,CAAK,CAAA0E,CAAA,CAAS,CAAE+G,CAA3B,CACT,CACA,OAAOhI,CARgF,CAoCxF,OAzBIgI,CAAK,GAAIxM,C,GACZwM,CAAK,CAAEzL,CAAI,CACXA,CAAK,CAAEf,EAAS,CAEbe,CAAK,EAAG,EAAG,CAAEA,CAAK,GAAIA,C,GACzBgG,CAAW,CAAEyF,CAAI,CACjBA,CAAK,CAAEzL,CAAI,CACXA,CAAK,CAAEf,EAAS,CAEjByM,CAAU,CAAE1F,CAAW,CAAEA,CAAW,CAAA2F,CAAA,CAAY,CAAE3F,CAAW,CAAA2F,CAAA,CAAY,EAAG,CAAA,CAAG,CAAEH,CAAQ,CACzF9C,CAAQ,CAAE6C,CAAa7C,QAAQ,CAC3B+C,CAAK,GAAI,IAAb,CAECzL,CAAK,EAAG,OAAO0L,CAAU,CAAA1L,CAAA,CAF1B,EAICyL,CAAK,CAAE/C,CAAQ,CAAG+C,CAAK,CAAE/C,CAAO,CAAC1I,CAAI,CAAEyL,CAAI,CAAEzF,CAAb,CAA0B,CAAEyF,CAAI,CAChEzL,CAAK,EAAG,CAAC0L,CAAU,CAAA1L,CAAA,CAAM,CAAEyL,CAAnB,E,CAEL/C,CAAQ,EAAG+C,C,GACdA,CAAIxF,IAAK,CAAEoC,EAAS,CAEjBoD,CAAK,EAAG,CAAC9C,CAAQ,CAAEhI,CAAIgI,QAAS,CAAAN,CAAA,CAAxB,C,EAEXM,CAAO,CAAC3I,CAAI,CAAEyL,CAAI,CAAE/C,CAAb,CAAqB,CAEtB+C,CA7CkC,CAgD1C,IAAIE,EAAatD,CAAU,CAAE,GAAG,CAEhC5E,CAAO,CAAAkI,CAAA,CAAY,CAAEH,CAAQ,CAC7B5C,CAAU,CAAAP,CAAA,CAAW,CAAEkD,CArDyB,CA4DjDK,SAASA,EAAW,CAACpI,CAAI,CAAEkE,CAAP,CAAgB,CACnC,IAAImE,EAAW,IAAIC,OAAQ,EAAG,CAAC,IAAK,CAAA,CAAA,CAAG,EAAG1H,CAAK,CAAC,qBAAsB,CAAE,IAAI2H,SAAU,CAAE,GAAzC,CAAjB,EAC7BzI,EAAOuI,CAAQlC,aAAa,CAACC,EAAD,CAAU,CAEvC,OAAOoB,EAAUgB,KAAK,CAAC1I,CAAK,CAAE+C,CAAW,CAAA/C,CAAA,CAAM,CAAE+C,CAAU,CAACwF,CAAD,CAAU,CAAErI,CAAI,CAAEkE,CAAvD,CAJa,CAOpCuE,SAASA,EAAK,CAAC3I,CAAI,CAAEE,CAAI,CAAE5B,CAAb,CAAmB,CAChC,GAAIrC,CAAcC,UACjB,GAAI,CACH,OAAO8D,CAAImD,GAAG,CAACjD,CAAI,CAAE5B,CAAI,CAAE6B,CAAb,CADX,OAGGiG,EAAG,CACT,OAAOtF,CAAK,CAACsF,CAAC,CAAE9H,CAAJ,CADH,CAIX,OAAO0B,CAAImD,GAAG,CAACjD,CAAI,CAAE5B,CAAI,CAAE6B,CAAb,CATkB,CAYjCuH,SAASA,EAAU,CAACxH,CAAI,CAAEkE,CAAO,CAAEwE,CAAW,CAAEpH,CAAU,CAAE6C,CAAG,CAAEzD,CAA9C,CAAwD,CAC1E,IAAI4D,EAAO,IAAI,CAIf,MAHI,CAAChD,CAAW,EAAGgD,CAAIrB,GAAG0F,KAAM,EAAG,CAAClM,CAAC8H,QAAQ,CAACvE,CAAD,CAAzC,CACIyI,EAAK,CAACnE,CAAI,CAAEtE,CAAI,CAAE,CAAC,IAAI,CAAEsE,CAAP,CAAb,CADT,CAGG1B,EAAa4F,KAAK,CAAClE,CAAI,CAAEtE,CAAI,CAAEkE,CAAO,CAAEwE,CAAW,CAAEpH,CAAU,CAAE6C,CAAG,CAAEzD,CAApD,CALiD,CAQ3EkC,SAASA,EAAa,CAAC5C,CAAI,CAAEkE,CAAO,CAAEwE,CAAW,CAAEpH,CAAU,CAAE6C,CAAG,CAAEzD,CAA9C,CAAwD,CAG7E,IAAIzC,EAAGC,GAAG0K,EAAUC,EAASC,GAAWC,GAAYC,GAAavJ,EAAQ2E,EAAa6E,GAAMC,EAAexC,GAAU5G,EAAMqJ,GAC1H7E,EAAO,KACP8E,EAAS,EAAE,CAmCZ,GAjCI,CAAC,CAAClF,CAAQ,GAAIA,C,GACjBwE,CAAY,CAAExE,CAAO,CACrBA,CAAQ,CAAEzI,EAAS,CAGhB0I,CAAI,GAAI,CAAA,C,GACX6E,EAAY,CAAE,CAAA,CAAI,CAClB7E,CAAI,CAAE,EAAC,CAGJG,CAAI5E,IAAR,EAECD,CAAO,CAAE6E,CAAI,CACbA,CAAK,CAAEA,CAAI5E,IAAI,CACfuJ,EAAK,CAAE3E,CAAIhG,EAAE,CACboI,EAAS,CAAEpC,CAAIjD,QAAQ,CACvBvB,CAAK,CAAEmJ,EAAInJ,KAAM,EAAGL,CAAMK,KAAK,CAC/BqJ,EAAQ,CAAE7E,CAAI3C,KAAM,EAAG2C,CAAI3C,KAAM,GAAIoC,C,CACrCG,CAAQ,CAAE/D,CAAS,CAAC+D,CAAO,CAAEI,CAAIrF,IAAd,C,CACnBmF,CAAY,CAAE3E,CAAMsC,QAAQ,CACxBtC,CAAMY,MAAM3D,KAAM,GAAI,CAAA,C,GAIzBwH,CAAQ,CAAEA,CAAQ,EAAG,CAAA,CAAE,CACvBA,CAAOxH,KAAM,CAAE,CAAA,EAAK,CAErB4E,CAAW,CAAEA,CAAW,EAAG7B,CAAMrB,KAAK,CACtC4B,CAAK,CAAEV,SAASb,OAAQ,CAAEuB,CAAK,CAAEsB,EAlBlC,CAoBCxB,CAAK,CAAEwE,C,CAGJxE,C,GACC,CAACwB,CAAW,EAAGtB,CAAK,EAAGA,CAAIyC,IAAK,GAAI,M,GACvCnB,CAAW,CAAEtB,EAAI,CAEdsB,C,GACH8C,CAAY,CAAEA,CAAY,EAAG9C,CAAUS,QAAQ,CAC/CrB,CAAS,CAAEA,CAAS,EAAGY,CAAUhD,EAAEoC,SAAS,CACxCV,CAAK,GAAIsB,C,GAGZtB,CAAK,CAAEsB,CAAUtB,MAAK,CAEvBkE,CAAQ,CAAE/D,CAAS,CAAC+D,CAAO,CAAE5C,CAAUrC,IAApB,EAAyB,CAExCqC,CAAW,EAAGA,CAAUtB,KAAM,GAAIvE,C,GACtC,CAACyI,CAAQ,CAAEA,CAAQ,EAAG,CAAA,CAAtB,CAAyB7F,KAAM,CAAE2B,EAAI,CAMjCF,CAAImD,G,GACRnD,CAAK,CAAE+C,CAAW,CAAA/C,CAAA,CAAM,EAAG+C,CAAU,CAAC/C,CAAD,EAAM,CAGxCA,GAAM,CAYT,GAXAY,CAAS,CAAE,CAACwD,CAAQ,EAAGA,CAAOxH,KAAnB,CAA0B,GAAI,CAAA,CAAM,EAAG,CAACyM,EAAQ,EAAGzI,CAAQ,CAEtEwI,CAAc,CAAExI,CAAQ,CACpBA,CAAS,GAAI,CAAA,C,GAEhBwI,CAAc,CAAEzN,CAAS,CACzBiF,CAAS,CAAEY,CAAUhD,EAAEoC,UAAS,CAEjCwD,CAAQ,CAAEpE,CAAIuJ,QACb,CAAElJ,CAAS,CAACL,CAAIuJ,QAAQ,CAAEnF,CAAf,CACX,CAAEA,CAAO,CACNzH,CAAC8H,QAAQ,CAACvE,CAAD,CAAO,EAAG,CAAC0I,EAMvB,IAHAG,CAAQ,CAAEG,EACT,CAAE1H,CAAW,CACZ6C,CAAI,GAAI1I,CAAU,EAAG6F,CAAY,EAAG,IAAI2C,CAAI,CAACC,CAAO,CAAE,OAAO,CAAE5C,CAAU,CAAEtB,CAAI,CAAEF,CAAI,CAAEqE,CAAG,CAAEC,CAAW,CAAE1D,CAA7D,CAAsE,CAC/GzC,CAAE,CAAE,C,CAAGC,EAAE,CAAE8B,CAAIvB,OAAO,CAAER,CAAE,CAAEC,EAAC,CAAED,CAAC,EAArC,CAEC2K,CAAS,CAAE5I,CAAK,CAAA/B,CAAA,CAAE,CAClB6K,EAAU,CAAE,IAAI7E,CAAI,CAACC,CAAO,CAAE,MAAM,CAAE2E,CAAO,CAAED,CAAQ,CAAE9I,CAAI,CAAE,CAACqE,CAAI,EAAG,CAAR,CAAW,CAAElG,CAAC,CAAEmG,CAAW,CAAE1D,CAAxE,CAAiF,CACrGqI,EAAW,CAAEN,EAAK,CAAC3I,CAAI,CAAE8I,CAAQ,CAAEE,EAAjB,CAA2B,CAC7CM,CAAO,EAAGP,CAAOvK,EAAEoC,SAAU,CAAEmI,CAAOvK,EAAEoC,SAAS,CAACqI,EAAU,CAAED,EAAb,CAAwB,CAAEC,EAC5E,CACC,KAGGzH,CAAW,EAAG,CAACxB,CAAImD,GAAG0F,M,GACzBE,CAAQ,CAAEG,EAAY,CAAE1H,CAAW,CAAE,IAAI2C,CAAI,CAACC,CAAO,CAAEwC,EAAS,EAAG,MAAM,CAAEpF,CAAU,CAAEtB,CAAI,CAAEF,CAAI,CAAEqE,CAAG,CAAEC,CAAW,CAAE1D,CAAxE,CAAiF,CAC1HuI,EAAK,EAAG,CAAC3E,CAAIf,K,GAChBsF,CAAOnJ,IAAK,CAAE4E,GAAI,CAGpB8E,CAAO,EAAGX,EAAK,CAAC3I,CAAI,CAAEE,CAAI,CAAE6I,CAAb,CAChB,CACA,OAAOK,CAAc,CAAEA,CAAa,CAACE,CAAM,CAAEP,CAAT,CAAkB,CAAEO,CApC/C,CAuCX,MAAO,EAxGsE,CAkH9ExI,SAASA,CAAK,CAACsF,CAAC,CAAE9H,CAAI,CAAEkL,CAAV,CAAoB,CACjC,IAAI/M,EAAUR,CAAcwN,QAAQ,CAACrD,CAAC,CAAE9H,CAAI,CAAEkL,CAAV,CAAmB,CACvD,GAAI,EAAG,CAAEpD,CAAE,GAAIA,EACd,MAAM,IAAI/I,CAAIqM,IAAI,CAACjN,CAAD,CAAS,CAE5B,MAAO,CAAC6B,CAAIc,QAAS,EAAGd,CAAIsG,OAAQ,CAAErI,EAAW2H,KAAK,CAACzH,CAAD,CAAU,CAAEA,CALjC,CAQlCkN,SAASA,CAAW,CAAClN,CAAD,CAAU,CAC7BqE,CAAK,CAAC,gBAAiB,CAAErE,CAApB,CADwB,CAI9BwK,SAASA,EAAM,CAACN,CAAM,CAAE3G,CAAI,CAAE4J,CAAU,CAAEC,CAA3B,CAAwC,CAKtDC,SAASA,CAAoB,CAACC,CAAD,CAAQ,CACpCA,CAAM,EAAGC,CAAG,CACRD,C,EACH9H,CAAOgI,KAAK,CAACtD,CAAMuD,OAAO,CAACF,CAAG,CAAED,CAAN,CAAY7C,QAAQ,CAACiD,EAAQ,CAAE,KAAX,CAAlC,CAHuB,CAOrCC,SAASA,CAAa,CAAC7I,CAAD,CAAU,CAC/BA,CAAQ,EAAGoI,CAAW,CAAC,gCAAiC,CAAEpI,CAAQ,CAAE,oBAAqB,CAAEoF,CAArE,CADS,CAIhC0D,SAASA,CAAQ,CAACC,CAAG,CAAEC,CAAI,CAAEhJ,CAAO,CAAE7B,CAAS,CAAE8K,CAAK,CAAEtG,CAAI,CAAEuG,EAAO,CAAEC,EAAO,CAAEC,EAAM,CAAEC,EAAK,CAAEC,EAAU,CAAE/L,EAA1F,CAAiG,CAK7GoF,C,GACHsG,CAAM,CAAE,GAAG,CACX9K,CAAU,CAAEuE,EAAO,CAEpB2G,EAAM,CAAEA,EAAM,EAAGhB,CAAU,CAC3B,IAAIkB,GAAe,CAACP,CAAK,EAAGX,CAAT,CAAqB,EAAG,CAAA,EAC1CrJ,GAAQ,GACRH,GAAO,GACP2K,GAAW,GACXC,GAAa,GACbC,GAAc,GACdC,GAAiB,GACjBzB,GAAU,GACV0B,GAAa,GAEbC,GAAQ,CAACR,EAAM,EAAG,CAACJ,CAAM,EAAG,CAACC,EAAO,CAGrClJ,CAAQ,CAAEA,CAAQ,EAAG,CAACoJ,EAAO,CAAEA,EAAO,EAAG,O,CAASH,CAA7B,CAAmC,CACxDV,CAAoB,CAAChL,EAAD,CAAO,CAC3BkL,CAAI,CAAElL,EAAM,CAAEwL,CAAG3L,OAAO,CACpB+L,EAAJ,CACK5D,C,EACH7E,CAAOgI,KAAK,CAAC,CAAC,GAAG,CAAE,IAAK,CAAEU,EAAMzD,QAAQ,CAACmE,EAAe,CAAE,IAAlB,CAAwB,CAAE,IAArD,CAAD,CAFd,CAIW9J,CAAJ,EACFA,CAAQ,GAAI,M,GACX+J,EAAW7K,KAAK,CAACkK,EAAD,C,EACnBhB,CAAW,CAAC,4CAAD,CAA8C,CAE1DmB,EAAa,CAAES,CAAQ,CAAA,CAAA,CAAE,CACzBA,CAAQ,CAAA,CAAA,CAAG,CAAE5E,CAAM6E,UAAU,CAACD,CAAQ,CAAA,CAAA,CAAE,CAAEzM,EAAb,CAAmB,CAChDyM,CAAQ,CAAEE,CAAKC,IAAI,CAAA,CAAE,CACrBzJ,CAAQ,CAAEsJ,CAAQ,CAAA,CAAA,CAAE,CACpBH,EAAM,CAAE,CAAA,EAAI,CAETT,E,EAEHgB,EAAW,CAAChB,EAAMzD,QAAQ,CAACiD,EAAQ,CAAE,GAAX,CAAe,CAAEW,EAAY,CAAE9K,CAA9C,CACVkH,QAAQ,CAAC0E,EAAU,CAAE,QAAQ,CAACtB,CAAG,CAAEuB,CAAO,CAAEC,CAAK,CAAEzH,CAAG,CAAE0H,CAAQ,CAAEC,CAAQ,CAAEC,CAAG,CAAEC,CAApD,CAA2D,CAiBvF,OAhBID,CAAJ,EACC7L,EAAK,EAAG4L,CAAS,CAAE,GAAG,CACtBhB,EAAW,EAAG,GAAI,CAAEkB,CAAM,CAAE,KAF7B,CAGWJ,CAAJ,EACNf,EAAS,EAAG1G,CAAI,CAAE2H,CAAS,CAAE,GAAG,CAChCd,EAAe,EAAG7G,CAAI,CAAE,GAAI,CAAE6H,CAAM,CAAE,KAFhC,CAGIL,CAAJ,CACNpC,EAAQ,EAAGuC,CADL,EAGFD,CAAS,GAAI,S,GAChBZ,EAAW,EAAGa,EAAQ,CAEvBzL,EAAM,EAAG8D,CAAI,CAAE2H,CAAS,CAAE,GAAG,CAC7Bf,EAAY,EAAG5G,CAAI,CAAE,GAAI,CAAE6H,CAAM,CAAE,IAAI,CACvCC,CAAY,CAAEA,CAAY,EAAG3L,EAAYC,KAAK,CAACsL,CAAD,E,CAExC,EAjBgF,CAAhF,CAkBNhL,MAAM,CAAC,CAAC,CAAE,EAAJ,CAAO,CAGjBqL,CAAQ,CAAE,CACR7K,CAAO,CACP7B,CAAU,EAAG,CAAC,CAACmK,CAAY,EAAGsC,CAAY,EAAG,EAAE,CAC/Cf,EAAM,EAAG,CAAA,CAAE,CACXiB,EAAW,CAACrB,EAAU,CAAEC,EAAW,CAAEC,EAA1B,CAAyC,CACpDmB,EAAW,CAACjM,EAAI,CAAEG,EAAK,CAAEwK,EAAd,CAAuB,CAClCtB,EAAO,CACP0B,EAAU,CACVL,EAAa,EAAG,CARR,CASR,CACF7I,CAAOgI,KAAK,CAACmC,CAAD,CAAS,CACjBhB,E,GACHK,CAAKxB,KAAK,CAACsB,CAAD,CAAS,CACnBA,CAAQ,CAAEa,CAAO,CACjBb,CAAQ,CAAA,CAAA,CAAG,CAAEvB,GAjDR,CAmDIa,E,GACVT,CAAa,CAACS,EAAW,GAAIU,CAAQ,CAAA,CAAA,CAAG,EAAGA,CAAQ,CAAA,CAAA,CAAG,GAAI,MAAO,EAAGV,EAAvD,CAAkE,CAC/EU,CAAQ,CAAA,CAAA,CAAG,CAAE5E,CAAM6E,UAAU,CAACD,CAAQ,CAAA,CAAA,CAAE,CAAEzM,EAAb,CAAmB,CAChDyM,CAAQ,CAAEE,CAAKC,IAAI,CAAA,E,CAEpBtB,CAAa,CAAC,CAACmB,CAAQ,EAAGV,EAAb,CAAwB,CACrC5I,CAAQ,CAAEsJ,CAAQ,CAAA,CAAA,CAvF+F,CA2FlH,IAAIjC,EAAQ8C,EAASD,EACpBrF,EAAY9G,CAAK,EAAGA,CAAI8G,WACxBwF,EAAS,CAAA,EACTtC,EAAM,EACNyB,EAAQ,CAAA,EACRxJ,EAAUqK,EACVf,EAAU,AAAC,CAAA,AAAC,CAAA,CAACe,CAAH,CAAU,CAkCrB,OAzBI1C,C,GACHjD,CAAO,CAAEpJ,CAAe,CAAEoJ,CAAO,CAAEhJ,EAAe,CAGnDyM,CAAa,CAACqB,CAAM,CAAA,CAAA,CAAG,EAAGA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAEC,IAAI,CAAA,CAAG,CAAA,CAAA,CAA/B,CAAkC,CAE/C/E,CAAMO,QAAQ,CAAC5J,CAAI,CAAE+M,CAAP,CAAgB,CAE9BP,CAAoB,CAACnD,CAAMhI,OAAP,CAAe,EAE/BqL,CAAI,CAAEsC,CAAO,CAAAA,CAAM3N,OAAQ,CAAE,CAAhB,E,EAChByL,CAAa,CAAC,EAAG,CAAEJ,CAAI,GAAIA,CAAI,EAAI,CAACA,CAAI,CAAA,CAAA,CAAG,GAAIA,CAAI,CAAA,CAAA,CAAI,EAAGA,CAAI,CAAA,CAAA,CAAjD,CAAoD,CAK9DJ,CAAJ,EACCN,CAAO,CAAEiD,EAAS,CAACD,CAAM,CAAE3F,CAAM,CAAEiD,CAAjB,CAA4B,CAC9CN,CAAMkD,MAAO,CAAEF,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,EAF1B,CAIChD,CAAO,CAAEiD,EAAS,CAACD,CAAM,CAAEtM,CAAT,C,CAEfsJ,CAAMT,K,GACTS,CAAMT,KAAM,CAAE,CAAO,MAAApI,KAAK,CAACkG,CAAD,EAAQ,CAE5B2C,CAnJ+C,CAsJvD+C,SAASA,EAAW,CAACjM,CAAI,CAAEG,CAAK,CAAEpB,CAAd,CAAmB,CACrC,MAAO,CAACiB,CAAIW,MAAM,CAAC,CAAC,CAAE,EAAJ,CAAO,CAAER,CAAKQ,MAAM,CAAC,CAAC,CAAE,EAAJ,CAAO,CAAE5B,CAAG4B,MAAM,CAAC,CAAC,CAAE,EAAJ,CAAjD,CAD8B,CAIvC0L,SAASA,EAAc,CAACC,CAAK,CAAEzO,CAAR,CAAc,CACpC,MAAO,MAAO,CAAE,CAACA,CAAK,CAAEA,CAAK,CAAE,IAAK,CAAE,EAAtB,CAA0B,CAAE,QAAS,CAAEyO,CAAM,CAAA,CAAA,CAAG,CAAE,GAAI,CAAE,CAACA,CAAM,CAAA,CAAA,CAAG,EAAG,CAACzO,CAAK,CAAE,cAAe,CAAEyO,CAAM,CAAA,CAAA,CAAG,CAAE,GAAI,CAAE,EAAvD,CAA2D,CAAE,CAACA,CAAM,CAAA,CAAA,CAAG,CAAE,YAAa,CAAEA,CAAM,CAAA,CAAA,CAAG,CAAE,GAAI,CAAE,EAA5C,CADjG,CAIrCf,SAASA,EAAW,CAAChB,CAAM,CAAEgC,CAAQ,CAAE3M,CAAnB,CAAyB,CAE5C4M,SAASA,CAAW,CAACtC,CAAG,CAAEuC,CAAO,CAAEC,CAAM,CAAEC,CAAK,CAAEC,CAAI,CAAEC,EAAQ,CAAEC,EAAG,CAAEC,EAAE,CAAEC,EAAK,CAAEC,EAAG,CAAEC,EAAK,CAAEC,EAAO,CAAEC,EAAI,CAAEC,EAAI,CAAEC,EAAK,CAAEC,EAAQ,CAAEC,EAAI,CAAEC,EAAK,CAAE/O,EAAK,CAAEgP,EAApI,CAA0I,CAW7JC,SAASA,EAAS,CAACC,CAAO,CAAEC,CAAG,CAAEC,CAAM,CAAEjP,CAAM,CAAEX,CAAI,CAAE6P,CAAY,CAAEC,CAAU,CAAEC,CAA/D,CAA0E,CAG3F,GAAIH,C,GACCvB,C,GACC2B,CAAM,GAAI,Q,GACbC,CAAO,CAAE5B,CAAQ6B,OAAQ,CAAE7B,CAAQ6B,OAAQ,EAAG,CAAA,CAAE,CAChDD,CAAMtE,KAAK,CAAC+C,CAAD,EAAM,EAEd,CAACsB,CAAM,EAAGG,E,EACb9B,CAAQ1C,KAAK,CAAC+C,CAAIjM,MAAM,CAACkN,CAAGtP,OAAJ,CAAX,EAAwB,CAGnCuP,CAAO,GAAI,KAAK,CACnB,IAAI1L,EAAM,CAACvD,CACT,CAAE,YAAa,CAAEA,CAAO,CAAE,IAC1B,CAAEX,CACD,CAAE,MACF,CAAE,MAJK,CAKT,CAAE,CAAC+P,CACF,CAAE,CAACF,CACF,CAAE,GAAI,CAAEA,CACR,CAAElP,CACD,CAAE,EACF,CAAGX,CAAK,CAAE,EAAG,CAAE,GAAI,CAAE4P,CAJrB,CAKC,CAAE,CAACE,CAAW,EAAG,EAAf,CACL,CAAE,CAACC,CAAU,CAAEpP,CAAO,CAAE,EAAG,CAAEX,CAAK,CAAE6P,CAAa,EAAG,EAAG,CAAED,C,CAAQ,EAA/D,CAPD,CAOoE,CAIvE,OAFA1L,CAAI,CAAEA,CAAI,CAAE,CAAC6L,CAAU,CAAE,GAAI,CAAEA,CAAU,CAAE,EAA/B,CAAkC,CAEvCJ,CAAI,CAAE,CAACzL,CAAGzB,MAAM,CAAC,CAAC,CAAE,CAAJ,CAAO,GAAI,WACjC,CAAEyB,CAAGzB,MAAM,CAAC,CAAD,CACX,CAAEyB,CAFU,CAjBM,CAsBrB,OAAOwL,CAnCoF,CAP5Ff,EAAS,CAAEA,EAAS,EAAG,EAAE,CACzBH,CAAO,CAAEA,CAAO,EAAGD,CAAQ,EAAGU,EAAO,CACrCP,CAAK,CAAEA,CAAK,EAAGI,EAAK,CACpBC,EAAI,CAAEA,EAAI,EAAGO,EAAK,EAAG,EAAE,CAEvB,IAAIc,GAAMC,GAAMC,EAAM,CAwCtB,GAAI,CAAA1B,EAAI,EAAI2B,CAAO,EAAIC,EAuBtB,OApBInC,CAAS,EAAGgB,EAAS,EAAG,CAACkB,CAAO,EAAG,CAACC,C,GAGnC,CAACR,CAAM,EAAGG,CAAU,EAAGF,E,GAC1BG,EAAK,CAAEK,CAAU,CAAAC,CAAA,CAAW,CACxBlB,EAAInP,OAAQ,CAAE,CAAE,CAAEG,EAAM,CAAE4P,E,GAC7BA,EAAK,CAAEZ,EAAI/M,MAAM,CAAC2N,EAAI,CAAE5P,EAAM,CAAE,CAAf,CAAiB,CAClC6O,EAAS,CAAElQ,CAAe,CAAE,GAAI,CAAEiR,EAAK,CAAEhR,CAAe,CACxDkR,EAAO,CAAEK,CAAU,CAAAtB,EAAA,CAAS,CACvBiB,E,GACJK,CAAU,CAAAtB,EAAA,CAAU,CAAE,CAAC,CACvBsB,CAAU,CAAAtB,EAAA,CAAU,CAAEiB,EAAO,CAAE3H,EAAM,CAAC0G,EAAQ,CAAE3N,CAAK,EAAG2M,CAAQ,CAAE,CAAA,CAA7B,CAAkC,CACvEiC,EAAMpC,MAAMvC,KAAK,CAAC,CAAC,MAAM,CAAE2E,EAAT,CAAD,EAAkB,CAEhCA,EAAO,GAAI,C,EACd,CAACL,CAAO,EAAG5B,CAAX,CAAoB1C,KAAK,CAAC,CAAC,MAAM,CAAE2E,EAAT,CAAD,GAAkB,CAKvCC,CAEP,CAAE,CAACA,CAAO,CAAE,CAACrB,E,CAAOqB,CAAO,CAAEvE,CAAI,CAAE,GAAjC,CACF,CAAEwE,CAED,CAAE,CAACA,CAAO,CAAE,CAACrB,E,CAAOqB,CAAO,CAAExE,CAAI,CAAE,GAAjC,CACF,CAEA,CAACwC,CACC,CAAE,CAACkC,CAAU,E,CAAID,CAAU,CAAAC,CAAA,CAAY,CAAElQ,EAAK,E,CAAIgO,CAAhD,CACF,CAAE,EAFJ,CAGA,CAAE,CAACe,EACF,CAAGmB,CACF,CAAE,EACF,CAAE,CAACE,CAAW,CAAEpB,EAAI/M,MAAM,CAACmO,CAAU,CAAEpQ,EAAb,C,CAAqBwP,CAC9C,CAAE,CAACA,CAAM,CAAEG,CAAU,CAAEF,CAAO,CAAE,CAAA,C,CAAO,IAArC,CACF,CAAE,KAFD,CAEQ,CAAEW,CAAW,CAAE,CAACA,CAAW,CAAEpQ,EAAM,CAAEwL,CAAG3L,O,CAAS,IAAlC,CAE1B,CAAEwO,EAGD,CAAE,CAAC6B,CAAW,EAAGrF,CAAW,CAACgB,CAAD,C,CAAU2D,CAAM,CAAEtB,C,CAAMyB,CAAU,CAAE1B,C,CAAOmC,CAAW,CAAEpQ,EAAM,CAAEwL,CAAG3L,O,CAA6BqO,CAAK,CAAE,GAAjI,CACF,CAAEA,CAED,CAAGA,CAAImC,MAAM,CAAC,GAAD,CAAKC,KAAK,CAAC,GAAD,CAAKlI,QAAQ,CAACmI,EAAK,CAAEtB,EAAR,CACnC,CAAE,CAACV,EACF,CAAE,CAACiC,CAAO,CAAA,EAAEN,CAAF,CAAc,CAAE,CAAA,C,CAAMhC,CAAIxP,OAAO,CAAC,CAAD,CAAI,GAAI,GAAI,EAAG,CAACuR,CAAU,CAAAC,CAAA,CAAY,CAAElQ,EAAzB,C,CAAiC6P,EAAK,CAAE,EAAG,CAAEtB,EAArG,CACF,CAAEJ,EAFD,CAIH,CAAEA,EACD,CAAEA,EACF,CAAES,EAED,CAAG,CAAC4B,CAAO,CAAAN,CAAU,EAAV,CAAc,CAAE,CAAA,C,CAAOtB,EAA/B,CACF,CAAE,CAACL,EACF,CAAE,CAACiC,CAAO,CAAA,EAAEN,CAAF,CAAc,CAAE,CAAA,C,CAAM3B,EAA9B,CACF,CAAE,EAFD,CAIH,CAAEC,EACD,CAAE,CAACgC,CAAO,CAAAN,CAAA,CAAY,EAAGrF,CAAW,CAACgB,CAAD,C,CAAU,GAA5C,CACF,CAAEkC,CACD,CAAE,EACF,CAAE,CAACgC,CAAO,CAAErB,E,CAAMsB,CAAO,CAAErB,E,CAAM,GAA/B,CA/BP,CAkCL,CAnEC9D,CAAW,CAACgB,CAAD,CAlDiJ,CAuH9J,IAAI2D,EAAOC,EAAQE,EAClBK,EACAD,EACAK,EAAa,EACbD,EAAYjP,CAAK,CAAEA,CAAIuP,MAAO,CAAE5C,CAAS,EAAG,CAACA,CAAQ4C,MAAO,CAAE5C,CAAQ4C,MAAO,EAAG,CAAA,CAApC,EAC5CD,EAAS,CAAA,EACTP,EAAY,CAAC,CAAC,CAAC,EAAH,EACZC,EAAa,CAAC,CAGf,MAAO,CAACrE,CAAO,CAAE,CAAC3K,CAAK,CAAE,GAAI,CAAE,EAAd,CAAV,CACNkH,QAAQ,CAAQ,OAAA,CAAE,IAAV,CAERA,QAAQ,CAACsI,EAAO,CAAE5C,CAAV,CAtImC,CAyI7CL,SAASA,EAAS,CAACkD,CAAG,CAAEzP,CAAI,CAAE4J,CAAZ,CAAwB,CAGzC,IAAIzL,EAAGuR,EAAMnO,EAAS7B,EAAWC,EAAQgQ,GAAQC,GAAYC,GAASC,GAASC,EAAUC,GAASC,EAAcnF,EAAcH,GAC7HuF,GAAatJ,EAAUuJ,GAAYC,EAAanO,GAAS0E,GAAQ0J,EAAYC,GAASC,GAAQC,GAAUC,EAAUhH,EAASiH,GAAUC,GACrIC,EAAiB,EACjBC,EAAO,GACPC,GAAc,CAAA,EACd1S,GAAIqR,CAAG9Q,OAAO,CAgBf,IAdI,EAAG,CAAEqB,CAAK,GAAIA,CAAlB,EACC4G,CAAS,CAAEgD,CAAW,CAAE,aAAc,CAAE5J,CAAIkH,QAAQ,CAACiD,EAAQ,CAAE,GAAX,CAAepJ,MAAM,CAAC,CAAC,CAAE,EAAJ,CAAQ,CAAE,GAAI,CAAEf,CAAI,CAC7FA,CAAK,CAAE,EAFR,EAIC4G,CAAS,CAAE5G,CAAI4G,SAAU,EAAG,SAAS,CACjC5G,CAAI8G,U,GACPgK,EAAWhK,UAAW,CAAE,CAAA,EAAI,CAEzB9G,CAAI6G,M,GACPiK,EAAWjK,MAAO,CAAE,CAAA,EAAI,CAEzBoJ,CAAa,CAAEjQ,CAAIC,KAAK,CACxBiQ,EAAY,CAAElQ,CAAI4C,O,CAEdzE,CAAE,CAAE,CAAC,CAAEA,CAAE,CAAEC,EAAC,CAAED,CAAC,EAApB,CAKC,GAHAuR,CAAK,CAAED,CAAI,CAAAtR,CAAA,CAAE,CAGT,EAAG,CAAEuR,CAAK,GAAIA,EAEjBmB,CAAK,EAAG,MAAO,CAAEnB,CAAK,CAAE,GAAG,CAC1B,KAGD,GADAnO,CAAQ,CAAEmO,CAAK,CAAA,CAAA,CAAE,CACbnO,CAAQ,GAAI,IAEfsP,CAAK,EAAG,KAAM,CAAEnB,CAAK,CAAA,CAAA,CAAG,CAAE,WAAW,CACpC,IAAK,CAuCN,GAtCAhQ,CAAU,CAAEgQ,CAAK,CAAA,CAAA,CAAE,CACnBzN,EAAQ,CAAEyN,CAAK,CAAA,CAAA,CAAE,CACjB/P,CAAO,CAAE8M,EAAc,CAACiD,CAAK,CAAA,CAAA,CAAE,CAAE,QAAV,CAAoB,CAAE,IAAK,CAAEjD,EAAc,CAAC9B,EAAO,CAAE+E,CAAK,CAAA,CAAA,CAAf,CAAkB,CACpFjG,CAAQ,CAAEiG,CAAK,CAAA,CAAA,CAAE,CACjBiB,EAAQ,CAAEjB,CAAK,CAAA,CAAA,CAAE,CACjB/I,EAAO,CAAE+I,CAAK,CAAA,CAAA,CAAE,EACVa,EAAO,CAAEhP,CAAQ,GAAI,O,GAC1BqP,CAAe,CAAE,CAAC,CACdX,CAAa,EAAG,CAACnF,CAAa,CAAE4E,CAAK,CAAA,CAAA,CAArB,C,GACnBkB,CAAe,CAAEX,CAAYhG,KAAK,CAACa,CAAD,GAAc,EAG9C0F,EAAS,CAAEjP,CAAQ,GAAI,IAA3B,CACK7B,C,GACH6B,CAAQ,CAAE7B,CAAU,GAAIuE,CAAQ,CAAE,GAAI,CAAEvE,CAAU,CAAE6B,EAFtD,EAKKU,E,GAEHkO,EAAW,CAAEnJ,EAAU,CAACL,EAAM,CAAEmK,EAAT,CAAqB,CAC5CX,EAAUvJ,SAAU,CAAEA,CAAS,CAAE,GAAI,CAAErF,CAAO,CAE9CgL,EAAS,CAACtK,EAAO,CAAEkO,EAAV,CAAqB,CAC9BD,EAAWjG,KAAK,CAACkG,EAAD,EAAY,CAGxBI,E,GAEJH,CAAY,CAAE7O,CAAO,CAErB+O,EAAQ,CAAEO,CAAI,CACdA,CAAK,CAAE,GAAE,CAEVR,CAAW,CAAEZ,CAAI,CAAAtR,CAAE,CAAE,CAAJ,CAAM,CACvBkS,CAAW,CAAEA,CAAW,EAAGA,CAAW,CAAA,CAAA,CAAG,GAAI,O,CAE9CK,EAAS,CAAGjH,CAAQ,CAAE,gBAAiB,CAAE,KAAM,CAE3C+G,EAAS,EAAG,CAAC1F,CAAa,EAAG6F,EAAQ,EAAGjR,CAAU,EAAGA,CAAU,GAAIuE,CAAvD,EAAiE,CAWhF,GATAwM,CAAS,CAAE,UAAW,CAAE9Q,CAAO,CAAE,IAAI,CACjC8J,C,GACHgH,CAAS,CAAE,SAAU,CAAEA,CAAS,CAAE,2CAA4C,CAAEhH,CAAQ,CAAE,QAAO,CAElGgH,CAAS,CAAE,IAAIM,QAAQ,CAAC,eAAe,CAAE,MAAO,CAAEnK,CAAS,CAAE,GAAI,CAAEgK,CAAe,CAAE,GAAI,CAAErP,CACrF,CAAE,IAAK,CAAEkP,CADS,CACA,CAEvBA,CAAQjE,MAAO,CAAE1B,CAAY,CAC7B2F,CAAQO,KAAM,CAAEzP,CAAO,CACnBqI,EACH,OAAO6G,CACR,CACAT,EAAQ,CAAE,CAdsE,CA6BjF,GAbAa,CAAK,EAAIL,EACR,CAAE,CAAC5G,CAAW,CAAE,CAACH,CAAQ,CAAE,UAAW,CAAE,EAAxB,CAA4B,CAAE,SAAU,CAAEiH,EAAxD,CAAkE,CAAE,CAACV,EACtE,CAAE,CAACA,EAAQ,CAAE,C,CAAGD,CAAS,CAAED,EAAQ,CAAE,CAAA,C,CAAM,KAAM,CAAEpQ,CAAU,CAAE,SAAU,CAAE,CAACoL,CAC3E,CAAE,CAAEmF,CAAa,CAAAW,CAAe,CAAE,CAAjB,CAAoB,CAAEH,C,CAAWG,CAAhD,CACF,CAAE,GAAI,CAAEjR,CAAO,CAAE,GAFyD,CAEpD,CAAE,GAFvB,CAGF,CAAE4B,CAAQ,GAAI,GACb,CAAE,CAACqO,EAAW,CAAE,CAAA,C,CAAM,IAAK,CAAEjF,EAAO,CAAA,CAAA,CAAG,CAAE,GAAvC,CACF,CAAE,CAACkF,EAAQ,CAAE,CAAA,C,CAAM,MAAO,CAAElF,EAAO,CAAA,CAAA,CAAG,CAAE,eAAtC,CANkE,CAQtE,CAAE,CAACoF,CAAS,CAAEJ,EAAO,CAAE,CAAA,C,CAAM,oBAC5B,CAAE,CAAC1N,EAAQ,CAAEiO,EAAWvR,OAAQ,CAAE,GAAhC,CAAqC,CAAE,GACzC,CAAEgB,CAAO,CAAE,IAFV,CAEgB,CAEfyQ,CAAY,EAAG,CAACC,EAAY,CAE/B,GADAQ,CAAK,CAAE,GAAI,CAAEA,CAAI9P,MAAM,CAAC,CAAC,CAAE,EAAJ,CAAQ,CAAE,GAAG,EAChC6I,CAAW,EAAGkB,E,GAEjB+F,CAAK,CAAE,IAAIE,QAAQ,CAAC,eAAe,CAAE,MAAO,CAAEnK,CAAS,CAAE,GAAI,CAAEgK,CAAe,CAAE,GAAI,CAAER,CAAY,CAAE,WAAY,CAAES,CAAK,CAAE,GAAtG,CAA0G,CACzH/F,C,GACH,CAACmF,CAAa,CAAAW,CAAe,CAAE,CAAjB,CAAoB,CAAEC,CAApC,CAAyCrE,MAAO,CAAE1B,EAAY,CAE/D+F,CAAIG,KAAM,CAAEzP,CAAO,CACfqI,GACH,OAAOiH,CACR,CAMDA,CAAK,CAAEP,EAAQ,CAAEI,EAAS,CAAE,KAAM,CAAEN,CAAY,CAAE,cAAe,CAAE,CAACQ,CAAe,EAAGC,CAAnB,CAAyB,CAAE,GAAG,CACjG/F,CAAa,CAAE,CAAC,CAChBsF,CAAY,CAAE,CAnBiB,CAqB5B3G,C,GACHsG,CAAS,CAAE,CAAA,CAAI,CACfc,CAAK,EAAG,kBAAmB,CAAE,CAACjH,CAAW,CAAE,MAAO,CAAE,IAAvB,CAA6B,CAAE,gBAAiB,CAAEH,CAAQ,CAAE,OAAQ,CAAE,CAACG,CAAW,CAAE,EAAG,CAAE,SAAnB,EA3F9F,CAiGTiH,CAAK,CAAE,KAAM,CAAEjK,CAEd,CAAE,SAAU,CAAE,CAAClL,CAAO,CAAE,SAAU,CAAE,UAAtB,CAAkC,CAAE,aAClD,CAAE,CAACiU,EAAO,CAAE,WAAY,CAAE,EAAxB,CACF,CAAE,CAACG,EAAQ,CAAE,YAAa,CAAE,EAA1B,CACF,CAAE,CAACF,EAAW,CAAE,sBAAsB,CAAC,EAArC,CACF,CAAE,CAAChG,CAAW,CAAE,KAAM,CAAE,WAAtB,CACF,CAAE,CAACkH,EAAWjK,MAAO,CAAE,WAAY,CAAE,EAAnC,CACF,CAAEgK,CACF,CAAE,CAACjH,CAAW,CAAE,IAAK,CAAE,gBAArB,CAAsC,CACzC,GAAI,CACHiH,CAAK,CAAE,IAAIE,QAAQ,CAAC,eAAe,CAAEF,CAAlB,CADhB,OAEKzK,GAAG,CACXuD,CAAW,CAAC,6BAA8B,CAAEkH,CAAK,CAAE,OAAQ,CAAEzK,EAAC3J,QAAS,CAAE,GAA9D,CADA,CASZ,OANIuD,C,GACHA,CAAImD,GAAI,CAAE0N,EAAI,CAEVd,C,GACJc,CAAIhI,KAAM,CAAE,CAAA,EAAI,CAEVgI,CA5JkC,CAoK1CxQ,SAASA,CAAS,CAAC+D,CAAO,CAAE6M,CAAV,CAAyB,CAG1C,OAAO7M,CAAQ,EAAGA,CAAQ,GAAI6M,CAC7B,CAAGA,CACF,CAAEpU,CAAO,CAACA,CAAO,CAAC,CAAA,CAAE,CAAEoU,CAAL,CAAmB,CAAE7M,CAA7B,CACT,CAAEA,CACH,CAAE6M,CAAc,EAAGpU,CAAO,CAAC,CAAA,CAAE,CAAEoU,CAAL,CAPe,CAW3CC,SAASA,EAAa,CAACC,CAAD,CAAK,CAC1B,OAAOC,EAAa,CAAAD,CAAA,CAAI,EAAG,CAACC,EAAa,CAAAD,CAAA,CAAI,CAAE,IAAK,CAAEA,CAAEE,WAAW,CAAC,CAAD,CAAI,CAAE,GAA9C,CADD,CAwI3BC,SAASA,EAAc,CAACvU,CAAD,CAAS,CAG/B,IAAIsH,EAAKvE,EACRS,EAAQ,CAAA,CAAE,CAEX,GAAI,OAAOxD,CAAO,EAAI,SACrB,IAAKsH,EAAI,GAAGtH,CAAZ,CACC+C,CAAK,CAAE/C,CAAO,CAAAsH,CAAA,CAAI,CACbvE,CAAK,EAAIA,CAAIyR,OAAQ,EAAG,CAAAzR,CAAIyR,OAAO,CAAA,C,EAClCvU,CAAW,CAAC8C,CAAD,C,EACfS,CAAK0J,KAAK,CAAC,CAAE,GAAG,CAAE5F,CAAG,CAAE,IAAI,CAAEvE,CAAlB,CAAD,CAId,CACA,OAAOS,CAhBwB,CA0BhCiR,SAASA,EAAU,CAACC,CAAD,CAAO,CAEzB,OAAOA,CAAK,EAAG,IAAK,CAAEC,EAAOjR,KAAK,CAACgR,CAAD,CAAO,EAAG,CAAC,EAAG,CAAEA,CAAN,CAAWvK,QAAQ,CAACyK,EAAW,CAAET,EAAd,CAA6B,EAAGO,CAAK,CAAE,EAF7E,CAtnD1B,IAAI,CAAA/V,CAAO,EAAG,CAAAA,CAAMiG,QAAQ,EAAG,CAAAlG,CAAMmW,SAAU,CAI/C,IAECjV,EAAGkV,GAAcvU,EAAMQ,GAAa3B,GAGpCoB,EAAiB,IAAKE,EAAiB,IAAKC,EAAkB,IAAKC,EAAkB,IAAKC,GAAW,IAErGyR,GAAsH,+GAGtHG,GAAmP,0OAInPrF,GAAgC,sBAChCkB,GAA6B,YAC7BlE,GAAyB,UACzByE,GAAsF,0EACtFN,GAAqB,QACrB3D,GAA0B,cAE1B+J,GAAyB,gBACzBlR,GAA0C,4BAC1CmR,GAH6B,gBAI7BpL,GAAe,EACf5B,GAAS,EACTyM,GAAe,CACd,GAAG,CAAE,OAAO,CACZ,GAAG,CAAE,MAAM,CACX,GAAG,CAAE,MAAM,CACX,MAAM,CAAE,MAAM,CACd,GAAG,CAAE,OAAO,CACZ,GAAG,CAAE,OAAO,CACZ,GAAG,CAAE,OAPS,EASfnN,EAAU,OACVqC,GAAW,gBACXS,GAAU,CAAA,EACVzB,EAAY,CACX,QAAQ,CAAE,CACT,OAAO,CAAEO,EADA,CAET,CACD,GAAG,CAAE,CACJ,OAAO,CAAEN,EADL,CAEJ,CACD,MAAM,CAAE,CAAA,CAAE,CACV,SAAS,CAAE,CAAA,CARA,EAYZpF,EAAS,CACR,OAAO,CAnDW,aAmDI,CACtB,QAAQ,CAAEgF,QAAQ,CAACA,CAAD,CAAW,CAC5BtI,CAAO,CAACZ,CAAc,CAAEkJ,CAAjB,CAA0B,CACjCpJ,EAAO,CAACE,CAAcC,SAAf,CAAyB,CAC5BD,CAAc6V,I,EACjB7V,CAAc6V,IAAI,CAAA,CAJS,CAM5B,CACD,GAAG,CAAE,CAEJ,IAAI,CAAE3N,CAAI,CACV,GAAG,CAAE3H,EAAY,CACjB,MAAM,CAAEyK,EAAM,CACd,GAAG,CAAEvG,EAAW,CAChB,KAAK,CAAEiL,EAAW,CAClB,MAAM,CAAE9O,CAAO,CACf,SAAS,CAAE8M,CAAW,CACtB,OAAO,CAAE,CAAA,CAAE,CACX,IAAI,CAAE/N,EAVF,CAWJ,CAED,GAAG,CAAE2H,EAAO,CACZ,KAAK,CAAE9D,EAAU,CACjB,IAAI,CAAE6B,EAAS,CACf,IAAI,CAAER,CAzBE,CA0BR,CAoCF,CAACtE,EAAYkJ,UAAW,CAAE,IAAIqM,KAA9B,CAAsCpM,YAAa,CAAEnJ,EAAY,CA4FjEqC,EAAcmC,QAAS,CAAEgR,QAAQ,CAAA,CAAG,CACnC,MAAO,CAAC,IAAItT,IAAI,CAAC,MAAD,CAAQ,CAAE,OAAnB,CAD4B,CAEnC,CAMDK,EAAQiC,QAAS,CAAEiR,QAAQ,CAAA,CAAG,CAC7B,MAAO,CAAC,OAAD,CADsB,CAE7B,CAkYD9N,CAAIuB,UAAW,CAAE,CAChB,GAAG,CAAE3H,EAAO,CACZ,QAAQ,CAAEgB,EAAQ,CAClB,MAAM,CAAEmC,EAAW,CACnB,GAAG,CAAElC,EAAS,CACd,GAAG,CAAE,MALW,CAMhB,CAw3BD,IAAK6S,GAAa,GAAGvM,CAArB,CACC0C,EAAa,CAAC6J,EAAY,CAAEvM,CAAU,CAAAuM,EAAA,CAAzB,CACd,CAEA,IAAI9O,EAAa5C,CAAM+R,WACtB3V,GAAc4D,CAAMgS,YACpB9V,GAAW8D,CAAMoJ,SACjBnN,GAAQ+D,CAAMyB,MACdvE,EAAO8C,CAAMiS,KACbnW,EAAiBkE,CAAMgF,SAAS,CAE7BzJ,CAAJ,EAGCiB,CAAE,CAAEjB,CAAM,CACViB,CAACwG,GAAGxB,OAAQ,CAAE2G,EAAW,CACrB3L,CAAC0V,W,GACJxV,CAAO,CAACQ,CAAI,CAAEV,CAACuB,MAAMkU,IAAd,CAAmB,CAC1BjS,CAAMqD,IAAK,CAAE7G,CAACuB,MAAMsF,MAPtB,EAaC7G,CAAE,CAAElB,CAAMmW,QAAS,CAAE,CAAA,CAAE,CAEvBjV,CAAC8H,QAAS,CAAE6N,KAAM,EAAGA,KAAK7N,QAAS,EAAG8N,QAAQ,CAACC,CAAD,CAAM,CACnD,OAAOC,MAAM/M,UAAUgN,SAAShK,KAAK,CAAC8J,CAAD,CAAM,GAAI,gBADI,E,CAUrD7V,CAACgF,OAAQ,CAAEoF,EAAO,CAClBpK,CAACuB,MAAO,CAAEiC,CAAM,CAChBxD,CAACuV,UAAW,CAAEnP,CAAW,CAAE5C,CAAM+R,UAAU,CAE3CjW,CAAc,CAAC,CACd,SAAS,CAAEF,EAAO,CAClB,UAAU,CAAEmB,EAAgB,CAC5B,OAAO,CAAEuM,QAAQ,CAACrD,CAAC,CAAE9H,CAAI,CAAEkL,CAAV,CAAoB,CASpC,OAPIlL,C,GAEH8H,CAAE,CAAEoD,CAAS,GAAI7N,CAChB,CAAE,UAAW,CAAEyK,CAAE,CAAE,GACnB,CAAEpJ,CAAW,CAACwM,CAAD,CACZ,CAAEA,CAAQ,CAACpD,CAAC,CAAE9H,CAAJ,CAAU,CAAEkL,EAAQ,CAE1BpD,CAAE,EAAGzK,CAAU,CAAE,EAAG,CAAEyK,CATO,CAUpC,CACD,QAAQ,CAAE,CAAA,CAdI,CAAD,CAeZ,CAIFhK,EAAK,CAAC,CACL,MAAM,CAAEuW,QAAQ,CAAA,CAAG,EAAE,CACrB,IAAI,CAAE,CACL,MAAM,CAAEhR,QAAQ,CAAC9F,CAAD,CAAM,CAKrB,IAAI2I,EAAO,IAMmC,CAC9C,OANQA,CAAIZ,UAAUgP,KAAM,EAAG,CAAC/W,CAAI,EAAG,CAAC2D,SAASb,OAAQ,EAAG,CAAC6F,CAAI7E,OAAOb,MAAjC,CACrC,CAAE,EACF,CAAE,CAAC0F,CAAIZ,UAAUgP,KAAM,CAAE,CAAA,C,CAAMpO,CAAIqO,SAAU,CAAErO,CAAI7E,OAAOb,M,CAGzD0F,CAAI7E,OAAOgC,OAAO,CAAC6C,CAAI7E,OAAOrB,KAAK,CAAE,CAAA,CAAnB,CAHjB,CARiB,CAarB,CACD,QAAQ,CAAEwU,QAAQ,CAACC,CAAE,CAAEC,CAAS,CAAEvR,CAAhB,CAAyB,CAE1C,IADA,IAASwR,EAASC,EACbC,EAAM,CAAC,CAAE,CAACF,CAAQ,CAAE,IAAIxR,QAAS,CAAA0R,CAAA,CAAxB,CAA8B,EAAGF,CAAO7S,KAAKzB,OAAO,CAAEwU,CAAG,EAAvE,CAGC,GAFAF,CAAQ,CAAEA,CAAO7S,KAAM,CAAA,CAAA,CAAE,CACzB8S,CAAU,CAAE,CAACD,CAAQ,EAAI,CAACxR,CAAQ,CAAA0R,CAAA,CAAI/S,KAAM,CAAA,CAAA,CAAE,CACzC,CAAC,IAAIO,QAAS,EAAG,CAAC,CAACsS,CAAS,EAAGC,EACnC,OAAOA,CAKT,CAEA,MAAO,CAAA,CAbmC,CAc1C,CACD,IAAI,CAAE,CAAA,CA9BD,CA+BL,CACD,KAAK,CAAE,CACN,MAAM,CAAEvR,QAAQ,CAAC9F,CAAD,CAAM,CAGrB,IAAIuX,EACH5O,EAAO,KACP7E,EAAS6E,CAAI7E,QACb2J,EAAS,GACTsJ,EAAO,CAAC,CAeT,OAbKpO,CAAIZ,UAAUgP,K,IACdQ,CAAU,CAAE,CAAC5T,SAASb,Q,GACzB9C,CAAI,CAAE8D,CAAMrB,KAAK4B,MAAK,CAEnBrE,CAAI,GAAIF,C,GACX2N,CAAO,EAAG3J,CAAMgC,OAAO,CAAC9F,CAAG,CAAEuX,CAAN,CAAgB,CACvCR,CAAK,EAAGjW,CAAC8H,QAAQ,CAAC5I,CAAD,CAAM,CAAEA,CAAG8C,OAAQ,CAAE,EAAC,EAEpC6F,CAAIZ,UAAUgP,KAAM,CAAEA,E,GACzBpO,CAAIqO,SAAU,CAAElT,CAAMb,QAAM,CAIvBwK,CAtBc,CAuBrB,CACD,IAAI,CAAE,CAAA,CAzBA,CA0BN,CACD,OAAO,CAAE,CACR,IAAI,CAAE,CAAA,CADE,CAER,CACD,GAAG,CAAE,CAEJ,MAAM,CAAE1N,EAAM,CACd,IAAI,CAAE,CAAA,CAHF,CAhEA,CAAD,CAqEH,CAqBFQ,EAAK,CAAC,OAAO,CAAE,CACd,OAAO,CAAEA,EAAM,CAAA,KAAA,CAAM,CACrB,OAAO,CAAEmH,EAAO,CAAC+N,EAAD,CAFF,CAAV,CAGH,CASF/U,EAAW,CAAC,CACX,IAAI,CAAEiV,EAAU,CAChB,IAAI,CAAEA,EAAU,CAChB,GAAG,CAAE6B,QAAQ,CAAC5B,CAAD,CAAO,CAEnB,OAAOA,CAAK,EAAG9V,CAAU,CAAE2X,SAAS,CAAC,EAAG,CAAE7B,CAAN,CAAY,CAAEA,CAAK,GAAI,IAAK,CAAEA,CAAK,CAAE,EAFtD,CAHT,CAAD,CAOT,CAGFvU,EAAgB,CAAA,CAroD+B,CAJX,EA2oDnC,CAAC,IAAI,CAAE,IAAIxB,OAAX,CAAmB",
6
+ "sources":["jsrender.js"],
7
+ "names":["global","jQuery","undefined","retVal","val","dbgBreak","dbgMode","debugMode","$viewsSettings","_dbgMode","indexStr","$tags","$helpers","dbg","$converters","JsViewsError","message","name","$","link","$extend","target","source","$isFunction","ob","$viewsDelimiters","openChars","closeChars","$sub","rTag","delimOpenChar0","charAt","delimOpenChar1","delimCloseChar0","delimCloseChar1","linkChar","RegExp","rTmplString","getView","inner","type","views","i","l","found","view","root","_","useKey","get","length","parent","getNestedIndex","index","getIndex","getHelper","helper","wrapped","ctx","linkCtx","res","_wrp","apply","arguments","convertVal","converter","tagCtx","tag","value","prop","boundTagCtx","tmpl","bnds","data","$views","args","extendCtx","_lnk","props","rHasHandlers","test","convertArgs","convert","onRender","getRsc","error","slice","depends","getDeps","getResource","resourceType","itemName","store","renderTag","tagName","parentView","tagCtxs","isUpdate","render","tags","attr","parentTag","itemRet","tagCtxCtx","content","boundTagFn","tagDef","callInit","mapDef","thisMap","initialTmpl","ret","boundTagKey","parentTmpl","_is","tmpls","template","renderContent","$templates","_ctr","init","bnd","fn","arrVws","dataBoundOnly","_def","dataMap","map","flow","parents","parentTags","rendering","src","unmap","tgt","inline","htmlStr","html","View","context","key","contentTmpl","parentView_","self","isArray","self_","viewId","linked","splice","compileChildResources","storeName","resources","resourceName","resource","settings","compile","onStore","jsvStores","compileTag","baseTag","tagDef._ctr","prototype","constructor","_parentTmpl","compileTmpl","options","tmplOrMarkupFromStr","nodeType","elem","document","find","e","getAttribute","tmplAttr","autoTmplName","setAttribute","innerHTML","tmplOrMarkup","markup","tmplName","debug","allowCode","$render","TmplObject","tmplFn","replace","rEscapeQuotes","newMap","getTgt","baseMap","mapDef.map","htmlTag","wrapMap","fastRender","rFirstElem","exec","toLowerCase","div","trim","registerStore","storeSettings","theStore","item","thisStore","storeNames","$fastRender","tmplElem","jquery","selector","call","tryFn","noIteration","_nvw","dataItem","newView","childView","itemResult","swapContent","tag_","outerOnRender","noViews","result","helpers","fallback","onError","Err","syntaxError","isLinkExpr","convertBack","pushprecedingContent","shift","loc","push","substr","rNewLine","blockTagCheck","parseTag","all","bind","colon","comment","codeTag","params","slash","closeBlock","pathBindings","ctxProps","paramsArgs","paramsProps","paramsCtxProps","useTrigger","block","rUnescapeQuotes","rTestElseIf","current","substring","stack","pop","parseParams","rBuildHash","onerror","isCtx","keyToken","keyValue","arg","param","hasHandlers","newNode","parsedParam","astTop","buildCode","paths","paramStructure","parts","bindings","parseTokens","lftPrn0","lftPrn","bound","path","operator","err","eq","path2","prn","comma","lftPrn2","apos","quot","rtPrn","rtPrnDot","prn2","space","full","parsePath","allPath","not","object","viewProperty","pathTokens","leafToken","named","bindto","_jsvto","boundName","expr","isFn","exprFn","aposed","quoted","pathStart","parenDepth","tmplLinks","paramIndex","split","join","rPath","fnCall","links","rParams","ast","node","hasTag","hasEncoder","getsVal","hasCnvt","needView","useCnvt","tmplBindings","nestedTmpls","nestedTmpl","tagAndElses","nextIsElse","oldCode","isElse","isGetVal","tagCtxFn","tagStart","trigger","tmplBindingKey","code","tmplOptions","Function","_tag","parentContext","getCharEntity","ch","charEntities","charCodeAt","getTargetProps","toJSON","htmlEncode","text","rIsHtml","rHtmlEncode","jsviews","jsvStoreName","jsv","Error","getNestedIndex.depends","getIndex.depends","templates","converters","sub","observable","Array","$.isArray","obj","Object","toString","else","done","selected","onUpdate","ev","eventArgs","prevArg","different","tci","finalElse","url","encodeURI"]
8
+ }
assets/js/maskmoney/jquery.maskMoney.js ADDED
@@ -0,0 +1,392 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function ($) {
2
+ "use strict";
3
+ if (!$.browser) {
4
+ $.browser = {};
5
+ $.browser.mozilla = /mozilla/.test(navigator.userAgent.toLowerCase()) && !/webkit/.test(navigator.userAgent.toLowerCase());
6
+ $.browser.webkit = /webkit/.test(navigator.userAgent.toLowerCase());
7
+ $.browser.opera = /opera/.test(navigator.userAgent.toLowerCase());
8
+ $.browser.msie = /msie/.test(navigator.userAgent.toLowerCase());
9
+ }
10
+
11
+ var methods = {
12
+ destroy : function () {
13
+ $(this).unbind(".maskMoney");
14
+
15
+ if ($.browser.msie) {
16
+ this.onpaste = null;
17
+ }
18
+ return this;
19
+ },
20
+
21
+ mask : function (value) {
22
+ return this.each(function () {
23
+ var $this = $(this),
24
+ decimalSize;
25
+ if (typeof value === "number") {
26
+ $this.trigger("mask");
27
+ decimalSize = $($this.val().split(/\D/)).last()[0].length;
28
+ value = value.toFixed(decimalSize);
29
+ $this.val(value);
30
+ }
31
+ return $this.trigger("mask");
32
+ });
33
+ },
34
+
35
+ unmasked : function () {
36
+ return this.map(function () {
37
+ var value = ($(this).val() || "0"),
38
+ isNegative = value.indexOf("-") !== -1,
39
+ decimalPart;
40
+ // get the last position of the array that is a number(coercion makes "" to be evaluated as false)
41
+ $(value.split(/\D/).reverse()).each(function (index, element) {
42
+ if(element) {
43
+ decimalPart = element;
44
+ return false;
45
+ }
46
+ });
47
+ value = value.replace(/\D/g, "");
48
+ value = value.replace(new RegExp(decimalPart + "$"), "." + decimalPart);
49
+ if (isNegative) {
50
+ value = "-" + value;
51
+ }
52
+ return parseFloat(value);
53
+ });
54
+ },
55
+
56
+ init : function (settings) {
57
+ settings = $.extend({
58
+ prefix: "",
59
+ suffix: "",
60
+ affixesStay: true,
61
+ thousands: ",",
62
+ decimal: ".",
63
+ precision: 2,
64
+ allowZero: false,
65
+ allowNegative: false
66
+ }, settings);
67
+
68
+ return this.each(function () {
69
+ var $input = $(this),
70
+ onFocusValue;
71
+
72
+ // data-* api
73
+ settings = $.extend(settings, $input.data());
74
+
75
+ function getInputSelection() {
76
+ var el = $input.get(0),
77
+ start = 0,
78
+ end = 0,
79
+ normalizedValue,
80
+ range,
81
+ textInputRange,
82
+ len,
83
+ endRange;
84
+
85
+ if (typeof el.selectionStart === "number" && typeof el.selectionEnd === "number") {
86
+ start = el.selectionStart;
87
+ end = el.selectionEnd;
88
+ } else {
89
+ range = document.selection.createRange();
90
+
91
+ if (range && range.parentElement() === el) {
92
+ len = el.value.length;
93
+ normalizedValue = el.value.replace(/\r\n/g, "\n");
94
+
95
+ // Create a working TextRange that lives only in the input
96
+ textInputRange = el.createTextRange();
97
+ textInputRange.moveToBookmark(range.getBookmark());
98
+
99
+ // Check if the start and end of the selection are at the very end
100
+ // of the input, since moveStart/moveEnd doesn't return what we want
101
+ // in those cases
102
+ endRange = el.createTextRange();
103
+ endRange.collapse(false);
104
+
105
+ if (textInputRange.compareEndPoints("StartToEnd", endRange) > -1) {
106
+ start = end = len;
107
+ } else {
108
+ start = -textInputRange.moveStart("character", -len);
109
+ start += normalizedValue.slice(0, start).split("\n").length - 1;
110
+
111
+ if (textInputRange.compareEndPoints("EndToEnd", endRange) > -1) {
112
+ end = len;
113
+ } else {
114
+ end = -textInputRange.moveEnd("character", -len);
115
+ end += normalizedValue.slice(0, end).split("\n").length - 1;
116
+ }
117
+ }
118
+ }
119
+ }
120
+
121
+ return {
122
+ start: start,
123
+ end: end
124
+ };
125
+ } // getInputSelection
126
+
127
+ function canInputMoreNumbers() {
128
+ var haventReachedMaxLength = !($input.val().length >= $input.attr("maxlength") && $input.attr("maxlength") >= 0),
129
+ selection = getInputSelection(),
130
+ start = selection.start,
131
+ end = selection.end,
132
+ haveNumberSelected = (selection.start !== selection.end && $input.val().substring(start, end).match(/\d/)) ? true : false,
133
+ startWithZero = ($input.val().substring(0, 1) === "0");
134
+ return haventReachedMaxLength || haveNumberSelected || startWithZero;
135
+ }
136
+
137
+ function setCursorPosition(pos) {
138
+ $input.each(function (index, elem) {
139
+ if (elem.setSelectionRange) {
140
+ elem.focus();
141
+ elem.setSelectionRange(pos, pos);
142
+ } else if (elem.createTextRange) {
143
+ var range = elem.createTextRange();
144
+ range.collapse(true);
145
+ range.moveEnd("character", pos);
146
+ range.moveStart("character", pos);
147
+ range.select();
148
+ }
149
+ });
150
+ }
151
+
152
+ function setSymbol(value) {
153
+ var operator = "";
154
+ if (value.indexOf("-") > -1) {
155
+ value = value.replace("-", "");
156
+ operator = "-";
157
+ }
158
+ return operator + settings.prefix + value + settings.suffix;
159
+ }
160
+
161
+ function maskValue(value) {
162
+ var negative = (value.indexOf("-") > -1) ? "-" : "",
163
+ onlyNumbers = value.replace(/[^0-9]/g, ""),
164
+ integerPart = onlyNumbers.slice(0, onlyNumbers.length - settings.precision),
165
+ newValue,
166
+ decimalPart,
167
+ leadingZeros;
168
+
169
+ // remove initial zeros
170
+ integerPart = integerPart.replace(/^0/g, "");
171
+ // put settings.thousands every 3 chars
172
+ integerPart = integerPart.replace(/\B(?=(\d{3})+(?!\d))/g, settings.thousands);
173
+ if (integerPart === "") {
174
+ integerPart = "0";
175
+ }
176
+ newValue = negative + integerPart;
177
+
178
+ if (settings.precision > 0) {
179
+ decimalPart = onlyNumbers.slice(onlyNumbers.length - settings.precision);
180
+ leadingZeros = new Array((settings.precision + 1) - decimalPart.length).join(0);
181
+ newValue += settings.decimal + leadingZeros + decimalPart;
182
+ }
183
+ return setSymbol(newValue);
184
+ }
185
+
186
+ function maskAndPosition(startPos) {
187
+ var originalLen = $input.val().length,
188
+ newLen;
189
+ $input.val(maskValue($input.val()));
190
+ newLen = $input.val().length;
191
+ startPos = startPos - (originalLen - newLen);
192
+ setCursorPosition(startPos);
193
+ }
194
+
195
+ function mask() {
196
+ var value = $input.val();
197
+ $input.val(maskValue(value));
198
+ }
199
+
200
+ function changeSign() {
201
+ var inputValue = $input.val();
202
+ if (settings.allowNegative) {
203
+ if (inputValue !== "" && inputValue.charAt(0) === "-") {
204
+ return inputValue.replace("-", "");
205
+ } else {
206
+ return "-" + inputValue;
207
+ }
208
+ } else {
209
+ return inputValue;
210
+ }
211
+ }
212
+
213
+ function preventDefault(e) {
214
+ if (e.preventDefault) { //standard browsers
215
+ e.preventDefault();
216
+ } else { // old internet explorer
217
+ e.returnValue = false;
218
+ }
219
+ }
220
+
221
+ function keypressEvent(e) {
222
+ e = e || window.event;
223
+ var key = e.which || e.charCode || e.keyCode,
224
+ keyPressedChar,
225
+ selection,
226
+ startPos,
227
+ endPos,
228
+ value;
229
+ //added to handle an IE "special" event
230
+ if (key === undefined) {
231
+ return false;
232
+ }
233
+ // any key except the numbers 0-9
234
+ if (key < 48 || key > 57) {
235
+ // -(minus) key
236
+ if (key === 45) {
237
+ $input.val(changeSign());
238
+ return false;
239
+ // +(plus) key
240
+ } else if (key === 43) {
241
+ $input.val($input.val().replace("-", ""));
242
+ return false;
243
+ // enter key or tab key
244
+ } else if (key === 13 || key === 9) {
245
+ return true;
246
+ } else if ($.browser.mozilla && (key === 37 || key === 39) && e.charCode === 0) {
247
+ // needed for left arrow key or right arrow key with firefox
248
+ // the charCode part is to avoid allowing "%"(e.charCode 0, e.keyCode 37)
249
+ return true;
250
+ } else { // any other key with keycode less than 48 and greater than 57
251
+ preventDefault(e);
252
+ return true;
253
+ }
254
+ } else if (!canInputMoreNumbers()) {
255
+ return false;
256
+ } else {
257
+ preventDefault(e);
258
+
259
+ keyPressedChar = String.fromCharCode(key);
260
+ selection = getInputSelection();
261
+ startPos = selection.start;
262
+ endPos = selection.end;
263
+ value = $input.val();
264
+ $input.val(value.substring(0, startPos) + keyPressedChar + value.substring(endPos, value.length));
265
+ maskAndPosition(startPos + 1);
266
+ return false;
267
+ }
268
+ }
269
+
270
+ function keydownEvent(e) {
271
+ e = e || window.event;
272
+ var key = e.which || e.charCode || e.keyCode,
273
+ selection,
274
+ startPos,
275
+ endPos,
276
+ value,
277
+ lastNumber;
278
+ //needed to handle an IE "special" event
279
+ if (key === undefined) {
280
+ return false;
281
+ }
282
+
283
+ selection = getInputSelection();
284
+ startPos = selection.start;
285
+ endPos = selection.end;
286
+
287
+ if (key === 8 || key === 46 || key === 63272) { // backspace or delete key (with special case for safari)
288
+ preventDefault(e);
289
+
290
+ value = $input.val();
291
+ // not a selection
292
+ if (startPos === endPos) {
293
+ // backspace
294
+ if (key === 8) {
295
+ if (settings.suffix === "") {
296
+ startPos -= 1;
297
+ } else {
298
+ // needed to find the position of the last number to be erased
299
+ lastNumber = value.split("").reverse().join("").search(/\d/);
300
+ startPos = value.length - lastNumber - 1;
301
+ endPos = startPos + 1;
302
+ }
303
+ //delete
304
+ } else {
305
+ endPos += 1;
306
+ }
307
+ }
308
+
309
+ $input.val(value.substring(0, startPos) + value.substring(endPos, value.length));
310
+
311
+ maskAndPosition(startPos);
312
+ return false;
313
+ } else if (key === 9) { // tab key
314
+ return true;
315
+ } else { // any other key
316
+ return true;
317
+ }
318
+ }
319
+
320
+ function focusEvent() {
321
+ onFocusValue = $input.val();
322
+ mask();
323
+ var input = $input.get(0),
324
+ textRange;
325
+ if (input.createTextRange) {
326
+ textRange = input.createTextRange();
327
+ textRange.collapse(false); // set the cursor at the end of the input
328
+ textRange.select();
329
+ }
330
+ }
331
+
332
+ function getDefaultMask() {
333
+ var n = parseFloat("0") / Math.pow(10, settings.precision);
334
+ return (n.toFixed(settings.precision)).replace(new RegExp("\\.", "g"), settings.decimal);
335
+ }
336
+
337
+ function blurEvent(e) {
338
+ if ($.browser.msie) {
339
+ keypressEvent(e);
340
+ }
341
+
342
+ if ($input.val() === "" || $input.val() === setSymbol(getDefaultMask())) {
343
+ if (!settings.allowZero) {
344
+ $input.val("");
345
+ } else if (!settings.affixesStay) {
346
+ $input.val(getDefaultMask());
347
+ } else {
348
+ $input.val(setSymbol(getDefaultMask()));
349
+ }
350
+ } else {
351
+ if (!settings.affixesStay) {
352
+ var newValue = $input.val().replace(settings.prefix, "").replace(settings.suffix, "");
353
+ $input.val(newValue);
354
+ }
355
+ }
356
+ if ($input.val() !== onFocusValue) {
357
+ $input.change();
358
+ }
359
+ }
360
+
361
+ function clickEvent() {
362
+ var input = $input.get(0),
363
+ length;
364
+ if (input.setSelectionRange) {
365
+ length = $input.val().length;
366
+ input.setSelectionRange(length, length);
367
+ } else {
368
+ $input.val($input.val());
369
+ }
370
+ }
371
+
372
+ $input.unbind(".maskMoney");
373
+ $input.bind("keypress.maskMoney", keypressEvent);
374
+ $input.bind("keydown.maskMoney", keydownEvent);
375
+ $input.bind("blur.maskMoney", blurEvent);
376
+ $input.bind("focus.maskMoney", focusEvent);
377
+ $input.bind("click.maskMoney", clickEvent);
378
+ $input.bind("mask.maskMoney", mask);
379
+ });
380
+ }
381
+ };
382
+
383
+ $.fn.maskMoney = function (method) {
384
+ if (methods[method]) {
385
+ return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
386
+ } else if (typeof method === "object" || ! method) {
387
+ return methods.init.apply(this, arguments);
388
+ } else {
389
+ $.error("Method " + method + " does not exist on jQuery.maskMoney");
390
+ }
391
+ };
392
+ })(window.jQuery || window.Zepto);
assets/js/php-datatables/wpdatatables.funcs.js ADDED
@@ -0,0 +1,189 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(document).ready(function($) {
2
+
3
+ /* Clear filters */
4
+ $.fn.dataTableExt.oApi.fnFilterClear = function ( oSettings )
5
+ {
6
+ /* Remove global filter */
7
+ oSettings.oPreviousSearch.sSearch = "";
8
+
9
+ /* Remove the text of the global filter in the input boxes */
10
+ if ( typeof oSettings.aanFeatures.f != 'undefined' )
11
+ {
12
+ var n = oSettings.aanFeatures.f;
13
+ for ( var i=0, iLen=n.length ; i<iLen ; i++ )
14
+ {
15
+ $('input', n[i]).val( '' );
16
+ }
17
+ }
18
+
19
+ /* Remove the search text for the column filters - NOTE - if you have input boxes for these
20
+ * filters, these will need to be reset
21
+ */
22
+ for ( var i=0, iLen=oSettings.aoPreSearchCols.length ; i<iLen ; i++ )
23
+ {
24
+ oSettings.aoPreSearchCols[i].sSearch = "";
25
+ }
26
+
27
+ /* Redraw */
28
+ oSettings.oApi._fnReDraw( oSettings );
29
+ };
30
+
31
+ jQuery.extend( jQuery.fn.dataTableExt.oSort, {
32
+ "formatted-num-pre": function ( a ) {
33
+ if($(a).text()!=''){
34
+ a = $(a).text();
35
+ }
36
+ a = (a==="-") ? -1 : a.replace( /[^\d\-\.]/g, "" );
37
+
38
+ if(a!=-1){
39
+ while(a.indexOf('.')!=-1){
40
+ a = a.replace(".","");
41
+ }
42
+
43
+ a = a.replace(',','.');
44
+
45
+ }
46
+
47
+ return parseFloat( a );
48
+ },
49
+
50
+ "formatted-num-asc": function ( a, b ) {
51
+ return a - b;
52
+ },
53
+
54
+ "formatted-num-desc": function ( a, b ) {
55
+ return b - a;
56
+ },
57
+
58
+ "statuscol-pre": function ( a ) {
59
+
60
+ a = $(a).find('div.percents').text();
61
+ return parseFloat( a );
62
+ },
63
+
64
+ "statuscol-asc": function ( a, b ) {
65
+ return a - b;
66
+ },
67
+
68
+ "statuscol-desc": function ( a, b ) {
69
+ return b - a;
70
+ }
71
+ } );
72
+
73
+ $.fn.dataTableExt.oApi.fnGetColumnIndex = function ( oSettings, sCol )
74
+ {
75
+ var cols = oSettings.aoColumns;
76
+ for ( var x=0, xLen=cols.length ; x<xLen ; x++ )
77
+ {
78
+ if ( (typeof(cols[x].sTitle) == 'string') && ( cols[x].sTitle.toLowerCase() == sCol.toLowerCase() ) )
79
+ {
80
+ return x;
81
+ };
82
+ }
83
+ return -1;
84
+ };
85
+
86
+ var customDateDDMMMYYYYToOrd = function (date) {
87
+ "use strict"; //let's avoid tom-foolery in this function
88
+ // Convert to a number YYYYMMDD which we can use to order
89
+ var dateParts = date.split(/-/);
90
+ return (dateParts[2] * 10000) + ($.inArray(dateParts[1].toUpperCase(), ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"]) * 100) + dateParts[0];
91
+ };
92
+
93
+ // This will help DataTables magic detect the "dd-MMM-yyyy" format; Unshift so that it's the first data type (so it takes priority over existing)
94
+ jQuery.fn.dataTableExt.aTypes.unshift(
95
+ function (sData) {
96
+ "use strict"; //let's avoid tom-foolery in this function
97
+ if (/^([0-2]?\d|3[0-1])-(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)-\d{4}/i.test(sData)) {
98
+ return 'date-dd-mmm-yyyy';
99
+ }
100
+ return null;
101
+ }
102
+ );
103
+
104
+ // define the sorts
105
+ jQuery.fn.dataTableExt.oSort['date-dd-mmm-yyyy-asc'] = function (a, b) {
106
+ "use strict"; //let's avoid tom-foolery in this function
107
+ var ordA = customDateDDMMMYYYYToOrd(a),
108
+ ordB = customDateDDMMMYYYYToOrd(b);
109
+ return (ordA < ordB) ? -1 : ((ordA > ordB) ? 1 : 0);
110
+ };
111
+
112
+ jQuery.fn.dataTableExt.oSort['date-dd-mmm-yyyy-desc'] = function (a, b) {
113
+ "use strict"; //let's avoid tom-foolery in this function
114
+ var ordA = customDateDDMMMYYYYToOrd(a),
115
+ ordB = customDateDDMMMYYYYToOrd(b);
116
+ return (ordA < ordB) ? 1 : ((ordA > ordB) ? -1 : 0);
117
+ };
118
+
119
+ jQuery.extend( jQuery.fn.dataTableExt.oSort, {
120
+ "date-eu-pre": function ( date ) {
121
+ var date = date.replace(" ", "");
122
+ if (date.indexOf('.') > 0) {
123
+ /*date a, format dd.mn.(yyyy) ; (year is optional)*/
124
+ var eu_date = date.split('.');
125
+ } else if (date.indexOf('-') > 0) {
126
+ /*date a, format dd.mn.(yyyy) ; (year is optional)*/
127
+ var eu_date = date.split('-');
128
+ } else {
129
+ /*date a, format dd/mn/(yyyy) ; (year is optional)*/
130
+ var eu_date = date.split('/');
131
+ }
132
+
133
+ var year = 0;
134
+ var month = 0;
135
+ var day = 0;
136
+
137
+ /*year (optional)*/
138
+ if (eu_date[2]) {
139
+ year = eu_date[2];
140
+ }
141
+
142
+ /*month*/
143
+ if(eu_date[1]){
144
+ month = 0+eu_date[1];
145
+ }
146
+
147
+ /*day*/
148
+ if(eu_date[0]) {
149
+ day = 0+eu_date[0];
150
+ }
151
+
152
+ return (year + month + day) * 1;
153
+ },
154
+
155
+ "date-eu-asc": function ( a, b ) {
156
+ return ((a < b) ? -1 : ((a > b) ? 1 : 0));
157
+ },
158
+
159
+ "date-eu-desc": function ( a, b ) {
160
+ return ((a < b) ? 1 : ((a > b) ? -1 : 0));
161
+ }
162
+ } );
163
+
164
+ });
165
+
166
+ function wdtValidateURL(textval) {
167
+ var regex = /^([a-z]([a-z]|\d|\+|-|\.)*):(\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?((\[(|(v[\da-f]{1,}\.(([a-z]|\d|-|\.|_|~)|[!\$&'\(\)\*\+,;=]|:)+))\])|((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=])*)(:\d*)?)(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*|(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)){0})(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?(||.*)?$/i;
168
+ return regex.test(textval);
169
+ }
170
+
171
+ function wdtValidateEmail(email) {
172
+ var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+(||.*)?$/;
173
+ return regex.test(email);
174
+ }
175
+
176
+ function wdtRandString(n){
177
+ if(!n){
178
+ n = 5;
179
+ }
180
+
181
+ var text = '';
182
+ var possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
183
+
184
+ for(var i=0; i < n; i++){
185
+ text += possible.charAt(Math.floor(Math.random() * possible.length));
186
+ }
187
+
188
+ return text;
189
+ }
assets/js/php-datatables/wpdatatables.funcs.min.js ADDED
@@ -0,0 +1 @@
 
1
+ function wdtValidateURL(u){var t=/^([a-z]([a-z]|\d|\+|-|\.)*):(\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?((\[(|(v[\da-f]{1,}\.(([a-z]|\d|-|\.|_|~)|[!\$&'\(\)\*\+,;=]|:)+))\])|((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=])*)(:\d*)?)(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*|(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)){0})(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?(||.*)?$/i;return t.test(u)}function wdtValidateEmail(u){var t=/^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+(||.*)?$/;return t.test(u)}function wdtR