Print, PDF, Email by PrintFriendly - Version 4.0.0

Version Description

  • An easier and intuitive settings screen
  • Use custom CSS directly without the hassle of uploading files
  • Pickup email and domain automatically
  • Added option to show button only for select categories
  • Update translations
  • Fix: Two buttons are shown when excerpt is used
  • Fix: The custom CSS was included in the page erroneously
Download this release

Release Info

Developer printfriendly
Plugin Icon 128x128 Print, PDF, Email by PrintFriendly
Version 4.0.0
Comparing to
See all releases

Code changes from version 3.16.0 to 4.0.0

admin.css DELETED
@@ -1,490 +0,0 @@
1
- /* Helper Classes */
2
-
3
- .pf-no-margin {
4
- margin: 0
5
- }
6
-
7
- .pf-hidden {
8
- display: none;
9
- }
10
- .clearfloat{
11
- clear:both;
12
- }
13
- label {
14
- display: block;
15
- margin: 1.5em 0;
16
- }
17
-
18
- h3 {
19
- margin: 1.5rem 0 1rem;
20
- border-bottom: 1px solid #ccc;
21
- padding-bottom:.75em;
22
- clear: both;
23
- }
24
-
25
- h3.hndle {
26
- clear:none;
27
- padding: 7px 5px;
28
- }
29
-
30
- input[type="radio"], img {
31
- vertical-align: middle;
32
- }
33
-
34
- #buttongroup1, #buttongroup2, #buttongroup3, #button-positioning div, #button-placement div {
35
- display: block;
36
- margin-right: 3em;
37
- float: left;
38
- }
39
- #custom-txt div#txt-size, div#button-positioning-options {
40
- margin-right: 0;
41
- }
42
-
43
- #custom-button-preview {
44
- margin-left: 2em;
45
- }
46
- #custom-button-preview img {
47
- margin-right: 6px;
48
- vertical-align: bottom;
49
- }
50
- #placement-adv-options {
51
- float: left;
52
- }
53
-
54
- #custom-txt, #custom-img, #custom-button-preview {
55
- margin: 0 3em;
56
- }
57
-
58
- #custom-txt>div {
59
- margin-bottom: 10px;
60
- }
61
-
62
- .description {
63
- color: #cacaca;
64
- }
65
- .printfriendly-text2 {
66
- font-family: verdana;
67
- font-size: 14px;
68
- color: #6D9F00;
69
- }
70
- select{
71
- display: block;
72
- margin: .5em .5em 2em 0;
73
- }
74
- select#javascript, select#website_protocol, select#password_protected, select#dynamic_content {
75
- display: inline-block;
76
- margin-bottom: 0;
77
- }
78
- input[type="radio"], input[type="checkbox"] {
79
- cursor: pointer;
80
- margin-right: 10px;
81
- vertical-align: middle;
82
- }
83
-
84
-
85
- /* WP lacks styling for type="number", so in here for now */
86
- input[type="number"] {
87
- border-color: #DFDFDF;
88
- background-color: white;
89
- border-width: 1px;
90
- border-style: solid;
91
- -moz-border-radius: 3px;
92
- -khtml-border-radius: 3px;
93
- -webkit-border-radius: 3px;
94
- border-radius: 3px;
95
- -moz-box-sizing: border-box;
96
- -webkit-box-sizing: border-box;
97
- -ms-box-sizing: border-box;
98
- box-sizing: border-box;
99
- width: 36px;
100
- margin-right: .5em;
101
- }
102
- #css {
103
- font-size: 11px;
104
- color:#bbb;
105
- }
106
- #css input {
107
- margin: 0 6px 0 12px;
108
- vertical-align: baseline;
109
- }
110
- #pf-shortcode {
111
- margin-left: 2em;
112
- }
113
- .custom-logo label, .custom-logo input, #pf-favicon {
114
- display: inline-block;
115
- }
116
-
117
- .custom-logo input {
118
- width: 20em;
119
- }
120
-
121
- .custom-logo label {
122
- margin-left: 5px;
123
- margin-right: 2px;
124
- }
125
-
126
- label#pf-favicon {
127
- vertical-align: baseline;
128
- margin: 0;
129
- }
130
-
131
- .printfriendly-details input {
132
- width: 20em;
133
- }
134
-
135
- .printfriendly-details label {
136
- margin-left: 5px;
137
- margin-right: 2px;
138
- }
139
-
140
- .icon32 {
141
- background: url(images/pf-icon.png) center center no-repeat;
142
- }
143
-
144
- #after-submit {
145
- border-top: 2px dashed #dfdfdf;
146
- margin:4em 0;
147
- padding-top:1em;
148
- }
149
- #addmanual-help {
150
- display: none;
151
- }
152
-
153
- #colorSelector {
154
- position: relative;
155
- width: 36px;
156
- height: 36px;
157
- background: url(images/select2.png);
158
- display: inline-block;
159
- cursor: pointer;
160
- }
161
-
162
- #colorSelector div {
163
- position: absolute;
164
- top: 4px;
165
- left: 4px;
166
- width: 28px;
167
- height: 28px;
168
- background: url(images/select2.png) center;
169
- }
170
-
171
- .colorpicker {
172
- width: 356px;
173
- height: 176px;
174
- overflow: hidden;
175
- position: absolute;
176
- background: url(images/custom_background.png);
177
- font-family: Arial, Helvetica, sans-serif;
178
- display: none;
179
- }
180
-
181
- .colorpicker_color {
182
- width: 150px;
183
- height: 150px;
184
- left: 14px;
185
- top: 13px;
186
- position: absolute;
187
- background: #f00;
188
- overflow: hidden;
189
- cursor: crosshair;
190
- }
191
-
192
- .colorpicker_color div {
193
- position: absolute;
194
- top: 0;
195
- left: 0;
196
- width: 150px;
197
- height: 150px;
198
- background: url(images/colorpicker_overlay.png);
199
- }
200
-
201
- .colorpicker_color div div {
202
- position: absolute;
203
- top: 0;
204
- left: 0;
205
- width: 11px;
206
- height: 11px;
207
- overflow: hidden;
208
- background: url(images/colorpicker_select.gif);
209
- margin: -5px 0 0 -5px;
210
- }
211
-
212
- .colorpicker_hue {
213
- position: absolute;
214
- top: 13px;
215
- left: 171px;
216
- width: 35px;
217
- height: 150px;
218
- cursor: n-resize;
219
- }
220
-
221
- .colorpicker_hue div {
222
- position: absolute;
223
- width: 35px;
224
- height: 9px;
225
- overflow: hidden;
226
- background: url(images/custom_indic.gif) left top;
227
- margin: -4px 0 0 0;
228
- left: 0px;
229
- }
230
-
231
- .colorpicker_new_color {
232
- position: absolute;
233
- width: 60px;
234
- height: 30px;
235
- left: 213px;
236
- top: 13px;
237
- background: #f00;
238
- }
239
-
240
- .colorpicker_current_color {
241
- position: absolute;
242
- width: 60px;
243
- height: 30px;
244
- left: 283px;
245
- top: 13px;
246
- background: #f00;
247
- }
248
-
249
- .colorpicker input {
250
- background-color: transparent;
251
- border: 1px solid transparent !important;
252
- position: absolute;
253
- font-size: 10px;
254
- font-family: Arial, Helvetica, sans-serif;
255
- color: #778398;
256
- top: 4px;
257
- right: 11px;
258
- text-align: right;
259
- margin: 0;
260
- padding: 0 !important;
261
- height: 11px;
262
- line-height: 11px;
263
- outline: none;
264
- }
265
-
266
- .colorpicker_hex {
267
- position: absolute;
268
- width: 72px;
269
- height: 22px;
270
- background: url(images/custom_hex.png) top;
271
- left: 212px;
272
- top: 142px;
273
- }
274
-
275
- .colorpicker_hex input {
276
- right: 6px;
277
- }
278
-
279
- .colorpicker_field {
280
- height: 22px;
281
- width: 62px;
282
- background-position: top;
283
- position: absolute;
284
- }
285
-
286
- .colorpicker_field span {
287
- position: absolute;
288
- width: 12px;
289
- height: 22px;
290
- overflow: hidden;
291
- top: 0;
292
- right: 0;
293
- cursor: n-resize;
294
- }
295
-
296
- .colorpicker_rgb_r {
297
- background-image: url(images/custom_rgb_r.png);
298
- top: 52px;
299
- left: 212px;
300
- }
301
-
302
- .colorpicker_rgb_g {
303
- background-image: url(images/custom_rgb_g.png);
304
- top: 82px;
305
- left: 212px;
306
- }
307
-
308
- .colorpicker_rgb_b {
309
- background-image: url(images/custom_rgb_b.png);
310
- top: 112px;
311
- left: 212px;
312
- }
313
-
314
- .colorpicker_hsb_h, .colorpicker_hsb_s, .colorpicker_hsb_b {
315
- display: none;
316
- }
317
-
318
- .colorpicker_submit {
319
- position: absolute;
320
- width: 22px;
321
- height: 22px;
322
- background: url(images/custom_submit.png) top;
323
- left: 322px;
324
- top: 142px;
325
- overflow: hidden;
326
- }
327
-
328
- .colorpicker_focus {
329
- background-position: center;
330
- }
331
-
332
- .colorpicker_hex.colorpicker_focus {
333
- background-position: bottom;
334
- }
335
-
336
- .colorpicker_submit.colorpicker_focus {
337
- background-position: bottom;
338
- }
339
-
340
- .colorpicker_slider {
341
- background-position: bottom;
342
- }
343
-
344
- #button-placement div#pages label {
345
- clear: left;
346
- }
347
-
348
- div#category-adder {
349
- float: none;
350
- }
351
-
352
- #pf-categories {
353
- display: none;
354
- float: left;
355
- position: relative;
356
- top: 1.5em;
357
- left: 20px;
358
- width: 270px;
359
- }
360
- #pf-categories h4 {
361
- margin: 0 0 0.4em 0;
362
- }
363
-
364
- #pf-categories-metabox, #category-adder {
365
- display: none;
366
- }
367
-
368
- span.description.pf-help-link {
369
- font-size: 130%;
370
- padding-left: 10px;
371
- font-style: normal;
372
- }
373
-
374
- .no-italics {
375
- font-style: normal !important;
376
- }
377
-
378
- #margin input[type="number"]{
379
- width: 65px;
380
- }
381
-
382
- label.radio-custom-btn {
383
- margin-right: 15px;
384
- }
385
-
386
- #custom-btn-group {
387
- float: left;
388
- }
389
-
390
- #custom-btn-group b {
391
- font-weight: bold;
392
- font-size: 14px;
393
- }
394
-
395
- #custom-btn-group, h2 {
396
- margin-top: 0;
397
- }
398
-
399
- #custom-img h2 {
400
- margin-bottom: 0;
401
- }
402
-
403
- #custom-img label, #custom-txt label {
404
- margin: 0 0 15px 0;
405
- }
406
-
407
- #txt-color, #txt-size {
408
- float: left;
409
- margin-right: 20px;
410
- }
411
-
412
- #custom_text {
413
- width: 200px;
414
- }
415
-
416
- /* Pro Notice Alert Layout */
417
- .pf-notice {
418
- border-left: 4px solid #fff;
419
- padding: 0 1.25rem;
420
- background: #fff;
421
- box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
422
- margin: 5px 0 15px;
423
- display:inline-block;
424
- }
425
-
426
- .pf-col-1{
427
- float:left;
428
- margin:0rem 1.5rem 1.5rem 0;
429
- }
430
- .pf-col-2{
431
- float: left;
432
- margin:0rem 1.5rem 1.5rem 0;
433
- }
434
-
435
- .pf-form-element {
436
- margin: 0 0 15px 0;
437
- }
438
-
439
- .pf-btn-message {
440
- margin-left: .5rem;
441
- }
442
-
443
- /* Colors */
444
- .pf-error {
445
- color: red;
446
- display: none;
447
- }
448
-
449
- .pf-text-success {
450
- color: #46b450;
451
- }
452
-
453
- .pf-text-warning {
454
- color: #ffb900;
455
- }
456
-
457
- .pf-text-error {
458
- color: #dc3232;
459
- }
460
-
461
- .pf-notice-success {
462
- border-left: 4px solid #46b450;
463
- }
464
-
465
- .pf-notice-warning {
466
- border-left: 4px solid #ffb900;
467
- }
468
-
469
- .pf-notice-error {
470
- border-left: 4px solid #dc3232;
471
- }
472
-
473
- .pf-alert-success{
474
- padding:.75rem 1.25rem;
475
- color: #155724;
476
- background-color: #d4edda;
477
- border-color: #c3e6cb;
478
- border-radius: .25rem;
479
- }
480
- .pf-alert-warning{
481
- padding:.75rem 1.25rem;
482
- color: #856404;
483
- background-color: #fff3cd;
484
- border-color: #ffeeba;
485
- border-radius: .25rem;
486
- }
487
- /* This hides messages depending on pro status */
488
- .pf-notice-success .pf-pro-features{
489
- display:none;
490
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin.js DELETED
@@ -1,299 +0,0 @@
1
- // Throughout the admin I chose to use slow animations to make it clear that stuff is being hidden or shown depending on settings.
2
- jQuery(document).ready(function() {
3
- jQuery('.show_list').change(function() {
4
- if (jQuery('.show_list:checked').length == 0) {
5
- jQuery('.content_placement').hide('slow');
6
- jQuery('.content_placement input').prop('disabled', true);
7
- jQuery('.show_template').prop('checked', true);
8
- } else {
9
- jQuery('.show_template').prop('checked', false);
10
- jQuery('.content_placement').show('slow');
11
- jQuery('.content_placement input').prop('disabled', false)
12
- }
13
-
14
- var postName = 'printfriendly_option[show_on_posts]';
15
- var homeName = 'printfriendly_option[show_on_homepage]';
16
-
17
- var optionName = jQuery(this).attr('name');
18
- if (optionName == homeName || optionName == postName){
19
- if(jQuery(this).is(':checked')) {
20
- jQuery('#pf-categories').show('slow');
21
- } else if(!jQuery('input[name="' + homeName + '"]').is(':checked')
22
- && !jQuery('input[name="' + postName + '"]').is(':checked')) {
23
- jQuery('#pf-categories').hide('slow');
24
- }
25
- }
26
- }).change();
27
-
28
- jQuery('.show_template').change(function() {
29
- if(jQuery(this).is(':checked')) {
30
- jQuery('.show_list').prop('checked', false);
31
- jQuery('.show_list').prop('disabled', true);
32
- jQuery('.content_placement').hide('slow');
33
- jQuery('.content_placement input').prop('disabled',true);
34
- jQuery('#pf-categories-metabox').hide('slow');
35
- } else {
36
- jQuery('.show_list').prop('disabled', false);
37
- jQuery('.content_placement').show('slow');
38
- jQuery('.content_placement input').prop('disabled', false);
39
- }
40
- }).change();
41
-
42
- jQuery('#toggle-categories').click(function() {
43
- if(jQuery('#pf-categories-metabox').is(':visible')) {
44
- jQuery('#pf-categories-metabox').hide('slow');
45
- } else {
46
- jQuery('#pf-categories-metabox').show('slow');
47
- }
48
- });
49
-
50
- jQuery(document).mouseup(function (e) {
51
- var container = jQuery("#pf-categories");
52
-
53
- if (container.has(e.target).length === 0) {
54
- jQuery('#pf-categories-metabox').hide('slow');
55
- }
56
- });
57
-
58
- jQuery('#colorSelector').ColorPicker({
59
- color: jQuery('#text_color').val(),
60
- onShow: function (colpkr) {
61
- jQuery(colpkr).fadeIn(500);
62
- return false;
63
- },
64
- onHide: function (colpkr) {
65
- jQuery(colpkr).fadeOut(500);
66
- return false;
67
- },
68
- onChange: function (hsb, hex, rgb) {
69
- jQuery('#colorSelector div').css('backgroundColor', '#' + hex);
70
- jQuery('#text_color').val('#' + hex);
71
- jQuery('.printfriendly-text2').css('color','#' + hex);
72
- }
73
- });
74
-
75
- jQuery('#text_size').change(function(){
76
- size = jQuery('#text_size').val();
77
- jQuery('.printfriendly-text2').css('font-size',parseInt(size));
78
- }).change();
79
-
80
- jQuery('#css input').change(function() {
81
- if(jQuery(this).is(':checked')) {
82
- jQuery(this).val('off');
83
- jQuery('#margin, #txt-color, #txt-size').hide('slow');
84
- pf_reset_style();
85
- } else {
86
- jQuery(this).val('on');
87
- jQuery('#margin, #txt-color, #txt-size').show('slow');
88
- pf_apply_style();
89
- }
90
- }).change();
91
-
92
- jQuery('#custom_text').on('change keyup', function(){
93
- pf_custom_text_change();
94
- });
95
-
96
- jQuery("[name='printfriendly_option[custom_button_text]']").change(function(){
97
- pf_custom_text_change();
98
- });
99
-
100
- function pf_custom_text_change(){
101
- jQuery('#buttongroup3 span:not(.printandpdf)').text( jQuery('#custom_text').val() );
102
- var newText = (jQuery("[name='printfriendly_option[custom_button_text]']:checked").val() === 'no-text') ? '' : jQuery('#custom_text').val();
103
- jQuery('#custom-btn-group span.printfriendly-text2').text( newText );
104
- }
105
-
106
- function pf_initialize_preview(urlInputSelector, previewSelector) {
107
- var el = jQuery(urlInputSelector);
108
- var imgUrl = jQuery.trim(el.val());
109
- var preview = jQuery(previewSelector + '-preview');
110
- var error = jQuery(previewSelector + '-error');
111
-
112
- el.on('input paste change keyup', function() {
113
- setTimeout(function() {
114
- // ie shows error if we try to merge the two below into a single statement
115
- var img = jQuery('<img/>');
116
- var customButtonIcon = jQuery("[name='printfriendly_option[custom_button_icon]']:checked").val();
117
-
118
- if (customButtonIcon === 'custom-image') {
119
- imgUrl = jQuery('#custom_image').val();
120
- } else if (customButtonIcon === 'no-image') {
121
- imgUrl = '';
122
- } else {
123
- imgUrl = customButtonIcon;
124
- }
125
-
126
- preview.html('');
127
- error.html('');
128
- if(imgUrl != '') {
129
- img.on('load', function(){
130
- preview.html('').append(img);
131
- })
132
- img.on('error', function(){
133
- error.html('<div class="error settings-error"><p><strong>Invalid Image URL</strong></p></div>');
134
- })
135
- img.attr('src',imgUrl);
136
- }
137
- }, 100);
138
- });
139
- }
140
-
141
- pf_initialize_preview('#custom_image', '#pf-custom-button');
142
- pf_initialize_preview("[name='printfriendly_option[custom_button_icon]']", '#pf-custom-button');
143
- pf_initialize_preview('#upload-an-image', '#pf-image');
144
- //jQuery('#custom_image, #upload-an-image').change();
145
- jQuery('#custom_image').on('focus', function() {
146
- jQuery('#custom-image').prop('checked', true);
147
- jQuery('#pf-custom-button-error').show();
148
- });
149
- jQuery('#button-style input.radio').on('change', function() {
150
- if(jQuery('#custom-image').is(':checked')) {
151
- jQuery('#pf-custom-button-error').show();
152
- } else {
153
- jQuery('#pf-custom-button-error').hide();
154
- }
155
- }).change();
156
-
157
- jQuery('#pf-logo').on('change', function() {
158
- if(jQuery(this).val() == 'favicon') {
159
- jQuery('.custom-logo, #image-preview').hide();
160
- } else {
161
- jQuery('.custom-logo').css('display', 'inline-block');
162
- jQuery('#image-preview').show();
163
- }
164
- }).change();
165
-
166
- jQuery('#website_protocol').on('change', function() {
167
- if(jQuery(this).val() == 'https') {
168
- jQuery('#https-beta-registration').show('slow');
169
- } else {
170
- jQuery('#https-beta-registration').hide('slow');
171
- }
172
- }).change();
173
-
174
- jQuery('#password_protected').on('change', function() {
175
- if(jQuery(this).val() == 'yes') {
176
- jQuery('#javascript').val('yes').change();
177
- if((jQuery('.password_protected_yes').attr('data-sub-status') == 'none') || (jQuery('.password_protected_yes').attr('data-sub-status') == 'expired')) {
178
- jQuery('.password_protected_yes').show();
179
- } else {
180
- jQuery('.password_protected_yes').hide();
181
- }
182
- pf_on_javascript();
183
- jQuery('#javascript').prop('disabled', true);
184
- jQuery('#pf-javascript-container').hide('slow');
185
- } else {
186
- jQuery('#javascript').prop('disabled', false);
187
- jQuery('#pf-javascript-container').show('slow');
188
- jQuery('.password_protected_yes').hide();
189
- }
190
- }).change();
191
-
192
- jQuery('#dynamic_content').on('change', function() {
193
- if(jQuery(this).val() == 'yes') {
194
- jQuery('#javascript').val('yes').change();
195
- if((jQuery('.dynamic_content_yes').attr('data-sub-status') == 'none') || (jQuery('.dynamic_content_yes').attr('data-sub-status') == 'expired')) {
196
- jQuery('.dynamic_content_yes').show();
197
- } else {
198
- jQuery('.dynamic_content_yes').hide();
199
- }
200
- pf_on_javascript();
201
- jQuery('#javascript').prop('disabled', true);
202
- jQuery('#pf-javascript-container').hide('slow');
203
- } else {
204
- jQuery('#javascript').prop('disabled', false);
205
- jQuery('#pf-javascript-container').show('slow');
206
- jQuery('.dynamic_content_yes').hide();
207
- }
208
- }).change();
209
-
210
- jQuery('#javascript').on('change', function() {
211
- if(jQuery(this).val() == 'yes') {
212
- pf_on_javascript();
213
- } else {
214
- pf_on_no_javascript();
215
- }
216
- }).change();
217
-
218
- function pf_on_javascript() {
219
- jQuery('.javascript').show();
220
- jQuery('.no-javascript').hide();
221
- }
222
-
223
- function pf_on_no_javascript() {
224
- jQuery('.javascript').hide();
225
- jQuery('.no-javascript').show();
226
- }
227
-
228
- function pf_reset_style() {
229
- jQuery('.printfriendly-text2').css('font-size',14);
230
- jQuery('.printfriendly-text2').css('color','#000000');
231
- }
232
-
233
- function pf_apply_style() {
234
- jQuery('.printfriendly-text2').css('color', jQuery('#text_color').val() );
235
- size = jQuery('#text_size').val();
236
- jQuery('.printfriendly-text2').css('font-size',parseInt(size));
237
- }
238
-
239
- // postboxes setup
240
- jQuery('.if-js-closed').removeClass('if-js-closed').addClass('closed');
241
-
242
- // categories checkboxes
243
- var category_ids = jQuery('#category_ids').val();
244
-
245
- if( typeof category_ids !== 'undefined' ) {
246
- category_ids = category_ids.split(',');
247
-
248
- if(category_ids[0] == 'all') {
249
- var ids = [];
250
- jQuery('#categorydiv :checkbox').each(function() {
251
- jQuery(this).prop('checked', true);
252
- });
253
- jQuery('#category-all :checkbox').each(function() {
254
- ids.push(jQuery(this).val());
255
- });
256
- // for older wp versions we do not have per category settings so
257
- // ids array will be empty and in that case we shouldn't replace 'all'
258
- if(ids.length != 0) {
259
- jQuery('#category_ids').val(ids.join(','));
260
- }
261
- } else {
262
-
263
- jQuery('#categorydiv :checkbox').each(function() {
264
- if(jQuery.inArray(jQuery(this).val(), category_ids) != -1) {
265
- jQuery(this).prop('checked', true);
266
- }
267
- });
268
- }
269
- }
270
-
271
- jQuery('#categorydiv :checkbox').click(function() {
272
- var values = jQuery('#category_ids').val();
273
- var ids = [];
274
- if(values != '')
275
- ids = values.split(',');
276
-
277
- var id = jQuery(this).val();
278
-
279
- if(jQuery(this).is(':checked'))
280
- ids.push(id);
281
- else {
282
- ids = jQuery.grep(ids, function(value) {
283
- return value != id;
284
- });
285
- }
286
-
287
- jQuery('#category_ids').val(ids.join(','));
288
- });
289
-
290
- jQuery('#custom_image').click(function() {
291
- jQuery("#custom-image-rb").prop('checked', true);
292
- jQuery("#custom-image-rb").trigger("change");
293
- });
294
-
295
- jQuery('#custom_text').click(function() {
296
- jQuery("#custom-text-rb").prop('checked', true);
297
- jQuery("#custom-text-rb").trigger("change");
298
- });
299
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin_pro.js DELETED
@@ -1,155 +0,0 @@
1
- jQuery(document).ready(function($) {
2
- $.fn.valid = function() {
3
- return this[0].validity.valid;
4
- };
5
-
6
- // Development
7
- // var API = 'http://localhost:3000/api/v3/trial_domains';
8
-
9
- // Production
10
- var API = 'https://www.printfriendly.com/api/v3/trial_domains';
11
-
12
- var $pro = $('.pf-pro');
13
- var $email = $('#pf-pro-email');
14
- var $emailError = $('#pf-pro-email-error');
15
- var $domain = $('#pf-pro-domain');
16
- var $domainError = $('#pf-pro-domain-error');
17
- var $statusHeader = $('#pf-pro-status-header');
18
- var $statusMessage = $('#pf-pro-status-message');
19
- var $activate = $('#pf-pro-activate');
20
- var $activateBtn = $('#pf-pro-activate-btn');
21
- var $buy = $('#pf-pro-buy');
22
- var $buyBtn = $('#pf-pro-buy-btn');
23
- var $communicationError = $('#pf-pro-communication-error');
24
- var $communicationErrorMessage = $('#pf-pro-communication-error-message');
25
- var $loading = $('#pf-pro-loading');
26
- var $loadingMessage = $('#pf-pro-loading-message');
27
-
28
- setupEvents();
29
- validate();
30
- checkStatus();
31
-
32
- function setupEvents() {
33
- $email.on('input', validate);
34
- $domain.on('input', validate);
35
- $activateBtn.click(activate);
36
- $buyBtn.click(buy);
37
- }
38
-
39
- function validate() {
40
- $emailError.toggle(!$email.valid());
41
- $domainError.toggle(!$domain.valid());
42
- $activateBtn.prop('disabled', !$email.valid() || !$domain.valid());
43
- displayStatus('none');
44
- }
45
-
46
- function checkStatus() {
47
- if ($email.valid() && $domain.valid()) {
48
- showLoading('Checking status.');
49
- $.getJSON(API + '/status', { domain: $domain.val() })
50
- .done(handleResponse)
51
- .fail(handleError)
52
- .always(hideLoading);
53
- }
54
- }
55
-
56
- function activate() {
57
- if ($email.valid() && $domain.valid()) {
58
- showLoading('Activation.');
59
- $.post(API, { email: $email.val(), domain: $domain.val() })
60
- .done(handleResponse)
61
- .fail(handleError)
62
- .always(hideLoading)
63
- }
64
- }
65
-
66
- function buy() {
67
- var url = 'https://www.printfriendly.com/button/pro?domain=' + $domain.val();
68
- window.open(url,'_blank');
69
- }
70
-
71
- function handleResponse(data) {
72
- $communicationError.hide();
73
- displayStatus(data.status, data.message);
74
- saveOptions();
75
- }
76
-
77
- function handleError(jqxhr, textStatus, error) {
78
- var message = '';
79
-
80
- if (jqxhr && jqxhr.responseJSON && jqxhr.responseJSON.errors) {
81
- var errors = jqxhr.responseJSON.errors;
82
-
83
- for(var prop in errors) {
84
- var item = errors[prop];
85
- message += prop + ': ' + item.join(', ') + "<br>";
86
- }
87
- } else {
88
- message = textStatus;
89
-
90
- if (error) {
91
- message = + ', ' + error;
92
- }
93
-
94
- message += '. Please check Internet connection.';
95
- }
96
-
97
- $communicationErrorMessage.html(message);
98
- $communicationError.show();
99
- }
100
-
101
- function showLoading(message) {
102
- $loading.show();
103
- $loadingMessage.text(message);
104
- }
105
-
106
- function hideLoading() {
107
- $loading.hide();
108
- }
109
-
110
- function displayStatus(status, message) {
111
- $statusHeader.removeClass('pf-text-success pf-text-warning pf-text-error');
112
- $pro.removeClass('pf-notice-success pf-notice-warning pf-notice-error');
113
- $statusMessage.text(message);
114
-
115
- $activate.hide();
116
- $buy.hide();
117
-
118
- switch(status) {
119
- case 'none':
120
- $activate.show();
121
- $pro.addClass('pf-notice-warning');
122
- $statusHeader.text('Activate').addClass('pf-text-warning');
123
- jQuery('.password_protected_yes').attr('data-sub-status', 'none');
124
- jQuery('.dynamic_content_yes').attr('data-sub-status', 'none');
125
- break;
126
- case 'trial':
127
- $buy.show();
128
- $pro.addClass('pf-notice-success');
129
- $statusHeader.text('Active Trial').addClass('pf-text-success');
130
- jQuery('.password_protected_yes').attr('data-sub-status', 'trial');
131
- jQuery('.dynamic_content_yes').attr('data-sub-status', 'trial');
132
- break;
133
- case 'pro':
134
- $pro.addClass('pf-notice-success');
135
- $statusHeader.text('Active').addClass('pf-text-success');
136
- jQuery('.password_protected_yes').attr('data-sub-status', 'pro');
137
- jQuery('.dynamic_content_yes').attr('data-sub-status', 'pro');
138
- break;
139
- case 'expired':
140
- $buy.show();
141
- $pro.addClass('pf-notice-error');
142
- $statusHeader.text('Expired').addClass('pf-text-error');
143
- jQuery('.password_protected_yes').attr('data-sub-status', 'expired');
144
- jQuery('.dynamic_content_yes').attr('data-sub-status', 'expired');
145
- break;
146
- }
147
- jQuery('#password_protected').change();
148
- jQuery('#dynamic_content').change();
149
- }
150
-
151
- function saveOptions() {
152
- var formData = $('#pf-options-form').serialize();
153
- $.post('options.php', formData).error(handleError);
154
- }
155
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/css/admin.css ADDED
@@ -0,0 +1,281 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Helper Classes */
2
+
3
+ .pf-no-margin {
4
+ margin: 0
5
+ }
6
+
7
+ .pf-hidden {
8
+ display: none;
9
+ }
10
+ .clearfloat{
11
+ clear:both;
12
+ }
13
+ label {
14
+ display: block;
15
+ margin: 0.5em 0;
16
+ }
17
+
18
+ h3 {
19
+ margin: 1.5rem 0 1rem;
20
+ border-bottom: 1px solid #ccc;
21
+ padding-bottom:.75em;
22
+ clear: both;
23
+ }
24
+
25
+ h3.hndle {
26
+ clear:none;
27
+ padding: 7px 5px;
28
+ }
29
+
30
+ input[type="radio"], img {
31
+ vertical-align: middle;
32
+ }
33
+
34
+ #placement-adv-options {
35
+ float: left;
36
+ }
37
+
38
+ .description {
39
+ color: #cacaca;
40
+ }
41
+ .printfriendly-text2 {
42
+ font-family: verdana;
43
+ font-size: 14px;
44
+ color: #6D9F00;
45
+ }
46
+ select{
47
+ display: block;
48
+ margin: .5em .5em 2em 0;
49
+ }
50
+ select#javascript, select#website_protocol, select#password_protected, select#dynamic_content {
51
+ display: inline-block;
52
+ margin-bottom: 0;
53
+ }
54
+ input[type="radio"], input[type="checkbox"] {
55
+ cursor: pointer;
56
+ margin-right: 10px;
57
+ vertical-align: middle;
58
+ }
59
+
60
+
61
+ /* WP lacks styling for type="number", so in here for now */
62
+ input[type="number"] {
63
+ border-color: #DFDFDF;
64
+ background-color: white;
65
+ border-width: 1px;
66
+ border-style: solid;
67
+ -moz-border-radius: 3px;
68
+ -khtml-border-radius: 3px;
69
+ -webkit-border-radius: 3px;
70
+ border-radius: 3px;
71
+ -moz-box-sizing: border-box;
72
+ -webkit-box-sizing: border-box;
73
+ -ms-box-sizing: border-box;
74
+ box-sizing: border-box;
75
+ width: 36px;
76
+ margin-right: .5em;
77
+ }
78
+ #css {
79
+ font-size: 11px;
80
+ color:#bbb;
81
+ }
82
+ #css input {
83
+ margin: 0 6px 0 12px;
84
+ vertical-align: baseline;
85
+ }
86
+ #pf-shortcode {
87
+ margin-left: 2em;
88
+ }
89
+
90
+ label#pf-favicon {
91
+ vertical-align: baseline;
92
+ margin: 0;
93
+ }
94
+
95
+ .printfriendly-details input {
96
+ width: 20em;
97
+ }
98
+
99
+ .printfriendly-details label {
100
+ margin-left: 5px;
101
+ margin-right: 2px;
102
+ }
103
+
104
+ #after-submit {
105
+ border-top: 2px dashed #dfdfdf;
106
+ margin:4em 0 0 0;
107
+ }
108
+ #addmanual-help {
109
+ display: none;
110
+ }
111
+
112
+ #button-placement div#pages label {
113
+ clear: left;
114
+ }
115
+
116
+ div#category-adder {
117
+ float: none;
118
+ }
119
+
120
+ #pf-categories {
121
+ display: none;
122
+ float: left;
123
+ position: relative;
124
+ top: 1.5em;
125
+ left: 20px;
126
+ width: 270px;
127
+ }
128
+ #pf-categories h4 {
129
+ margin: 0 0 0.4em 0;
130
+ }
131
+
132
+ #pf-categories-metabox, #category-adder {
133
+ display: none;
134
+ }
135
+
136
+ span.description.pf-help-link {
137
+ font-size: 130%;
138
+ padding-left: 10px;
139
+ font-style: normal;
140
+ }
141
+
142
+ .no-italics {
143
+ font-style: normal !important;
144
+ }
145
+
146
+ #margin input[type="number"]{
147
+ width: 65px;
148
+ }
149
+
150
+ div.custom-btn.disabled {
151
+ opacity: 0.5;
152
+ pointer-events: none;
153
+ display: none;
154
+ }
155
+
156
+ /* Pro Notice Alert Layout */
157
+ .pf-notice {
158
+ border-left: 4px solid #fff;
159
+ padding: 0 1.25rem;
160
+ background: #fff;
161
+ box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
162
+ margin: 5px 0 15px;
163
+ display:inline-block;
164
+ }
165
+
166
+ .pf-col-1{
167
+ float:left;
168
+ margin:0rem 1.5rem 1.5rem 0;
169
+ }
170
+ .pf-col-2{
171
+ float: left;
172
+ margin:0rem 1.5rem 1.5rem 0;
173
+ }
174
+
175
+ .pf-form-element {
176
+ margin: 0 0 15px 0;
177
+ }
178
+
179
+ .pf-btn-message {
180
+ margin-left: .5rem;
181
+ }
182
+
183
+ /* Colors */
184
+ .pf-error {
185
+ color: red;
186
+ display: none;
187
+ }
188
+
189
+ .pf-text-success {
190
+ color: #46b450;
191
+ }
192
+
193
+ .pf-text-warning {
194
+ color: #ffb900;
195
+ }
196
+
197
+ .pf-text-error {
198
+ color: #dc3232;
199
+ }
200
+
201
+ .pf-notice-success {
202
+ border-left: 4px solid #46b450;
203
+ }
204
+
205
+ .pf-notice-warning {
206
+ border-left: 4px solid #ffb900;
207
+ }
208
+
209
+ .pf-notice-error {
210
+ border-left: 4px solid #dc3232;
211
+ }
212
+
213
+ .pf-alert-success{
214
+ padding:.75rem 1.25rem;
215
+ color: #155724;
216
+ background-color: #d4edda;
217
+ border-color: #c3e6cb;
218
+ border-radius: .25rem;
219
+ }
220
+ .pf-alert-warning{
221
+ padding:.75rem 1.25rem;
222
+ color: #856404;
223
+ background-color: #fff3cd;
224
+ border-color: #ffeeba;
225
+ border-radius: .25rem;
226
+ }
227
+ /* This hides messages depending on pro status */
228
+ .pf-notice-success .pf-pro-features{
229
+ display:none;
230
+ }
231
+
232
+ ol {
233
+ list-style: circle !important;
234
+ }
235
+
236
+
237
+ #custom-img {
238
+ margin: 0 4.5em;
239
+ }
240
+
241
+ #enter-image-url {
242
+ margin: 10px 0 0 30px;
243
+ display: none;
244
+ }
245
+
246
+ #custom-image-rb:checked ~ #enter-image-url {
247
+ display: block;
248
+ }
249
+
250
+ #pf-txt-attributes {
251
+ display: none;
252
+ margin: 1em 0;
253
+ }
254
+
255
+ #custom-text-rb:checked ~ #pf-txt-attributes {
256
+ display: block;
257
+ }
258
+
259
+ #custom-logo {
260
+ display: none;
261
+ margin: 1em 0;
262
+ }
263
+
264
+ #icon-upload-an-image:checked ~ #custom-logo {
265
+ display: block;
266
+ }
267
+
268
+ .pf-select2 {
269
+ width: 50%;
270
+ }
271
+
272
+ /* do not show any notices that do not belong to us */
273
+ .notice:not(.pf-notice) {
274
+ display: none;
275
+ }
276
+
277
+ /** override bulma styles **/
278
+
279
+ .pf-regular-text {
280
+ width: 25em !important;
281
+ }
assets/css/lib/bulma.prefixed.min.css ADDED
@@ -0,0 +1 @@
 
1
+ /*! bulma.io v0.9.1 | MIT License | github.com/jgthms/bulma */@-webkit-keyframes spinAround{from{transform:rotate(0)}to{transform:rotate(359deg)}}@keyframes spinAround{from{transform:rotate(0)}to{transform:rotate(359deg)}}.pf-bu-breadcrumb,.pf-bu-button,.pf-bu-delete,.pf-bu-file,.pf-bu-is-unselectable,.pf-bu-modal-close,.pf-bu-pagination-ellipsis,.pf-bu-pagination-link,.pf-bu-pagination-next,.pf-bu-pagination-previous,.pf-bu-tabs{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pf-bu-navbar-link:not(.pf-bu-is-arrowless)::after,.pf-bu-select:not(.pf-bu-is-multiple):not(.pf-bu-is-loading)::after{border:3px solid transparent;border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:.625em;margin-top:-.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:.625em}.pf-bu-block:not(:last-child),.pf-bu-box:not(:last-child),.pf-bu-breadcrumb:not(:last-child),.pf-bu-content:not(:last-child),.pf-bu-highlight:not(:last-child),.pf-bu-level:not(:last-child),.pf-bu-message:not(:last-child),.pf-bu-notification:not(:last-child),.pf-bu-pagination:not(:last-child),.pf-bu-progress:not(:last-child),.pf-bu-subtitle:not(:last-child),.pf-bu-table-container:not(:last-child),.pf-bu-table:not(:last-child),.pf-bu-tabs:not(:last-child),.pf-bu-title:not(:last-child){margin-bottom:1.5rem}.pf-bu-delete,.pf-bu-modal-close{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:0;position:relative;vertical-align:top;width:20px}.pf-bu-delete::after,.pf-bu-delete::before,.pf-bu-modal-close::after,.pf-bu-modal-close::before{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.pf-bu-delete::before,.pf-bu-modal-close::before{height:2px;width:50%}.pf-bu-delete::after,.pf-bu-modal-close::after{height:50%;width:2px}.pf-bu-delete:focus,.pf-bu-delete:hover,.pf-bu-modal-close:focus,.pf-bu-modal-close:hover{background-color:rgba(10,10,10,.3)}.pf-bu-delete:active,.pf-bu-modal-close:active{background-color:rgba(10,10,10,.4)}.pf-bu-is-small.pf-bu-delete,.pf-bu-is-small.pf-bu-modal-close{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.pf-bu-is-medium.pf-bu-delete,.pf-bu-is-medium.pf-bu-modal-close{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.pf-bu-is-large.pf-bu-delete,.pf-bu-is-large.pf-bu-modal-close{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.pf-bu-button.pf-bu-is-loading::after,.pf-bu-control.pf-bu-is-loading::after,.pf-bu-loader,.pf-bu-select.pf-bu-is-loading::after{-webkit-animation:spinAround .5s infinite linear;animation:spinAround .5s infinite linear;border:2px solid #dbdbdb;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.pf-bu-hero-video,.pf-bu-image.pf-bu-is-16by9 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-16by9 img,.pf-bu-image.pf-bu-is-1by1 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-1by1 img,.pf-bu-image.pf-bu-is-1by2 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-1by2 img,.pf-bu-image.pf-bu-is-1by3 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-1by3 img,.pf-bu-image.pf-bu-is-2by1 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-2by1 img,.pf-bu-image.pf-bu-is-2by3 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-2by3 img,.pf-bu-image.pf-bu-is-3by1 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-3by1 img,.pf-bu-image.pf-bu-is-3by2 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-3by2 img,.pf-bu-image.pf-bu-is-3by4 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-3by4 img,.pf-bu-image.pf-bu-is-3by5 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-3by5 img,.pf-bu-image.pf-bu-is-4by3 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-4by3 img,.pf-bu-image.pf-bu-is-4by5 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-4by5 img,.pf-bu-image.pf-bu-is-5by3 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-5by3 img,.pf-bu-image.pf-bu-is-5by4 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-5by4 img,.pf-bu-image.pf-bu-is-9by16 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-9by16 img,.pf-bu-image.pf-bu-is-square .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-square img,.pf-bu-is-overlay,.pf-bu-modal,.pf-bu-modal-background{bottom:0;left:0;position:absolute;right:0;top:0}.pf-bu-button,.pf-bu-file-cta,.pf-bu-file-name,.pf-bu-input,.pf-bu-pagination-ellipsis,.pf-bu-pagination-link,.pf-bu-pagination-next,.pf-bu-pagination-previous,.pf-bu-select select,.pf-bu-textarea{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.5em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(.5em - 1px);padding-left:calc(.75em - 1px);padding-right:calc(.75em - 1px);padding-top:calc(.5em - 1px);position:relative;vertical-align:top}.pf-bu-button:active,.pf-bu-button:focus,.pf-bu-file-cta:active,.pf-bu-file-cta:focus,.pf-bu-file-name:active,.pf-bu-file-name:focus,.pf-bu-input:active,.pf-bu-input:focus,.pf-bu-is-active.pf-bu-button,.pf-bu-is-active.pf-bu-file-cta,.pf-bu-is-active.pf-bu-file-name,.pf-bu-is-active.pf-bu-input,.pf-bu-is-active.pf-bu-pagination-ellipsis,.pf-bu-is-active.pf-bu-pagination-link,.pf-bu-is-active.pf-bu-pagination-next,.pf-bu-is-active.pf-bu-pagination-previous,.pf-bu-is-active.pf-bu-textarea,.pf-bu-is-focused.pf-bu-button,.pf-bu-is-focused.pf-bu-file-cta,.pf-bu-is-focused.pf-bu-file-name,.pf-bu-is-focused.pf-bu-input,.pf-bu-is-focused.pf-bu-pagination-ellipsis,.pf-bu-is-focused.pf-bu-pagination-link,.pf-bu-is-focused.pf-bu-pagination-next,.pf-bu-is-focused.pf-bu-pagination-previous,.pf-bu-is-focused.pf-bu-textarea,.pf-bu-pagination-ellipsis:active,.pf-bu-pagination-ellipsis:focus,.pf-bu-pagination-link:active,.pf-bu-pagination-link:focus,.pf-bu-pagination-next:active,.pf-bu-pagination-next:focus,.pf-bu-pagination-previous:active,.pf-bu-pagination-previous:focus,.pf-bu-select select.pf-bu-is-active,.pf-bu-select select.pf-bu-is-focused,.pf-bu-select select:active,.pf-bu-select select:focus,.pf-bu-textarea:active,.pf-bu-textarea:focus{outline:0}.pf-bu-button[disabled],.pf-bu-file-cta[disabled],.pf-bu-file-name[disabled],.pf-bu-input[disabled],.pf-bu-pagination-ellipsis[disabled],.pf-bu-pagination-link[disabled],.pf-bu-pagination-next[disabled],.pf-bu-pagination-previous[disabled],.pf-bu-select fieldset[disabled] select,.pf-bu-select select[disabled],.pf-bu-textarea[disabled],fieldset[disabled] .pf-bu-button,fieldset[disabled] .pf-bu-file-cta,fieldset[disabled] .pf-bu-file-name,fieldset[disabled] .pf-bu-input,fieldset[disabled] .pf-bu-pagination-ellipsis,fieldset[disabled] .pf-bu-pagination-link,fieldset[disabled] .pf-bu-pagination-next,fieldset[disabled] .pf-bu-pagination-previous,fieldset[disabled] .pf-bu-select select,fieldset[disabled] .pf-bu-textarea{cursor:not-allowed}/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */blockquote,body,dd,dl,dt,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,html,iframe,legend,li,ol,p,pre,textarea,ul{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,::after,::before{box-sizing:inherit}img,video{height:auto;max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:inherit}html{font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:hidden;overflow-y:scroll;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,optgroup,select,textarea{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:monospace}body{color:#4a4a4a;font-size:1em;font-weight:400;line-height:1.5}a{color:#3273dc;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:#f5f5f5;color:#da1039;font-size:.875em;font-weight:400;padding:.25em .5em .25em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type=checkbox],input[type=radio]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#363636;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#4a4a4a;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:inherit}table th{color:#363636}.pf-bu-box{background-color:#fff;border-radius:6px;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);color:#4a4a4a;display:block;padding:1.25rem}a.pf-bu-box:focus,a.pf-bu-box:hover{box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px #3273dc}a.pf-bu-box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,.2),0 0 0 1px #3273dc}.pf-bu-button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(.5em - 1px);padding-left:1em;padding-right:1em;padding-top:calc(.5em - 1px);text-align:center;white-space:nowrap}.pf-bu-button strong{color:inherit}.pf-bu-button .pf-bu-icon,.pf-bu-button .pf-bu-icon.pf-bu-is-large,.pf-bu-button .pf-bu-icon.pf-bu-is-medium,.pf-bu-button .pf-bu-icon.pf-bu-is-small{height:1.5em;width:1.5em}.pf-bu-button .pf-bu-icon:first-child:not(:last-child){margin-left:calc(-.5em - 1px);margin-right:.25em}.pf-bu-button .pf-bu-icon:last-child:not(:first-child){margin-left:.25em;margin-right:calc(-.5em - 1px)}.pf-bu-button .pf-bu-icon:first-child:last-child{margin-left:calc(-.5em - 1px);margin-right:calc(-.5em - 1px)}.pf-bu-button.pf-bu-is-hovered,.pf-bu-button:hover{border-color:#b5b5b5;color:#363636}.pf-bu-button.pf-bu-is-focused,.pf-bu-button:focus{border-color:#3273dc;color:#363636}.pf-bu-button.pf-bu-is-focused:not(:active),.pf-bu-button:focus:not(:active){box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.pf-bu-button.pf-bu-is-active,.pf-bu-button:active{border-color:#4a4a4a;color:#363636}.pf-bu-button.pf-bu-is-text{background-color:transparent;border-color:transparent;color:#4a4a4a;text-decoration:underline}.pf-bu-button.pf-bu-is-text.pf-bu-is-focused,.pf-bu-button.pf-bu-is-text.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-text:focus,.pf-bu-button.pf-bu-is-text:hover{background-color:#f5f5f5;color:#363636}.pf-bu-button.pf-bu-is-text.pf-bu-is-active,.pf-bu-button.pf-bu-is-text:active{background-color:#e8e8e8;color:#363636}.pf-bu-button.pf-bu-is-text[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-text{background-color:transparent;border-color:transparent;box-shadow:none}.pf-bu-button.pf-bu-is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.pf-bu-button.pf-bu-is-white.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-white:hover{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.pf-bu-button.pf-bu-is-white.pf-bu-is-focused,.pf-bu-button.pf-bu-is-white:focus{border-color:transparent;color:#0a0a0a}.pf-bu-button.pf-bu-is-white.pf-bu-is-focused:not(:active),.pf-bu-button.pf-bu-is-white:focus:not(:active){box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.pf-bu-button.pf-bu-is-white.pf-bu-is-active,.pf-bu-button.pf-bu-is-white:active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.pf-bu-button.pf-bu-is-white[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-white{background-color:#fff;border-color:transparent;box-shadow:none}.pf-bu-button.pf-bu-is-white.pf-bu-is-inverted{background-color:#0a0a0a;color:#fff}.pf-bu-button.pf-bu-is-white.pf-bu-is-inverted.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-white.pf-bu-is-inverted:hover{background-color:#000}.pf-bu-button.pf-bu-is-white.pf-bu-is-inverted[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-white.pf-bu-is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.pf-bu-button.pf-bu-is-white.pf-bu-is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.pf-bu-button.pf-bu-is-white.pf-bu-is-outlined{background-color:transparent;border-color:#fff;color:#fff}.pf-bu-button.pf-bu-is-white.pf-bu-is-outlined.pf-bu-is-focused,.pf-bu-button.pf-bu-is-white.pf-bu-is-outlined.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-white.pf-bu-is-outlined:focus,.pf-bu-button.pf-bu-is-white.pf-bu-is-outlined:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.pf-bu-button.pf-bu-is-white.pf-bu-is-outlined.pf-bu-is-loading::after{border-color:transparent transparent #fff #fff!important}.pf-bu-button.pf-bu-is-white.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-focused::after,.pf-bu-button.pf-bu-is-white.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-hovered::after,.pf-bu-button.pf-bu-is-white.pf-bu-is-outlined.pf-bu-is-loading:focus::after,.pf-bu-button.pf-bu-is-white.pf-bu-is-outlined.pf-bu-is-loading:hover::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.pf-bu-button.pf-bu-is-white.pf-bu-is-outlined[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-white.pf-bu-is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.pf-bu-button.pf-bu-is-white.pf-bu-is-inverted.pf-bu-is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.pf-bu-button.pf-bu-is-white.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-focused,.pf-bu-button.pf-bu-is-white.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-white.pf-bu-is-inverted.pf-bu-is-outlined:focus,.pf-bu-button.pf-bu-is-white.pf-bu-is-inverted.pf-bu-is-outlined:hover{background-color:#0a0a0a;color:#fff}.pf-bu-button.pf-bu-is-white.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-focused::after,.pf-bu-button.pf-bu-is-white.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-hovered::after,.pf-bu-button.pf-bu-is-white.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading:focus::after,.pf-bu-button.pf-bu-is-white.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.pf-bu-button.pf-bu-is-white.pf-bu-is-inverted.pf-bu-is-outlined[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-white.pf-bu-is-inverted.pf-bu-is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.pf-bu-button.pf-bu-is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-black.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-black:hover{background-color:#040404;border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-black.pf-bu-is-focused,.pf-bu-button.pf-bu-is-black:focus{border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-black.pf-bu-is-focused:not(:active),.pf-bu-button.pf-bu-is-black:focus:not(:active){box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.pf-bu-button.pf-bu-is-black.pf-bu-is-active,.pf-bu-button.pf-bu-is-black:active{background-color:#000;border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-black[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}.pf-bu-button.pf-bu-is-black.pf-bu-is-inverted{background-color:#fff;color:#0a0a0a}.pf-bu-button.pf-bu-is-black.pf-bu-is-inverted.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-black.pf-bu-is-inverted:hover{background-color:#f2f2f2}.pf-bu-button.pf-bu-is-black.pf-bu-is-inverted[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-black.pf-bu-is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.pf-bu-button.pf-bu-is-black.pf-bu-is-loading::after{border-color:transparent transparent #fff #fff!important}.pf-bu-button.pf-bu-is-black.pf-bu-is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.pf-bu-button.pf-bu-is-black.pf-bu-is-outlined.pf-bu-is-focused,.pf-bu-button.pf-bu-is-black.pf-bu-is-outlined.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-black.pf-bu-is-outlined:focus,.pf-bu-button.pf-bu-is-black.pf-bu-is-outlined:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.pf-bu-button.pf-bu-is-black.pf-bu-is-outlined.pf-bu-is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.pf-bu-button.pf-bu-is-black.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-focused::after,.pf-bu-button.pf-bu-is-black.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-hovered::after,.pf-bu-button.pf-bu-is-black.pf-bu-is-outlined.pf-bu-is-loading:focus::after,.pf-bu-button.pf-bu-is-black.pf-bu-is-outlined.pf-bu-is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.pf-bu-button.pf-bu-is-black.pf-bu-is-outlined[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-black.pf-bu-is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.pf-bu-button.pf-bu-is-black.pf-bu-is-inverted.pf-bu-is-outlined{background-color:transparent;border-color:#fff;color:#fff}.pf-bu-button.pf-bu-is-black.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-focused,.pf-bu-button.pf-bu-is-black.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-black.pf-bu-is-inverted.pf-bu-is-outlined:focus,.pf-bu-button.pf-bu-is-black.pf-bu-is-inverted.pf-bu-is-outlined:hover{background-color:#fff;color:#0a0a0a}.pf-bu-button.pf-bu-is-black.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-focused::after,.pf-bu-button.pf-bu-is-black.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-hovered::after,.pf-bu-button.pf-bu-is-black.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading:focus::after,.pf-bu-button.pf-bu-is-black.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading:hover::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.pf-bu-button.pf-bu-is-black.pf-bu-is-inverted.pf-bu-is-outlined[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-black.pf-bu-is-inverted.pf-bu-is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.pf-bu-button.pf-bu-is-light{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,.7)}.pf-bu-button.pf-bu-is-light.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-light:hover{background-color:#eee;border-color:transparent;color:rgba(0,0,0,.7)}.pf-bu-button.pf-bu-is-light.pf-bu-is-focused,.pf-bu-button.pf-bu-is-light:focus{border-color:transparent;color:rgba(0,0,0,.7)}.pf-bu-button.pf-bu-is-light.pf-bu-is-focused:not(:active),.pf-bu-button.pf-bu-is-light:focus:not(:active){box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.pf-bu-button.pf-bu-is-light.pf-bu-is-active,.pf-bu-button.pf-bu-is-light:active{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,.7)}.pf-bu-button.pf-bu-is-light[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-light{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.pf-bu-button.pf-bu-is-light.pf-bu-is-inverted{background-color:rgba(0,0,0,.7);color:#f5f5f5}.pf-bu-button.pf-bu-is-light.pf-bu-is-inverted.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-light.pf-bu-is-inverted:hover{background-color:rgba(0,0,0,.7)}.pf-bu-button.pf-bu-is-light.pf-bu-is-inverted[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-light.pf-bu-is-inverted{background-color:rgba(0,0,0,.7);border-color:transparent;box-shadow:none;color:#f5f5f5}.pf-bu-button.pf-bu-is-light.pf-bu-is-loading::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.pf-bu-button.pf-bu-is-light.pf-bu-is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.pf-bu-button.pf-bu-is-light.pf-bu-is-outlined.pf-bu-is-focused,.pf-bu-button.pf-bu-is-light.pf-bu-is-outlined.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-light.pf-bu-is-outlined:focus,.pf-bu-button.pf-bu-is-light.pf-bu-is-outlined:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,.7)}.pf-bu-button.pf-bu-is-light.pf-bu-is-outlined.pf-bu-is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5!important}.pf-bu-button.pf-bu-is-light.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-focused::after,.pf-bu-button.pf-bu-is-light.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-hovered::after,.pf-bu-button.pf-bu-is-light.pf-bu-is-outlined.pf-bu-is-loading:focus::after,.pf-bu-button.pf-bu-is-light.pf-bu-is-outlined.pf-bu-is-loading:hover::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.pf-bu-button.pf-bu-is-light.pf-bu-is-outlined[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-light.pf-bu-is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.pf-bu-button.pf-bu-is-light.pf-bu-is-inverted.pf-bu-is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);color:rgba(0,0,0,.7)}.pf-bu-button.pf-bu-is-light.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-focused,.pf-bu-button.pf-bu-is-light.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-light.pf-bu-is-inverted.pf-bu-is-outlined:focus,.pf-bu-button.pf-bu-is-light.pf-bu-is-inverted.pf-bu-is-outlined:hover{background-color:rgba(0,0,0,.7);color:#f5f5f5}.pf-bu-button.pf-bu-is-light.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-focused::after,.pf-bu-button.pf-bu-is-light.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-hovered::after,.pf-bu-button.pf-bu-is-light.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading:focus::after,.pf-bu-button.pf-bu-is-light.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading:hover::after{border-color:transparent transparent #f5f5f5 #f5f5f5!important}.pf-bu-button.pf-bu-is-light.pf-bu-is-inverted.pf-bu-is-outlined[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-light.pf-bu-is-inverted.pf-bu-is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);box-shadow:none;color:rgba(0,0,0,.7)}.pf-bu-button.pf-bu-is-dark{background-color:#363636;border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-dark.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-dark:hover{background-color:#2f2f2f;border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-dark.pf-bu-is-focused,.pf-bu-button.pf-bu-is-dark:focus{border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-dark.pf-bu-is-focused:not(:active),.pf-bu-button.pf-bu-is-dark:focus:not(:active){box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.pf-bu-button.pf-bu-is-dark.pf-bu-is-active,.pf-bu-button.pf-bu-is-dark:active{background-color:#292929;border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-dark[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-dark{background-color:#363636;border-color:transparent;box-shadow:none}.pf-bu-button.pf-bu-is-dark.pf-bu-is-inverted{background-color:#fff;color:#363636}.pf-bu-button.pf-bu-is-dark.pf-bu-is-inverted.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-dark.pf-bu-is-inverted:hover{background-color:#f2f2f2}.pf-bu-button.pf-bu-is-dark.pf-bu-is-inverted[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-dark.pf-bu-is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#363636}.pf-bu-button.pf-bu-is-dark.pf-bu-is-loading::after{border-color:transparent transparent #fff #fff!important}.pf-bu-button.pf-bu-is-dark.pf-bu-is-outlined{background-color:transparent;border-color:#363636;color:#363636}.pf-bu-button.pf-bu-is-dark.pf-bu-is-outlined.pf-bu-is-focused,.pf-bu-button.pf-bu-is-dark.pf-bu-is-outlined.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-dark.pf-bu-is-outlined:focus,.pf-bu-button.pf-bu-is-dark.pf-bu-is-outlined:hover{background-color:#363636;border-color:#363636;color:#fff}.pf-bu-button.pf-bu-is-dark.pf-bu-is-outlined.pf-bu-is-loading::after{border-color:transparent transparent #363636 #363636!important}.pf-bu-button.pf-bu-is-dark.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-focused::after,.pf-bu-button.pf-bu-is-dark.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-hovered::after,.pf-bu-button.pf-bu-is-dark.pf-bu-is-outlined.pf-bu-is-loading:focus::after,.pf-bu-button.pf-bu-is-dark.pf-bu-is-outlined.pf-bu-is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.pf-bu-button.pf-bu-is-dark.pf-bu-is-outlined[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-dark.pf-bu-is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.pf-bu-button.pf-bu-is-dark.pf-bu-is-inverted.pf-bu-is-outlined{background-color:transparent;border-color:#fff;color:#fff}.pf-bu-button.pf-bu-is-dark.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-focused,.pf-bu-button.pf-bu-is-dark.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-dark.pf-bu-is-inverted.pf-bu-is-outlined:focus,.pf-bu-button.pf-bu-is-dark.pf-bu-is-inverted.pf-bu-is-outlined:hover{background-color:#fff;color:#363636}.pf-bu-button.pf-bu-is-dark.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-focused::after,.pf-bu-button.pf-bu-is-dark.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-hovered::after,.pf-bu-button.pf-bu-is-dark.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading:focus::after,.pf-bu-button.pf-bu-is-dark.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading:hover::after{border-color:transparent transparent #363636 #363636!important}.pf-bu-button.pf-bu-is-dark.pf-bu-is-inverted.pf-bu-is-outlined[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-dark.pf-bu-is-inverted.pf-bu-is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.pf-bu-button.pf-bu-is-primary{background-color:#00d1b2;border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-primary.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-primary:hover{background-color:#00c4a7;border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-primary.pf-bu-is-focused,.pf-bu-button.pf-bu-is-primary:focus{border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-primary.pf-bu-is-focused:not(:active),.pf-bu-button.pf-bu-is-primary:focus:not(:active){box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.pf-bu-button.pf-bu-is-primary.pf-bu-is-active,.pf-bu-button.pf-bu-is-primary:active{background-color:#00b89c;border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-primary[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-primary{background-color:#00d1b2;border-color:transparent;box-shadow:none}.pf-bu-button.pf-bu-is-primary.pf-bu-is-inverted{background-color:#fff;color:#00d1b2}.pf-bu-button.pf-bu-is-primary.pf-bu-is-inverted.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-primary.pf-bu-is-inverted:hover{background-color:#f2f2f2}.pf-bu-button.pf-bu-is-primary.pf-bu-is-inverted[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-primary.pf-bu-is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#00d1b2}.pf-bu-button.pf-bu-is-primary.pf-bu-is-loading::after{border-color:transparent transparent #fff #fff!important}.pf-bu-button.pf-bu-is-primary.pf-bu-is-outlined{background-color:transparent;border-color:#00d1b2;color:#00d1b2}.pf-bu-button.pf-bu-is-primary.pf-bu-is-outlined.pf-bu-is-focused,.pf-bu-button.pf-bu-is-primary.pf-bu-is-outlined.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-primary.pf-bu-is-outlined:focus,.pf-bu-button.pf-bu-is-primary.pf-bu-is-outlined:hover{background-color:#00d1b2;border-color:#00d1b2;color:#fff}.pf-bu-button.pf-bu-is-primary.pf-bu-is-outlined.pf-bu-is-loading::after{border-color:transparent transparent #00d1b2 #00d1b2!important}.pf-bu-button.pf-bu-is-primary.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-focused::after,.pf-bu-button.pf-bu-is-primary.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-hovered::after,.pf-bu-button.pf-bu-is-primary.pf-bu-is-outlined.pf-bu-is-loading:focus::after,.pf-bu-button.pf-bu-is-primary.pf-bu-is-outlined.pf-bu-is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.pf-bu-button.pf-bu-is-primary.pf-bu-is-outlined[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-primary.pf-bu-is-outlined{background-color:transparent;border-color:#00d1b2;box-shadow:none;color:#00d1b2}.pf-bu-button.pf-bu-is-primary.pf-bu-is-inverted.pf-bu-is-outlined{background-color:transparent;border-color:#fff;color:#fff}.pf-bu-button.pf-bu-is-primary.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-focused,.pf-bu-button.pf-bu-is-primary.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-primary.pf-bu-is-inverted.pf-bu-is-outlined:focus,.pf-bu-button.pf-bu-is-primary.pf-bu-is-inverted.pf-bu-is-outlined:hover{background-color:#fff;color:#00d1b2}.pf-bu-button.pf-bu-is-primary.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-focused::after,.pf-bu-button.pf-bu-is-primary.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-hovered::after,.pf-bu-button.pf-bu-is-primary.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading:focus::after,.pf-bu-button.pf-bu-is-primary.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading:hover::after{border-color:transparent transparent #00d1b2 #00d1b2!important}.pf-bu-button.pf-bu-is-primary.pf-bu-is-inverted.pf-bu-is-outlined[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-primary.pf-bu-is-inverted.pf-bu-is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.pf-bu-button.pf-bu-is-primary.pf-bu-is-light{background-color:#ebfffc;color:#00947e}.pf-bu-button.pf-bu-is-primary.pf-bu-is-light.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-primary.pf-bu-is-light:hover{background-color:#defffa;border-color:transparent;color:#00947e}.pf-bu-button.pf-bu-is-primary.pf-bu-is-light.pf-bu-is-active,.pf-bu-button.pf-bu-is-primary.pf-bu-is-light:active{background-color:#d1fff8;border-color:transparent;color:#00947e}.pf-bu-button.pf-bu-is-link{background-color:#3273dc;border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-link.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-link:hover{background-color:#276cda;border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-link.pf-bu-is-focused,.pf-bu-button.pf-bu-is-link:focus{border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-link.pf-bu-is-focused:not(:active),.pf-bu-button.pf-bu-is-link:focus:not(:active){box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.pf-bu-button.pf-bu-is-link.pf-bu-is-active,.pf-bu-button.pf-bu-is-link:active{background-color:#2366d1;border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-link[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-link{background-color:#3273dc;border-color:transparent;box-shadow:none}.pf-bu-button.pf-bu-is-link.pf-bu-is-inverted{background-color:#fff;color:#3273dc}.pf-bu-button.pf-bu-is-link.pf-bu-is-inverted.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-link.pf-bu-is-inverted:hover{background-color:#f2f2f2}.pf-bu-button.pf-bu-is-link.pf-bu-is-inverted[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-link.pf-bu-is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#3273dc}.pf-bu-button.pf-bu-is-link.pf-bu-is-loading::after{border-color:transparent transparent #fff #fff!important}.pf-bu-button.pf-bu-is-link.pf-bu-is-outlined{background-color:transparent;border-color:#3273dc;color:#3273dc}.pf-bu-button.pf-bu-is-link.pf-bu-is-outlined.pf-bu-is-focused,.pf-bu-button.pf-bu-is-link.pf-bu-is-outlined.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-link.pf-bu-is-outlined:focus,.pf-bu-button.pf-bu-is-link.pf-bu-is-outlined:hover{background-color:#3273dc;border-color:#3273dc;color:#fff}.pf-bu-button.pf-bu-is-link.pf-bu-is-outlined.pf-bu-is-loading::after{border-color:transparent transparent #3273dc #3273dc!important}.pf-bu-button.pf-bu-is-link.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-focused::after,.pf-bu-button.pf-bu-is-link.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-hovered::after,.pf-bu-button.pf-bu-is-link.pf-bu-is-outlined.pf-bu-is-loading:focus::after,.pf-bu-button.pf-bu-is-link.pf-bu-is-outlined.pf-bu-is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.pf-bu-button.pf-bu-is-link.pf-bu-is-outlined[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-link.pf-bu-is-outlined{background-color:transparent;border-color:#3273dc;box-shadow:none;color:#3273dc}.pf-bu-button.pf-bu-is-link.pf-bu-is-inverted.pf-bu-is-outlined{background-color:transparent;border-color:#fff;color:#fff}.pf-bu-button.pf-bu-is-link.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-focused,.pf-bu-button.pf-bu-is-link.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-link.pf-bu-is-inverted.pf-bu-is-outlined:focus,.pf-bu-button.pf-bu-is-link.pf-bu-is-inverted.pf-bu-is-outlined:hover{background-color:#fff;color:#3273dc}.pf-bu-button.pf-bu-is-link.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-focused::after,.pf-bu-button.pf-bu-is-link.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-hovered::after,.pf-bu-button.pf-bu-is-link.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading:focus::after,.pf-bu-button.pf-bu-is-link.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading:hover::after{border-color:transparent transparent #3273dc #3273dc!important}.pf-bu-button.pf-bu-is-link.pf-bu-is-inverted.pf-bu-is-outlined[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-link.pf-bu-is-inverted.pf-bu-is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.pf-bu-button.pf-bu-is-link.pf-bu-is-light{background-color:#eef3fc;color:#2160c4}.pf-bu-button.pf-bu-is-link.pf-bu-is-light.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-link.pf-bu-is-light:hover{background-color:#e3ecfa;border-color:transparent;color:#2160c4}.pf-bu-button.pf-bu-is-link.pf-bu-is-light.pf-bu-is-active,.pf-bu-button.pf-bu-is-link.pf-bu-is-light:active{background-color:#d8e4f8;border-color:transparent;color:#2160c4}.pf-bu-button.pf-bu-is-info{background-color:#3298dc;border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-info.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-info:hover{background-color:#2793da;border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-info.pf-bu-is-focused,.pf-bu-button.pf-bu-is-info:focus{border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-info.pf-bu-is-focused:not(:active),.pf-bu-button.pf-bu-is-info:focus:not(:active){box-shadow:0 0 0 .125em rgba(50,152,220,.25)}.pf-bu-button.pf-bu-is-info.pf-bu-is-active,.pf-bu-button.pf-bu-is-info:active{background-color:#238cd1;border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-info[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-info{background-color:#3298dc;border-color:transparent;box-shadow:none}.pf-bu-button.pf-bu-is-info.pf-bu-is-inverted{background-color:#fff;color:#3298dc}.pf-bu-button.pf-bu-is-info.pf-bu-is-inverted.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-info.pf-bu-is-inverted:hover{background-color:#f2f2f2}.pf-bu-button.pf-bu-is-info.pf-bu-is-inverted[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-info.pf-bu-is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#3298dc}.pf-bu-button.pf-bu-is-info.pf-bu-is-loading::after{border-color:transparent transparent #fff #fff!important}.pf-bu-button.pf-bu-is-info.pf-bu-is-outlined{background-color:transparent;border-color:#3298dc;color:#3298dc}.pf-bu-button.pf-bu-is-info.pf-bu-is-outlined.pf-bu-is-focused,.pf-bu-button.pf-bu-is-info.pf-bu-is-outlined.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-info.pf-bu-is-outlined:focus,.pf-bu-button.pf-bu-is-info.pf-bu-is-outlined:hover{background-color:#3298dc;border-color:#3298dc;color:#fff}.pf-bu-button.pf-bu-is-info.pf-bu-is-outlined.pf-bu-is-loading::after{border-color:transparent transparent #3298dc #3298dc!important}.pf-bu-button.pf-bu-is-info.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-focused::after,.pf-bu-button.pf-bu-is-info.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-hovered::after,.pf-bu-button.pf-bu-is-info.pf-bu-is-outlined.pf-bu-is-loading:focus::after,.pf-bu-button.pf-bu-is-info.pf-bu-is-outlined.pf-bu-is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.pf-bu-button.pf-bu-is-info.pf-bu-is-outlined[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-info.pf-bu-is-outlined{background-color:transparent;border-color:#3298dc;box-shadow:none;color:#3298dc}.pf-bu-button.pf-bu-is-info.pf-bu-is-inverted.pf-bu-is-outlined{background-color:transparent;border-color:#fff;color:#fff}.pf-bu-button.pf-bu-is-info.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-focused,.pf-bu-button.pf-bu-is-info.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-info.pf-bu-is-inverted.pf-bu-is-outlined:focus,.pf-bu-button.pf-bu-is-info.pf-bu-is-inverted.pf-bu-is-outlined:hover{background-color:#fff;color:#3298dc}.pf-bu-button.pf-bu-is-info.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-focused::after,.pf-bu-button.pf-bu-is-info.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-hovered::after,.pf-bu-button.pf-bu-is-info.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading:focus::after,.pf-bu-button.pf-bu-is-info.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading:hover::after{border-color:transparent transparent #3298dc #3298dc!important}.pf-bu-button.pf-bu-is-info.pf-bu-is-inverted.pf-bu-is-outlined[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-info.pf-bu-is-inverted.pf-bu-is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.pf-bu-button.pf-bu-is-info.pf-bu-is-light{background-color:#eef6fc;color:#1d72aa}.pf-bu-button.pf-bu-is-info.pf-bu-is-light.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-info.pf-bu-is-light:hover{background-color:#e3f1fa;border-color:transparent;color:#1d72aa}.pf-bu-button.pf-bu-is-info.pf-bu-is-light.pf-bu-is-active,.pf-bu-button.pf-bu-is-info.pf-bu-is-light:active{background-color:#d8ebf8;border-color:transparent;color:#1d72aa}.pf-bu-button.pf-bu-is-success{background-color:#48c774;border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-success.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-success:hover{background-color:#3ec46d;border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-success.pf-bu-is-focused,.pf-bu-button.pf-bu-is-success:focus{border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-success.pf-bu-is-focused:not(:active),.pf-bu-button.pf-bu-is-success:focus:not(:active){box-shadow:0 0 0 .125em rgba(72,199,116,.25)}.pf-bu-button.pf-bu-is-success.pf-bu-is-active,.pf-bu-button.pf-bu-is-success:active{background-color:#3abb67;border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-success[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-success{background-color:#48c774;border-color:transparent;box-shadow:none}.pf-bu-button.pf-bu-is-success.pf-bu-is-inverted{background-color:#fff;color:#48c774}.pf-bu-button.pf-bu-is-success.pf-bu-is-inverted.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-success.pf-bu-is-inverted:hover{background-color:#f2f2f2}.pf-bu-button.pf-bu-is-success.pf-bu-is-inverted[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-success.pf-bu-is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#48c774}.pf-bu-button.pf-bu-is-success.pf-bu-is-loading::after{border-color:transparent transparent #fff #fff!important}.pf-bu-button.pf-bu-is-success.pf-bu-is-outlined{background-color:transparent;border-color:#48c774;color:#48c774}.pf-bu-button.pf-bu-is-success.pf-bu-is-outlined.pf-bu-is-focused,.pf-bu-button.pf-bu-is-success.pf-bu-is-outlined.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-success.pf-bu-is-outlined:focus,.pf-bu-button.pf-bu-is-success.pf-bu-is-outlined:hover{background-color:#48c774;border-color:#48c774;color:#fff}.pf-bu-button.pf-bu-is-success.pf-bu-is-outlined.pf-bu-is-loading::after{border-color:transparent transparent #48c774 #48c774!important}.pf-bu-button.pf-bu-is-success.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-focused::after,.pf-bu-button.pf-bu-is-success.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-hovered::after,.pf-bu-button.pf-bu-is-success.pf-bu-is-outlined.pf-bu-is-loading:focus::after,.pf-bu-button.pf-bu-is-success.pf-bu-is-outlined.pf-bu-is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.pf-bu-button.pf-bu-is-success.pf-bu-is-outlined[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-success.pf-bu-is-outlined{background-color:transparent;border-color:#48c774;box-shadow:none;color:#48c774}.pf-bu-button.pf-bu-is-success.pf-bu-is-inverted.pf-bu-is-outlined{background-color:transparent;border-color:#fff;color:#fff}.pf-bu-button.pf-bu-is-success.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-focused,.pf-bu-button.pf-bu-is-success.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-success.pf-bu-is-inverted.pf-bu-is-outlined:focus,.pf-bu-button.pf-bu-is-success.pf-bu-is-inverted.pf-bu-is-outlined:hover{background-color:#fff;color:#48c774}.pf-bu-button.pf-bu-is-success.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-focused::after,.pf-bu-button.pf-bu-is-success.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-hovered::after,.pf-bu-button.pf-bu-is-success.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading:focus::after,.pf-bu-button.pf-bu-is-success.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading:hover::after{border-color:transparent transparent #48c774 #48c774!important}.pf-bu-button.pf-bu-is-success.pf-bu-is-inverted.pf-bu-is-outlined[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-success.pf-bu-is-inverted.pf-bu-is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.pf-bu-button.pf-bu-is-success.pf-bu-is-light{background-color:#effaf3;color:#257942}.pf-bu-button.pf-bu-is-success.pf-bu-is-light.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-success.pf-bu-is-light:hover{background-color:#e6f7ec;border-color:transparent;color:#257942}.pf-bu-button.pf-bu-is-success.pf-bu-is-light.pf-bu-is-active,.pf-bu-button.pf-bu-is-success.pf-bu-is-light:active{background-color:#dcf4e4;border-color:transparent;color:#257942}.pf-bu-button.pf-bu-is-warning{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,.7)}.pf-bu-button.pf-bu-is-warning.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-warning:hover{background-color:#ffdb4a;border-color:transparent;color:rgba(0,0,0,.7)}.pf-bu-button.pf-bu-is-warning.pf-bu-is-focused,.pf-bu-button.pf-bu-is-warning:focus{border-color:transparent;color:rgba(0,0,0,.7)}.pf-bu-button.pf-bu-is-warning.pf-bu-is-focused:not(:active),.pf-bu-button.pf-bu-is-warning:focus:not(:active){box-shadow:0 0 0 .125em rgba(255,221,87,.25)}.pf-bu-button.pf-bu-is-warning.pf-bu-is-active,.pf-bu-button.pf-bu-is-warning:active{background-color:#ffd83d;border-color:transparent;color:rgba(0,0,0,.7)}.pf-bu-button.pf-bu-is-warning[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-warning{background-color:#ffdd57;border-color:transparent;box-shadow:none}.pf-bu-button.pf-bu-is-warning.pf-bu-is-inverted{background-color:rgba(0,0,0,.7);color:#ffdd57}.pf-bu-button.pf-bu-is-warning.pf-bu-is-inverted.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-warning.pf-bu-is-inverted:hover{background-color:rgba(0,0,0,.7)}.pf-bu-button.pf-bu-is-warning.pf-bu-is-inverted[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-warning.pf-bu-is-inverted{background-color:rgba(0,0,0,.7);border-color:transparent;box-shadow:none;color:#ffdd57}.pf-bu-button.pf-bu-is-warning.pf-bu-is-loading::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.pf-bu-button.pf-bu-is-warning.pf-bu-is-outlined{background-color:transparent;border-color:#ffdd57;color:#ffdd57}.pf-bu-button.pf-bu-is-warning.pf-bu-is-outlined.pf-bu-is-focused,.pf-bu-button.pf-bu-is-warning.pf-bu-is-outlined.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-warning.pf-bu-is-outlined:focus,.pf-bu-button.pf-bu-is-warning.pf-bu-is-outlined:hover{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,.7)}.pf-bu-button.pf-bu-is-warning.pf-bu-is-outlined.pf-bu-is-loading::after{border-color:transparent transparent #ffdd57 #ffdd57!important}.pf-bu-button.pf-bu-is-warning.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-focused::after,.pf-bu-button.pf-bu-is-warning.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-hovered::after,.pf-bu-button.pf-bu-is-warning.pf-bu-is-outlined.pf-bu-is-loading:focus::after,.pf-bu-button.pf-bu-is-warning.pf-bu-is-outlined.pf-bu-is-loading:hover::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.pf-bu-button.pf-bu-is-warning.pf-bu-is-outlined[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-warning.pf-bu-is-outlined{background-color:transparent;border-color:#ffdd57;box-shadow:none;color:#ffdd57}.pf-bu-button.pf-bu-is-warning.pf-bu-is-inverted.pf-bu-is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);color:rgba(0,0,0,.7)}.pf-bu-button.pf-bu-is-warning.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-focused,.pf-bu-button.pf-bu-is-warning.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-warning.pf-bu-is-inverted.pf-bu-is-outlined:focus,.pf-bu-button.pf-bu-is-warning.pf-bu-is-inverted.pf-bu-is-outlined:hover{background-color:rgba(0,0,0,.7);color:#ffdd57}.pf-bu-button.pf-bu-is-warning.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-focused::after,.pf-bu-button.pf-bu-is-warning.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-hovered::after,.pf-bu-button.pf-bu-is-warning.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading:focus::after,.pf-bu-button.pf-bu-is-warning.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading:hover::after{border-color:transparent transparent #ffdd57 #ffdd57!important}.pf-bu-button.pf-bu-is-warning.pf-bu-is-inverted.pf-bu-is-outlined[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-warning.pf-bu-is-inverted.pf-bu-is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);box-shadow:none;color:rgba(0,0,0,.7)}.pf-bu-button.pf-bu-is-warning.pf-bu-is-light{background-color:#fffbeb;color:#947600}.pf-bu-button.pf-bu-is-warning.pf-bu-is-light.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-warning.pf-bu-is-light:hover{background-color:#fff8de;border-color:transparent;color:#947600}.pf-bu-button.pf-bu-is-warning.pf-bu-is-light.pf-bu-is-active,.pf-bu-button.pf-bu-is-warning.pf-bu-is-light:active{background-color:#fff6d1;border-color:transparent;color:#947600}.pf-bu-button.pf-bu-is-danger{background-color:#f14668;border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-danger.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-danger:hover{background-color:#f03a5f;border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-danger.pf-bu-is-focused,.pf-bu-button.pf-bu-is-danger:focus{border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-danger.pf-bu-is-focused:not(:active),.pf-bu-button.pf-bu-is-danger:focus:not(:active){box-shadow:0 0 0 .125em rgba(241,70,104,.25)}.pf-bu-button.pf-bu-is-danger.pf-bu-is-active,.pf-bu-button.pf-bu-is-danger:active{background-color:#ef2e55;border-color:transparent;color:#fff}.pf-bu-button.pf-bu-is-danger[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-danger{background-color:#f14668;border-color:transparent;box-shadow:none}.pf-bu-button.pf-bu-is-danger.pf-bu-is-inverted{background-color:#fff;color:#f14668}.pf-bu-button.pf-bu-is-danger.pf-bu-is-inverted.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-danger.pf-bu-is-inverted:hover{background-color:#f2f2f2}.pf-bu-button.pf-bu-is-danger.pf-bu-is-inverted[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-danger.pf-bu-is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#f14668}.pf-bu-button.pf-bu-is-danger.pf-bu-is-loading::after{border-color:transparent transparent #fff #fff!important}.pf-bu-button.pf-bu-is-danger.pf-bu-is-outlined{background-color:transparent;border-color:#f14668;color:#f14668}.pf-bu-button.pf-bu-is-danger.pf-bu-is-outlined.pf-bu-is-focused,.pf-bu-button.pf-bu-is-danger.pf-bu-is-outlined.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-danger.pf-bu-is-outlined:focus,.pf-bu-button.pf-bu-is-danger.pf-bu-is-outlined:hover{background-color:#f14668;border-color:#f14668;color:#fff}.pf-bu-button.pf-bu-is-danger.pf-bu-is-outlined.pf-bu-is-loading::after{border-color:transparent transparent #f14668 #f14668!important}.pf-bu-button.pf-bu-is-danger.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-focused::after,.pf-bu-button.pf-bu-is-danger.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-hovered::after,.pf-bu-button.pf-bu-is-danger.pf-bu-is-outlined.pf-bu-is-loading:focus::after,.pf-bu-button.pf-bu-is-danger.pf-bu-is-outlined.pf-bu-is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.pf-bu-button.pf-bu-is-danger.pf-bu-is-outlined[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-danger.pf-bu-is-outlined{background-color:transparent;border-color:#f14668;box-shadow:none;color:#f14668}.pf-bu-button.pf-bu-is-danger.pf-bu-is-inverted.pf-bu-is-outlined{background-color:transparent;border-color:#fff;color:#fff}.pf-bu-button.pf-bu-is-danger.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-focused,.pf-bu-button.pf-bu-is-danger.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-danger.pf-bu-is-inverted.pf-bu-is-outlined:focus,.pf-bu-button.pf-bu-is-danger.pf-bu-is-inverted.pf-bu-is-outlined:hover{background-color:#fff;color:#f14668}.pf-bu-button.pf-bu-is-danger.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-focused::after,.pf-bu-button.pf-bu-is-danger.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading.pf-bu-is-hovered::after,.pf-bu-button.pf-bu-is-danger.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading:focus::after,.pf-bu-button.pf-bu-is-danger.pf-bu-is-inverted.pf-bu-is-outlined.pf-bu-is-loading:hover::after{border-color:transparent transparent #f14668 #f14668!important}.pf-bu-button.pf-bu-is-danger.pf-bu-is-inverted.pf-bu-is-outlined[disabled],fieldset[disabled] .pf-bu-button.pf-bu-is-danger.pf-bu-is-inverted.pf-bu-is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.pf-bu-button.pf-bu-is-danger.pf-bu-is-light{background-color:#feecf0;color:#cc0f35}.pf-bu-button.pf-bu-is-danger.pf-bu-is-light.pf-bu-is-hovered,.pf-bu-button.pf-bu-is-danger.pf-bu-is-light:hover{background-color:#fde0e6;border-color:transparent;color:#cc0f35}.pf-bu-button.pf-bu-is-danger.pf-bu-is-light.pf-bu-is-active,.pf-bu-button.pf-bu-is-danger.pf-bu-is-light:active{background-color:#fcd4dc;border-color:transparent;color:#cc0f35}.pf-bu-button.pf-bu-is-small{border-radius:2px;font-size:.75rem}.pf-bu-button.pf-bu-is-normal{font-size:1rem}.pf-bu-button.pf-bu-is-medium{font-size:1.25rem}.pf-bu-button.pf-bu-is-large{font-size:1.5rem}.pf-bu-button[disabled],fieldset[disabled] .pf-bu-button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.pf-bu-button.pf-bu-is-fullwidth{display:flex;width:100%}.pf-bu-button.pf-bu-is-loading{color:transparent!important;pointer-events:none}.pf-bu-button.pf-bu-is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute!important}.pf-bu-button.pf-bu-is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#7a7a7a;box-shadow:none;pointer-events:none}.pf-bu-button.pf-bu-is-rounded{border-radius:290486px;padding-left:calc(1em + .25em);padding-right:calc(1em + .25em)}.pf-bu-buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.pf-bu-buttons .pf-bu-button{margin-bottom:.5rem}.pf-bu-buttons .pf-bu-button:not(:last-child):not(.pf-bu-is-fullwidth){margin-right:.5rem}.pf-bu-buttons:last-child{margin-bottom:-.5rem}.pf-bu-buttons:not(:last-child){margin-bottom:1rem}.pf-bu-buttons.pf-bu-are-small .pf-bu-button:not(.pf-bu-is-normal):not(.pf-bu-is-medium):not(.pf-bu-is-large){border-radius:2px;font-size:.75rem}.pf-bu-buttons.pf-bu-are-medium .pf-bu-button:not(.pf-bu-is-small):not(.pf-bu-is-normal):not(.pf-bu-is-large){font-size:1.25rem}.pf-bu-buttons.pf-bu-are-large .pf-bu-button:not(.pf-bu-is-small):not(.pf-bu-is-normal):not(.pf-bu-is-medium){font-size:1.5rem}.pf-bu-buttons.pf-bu-has-addons .pf-bu-button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.pf-bu-buttons.pf-bu-has-addons .pf-bu-button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.pf-bu-buttons.pf-bu-has-addons .pf-bu-button:last-child{margin-right:0}.pf-bu-buttons.pf-bu-has-addons .pf-bu-button.pf-bu-is-hovered,.pf-bu-buttons.pf-bu-has-addons .pf-bu-button:hover{z-index:2}.pf-bu-buttons.pf-bu-has-addons .pf-bu-button.pf-bu-is-active,.pf-bu-buttons.pf-bu-has-addons .pf-bu-button.pf-bu-is-focused,.pf-bu-buttons.pf-bu-has-addons .pf-bu-button.pf-bu-is-selected,.pf-bu-buttons.pf-bu-has-addons .pf-bu-button:active,.pf-bu-buttons.pf-bu-has-addons .pf-bu-button:focus{z-index:3}.pf-bu-buttons.pf-bu-has-addons .pf-bu-button.pf-bu-is-active:hover,.pf-bu-buttons.pf-bu-has-addons .pf-bu-button.pf-bu-is-focused:hover,.pf-bu-buttons.pf-bu-has-addons .pf-bu-button.pf-bu-is-selected:hover,.pf-bu-buttons.pf-bu-has-addons .pf-bu-button:active:hover,.pf-bu-buttons.pf-bu-has-addons .pf-bu-button:focus:hover{z-index:4}.pf-bu-buttons.pf-bu-has-addons .pf-bu-button.pf-bu-is-expanded{flex-grow:1;flex-shrink:1}.pf-bu-buttons.pf-bu-is-centered{justify-content:center}.pf-bu-buttons.pf-bu-is-centered:not(.pf-bu-has-addons) .pf-bu-button:not(.pf-bu-is-fullwidth){margin-left:.25rem;margin-right:.25rem}.pf-bu-buttons.pf-bu-is-right{justify-content:flex-end}.pf-bu-buttons.pf-bu-is-right:not(.pf-bu-has-addons) .pf-bu-button:not(.pf-bu-is-fullwidth){margin-left:.25rem;margin-right:.25rem}.pf-bu-container{flex-grow:1;margin:0 auto;position:relative;width:auto}.pf-bu-container.pf-bu-is-fluid{max-width:none!important;padding-left:32px;padding-right:32px;width:100%}@media screen and (min-width:1024px){.pf-bu-container{max-width:960px}}@media screen and (max-width:1215px){.pf-bu-container.pf-bu-is-widescreen:not(.pf-bu-is-max-desktop){max-width:1152px}}@media screen and (max-width:1407px){.pf-bu-container.pf-bu-is-fullhd:not(.pf-bu-is-max-desktop):not(.pf-bu-is-max-widescreen){max-width:1344px}}@media screen and (min-width:1216px){.pf-bu-container:not(.pf-bu-is-max-desktop){max-width:1152px}}@media screen and (min-width:1408px){.pf-bu-container:not(.pf-bu-is-max-desktop):not(.pf-bu-is-max-widescreen){max-width:1344px}}.pf-bu-content li+li{margin-top:.25em}.pf-bu-content blockquote:not(:last-child),.pf-bu-content dl:not(:last-child),.pf-bu-content ol:not(:last-child),.pf-bu-content p:not(:last-child),.pf-bu-content pre:not(:last-child),.pf-bu-content table:not(:last-child),.pf-bu-content ul:not(:last-child){margin-bottom:1em}.pf-bu-content h1,.pf-bu-content h2,.pf-bu-content h3,.pf-bu-content h4,.pf-bu-content h5,.pf-bu-content h6{color:#363636;font-weight:600;line-height:1.125}.pf-bu-content h1{font-size:2em;margin-bottom:.5em}.pf-bu-content h1:not(:first-child){margin-top:1em}.pf-bu-content h2{font-size:1.75em;margin-bottom:.5714em}.pf-bu-content h2:not(:first-child){margin-top:1.1428em}.pf-bu-content h3{font-size:1.5em;margin-bottom:.6666em}.pf-bu-content h3:not(:first-child){margin-top:1.3333em}.pf-bu-content h4{font-size:1.25em;margin-bottom:.8em}.pf-bu-content h5{font-size:1.125em;margin-bottom:.8888em}.pf-bu-content h6{font-size:1em;margin-bottom:1em}.pf-bu-content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.pf-bu-content ol{list-style-position:outside;margin-left:2em;margin-top:1em}.pf-bu-content ol:not([type]){list-style-type:decimal}.pf-bu-content ol:not([type]).pf-bu-is-lower-alpha{list-style-type:lower-alpha}.pf-bu-content ol:not([type]).pf-bu-is-lower-roman{list-style-type:lower-roman}.pf-bu-content ol:not([type]).pf-bu-is-upper-alpha{list-style-type:upper-alpha}.pf-bu-content ol:not([type]).pf-bu-is-upper-roman{list-style-type:upper-roman}.pf-bu-content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.pf-bu-content ul ul{list-style-type:circle;margin-top:.5em}.pf-bu-content ul ul ul{list-style-type:square}.pf-bu-content dd{margin-left:2em}.pf-bu-content figure{margin-left:2em;margin-right:2em;text-align:center}.pf-bu-content figure:not(:first-child){margin-top:2em}.pf-bu-content figure:not(:last-child){margin-bottom:2em}.pf-bu-content figure img{display:inline-block}.pf-bu-content figure figcaption{font-style:italic}.pf-bu-content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:1.25em 1.5em;white-space:pre;word-wrap:normal}.pf-bu-content sub,.pf-bu-content sup{font-size:75%}.pf-bu-content table{width:100%}.pf-bu-content table td,.pf-bu-content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:.5em .75em;vertical-align:top}.pf-bu-content table th{color:#363636}.pf-bu-content table th:not([align]){text-align:inherit}.pf-bu-content table thead td,.pf-bu-content table thead th{border-width:0 0 2px;color:#363636}.pf-bu-content table tfoot td,.pf-bu-content table tfoot th{border-width:2px 0 0;color:#363636}.pf-bu-content table tbody tr:last-child td,.pf-bu-content table tbody tr:last-child th{border-bottom-width:0}.pf-bu-content .pf-bu-tabs li+li{margin-top:0}.pf-bu-content.pf-bu-is-small{font-size:.75rem}.pf-bu-content.pf-bu-is-medium{font-size:1.25rem}.pf-bu-content.pf-bu-is-large{font-size:1.5rem}.pf-bu-icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.pf-bu-icon.pf-bu-is-small{height:1rem;width:1rem}.pf-bu-icon.pf-bu-is-medium{height:2rem;width:2rem}.pf-bu-icon.pf-bu-is-large{height:3rem;width:3rem}.pf-bu-image{display:block;position:relative}.pf-bu-image img{display:block;height:auto;width:100%}.pf-bu-image img.pf-bu-is-rounded{border-radius:290486px}.pf-bu-image.pf-bu-is-fullwidth{width:100%}.pf-bu-image.pf-bu-is-16by9 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-16by9 img,.pf-bu-image.pf-bu-is-1by1 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-1by1 img,.pf-bu-image.pf-bu-is-1by2 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-1by2 img,.pf-bu-image.pf-bu-is-1by3 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-1by3 img,.pf-bu-image.pf-bu-is-2by1 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-2by1 img,.pf-bu-image.pf-bu-is-2by3 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-2by3 img,.pf-bu-image.pf-bu-is-3by1 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-3by1 img,.pf-bu-image.pf-bu-is-3by2 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-3by2 img,.pf-bu-image.pf-bu-is-3by4 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-3by4 img,.pf-bu-image.pf-bu-is-3by5 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-3by5 img,.pf-bu-image.pf-bu-is-4by3 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-4by3 img,.pf-bu-image.pf-bu-is-4by5 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-4by5 img,.pf-bu-image.pf-bu-is-5by3 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-5by3 img,.pf-bu-image.pf-bu-is-5by4 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-5by4 img,.pf-bu-image.pf-bu-is-9by16 .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-9by16 img,.pf-bu-image.pf-bu-is-square .pf-bu-has-ratio,.pf-bu-image.pf-bu-is-square img{height:100%;width:100%}.pf-bu-image.pf-bu-is-1by1,.pf-bu-image.pf-bu-is-square{padding-top:100%}.pf-bu-image.pf-bu-is-5by4{padding-top:80%}.pf-bu-image.pf-bu-is-4by3{padding-top:75%}.pf-bu-image.pf-bu-is-3by2{padding-top:66.6666%}.pf-bu-image.pf-bu-is-5by3{padding-top:60%}.pf-bu-image.pf-bu-is-16by9{padding-top:56.25%}.pf-bu-image.pf-bu-is-2by1{padding-top:50%}.pf-bu-image.pf-bu-is-3by1{padding-top:33.3333%}.pf-bu-image.pf-bu-is-4by5{padding-top:125%}.pf-bu-image.pf-bu-is-3by4{padding-top:133.3333%}.pf-bu-image.pf-bu-is-2by3{padding-top:150%}.pf-bu-image.pf-bu-is-3by5{padding-top:166.6666%}.pf-bu-image.pf-bu-is-9by16{padding-top:177.7777%}.pf-bu-image.pf-bu-is-1by2{padding-top:200%}.pf-bu-image.pf-bu-is-1by3{padding-top:300%}.pf-bu-image.pf-bu-is-16x16{height:16px;width:16px}.pf-bu-image.pf-bu-is-24x24{height:24px;width:24px}.pf-bu-image.pf-bu-is-32x32{height:32px;width:32px}.pf-bu-image.pf-bu-is-48x48{height:48px;width:48px}.pf-bu-image.pf-bu-is-64x64{height:64px;width:64px}.pf-bu-image.pf-bu-is-96x96{height:96px;width:96px}.pf-bu-image.pf-bu-is-128x128{height:128px;width:128px}.pf-bu-notification{background-color:#f5f5f5;border-radius:4px;position:relative;padding:1.25rem 2.5rem 1.25rem 1.5rem}.pf-bu-notification a:not(.pf-bu-button):not(.pf-bu-dropdown-item){color:currentColor;text-decoration:underline}.pf-bu-notification strong{color:currentColor}.pf-bu-notification code,.pf-bu-notification pre{background:#fff}.pf-bu-notification pre code{background:0 0}.pf-bu-notification>.pf-bu-delete{right:.5rem;position:absolute;top:.5rem}.pf-bu-notification .pf-bu-content,.pf-bu-notification .pf-bu-subtitle,.pf-bu-notification .pf-bu-title{color:currentColor}.pf-bu-notification.pf-bu-is-white{background-color:#fff;color:#0a0a0a}.pf-bu-notification.pf-bu-is-black{background-color:#0a0a0a;color:#fff}.pf-bu-notification.pf-bu-is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.pf-bu-notification.pf-bu-is-dark{background-color:#363636;color:#fff}.pf-bu-notification.pf-bu-is-primary{background-color:#00d1b2;color:#fff}.pf-bu-notification.pf-bu-is-primary.pf-bu-is-light{background-color:#ebfffc;color:#00947e}.pf-bu-notification.pf-bu-is-link{background-color:#3273dc;color:#fff}.pf-bu-notification.pf-bu-is-link.pf-bu-is-light{background-color:#eef3fc;color:#2160c4}.pf-bu-notification.pf-bu-is-info{background-color:#3298dc;color:#fff}.pf-bu-notification.pf-bu-is-info.pf-bu-is-light{background-color:#eef6fc;color:#1d72aa}.pf-bu-notification.pf-bu-is-success{background-color:#48c774;color:#fff}.pf-bu-notification.pf-bu-is-success.pf-bu-is-light{background-color:#effaf3;color:#257942}.pf-bu-notification.pf-bu-is-warning{background-color:#ffdd57;color:rgba(0,0,0,.7)}.pf-bu-notification.pf-bu-is-warning.pf-bu-is-light{background-color:#fffbeb;color:#947600}.pf-bu-notification.pf-bu-is-danger{background-color:#f14668;color:#fff}.pf-bu-notification.pf-bu-is-danger.pf-bu-is-light{background-color:#feecf0;color:#cc0f35}.pf-bu-progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.pf-bu-progress::-webkit-progress-bar{background-color:#ededed}.pf-bu-progress::-webkit-progress-value{background-color:#4a4a4a}.pf-bu-progress::-moz-progress-bar{background-color:#4a4a4a}.pf-bu-progress::-ms-fill{background-color:#4a4a4a;border:none}.pf-bu-progress.pf-bu-is-white::-webkit-progress-value{background-color:#fff}.pf-bu-progress.pf-bu-is-white::-moz-progress-bar{background-color:#fff}.pf-bu-progress.pf-bu-is-white::-ms-fill{background-color:#fff}.pf-bu-progress.pf-bu-is-white:indeterminate{background-image:linear-gradient(to right,#fff 30%,#ededed 30%)}.pf-bu-progress.pf-bu-is-black::-webkit-progress-value{background-color:#0a0a0a}.pf-bu-progress.pf-bu-is-black::-moz-progress-bar{background-color:#0a0a0a}.pf-bu-progress.pf-bu-is-black::-ms-fill{background-color:#0a0a0a}.pf-bu-progress.pf-bu-is-black:indeterminate{background-image:linear-gradient(to right,#0a0a0a 30%,#ededed 30%)}.pf-bu-progress.pf-bu-is-light::-webkit-progress-value{background-color:#f5f5f5}.pf-bu-progress.pf-bu-is-light::-moz-progress-bar{background-color:#f5f5f5}.pf-bu-progress.pf-bu-is-light::-ms-fill{background-color:#f5f5f5}.pf-bu-progress.pf-bu-is-light:indeterminate{background-image:linear-gradient(to right,#f5f5f5 30%,#ededed 30%)}.pf-bu-progress.pf-bu-is-dark::-webkit-progress-value{background-color:#363636}.pf-bu-progress.pf-bu-is-dark::-moz-progress-bar{background-color:#363636}.pf-bu-progress.pf-bu-is-dark::-ms-fill{background-color:#363636}.pf-bu-progress.pf-bu-is-dark:indeterminate{background-image:linear-gradient(to right,#363636 30%,#ededed 30%)}.pf-bu-progress.pf-bu-is-primary::-webkit-progress-value{background-color:#00d1b2}.pf-bu-progress.pf-bu-is-primary::-moz-progress-bar{background-color:#00d1b2}.pf-bu-progress.pf-bu-is-primary::-ms-fill{background-color:#00d1b2}.pf-bu-progress.pf-bu-is-primary:indeterminate{background-image:linear-gradient(to right,#00d1b2 30%,#ededed 30%)}.pf-bu-progress.pf-bu-is-link::-webkit-progress-value{background-color:#3273dc}.pf-bu-progress.pf-bu-is-link::-moz-progress-bar{background-color:#3273dc}.pf-bu-progress.pf-bu-is-link::-ms-fill{background-color:#3273dc}.pf-bu-progress.pf-bu-is-link:indeterminate{background-image:linear-gradient(to right,#3273dc 30%,#ededed 30%)}.pf-bu-progress.pf-bu-is-info::-webkit-progress-value{background-color:#3298dc}.pf-bu-progress.pf-bu-is-info::-moz-progress-bar{background-color:#3298dc}.pf-bu-progress.pf-bu-is-info::-ms-fill{background-color:#3298dc}.pf-bu-progress.pf-bu-is-info:indeterminate{background-image:linear-gradient(to right,#3298dc 30%,#ededed 30%)}.pf-bu-progress.pf-bu-is-success::-webkit-progress-value{background-color:#48c774}.pf-bu-progress.pf-bu-is-success::-moz-progress-bar{background-color:#48c774}.pf-bu-progress.pf-bu-is-success::-ms-fill{background-color:#48c774}.pf-bu-progress.pf-bu-is-success:indeterminate{background-image:linear-gradient(to right,#48c774 30%,#ededed 30%)}.pf-bu-progress.pf-bu-is-warning::-webkit-progress-value{background-color:#ffdd57}.pf-bu-progress.pf-bu-is-warning::-moz-progress-bar{background-color:#ffdd57}.pf-bu-progress.pf-bu-is-warning::-ms-fill{background-color:#ffdd57}.pf-bu-progress.pf-bu-is-warning:indeterminate{background-image:linear-gradient(to right,#ffdd57 30%,#ededed 30%)}.pf-bu-progress.pf-bu-is-danger::-webkit-progress-value{background-color:#f14668}.pf-bu-progress.pf-bu-is-danger::-moz-progress-bar{background-color:#f14668}.pf-bu-progress.pf-bu-is-danger::-ms-fill{background-color:#f14668}.pf-bu-progress.pf-bu-is-danger:indeterminate{background-image:linear-gradient(to right,#f14668 30%,#ededed 30%)}.pf-bu-progress:indeterminate{-webkit-animation-duration:1.5s;animation-duration:1.5s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-name:moveIndeterminate;animation-name:moveIndeterminate;-webkit-animation-timing-function:linear;animation-timing-function:linear;background-color:#ededed;background-image:linear-gradient(to right,#4a4a4a 30%,#ededed 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.pf-bu-progress:indeterminate::-webkit-progress-bar{background-color:transparent}.pf-bu-progress:indeterminate::-moz-progress-bar{background-color:transparent}.pf-bu-progress:indeterminate::-ms-fill{animation-name:none}.pf-bu-progress.pf-bu-is-small{height:.75rem}.pf-bu-progress.pf-bu-is-medium{height:1.25rem}.pf-bu-progress.pf-bu-is-large{height:1.5rem}@-webkit-keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.pf-bu-table{background-color:#fff;color:#363636}.pf-bu-table td,.pf-bu-table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:.5em .75em;vertical-align:top}.pf-bu-table td.pf-bu-is-white,.pf-bu-table th.pf-bu-is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.pf-bu-table td.pf-bu-is-black,.pf-bu-table th.pf-bu-is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.pf-bu-table td.pf-bu-is-light,.pf-bu-table th.pf-bu-is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,.7)}.pf-bu-table td.pf-bu-is-dark,.pf-bu-table th.pf-bu-is-dark{background-color:#363636;border-color:#363636;color:#fff}.pf-bu-table td.pf-bu-is-primary,.pf-bu-table th.pf-bu-is-primary{background-color:#00d1b2;border-color:#00d1b2;color:#fff}.pf-bu-table td.pf-bu-is-link,.pf-bu-table th.pf-bu-is-link{background-color:#3273dc;border-color:#3273dc;color:#fff}.pf-bu-table td.pf-bu-is-info,.pf-bu-table th.pf-bu-is-info{background-color:#3298dc;border-color:#3298dc;color:#fff}.pf-bu-table td.pf-bu-is-success,.pf-bu-table th.pf-bu-is-success{background-color:#48c774;border-color:#48c774;color:#fff}.pf-bu-table td.pf-bu-is-warning,.pf-bu-table th.pf-bu-is-warning{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,.7)}.pf-bu-table td.pf-bu-is-danger,.pf-bu-table th.pf-bu-is-danger{background-color:#f14668;border-color:#f14668;color:#fff}.pf-bu-table td.pf-bu-is-narrow,.pf-bu-table th.pf-bu-is-narrow{white-space:nowrap;width:1%}.pf-bu-table td.pf-bu-is-selected,.pf-bu-table th.pf-bu-is-selected{background-color:#00d1b2;color:#fff}.pf-bu-table td.pf-bu-is-selected a,.pf-bu-table td.pf-bu-is-selected strong,.pf-bu-table th.pf-bu-is-selected a,.pf-bu-table th.pf-bu-is-selected strong{color:currentColor}.pf-bu-table td.pf-bu-is-vcentered,.pf-bu-table th.pf-bu-is-vcentered{vertical-align:middle}.pf-bu-table th{color:#363636}.pf-bu-table th:not([align]){text-align:inherit}.pf-bu-table tr.pf-bu-is-selected{background-color:#00d1b2;color:#fff}.pf-bu-table tr.pf-bu-is-selected a,.pf-bu-table tr.pf-bu-is-selected strong{color:currentColor}.pf-bu-table tr.pf-bu-is-selected td,.pf-bu-table tr.pf-bu-is-selected th{border-color:#fff;color:currentColor}.pf-bu-table thead{background-color:transparent}.pf-bu-table thead td,.pf-bu-table thead th{border-width:0 0 2px;color:#363636}.pf-bu-table tfoot{background-color:transparent}.pf-bu-table tfoot td,.pf-bu-table tfoot th{border-width:2px 0 0;color:#363636}.pf-bu-table tbody{background-color:transparent}.pf-bu-table tbody tr:last-child td,.pf-bu-table tbody tr:last-child th{border-bottom-width:0}.pf-bu-table.pf-bu-is-bordered td,.pf-bu-table.pf-bu-is-bordered th{border-width:1px}.pf-bu-table.pf-bu-is-bordered tr:last-child td,.pf-bu-table.pf-bu-is-bordered tr:last-child th{border-bottom-width:1px}.pf-bu-table.pf-bu-is-fullwidth{width:100%}.pf-bu-table.pf-bu-is-hoverable tbody tr:not(.pf-bu-is-selected):hover{background-color:#fafafa}.pf-bu-table.pf-bu-is-hoverable.pf-bu-is-striped tbody tr:not(.pf-bu-is-selected):hover{background-color:#fafafa}.pf-bu-table.pf-bu-is-hoverable.pf-bu-is-striped tbody tr:not(.pf-bu-is-selected):hover:nth-child(even){background-color:#f5f5f5}.pf-bu-table.pf-bu-is-narrow td,.pf-bu-table.pf-bu-is-narrow th{padding:.25em .5em}.pf-bu-table.pf-bu-is-striped tbody tr:not(.pf-bu-is-selected):nth-child(even){background-color:#fafafa}.pf-bu-table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.pf-bu-tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.pf-bu-tags .pf-bu-tag{margin-bottom:.5rem}.pf-bu-tags .pf-bu-tag:not(:last-child){margin-right:.5rem}.pf-bu-tags:last-child{margin-bottom:-.5rem}.pf-bu-tags:not(:last-child){margin-bottom:1rem}.pf-bu-tags.pf-bu-are-medium .pf-bu-tag:not(.pf-bu-is-normal):not(.pf-bu-is-large){font-size:1rem}.pf-bu-tags.pf-bu-are-large .pf-bu-tag:not(.pf-bu-is-normal):not(.pf-bu-is-medium){font-size:1.25rem}.pf-bu-tags.pf-bu-is-centered{justify-content:center}.pf-bu-tags.pf-bu-is-centered .pf-bu-tag{margin-right:.25rem;margin-left:.25rem}.pf-bu-tags.pf-bu-is-right{justify-content:flex-end}.pf-bu-tags.pf-bu-is-right .pf-bu-tag:not(:first-child){margin-left:.5rem}.pf-bu-tags.pf-bu-is-right .pf-bu-tag:not(:last-child){margin-right:0}.pf-bu-tags.pf-bu-has-addons .pf-bu-tag{margin-right:0}.pf-bu-tags.pf-bu-has-addons .pf-bu-tag:not(:first-child){margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.pf-bu-tags.pf-bu-has-addons .pf-bu-tag:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.pf-bu-tag:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#4a4a4a;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:.75em;padding-right:.75em;white-space:nowrap}.pf-bu-tag:not(body) .pf-bu-delete{margin-left:.25rem;margin-right:-.375rem}.pf-bu-tag:not(body).pf-bu-is-white{background-color:#fff;color:#0a0a0a}.pf-bu-tag:not(body).pf-bu-is-black{background-color:#0a0a0a;color:#fff}.pf-bu-tag:not(body).pf-bu-is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.pf-bu-tag:not(body).pf-bu-is-dark{background-color:#363636;color:#fff}.pf-bu-tag:not(body).pf-bu-is-primary{background-color:#00d1b2;color:#fff}.pf-bu-tag:not(body).pf-bu-is-primary.pf-bu-is-light{background-color:#ebfffc;color:#00947e}.pf-bu-tag:not(body).pf-bu-is-link{background-color:#3273dc;color:#fff}.pf-bu-tag:not(body).pf-bu-is-link.pf-bu-is-light{background-color:#eef3fc;color:#2160c4}.pf-bu-tag:not(body).pf-bu-is-info{background-color:#3298dc;color:#fff}.pf-bu-tag:not(body).pf-bu-is-info.pf-bu-is-light{background-color:#eef6fc;color:#1d72aa}.pf-bu-tag:not(body).pf-bu-is-success{background-color:#48c774;color:#fff}.pf-bu-tag:not(body).pf-bu-is-success.pf-bu-is-light{background-color:#effaf3;color:#257942}.pf-bu-tag:not(body).pf-bu-is-warning{background-color:#ffdd57;color:rgba(0,0,0,.7)}.pf-bu-tag:not(body).pf-bu-is-warning.pf-bu-is-light{background-color:#fffbeb;color:#947600}.pf-bu-tag:not(body).pf-bu-is-danger{background-color:#f14668;color:#fff}.pf-bu-tag:not(body).pf-bu-is-danger.pf-bu-is-light{background-color:#feecf0;color:#cc0f35}.pf-bu-tag:not(body).pf-bu-is-normal{font-size:.75rem}.pf-bu-tag:not(body).pf-bu-is-medium{font-size:1rem}.pf-bu-tag:not(body).pf-bu-is-large{font-size:1.25rem}.pf-bu-tag:not(body) .pf-bu-icon:first-child:not(:last-child){margin-left:-.375em;margin-right:.1875em}.pf-bu-tag:not(body) .pf-bu-icon:last-child:not(:first-child){margin-left:.1875em;margin-right:-.375em}.pf-bu-tag:not(body) .pf-bu-icon:first-child:last-child{margin-left:-.375em;margin-right:-.375em}.pf-bu-tag:not(body).pf-bu-is-delete{margin-left:1px;padding:0;position:relative;width:2em}.pf-bu-tag:not(body).pf-bu-is-delete::after,.pf-bu-tag:not(body).pf-bu-is-delete::before{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.pf-bu-tag:not(body).pf-bu-is-delete::before{height:1px;width:50%}.pf-bu-tag:not(body).pf-bu-is-delete::after{height:50%;width:1px}.pf-bu-tag:not(body).pf-bu-is-delete:focus,.pf-bu-tag:not(body).pf-bu-is-delete:hover{background-color:#e8e8e8}.pf-bu-tag:not(body).pf-bu-is-delete:active{background-color:#dbdbdb}.pf-bu-tag:not(body).pf-bu-is-rounded{border-radius:290486px}a.pf-bu-tag:hover{text-decoration:underline}.pf-bu-subtitle,.pf-bu-title{word-break:break-word}.pf-bu-subtitle em,.pf-bu-subtitle span,.pf-bu-title em,.pf-bu-title span{font-weight:inherit}.pf-bu-subtitle sub,.pf-bu-title sub{font-size:.75em}.pf-bu-subtitle sup,.pf-bu-title sup{font-size:.75em}.pf-bu-subtitle .pf-bu-tag,.pf-bu-title .pf-bu-tag{vertical-align:middle}.pf-bu-title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.pf-bu-title strong{color:inherit;font-weight:inherit}.pf-bu-title+.pf-bu-highlight{margin-top:-.75rem}.pf-bu-title:not(.pf-bu-is-spaced)+.pf-bu-subtitle{margin-top:-1.25rem}.pf-bu-title.pf-bu-is-1{font-size:3rem}.pf-bu-title.pf-bu-is-2{font-size:2.5rem}.pf-bu-title.pf-bu-is-3{font-size:2rem}.pf-bu-title.pf-bu-is-4{font-size:1.5rem}.pf-bu-title.pf-bu-is-5{font-size:1.25rem}.pf-bu-title.pf-bu-is-6{font-size:1rem}.pf-bu-title.pf-bu-is-7{font-size:.75rem}.pf-bu-subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.pf-bu-subtitle strong{color:#363636;font-weight:600}.pf-bu-subtitle:not(.pf-bu-is-spaced)+.pf-bu-title{margin-top:-1.25rem}.pf-bu-subtitle.pf-bu-is-1{font-size:3rem}.pf-bu-subtitle.pf-bu-is-2{font-size:2.5rem}.pf-bu-subtitle.pf-bu-is-3{font-size:2rem}.pf-bu-subtitle.pf-bu-is-4{font-size:1.5rem}.pf-bu-subtitle.pf-bu-is-5{font-size:1.25rem}.pf-bu-subtitle.pf-bu-is-6{font-size:1rem}.pf-bu-subtitle.pf-bu-is-7{font-size:.75rem}.pf-bu-heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.pf-bu-highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}.pf-bu-highlight pre{overflow:auto;max-width:100%}.pf-bu-number{align-items:center;background-color:#f5f5f5;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:.25rem .5rem;text-align:center;vertical-align:top}.pf-bu-input,.pf-bu-select select,.pf-bu-textarea{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.pf-bu-input::-moz-placeholder,.pf-bu-select select::-moz-placeholder,.pf-bu-textarea::-moz-placeholder{color:rgba(54,54,54,.3)}.pf-bu-input::-webkit-input-placeholder,.pf-bu-select select::-webkit-input-placeholder,.pf-bu-textarea::-webkit-input-placeholder{color:rgba(54,54,54,.3)}.pf-bu-input:-moz-placeholder,.pf-bu-select select:-moz-placeholder,.pf-bu-textarea:-moz-placeholder{color:rgba(54,54,54,.3)}.pf-bu-input:-ms-input-placeholder,.pf-bu-select select:-ms-input-placeholder,.pf-bu-textarea:-ms-input-placeholder{color:rgba(54,54,54,.3)}.pf-bu-input:hover,.pf-bu-is-hovered.pf-bu-input,.pf-bu-is-hovered.pf-bu-textarea,.pf-bu-select select.pf-bu-is-hovered,.pf-bu-select select:hover,.pf-bu-textarea:hover{border-color:#b5b5b5}.pf-bu-input:active,.pf-bu-input:focus,.pf-bu-is-active.pf-bu-input,.pf-bu-is-active.pf-bu-textarea,.pf-bu-is-focused.pf-bu-input,.pf-bu-is-focused.pf-bu-textarea,.pf-bu-select select.pf-bu-is-active,.pf-bu-select select.pf-bu-is-focused,.pf-bu-select select:active,.pf-bu-select select:focus,.pf-bu-textarea:active,.pf-bu-textarea:focus{border-color:#3273dc;box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.pf-bu-input[disabled],.pf-bu-select fieldset[disabled] select,.pf-bu-select select[disabled],.pf-bu-textarea[disabled],fieldset[disabled] .pf-bu-input,fieldset[disabled] .pf-bu-select select,fieldset[disabled] .pf-bu-textarea{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#7a7a7a}.pf-bu-input[disabled]::-moz-placeholder,.pf-bu-select fieldset[disabled] select::-moz-placeholder,.pf-bu-select select[disabled]::-moz-placeholder,.pf-bu-textarea[disabled]::-moz-placeholder,fieldset[disabled] .pf-bu-input::-moz-placeholder,fieldset[disabled] .pf-bu-select select::-moz-placeholder,fieldset[disabled] .pf-bu-textarea::-moz-placeholder{color:rgba(122,122,122,.3)}.pf-bu-input[disabled]::-webkit-input-placeholder,.pf-bu-select fieldset[disabled] select::-webkit-input-placeholder,.pf-bu-select select[disabled]::-webkit-input-placeholder,.pf-bu-textarea[disabled]::-webkit-input-placeholder,fieldset[disabled] .pf-bu-input::-webkit-input-placeholder,fieldset[disabled] .pf-bu-select select::-webkit-input-placeholder,fieldset[disabled] .pf-bu-textarea::-webkit-input-placeholder{color:rgba(122,122,122,.3)}.pf-bu-input[disabled]:-moz-placeholder,.pf-bu-select fieldset[disabled] select:-moz-placeholder,.pf-bu-select select[disabled]:-moz-placeholder,.pf-bu-textarea[disabled]:-moz-placeholder,fieldset[disabled] .pf-bu-input:-moz-placeholder,fieldset[disabled] .pf-bu-select select:-moz-placeholder,fieldset[disabled] .pf-bu-textarea:-moz-placeholder{color:rgba(122,122,122,.3)}.pf-bu-input[disabled]:-ms-input-placeholder,.pf-bu-select fieldset[disabled] select:-ms-input-placeholder,.pf-bu-select select[disabled]:-ms-input-placeholder,.pf-bu-textarea[disabled]:-ms-input-placeholder,fieldset[disabled] .pf-bu-input:-ms-input-placeholder,fieldset[disabled] .pf-bu-select select:-ms-input-placeholder,fieldset[disabled] .pf-bu-textarea:-ms-input-placeholder{color:rgba(122,122,122,.3)}.pf-bu-input,.pf-bu-textarea{box-shadow:inset 0 .0625em .125em rgba(10,10,10,.05);max-width:100%;width:100%}.pf-bu-input[readonly],.pf-bu-textarea[readonly]{box-shadow:none}.pf-bu-is-white.pf-bu-input,.pf-bu-is-white.pf-bu-textarea{border-color:#fff}.pf-bu-is-white.pf-bu-input:active,.pf-bu-is-white.pf-bu-input:focus,.pf-bu-is-white.pf-bu-is-active.pf-bu-input,.pf-bu-is-white.pf-bu-is-active.pf-bu-textarea,.pf-bu-is-white.pf-bu-is-focused.pf-bu-input,.pf-bu-is-white.pf-bu-is-focused.pf-bu-textarea,.pf-bu-is-white.pf-bu-textarea:active,.pf-bu-is-white.pf-bu-textarea:focus{box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.pf-bu-is-black.pf-bu-input,.pf-bu-is-black.pf-bu-textarea{border-color:#0a0a0a}.pf-bu-is-black.pf-bu-input:active,.pf-bu-is-black.pf-bu-input:focus,.pf-bu-is-black.pf-bu-is-active.pf-bu-input,.pf-bu-is-black.pf-bu-is-active.pf-bu-textarea,.pf-bu-is-black.pf-bu-is-focused.pf-bu-input,.pf-bu-is-black.pf-bu-is-focused.pf-bu-textarea,.pf-bu-is-black.pf-bu-textarea:active,.pf-bu-is-black.pf-bu-textarea:focus{box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.pf-bu-is-light.pf-bu-input,.pf-bu-is-light.pf-bu-textarea{border-color:#f5f5f5}.pf-bu-is-light.pf-bu-input:active,.pf-bu-is-light.pf-bu-input:focus,.pf-bu-is-light.pf-bu-is-active.pf-bu-input,.pf-bu-is-light.pf-bu-is-active.pf-bu-textarea,.pf-bu-is-light.pf-bu-is-focused.pf-bu-input,.pf-bu-is-light.pf-bu-is-focused.pf-bu-textarea,.pf-bu-is-light.pf-bu-textarea:active,.pf-bu-is-light.pf-bu-textarea:focus{box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.pf-bu-is-dark.pf-bu-input,.pf-bu-is-dark.pf-bu-textarea{border-color:#363636}.pf-bu-is-dark.pf-bu-input:active,.pf-bu-is-dark.pf-bu-input:focus,.pf-bu-is-dark.pf-bu-is-active.pf-bu-input,.pf-bu-is-dark.pf-bu-is-active.pf-bu-textarea,.pf-bu-is-dark.pf-bu-is-focused.pf-bu-input,.pf-bu-is-dark.pf-bu-is-focused.pf-bu-textarea,.pf-bu-is-dark.pf-bu-textarea:active,.pf-bu-is-dark.pf-bu-textarea:focus{box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.pf-bu-is-primary.pf-bu-input,.pf-bu-is-primary.pf-bu-textarea{border-color:#00d1b2}.pf-bu-is-primary.pf-bu-input:active,.pf-bu-is-primary.pf-bu-input:focus,.pf-bu-is-primary.pf-bu-is-active.pf-bu-input,.pf-bu-is-primary.pf-bu-is-active.pf-bu-textarea,.pf-bu-is-primary.pf-bu-is-focused.pf-bu-input,.pf-bu-is-primary.pf-bu-is-focused.pf-bu-textarea,.pf-bu-is-primary.pf-bu-textarea:active,.pf-bu-is-primary.pf-bu-textarea:focus{box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.pf-bu-is-link.pf-bu-input,.pf-bu-is-link.pf-bu-textarea{border-color:#3273dc}.pf-bu-is-link.pf-bu-input:active,.pf-bu-is-link.pf-bu-input:focus,.pf-bu-is-link.pf-bu-is-active.pf-bu-input,.pf-bu-is-link.pf-bu-is-active.pf-bu-textarea,.pf-bu-is-link.pf-bu-is-focused.pf-bu-input,.pf-bu-is-link.pf-bu-is-focused.pf-bu-textarea,.pf-bu-is-link.pf-bu-textarea:active,.pf-bu-is-link.pf-bu-textarea:focus{box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.pf-bu-is-info.pf-bu-input,.pf-bu-is-info.pf-bu-textarea{border-color:#3298dc}.pf-bu-is-info.pf-bu-input:active,.pf-bu-is-info.pf-bu-input:focus,.pf-bu-is-info.pf-bu-is-active.pf-bu-input,.pf-bu-is-info.pf-bu-is-active.pf-bu-textarea,.pf-bu-is-info.pf-bu-is-focused.pf-bu-input,.pf-bu-is-info.pf-bu-is-focused.pf-bu-textarea,.pf-bu-is-info.pf-bu-textarea:active,.pf-bu-is-info.pf-bu-textarea:focus{box-shadow:0 0 0 .125em rgba(50,152,220,.25)}.pf-bu-is-success.pf-bu-input,.pf-bu-is-success.pf-bu-textarea{border-color:#48c774}.pf-bu-is-success.pf-bu-input:active,.pf-bu-is-success.pf-bu-input:focus,.pf-bu-is-success.pf-bu-is-active.pf-bu-input,.pf-bu-is-success.pf-bu-is-active.pf-bu-textarea,.pf-bu-is-success.pf-bu-is-focused.pf-bu-input,.pf-bu-is-success.pf-bu-is-focused.pf-bu-textarea,.pf-bu-is-success.pf-bu-textarea:active,.pf-bu-is-success.pf-bu-textarea:focus{box-shadow:0 0 0 .125em rgba(72,199,116,.25)}.pf-bu-is-warning.pf-bu-input,.pf-bu-is-warning.pf-bu-textarea{border-color:#ffdd57}.pf-bu-is-warning.pf-bu-input:active,.pf-bu-is-warning.pf-bu-input:focus,.pf-bu-is-warning.pf-bu-is-active.pf-bu-input,.pf-bu-is-warning.pf-bu-is-active.pf-bu-textarea,.pf-bu-is-warning.pf-bu-is-focused.pf-bu-input,.pf-bu-is-warning.pf-bu-is-focused.pf-bu-textarea,.pf-bu-is-warning.pf-bu-textarea:active,.pf-bu-is-warning.pf-bu-textarea:focus{box-shadow:0 0 0 .125em rgba(255,221,87,.25)}.pf-bu-is-danger.pf-bu-input,.pf-bu-is-danger.pf-bu-textarea{border-color:#f14668}.pf-bu-is-danger.pf-bu-input:active,.pf-bu-is-danger.pf-bu-input:focus,.pf-bu-is-danger.pf-bu-is-active.pf-bu-input,.pf-bu-is-danger.pf-bu-is-active.pf-bu-textarea,.pf-bu-is-danger.pf-bu-is-focused.pf-bu-input,.pf-bu-is-danger.pf-bu-is-focused.pf-bu-textarea,.pf-bu-is-danger.pf-bu-textarea:active,.pf-bu-is-danger.pf-bu-textarea:focus{box-shadow:0 0 0 .125em rgba(241,70,104,.25)}.pf-bu-is-small.pf-bu-input,.pf-bu-is-small.pf-bu-textarea{border-radius:2px;font-size:.75rem}.pf-bu-is-medium.pf-bu-input,.pf-bu-is-medium.pf-bu-textarea{font-size:1.25rem}.pf-bu-is-large.pf-bu-input,.pf-bu-is-large.pf-bu-textarea{font-size:1.5rem}.pf-bu-is-fullwidth.pf-bu-input,.pf-bu-is-fullwidth.pf-bu-textarea{display:block;width:100%}.pf-bu-is-inline.pf-bu-input,.pf-bu-is-inline.pf-bu-textarea{display:inline;width:auto}.pf-bu-input.pf-bu-is-rounded{border-radius:290486px;padding-left:calc(calc(.75em - 1px) + .375em);padding-right:calc(calc(.75em - 1px) + .375em)}.pf-bu-input.pf-bu-is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.pf-bu-textarea{display:block;max-width:100%;min-width:100%;padding:calc(.75em - 1px);resize:vertical}.pf-bu-textarea:not([rows]){max-height:40em;min-height:8em}.pf-bu-textarea[rows]{height:initial}.pf-bu-textarea.pf-bu-has-fixed-size{resize:none}.pf-bu-checkbox,.pf-bu-radio{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.pf-bu-checkbox input,.pf-bu-radio input{cursor:pointer}.pf-bu-checkbox:hover,.pf-bu-radio:hover{color:#363636}.pf-bu-checkbox input[disabled],.pf-bu-checkbox[disabled],.pf-bu-radio input[disabled],.pf-bu-radio[disabled],fieldset[disabled] .pf-bu-checkbox,fieldset[disabled] .pf-bu-radio{color:#7a7a7a;cursor:not-allowed}.pf-bu-radio+.pf-bu-radio{margin-left:.5em}.pf-bu-select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.pf-bu-select:not(.pf-bu-is-multiple){height:2.5em}.pf-bu-select:not(.pf-bu-is-multiple):not(.pf-bu-is-loading)::after{border-color:#3273dc;right:1.125em;z-index:4}.pf-bu-select.pf-bu-is-rounded select{border-radius:290486px;padding-left:1em}.pf-bu-select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:0}.pf-bu-select select::-ms-expand{display:none}.pf-bu-select select[disabled]:hover,fieldset[disabled] .pf-bu-select select:hover{border-color:#f5f5f5}.pf-bu-select select:not([multiple]){padding-right:2.5em}.pf-bu-select select[multiple]{height:auto;padding:0}.pf-bu-select select[multiple] option{padding:.5em 1em}.pf-bu-select:not(.pf-bu-is-multiple):not(.pf-bu-is-loading):hover::after{border-color:#363636}.pf-bu-select.pf-bu-is-white:not(:hover)::after{border-color:#fff}.pf-bu-select.pf-bu-is-white select{border-color:#fff}.pf-bu-select.pf-bu-is-white select.pf-bu-is-hovered,.pf-bu-select.pf-bu-is-white select:hover{border-color:#f2f2f2}.pf-bu-select.pf-bu-is-white select.pf-bu-is-active,.pf-bu-select.pf-bu-is-white select.pf-bu-is-focused,.pf-bu-select.pf-bu-is-white select:active,.pf-bu-select.pf-bu-is-white select:focus{box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.pf-bu-select.pf-bu-is-black:not(:hover)::after{border-color:#0a0a0a}.pf-bu-select.pf-bu-is-black select{border-color:#0a0a0a}.pf-bu-select.pf-bu-is-black select.pf-bu-is-hovered,.pf-bu-select.pf-bu-is-black select:hover{border-color:#000}.pf-bu-select.pf-bu-is-black select.pf-bu-is-active,.pf-bu-select.pf-bu-is-black select.pf-bu-is-focused,.pf-bu-select.pf-bu-is-black select:active,.pf-bu-select.pf-bu-is-black select:focus{box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.pf-bu-select.pf-bu-is-light:not(:hover)::after{border-color:#f5f5f5}.pf-bu-select.pf-bu-is-light select{border-color:#f5f5f5}.pf-bu-select.pf-bu-is-light select.pf-bu-is-hovered,.pf-bu-select.pf-bu-is-light select:hover{border-color:#e8e8e8}.pf-bu-select.pf-bu-is-light select.pf-bu-is-active,.pf-bu-select.pf-bu-is-light select.pf-bu-is-focused,.pf-bu-select.pf-bu-is-light select:active,.pf-bu-select.pf-bu-is-light select:focus{box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.pf-bu-select.pf-bu-is-dark:not(:hover)::after{border-color:#363636}.pf-bu-select.pf-bu-is-dark select{border-color:#363636}.pf-bu-select.pf-bu-is-dark select.pf-bu-is-hovered,.pf-bu-select.pf-bu-is-dark select:hover{border-color:#292929}.pf-bu-select.pf-bu-is-dark select.pf-bu-is-active,.pf-bu-select.pf-bu-is-dark select.pf-bu-is-focused,.pf-bu-select.pf-bu-is-dark select:active,.pf-bu-select.pf-bu-is-dark select:focus{box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.pf-bu-select.pf-bu-is-primary:not(:hover)::after{border-color:#00d1b2}.pf-bu-select.pf-bu-is-primary select{border-color:#00d1b2}.pf-bu-select.pf-bu-is-primary select.pf-bu-is-hovered,.pf-bu-select.pf-bu-is-primary select:hover{border-color:#00b89c}.pf-bu-select.pf-bu-is-primary select.pf-bu-is-active,.pf-bu-select.pf-bu-is-primary select.pf-bu-is-focused,.pf-bu-select.pf-bu-is-primary select:active,.pf-bu-select.pf-bu-is-primary select:focus{box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.pf-bu-select.pf-bu-is-link:not(:hover)::after{border-color:#3273dc}.pf-bu-select.pf-bu-is-link select{border-color:#3273dc}.pf-bu-select.pf-bu-is-link select.pf-bu-is-hovered,.pf-bu-select.pf-bu-is-link select:hover{border-color:#2366d1}.pf-bu-select.pf-bu-is-link select.pf-bu-is-active,.pf-bu-select.pf-bu-is-link select.pf-bu-is-focused,.pf-bu-select.pf-bu-is-link select:active,.pf-bu-select.pf-bu-is-link select:focus{box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.pf-bu-select.pf-bu-is-info:not(:hover)::after{border-color:#3298dc}.pf-bu-select.pf-bu-is-info select{border-color:#3298dc}.pf-bu-select.pf-bu-is-info select.pf-bu-is-hovered,.pf-bu-select.pf-bu-is-info select:hover{border-color:#238cd1}.pf-bu-select.pf-bu-is-info select.pf-bu-is-active,.pf-bu-select.pf-bu-is-info select.pf-bu-is-focused,.pf-bu-select.pf-bu-is-info select:active,.pf-bu-select.pf-bu-is-info select:focus{box-shadow:0 0 0 .125em rgba(50,152,220,.25)}.pf-bu-select.pf-bu-is-success:not(:hover)::after{border-color:#48c774}.pf-bu-select.pf-bu-is-success select{border-color:#48c774}.pf-bu-select.pf-bu-is-success select.pf-bu-is-hovered,.pf-bu-select.pf-bu-is-success select:hover{border-color:#3abb67}.pf-bu-select.pf-bu-is-success select.pf-bu-is-active,.pf-bu-select.pf-bu-is-success select.pf-bu-is-focused,.pf-bu-select.pf-bu-is-success select:active,.pf-bu-select.pf-bu-is-success select:focus{box-shadow:0 0 0 .125em rgba(72,199,116,.25)}.pf-bu-select.pf-bu-is-warning:not(:hover)::after{border-color:#ffdd57}.pf-bu-select.pf-bu-is-warning select{border-color:#ffdd57}.pf-bu-select.pf-bu-is-warning select.pf-bu-is-hovered,.pf-bu-select.pf-bu-is-warning select:hover{border-color:#ffd83d}.pf-bu-select.pf-bu-is-warning select.pf-bu-is-active,.pf-bu-select.pf-bu-is-warning select.pf-bu-is-focused,.pf-bu-select.pf-bu-is-warning select:active,.pf-bu-select.pf-bu-is-warning select:focus{box-shadow:0 0 0 .125em rgba(255,221,87,.25)}.pf-bu-select.pf-bu-is-danger:not(:hover)::after{border-color:#f14668}.pf-bu-select.pf-bu-is-danger select{border-color:#f14668}.pf-bu-select.pf-bu-is-danger select.pf-bu-is-hovered,.pf-bu-select.pf-bu-is-danger select:hover{border-color:#ef2e55}.pf-bu-select.pf-bu-is-danger select.pf-bu-is-active,.pf-bu-select.pf-bu-is-danger select.pf-bu-is-focused,.pf-bu-select.pf-bu-is-danger select:active,.pf-bu-select.pf-bu-is-danger select:focus{box-shadow:0 0 0 .125em rgba(241,70,104,.25)}.pf-bu-select.pf-bu-is-small{border-radius:2px;font-size:.75rem}.pf-bu-select.pf-bu-is-medium{font-size:1.25rem}.pf-bu-select.pf-bu-is-large{font-size:1.5rem}.pf-bu-select.pf-bu-is-disabled::after{border-color:#7a7a7a}.pf-bu-select.pf-bu-is-fullwidth{width:100%}.pf-bu-select.pf-bu-is-fullwidth select{width:100%}.pf-bu-select.pf-bu-is-loading::after{margin-top:0;position:absolute;right:.625em;top:.625em;transform:none}.pf-bu-select.pf-bu-is-loading.pf-bu-is-small:after{font-size:.75rem}.pf-bu-select.pf-bu-is-loading.pf-bu-is-medium:after{font-size:1.25rem}.pf-bu-select.pf-bu-is-loading.pf-bu-is-large:after{font-size:1.5rem}.pf-bu-file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.pf-bu-file.pf-bu-is-white .pf-bu-file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.pf-bu-file.pf-bu-is-white.pf-bu-is-hovered .pf-bu-file-cta,.pf-bu-file.pf-bu-is-white:hover .pf-bu-file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.pf-bu-file.pf-bu-is-white.pf-bu-is-focused .pf-bu-file-cta,.pf-bu-file.pf-bu-is-white:focus .pf-bu-file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(255,255,255,.25);color:#0a0a0a}.pf-bu-file.pf-bu-is-white.pf-bu-is-active .pf-bu-file-cta,.pf-bu-file.pf-bu-is-white:active .pf-bu-file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.pf-bu-file.pf-bu-is-black .pf-bu-file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.pf-bu-file.pf-bu-is-black.pf-bu-is-hovered .pf-bu-file-cta,.pf-bu-file.pf-bu-is-black:hover .pf-bu-file-cta{background-color:#040404;border-color:transparent;color:#fff}.pf-bu-file.pf-bu-is-black.pf-bu-is-focused .pf-bu-file-cta,.pf-bu-file.pf-bu-is-black:focus .pf-bu-file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(10,10,10,.25);color:#fff}.pf-bu-file.pf-bu-is-black.pf-bu-is-active .pf-bu-file-cta,.pf-bu-file.pf-bu-is-black:active .pf-bu-file-cta{background-color:#000;border-color:transparent;color:#fff}.pf-bu-file.pf-bu-is-light .pf-bu-file-cta{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,.7)}.pf-bu-file.pf-bu-is-light.pf-bu-is-hovered .pf-bu-file-cta,.pf-bu-file.pf-bu-is-light:hover .pf-bu-file-cta{background-color:#eee;border-color:transparent;color:rgba(0,0,0,.7)}.pf-bu-file.pf-bu-is-light.pf-bu-is-focused .pf-bu-file-cta,.pf-bu-file.pf-bu-is-light:focus .pf-bu-file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(245,245,245,.25);color:rgba(0,0,0,.7)}.pf-bu-file.pf-bu-is-light.pf-bu-is-active .pf-bu-file-cta,.pf-bu-file.pf-bu-is-light:active .pf-bu-file-cta{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,.7)}.pf-bu-file.pf-bu-is-dark .pf-bu-file-cta{background-color:#363636;border-color:transparent;color:#fff}.pf-bu-file.pf-bu-is-dark.pf-bu-is-hovered .pf-bu-file-cta,.pf-bu-file.pf-bu-is-dark:hover .pf-bu-file-cta{background-color:#2f2f2f;border-color:transparent;color:#fff}.pf-bu-file.pf-bu-is-dark.pf-bu-is-focused .pf-bu-file-cta,.pf-bu-file.pf-bu-is-dark:focus .pf-bu-file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(54,54,54,.25);color:#fff}.pf-bu-file.pf-bu-is-dark.pf-bu-is-active .pf-bu-file-cta,.pf-bu-file.pf-bu-is-dark:active .pf-bu-file-cta{background-color:#292929;border-color:transparent;color:#fff}.pf-bu-file.pf-bu-is-primary .pf-bu-file-cta{background-color:#00d1b2;border-color:transparent;color:#fff}.pf-bu-file.pf-bu-is-primary.pf-bu-is-hovered .pf-bu-file-cta,.pf-bu-file.pf-bu-is-primary:hover .pf-bu-file-cta{background-color:#00c4a7;border-color:transparent;color:#fff}.pf-bu-file.pf-bu-is-primary.pf-bu-is-focused .pf-bu-file-cta,.pf-bu-file.pf-bu-is-primary:focus .pf-bu-file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(0,209,178,.25);color:#fff}.pf-bu-file.pf-bu-is-primary.pf-bu-is-active .pf-bu-file-cta,.pf-bu-file.pf-bu-is-primary:active .pf-bu-file-cta{background-color:#00b89c;border-color:transparent;color:#fff}.pf-bu-file.pf-bu-is-link .pf-bu-file-cta{background-color:#3273dc;border-color:transparent;color:#fff}.pf-bu-file.pf-bu-is-link.pf-bu-is-hovered .pf-bu-file-cta,.pf-bu-file.pf-bu-is-link:hover .pf-bu-file-cta{background-color:#276cda;border-color:transparent;color:#fff}.pf-bu-file.pf-bu-is-link.pf-bu-is-focused .pf-bu-file-cta,.pf-bu-file.pf-bu-is-link:focus .pf-bu-file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(50,115,220,.25);color:#fff}.pf-bu-file.pf-bu-is-link.pf-bu-is-active .pf-bu-file-cta,.pf-bu-file.pf-bu-is-link:active .pf-bu-file-cta{background-color:#2366d1;border-color:transparent;color:#fff}.pf-bu-file.pf-bu-is-info .pf-bu-file-cta{background-color:#3298dc;border-color:transparent;color:#fff}.pf-bu-file.pf-bu-is-info.pf-bu-is-hovered .pf-bu-file-cta,.pf-bu-file.pf-bu-is-info:hover .pf-bu-file-cta{background-color:#2793da;border-color:transparent;color:#fff}.pf-bu-file.pf-bu-is-info.pf-bu-is-focused .pf-bu-file-cta,.pf-bu-file.pf-bu-is-info:focus .pf-bu-file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(50,152,220,.25);color:#fff}.pf-bu-file.pf-bu-is-info.pf-bu-is-active .pf-bu-file-cta,.pf-bu-file.pf-bu-is-info:active .pf-bu-file-cta{background-color:#238cd1;border-color:transparent;color:#fff}.pf-bu-file.pf-bu-is-success .pf-bu-file-cta{background-color:#48c774;border-color:transparent;color:#fff}.pf-bu-file.pf-bu-is-success.pf-bu-is-hovered .pf-bu-file-cta,.pf-bu-file.pf-bu-is-success:hover .pf-bu-file-cta{background-color:#3ec46d;border-color:transparent;color:#fff}.pf-bu-file.pf-bu-is-success.pf-bu-is-focused .pf-bu-file-cta,.pf-bu-file.pf-bu-is-success:focus .pf-bu-file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(72,199,116,.25);color:#fff}.pf-bu-file.pf-bu-is-success.pf-bu-is-active .pf-bu-file-cta,.pf-bu-file.pf-bu-is-success:active .pf-bu-file-cta{background-color:#3abb67;border-color:transparent;color:#fff}.pf-bu-file.pf-bu-is-warning .pf-bu-file-cta{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,.7)}.pf-bu-file.pf-bu-is-warning.pf-bu-is-hovered .pf-bu-file-cta,.pf-bu-file.pf-bu-is-warning:hover .pf-bu-file-cta{background-color:#ffdb4a;border-color:transparent;color:rgba(0,0,0,.7)}.pf-bu-file.pf-bu-is-warning.pf-bu-is-focused .pf-bu-file-cta,.pf-bu-file.pf-bu-is-warning:focus .pf-bu-file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(255,221,87,.25);color:rgba(0,0,0,.7)}.pf-bu-file.pf-bu-is-warning.pf-bu-is-active .pf-bu-file-cta,.pf-bu-file.pf-bu-is-warning:active .pf-bu-file-cta{background-color:#ffd83d;border-color:transparent;color:rgba(0,0,0,.7)}.pf-bu-file.pf-bu-is-danger .pf-bu-file-cta{background-color:#f14668;border-color:transparent;color:#fff}.pf-bu-file.pf-bu-is-danger.pf-bu-is-hovered .pf-bu-file-cta,.pf-bu-file.pf-bu-is-danger:hover .pf-bu-file-cta{background-color:#f03a5f;border-color:transparent;color:#fff}.pf-bu-file.pf-bu-is-danger.pf-bu-is-focused .pf-bu-file-cta,.pf-bu-file.pf-bu-is-danger:focus .pf-bu-file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(241,70,104,.25);color:#fff}.pf-bu-file.pf-bu-is-danger.pf-bu-is-active .pf-bu-file-cta,.pf-bu-file.pf-bu-is-danger:active .pf-bu-file-cta{background-color:#ef2e55;border-color:transparent;color:#fff}.pf-bu-file.pf-bu-is-small{font-size:.75rem}.pf-bu-file.pf-bu-is-medium{font-size:1.25rem}.pf-bu-file.pf-bu-is-medium .pf-bu-file-icon .pf-bu-fa{font-size:21px}.pf-bu-file.pf-bu-is-large{font-size:1.5rem}.pf-bu-file.pf-bu-is-large .pf-bu-file-icon .pf-bu-fa{font-size:28px}.pf-bu-file.pf-bu-has-name .pf-bu-file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.pf-bu-file.pf-bu-has-name .pf-bu-file-name{border-bottom-left-radius:0;border-top-left-radius:0}.pf-bu-file.pf-bu-has-name.pf-bu-is-empty .pf-bu-file-cta{border-radius:4px}.pf-bu-file.pf-bu-has-name.pf-bu-is-empty .pf-bu-file-name{display:none}.pf-bu-file.pf-bu-is-boxed .pf-bu-file-label{flex-direction:column}.pf-bu-file.pf-bu-is-boxed .pf-bu-file-cta{flex-direction:column;height:auto;padding:1em 3em}.pf-bu-file.pf-bu-is-boxed .pf-bu-file-name{border-width:0 1px 1px}.pf-bu-file.pf-bu-is-boxed .pf-bu-file-icon{height:1.5em;width:1.5em}.pf-bu-file.pf-bu-is-boxed .pf-bu-file-icon .pf-bu-fa{font-size:21px}.pf-bu-file.pf-bu-is-boxed.pf-bu-is-small .pf-bu-file-icon .pf-bu-fa{font-size:14px}.pf-bu-file.pf-bu-is-boxed.pf-bu-is-medium .pf-bu-file-icon .pf-bu-fa{font-size:28px}.pf-bu-file.pf-bu-is-boxed.pf-bu-is-large .pf-bu-file-icon .pf-bu-fa{font-size:35px}.pf-bu-file.pf-bu-is-boxed.pf-bu-has-name .pf-bu-file-cta{border-radius:4px 4px 0 0}.pf-bu-file.pf-bu-is-boxed.pf-bu-has-name .pf-bu-file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.pf-bu-file.pf-bu-is-centered{justify-content:center}.pf-bu-file.pf-bu-is-fullwidth .pf-bu-file-label{width:100%}.pf-bu-file.pf-bu-is-fullwidth .pf-bu-file-name{flex-grow:1;max-width:none}.pf-bu-file.pf-bu-is-right{justify-content:flex-end}.pf-bu-file.pf-bu-is-right .pf-bu-file-cta{border-radius:0 4px 4px 0}.pf-bu-file.pf-bu-is-right .pf-bu-file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.pf-bu-file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.pf-bu-file-label:hover .pf-bu-file-cta{background-color:#eee;color:#363636}.pf-bu-file-label:hover .pf-bu-file-name{border-color:#d5d5d5}.pf-bu-file-label:active .pf-bu-file-cta{background-color:#e8e8e8;color:#363636}.pf-bu-file-label:active .pf-bu-file-name{border-color:#cfcfcf}.pf-bu-file-input{height:100%;left:0;opacity:0;outline:0;position:absolute;top:0;width:100%}.pf-bu-file-cta,.pf-bu-file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.pf-bu-file-cta{background-color:#f5f5f5;color:#4a4a4a}.pf-bu-file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:inherit;text-overflow:ellipsis}.pf-bu-file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:.5em;width:1em}.pf-bu-file-icon .pf-bu-fa{font-size:14px}.pf-bu-label{color:#363636;display:block;font-size:1rem;font-weight:700}.pf-bu-label:not(:last-child){margin-bottom:.5em}.pf-bu-label.pf-bu-is-small{font-size:.75rem}.pf-bu-label.pf-bu-is-medium{font-size:1.25rem}.pf-bu-label.pf-bu-is-large{font-size:1.5rem}.pf-bu-help{display:block;font-size:.75rem;margin-top:.25rem}.pf-bu-help.pf-bu-is-white{color:#fff}.pf-bu-help.pf-bu-is-black{color:#0a0a0a}.pf-bu-help.pf-bu-is-light{color:#f5f5f5}.pf-bu-help.pf-bu-is-dark{color:#363636}.pf-bu-help.pf-bu-is-primary{color:#00d1b2}.pf-bu-help.pf-bu-is-link{color:#3273dc}.pf-bu-help.pf-bu-is-info{color:#3298dc}.pf-bu-help.pf-bu-is-success{color:#48c774}.pf-bu-help.pf-bu-is-warning{color:#ffdd57}.pf-bu-help.pf-bu-is-danger{color:#f14668}.pf-bu-field:not(:last-child){margin-bottom:.75rem}.pf-bu-field.pf-bu-has-addons{display:flex;justify-content:flex-start}.pf-bu-field.pf-bu-has-addons .pf-bu-control:not(:last-child){margin-right:-1px}.pf-bu-field.pf-bu-has-addons .pf-bu-control:not(:first-child):not(:last-child) .pf-bu-button,.pf-bu-field.pf-bu-has-addons .pf-bu-control:not(:first-child):not(:last-child) .pf-bu-input,.pf-bu-field.pf-bu-has-addons .pf-bu-control:not(:first-child):not(:last-child) .pf-bu-select select{border-radius:0}.pf-bu-field.pf-bu-has-addons .pf-bu-control:first-child:not(:only-child) .pf-bu-button,.pf-bu-field.pf-bu-has-addons .pf-bu-control:first-child:not(:only-child) .pf-bu-input,.pf-bu-field.pf-bu-has-addons .pf-bu-control:first-child:not(:only-child) .pf-bu-select select{border-bottom-right-radius:0;border-top-right-radius:0}.pf-bu-field.pf-bu-has-addons .pf-bu-control:last-child:not(:only-child) .pf-bu-button,.pf-bu-field.pf-bu-has-addons .pf-bu-control:last-child:not(:only-child) .pf-bu-input,.pf-bu-field.pf-bu-has-addons .pf-bu-control:last-child:not(:only-child) .pf-bu-select select{border-bottom-left-radius:0;border-top-left-radius:0}.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-button:not([disabled]).pf-bu-is-hovered,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-button:not([disabled]):hover,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-input:not([disabled]).pf-bu-is-hovered,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-input:not([disabled]):hover,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-select select:not([disabled]).pf-bu-is-hovered,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-select select:not([disabled]):hover{z-index:2}.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-button:not([disabled]).pf-bu-is-active,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-button:not([disabled]).pf-bu-is-focused,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-button:not([disabled]):active,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-button:not([disabled]):focus,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-input:not([disabled]).pf-bu-is-active,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-input:not([disabled]).pf-bu-is-focused,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-input:not([disabled]):active,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-input:not([disabled]):focus,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-select select:not([disabled]).pf-bu-is-active,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-select select:not([disabled]).pf-bu-is-focused,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-select select:not([disabled]):active,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-select select:not([disabled]):focus{z-index:3}.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-button:not([disabled]).pf-bu-is-active:hover,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-button:not([disabled]).pf-bu-is-focused:hover,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-button:not([disabled]):active:hover,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-button:not([disabled]):focus:hover,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-input:not([disabled]).pf-bu-is-active:hover,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-input:not([disabled]).pf-bu-is-focused:hover,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-input:not([disabled]):active:hover,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-input:not([disabled]):focus:hover,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-select select:not([disabled]).pf-bu-is-active:hover,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-select select:not([disabled]).pf-bu-is-focused:hover,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-select select:not([disabled]):active:hover,.pf-bu-field.pf-bu-has-addons .pf-bu-control .pf-bu-select select:not([disabled]):focus:hover{z-index:4}.pf-bu-field.pf-bu-has-addons .pf-bu-control.pf-bu-is-expanded{flex-grow:1;flex-shrink:1}.pf-bu-field.pf-bu-has-addons.pf-bu-has-addons-centered{justify-content:center}.pf-bu-field.pf-bu-has-addons.pf-bu-has-addons-right{justify-content:flex-end}.pf-bu-field.pf-bu-has-addons.pf-bu-has-addons-fullwidth .pf-bu-control{flex-grow:1;flex-shrink:0}.pf-bu-field.pf-bu-is-grouped{display:flex;justify-content:flex-start}.pf-bu-field.pf-bu-is-grouped>.pf-bu-control{flex-shrink:0}.pf-bu-field.pf-bu-is-grouped>.pf-bu-control:not(:last-child){margin-bottom:0;margin-right:.75rem}.pf-bu-field.pf-bu-is-grouped>.pf-bu-control.pf-bu-is-expanded{flex-grow:1;flex-shrink:1}.pf-bu-field.pf-bu-is-grouped.pf-bu-is-grouped-centered{justify-content:center}.pf-bu-field.pf-bu-is-grouped.pf-bu-is-grouped-right{justify-content:flex-end}.pf-bu-field.pf-bu-is-grouped.pf-bu-is-grouped-multiline{flex-wrap:wrap}.pf-bu-field.pf-bu-is-grouped.pf-bu-is-grouped-multiline>.pf-bu-control:last-child,.pf-bu-field.pf-bu-is-grouped.pf-bu-is-grouped-multiline>.pf-bu-control:not(:last-child){margin-bottom:.75rem}.pf-bu-field.pf-bu-is-grouped.pf-bu-is-grouped-multiline:last-child{margin-bottom:-.75rem}.pf-bu-field.pf-bu-is-grouped.pf-bu-is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width:769px),print{.pf-bu-field.pf-bu-is-horizontal{display:flex}}.pf-bu-field-label .pf-bu-label{font-size:inherit}@media screen and (max-width:768px){.pf-bu-field-label{margin-bottom:.5rem}}@media screen and (min-width:769px),print{.pf-bu-field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.pf-bu-field-label.pf-bu-is-small{font-size:.75rem;padding-top:.375em}.pf-bu-field-label.pf-bu-is-normal{padding-top:.375em}.pf-bu-field-label.pf-bu-is-medium{font-size:1.25rem;padding-top:.375em}.pf-bu-field-label.pf-bu-is-large{font-size:1.5rem;padding-top:.375em}}.pf-bu-field-body .pf-bu-field .pf-bu-field{margin-bottom:0}@media screen and (min-width:769px),print{.pf-bu-field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.pf-bu-field-body .pf-bu-field{margin-bottom:0}.pf-bu-field-body>.pf-bu-field{flex-shrink:1}.pf-bu-field-body>.pf-bu-field:not(.pf-bu-is-narrow){flex-grow:1}.pf-bu-field-body>.pf-bu-field:not(:last-child){margin-right:.75rem}}.pf-bu-control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:inherit}.pf-bu-control.pf-bu-has-icons-left .pf-bu-input:focus~.pf-bu-icon,.pf-bu-control.pf-bu-has-icons-left .pf-bu-select:focus~.pf-bu-icon,.pf-bu-control.pf-bu-has-icons-right .pf-bu-input:focus~.pf-bu-icon,.pf-bu-control.pf-bu-has-icons-right .pf-bu-select:focus~.pf-bu-icon{color:#4a4a4a}.pf-bu-control.pf-bu-has-icons-left .pf-bu-input.pf-bu-is-small~.pf-bu-icon,.pf-bu-control.pf-bu-has-icons-left .pf-bu-select.pf-bu-is-small~.pf-bu-icon,.pf-bu-control.pf-bu-has-icons-right .pf-bu-input.pf-bu-is-small~.pf-bu-icon,.pf-bu-control.pf-bu-has-icons-right .pf-bu-select.pf-bu-is-small~.pf-bu-icon{font-size:.75rem}.pf-bu-control.pf-bu-has-icons-left .pf-bu-input.pf-bu-is-medium~.pf-bu-icon,.pf-bu-control.pf-bu-has-icons-left .pf-bu-select.pf-bu-is-medium~.pf-bu-icon,.pf-bu-control.pf-bu-has-icons-right .pf-bu-input.pf-bu-is-medium~.pf-bu-icon,.pf-bu-control.pf-bu-has-icons-right .pf-bu-select.pf-bu-is-medium~.pf-bu-icon{font-size:1.25rem}.pf-bu-control.pf-bu-has-icons-left .pf-bu-input.pf-bu-is-large~.pf-bu-icon,.pf-bu-control.pf-bu-has-icons-left .pf-bu-select.pf-bu-is-large~.pf-bu-icon,.pf-bu-control.pf-bu-has-icons-right .pf-bu-input.pf-bu-is-large~.pf-bu-icon,.pf-bu-control.pf-bu-has-icons-right .pf-bu-select.pf-bu-is-large~.pf-bu-icon{font-size:1.5rem}.pf-bu-control.pf-bu-has-icons-left .pf-bu-icon,.pf-bu-control.pf-bu-has-icons-right .pf-bu-icon{color:#dbdbdb;height:2.5em;pointer-events:none;position:absolute;top:0;width:2.5em;z-index:4}.pf-bu-control.pf-bu-has-icons-left .pf-bu-input,.pf-bu-control.pf-bu-has-icons-left .pf-bu-select select{padding-left:2.5em}.pf-bu-control.pf-bu-has-icons-left .pf-bu-icon.pf-bu-is-left{left:0}.pf-bu-control.pf-bu-has-icons-right .pf-bu-input,.pf-bu-control.pf-bu-has-icons-right .pf-bu-select select{padding-right:2.5em}.pf-bu-control.pf-bu-has-icons-right .pf-bu-icon.pf-bu-is-right{right:0}.pf-bu-control.pf-bu-is-loading::after{position:absolute!important;right:.625em;top:.625em;z-index:4}.pf-bu-control.pf-bu-is-loading.pf-bu-is-small:after{font-size:.75rem}.pf-bu-control.pf-bu-is-loading.pf-bu-is-medium:after{font-size:1.25rem}.pf-bu-control.pf-bu-is-loading.pf-bu-is-large:after{font-size:1.5rem}.pf-bu-breadcrumb{font-size:1rem;white-space:nowrap}.pf-bu-breadcrumb a{align-items:center;color:#3273dc;display:flex;justify-content:center;padding:0 .75em}.pf-bu-breadcrumb a:hover{color:#363636}.pf-bu-breadcrumb li{align-items:center;display:flex}.pf-bu-breadcrumb li:first-child a{padding-left:0}.pf-bu-breadcrumb li.pf-bu-is-active a{color:#363636;cursor:default;pointer-events:none}.pf-bu-breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.pf-bu-breadcrumb ol,.pf-bu-breadcrumb ul{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.pf-bu-breadcrumb .pf-bu-icon:first-child{margin-right:.5em}.pf-bu-breadcrumb .pf-bu-icon:last-child{margin-left:.5em}.pf-bu-breadcrumb.pf-bu-is-centered ol,.pf-bu-breadcrumb.pf-bu-is-centered ul{justify-content:center}.pf-bu-breadcrumb.pf-bu-is-right ol,.pf-bu-breadcrumb.pf-bu-is-right ul{justify-content:flex-end}.pf-bu-breadcrumb.pf-bu-is-small{font-size:.75rem}.pf-bu-breadcrumb.pf-bu-is-medium{font-size:1.25rem}.pf-bu-breadcrumb.pf-bu-is-large{font-size:1.5rem}.pf-bu-breadcrumb.pf-bu-has-arrow-separator li+li::before{content:"\02192"}.pf-bu-breadcrumb.pf-bu-has-bullet-separator li+li::before{content:"\02022"}.pf-bu-breadcrumb.pf-bu-has-dot-separator li+li::before{content:"\000b7"}.pf-bu-breadcrumb.pf-bu-has-succeeds-separator li+li::before{content:"\0227B"}.pf-bu-card{background-color:#fff;border-radius:.25rem;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);color:#4a4a4a;max-width:100%;overflow:hidden;position:relative}.pf-bu-card-header{background-color:transparent;align-items:stretch;box-shadow:0 .125em .25em rgba(10,10,10,.1);display:flex}.pf-bu-card-header-title{align-items:center;color:#363636;display:flex;flex-grow:1;font-weight:700;padding:.75rem 1rem}.pf-bu-card-header-title.pf-bu-is-centered{justify-content:center}.pf-bu-card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem 1rem}.pf-bu-card-image{display:block;position:relative}.pf-bu-card-content{background-color:transparent;padding:1.5rem}.pf-bu-card-footer{background-color:transparent;border-top:1px solid #ededed;align-items:stretch;display:flex}.pf-bu-card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.pf-bu-card-footer-item:not(:last-child){border-right:1px solid #ededed}.pf-bu-card .pf-bu-media:not(:last-child){margin-bottom:1.5rem}.pf-bu-dropdown{display:inline-flex;position:relative;vertical-align:top}.pf-bu-dropdown.pf-bu-is-active .pf-bu-dropdown-menu,.pf-bu-dropdown.pf-bu-is-hoverable:hover .pf-bu-dropdown-menu{display:block}.pf-bu-dropdown.pf-bu-is-right .pf-bu-dropdown-menu{left:auto;right:0}.pf-bu-dropdown.pf-bu-is-up .pf-bu-dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.pf-bu-dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.pf-bu-dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);padding-bottom:.5rem;padding-top:.5rem}.pf-bu-dropdown-item{color:#4a4a4a;display:block;font-size:.875rem;line-height:1.5;padding:.375rem 1rem;position:relative}a.pf-bu-dropdown-item,button.pf-bu-dropdown-item{padding-right:3rem;text-align:inherit;white-space:nowrap;width:100%}a.pf-bu-dropdown-item:hover,button.pf-bu-dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.pf-bu-dropdown-item.pf-bu-is-active,button.pf-bu-dropdown-item.pf-bu-is-active{background-color:#3273dc;color:#fff}.pf-bu-dropdown-divider{background-color:#ededed;border:none;display:block;height:1px;margin:.5rem 0}.pf-bu-level{align-items:center;justify-content:space-between}.pf-bu-level code{border-radius:4px}.pf-bu-level img{display:inline-block;vertical-align:top}.pf-bu-level.pf-bu-is-mobile{display:flex}.pf-bu-level.pf-bu-is-mobile .pf-bu-level-left,.pf-bu-level.pf-bu-is-mobile .pf-bu-level-right{display:flex}.pf-bu-level.pf-bu-is-mobile .pf-bu-level-left+.pf-bu-level-right{margin-top:0}.pf-bu-level.pf-bu-is-mobile .pf-bu-level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}.pf-bu-level.pf-bu-is-mobile .pf-bu-level-item:not(.pf-bu-is-narrow){flex-grow:1}@media screen and (min-width:769px),print{.pf-bu-level{display:flex}.pf-bu-level>.pf-bu-level-item:not(.pf-bu-is-narrow){flex-grow:1}}.pf-bu-level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.pf-bu-level-item .pf-bu-subtitle,.pf-bu-level-item .pf-bu-title{margin-bottom:0}@media screen and (max-width:768px){.pf-bu-level-item:not(:last-child){margin-bottom:.75rem}}.pf-bu-level-left,.pf-bu-level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.pf-bu-level-left .pf-bu-level-item.pf-bu-is-flexible,.pf-bu-level-right .pf-bu-level-item.pf-bu-is-flexible{flex-grow:1}@media screen and (min-width:769px),print{.pf-bu-level-left .pf-bu-level-item:not(:last-child),.pf-bu-level-right .pf-bu-level-item:not(:last-child){margin-right:.75rem}}.pf-bu-level-left{align-items:center;justify-content:flex-start}@media screen and (max-width:768px){.pf-bu-level-left+.pf-bu-level-right{margin-top:1.5rem}}@media screen and (min-width:769px),print{.pf-bu-level-left{display:flex}}.pf-bu-level-right{align-items:center;justify-content:flex-end}@media screen and (min-width:769px),print{.pf-bu-level-right{display:flex}}.pf-bu-media{align-items:flex-start;display:flex;text-align:inherit}.pf-bu-media .pf-bu-content:not(:last-child){margin-bottom:.75rem}.pf-bu-media .pf-bu-media{border-top:1px solid rgba(219,219,219,.5);display:flex;padding-top:.75rem}.pf-bu-media .pf-bu-media .pf-bu-content:not(:last-child),.pf-bu-media .pf-bu-media .pf-bu-control:not(:last-child){margin-bottom:.5rem}.pf-bu-media .pf-bu-media .pf-bu-media{padding-top:.5rem}.pf-bu-media .pf-bu-media .pf-bu-media+.pf-bu-media{margin-top:.5rem}.pf-bu-media+.pf-bu-media{border-top:1px solid rgba(219,219,219,.5);margin-top:1rem;padding-top:1rem}.pf-bu-media.pf-bu-is-large+.pf-bu-media{margin-top:1.5rem;padding-top:1.5rem}.pf-bu-media-left,.pf-bu-media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.pf-bu-media-left{margin-right:1rem}.pf-bu-media-right{margin-left:1rem}.pf-bu-media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:inherit}@media screen and (max-width:768px){.pf-bu-media-content{overflow-x:auto}}.pf-bu-menu{font-size:1rem}.pf-bu-menu.pf-bu-is-small{font-size:.75rem}.pf-bu-menu.pf-bu-is-medium{font-size:1.25rem}.pf-bu-menu.pf-bu-is-large{font-size:1.5rem}.pf-bu-menu-list{line-height:1.25}.pf-bu-menu-list a{border-radius:2px;color:#4a4a4a;display:block;padding:.5em .75em}.pf-bu-menu-list a:hover{background-color:#f5f5f5;color:#363636}.pf-bu-menu-list a.pf-bu-is-active{background-color:#3273dc;color:#fff}.pf-bu-menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.pf-bu-menu-label{color:#7a7a7a;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.pf-bu-menu-label:not(:first-child){margin-top:1em}.pf-bu-menu-label:not(:last-child){margin-bottom:1em}.pf-bu-message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.pf-bu-message strong{color:currentColor}.pf-bu-message a:not(.pf-bu-button):not(.pf-bu-tag):not(.pf-bu-dropdown-item){color:currentColor;text-decoration:underline}.pf-bu-message.pf-bu-is-small{font-size:.75rem}.pf-bu-message.pf-bu-is-medium{font-size:1.25rem}.pf-bu-message.pf-bu-is-large{font-size:1.5rem}.pf-bu-message.pf-bu-is-white{background-color:#fff}.pf-bu-message.pf-bu-is-white .pf-bu-message-header{background-color:#fff;color:#0a0a0a}.pf-bu-message.pf-bu-is-white .pf-bu-message-body{border-color:#fff}.pf-bu-message.pf-bu-is-black{background-color:#fafafa}.pf-bu-message.pf-bu-is-black .pf-bu-message-header{background-color:#0a0a0a;color:#fff}.pf-bu-message.pf-bu-is-black .pf-bu-message-body{border-color:#0a0a0a}.pf-bu-message.pf-bu-is-light{background-color:#fafafa}.pf-bu-message.pf-bu-is-light .pf-bu-message-header{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.pf-bu-message.pf-bu-is-light .pf-bu-message-body{border-color:#f5f5f5}.pf-bu-message.pf-bu-is-dark{background-color:#fafafa}.pf-bu-message.pf-bu-is-dark .pf-bu-message-header{background-color:#363636;color:#fff}.pf-bu-message.pf-bu-is-dark .pf-bu-message-body{border-color:#363636}.pf-bu-message.pf-bu-is-primary{background-color:#ebfffc}.pf-bu-message.pf-bu-is-primary .pf-bu-message-header{background-color:#00d1b2;color:#fff}.pf-bu-message.pf-bu-is-primary .pf-bu-message-body{border-color:#00d1b2;color:#00947e}.pf-bu-message.pf-bu-is-link{background-color:#eef3fc}.pf-bu-message.pf-bu-is-link .pf-bu-message-header{background-color:#3273dc;color:#fff}.pf-bu-message.pf-bu-is-link .pf-bu-message-body{border-color:#3273dc;color:#2160c4}.pf-bu-message.pf-bu-is-info{background-color:#eef6fc}.pf-bu-message.pf-bu-is-info .pf-bu-message-header{background-color:#3298dc;color:#fff}.pf-bu-message.pf-bu-is-info .pf-bu-message-body{border-color:#3298dc;color:#1d72aa}.pf-bu-message.pf-bu-is-success{background-color:#effaf3}.pf-bu-message.pf-bu-is-success .pf-bu-message-header{background-color:#48c774;color:#fff}.pf-bu-message.pf-bu-is-success .pf-bu-message-body{border-color:#48c774;color:#257942}.pf-bu-message.pf-bu-is-warning{background-color:#fffbeb}.pf-bu-message.pf-bu-is-warning .pf-bu-message-header{background-color:#ffdd57;color:rgba(0,0,0,.7)}.pf-bu-message.pf-bu-is-warning .pf-bu-message-body{border-color:#ffdd57;color:#947600}.pf-bu-message.pf-bu-is-danger{background-color:#feecf0}.pf-bu-message.pf-bu-is-danger .pf-bu-message-header{background-color:#f14668;color:#fff}.pf-bu-message.pf-bu-is-danger .pf-bu-message-body{border-color:#f14668;color:#cc0f35}.pf-bu-message-header{align-items:center;background-color:#4a4a4a;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:.75em 1em;position:relative}.pf-bu-message-header .pf-bu-delete{flex-grow:0;flex-shrink:0;margin-left:.75em}.pf-bu-message-header+.pf-bu-message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.pf-bu-message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#4a4a4a;padding:1.25em 1.5em}.pf-bu-message-body code,.pf-bu-message-body pre{background-color:#fff}.pf-bu-message-body pre code{background-color:transparent}.pf-bu-modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.pf-bu-modal.pf-bu-is-active{display:flex}.pf-bu-modal-background{background-color:rgba(10,10,10,.86)}.pf-bu-modal-card,.pf-bu-modal-content{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width:769px){.pf-bu-modal-card,.pf-bu-modal-content{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.pf-bu-modal-close{background:0 0;height:40px;position:fixed;right:20px;top:20px;width:40px}.pf-bu-modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.pf-bu-modal-card-foot,.pf-bu-modal-card-head{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.pf-bu-modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.pf-bu-modal-card-title{color:#363636;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.pf-bu-modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.pf-bu-modal-card-foot .pf-bu-button:not(:last-child){margin-right:.5em}.pf-bu-modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.pf-bu-navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.pf-bu-navbar.pf-bu-is-white{background-color:#fff;color:#0a0a0a}.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-brand .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-brand>.pf-bu-navbar-item{color:#0a0a0a}.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-brand .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-brand .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-brand .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-brand>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-brand>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-brand>a.pf-bu-navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-brand .pf-bu-navbar-link::after{border-color:#0a0a0a}.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-burger{color:#0a0a0a}@media screen and (min-width:1024px){.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-end .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-end>.pf-bu-navbar-item,.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-start .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-start>.pf-bu-navbar-item{color:#0a0a0a}.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-end .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-end .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-end .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-end>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-end>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-end>a.pf-bu-navbar-item:hover,.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-start .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-start .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-start .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-start>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-start>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-start>a.pf-bu-navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-end .pf-bu-navbar-link::after,.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-start .pf-bu-navbar-link::after{border-color:#0a0a0a}.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-item.pf-bu-has-dropdown.pf-bu-is-active .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-item.pf-bu-has-dropdown:focus .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-item.pf-bu-has-dropdown:hover .pf-bu-navbar-link{background-color:#f2f2f2;color:#0a0a0a}.pf-bu-navbar.pf-bu-is-white .pf-bu-navbar-dropdown a.pf-bu-navbar-item.pf-bu-is-active{background-color:#fff;color:#0a0a0a}}.pf-bu-navbar.pf-bu-is-black{background-color:#0a0a0a;color:#fff}.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-brand .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-brand>.pf-bu-navbar-item{color:#fff}.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-brand .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-brand .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-brand .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-brand>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-brand>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-brand>a.pf-bu-navbar-item:hover{background-color:#000;color:#fff}.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-brand .pf-bu-navbar-link::after{border-color:#fff}.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-burger{color:#fff}@media screen and (min-width:1024px){.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-end .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-end>.pf-bu-navbar-item,.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-start .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-start>.pf-bu-navbar-item{color:#fff}.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-end .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-end .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-end .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-end>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-end>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-end>a.pf-bu-navbar-item:hover,.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-start .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-start .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-start .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-start>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-start>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-start>a.pf-bu-navbar-item:hover{background-color:#000;color:#fff}.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-end .pf-bu-navbar-link::after,.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-start .pf-bu-navbar-link::after{border-color:#fff}.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-item.pf-bu-has-dropdown.pf-bu-is-active .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-item.pf-bu-has-dropdown:focus .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-item.pf-bu-has-dropdown:hover .pf-bu-navbar-link{background-color:#000;color:#fff}.pf-bu-navbar.pf-bu-is-black .pf-bu-navbar-dropdown a.pf-bu-navbar-item.pf-bu-is-active{background-color:#0a0a0a;color:#fff}}.pf-bu-navbar.pf-bu-is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-brand .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-brand>.pf-bu-navbar-item{color:rgba(0,0,0,.7)}.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-brand .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-brand .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-brand .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-brand>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-brand>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-brand>a.pf-bu-navbar-item:hover{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-brand .pf-bu-navbar-link::after{border-color:rgba(0,0,0,.7)}.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-burger{color:rgba(0,0,0,.7)}@media screen and (min-width:1024px){.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-end .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-end>.pf-bu-navbar-item,.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-start .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-start>.pf-bu-navbar-item{color:rgba(0,0,0,.7)}.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-end .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-end .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-end .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-end>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-end>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-end>a.pf-bu-navbar-item:hover,.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-start .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-start .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-start .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-start>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-start>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-start>a.pf-bu-navbar-item:hover{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-end .pf-bu-navbar-link::after,.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-start .pf-bu-navbar-link::after{border-color:rgba(0,0,0,.7)}.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-item.pf-bu-has-dropdown.pf-bu-is-active .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-item.pf-bu-has-dropdown:focus .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-item.pf-bu-has-dropdown:hover .pf-bu-navbar-link{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.pf-bu-navbar.pf-bu-is-light .pf-bu-navbar-dropdown a.pf-bu-navbar-item.pf-bu-is-active{background-color:#f5f5f5;color:rgba(0,0,0,.7)}}.pf-bu-navbar.pf-bu-is-dark{background-color:#363636;color:#fff}.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-brand .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-brand>.pf-bu-navbar-item{color:#fff}.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-brand .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-brand .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-brand .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-brand>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-brand>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-brand>a.pf-bu-navbar-item:hover{background-color:#292929;color:#fff}.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-brand .pf-bu-navbar-link::after{border-color:#fff}.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-burger{color:#fff}@media screen and (min-width:1024px){.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-end .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-end>.pf-bu-navbar-item,.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-start .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-start>.pf-bu-navbar-item{color:#fff}.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-end .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-end .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-end .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-end>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-end>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-end>a.pf-bu-navbar-item:hover,.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-start .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-start .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-start .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-start>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-start>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-start>a.pf-bu-navbar-item:hover{background-color:#292929;color:#fff}.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-end .pf-bu-navbar-link::after,.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-start .pf-bu-navbar-link::after{border-color:#fff}.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-item.pf-bu-has-dropdown.pf-bu-is-active .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-item.pf-bu-has-dropdown:focus .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-item.pf-bu-has-dropdown:hover .pf-bu-navbar-link{background-color:#292929;color:#fff}.pf-bu-navbar.pf-bu-is-dark .pf-bu-navbar-dropdown a.pf-bu-navbar-item.pf-bu-is-active{background-color:#363636;color:#fff}}.pf-bu-navbar.pf-bu-is-primary{background-color:#00d1b2;color:#fff}.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-brand .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-brand>.pf-bu-navbar-item{color:#fff}.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-brand .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-brand .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-brand .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-brand>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-brand>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-brand>a.pf-bu-navbar-item:hover{background-color:#00b89c;color:#fff}.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-brand .pf-bu-navbar-link::after{border-color:#fff}.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-burger{color:#fff}@media screen and (min-width:1024px){.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-end .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-end>.pf-bu-navbar-item,.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-start .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-start>.pf-bu-navbar-item{color:#fff}.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-end .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-end .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-end .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-end>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-end>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-end>a.pf-bu-navbar-item:hover,.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-start .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-start .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-start .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-start>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-start>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-start>a.pf-bu-navbar-item:hover{background-color:#00b89c;color:#fff}.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-end .pf-bu-navbar-link::after,.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-start .pf-bu-navbar-link::after{border-color:#fff}.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-item.pf-bu-has-dropdown.pf-bu-is-active .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-item.pf-bu-has-dropdown:focus .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-item.pf-bu-has-dropdown:hover .pf-bu-navbar-link{background-color:#00b89c;color:#fff}.pf-bu-navbar.pf-bu-is-primary .pf-bu-navbar-dropdown a.pf-bu-navbar-item.pf-bu-is-active{background-color:#00d1b2;color:#fff}}.pf-bu-navbar.pf-bu-is-link{background-color:#3273dc;color:#fff}.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-brand .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-brand>.pf-bu-navbar-item{color:#fff}.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-brand .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-brand .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-brand .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-brand>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-brand>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-brand>a.pf-bu-navbar-item:hover{background-color:#2366d1;color:#fff}.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-brand .pf-bu-navbar-link::after{border-color:#fff}.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-burger{color:#fff}@media screen and (min-width:1024px){.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-end .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-end>.pf-bu-navbar-item,.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-start .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-start>.pf-bu-navbar-item{color:#fff}.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-end .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-end .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-end .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-end>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-end>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-end>a.pf-bu-navbar-item:hover,.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-start .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-start .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-start .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-start>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-start>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-start>a.pf-bu-navbar-item:hover{background-color:#2366d1;color:#fff}.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-end .pf-bu-navbar-link::after,.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-start .pf-bu-navbar-link::after{border-color:#fff}.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-item.pf-bu-has-dropdown.pf-bu-is-active .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-item.pf-bu-has-dropdown:focus .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-item.pf-bu-has-dropdown:hover .pf-bu-navbar-link{background-color:#2366d1;color:#fff}.pf-bu-navbar.pf-bu-is-link .pf-bu-navbar-dropdown a.pf-bu-navbar-item.pf-bu-is-active{background-color:#3273dc;color:#fff}}.pf-bu-navbar.pf-bu-is-info{background-color:#3298dc;color:#fff}.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-brand .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-brand>.pf-bu-navbar-item{color:#fff}.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-brand .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-brand .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-brand .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-brand>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-brand>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-brand>a.pf-bu-navbar-item:hover{background-color:#238cd1;color:#fff}.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-brand .pf-bu-navbar-link::after{border-color:#fff}.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-burger{color:#fff}@media screen and (min-width:1024px){.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-end .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-end>.pf-bu-navbar-item,.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-start .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-start>.pf-bu-navbar-item{color:#fff}.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-end .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-end .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-end .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-end>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-end>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-end>a.pf-bu-navbar-item:hover,.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-start .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-start .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-start .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-start>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-start>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-start>a.pf-bu-navbar-item:hover{background-color:#238cd1;color:#fff}.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-end .pf-bu-navbar-link::after,.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-start .pf-bu-navbar-link::after{border-color:#fff}.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-item.pf-bu-has-dropdown.pf-bu-is-active .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-item.pf-bu-has-dropdown:focus .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-item.pf-bu-has-dropdown:hover .pf-bu-navbar-link{background-color:#238cd1;color:#fff}.pf-bu-navbar.pf-bu-is-info .pf-bu-navbar-dropdown a.pf-bu-navbar-item.pf-bu-is-active{background-color:#3298dc;color:#fff}}.pf-bu-navbar.pf-bu-is-success{background-color:#48c774;color:#fff}.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-brand .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-brand>.pf-bu-navbar-item{color:#fff}.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-brand .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-brand .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-brand .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-brand>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-brand>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-brand>a.pf-bu-navbar-item:hover{background-color:#3abb67;color:#fff}.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-brand .pf-bu-navbar-link::after{border-color:#fff}.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-burger{color:#fff}@media screen and (min-width:1024px){.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-end .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-end>.pf-bu-navbar-item,.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-start .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-start>.pf-bu-navbar-item{color:#fff}.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-end .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-end .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-end .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-end>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-end>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-end>a.pf-bu-navbar-item:hover,.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-start .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-start .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-start .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-start>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-start>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-start>a.pf-bu-navbar-item:hover{background-color:#3abb67;color:#fff}.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-end .pf-bu-navbar-link::after,.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-start .pf-bu-navbar-link::after{border-color:#fff}.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-item.pf-bu-has-dropdown.pf-bu-is-active .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-item.pf-bu-has-dropdown:focus .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-item.pf-bu-has-dropdown:hover .pf-bu-navbar-link{background-color:#3abb67;color:#fff}.pf-bu-navbar.pf-bu-is-success .pf-bu-navbar-dropdown a.pf-bu-navbar-item.pf-bu-is-active{background-color:#48c774;color:#fff}}.pf-bu-navbar.pf-bu-is-warning{background-color:#ffdd57;color:rgba(0,0,0,.7)}.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-brand .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-brand>.pf-bu-navbar-item{color:rgba(0,0,0,.7)}.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-brand .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-brand .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-brand .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-brand>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-brand>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-brand>a.pf-bu-navbar-item:hover{background-color:#ffd83d;color:rgba(0,0,0,.7)}.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-brand .pf-bu-navbar-link::after{border-color:rgba(0,0,0,.7)}.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-burger{color:rgba(0,0,0,.7)}@media screen and (min-width:1024px){.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-end .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-end>.pf-bu-navbar-item,.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-start .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-start>.pf-bu-navbar-item{color:rgba(0,0,0,.7)}.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-end .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-end .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-end .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-end>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-end>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-end>a.pf-bu-navbar-item:hover,.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-start .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-start .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-start .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-start>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-start>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-start>a.pf-bu-navbar-item:hover{background-color:#ffd83d;color:rgba(0,0,0,.7)}.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-end .pf-bu-navbar-link::after,.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-start .pf-bu-navbar-link::after{border-color:rgba(0,0,0,.7)}.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-item.pf-bu-has-dropdown.pf-bu-is-active .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-item.pf-bu-has-dropdown:focus .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-item.pf-bu-has-dropdown:hover .pf-bu-navbar-link{background-color:#ffd83d;color:rgba(0,0,0,.7)}.pf-bu-navbar.pf-bu-is-warning .pf-bu-navbar-dropdown a.pf-bu-navbar-item.pf-bu-is-active{background-color:#ffdd57;color:rgba(0,0,0,.7)}}.pf-bu-navbar.pf-bu-is-danger{background-color:#f14668;color:#fff}.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-brand .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-brand>.pf-bu-navbar-item{color:#fff}.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-brand .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-brand .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-brand .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-brand>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-brand>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-brand>a.pf-bu-navbar-item:hover{background-color:#ef2e55;color:#fff}.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-brand .pf-bu-navbar-link::after{border-color:#fff}.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-burger{color:#fff}@media screen and (min-width:1024px){.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-end .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-end>.pf-bu-navbar-item,.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-start .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-start>.pf-bu-navbar-item{color:#fff}.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-end .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-end .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-end .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-end>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-end>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-end>a.pf-bu-navbar-item:hover,.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-start .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-start .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-start .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-start>a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-start>a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-start>a.pf-bu-navbar-item:hover{background-color:#ef2e55;color:#fff}.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-end .pf-bu-navbar-link::after,.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-start .pf-bu-navbar-link::after{border-color:#fff}.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-item.pf-bu-has-dropdown.pf-bu-is-active .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-item.pf-bu-has-dropdown:focus .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-item.pf-bu-has-dropdown:hover .pf-bu-navbar-link{background-color:#ef2e55;color:#fff}.pf-bu-navbar.pf-bu-is-danger .pf-bu-navbar-dropdown a.pf-bu-navbar-item.pf-bu-is-active{background-color:#f14668;color:#fff}}.pf-bu-navbar>.pf-bu-container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.pf-bu-navbar.pf-bu-has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.pf-bu-navbar.pf-bu-is-fixed-bottom,.pf-bu-navbar.pf-bu-is-fixed-top{left:0;position:fixed;right:0;z-index:30}.pf-bu-navbar.pf-bu-is-fixed-bottom{bottom:0}.pf-bu-navbar.pf-bu-is-fixed-bottom.pf-bu-has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.pf-bu-navbar.pf-bu-is-fixed-top{top:0}body.pf-bu-has-navbar-fixed-top,html.pf-bu-has-navbar-fixed-top{padding-top:3.25rem}body.pf-bu-has-navbar-fixed-bottom,html.pf-bu-has-navbar-fixed-bottom{padding-bottom:3.25rem}.pf-bu-navbar-brand,.pf-bu-navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.pf-bu-navbar-brand a.pf-bu-navbar-item:focus,.pf-bu-navbar-brand a.pf-bu-navbar-item:hover{background-color:transparent}.pf-bu-navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.pf-bu-navbar-burger{color:#4a4a4a;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.pf-bu-navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color,opacity,transform;transition-timing-function:ease-out;width:16px}.pf-bu-navbar-burger span:nth-child(1){top:calc(50% - 6px)}.pf-bu-navbar-burger span:nth-child(2){top:calc(50% - 1px)}.pf-bu-navbar-burger span:nth-child(3){top:calc(50% + 4px)}.pf-bu-navbar-burger:hover{background-color:rgba(0,0,0,.05)}.pf-bu-navbar-burger.pf-bu-is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.pf-bu-navbar-burger.pf-bu-is-active span:nth-child(2){opacity:0}.pf-bu-navbar-burger.pf-bu-is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.pf-bu-navbar-menu{display:none}.pf-bu-navbar-item,.pf-bu-navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:.5rem .75rem;position:relative}.pf-bu-navbar-item .pf-bu-icon:only-child,.pf-bu-navbar-link .pf-bu-icon:only-child{margin-left:-.25rem;margin-right:-.25rem}.pf-bu-navbar-link,a.pf-bu-navbar-item{cursor:pointer}.pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar-link:focus,.pf-bu-navbar-link:focus-within,.pf-bu-navbar-link:hover,a.pf-bu-navbar-item.pf-bu-is-active,a.pf-bu-navbar-item:focus,a.pf-bu-navbar-item:focus-within,a.pf-bu-navbar-item:hover{background-color:#fafafa;color:#3273dc}.pf-bu-navbar-item{flex-grow:0;flex-shrink:0}.pf-bu-navbar-item img{max-height:1.75rem}.pf-bu-navbar-item.pf-bu-has-dropdown{padding:0}.pf-bu-navbar-item.pf-bu-is-expanded{flex-grow:1;flex-shrink:1}.pf-bu-navbar-item.pf-bu-is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(.5rem - 1px)}.pf-bu-navbar-item.pf-bu-is-tab:focus,.pf-bu-navbar-item.pf-bu-is-tab:hover{background-color:transparent;border-bottom-color:#3273dc}.pf-bu-navbar-item.pf-bu-is-tab.pf-bu-is-active{background-color:transparent;border-bottom-color:#3273dc;border-bottom-style:solid;border-bottom-width:3px;color:#3273dc;padding-bottom:calc(.5rem - 3px)}.pf-bu-navbar-content{flex-grow:1;flex-shrink:1}.pf-bu-navbar-link:not(.pf-bu-is-arrowless){padding-right:2.5em}.pf-bu-navbar-link:not(.pf-bu-is-arrowless)::after{border-color:#3273dc;margin-top:-.375em;right:1.125em}.pf-bu-navbar-dropdown{font-size:.875rem;padding-bottom:.5rem;padding-top:.5rem}.pf-bu-navbar-dropdown .pf-bu-navbar-item{padding-left:1.5rem;padding-right:1.5rem}.pf-bu-navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:.5rem 0}@media screen and (max-width:1023px){.pf-bu-navbar>.pf-bu-container{display:block}.pf-bu-navbar-brand .pf-bu-navbar-item,.pf-bu-navbar-tabs .pf-bu-navbar-item{align-items:center;display:flex}.pf-bu-navbar-link::after{display:none}.pf-bu-navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,.1);padding:.5rem 0}.pf-bu-navbar-menu.pf-bu-is-active{display:block}.pf-bu-navbar.pf-bu-is-fixed-bottom-touch,.pf-bu-navbar.pf-bu-is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.pf-bu-navbar.pf-bu-is-fixed-bottom-touch{bottom:0}.pf-bu-navbar.pf-bu-is-fixed-bottom-touch.pf-bu-has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,.1)}.pf-bu-navbar.pf-bu-is-fixed-top-touch{top:0}.pf-bu-navbar.pf-bu-is-fixed-top .pf-bu-navbar-menu,.pf-bu-navbar.pf-bu-is-fixed-top-touch .pf-bu-navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}body.pf-bu-has-navbar-fixed-top-touch,html.pf-bu-has-navbar-fixed-top-touch{padding-top:3.25rem}body.pf-bu-has-navbar-fixed-bottom-touch,html.pf-bu-has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width:1024px){.pf-bu-navbar,.pf-bu-navbar-end,.pf-bu-navbar-menu,.pf-bu-navbar-start{align-items:stretch;display:flex}.pf-bu-navbar{min-height:3.25rem}.pf-bu-navbar.pf-bu-is-spaced{padding:1rem 2rem}.pf-bu-navbar.pf-bu-is-spaced .pf-bu-navbar-end,.pf-bu-navbar.pf-bu-is-spaced .pf-bu-navbar-start{align-items:center}.pf-bu-navbar.pf-bu-is-spaced .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-spaced a.pf-bu-navbar-item{border-radius:4px}.pf-bu-navbar.pf-bu-is-transparent .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-transparent .pf-bu-navbar-link:focus,.pf-bu-navbar.pf-bu-is-transparent .pf-bu-navbar-link:hover,.pf-bu-navbar.pf-bu-is-transparent a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-navbar.pf-bu-is-transparent a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-transparent a.pf-bu-navbar-item:hover{background-color:transparent!important}.pf-bu-navbar.pf-bu-is-transparent .pf-bu-navbar-item.pf-bu-has-dropdown.pf-bu-is-active .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-transparent .pf-bu-navbar-item.pf-bu-has-dropdown.pf-bu-is-hoverable:focus .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-transparent .pf-bu-navbar-item.pf-bu-has-dropdown.pf-bu-is-hoverable:focus-within .pf-bu-navbar-link,.pf-bu-navbar.pf-bu-is-transparent .pf-bu-navbar-item.pf-bu-has-dropdown.pf-bu-is-hoverable:hover .pf-bu-navbar-link{background-color:transparent!important}.pf-bu-navbar.pf-bu-is-transparent .pf-bu-navbar-dropdown a.pf-bu-navbar-item:focus,.pf-bu-navbar.pf-bu-is-transparent .pf-bu-navbar-dropdown a.pf-bu-navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.pf-bu-navbar.pf-bu-is-transparent .pf-bu-navbar-dropdown a.pf-bu-navbar-item.pf-bu-is-active{background-color:#f5f5f5;color:#3273dc}.pf-bu-navbar-burger{display:none}.pf-bu-navbar-item,.pf-bu-navbar-link{align-items:center;display:flex}.pf-bu-navbar-item.pf-bu-has-dropdown{align-items:stretch}.pf-bu-navbar-item.pf-bu-has-dropdown-up .pf-bu-navbar-link::after{transform:rotate(135deg) translate(.25em,-.25em)}.pf-bu-navbar-item.pf-bu-has-dropdown-up .pf-bu-navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,.1);top:auto}.pf-bu-navbar-item.pf-bu-is-active .pf-bu-navbar-dropdown,.pf-bu-navbar-item.pf-bu-is-hoverable:focus .pf-bu-navbar-dropdown,.pf-bu-navbar-item.pf-bu-is-hoverable:focus-within .pf-bu-navbar-dropdown,.pf-bu-navbar-item.pf-bu-is-hoverable:hover .pf-bu-navbar-dropdown{display:block}.pf-bu-navbar-item.pf-bu-is-active .pf-bu-navbar-dropdown.pf-bu-is-boxed,.pf-bu-navbar-item.pf-bu-is-hoverable:focus .pf-bu-navbar-dropdown.pf-bu-is-boxed,.pf-bu-navbar-item.pf-bu-is-hoverable:focus-within .pf-bu-navbar-dropdown.pf-bu-is-boxed,.pf-bu-navbar-item.pf-bu-is-hoverable:hover .pf-bu-navbar-dropdown.pf-bu-is-boxed,.pf-bu-navbar.pf-bu-is-spaced .pf-bu-navbar-item.pf-bu-is-active .pf-bu-navbar-dropdown,.pf-bu-navbar.pf-bu-is-spaced .pf-bu-navbar-item.pf-bu-is-hoverable:focus .pf-bu-navbar-dropdown,.pf-bu-navbar.pf-bu-is-spaced .pf-bu-navbar-item.pf-bu-is-hoverable:focus-within .pf-bu-navbar-dropdown,.pf-bu-navbar.pf-bu-is-spaced .pf-bu-navbar-item.pf-bu-is-hoverable:hover .pf-bu-navbar-dropdown{opacity:1;pointer-events:auto;transform:translateY(0)}.pf-bu-navbar-menu{flex-grow:1;flex-shrink:0}.pf-bu-navbar-start{justify-content:flex-start;margin-right:auto}.pf-bu-navbar-end{justify-content:flex-end;margin-left:auto}.pf-bu-navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,.1);display:none;font-size:.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.pf-bu-navbar-dropdown .pf-bu-navbar-item{padding:.375rem 1rem;white-space:nowrap}.pf-bu-navbar-dropdown a.pf-bu-navbar-item{padding-right:3rem}.pf-bu-navbar-dropdown a.pf-bu-navbar-item:focus,.pf-bu-navbar-dropdown a.pf-bu-navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.pf-bu-navbar-dropdown a.pf-bu-navbar-item.pf-bu-is-active{background-color:#f5f5f5;color:#3273dc}.pf-bu-navbar-dropdown.pf-bu-is-boxed,.pf-bu-navbar.pf-bu-is-spaced .pf-bu-navbar-dropdown{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity,transform}.pf-bu-navbar-dropdown.pf-bu-is-right{left:auto;right:0}.pf-bu-navbar-divider{display:block}.pf-bu-container>.pf-bu-navbar .pf-bu-navbar-brand,.pf-bu-navbar>.pf-bu-container .pf-bu-navbar-brand{margin-left:-.75rem}.pf-bu-container>.pf-bu-navbar .pf-bu-navbar-menu,.pf-bu-navbar>.pf-bu-container .pf-bu-navbar-menu{margin-right:-.75rem}.pf-bu-navbar.pf-bu-is-fixed-bottom-desktop,.pf-bu-navbar.pf-bu-is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.pf-bu-navbar.pf-bu-is-fixed-bottom-desktop{bottom:0}.pf-bu-navbar.pf-bu-is-fixed-bottom-desktop.pf-bu-has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,.1)}.pf-bu-navbar.pf-bu-is-fixed-top-desktop{top:0}body.pf-bu-has-navbar-fixed-top-desktop,html.pf-bu-has-navbar-fixed-top-desktop{padding-top:3.25rem}body.pf-bu-has-navbar-fixed-bottom-desktop,html.pf-bu-has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}body.pf-bu-has-spaced-navbar-fixed-top,html.pf-bu-has-spaced-navbar-fixed-top{padding-top:5.25rem}body.pf-bu-has-spaced-navbar-fixed-bottom,html.pf-bu-has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}.pf-bu-navbar-link.pf-bu-is-active,a.pf-bu-navbar-item.pf-bu-is-active{color:#0a0a0a}.pf-bu-navbar-link.pf-bu-is-active:not(:focus):not(:hover),a.pf-bu-navbar-item.pf-bu-is-active:not(:focus):not(:hover){background-color:transparent}.pf-bu-navbar-item.pf-bu-has-dropdown.pf-bu-is-active .pf-bu-navbar-link,.pf-bu-navbar-item.pf-bu-has-dropdown:focus .pf-bu-navbar-link,.pf-bu-navbar-item.pf-bu-has-dropdown:hover .pf-bu-navbar-link{background-color:#fafafa}}.pf-bu-hero.pf-bu-is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pf-bu-pagination{font-size:1rem;margin:-.25rem}.pf-bu-pagination.pf-bu-is-small{font-size:.75rem}.pf-bu-pagination.pf-bu-is-medium{font-size:1.25rem}.pf-bu-pagination.pf-bu-is-large{font-size:1.5rem}.pf-bu-pagination.pf-bu-is-rounded .pf-bu-pagination-next,.pf-bu-pagination.pf-bu-is-rounded .pf-bu-pagination-previous{padding-left:1em;padding-right:1em;border-radius:290486px}.pf-bu-pagination.pf-bu-is-rounded .pf-bu-pagination-link{border-radius:290486px}.pf-bu-pagination,.pf-bu-pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pf-bu-pagination-ellipsis,.pf-bu-pagination-link,.pf-bu-pagination-next,.pf-bu-pagination-previous{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pf-bu-pagination-link,.pf-bu-pagination-next,.pf-bu-pagination-previous{border-color:#dbdbdb;color:#363636;min-width:2.5em}.pf-bu-pagination-link:hover,.pf-bu-pagination-next:hover,.pf-bu-pagination-previous:hover{border-color:#b5b5b5;color:#363636}.pf-bu-pagination-link:focus,.pf-bu-pagination-next:focus,.pf-bu-pagination-previous:focus{border-color:#3273dc}.pf-bu-pagination-link:active,.pf-bu-pagination-next:active,.pf-bu-pagination-previous:active{box-shadow:inset 0 1px 2px rgba(10,10,10,.2)}.pf-bu-pagination-link[disabled],.pf-bu-pagination-next[disabled],.pf-bu-pagination-previous[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#7a7a7a;opacity:.5}.pf-bu-pagination-next,.pf-bu-pagination-previous{padding-left:.75em;padding-right:.75em;white-space:nowrap}.pf-bu-pagination-link.pf-bu-is-current{background-color:#3273dc;border-color:#3273dc;color:#fff}.pf-bu-pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pf-bu-pagination-list{flex-wrap:wrap}@media screen and (max-width:768px){.pf-bu-pagination{flex-wrap:wrap}.pf-bu-pagination-next,.pf-bu-pagination-previous{flex-grow:1;flex-shrink:1}.pf-bu-pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width:769px),print{.pf-bu-pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pf-bu-pagination-previous{order:2}.pf-bu-pagination-next{order:3}.pf-bu-pagination{justify-content:space-between}.pf-bu-pagination.pf-bu-is-centered .pf-bu-pagination-previous{order:1}.pf-bu-pagination.pf-bu-is-centered .pf-bu-pagination-list{justify-content:center;order:2}.pf-bu-pagination.pf-bu-is-centered .pf-bu-pagination-next{order:3}.pf-bu-pagination.pf-bu-is-right .pf-bu-pagination-previous{order:1}.pf-bu-pagination.pf-bu-is-right .pf-bu-pagination-next{order:2}.pf-bu-pagination.pf-bu-is-right .pf-bu-pagination-list{justify-content:flex-end;order:3}}.pf-bu-panel{border-radius:6px;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);font-size:1rem}.pf-bu-panel:not(:last-child){margin-bottom:1.5rem}.pf-bu-panel.pf-bu-is-white .pf-bu-panel-heading{background-color:#fff;color:#0a0a0a}.pf-bu-panel.pf-bu-is-white .pf-bu-panel-tabs a.pf-bu-is-active{border-bottom-color:#fff}.pf-bu-panel.pf-bu-is-white .pf-bu-panel-block.pf-bu-is-active .pf-bu-panel-icon{color:#fff}.pf-bu-panel.pf-bu-is-black .pf-bu-panel-heading{background-color:#0a0a0a;color:#fff}.pf-bu-panel.pf-bu-is-black .pf-bu-panel-tabs a.pf-bu-is-active{border-bottom-color:#0a0a0a}.pf-bu-panel.pf-bu-is-black .pf-bu-panel-block.pf-bu-is-active .pf-bu-panel-icon{color:#0a0a0a}.pf-bu-panel.pf-bu-is-light .pf-bu-panel-heading{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.pf-bu-panel.pf-bu-is-light .pf-bu-panel-tabs a.pf-bu-is-active{border-bottom-color:#f5f5f5}.pf-bu-panel.pf-bu-is-light .pf-bu-panel-block.pf-bu-is-active .pf-bu-panel-icon{color:#f5f5f5}.pf-bu-panel.pf-bu-is-dark .pf-bu-panel-heading{background-color:#363636;color:#fff}.pf-bu-panel.pf-bu-is-dark .pf-bu-panel-tabs a.pf-bu-is-active{border-bottom-color:#363636}.pf-bu-panel.pf-bu-is-dark .pf-bu-panel-block.pf-bu-is-active .pf-bu-panel-icon{color:#363636}.pf-bu-panel.pf-bu-is-primary .pf-bu-panel-heading{background-color:#00d1b2;color:#fff}.pf-bu-panel.pf-bu-is-primary .pf-bu-panel-tabs a.pf-bu-is-active{border-bottom-color:#00d1b2}.pf-bu-panel.pf-bu-is-primary .pf-bu-panel-block.pf-bu-is-active .pf-bu-panel-icon{color:#00d1b2}.pf-bu-panel.pf-bu-is-link .pf-bu-panel-heading{background-color:#3273dc;color:#fff}.pf-bu-panel.pf-bu-is-link .pf-bu-panel-tabs a.pf-bu-is-active{border-bottom-color:#3273dc}.pf-bu-panel.pf-bu-is-link .pf-bu-panel-block.pf-bu-is-active .pf-bu-panel-icon{color:#3273dc}.pf-bu-panel.pf-bu-is-info .pf-bu-panel-heading{background-color:#3298dc;color:#fff}.pf-bu-panel.pf-bu-is-info .pf-bu-panel-tabs a.pf-bu-is-active{border-bottom-color:#3298dc}.pf-bu-panel.pf-bu-is-info .pf-bu-panel-block.pf-bu-is-active .pf-bu-panel-icon{color:#3298dc}.pf-bu-panel.pf-bu-is-success .pf-bu-panel-heading{background-color:#48c774;color:#fff}.pf-bu-panel.pf-bu-is-success .pf-bu-panel-tabs a.pf-bu-is-active{border-bottom-color:#48c774}.pf-bu-panel.pf-bu-is-success .pf-bu-panel-block.pf-bu-is-active .pf-bu-panel-icon{color:#48c774}.pf-bu-panel.pf-bu-is-warning .pf-bu-panel-heading{background-color:#ffdd57;color:rgba(0,0,0,.7)}.pf-bu-panel.pf-bu-is-warning .pf-bu-panel-tabs a.pf-bu-is-active{border-bottom-color:#ffdd57}.pf-bu-panel.pf-bu-is-warning .pf-bu-panel-block.pf-bu-is-active .pf-bu-panel-icon{color:#ffdd57}.pf-bu-panel.pf-bu-is-danger .pf-bu-panel-heading{background-color:#f14668;color:#fff}.pf-bu-panel.pf-bu-is-danger .pf-bu-panel-tabs a.pf-bu-is-active{border-bottom-color:#f14668}.pf-bu-panel.pf-bu-is-danger .pf-bu-panel-block.pf-bu-is-active .pf-bu-panel-icon{color:#f14668}.pf-bu-panel-block:not(:last-child),.pf-bu-panel-tabs:not(:last-child){border-bottom:1px solid #ededed}.pf-bu-panel-heading{background-color:#ededed;border-radius:6px 6px 0 0;color:#363636;font-size:1.25em;font-weight:700;line-height:1.25;padding:.75em 1em}.pf-bu-panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.pf-bu-panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:.5em}.pf-bu-panel-tabs a.pf-bu-is-active{border-bottom-color:#4a4a4a;color:#363636}.pf-bu-panel-list a{color:#4a4a4a}.pf-bu-panel-list a:hover{color:#3273dc}.pf-bu-panel-block{align-items:center;color:#363636;display:flex;justify-content:flex-start;padding:.5em .75em}.pf-bu-panel-block input[type=checkbox]{margin-right:.75em}.pf-bu-panel-block>.pf-bu-control{flex-grow:1;flex-shrink:1;width:100%}.pf-bu-panel-block.pf-bu-is-wrapped{flex-wrap:wrap}.pf-bu-panel-block.pf-bu-is-active{border-left-color:#3273dc;color:#363636}.pf-bu-panel-block.pf-bu-is-active .pf-bu-panel-icon{color:#3273dc}.pf-bu-panel-block:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px}a.pf-bu-panel-block,label.pf-bu-panel-block{cursor:pointer}a.pf-bu-panel-block:hover,label.pf-bu-panel-block:hover{background-color:#f5f5f5}.pf-bu-panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#7a7a7a;margin-right:.75em}.pf-bu-panel-icon .pf-bu-fa{font-size:inherit;line-height:inherit}.pf-bu-tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.pf-bu-tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#4a4a4a;display:flex;justify-content:center;margin-bottom:-1px;padding:.5em 1em;vertical-align:top}.pf-bu-tabs a:hover{border-bottom-color:#363636;color:#363636}.pf-bu-tabs li{display:block}.pf-bu-tabs li.pf-bu-is-active a{border-bottom-color:#3273dc;color:#3273dc}.pf-bu-tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.pf-bu-tabs ul.pf-bu-is-left{padding-right:.75em}.pf-bu-tabs ul.pf-bu-is-center{flex:none;justify-content:center;padding-left:.75em;padding-right:.75em}.pf-bu-tabs ul.pf-bu-is-right{justify-content:flex-end;padding-left:.75em}.pf-bu-tabs .pf-bu-icon:first-child{margin-right:.5em}.pf-bu-tabs .pf-bu-icon:last-child{margin-left:.5em}.pf-bu-tabs.pf-bu-is-centered ul{justify-content:center}.pf-bu-tabs.pf-bu-is-right ul{justify-content:flex-end}.pf-bu-tabs.pf-bu-is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.pf-bu-tabs.pf-bu-is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.pf-bu-tabs.pf-bu-is-boxed li.pf-bu-is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:transparent!important}.pf-bu-tabs.pf-bu-is-fullwidth li{flex-grow:1;flex-shrink:0}.pf-bu-tabs.pf-bu-is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.pf-bu-tabs.pf-bu-is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.pf-bu-tabs.pf-bu-is-toggle li+li{margin-left:-1px}.pf-bu-tabs.pf-bu-is-toggle li:first-child a{border-top-left-radius:4px;border-bottom-left-radius:4px}.pf-bu-tabs.pf-bu-is-toggle li:last-child a{border-top-right-radius:4px;border-bottom-right-radius:4px}.pf-bu-tabs.pf-bu-is-toggle li.pf-bu-is-active a{background-color:#3273dc;border-color:#3273dc;color:#fff;z-index:1}.pf-bu-tabs.pf-bu-is-toggle ul{border-bottom:none}.pf-bu-tabs.pf-bu-is-toggle.pf-bu-is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}.pf-bu-tabs.pf-bu-is-toggle.pf-bu-is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}.pf-bu-tabs.pf-bu-is-small{font-size:.75rem}.pf-bu-tabs.pf-bu-is-medium{font-size:1.25rem}.pf-bu-tabs.pf-bu-is-large{font-size:1.5rem}.pf-bu-column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-narrow{flex:none}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-full{flex:none;width:100%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-three-quarters{flex:none;width:75%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-two-thirds{flex:none;width:66.6666%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-half{flex:none;width:50%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-one-third{flex:none;width:33.3333%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-one-quarter{flex:none;width:25%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-one-fifth{flex:none;width:20%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-two-fifths{flex:none;width:40%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-three-fifths{flex:none;width:60%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-four-fifths{flex:none;width:80%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-offset-three-quarters{margin-left:75%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-offset-two-thirds{margin-left:66.6666%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-offset-half{margin-left:50%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-offset-one-third{margin-left:33.3333%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-offset-one-quarter{margin-left:25%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-offset-one-fifth{margin-left:20%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-offset-two-fifths{margin-left:40%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-offset-three-fifths{margin-left:60%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-offset-four-fifths{margin-left:80%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-0{flex:none;width:0%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-offset-0{margin-left:0}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-1{flex:none;width:8.33333%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-offset-1{margin-left:8.33333%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-2{flex:none;width:16.66667%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-offset-2{margin-left:16.66667%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-3{flex:none;width:25%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-offset-3{margin-left:25%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-4{flex:none;width:33.33333%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-offset-4{margin-left:33.33333%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-5{flex:none;width:41.66667%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-offset-5{margin-left:41.66667%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-6{flex:none;width:50%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-offset-6{margin-left:50%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-7{flex:none;width:58.33333%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-offset-7{margin-left:58.33333%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-8{flex:none;width:66.66667%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-offset-8{margin-left:66.66667%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-9{flex:none;width:75%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-offset-9{margin-left:75%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-10{flex:none;width:83.33333%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-offset-10{margin-left:83.33333%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-11{flex:none;width:91.66667%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-offset-11{margin-left:91.66667%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-12{flex:none;width:100%}.pf-bu-columns.pf-bu-is-mobile>.pf-bu-column.pf-bu-is-offset-12{margin-left:100%}@media screen and (max-width:768px){.pf-bu-column.pf-bu-is-narrow-mobile{flex:none}.pf-bu-column.pf-bu-is-full-mobile{flex:none;width:100%}.pf-bu-column.pf-bu-is-three-quarters-mobile{flex:none;width:75%}.pf-bu-column.pf-bu-is-two-thirds-mobile{flex:none;width:66.6666%}.pf-bu-column.pf-bu-is-half-mobile{flex:none;width:50%}.pf-bu-column.pf-bu-is-one-third-mobile{flex:none;width:33.3333%}.pf-bu-column.pf-bu-is-one-quarter-mobile{flex:none;width:25%}.pf-bu-column.pf-bu-is-one-fifth-mobile{flex:none;width:20%}.pf-bu-column.pf-bu-is-two-fifths-mobile{flex:none;width:40%}.pf-bu-column.pf-bu-is-three-fifths-mobile{flex:none;width:60%}.pf-bu-column.pf-bu-is-four-fifths-mobile{flex:none;width:80%}.pf-bu-column.pf-bu-is-offset-three-quarters-mobile{margin-left:75%}.pf-bu-column.pf-bu-is-offset-two-thirds-mobile{margin-left:66.6666%}.pf-bu-column.pf-bu-is-offset-half-mobile{margin-left:50%}.pf-bu-column.pf-bu-is-offset-one-third-mobile{margin-left:33.3333%}.pf-bu-column.pf-bu-is-offset-one-quarter-mobile{margin-left:25%}.pf-bu-column.pf-bu-is-offset-one-fifth-mobile{margin-left:20%}.pf-bu-column.pf-bu-is-offset-two-fifths-mobile{margin-left:40%}.pf-bu-column.pf-bu-is-offset-three-fifths-mobile{margin-left:60%}.pf-bu-column.pf-bu-is-offset-four-fifths-mobile{margin-left:80%}.pf-bu-column.pf-bu-is-0-mobile{flex:none;width:0%}.pf-bu-column.pf-bu-is-offset-0-mobile{margin-left:0}.pf-bu-column.pf-bu-is-1-mobile{flex:none;width:8.33333%}.pf-bu-column.pf-bu-is-offset-1-mobile{margin-left:8.33333%}.pf-bu-column.pf-bu-is-2-mobile{flex:none;width:16.66667%}.pf-bu-column.pf-bu-is-offset-2-mobile{margin-left:16.66667%}.pf-bu-column.pf-bu-is-3-mobile{flex:none;width:25%}.pf-bu-column.pf-bu-is-offset-3-mobile{margin-left:25%}.pf-bu-column.pf-bu-is-4-mobile{flex:none;width:33.33333%}.pf-bu-column.pf-bu-is-offset-4-mobile{margin-left:33.33333%}.pf-bu-column.pf-bu-is-5-mobile{flex:none;width:41.66667%}.pf-bu-column.pf-bu-is-offset-5-mobile{margin-left:41.66667%}.pf-bu-column.pf-bu-is-6-mobile{flex:none;width:50%}.pf-bu-column.pf-bu-is-offset-6-mobile{margin-left:50%}.pf-bu-column.pf-bu-is-7-mobile{flex:none;width:58.33333%}.pf-bu-column.pf-bu-is-offset-7-mobile{margin-left:58.33333%}.pf-bu-column.pf-bu-is-8-mobile{flex:none;width:66.66667%}.pf-bu-column.pf-bu-is-offset-8-mobile{margin-left:66.66667%}.pf-bu-column.pf-bu-is-9-mobile{flex:none;width:75%}.pf-bu-column.pf-bu-is-offset-9-mobile{margin-left:75%}.pf-bu-column.pf-bu-is-10-mobile{flex:none;width:83.33333%}.pf-bu-column.pf-bu-is-offset-10-mobile{margin-left:83.33333%}.pf-bu-column.pf-bu-is-11-mobile{flex:none;width:91.66667%}.pf-bu-column.pf-bu-is-offset-11-mobile{margin-left:91.66667%}.pf-bu-column.pf-bu-is-12-mobile{flex:none;width:100%}.pf-bu-column.pf-bu-is-offset-12-mobile{margin-left:100%}}@media screen and (min-width:769px),print{.pf-bu-column.pf-bu-is-narrow,.pf-bu-column.pf-bu-is-narrow-tablet{flex:none}.pf-bu-column.pf-bu-is-full,.pf-bu-column.pf-bu-is-full-tablet{flex:none;width:100%}.pf-bu-column.pf-bu-is-three-quarters,.pf-bu-column.pf-bu-is-three-quarters-tablet{flex:none;width:75%}.pf-bu-column.pf-bu-is-two-thirds,.pf-bu-column.pf-bu-is-two-thirds-tablet{flex:none;width:66.6666%}.pf-bu-column.pf-bu-is-half,.pf-bu-column.pf-bu-is-half-tablet{flex:none;width:50%}.pf-bu-column.pf-bu-is-one-third,.pf-bu-column.pf-bu-is-one-third-tablet{flex:none;width:33.3333%}.pf-bu-column.pf-bu-is-one-quarter,.pf-bu-column.pf-bu-is-one-quarter-tablet{flex:none;width:25%}.pf-bu-column.pf-bu-is-one-fifth,.pf-bu-column.pf-bu-is-one-fifth-tablet{flex:none;width:20%}.pf-bu-column.pf-bu-is-two-fifths,.pf-bu-column.pf-bu-is-two-fifths-tablet{flex:none;width:40%}.pf-bu-column.pf-bu-is-three-fifths,.pf-bu-column.pf-bu-is-three-fifths-tablet{flex:none;width:60%}.pf-bu-column.pf-bu-is-four-fifths,.pf-bu-column.pf-bu-is-four-fifths-tablet{flex:none;width:80%}.pf-bu-column.pf-bu-is-offset-three-quarters,.pf-bu-column.pf-bu-is-offset-three-quarters-tablet{margin-left:75%}.pf-bu-column.pf-bu-is-offset-two-thirds,.pf-bu-column.pf-bu-is-offset-two-thirds-tablet{margin-left:66.6666%}.pf-bu-column.pf-bu-is-offset-half,.pf-bu-column.pf-bu-is-offset-half-tablet{margin-left:50%}.pf-bu-column.pf-bu-is-offset-one-third,.pf-bu-column.pf-bu-is-offset-one-third-tablet{margin-left:33.3333%}.pf-bu-column.pf-bu-is-offset-one-quarter,.pf-bu-column.pf-bu-is-offset-one-quarter-tablet{margin-left:25%}.pf-bu-column.pf-bu-is-offset-one-fifth,.pf-bu-column.pf-bu-is-offset-one-fifth-tablet{margin-left:20%}.pf-bu-column.pf-bu-is-offset-two-fifths,.pf-bu-column.pf-bu-is-offset-two-fifths-tablet{margin-left:40%}.pf-bu-column.pf-bu-is-offset-three-fifths,.pf-bu-column.pf-bu-is-offset-three-fifths-tablet{margin-left:60%}.pf-bu-column.pf-bu-is-offset-four-fifths,.pf-bu-column.pf-bu-is-offset-four-fifths-tablet{margin-left:80%}.pf-bu-column.pf-bu-is-0,.pf-bu-column.pf-bu-is-0-tablet{flex:none;width:0%}.pf-bu-column.pf-bu-is-offset-0,.pf-bu-column.pf-bu-is-offset-0-tablet{margin-left:0}.pf-bu-column.pf-bu-is-1,.pf-bu-column.pf-bu-is-1-tablet{flex:none;width:8.33333%}.pf-bu-column.pf-bu-is-offset-1,.pf-bu-column.pf-bu-is-offset-1-tablet{margin-left:8.33333%}.pf-bu-column.pf-bu-is-2,.pf-bu-column.pf-bu-is-2-tablet{flex:none;width:16.66667%}.pf-bu-column.pf-bu-is-offset-2,.pf-bu-column.pf-bu-is-offset-2-tablet{margin-left:16.66667%}.pf-bu-column.pf-bu-is-3,.pf-bu-column.pf-bu-is-3-tablet{flex:none;width:25%}.pf-bu-column.pf-bu-is-offset-3,.pf-bu-column.pf-bu-is-offset-3-tablet{margin-left:25%}.pf-bu-column.pf-bu-is-4,.pf-bu-column.pf-bu-is-4-tablet{flex:none;width:33.33333%}.pf-bu-column.pf-bu-is-offset-4,.pf-bu-column.pf-bu-is-offset-4-tablet{margin-left:33.33333%}.pf-bu-column.pf-bu-is-5,.pf-bu-column.pf-bu-is-5-tablet{flex:none;width:41.66667%}.pf-bu-column.pf-bu-is-offset-5,.pf-bu-column.pf-bu-is-offset-5-tablet{margin-left:41.66667%}.pf-bu-column.pf-bu-is-6,.pf-bu-column.pf-bu-is-6-tablet{flex:none;width:50%}.pf-bu-column.pf-bu-is-offset-6,.pf-bu-column.pf-bu-is-offset-6-tablet{margin-left:50%}.pf-bu-column.pf-bu-is-7,.pf-bu-column.pf-bu-is-7-tablet{flex:none;width:58.33333%}.pf-bu-column.pf-bu-is-offset-7,.pf-bu-column.pf-bu-is-offset-7-tablet{margin-left:58.33333%}.pf-bu-column.pf-bu-is-8,.pf-bu-column.pf-bu-is-8-tablet{flex:none;width:66.66667%}.pf-bu-column.pf-bu-is-offset-8,.pf-bu-column.pf-bu-is-offset-8-tablet{margin-left:66.66667%}.pf-bu-column.pf-bu-is-9,.pf-bu-column.pf-bu-is-9-tablet{flex:none;width:75%}.pf-bu-column.pf-bu-is-offset-9,.pf-bu-column.pf-bu-is-offset-9-tablet{margin-left:75%}.pf-bu-column.pf-bu-is-10,.pf-bu-column.pf-bu-is-10-tablet{flex:none;width:83.33333%}.pf-bu-column.pf-bu-is-offset-10,.pf-bu-column.pf-bu-is-offset-10-tablet{margin-left:83.33333%}.pf-bu-column.pf-bu-is-11,.pf-bu-column.pf-bu-is-11-tablet{flex:none;width:91.66667%}.pf-bu-column.pf-bu-is-offset-11,.pf-bu-column.pf-bu-is-offset-11-tablet{margin-left:91.66667%}.pf-bu-column.pf-bu-is-12,.pf-bu-column.pf-bu-is-12-tablet{flex:none;width:100%}.pf-bu-column.pf-bu-is-offset-12,.pf-bu-column.pf-bu-is-offset-12-tablet{margin-left:100%}}@media screen and (max-width:1023px){.pf-bu-column.pf-bu-is-narrow-touch{flex:none}.pf-bu-column.pf-bu-is-full-touch{flex:none;width:100%}.pf-bu-column.pf-bu-is-three-quarters-touch{flex:none;width:75%}.pf-bu-column.pf-bu-is-two-thirds-touch{flex:none;width:66.6666%}.pf-bu-column.pf-bu-is-half-touch{flex:none;width:50%}.pf-bu-column.pf-bu-is-one-third-touch{flex:none;width:33.3333%}.pf-bu-column.pf-bu-is-one-quarter-touch{flex:none;width:25%}.pf-bu-column.pf-bu-is-one-fifth-touch{flex:none;width:20%}.pf-bu-column.pf-bu-is-two-fifths-touch{flex:none;width:40%}.pf-bu-column.pf-bu-is-three-fifths-touch{flex:none;width:60%}.pf-bu-column.pf-bu-is-four-fifths-touch{flex:none;width:80%}.pf-bu-column.pf-bu-is-offset-three-quarters-touch{margin-left:75%}.pf-bu-column.pf-bu-is-offset-two-thirds-touch{margin-left:66.6666%}.pf-bu-column.pf-bu-is-offset-half-touch{margin-left:50%}.pf-bu-column.pf-bu-is-offset-one-third-touch{margin-left:33.3333%}.pf-bu-column.pf-bu-is-offset-one-quarter-touch{margin-left:25%}.pf-bu-column.pf-bu-is-offset-one-fifth-touch{margin-left:20%}.pf-bu-column.pf-bu-is-offset-two-fifths-touch{margin-left:40%}.pf-bu-column.pf-bu-is-offset-three-fifths-touch{margin-left:60%}.pf-bu-column.pf-bu-is-offset-four-fifths-touch{margin-left:80%}.pf-bu-column.pf-bu-is-0-touch{flex:none;width:0%}.pf-bu-column.pf-bu-is-offset-0-touch{margin-left:0}.pf-bu-column.pf-bu-is-1-touch{flex:none;width:8.33333%}.pf-bu-column.pf-bu-is-offset-1-touch{margin-left:8.33333%}.pf-bu-column.pf-bu-is-2-touch{flex:none;width:16.66667%}.pf-bu-column.pf-bu-is-offset-2-touch{margin-left:16.66667%}.pf-bu-column.pf-bu-is-3-touch{flex:none;width:25%}.pf-bu-column.pf-bu-is-offset-3-touch{margin-left:25%}.pf-bu-column.pf-bu-is-4-touch{flex:none;width:33.33333%}.pf-bu-column.pf-bu-is-offset-4-touch{margin-left:33.33333%}.pf-bu-column.pf-bu-is-5-touch{flex:none;width:41.66667%}.pf-bu-column.pf-bu-is-offset-5-touch{margin-left:41.66667%}.pf-bu-column.pf-bu-is-6-touch{flex:none;width:50%}.pf-bu-column.pf-bu-is-offset-6-touch{margin-left:50%}.pf-bu-column.pf-bu-is-7-touch{flex:none;width:58.33333%}.pf-bu-column.pf-bu-is-offset-7-touch{margin-left:58.33333%}.pf-bu-column.pf-bu-is-8-touch{flex:none;width:66.66667%}.pf-bu-column.pf-bu-is-offset-8-touch{margin-left:66.66667%}.pf-bu-column.pf-bu-is-9-touch{flex:none;width:75%}.pf-bu-column.pf-bu-is-offset-9-touch{margin-left:75%}.pf-bu-column.pf-bu-is-10-touch{flex:none;width:83.33333%}.pf-bu-column.pf-bu-is-offset-10-touch{margin-left:83.33333%}.pf-bu-column.pf-bu-is-11-touch{flex:none;width:91.66667%}.pf-bu-column.pf-bu-is-offset-11-touch{margin-left:91.66667%}.pf-bu-column.pf-bu-is-12-touch{flex:none;width:100%}.pf-bu-column.pf-bu-is-offset-12-touch{margin-left:100%}}@media screen and (min-width:1024px){.pf-bu-column.pf-bu-is-narrow-desktop{flex:none}.pf-bu-column.pf-bu-is-full-desktop{flex:none;width:100%}.pf-bu-column.pf-bu-is-three-quarters-desktop{flex:none;width:75%}.pf-bu-column.pf-bu-is-two-thirds-desktop{flex:none;width:66.6666%}.pf-bu-column.pf-bu-is-half-desktop{flex:none;width:50%}.pf-bu-column.pf-bu-is-one-third-desktop{flex:none;width:33.3333%}.pf-bu-column.pf-bu-is-one-quarter-desktop{flex:none;width:25%}.pf-bu-column.pf-bu-is-one-fifth-desktop{flex:none;width:20%}.pf-bu-column.pf-bu-is-two-fifths-desktop{flex:none;width:40%}.pf-bu-column.pf-bu-is-three-fifths-desktop{flex:none;width:60%}.pf-bu-column.pf-bu-is-four-fifths-desktop{flex:none;width:80%}.pf-bu-column.pf-bu-is-offset-three-quarters-desktop{margin-left:75%}.pf-bu-column.pf-bu-is-offset-two-thirds-desktop{margin-left:66.6666%}.pf-bu-column.pf-bu-is-offset-half-desktop{margin-left:50%}.pf-bu-column.pf-bu-is-offset-one-third-desktop{margin-left:33.3333%}.pf-bu-column.pf-bu-is-offset-one-quarter-desktop{margin-left:25%}.pf-bu-column.pf-bu-is-offset-one-fifth-desktop{margin-left:20%}.pf-bu-column.pf-bu-is-offset-two-fifths-desktop{margin-left:40%}.pf-bu-column.pf-bu-is-offset-three-fifths-desktop{margin-left:60%}.pf-bu-column.pf-bu-is-offset-four-fifths-desktop{margin-left:80%}.pf-bu-column.pf-bu-is-0-desktop{flex:none;width:0%}.pf-bu-column.pf-bu-is-offset-0-desktop{margin-left:0}.pf-bu-column.pf-bu-is-1-desktop{flex:none;width:8.33333%}.pf-bu-column.pf-bu-is-offset-1-desktop{margin-left:8.33333%}.pf-bu-column.pf-bu-is-2-desktop{flex:none;width:16.66667%}.pf-bu-column.pf-bu-is-offset-2-desktop{margin-left:16.66667%}.pf-bu-column.pf-bu-is-3-desktop{flex:none;width:25%}.pf-bu-column.pf-bu-is-offset-3-desktop{margin-left:25%}.pf-bu-column.pf-bu-is-4-desktop{flex:none;width:33.33333%}.pf-bu-column.pf-bu-is-offset-4-desktop{margin-left:33.33333%}.pf-bu-column.pf-bu-is-5-desktop{flex:none;width:41.66667%}.pf-bu-column.pf-bu-is-offset-5-desktop{margin-left:41.66667%}.pf-bu-column.pf-bu-is-6-desktop{flex:none;width:50%}.pf-bu-column.pf-bu-is-offset-6-desktop{margin-left:50%}.pf-bu-column.pf-bu-is-7-desktop{flex:none;width:58.33333%}.pf-bu-column.pf-bu-is-offset-7-desktop{margin-left:58.33333%}.pf-bu-column.pf-bu-is-8-desktop{flex:none;width:66.66667%}.pf-bu-column.pf-bu-is-offset-8-desktop{margin-left:66.66667%}.pf-bu-column.pf-bu-is-9-desktop{flex:none;width:75%}.pf-bu-column.pf-bu-is-offset-9-desktop{margin-left:75%}.pf-bu-column.pf-bu-is-10-desktop{flex:none;width:83.33333%}.pf-bu-column.pf-bu-is-offset-10-desktop{margin-left:83.33333%}.pf-bu-column.pf-bu-is-11-desktop{flex:none;width:91.66667%}.pf-bu-column.pf-bu-is-offset-11-desktop{margin-left:91.66667%}.pf-bu-column.pf-bu-is-12-desktop{flex:none;width:100%}.pf-bu-column.pf-bu-is-offset-12-desktop{margin-left:100%}}@media screen and (min-width:1216px){.pf-bu-column.pf-bu-is-narrow-widescreen{flex:none}.pf-bu-column.pf-bu-is-full-widescreen{flex:none;width:100%}.pf-bu-column.pf-bu-is-three-quarters-widescreen{flex:none;width:75%}.pf-bu-column.pf-bu-is-two-thirds-widescreen{flex:none;width:66.6666%}.pf-bu-column.pf-bu-is-half-widescreen{flex:none;width:50%}.pf-bu-column.pf-bu-is-one-third-widescreen{flex:none;width:33.3333%}.pf-bu-column.pf-bu-is-one-quarter-widescreen{flex:none;width:25%}.pf-bu-column.pf-bu-is-one-fifth-widescreen{flex:none;width:20%}.pf-bu-column.pf-bu-is-two-fifths-widescreen{flex:none;width:40%}.pf-bu-column.pf-bu-is-three-fifths-widescreen{flex:none;width:60%}.pf-bu-column.pf-bu-is-four-fifths-widescreen{flex:none;width:80%}.pf-bu-column.pf-bu-is-offset-three-quarters-widescreen{margin-left:75%}.pf-bu-column.pf-bu-is-offset-two-thirds-widescreen{margin-left:66.6666%}.pf-bu-column.pf-bu-is-offset-half-widescreen{margin-left:50%}.pf-bu-column.pf-bu-is-offset-one-third-widescreen{margin-left:33.3333%}.pf-bu-column.pf-bu-is-offset-one-quarter-widescreen{margin-left:25%}.pf-bu-column.pf-bu-is-offset-one-fifth-widescreen{margin-left:20%}.pf-bu-column.pf-bu-is-offset-two-fifths-widescreen{margin-left:40%}.pf-bu-column.pf-bu-is-offset-three-fifths-widescreen{margin-left:60%}.pf-bu-column.pf-bu-is-offset-four-fifths-widescreen{margin-left:80%}.pf-bu-column.pf-bu-is-0-widescreen{flex:none;width:0%}.pf-bu-column.pf-bu-is-offset-0-widescreen{margin-left:0}.pf-bu-column.pf-bu-is-1-widescreen{flex:none;width:8.33333%}.pf-bu-column.pf-bu-is-offset-1-widescreen{margin-left:8.33333%}.pf-bu-column.pf-bu-is-2-widescreen{flex:none;width:16.66667%}.pf-bu-column.pf-bu-is-offset-2-widescreen{margin-left:16.66667%}.pf-bu-column.pf-bu-is-3-widescreen{flex:none;width:25%}.pf-bu-column.pf-bu-is-offset-3-widescreen{margin-left:25%}.pf-bu-column.pf-bu-is-4-widescreen{flex:none;width:33.33333%}.pf-bu-column.pf-bu-is-offset-4-widescreen{margin-left:33.33333%}.pf-bu-column.pf-bu-is-5-widescreen{flex:none;width:41.66667%}.pf-bu-column.pf-bu-is-offset-5-widescreen{margin-left:41.66667%}.pf-bu-column.pf-bu-is-6-widescreen{flex:none;width:50%}.pf-bu-column.pf-bu-is-offset-6-widescreen{margin-left:50%}.pf-bu-column.pf-bu-is-7-widescreen{flex:none;width:58.33333%}.pf-bu-column.pf-bu-is-offset-7-widescreen{margin-left:58.33333%}.pf-bu-column.pf-bu-is-8-widescreen{flex:none;width:66.66667%}.pf-bu-column.pf-bu-is-offset-8-widescreen{margin-left:66.66667%}.pf-bu-column.pf-bu-is-9-widescreen{flex:none;width:75%}.pf-bu-column.pf-bu-is-offset-9-widescreen{margin-left:75%}.pf-bu-column.pf-bu-is-10-widescreen{flex:none;width:83.33333%}.pf-bu-column.pf-bu-is-offset-10-widescreen{margin-left:83.33333%}.pf-bu-column.pf-bu-is-11-widescreen{flex:none;width:91.66667%}.pf-bu-column.pf-bu-is-offset-11-widescreen{margin-left:91.66667%}.pf-bu-column.pf-bu-is-12-widescreen{flex:none;width:100%}.pf-bu-column.pf-bu-is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width:1408px){.pf-bu-column.pf-bu-is-narrow-fullhd{flex:none}.pf-bu-column.pf-bu-is-full-fullhd{flex:none;width:100%}.pf-bu-column.pf-bu-is-three-quarters-fullhd{flex:none;width:75%}.pf-bu-column.pf-bu-is-two-thirds-fullhd{flex:none;width:66.6666%}.pf-bu-column.pf-bu-is-half-fullhd{flex:none;width:50%}.pf-bu-column.pf-bu-is-one-third-fullhd{flex:none;width:33.3333%}.pf-bu-column.pf-bu-is-one-quarter-fullhd{flex:none;width:25%}.pf-bu-column.pf-bu-is-one-fifth-fullhd{flex:none;width:20%}.pf-bu-column.pf-bu-is-two-fifths-fullhd{flex:none;width:40%}.pf-bu-column.pf-bu-is-three-fifths-fullhd{flex:none;width:60%}.pf-bu-column.pf-bu-is-four-fifths-fullhd{flex:none;width:80%}.pf-bu-column.pf-bu-is-offset-three-quarters-fullhd{margin-left:75%}.pf-bu-column.pf-bu-is-offset-two-thirds-fullhd{margin-left:66.6666%}.pf-bu-column.pf-bu-is-offset-half-fullhd{margin-left:50%}.pf-bu-column.pf-bu-is-offset-one-third-fullhd{margin-left:33.3333%}.pf-bu-column.pf-bu-is-offset-one-quarter-fullhd{margin-left:25%}.pf-bu-column.pf-bu-is-offset-one-fifth-fullhd{margin-left:20%}.pf-bu-column.pf-bu-is-offset-two-fifths-fullhd{margin-left:40%}.pf-bu-column.pf-bu-is-offset-three-fifths-fullhd{margin-left:60%}.pf-bu-column.pf-bu-is-offset-four-fifths-fullhd{margin-left:80%}.pf-bu-column.pf-bu-is-0-fullhd{flex:none;width:0%}.pf-bu-column.pf-bu-is-offset-0-fullhd{margin-left:0}.pf-bu-column.pf-bu-is-1-fullhd{flex:none;width:8.33333%}.pf-bu-column.pf-bu-is-offset-1-fullhd{margin-left:8.33333%}.pf-bu-column.pf-bu-is-2-fullhd{flex:none;width:16.66667%}.pf-bu-column.pf-bu-is-offset-2-fullhd{margin-left:16.66667%}.pf-bu-column.pf-bu-is-3-fullhd{flex:none;width:25%}.pf-bu-column.pf-bu-is-offset-3-fullhd{margin-left:25%}.pf-bu-column.pf-bu-is-4-fullhd{flex:none;width:33.33333%}.pf-bu-column.pf-bu-is-offset-4-fullhd{margin-left:33.33333%}.pf-bu-column.pf-bu-is-5-fullhd{flex:none;width:41.66667%}.pf-bu-column.pf-bu-is-offset-5-fullhd{margin-left:41.66667%}.pf-bu-column.pf-bu-is-6-fullhd{flex:none;width:50%}.pf-bu-column.pf-bu-is-offset-6-fullhd{margin-left:50%}.pf-bu-column.pf-bu-is-7-fullhd{flex:none;width:58.33333%}.pf-bu-column.pf-bu-is-offset-7-fullhd{margin-left:58.33333%}.pf-bu-column.pf-bu-is-8-fullhd{flex:none;width:66.66667%}.pf-bu-column.pf-bu-is-offset-8-fullhd{margin-left:66.66667%}.pf-bu-column.pf-bu-is-9-fullhd{flex:none;width:75%}.pf-bu-column.pf-bu-is-offset-9-fullhd{margin-left:75%}.pf-bu-column.pf-bu-is-10-fullhd{flex:none;width:83.33333%}.pf-bu-column.pf-bu-is-offset-10-fullhd{margin-left:83.33333%}.pf-bu-column.pf-bu-is-11-fullhd{flex:none;width:91.66667%}.pf-bu-column.pf-bu-is-offset-11-fullhd{margin-left:91.66667%}.pf-bu-column.pf-bu-is-12-fullhd{flex:none;width:100%}.pf-bu-column.pf-bu-is-offset-12-fullhd{margin-left:100%}}.pf-bu-columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.pf-bu-columns:last-child{margin-bottom:-.75rem}.pf-bu-columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.pf-bu-columns.pf-bu-is-centered{justify-content:center}.pf-bu-columns.pf-bu-is-gapless{margin-left:0;margin-right:0;margin-top:0}.pf-bu-columns.pf-bu-is-gapless>.pf-bu-column{margin:0;padding:0!important}.pf-bu-columns.pf-bu-is-gapless:not(:last-child){margin-bottom:1.5rem}.pf-bu-columns.pf-bu-is-gapless:last-child{margin-bottom:0}.pf-bu-columns.pf-bu-is-mobile{display:flex}.pf-bu-columns.pf-bu-is-multiline{flex-wrap:wrap}.pf-bu-columns.pf-bu-is-vcentered{align-items:center}@media screen and (min-width:769px),print{.pf-bu-columns:not(.pf-bu-is-desktop){display:flex}}@media screen and (min-width:1024px){.pf-bu-columns.pf-bu-is-desktop{display:flex}}.pf-bu-columns.pf-bu-is-variable{--columnGap:0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.pf-bu-columns.pf-bu-is-variable .pf-bu-column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.pf-bu-columns.pf-bu-is-variable.pf-bu-is-0{--columnGap:0rem}@media screen and (max-width:768px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-0-mobile{--columnGap:0rem}}@media screen and (min-width:769px),print{.pf-bu-columns.pf-bu-is-variable.pf-bu-is-0-tablet{--columnGap:0rem}}@media screen and (min-width:769px) and (max-width:1023px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-0-tablet-only{--columnGap:0rem}}@media screen and (max-width:1023px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-0-touch{--columnGap:0rem}}@media screen and (min-width:1024px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-0-desktop{--columnGap:0rem}}@media screen and (min-width:1024px) and (max-width:1215px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-0-desktop-only{--columnGap:0rem}}@media screen and (min-width:1216px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-0-widescreen{--columnGap:0rem}}@media screen and (min-width:1216px) and (max-width:1407px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-0-widescreen-only{--columnGap:0rem}}@media screen and (min-width:1408px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-0-fullhd{--columnGap:0rem}}.pf-bu-columns.pf-bu-is-variable.pf-bu-is-1{--columnGap:0.25rem}@media screen and (max-width:768px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-1-mobile{--columnGap:0.25rem}}@media screen and (min-width:769px),print{.pf-bu-columns.pf-bu-is-variable.pf-bu-is-1-tablet{--columnGap:0.25rem}}@media screen and (min-width:769px) and (max-width:1023px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-1-tablet-only{--columnGap:0.25rem}}@media screen and (max-width:1023px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-1-touch{--columnGap:0.25rem}}@media screen and (min-width:1024px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-1-desktop{--columnGap:0.25rem}}@media screen and (min-width:1024px) and (max-width:1215px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-1-desktop-only{--columnGap:0.25rem}}@media screen and (min-width:1216px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-1-widescreen{--columnGap:0.25rem}}@media screen and (min-width:1216px) and (max-width:1407px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-1-widescreen-only{--columnGap:0.25rem}}@media screen and (min-width:1408px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-1-fullhd{--columnGap:0.25rem}}.pf-bu-columns.pf-bu-is-variable.pf-bu-is-2{--columnGap:0.5rem}@media screen and (max-width:768px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-2-mobile{--columnGap:0.5rem}}@media screen and (min-width:769px),print{.pf-bu-columns.pf-bu-is-variable.pf-bu-is-2-tablet{--columnGap:0.5rem}}@media screen and (min-width:769px) and (max-width:1023px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-2-tablet-only{--columnGap:0.5rem}}@media screen and (max-width:1023px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-2-touch{--columnGap:0.5rem}}@media screen and (min-width:1024px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-2-desktop{--columnGap:0.5rem}}@media screen and (min-width:1024px) and (max-width:1215px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-2-desktop-only{--columnGap:0.5rem}}@media screen and (min-width:1216px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-2-widescreen{--columnGap:0.5rem}}@media screen and (min-width:1216px) and (max-width:1407px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-2-widescreen-only{--columnGap:0.5rem}}@media screen and (min-width:1408px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-2-fullhd{--columnGap:0.5rem}}.pf-bu-columns.pf-bu-is-variable.pf-bu-is-3{--columnGap:0.75rem}@media screen and (max-width:768px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-3-mobile{--columnGap:0.75rem}}@media screen and (min-width:769px),print{.pf-bu-columns.pf-bu-is-variable.pf-bu-is-3-tablet{--columnGap:0.75rem}}@media screen and (min-width:769px) and (max-width:1023px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-3-tablet-only{--columnGap:0.75rem}}@media screen and (max-width:1023px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-3-touch{--columnGap:0.75rem}}@media screen and (min-width:1024px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-3-desktop{--columnGap:0.75rem}}@media screen and (min-width:1024px) and (max-width:1215px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-3-desktop-only{--columnGap:0.75rem}}@media screen and (min-width:1216px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-3-widescreen{--columnGap:0.75rem}}@media screen and (min-width:1216px) and (max-width:1407px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-3-widescreen-only{--columnGap:0.75rem}}@media screen and (min-width:1408px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-3-fullhd{--columnGap:0.75rem}}.pf-bu-columns.pf-bu-is-variable.pf-bu-is-4{--columnGap:1rem}@media screen and (max-width:768px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-4-mobile{--columnGap:1rem}}@media screen and (min-width:769px),print{.pf-bu-columns.pf-bu-is-variable.pf-bu-is-4-tablet{--columnGap:1rem}}@media screen and (min-width:769px) and (max-width:1023px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-4-tablet-only{--columnGap:1rem}}@media screen and (max-width:1023px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-4-touch{--columnGap:1rem}}@media screen and (min-width:1024px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-4-desktop{--columnGap:1rem}}@media screen and (min-width:1024px) and (max-width:1215px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-4-desktop-only{--columnGap:1rem}}@media screen and (min-width:1216px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-4-widescreen{--columnGap:1rem}}@media screen and (min-width:1216px) and (max-width:1407px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-4-widescreen-only{--columnGap:1rem}}@media screen and (min-width:1408px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-4-fullhd{--columnGap:1rem}}.pf-bu-columns.pf-bu-is-variable.pf-bu-is-5{--columnGap:1.25rem}@media screen and (max-width:768px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-5-mobile{--columnGap:1.25rem}}@media screen and (min-width:769px),print{.pf-bu-columns.pf-bu-is-variable.pf-bu-is-5-tablet{--columnGap:1.25rem}}@media screen and (min-width:769px) and (max-width:1023px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-5-tablet-only{--columnGap:1.25rem}}@media screen and (max-width:1023px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-5-touch{--columnGap:1.25rem}}@media screen and (min-width:1024px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-5-desktop{--columnGap:1.25rem}}@media screen and (min-width:1024px) and (max-width:1215px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-5-desktop-only{--columnGap:1.25rem}}@media screen and (min-width:1216px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-5-widescreen{--columnGap:1.25rem}}@media screen and (min-width:1216px) and (max-width:1407px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-5-widescreen-only{--columnGap:1.25rem}}@media screen and (min-width:1408px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-5-fullhd{--columnGap:1.25rem}}.pf-bu-columns.pf-bu-is-variable.pf-bu-is-6{--columnGap:1.5rem}@media screen and (max-width:768px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-6-mobile{--columnGap:1.5rem}}@media screen and (min-width:769px),print{.pf-bu-columns.pf-bu-is-variable.pf-bu-is-6-tablet{--columnGap:1.5rem}}@media screen and (min-width:769px) and (max-width:1023px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-6-tablet-only{--columnGap:1.5rem}}@media screen and (max-width:1023px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-6-touch{--columnGap:1.5rem}}@media screen and (min-width:1024px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-6-desktop{--columnGap:1.5rem}}@media screen and (min-width:1024px) and (max-width:1215px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-6-desktop-only{--columnGap:1.5rem}}@media screen and (min-width:1216px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-6-widescreen{--columnGap:1.5rem}}@media screen and (min-width:1216px) and (max-width:1407px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-6-widescreen-only{--columnGap:1.5rem}}@media screen and (min-width:1408px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-6-fullhd{--columnGap:1.5rem}}.pf-bu-columns.pf-bu-is-variable.pf-bu-is-7{--columnGap:1.75rem}@media screen and (max-width:768px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-7-mobile{--columnGap:1.75rem}}@media screen and (min-width:769px),print{.pf-bu-columns.pf-bu-is-variable.pf-bu-is-7-tablet{--columnGap:1.75rem}}@media screen and (min-width:769px) and (max-width:1023px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-7-tablet-only{--columnGap:1.75rem}}@media screen and (max-width:1023px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-7-touch{--columnGap:1.75rem}}@media screen and (min-width:1024px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-7-desktop{--columnGap:1.75rem}}@media screen and (min-width:1024px) and (max-width:1215px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-7-desktop-only{--columnGap:1.75rem}}@media screen and (min-width:1216px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-7-widescreen{--columnGap:1.75rem}}@media screen and (min-width:1216px) and (max-width:1407px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-7-widescreen-only{--columnGap:1.75rem}}@media screen and (min-width:1408px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-7-fullhd{--columnGap:1.75rem}}.pf-bu-columns.pf-bu-is-variable.pf-bu-is-8{--columnGap:2rem}@media screen and (max-width:768px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-8-mobile{--columnGap:2rem}}@media screen and (min-width:769px),print{.pf-bu-columns.pf-bu-is-variable.pf-bu-is-8-tablet{--columnGap:2rem}}@media screen and (min-width:769px) and (max-width:1023px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-8-tablet-only{--columnGap:2rem}}@media screen and (max-width:1023px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-8-touch{--columnGap:2rem}}@media screen and (min-width:1024px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-8-desktop{--columnGap:2rem}}@media screen and (min-width:1024px) and (max-width:1215px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-8-desktop-only{--columnGap:2rem}}@media screen and (min-width:1216px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-8-widescreen{--columnGap:2rem}}@media screen and (min-width:1216px) and (max-width:1407px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-8-widescreen-only{--columnGap:2rem}}@media screen and (min-width:1408px){.pf-bu-columns.pf-bu-is-variable.pf-bu-is-8-fullhd{--columnGap:2rem}}.pf-bu-tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:-webkit-min-content;min-height:-moz-min-content;min-height:min-content}.pf-bu-tile.pf-bu-is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.pf-bu-tile.pf-bu-is-ancestor:last-child{margin-bottom:-.75rem}.pf-bu-tile.pf-bu-is-ancestor:not(:last-child){margin-bottom:.75rem}.pf-bu-tile.pf-bu-is-child{margin:0!important}.pf-bu-tile.pf-bu-is-parent{padding:.75rem}.pf-bu-tile.pf-bu-is-vertical{flex-direction:column}.pf-bu-tile.pf-bu-is-vertical>.pf-bu-tile.pf-bu-is-child:not(:last-child){margin-bottom:1.5rem!important}@media screen and (min-width:769px),print{.pf-bu-tile:not(.pf-bu-is-child){display:flex}.pf-bu-tile.pf-bu-is-1{flex:none;width:8.33333%}.pf-bu-tile.pf-bu-is-2{flex:none;width:16.66667%}.pf-bu-tile.pf-bu-is-3{flex:none;width:25%}.pf-bu-tile.pf-bu-is-4{flex:none;width:33.33333%}.pf-bu-tile.pf-bu-is-5{flex:none;width:41.66667%}.pf-bu-tile.pf-bu-is-6{flex:none;width:50%}.pf-bu-tile.pf-bu-is-7{flex:none;width:58.33333%}.pf-bu-tile.pf-bu-is-8{flex:none;width:66.66667%}.pf-bu-tile.pf-bu-is-9{flex:none;width:75%}.pf-bu-tile.pf-bu-is-10{flex:none;width:83.33333%}.pf-bu-tile.pf-bu-is-11{flex:none;width:91.66667%}.pf-bu-tile.pf-bu-is-12{flex:none;width:100%}}.pf-bu-has-text-white{color:#fff!important}a.pf-bu-has-text-white:focus,a.pf-bu-has-text-white:hover{color:#e6e6e6!important}.pf-bu-has-background-white{background-color:#fff!important}.pf-bu-has-text-black{color:#0a0a0a!important}a.pf-bu-has-text-black:focus,a.pf-bu-has-text-black:hover{color:#000!important}.pf-bu-has-background-black{background-color:#0a0a0a!important}.pf-bu-has-text-light{color:#f5f5f5!important}a.pf-bu-has-text-light:focus,a.pf-bu-has-text-light:hover{color:#dbdbdb!important}.pf-bu-has-background-light{background-color:#f5f5f5!important}.pf-bu-has-text-dark{color:#363636!important}a.pf-bu-has-text-dark:focus,a.pf-bu-has-text-dark:hover{color:#1c1c1c!important}.pf-bu-has-background-dark{background-color:#363636!important}.pf-bu-has-text-primary{color:#00d1b2!important}a.pf-bu-has-text-primary:focus,a.pf-bu-has-text-primary:hover{color:#009e86!important}.pf-bu-has-background-primary{background-color:#00d1b2!important}.pf-bu-has-text-primary-light{color:#ebfffc!important}a.pf-bu-has-text-primary-light:focus,a.pf-bu-has-text-primary-light:hover{color:#b8fff4!important}.pf-bu-has-background-primary-light{background-color:#ebfffc!important}.pf-bu-has-text-primary-dark{color:#00947e!important}a.pf-bu-has-text-primary-dark:focus,a.pf-bu-has-text-primary-dark:hover{color:#00c7a9!important}.pf-bu-has-background-primary-dark{background-color:#00947e!important}.pf-bu-has-text-link{color:#3273dc!important}a.pf-bu-has-text-link:focus,a.pf-bu-has-text-link:hover{color:#205bbc!important}.pf-bu-has-background-link{background-color:#3273dc!important}.pf-bu-has-text-link-light{color:#eef3fc!important}a.pf-bu-has-text-link-light:focus,a.pf-bu-has-text-link-light:hover{color:#c2d5f5!important}.pf-bu-has-background-link-light{background-color:#eef3fc!important}.pf-bu-has-text-link-dark{color:#2160c4!important}a.pf-bu-has-text-link-dark:focus,a.pf-bu-has-text-link-dark:hover{color:#3b79de!important}.pf-bu-has-background-link-dark{background-color:#2160c4!important}.pf-bu-has-text-info{color:#3298dc!important}a.pf-bu-has-text-info:focus,a.pf-bu-has-text-info:hover{color:#207dbc!important}.pf-bu-has-background-info{background-color:#3298dc!important}.pf-bu-has-text-info-light{color:#eef6fc!important}a.pf-bu-has-text-info-light:focus,a.pf-bu-has-text-info-light:hover{color:#c2e0f5!important}.pf-bu-has-background-info-light{background-color:#eef6fc!important}.pf-bu-has-text-info-dark{color:#1d72aa!important}a.pf-bu-has-text-info-dark:focus,a.pf-bu-has-text-info-dark:hover{color:#248fd6!important}.pf-bu-has-background-info-dark{background-color:#1d72aa!important}.pf-bu-has-text-success{color:#48c774!important}a.pf-bu-has-text-success:focus,a.pf-bu-has-text-success:hover{color:#34a85c!important}.pf-bu-has-background-success{background-color:#48c774!important}.pf-bu-has-text-success-light{color:#effaf3!important}a.pf-bu-has-text-success-light:focus,a.pf-bu-has-text-success-light:hover{color:#c8eed6!important}.pf-bu-has-background-success-light{background-color:#effaf3!important}.pf-bu-has-text-success-dark{color:#257942!important}a.pf-bu-has-text-success-dark:focus,a.pf-bu-has-text-success-dark:hover{color:#31a058!important}.pf-bu-has-background-success-dark{background-color:#257942!important}.pf-bu-has-text-warning{color:#ffdd57!important}a.pf-bu-has-text-warning:focus,a.pf-bu-has-text-warning:hover{color:#ffd324!important}.pf-bu-has-background-warning{background-color:#ffdd57!important}.pf-bu-has-text-warning-light{color:#fffbeb!important}a.pf-bu-has-text-warning-light:focus,a.pf-bu-has-text-warning-light:hover{color:#fff1b8!important}.pf-bu-has-background-warning-light{background-color:#fffbeb!important}.pf-bu-has-text-warning-dark{color:#947600!important}a.pf-bu-has-text-warning-dark:focus,a.pf-bu-has-text-warning-dark:hover{color:#c79f00!important}.pf-bu-has-background-warning-dark{background-color:#947600!important}.pf-bu-has-text-danger{color:#f14668!important}a.pf-bu-has-text-danger:focus,a.pf-bu-has-text-danger:hover{color:#ee1742!important}.pf-bu-has-background-danger{background-color:#f14668!important}.pf-bu-has-text-danger-light{color:#feecf0!important}a.pf-bu-has-text-danger-light:focus,a.pf-bu-has-text-danger-light:hover{color:#fabdc9!important}.pf-bu-has-background-danger-light{background-color:#feecf0!important}.pf-bu-has-text-danger-dark{color:#cc0f35!important}a.pf-bu-has-text-danger-dark:focus,a.pf-bu-has-text-danger-dark:hover{color:#ee2049!important}.pf-bu-has-background-danger-dark{background-color:#cc0f35!important}.pf-bu-has-text-black-bis{color:#121212!important}.pf-bu-has-background-black-bis{background-color:#121212!important}.pf-bu-has-text-black-ter{color:#242424!important}.pf-bu-has-background-black-ter{background-color:#242424!important}.pf-bu-has-text-grey-darker{color:#363636!important}.pf-bu-has-background-grey-darker{background-color:#363636!important}.pf-bu-has-text-grey-dark{color:#4a4a4a!important}.pf-bu-has-background-grey-dark{background-color:#4a4a4a!important}.pf-bu-has-text-grey{color:#7a7a7a!important}.pf-bu-has-background-grey{background-color:#7a7a7a!important}.pf-bu-has-text-grey-light{color:#b5b5b5!important}.pf-bu-has-background-grey-light{background-color:#b5b5b5!important}.pf-bu-has-text-grey-lighter{color:#dbdbdb!important}.pf-bu-has-background-grey-lighter{background-color:#dbdbdb!important}.pf-bu-has-text-white-ter{color:#f5f5f5!important}.pf-bu-has-background-white-ter{background-color:#f5f5f5!important}.pf-bu-has-text-white-bis{color:#fafafa!important}.pf-bu-has-background-white-bis{background-color:#fafafa!important}.pf-bu-is-flex-direction-row{flex-direction:row!important}.pf-bu-is-flex-direction-row-reverse{flex-direction:row-reverse!important}.pf-bu-is-flex-direction-column{flex-direction:column!important}.pf-bu-is-flex-direction-column-reverse{flex-direction:column-reverse!important}.pf-bu-is-flex-wrap-nowrap{flex-wrap:nowrap!important}.pf-bu-is-flex-wrap-wrap{flex-wrap:wrap!important}.pf-bu-is-flex-wrap-wrap-reverse{flex-wrap:wrap-reverse!important}.pf-bu-is-justify-content-flex-start{justify-content:flex-start!important}.pf-bu-is-justify-content-flex-end{justify-content:flex-end!important}.pf-bu-is-justify-content-center{justify-content:center!important}.pf-bu-is-justify-content-space-between{justify-content:space-between!important}.pf-bu-is-justify-content-space-around{justify-content:space-around!important}.pf-bu-is-justify-content-space-evenly{justify-content:space-evenly!important}.pf-bu-is-justify-content-start{justify-content:start!important}.pf-bu-is-justify-content-end{justify-content:end!important}.pf-bu-is-justify-content-left{justify-content:left!important}.pf-bu-is-justify-content-right{justify-content:right!important}.pf-bu-is-align-content-flex-start{align-content:flex-start!important}.pf-bu-is-align-content-flex-end{align-content:flex-end!important}.pf-bu-is-align-content-center{align-content:center!important}.pf-bu-is-align-content-space-between{align-content:space-between!important}.pf-bu-is-align-content-space-around{align-content:space-around!important}.pf-bu-is-align-content-space-evenly{align-content:space-evenly!important}.pf-bu-is-align-content-stretch{align-content:stretch!important}.pf-bu-is-align-content-start{align-content:start!important}.pf-bu-is-align-content-end{align-content:end!important}.pf-bu-is-align-content-baseline{align-content:baseline!important}.pf-bu-is-align-items-stretch{align-items:stretch!important}.pf-bu-is-align-items-flex-start{align-items:flex-start!important}.pf-bu-is-align-items-flex-end{align-items:flex-end!important}.pf-bu-is-align-items-center{align-items:center!important}.pf-bu-is-align-items-baseline{align-items:baseline!important}.pf-bu-is-align-items-start{align-items:start!important}.pf-bu-is-align-items-end{align-items:end!important}.pf-bu-is-align-items-self-start{align-items:self-start!important}.pf-bu-is-align-items-self-end{align-items:self-end!important}.pf-bu-is-align-self-auto{align-self:auto!important}.pf-bu-is-align-self-flex-start{align-self:flex-start!important}.pf-bu-is-align-self-flex-end{align-self:flex-end!important}.pf-bu-is-align-self-center{align-self:center!important}.pf-bu-is-align-self-baseline{align-self:baseline!important}.pf-bu-is-align-self-stretch{align-self:stretch!important}.pf-bu-is-flex-grow-0{flex-grow:0!important}.pf-bu-is-flex-grow-1{flex-grow:1!important}.pf-bu-is-flex-grow-2{flex-grow:2!important}.pf-bu-is-flex-grow-3{flex-grow:3!important}.pf-bu-is-flex-grow-4{flex-grow:4!important}.pf-bu-is-flex-grow-5{flex-grow:5!important}.pf-bu-is-flex-shrink-0{flex-shrink:0!important}.pf-bu-is-flex-shrink-1{flex-shrink:1!important}.pf-bu-is-flex-shrink-2{flex-shrink:2!important}.pf-bu-is-flex-shrink-3{flex-shrink:3!important}.pf-bu-is-flex-shrink-4{flex-shrink:4!important}.pf-bu-is-flex-shrink-5{flex-shrink:5!important}.pf-bu-is-clearfix::after{clear:both;content:" ";display:table}.pf-bu-is-pulled-left{float:left!important}.pf-bu-is-pulled-right{float:right!important}.pf-bu-is-radiusless{border-radius:0!important}.pf-bu-is-shadowless{box-shadow:none!important}.pf-bu-is-clickable{cursor:pointer!important}.pf-bu-is-clipped{overflow:hidden!important}.pf-bu-is-relative{position:relative!important}.pf-bu-is-marginless{margin:0!important}.pf-bu-is-paddingless{padding:0!important}.pf-bu-m-0{margin:0!important}.pf-bu-mt-0{margin-top:0!important}.pf-bu-mr-0{margin-right:0!important}.pf-bu-mb-0{margin-bottom:0!important}.pf-bu-ml-0{margin-left:0!important}.pf-bu-mx-0{margin-left:0!important;margin-right:0!important}.pf-bu-my-0{margin-top:0!important;margin-bottom:0!important}.pf-bu-m-1{margin:.25rem!important}.pf-bu-mt-1{margin-top:.25rem!important}.pf-bu-mr-1{margin-right:.25rem!important}.pf-bu-mb-1{margin-bottom:.25rem!important}.pf-bu-ml-1{margin-left:.25rem!important}.pf-bu-mx-1{margin-left:.25rem!important;margin-right:.25rem!important}.pf-bu-my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.pf-bu-m-2{margin:.5rem!important}.pf-bu-mt-2{margin-top:.5rem!important}.pf-bu-mr-2{margin-right:.5rem!important}.pf-bu-mb-2{margin-bottom:.5rem!important}.pf-bu-ml-2{margin-left:.5rem!important}.pf-bu-mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.pf-bu-my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.pf-bu-m-3{margin:.75rem!important}.pf-bu-mt-3{margin-top:.75rem!important}.pf-bu-mr-3{margin-right:.75rem!important}.pf-bu-mb-3{margin-bottom:.75rem!important}.pf-bu-ml-3{margin-left:.75rem!important}.pf-bu-mx-3{margin-left:.75rem!important;margin-right:.75rem!important}.pf-bu-my-3{margin-top:.75rem!important;margin-bottom:.75rem!important}.pf-bu-m-4{margin:1rem!important}.pf-bu-mt-4{margin-top:1rem!important}.pf-bu-mr-4{margin-right:1rem!important}.pf-bu-mb-4{margin-bottom:1rem!important}.pf-bu-ml-4{margin-left:1rem!important}.pf-bu-mx-4{margin-left:1rem!important;margin-right:1rem!important}.pf-bu-my-4{margin-top:1rem!important;margin-bottom:1rem!important}.pf-bu-m-5{margin:1.5rem!important}.pf-bu-mt-5{margin-top:1.5rem!important}.pf-bu-mr-5{margin-right:1.5rem!important}.pf-bu-mb-5{margin-bottom:1.5rem!important}.pf-bu-ml-5{margin-left:1.5rem!important}.pf-bu-mx-5{margin-left:1.5rem!important;margin-right:1.5rem!important}.pf-bu-my-5{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.pf-bu-m-6{margin:3rem!important}.pf-bu-mt-6{margin-top:3rem!important}.pf-bu-mr-6{margin-right:3rem!important}.pf-bu-mb-6{margin-bottom:3rem!important}.pf-bu-ml-6{margin-left:3rem!important}.pf-bu-mx-6{margin-left:3rem!important;margin-right:3rem!important}.pf-bu-my-6{margin-top:3rem!important;margin-bottom:3rem!important}.pf-bu-p-0{padding:0!important}.pf-bu-pt-0{padding-top:0!important}.pf-bu-pr-0{padding-right:0!important}.pf-bu-pb-0{padding-bottom:0!important}.pf-bu-pl-0{padding-left:0!important}.pf-bu-px-0{padding-left:0!important;padding-right:0!important}.pf-bu-py-0{padding-top:0!important;padding-bottom:0!important}.pf-bu-p-1{padding:.25rem!important}.pf-bu-pt-1{padding-top:.25rem!important}.pf-bu-pr-1{padding-right:.25rem!important}.pf-bu-pb-1{padding-bottom:.25rem!important}.pf-bu-pl-1{padding-left:.25rem!important}.pf-bu-px-1{padding-left:.25rem!important;padding-right:.25rem!important}.pf-bu-py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.pf-bu-p-2{padding:.5rem!important}.pf-bu-pt-2{padding-top:.5rem!important}.pf-bu-pr-2{padding-right:.5rem!important}.pf-bu-pb-2{padding-bottom:.5rem!important}.pf-bu-pl-2{padding-left:.5rem!important}.pf-bu-px-2{padding-left:.5rem!important;padding-right:.5rem!important}.pf-bu-py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.pf-bu-p-3{padding:.75rem!important}.pf-bu-pt-3{padding-top:.75rem!important}.pf-bu-pr-3{padding-right:.75rem!important}.pf-bu-pb-3{padding-bottom:.75rem!important}.pf-bu-pl-3{padding-left:.75rem!important}.pf-bu-px-3{padding-left:.75rem!important;padding-right:.75rem!important}.pf-bu-py-3{padding-top:.75rem!important;padding-bottom:.75rem!important}.pf-bu-p-4{padding:1rem!important}.pf-bu-pt-4{padding-top:1rem!important}.pf-bu-pr-4{padding-right:1rem!important}.pf-bu-pb-4{padding-bottom:1rem!important}.pf-bu-pl-4{padding-left:1rem!important}.pf-bu-px-4{padding-left:1rem!important;padding-right:1rem!important}.pf-bu-py-4{padding-top:1rem!important;padding-bottom:1rem!important}.pf-bu-p-5{padding:1.5rem!important}.pf-bu-pt-5{padding-top:1.5rem!important}.pf-bu-pr-5{padding-right:1.5rem!important}.pf-bu-pb-5{padding-bottom:1.5rem!important}.pf-bu-pl-5{padding-left:1.5rem!important}.pf-bu-px-5{padding-left:1.5rem!important;padding-right:1.5rem!important}.pf-bu-py-5{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.pf-bu-p-6{padding:3rem!important}.pf-bu-pt-6{padding-top:3rem!important}.pf-bu-pr-6{padding-right:3rem!important}.pf-bu-pb-6{padding-bottom:3rem!important}.pf-bu-pl-6{padding-left:3rem!important}.pf-bu-px-6{padding-left:3rem!important;padding-right:3rem!important}.pf-bu-py-6{padding-top:3rem!important;padding-bottom:3rem!important}.pf-bu-is-size-1{font-size:3rem!important}.pf-bu-is-size-2{font-size:2.5rem!important}.pf-bu-is-size-3{font-size:2rem!important}.pf-bu-is-size-4{font-size:1.5rem!important}.pf-bu-is-size-5{font-size:1.25rem!important}.pf-bu-is-size-6{font-size:1rem!important}.pf-bu-is-size-7{font-size:.75rem!important}@media screen and (max-width:768px){.pf-bu-is-size-1-mobile{font-size:3rem!important}.pf-bu-is-size-2-mobile{font-size:2.5rem!important}.pf-bu-is-size-3-mobile{font-size:2rem!important}.pf-bu-is-size-4-mobile{font-size:1.5rem!important}.pf-bu-is-size-5-mobile{font-size:1.25rem!important}.pf-bu-is-size-6-mobile{font-size:1rem!important}.pf-bu-is-size-7-mobile{font-size:.75rem!important}}@media screen and (min-width:769px),print{.pf-bu-is-size-1-tablet{font-size:3rem!important}.pf-bu-is-size-2-tablet{font-size:2.5rem!important}.pf-bu-is-size-3-tablet{font-size:2rem!important}.pf-bu-is-size-4-tablet{font-size:1.5rem!important}.pf-bu-is-size-5-tablet{font-size:1.25rem!important}.pf-bu-is-size-6-tablet{font-size:1rem!important}.pf-bu-is-size-7-tablet{font-size:.75rem!important}}@media screen and (max-width:1023px){.pf-bu-is-size-1-touch{font-size:3rem!important}.pf-bu-is-size-2-touch{font-size:2.5rem!important}.pf-bu-is-size-3-touch{font-size:2rem!important}.pf-bu-is-size-4-touch{font-size:1.5rem!important}.pf-bu-is-size-5-touch{font-size:1.25rem!important}.pf-bu-is-size-6-touch{font-size:1rem!important}.pf-bu-is-size-7-touch{font-size:.75rem!important}}@media screen and (min-width:1024px){.pf-bu-is-size-1-desktop{font-size:3rem!important}.pf-bu-is-size-2-desktop{font-size:2.5rem!important}.pf-bu-is-size-3-desktop{font-size:2rem!important}.pf-bu-is-size-4-desktop{font-size:1.5rem!important}.pf-bu-is-size-5-desktop{font-size:1.25rem!important}.pf-bu-is-size-6-desktop{font-size:1rem!important}.pf-bu-is-size-7-desktop{font-size:.75rem!important}}@media screen and (min-width:1216px){.pf-bu-is-size-1-widescreen{font-size:3rem!important}.pf-bu-is-size-2-widescreen{font-size:2.5rem!important}.pf-bu-is-size-3-widescreen{font-size:2rem!important}.pf-bu-is-size-4-widescreen{font-size:1.5rem!important}.pf-bu-is-size-5-widescreen{font-size:1.25rem!important}.pf-bu-is-size-6-widescreen{font-size:1rem!important}.pf-bu-is-size-7-widescreen{font-size:.75rem!important}}@media screen and (min-width:1408px){.pf-bu-is-size-1-fullhd{font-size:3rem!important}.pf-bu-is-size-2-fullhd{font-size:2.5rem!important}.pf-bu-is-size-3-fullhd{font-size:2rem!important}.pf-bu-is-size-4-fullhd{font-size:1.5rem!important}.pf-bu-is-size-5-fullhd{font-size:1.25rem!important}.pf-bu-is-size-6-fullhd{font-size:1rem!important}.pf-bu-is-size-7-fullhd{font-size:.75rem!important}}.pf-bu-has-text-centered{text-align:center!important}.pf-bu-has-text-justified{text-align:justify!important}.pf-bu-has-text-left{text-align:left!important}.pf-bu-has-text-right{text-align:right!important}@media screen and (max-width:768px){.pf-bu-has-text-centered-mobile{text-align:center!important}}@media screen and (min-width:769px),print{.pf-bu-has-text-centered-tablet{text-align:center!important}}@media screen and (min-width:769px) and (max-width:1023px){.pf-bu-has-text-centered-tablet-only{text-align:center!important}}@media screen and (max-width:1023px){.pf-bu-has-text-centered-touch{text-align:center!important}}@media screen and (min-width:1024px){.pf-bu-has-text-centered-desktop{text-align:center!important}}@media screen and (min-width:1024px) and (max-width:1215px){.pf-bu-has-text-centered-desktop-only{text-align:center!important}}@media screen and (min-width:1216px){.pf-bu-has-text-centered-widescreen{text-align:center!important}}@media screen and (min-width:1216px) and (max-width:1407px){.pf-bu-has-text-centered-widescreen-only{text-align:center!important}}@media screen and (min-width:1408px){.pf-bu-has-text-centered-fullhd{text-align:center!important}}@media screen and (max-width:768px){.pf-bu-has-text-justified-mobile{text-align:justify!important}}@media screen and (min-width:769px),print{.pf-bu-has-text-justified-tablet{text-align:justify!important}}@media screen and (min-width:769px) and (max-width:1023px){.pf-bu-has-text-justified-tablet-only{text-align:justify!important}}@media screen and (max-width:1023px){.pf-bu-has-text-justified-touch{text-align:justify!important}}@media screen and (min-width:1024px){.pf-bu-has-text-justified-desktop{text-align:justify!important}}@media screen and (min-width:1024px) and (max-width:1215px){.pf-bu-has-text-justified-desktop-only{text-align:justify!important}}@media screen and (min-width:1216px){.pf-bu-has-text-justified-widescreen{text-align:justify!important}}@media screen and (min-width:1216px) and (max-width:1407px){.pf-bu-has-text-justified-widescreen-only{text-align:justify!important}}@media screen and (min-width:1408px){.pf-bu-has-text-justified-fullhd{text-align:justify!important}}@media screen and (max-width:768px){.pf-bu-has-text-left-mobile{text-align:left!important}}@media screen and (min-width:769px),print{.pf-bu-has-text-left-tablet{text-align:left!important}}@media screen and (min-width:769px) and (max-width:1023px){.pf-bu-has-text-left-tablet-only{text-align:left!important}}@media screen and (max-width:1023px){.pf-bu-has-text-left-touch{text-align:left!important}}@media screen and (min-width:1024px){.pf-bu-has-text-left-desktop{text-align:left!important}}@media screen and (min-width:1024px) and (max-width:1215px){.pf-bu-has-text-left-desktop-only{text-align:left!important}}@media screen and (min-width:1216px){.pf-bu-has-text-left-widescreen{text-align:left!important}}@media screen and (min-width:1216px) and (max-width:1407px){.pf-bu-has-text-left-widescreen-only{text-align:left!important}}@media screen and (min-width:1408px){.pf-bu-has-text-left-fullhd{text-align:left!important}}@media screen and (max-width:768px){.pf-bu-has-text-right-mobile{text-align:right!important}}@media screen and (min-width:769px),print{.pf-bu-has-text-right-tablet{text-align:right!important}}@media screen and (min-width:769px) and (max-width:1023px){.pf-bu-has-text-right-tablet-only{text-align:right!important}}@media screen and (max-width:1023px){.pf-bu-has-text-right-touch{text-align:right!important}}@media screen and (min-width:1024px){.pf-bu-has-text-right-desktop{text-align:right!important}}@media screen and (min-width:1024px) and (max-width:1215px){.pf-bu-has-text-right-desktop-only{text-align:right!important}}@media screen and (min-width:1216px){.pf-bu-has-text-right-widescreen{text-align:right!important}}@media screen and (min-width:1216px) and (max-width:1407px){.pf-bu-has-text-right-widescreen-only{text-align:right!important}}@media screen and (min-width:1408px){.pf-bu-has-text-right-fullhd{text-align:right!important}}.pf-bu-is-capitalized{text-transform:capitalize!important}.pf-bu-is-lowercase{text-transform:lowercase!important}.pf-bu-is-uppercase{text-transform:uppercase!important}.pf-bu-is-italic{font-style:italic!important}.pf-bu-has-text-weight-light{font-weight:300!important}.pf-bu-has-text-weight-normal{font-weight:400!important}.pf-bu-has-text-weight-medium{font-weight:500!important}.pf-bu-has-text-weight-semibold{font-weight:600!important}.pf-bu-has-text-weight-bold{font-weight:700!important}.pf-bu-is-family-primary{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif!important}.pf-bu-is-family-secondary{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif!important}.pf-bu-is-family-sans-serif{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif!important}.pf-bu-is-family-monospace{font-family:monospace!important}.pf-bu-is-family-code{font-family:monospace!important}.pf-bu-is-block{display:block!important}@media screen and (max-width:768px){.pf-bu-is-block-mobile{display:block!important}}@media screen and (min-width:769px),print{.pf-bu-is-block-tablet{display:block!important}}@media screen and (min-width:769px) and (max-width:1023px){.pf-bu-is-block-tablet-only{display:block!important}}@media screen and (max-width:1023px){.pf-bu-is-block-touch{display:block!important}}@media screen and (min-width:1024px){.pf-bu-is-block-desktop{display:block!important}}@media screen and (min-width:1024px) and (max-width:1215px){.pf-bu-is-block-desktop-only{display:block!important}}@media screen and (min-width:1216px){.pf-bu-is-block-widescreen{display:block!important}}@media screen and (min-width:1216px) and (max-width:1407px){.pf-bu-is-block-widescreen-only{display:block!important}}@media screen and (min-width:1408px){.pf-bu-is-block-fullhd{display:block!important}}.pf-bu-is-flex{display:flex!important}@media screen and (max-width:768px){.pf-bu-is-flex-mobile{display:flex!important}}@media screen and (min-width:769px),print{.pf-bu-is-flex-tablet{display:flex!important}}@media screen and (min-width:769px) and (max-width:1023px){.pf-bu-is-flex-tablet-only{display:flex!important}}@media screen and (max-width:1023px){.pf-bu-is-flex-touch{display:flex!important}}@media screen and (min-width:1024px){.pf-bu-is-flex-desktop{display:flex!important}}@media screen and (min-width:1024px) and (max-width:1215px){.pf-bu-is-flex-desktop-only{display:flex!important}}@media screen and (min-width:1216px){.pf-bu-is-flex-widescreen{display:flex!important}}@media screen and (min-width:1216px) and (max-width:1407px){.pf-bu-is-flex-widescreen-only{display:flex!important}}@media screen and (min-width:1408px){.pf-bu-is-flex-fullhd{display:flex!important}}.pf-bu-is-inline{display:inline!important}@media screen and (max-width:768px){.pf-bu-is-inline-mobile{display:inline!important}}@media screen and (min-width:769px),print{.pf-bu-is-inline-tablet{display:inline!important}}@media screen and (min-width:769px) and (max-width:1023px){.pf-bu-is-inline-tablet-only{display:inline!important}}@media screen and (max-width:1023px){.pf-bu-is-inline-touch{display:inline!important}}@media screen and (min-width:1024px){.pf-bu-is-inline-desktop{display:inline!important}}@media screen and (min-width:1024px) and (max-width:1215px){.pf-bu-is-inline-desktop-only{display:inline!important}}@media screen and (min-width:1216px){.pf-bu-is-inline-widescreen{display:inline!important}}@media screen and (min-width:1216px) and (max-width:1407px){.pf-bu-is-inline-widescreen-only{display:inline!important}}@media screen and (min-width:1408px){.pf-bu-is-inline-fullhd{display:inline!important}}.pf-bu-is-inline-block{display:inline-block!important}@media screen and (max-width:768px){.pf-bu-is-inline-block-mobile{display:inline-block!important}}@media screen and (min-width:769px),print{.pf-bu-is-inline-block-tablet{display:inline-block!important}}@media screen and (min-width:769px) and (max-width:1023px){.pf-bu-is-inline-block-tablet-only{display:inline-block!important}}@media screen and (max-width:1023px){.pf-bu-is-inline-block-touch{display:inline-block!important}}@media screen and (min-width:1024px){.pf-bu-is-inline-block-desktop{display:inline-block!important}}@media screen and (min-width:1024px) and (max-width:1215px){.pf-bu-is-inline-block-desktop-only{display:inline-block!important}}@media screen and (min-width:1216px){.pf-bu-is-inline-block-widescreen{display:inline-block!important}}@media screen and (min-width:1216px) and (max-width:1407px){.pf-bu-is-inline-block-widescreen-only{display:inline-block!important}}@media screen and (min-width:1408px){.pf-bu-is-inline-block-fullhd{display:inline-block!important}}.pf-bu-is-inline-flex{display:inline-flex!important}@media screen and (max-width:768px){.pf-bu-is-inline-flex-mobile{display:inline-flex!important}}@media screen and (min-width:769px),print{.pf-bu-is-inline-flex-tablet{display:inline-flex!important}}@media screen and (min-width:769px) and (max-width:1023px){.pf-bu-is-inline-flex-tablet-only{display:inline-flex!important}}@media screen and (max-width:1023px){.pf-bu-is-inline-flex-touch{display:inline-flex!important}}@media screen and (min-width:1024px){.pf-bu-is-inline-flex-desktop{display:inline-flex!important}}@media screen and (min-width:1024px) and (max-width:1215px){.pf-bu-is-inline-flex-desktop-only{display:inline-flex!important}}@media screen and (min-width:1216px){.pf-bu-is-inline-flex-widescreen{display:inline-flex!important}}@media screen and (min-width:1216px) and (max-width:1407px){.pf-bu-is-inline-flex-widescreen-only{display:inline-flex!important}}@media screen and (min-width:1408px){.pf-bu-is-inline-flex-fullhd{display:inline-flex!important}}.pf-bu-is-hidden{display:none!important}.pf-bu-is-sr-only{border:none!important;clip:rect(0,0,0,0)!important;height:.01em!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:.01em!important}@media screen and (max-width:768px){.pf-bu-is-hidden-mobile{display:none!important}}@media screen and (min-width:769px),print{.pf-bu-is-hidden-tablet{display:none!important}}@media screen and (min-width:769px) and (max-width:1023px){.pf-bu-is-hidden-tablet-only{display:none!important}}@media screen and (max-width:1023px){.pf-bu-is-hidden-touch{display:none!important}}@media screen and (min-width:1024px){.pf-bu-is-hidden-desktop{display:none!important}}@media screen and (min-width:1024px) and (max-width:1215px){.pf-bu-is-hidden-desktop-only{display:none!important}}@media screen and (min-width:1216px){.pf-bu-is-hidden-widescreen{display:none!important}}@media screen and (min-width:1216px) and (max-width:1407px){.pf-bu-is-hidden-widescreen-only{display:none!important}}@media screen and (min-width:1408px){.pf-bu-is-hidden-fullhd{display:none!important}}.pf-bu-is-invisible{visibility:hidden!important}@media screen and (max-width:768px){.pf-bu-is-invisible-mobile{visibility:hidden!important}}@media screen and (min-width:769px),print{.pf-bu-is-invisible-tablet{visibility:hidden!important}}@media screen and (min-width:769px) and (max-width:1023px){.pf-bu-is-invisible-tablet-only{visibility:hidden!important}}@media screen and (max-width:1023px){.pf-bu-is-invisible-touch{visibility:hidden!important}}@media screen and (min-width:1024px){.pf-bu-is-invisible-desktop{visibility:hidden!important}}@media screen and (min-width:1024px) and (max-width:1215px){.pf-bu-is-invisible-desktop-only{visibility:hidden!important}}@media screen and (min-width:1216px){.pf-bu-is-invisible-widescreen{visibility:hidden!important}}@media screen and (min-width:1216px) and (max-width:1407px){.pf-bu-is-invisible-widescreen-only{visibility:hidden!important}}@media screen and (min-width:1408px){.pf-bu-is-invisible-fullhd{visibility:hidden!important}}.pf-bu-hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.pf-bu-hero .pf-bu-navbar{background:0 0}.pf-bu-hero .pf-bu-tabs ul{border-bottom:none}.pf-bu-hero.pf-bu-is-white{background-color:#fff;color:#0a0a0a}.pf-bu-hero.pf-bu-is-white a:not(.pf-bu-button):not(.pf-bu-dropdown-item):not(.pf-bu-tag):not(.pf-bu-pagination-link.pf-bu-is-current),.pf-bu-hero.pf-bu-is-white strong{color:inherit}.pf-bu-hero.pf-bu-is-white .pf-bu-title{color:#0a0a0a}.pf-bu-hero.pf-bu-is-white .pf-bu-subtitle{color:rgba(10,10,10,.9)}.pf-bu-hero.pf-bu-is-white .pf-bu-subtitle a:not(.pf-bu-button),.pf-bu-hero.pf-bu-is-white .pf-bu-subtitle strong{color:#0a0a0a}@media screen and (max-width:1023px){.pf-bu-hero.pf-bu-is-white .pf-bu-navbar-menu{background-color:#fff}}.pf-bu-hero.pf-bu-is-white .pf-bu-navbar-item,.pf-bu-hero.pf-bu-is-white .pf-bu-navbar-link{color:rgba(10,10,10,.7)}.pf-bu-hero.pf-bu-is-white .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-hero.pf-bu-is-white .pf-bu-navbar-link:hover,.pf-bu-hero.pf-bu-is-white a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-hero.pf-bu-is-white a.pf-bu-navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.pf-bu-hero.pf-bu-is-white .pf-bu-tabs a{color:#0a0a0a;opacity:.9}.pf-bu-hero.pf-bu-is-white .pf-bu-tabs a:hover{opacity:1}.pf-bu-hero.pf-bu-is-white .pf-bu-tabs li.pf-bu-is-active a{opacity:1}.pf-bu-hero.pf-bu-is-white .pf-bu-tabs.pf-bu-is-boxed a,.pf-bu-hero.pf-bu-is-white .pf-bu-tabs.pf-bu-is-toggle a{color:#0a0a0a}.pf-bu-hero.pf-bu-is-white .pf-bu-tabs.pf-bu-is-boxed a:hover,.pf-bu-hero.pf-bu-is-white .pf-bu-tabs.pf-bu-is-toggle a:hover{background-color:rgba(10,10,10,.1)}.pf-bu-hero.pf-bu-is-white .pf-bu-tabs.pf-bu-is-boxed li.pf-bu-is-active a,.pf-bu-hero.pf-bu-is-white .pf-bu-tabs.pf-bu-is-boxed li.pf-bu-is-active a:hover,.pf-bu-hero.pf-bu-is-white .pf-bu-tabs.pf-bu-is-toggle li.pf-bu-is-active a,.pf-bu-hero.pf-bu-is-white .pf-bu-tabs.pf-bu-is-toggle li.pf-bu-is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.pf-bu-hero.pf-bu-is-white.pf-bu-is-bold{background-image:linear-gradient(141deg,#e6e6e6 0,#fff 71%,#fff 100%)}@media screen and (max-width:768px){.pf-bu-hero.pf-bu-is-white.pf-bu-is-bold .pf-bu-navbar-menu{background-image:linear-gradient(141deg,#e6e6e6 0,#fff 71%,#fff 100%)}}.pf-bu-hero.pf-bu-is-black{background-color:#0a0a0a;color:#fff}.pf-bu-hero.pf-bu-is-black a:not(.pf-bu-button):not(.pf-bu-dropdown-item):not(.pf-bu-tag):not(.pf-bu-pagination-link.pf-bu-is-current),.pf-bu-hero.pf-bu-is-black strong{color:inherit}.pf-bu-hero.pf-bu-is-black .pf-bu-title{color:#fff}.pf-bu-hero.pf-bu-is-black .pf-bu-subtitle{color:rgba(255,255,255,.9)}.pf-bu-hero.pf-bu-is-black .pf-bu-subtitle a:not(.pf-bu-button),.pf-bu-hero.pf-bu-is-black .pf-bu-subtitle strong{color:#fff}@media screen and (max-width:1023px){.pf-bu-hero.pf-bu-is-black .pf-bu-navbar-menu{background-color:#0a0a0a}}.pf-bu-hero.pf-bu-is-black .pf-bu-navbar-item,.pf-bu-hero.pf-bu-is-black .pf-bu-navbar-link{color:rgba(255,255,255,.7)}.pf-bu-hero.pf-bu-is-black .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-hero.pf-bu-is-black .pf-bu-navbar-link:hover,.pf-bu-hero.pf-bu-is-black a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-hero.pf-bu-is-black a.pf-bu-navbar-item:hover{background-color:#000;color:#fff}.pf-bu-hero.pf-bu-is-black .pf-bu-tabs a{color:#fff;opacity:.9}.pf-bu-hero.pf-bu-is-black .pf-bu-tabs a:hover{opacity:1}.pf-bu-hero.pf-bu-is-black .pf-bu-tabs li.pf-bu-is-active a{opacity:1}.pf-bu-hero.pf-bu-is-black .pf-bu-tabs.pf-bu-is-boxed a,.pf-bu-hero.pf-bu-is-black .pf-bu-tabs.pf-bu-is-toggle a{color:#fff}.pf-bu-hero.pf-bu-is-black .pf-bu-tabs.pf-bu-is-boxed a:hover,.pf-bu-hero.pf-bu-is-black .pf-bu-tabs.pf-bu-is-toggle a:hover{background-color:rgba(10,10,10,.1)}.pf-bu-hero.pf-bu-is-black .pf-bu-tabs.pf-bu-is-boxed li.pf-bu-is-active a,.pf-bu-hero.pf-bu-is-black .pf-bu-tabs.pf-bu-is-boxed li.pf-bu-is-active a:hover,.pf-bu-hero.pf-bu-is-black .pf-bu-tabs.pf-bu-is-toggle li.pf-bu-is-active a,.pf-bu-hero.pf-bu-is-black .pf-bu-tabs.pf-bu-is-toggle li.pf-bu-is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.pf-bu-hero.pf-bu-is-black.pf-bu-is-bold{background-image:linear-gradient(141deg,#000 0,#0a0a0a 71%,#181616 100%)}@media screen and (max-width:768px){.pf-bu-hero.pf-bu-is-black.pf-bu-is-bold .pf-bu-navbar-menu{background-image:linear-gradient(141deg,#000 0,#0a0a0a 71%,#181616 100%)}}.pf-bu-hero.pf-bu-is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.pf-bu-hero.pf-bu-is-light a:not(.pf-bu-button):not(.pf-bu-dropdown-item):not(.pf-bu-tag):not(.pf-bu-pagination-link.pf-bu-is-current),.pf-bu-hero.pf-bu-is-light strong{color:inherit}.pf-bu-hero.pf-bu-is-light .pf-bu-title{color:rgba(0,0,0,.7)}.pf-bu-hero.pf-bu-is-light .pf-bu-subtitle{color:rgba(0,0,0,.9)}.pf-bu-hero.pf-bu-is-light .pf-bu-subtitle a:not(.pf-bu-button),.pf-bu-hero.pf-bu-is-light .pf-bu-subtitle strong{color:rgba(0,0,0,.7)}@media screen and (max-width:1023px){.pf-bu-hero.pf-bu-is-light .pf-bu-navbar-menu{background-color:#f5f5f5}}.pf-bu-hero.pf-bu-is-light .pf-bu-navbar-item,.pf-bu-hero.pf-bu-is-light .pf-bu-navbar-link{color:rgba(0,0,0,.7)}.pf-bu-hero.pf-bu-is-light .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-hero.pf-bu-is-light .pf-bu-navbar-link:hover,.pf-bu-hero.pf-bu-is-light a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-hero.pf-bu-is-light a.pf-bu-navbar-item:hover{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.pf-bu-hero.pf-bu-is-light .pf-bu-tabs a{color:rgba(0,0,0,.7);opacity:.9}.pf-bu-hero.pf-bu-is-light .pf-bu-tabs a:hover{opacity:1}.pf-bu-hero.pf-bu-is-light .pf-bu-tabs li.pf-bu-is-active a{opacity:1}.pf-bu-hero.pf-bu-is-light .pf-bu-tabs.pf-bu-is-boxed a,.pf-bu-hero.pf-bu-is-light .pf-bu-tabs.pf-bu-is-toggle a{color:rgba(0,0,0,.7)}.pf-bu-hero.pf-bu-is-light .pf-bu-tabs.pf-bu-is-boxed a:hover,.pf-bu-hero.pf-bu-is-light .pf-bu-tabs.pf-bu-is-toggle a:hover{background-color:rgba(10,10,10,.1)}.pf-bu-hero.pf-bu-is-light .pf-bu-tabs.pf-bu-is-boxed li.pf-bu-is-active a,.pf-bu-hero.pf-bu-is-light .pf-bu-tabs.pf-bu-is-boxed li.pf-bu-is-active a:hover,.pf-bu-hero.pf-bu-is-light .pf-bu-tabs.pf-bu-is-toggle li.pf-bu-is-active a,.pf-bu-hero.pf-bu-is-light .pf-bu-tabs.pf-bu-is-toggle li.pf-bu-is-active a:hover{background-color:rgba(0,0,0,.7);border-color:rgba(0,0,0,.7);color:#f5f5f5}.pf-bu-hero.pf-bu-is-light.pf-bu-is-bold{background-image:linear-gradient(141deg,#dfd8d9 0,#f5f5f5 71%,#fff 100%)}@media screen and (max-width:768px){.pf-bu-hero.pf-bu-is-light.pf-bu-is-bold .pf-bu-navbar-menu{background-image:linear-gradient(141deg,#dfd8d9 0,#f5f5f5 71%,#fff 100%)}}.pf-bu-hero.pf-bu-is-dark{background-color:#363636;color:#fff}.pf-bu-hero.pf-bu-is-dark a:not(.pf-bu-button):not(.pf-bu-dropdown-item):not(.pf-bu-tag):not(.pf-bu-pagination-link.pf-bu-is-current),.pf-bu-hero.pf-bu-is-dark strong{color:inherit}.pf-bu-hero.pf-bu-is-dark .pf-bu-title{color:#fff}.pf-bu-hero.pf-bu-is-dark .pf-bu-subtitle{color:rgba(255,255,255,.9)}.pf-bu-hero.pf-bu-is-dark .pf-bu-subtitle a:not(.pf-bu-button),.pf-bu-hero.pf-bu-is-dark .pf-bu-subtitle strong{color:#fff}@media screen and (max-width:1023px){.pf-bu-hero.pf-bu-is-dark .pf-bu-navbar-menu{background-color:#363636}}.pf-bu-hero.pf-bu-is-dark .pf-bu-navbar-item,.pf-bu-hero.pf-bu-is-dark .pf-bu-navbar-link{color:rgba(255,255,255,.7)}.pf-bu-hero.pf-bu-is-dark .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-hero.pf-bu-is-dark .pf-bu-navbar-link:hover,.pf-bu-hero.pf-bu-is-dark a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-hero.pf-bu-is-dark a.pf-bu-navbar-item:hover{background-color:#292929;color:#fff}.pf-bu-hero.pf-bu-is-dark .pf-bu-tabs a{color:#fff;opacity:.9}.pf-bu-hero.pf-bu-is-dark .pf-bu-tabs a:hover{opacity:1}.pf-bu-hero.pf-bu-is-dark .pf-bu-tabs li.pf-bu-is-active a{opacity:1}.pf-bu-hero.pf-bu-is-dark .pf-bu-tabs.pf-bu-is-boxed a,.pf-bu-hero.pf-bu-is-dark .pf-bu-tabs.pf-bu-is-toggle a{color:#fff}.pf-bu-hero.pf-bu-is-dark .pf-bu-tabs.pf-bu-is-boxed a:hover,.pf-bu-hero.pf-bu-is-dark .pf-bu-tabs.pf-bu-is-toggle a:hover{background-color:rgba(10,10,10,.1)}.pf-bu-hero.pf-bu-is-dark .pf-bu-tabs.pf-bu-is-boxed li.pf-bu-is-active a,.pf-bu-hero.pf-bu-is-dark .pf-bu-tabs.pf-bu-is-boxed li.pf-bu-is-active a:hover,.pf-bu-hero.pf-bu-is-dark .pf-bu-tabs.pf-bu-is-toggle li.pf-bu-is-active a,.pf-bu-hero.pf-bu-is-dark .pf-bu-tabs.pf-bu-is-toggle li.pf-bu-is-active a:hover{background-color:#fff;border-color:#fff;color:#363636}.pf-bu-hero.pf-bu-is-dark.pf-bu-is-bold{background-image:linear-gradient(141deg,#1f191a 0,#363636 71%,#46403f 100%)}@media screen and (max-width:768px){.pf-bu-hero.pf-bu-is-dark.pf-bu-is-bold .pf-bu-navbar-menu{background-image:linear-gradient(141deg,#1f191a 0,#363636 71%,#46403f 100%)}}.pf-bu-hero.pf-bu-is-primary{background-color:#00d1b2;color:#fff}.pf-bu-hero.pf-bu-is-primary a:not(.pf-bu-button):not(.pf-bu-dropdown-item):not(.pf-bu-tag):not(.pf-bu-pagination-link.pf-bu-is-current),.pf-bu-hero.pf-bu-is-primary strong{color:inherit}.pf-bu-hero.pf-bu-is-primary .pf-bu-title{color:#fff}.pf-bu-hero.pf-bu-is-primary .pf-bu-subtitle{color:rgba(255,255,255,.9)}.pf-bu-hero.pf-bu-is-primary .pf-bu-subtitle a:not(.pf-bu-button),.pf-bu-hero.pf-bu-is-primary .pf-bu-subtitle strong{color:#fff}@media screen and (max-width:1023px){.pf-bu-hero.pf-bu-is-primary .pf-bu-navbar-menu{background-color:#00d1b2}}.pf-bu-hero.pf-bu-is-primary .pf-bu-navbar-item,.pf-bu-hero.pf-bu-is-primary .pf-bu-navbar-link{color:rgba(255,255,255,.7)}.pf-bu-hero.pf-bu-is-primary .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-hero.pf-bu-is-primary .pf-bu-navbar-link:hover,.pf-bu-hero.pf-bu-is-primary a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-hero.pf-bu-is-primary a.pf-bu-navbar-item:hover{background-color:#00b89c;color:#fff}.pf-bu-hero.pf-bu-is-primary .pf-bu-tabs a{color:#fff;opacity:.9}.pf-bu-hero.pf-bu-is-primary .pf-bu-tabs a:hover{opacity:1}.pf-bu-hero.pf-bu-is-primary .pf-bu-tabs li.pf-bu-is-active a{opacity:1}.pf-bu-hero.pf-bu-is-primary .pf-bu-tabs.pf-bu-is-boxed a,.pf-bu-hero.pf-bu-is-primary .pf-bu-tabs.pf-bu-is-toggle a{color:#fff}.pf-bu-hero.pf-bu-is-primary .pf-bu-tabs.pf-bu-is-boxed a:hover,.pf-bu-hero.pf-bu-is-primary .pf-bu-tabs.pf-bu-is-toggle a:hover{background-color:rgba(10,10,10,.1)}.pf-bu-hero.pf-bu-is-primary .pf-bu-tabs.pf-bu-is-boxed li.pf-bu-is-active a,.pf-bu-hero.pf-bu-is-primary .pf-bu-tabs.pf-bu-is-boxed li.pf-bu-is-active a:hover,.pf-bu-hero.pf-bu-is-primary .pf-bu-tabs.pf-bu-is-toggle li.pf-bu-is-active a,.pf-bu-hero.pf-bu-is-primary .pf-bu-tabs.pf-bu-is-toggle li.pf-bu-is-active a:hover{background-color:#fff;border-color:#fff;color:#00d1b2}.pf-bu-hero.pf-bu-is-primary.pf-bu-is-bold{background-image:linear-gradient(141deg,#009e6c 0,#00d1b2 71%,#00e7eb 100%)}@media screen and (max-width:768px){.pf-bu-hero.pf-bu-is-primary.pf-bu-is-bold .pf-bu-navbar-menu{background-image:linear-gradient(141deg,#009e6c 0,#00d1b2 71%,#00e7eb 100%)}}.pf-bu-hero.pf-bu-is-link{background-color:#3273dc;color:#fff}.pf-bu-hero.pf-bu-is-link a:not(.pf-bu-button):not(.pf-bu-dropdown-item):not(.pf-bu-tag):not(.pf-bu-pagination-link.pf-bu-is-current),.pf-bu-hero.pf-bu-is-link strong{color:inherit}.pf-bu-hero.pf-bu-is-link .pf-bu-title{color:#fff}.pf-bu-hero.pf-bu-is-link .pf-bu-subtitle{color:rgba(255,255,255,.9)}.pf-bu-hero.pf-bu-is-link .pf-bu-subtitle a:not(.pf-bu-button),.pf-bu-hero.pf-bu-is-link .pf-bu-subtitle strong{color:#fff}@media screen and (max-width:1023px){.pf-bu-hero.pf-bu-is-link .pf-bu-navbar-menu{background-color:#3273dc}}.pf-bu-hero.pf-bu-is-link .pf-bu-navbar-item,.pf-bu-hero.pf-bu-is-link .pf-bu-navbar-link{color:rgba(255,255,255,.7)}.pf-bu-hero.pf-bu-is-link .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-hero.pf-bu-is-link .pf-bu-navbar-link:hover,.pf-bu-hero.pf-bu-is-link a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-hero.pf-bu-is-link a.pf-bu-navbar-item:hover{background-color:#2366d1;color:#fff}.pf-bu-hero.pf-bu-is-link .pf-bu-tabs a{color:#fff;opacity:.9}.pf-bu-hero.pf-bu-is-link .pf-bu-tabs a:hover{opacity:1}.pf-bu-hero.pf-bu-is-link .pf-bu-tabs li.pf-bu-is-active a{opacity:1}.pf-bu-hero.pf-bu-is-link .pf-bu-tabs.pf-bu-is-boxed a,.pf-bu-hero.pf-bu-is-link .pf-bu-tabs.pf-bu-is-toggle a{color:#fff}.pf-bu-hero.pf-bu-is-link .pf-bu-tabs.pf-bu-is-boxed a:hover,.pf-bu-hero.pf-bu-is-link .pf-bu-tabs.pf-bu-is-toggle a:hover{background-color:rgba(10,10,10,.1)}.pf-bu-hero.pf-bu-is-link .pf-bu-tabs.pf-bu-is-boxed li.pf-bu-is-active a,.pf-bu-hero.pf-bu-is-link .pf-bu-tabs.pf-bu-is-boxed li.pf-bu-is-active a:hover,.pf-bu-hero.pf-bu-is-link .pf-bu-tabs.pf-bu-is-toggle li.pf-bu-is-active a,.pf-bu-hero.pf-bu-is-link .pf-bu-tabs.pf-bu-is-toggle li.pf-bu-is-active a:hover{background-color:#fff;border-color:#fff;color:#3273dc}.pf-bu-hero.pf-bu-is-link.pf-bu-is-bold{background-image:linear-gradient(141deg,#1577c6 0,#3273dc 71%,#4366e5 100%)}@media screen and (max-width:768px){.pf-bu-hero.pf-bu-is-link.pf-bu-is-bold .pf-bu-navbar-menu{background-image:linear-gradient(141deg,#1577c6 0,#3273dc 71%,#4366e5 100%)}}.pf-bu-hero.pf-bu-is-info{background-color:#3298dc;color:#fff}.pf-bu-hero.pf-bu-is-info a:not(.pf-bu-button):not(.pf-bu-dropdown-item):not(.pf-bu-tag):not(.pf-bu-pagination-link.pf-bu-is-current),.pf-bu-hero.pf-bu-is-info strong{color:inherit}.pf-bu-hero.pf-bu-is-info .pf-bu-title{color:#fff}.pf-bu-hero.pf-bu-is-info .pf-bu-subtitle{color:rgba(255,255,255,.9)}.pf-bu-hero.pf-bu-is-info .pf-bu-subtitle a:not(.pf-bu-button),.pf-bu-hero.pf-bu-is-info .pf-bu-subtitle strong{color:#fff}@media screen and (max-width:1023px){.pf-bu-hero.pf-bu-is-info .pf-bu-navbar-menu{background-color:#3298dc}}.pf-bu-hero.pf-bu-is-info .pf-bu-navbar-item,.pf-bu-hero.pf-bu-is-info .pf-bu-navbar-link{color:rgba(255,255,255,.7)}.pf-bu-hero.pf-bu-is-info .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-hero.pf-bu-is-info .pf-bu-navbar-link:hover,.pf-bu-hero.pf-bu-is-info a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-hero.pf-bu-is-info a.pf-bu-navbar-item:hover{background-color:#238cd1;color:#fff}.pf-bu-hero.pf-bu-is-info .pf-bu-tabs a{color:#fff;opacity:.9}.pf-bu-hero.pf-bu-is-info .pf-bu-tabs a:hover{opacity:1}.pf-bu-hero.pf-bu-is-info .pf-bu-tabs li.pf-bu-is-active a{opacity:1}.pf-bu-hero.pf-bu-is-info .pf-bu-tabs.pf-bu-is-boxed a,.pf-bu-hero.pf-bu-is-info .pf-bu-tabs.pf-bu-is-toggle a{color:#fff}.pf-bu-hero.pf-bu-is-info .pf-bu-tabs.pf-bu-is-boxed a:hover,.pf-bu-hero.pf-bu-is-info .pf-bu-tabs.pf-bu-is-toggle a:hover{background-color:rgba(10,10,10,.1)}.pf-bu-hero.pf-bu-is-info .pf-bu-tabs.pf-bu-is-boxed li.pf-bu-is-active a,.pf-bu-hero.pf-bu-is-info .pf-bu-tabs.pf-bu-is-boxed li.pf-bu-is-active a:hover,.pf-bu-hero.pf-bu-is-info .pf-bu-tabs.pf-bu-is-toggle li.pf-bu-is-active a,.pf-bu-hero.pf-bu-is-info .pf-bu-tabs.pf-bu-is-toggle li.pf-bu-is-active a:hover{background-color:#fff;border-color:#fff;color:#3298dc}.pf-bu-hero.pf-bu-is-info.pf-bu-is-bold{background-image:linear-gradient(141deg,#159dc6 0,#3298dc 71%,#4389e5 100%)}@media screen and (max-width:768px){.pf-bu-hero.pf-bu-is-info.pf-bu-is-bold .pf-bu-navbar-menu{background-image:linear-gradient(141deg,#159dc6 0,#3298dc 71%,#4389e5 100%)}}.pf-bu-hero.pf-bu-is-success{background-color:#48c774;color:#fff}.pf-bu-hero.pf-bu-is-success a:not(.pf-bu-button):not(.pf-bu-dropdown-item):not(.pf-bu-tag):not(.pf-bu-pagination-link.pf-bu-is-current),.pf-bu-hero.pf-bu-is-success strong{color:inherit}.pf-bu-hero.pf-bu-is-success .pf-bu-title{color:#fff}.pf-bu-hero.pf-bu-is-success .pf-bu-subtitle{color:rgba(255,255,255,.9)}.pf-bu-hero.pf-bu-is-success .pf-bu-subtitle a:not(.pf-bu-button),.pf-bu-hero.pf-bu-is-success .pf-bu-subtitle strong{color:#fff}@media screen and (max-width:1023px){.pf-bu-hero.pf-bu-is-success .pf-bu-navbar-menu{background-color:#48c774}}.pf-bu-hero.pf-bu-is-success .pf-bu-navbar-item,.pf-bu-hero.pf-bu-is-success .pf-bu-navbar-link{color:rgba(255,255,255,.7)}.pf-bu-hero.pf-bu-is-success .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-hero.pf-bu-is-success .pf-bu-navbar-link:hover,.pf-bu-hero.pf-bu-is-success a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-hero.pf-bu-is-success a.pf-bu-navbar-item:hover{background-color:#3abb67;color:#fff}.pf-bu-hero.pf-bu-is-success .pf-bu-tabs a{color:#fff;opacity:.9}.pf-bu-hero.pf-bu-is-success .pf-bu-tabs a:hover{opacity:1}.pf-bu-hero.pf-bu-is-success .pf-bu-tabs li.pf-bu-is-active a{opacity:1}.pf-bu-hero.pf-bu-is-success .pf-bu-tabs.pf-bu-is-boxed a,.pf-bu-hero.pf-bu-is-success .pf-bu-tabs.pf-bu-is-toggle a{color:#fff}.pf-bu-hero.pf-bu-is-success .pf-bu-tabs.pf-bu-is-boxed a:hover,.pf-bu-hero.pf-bu-is-success .pf-bu-tabs.pf-bu-is-toggle a:hover{background-color:rgba(10,10,10,.1)}.pf-bu-hero.pf-bu-is-success .pf-bu-tabs.pf-bu-is-boxed li.pf-bu-is-active a,.pf-bu-hero.pf-bu-is-success .pf-bu-tabs.pf-bu-is-boxed li.pf-bu-is-active a:hover,.pf-bu-hero.pf-bu-is-success .pf-bu-tabs.pf-bu-is-toggle li.pf-bu-is-active a,.pf-bu-hero.pf-bu-is-success .pf-bu-tabs.pf-bu-is-toggle li.pf-bu-is-active a:hover{background-color:#fff;border-color:#fff;color:#48c774}.pf-bu-hero.pf-bu-is-success.pf-bu-is-bold{background-image:linear-gradient(141deg,#29b342 0,#48c774 71%,#56d296 100%)}@media screen and (max-width:768px){.pf-bu-hero.pf-bu-is-success.pf-bu-is-bold .pf-bu-navbar-menu{background-image:linear-gradient(141deg,#29b342 0,#48c774 71%,#56d296 100%)}}.pf-bu-hero.pf-bu-is-warning{background-color:#ffdd57;color:rgba(0,0,0,.7)}.pf-bu-hero.pf-bu-is-warning a:not(.pf-bu-button):not(.pf-bu-dropdown-item):not(.pf-bu-tag):not(.pf-bu-pagination-link.pf-bu-is-current),.pf-bu-hero.pf-bu-is-warning strong{color:inherit}.pf-bu-hero.pf-bu-is-warning .pf-bu-title{color:rgba(0,0,0,.7)}.pf-bu-hero.pf-bu-is-warning .pf-bu-subtitle{color:rgba(0,0,0,.9)}.pf-bu-hero.pf-bu-is-warning .pf-bu-subtitle a:not(.pf-bu-button),.pf-bu-hero.pf-bu-is-warning .pf-bu-subtitle strong{color:rgba(0,0,0,.7)}@media screen and (max-width:1023px){.pf-bu-hero.pf-bu-is-warning .pf-bu-navbar-menu{background-color:#ffdd57}}.pf-bu-hero.pf-bu-is-warning .pf-bu-navbar-item,.pf-bu-hero.pf-bu-is-warning .pf-bu-navbar-link{color:rgba(0,0,0,.7)}.pf-bu-hero.pf-bu-is-warning .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-hero.pf-bu-is-warning .pf-bu-navbar-link:hover,.pf-bu-hero.pf-bu-is-warning a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-hero.pf-bu-is-warning a.pf-bu-navbar-item:hover{background-color:#ffd83d;color:rgba(0,0,0,.7)}.pf-bu-hero.pf-bu-is-warning .pf-bu-tabs a{color:rgba(0,0,0,.7);opacity:.9}.pf-bu-hero.pf-bu-is-warning .pf-bu-tabs a:hover{opacity:1}.pf-bu-hero.pf-bu-is-warning .pf-bu-tabs li.pf-bu-is-active a{opacity:1}.pf-bu-hero.pf-bu-is-warning .pf-bu-tabs.pf-bu-is-boxed a,.pf-bu-hero.pf-bu-is-warning .pf-bu-tabs.pf-bu-is-toggle a{color:rgba(0,0,0,.7)}.pf-bu-hero.pf-bu-is-warning .pf-bu-tabs.pf-bu-is-boxed a:hover,.pf-bu-hero.pf-bu-is-warning .pf-bu-tabs.pf-bu-is-toggle a:hover{background-color:rgba(10,10,10,.1)}.pf-bu-hero.pf-bu-is-warning .pf-bu-tabs.pf-bu-is-boxed li.pf-bu-is-active a,.pf-bu-hero.pf-bu-is-warning .pf-bu-tabs.pf-bu-is-boxed li.pf-bu-is-active a:hover,.pf-bu-hero.pf-bu-is-warning .pf-bu-tabs.pf-bu-is-toggle li.pf-bu-is-active a,.pf-bu-hero.pf-bu-is-warning .pf-bu-tabs.pf-bu-is-toggle li.pf-bu-is-active a:hover{background-color:rgba(0,0,0,.7);border-color:rgba(0,0,0,.7);color:#ffdd57}.pf-bu-hero.pf-bu-is-warning.pf-bu-is-bold{background-image:linear-gradient(141deg,#ffaf24 0,#ffdd57 71%,#fffa70 100%)}@media screen and (max-width:768px){.pf-bu-hero.pf-bu-is-warning.pf-bu-is-bold .pf-bu-navbar-menu{background-image:linear-gradient(141deg,#ffaf24 0,#ffdd57 71%,#fffa70 100%)}}.pf-bu-hero.pf-bu-is-danger{background-color:#f14668;color:#fff}.pf-bu-hero.pf-bu-is-danger a:not(.pf-bu-button):not(.pf-bu-dropdown-item):not(.pf-bu-tag):not(.pf-bu-pagination-link.pf-bu-is-current),.pf-bu-hero.pf-bu-is-danger strong{color:inherit}.pf-bu-hero.pf-bu-is-danger .pf-bu-title{color:#fff}.pf-bu-hero.pf-bu-is-danger .pf-bu-subtitle{color:rgba(255,255,255,.9)}.pf-bu-hero.pf-bu-is-danger .pf-bu-subtitle a:not(.pf-bu-button),.pf-bu-hero.pf-bu-is-danger .pf-bu-subtitle strong{color:#fff}@media screen and (max-width:1023px){.pf-bu-hero.pf-bu-is-danger .pf-bu-navbar-menu{background-color:#f14668}}.pf-bu-hero.pf-bu-is-danger .pf-bu-navbar-item,.pf-bu-hero.pf-bu-is-danger .pf-bu-navbar-link{color:rgba(255,255,255,.7)}.pf-bu-hero.pf-bu-is-danger .pf-bu-navbar-link.pf-bu-is-active,.pf-bu-hero.pf-bu-is-danger .pf-bu-navbar-link:hover,.pf-bu-hero.pf-bu-is-danger a.pf-bu-navbar-item.pf-bu-is-active,.pf-bu-hero.pf-bu-is-danger a.pf-bu-navbar-item:hover{background-color:#ef2e55;color:#fff}.pf-bu-hero.pf-bu-is-danger .pf-bu-tabs a{color:#fff;opacity:.9}.pf-bu-hero.pf-bu-is-danger .pf-bu-tabs a:hover{opacity:1}.pf-bu-hero.pf-bu-is-danger .pf-bu-tabs li.pf-bu-is-active a{opacity:1}.pf-bu-hero.pf-bu-is-danger .pf-bu-tabs.pf-bu-is-boxed a,.pf-bu-hero.pf-bu-is-danger .pf-bu-tabs.pf-bu-is-toggle a{color:#fff}.pf-bu-hero.pf-bu-is-danger .pf-bu-tabs.pf-bu-is-boxed a:hover,.pf-bu-hero.pf-bu-is-danger .pf-bu-tabs.pf-bu-is-toggle a:hover{background-color:rgba(10,10,10,.1)}.pf-bu-hero.pf-bu-is-danger .pf-bu-tabs.pf-bu-is-boxed li.pf-bu-is-active a,.pf-bu-hero.pf-bu-is-danger .pf-bu-tabs.pf-bu-is-boxed li.pf-bu-is-active a:hover,.pf-bu-hero.pf-bu-is-danger .pf-bu-tabs.pf-bu-is-toggle li.pf-bu-is-active a,.pf-bu-hero.pf-bu-is-danger .pf-bu-tabs.pf-bu-is-toggle li.pf-bu-is-active a:hover{background-color:#fff;border-color:#fff;color:#f14668}.pf-bu-hero.pf-bu-is-danger.pf-bu-is-bold{background-image:linear-gradient(141deg,#fa0a62 0,#f14668 71%,#f7595f 100%)}@media screen and (max-width:768px){.pf-bu-hero.pf-bu-is-danger.pf-bu-is-bold .pf-bu-navbar-menu{background-image:linear-gradient(141deg,#fa0a62 0,#f14668 71%,#f7595f 100%)}}.pf-bu-hero.pf-bu-is-small .pf-bu-hero-body{padding:1.5rem}@media screen and (min-width:769px),print{.pf-bu-hero.pf-bu-is-medium .pf-bu-hero-body{padding:9rem 1.5rem}}@media screen and (min-width:769px),print{.pf-bu-hero.pf-bu-is-large .pf-bu-hero-body{padding:18rem 1.5rem}}.pf-bu-hero.pf-bu-is-fullheight .pf-bu-hero-body,.pf-bu-hero.pf-bu-is-fullheight-with-navbar .pf-bu-hero-body,.pf-bu-hero.pf-bu-is-halfheight .pf-bu-hero-body{align-items:center;display:flex}.pf-bu-hero.pf-bu-is-fullheight .pf-bu-hero-body>.pf-bu-container,.pf-bu-hero.pf-bu-is-fullheight-with-navbar .pf-bu-hero-body>.pf-bu-container,.pf-bu-hero.pf-bu-is-halfheight .pf-bu-hero-body>.pf-bu-container{flex-grow:1;flex-shrink:1}.pf-bu-hero.pf-bu-is-halfheight{min-height:50vh}.pf-bu-hero.pf-bu-is-fullheight{min-height:100vh}.pf-bu-hero-video{overflow:hidden}.pf-bu-hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%,-50%,0)}.pf-bu-hero-video.pf-bu-is-transparent{opacity:.3}@media screen and (max-width:768px){.pf-bu-hero-video{display:none}}.pf-bu-hero-buttons{margin-top:1.5rem}@media screen and (max-width:768px){.pf-bu-hero-buttons .pf-bu-button{display:flex}.pf-bu-hero-buttons .pf-bu-button:not(:last-child){margin-bottom:.75rem}}@media screen and (min-width:769px),print{.pf-bu-hero-buttons{display:flex;justify-content:center}.pf-bu-hero-buttons .pf-bu-button:not(:last-child){margin-right:1.5rem}}.pf-bu-hero-foot,.pf-bu-hero-head{flex-grow:0;flex-shrink:0}.pf-bu-hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}.pf-bu-section{padding:3rem 1.5rem}@media screen and (min-width:1024px){.pf-bu-section.pf-bu-is-medium{padding:9rem 1.5rem}.pf-bu-section.pf-bu-is-large{padding:18rem 1.5rem}}.pf-bu-footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}
assets/css/lib/select2.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px;padding:1px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline{float:right}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #fff 50%, #eee 100%);background-image:-o-linear-gradient(top, #fff 50%, #eee 100%);background-image:linear-gradient(to bottom, #fff 50%, #eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eee 50%, #ccc 100%);background-image:-o-linear-gradient(top, #eee 50%, #ccc 100%);background-image:linear-gradient(to bottom, #eee 50%, #ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #fff 0%, #eee 50%);background-image:-o-linear-gradient(top, #fff 0%, #eee 50%);background-image:linear-gradient(to bottom, #fff 0%, #eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eee 50%, #fff 100%);background-image:-o-linear-gradient(top, #eee 50%, #fff 100%);background-image:linear-gradient(to bottom, #eee 50%, #fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{float:right;margin-left:5px;margin-right:auto}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb}
{images → assets/images}/pf-icon.png RENAMED
File without changes
assets/js/admin.js ADDED
@@ -0,0 +1,309 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Throughout the admin I chose to use slow animations to make it clear that stuff is being hidden or shown depending on settings.
2
+ (function ($, config) {
3
+ $(document).ready(function() {
4
+ initAll();
5
+ });
6
+
7
+ function initAll() {
8
+ $('#pf-tabs').tabs({
9
+ activate: function( event, ui ) {
10
+ $(ui.oldTab).removeClass('pf-bu-is-active');
11
+ $(ui.newTab).addClass('pf-bu-is-active');
12
+ }
13
+ });
14
+
15
+ var clipboard1 = new ClipboardJS('.pf-clipboard');
16
+ clipboard1.on('success', function(e) {
17
+ // no message needs to be shown.
18
+ });
19
+
20
+ initCustomButton();
21
+ initMisc();
22
+
23
+ initMediaUpload();
24
+
25
+ initCategories();
26
+ }
27
+
28
+ function initCategories() {
29
+ $('.pf-select2').select2();
30
+ }
31
+
32
+ function initMediaUpload() {
33
+ $('body').on('click', '.pf_upload_image_button', function(e){
34
+ var that = $(this);
35
+ var hidden = $(that).attr('data-pf-element');
36
+ e.preventDefault();
37
+
38
+ var button = $(this),
39
+ pf_uploader = wp.media({
40
+ title: config.i10n.upload_window_title,
41
+ library : {
42
+ uploadedTo : wp.media.view.settings.post.id,
43
+ type : 'image'
44
+ },
45
+ button: {
46
+ text: config.i10n.upload_window_button_title
47
+ },
48
+ multiple: false
49
+ }).on('select', function() {
50
+ var attachment = pf_uploader.state().get('selection').first().toJSON();
51
+ $(hidden).val(attachment.url).trigger('change');
52
+ $(hidden + '_label').html($('<img src="' + attachment.url + '">'));
53
+ })
54
+ .open();
55
+ });
56
+ }
57
+
58
+ function initCustomButton() {
59
+ if(! $('#custom-btn').prop('checked')){
60
+ $('div.custom-btn').addClass('disabled');
61
+ }
62
+ $('body').on('click', function(e) {
63
+ if($('#custom-btn').prop('checked')){
64
+ $('div.custom-btn').removeClass('disabled');
65
+ }else{
66
+ $('div.custom-btn').addClass('disabled');
67
+ }
68
+ });
69
+ }
70
+
71
+ function initMisc() {
72
+ $('.show_list').change(function() {
73
+ if ($('.show_list:checked').length == 0) {
74
+ $('.content_placement').hide('slow');
75
+ $('.content_placement input').prop('disabled', true);
76
+ $('.show_template').prop('checked', true);
77
+ } else {
78
+ $('.show_template').prop('checked', false);
79
+ $('.content_placement').show('slow');
80
+ $('.content_placement input').prop('disabled', false);
81
+ }
82
+
83
+ var postName = 'printfriendly_option[show_on_posts]';
84
+ var homeName = 'printfriendly_option[show_on_homepage]';
85
+
86
+ var optionName = $(this).attr('name');
87
+ if (optionName == homeName || optionName == postName){
88
+ if($(this).is(':checked')) {
89
+ $('#pf-categories').show('slow');
90
+ } else if(!$('input[name="' + homeName + '"]').is(':checked') && !$('input[name="' + postName + '"]').is(':checked')) {
91
+ $('#pf-categories').hide('slow');
92
+ }
93
+ }
94
+ }).change();
95
+
96
+ $('.show_template').change(function() {
97
+ if($(this).is(':checked')) {
98
+ $('.show_list').prop('checked', false);
99
+ $('.show_list').prop('disabled', true);
100
+ $('.content_placement').hide('slow');
101
+ $('.content_placement input').prop('disabled',true);
102
+ $('#pf-categories-metabox').hide('slow');
103
+ $('#pf-snippet').show('slow');
104
+ } else {
105
+ $('.show_list').prop('disabled', false);
106
+ $('.content_placement').show('slow');
107
+ $('.content_placement input').prop('disabled', false);
108
+ $('#pf-snippet').hide('slow');
109
+ }
110
+ }).change();
111
+
112
+ $('#toggle-categories').click(function() {
113
+ if($('#pf-categories-metabox').is(':visible')) {
114
+ $('#pf-categories-metabox').hide('slow');
115
+ } else {
116
+ $('#pf-categories-metabox').show('slow');
117
+ }
118
+ });
119
+
120
+ $(document).mouseup(function (e) {
121
+ var container = $("#pf-categories");
122
+
123
+ if (container.has(e.target).length === 0) {
124
+ $('#pf-categories-metabox').hide('slow');
125
+ }
126
+ });
127
+
128
+ $('.pf-color-picker').wpColorPicker({
129
+ change: function (event, ui) {
130
+ var hex = ui.color.toString();
131
+ $('#text_color').val('#' + hex);
132
+ $('#printfriendly-text2').css('color','#' + hex);
133
+ }
134
+ });
135
+
136
+ $('#text_size').change(function(){
137
+ size = $('#text_size').val();
138
+ $('#printfriendly-text2').css('font-size',parseInt(size));
139
+ }).change();
140
+
141
+ $('#css input').change(function() {
142
+ if($(this).is(':checked')) {
143
+ $(this).val('off');
144
+ $('#margin, #txt-color, #txt-size').hide('slow');
145
+ pf_reset_style();
146
+ } else {
147
+ $(this).val('on');
148
+ $('#margin, #txt-color, #txt-size').show('slow');
149
+ pf_apply_style();
150
+ }
151
+ }).change();
152
+
153
+ $('#custom_text').on('change keyup', function(){
154
+ pf_custom_text_change();
155
+ });
156
+
157
+ $("[name='printfriendly_option[custom_button_text]']").change(function(){
158
+ pf_custom_text_change();
159
+ });
160
+
161
+ function pf_custom_text_change(){
162
+ $('#buttongroup3 span:not(.printandpdf)').text( $('#custom_text').val() );
163
+ var newText = $('#custom-text-no').prop('checked') ? '' : $('#custom_text').val();
164
+ $('#printfriendly-text2').text( newText );
165
+ $('#printfriendly-text2').css('color','#' + $('#text_color').val());
166
+ }
167
+
168
+ function pf_initialize_preview(urlInputSelector, previewSelector) {
169
+ var el = $(urlInputSelector);
170
+ var imgUrl = $.trim(el.val());
171
+ var preview = $(previewSelector + '-preview');
172
+ var error = $(previewSelector + '-error');
173
+
174
+ el.on('input paste change keyup', function() {
175
+ setTimeout(function() {
176
+ // ie shows error if we try to merge the two below into a single statement
177
+ var img = $('<img/>');
178
+ var customButtonIcon = $("[name='printfriendly_option[custom_button_icon]']:checked").val();
179
+
180
+ if (customButtonIcon === 'custom-image') {
181
+ imgUrl = $('#custom_image').val();
182
+ } else if (customButtonIcon === 'no-image') {
183
+ imgUrl = '';
184
+ } else {
185
+ imgUrl = customButtonIcon;
186
+ }
187
+
188
+ preview.html('');
189
+ error.html('');
190
+ if(imgUrl != '') {
191
+ img.on('load', function(){
192
+ preview.html('').append(img);
193
+ });
194
+ img.on('error', function(){
195
+ error.html('<div class="error settings-error"><p><strong>' + config.i10n.invalid_image_url + '</strong></p></div>');
196
+ });
197
+ img.attr('src',imgUrl);
198
+ }
199
+ }, 100);
200
+ });
201
+ }
202
+
203
+ pf_initialize_preview('#custom_image', '#pf-custom-button');
204
+ pf_initialize_preview("[name='printfriendly_option[custom_button_icon]']", '#pf-custom-button');
205
+ pf_initialize_preview('#upload-an-image', '#pf-image');
206
+ //$('#custom_image, #upload-an-image').change();
207
+ $('#custom_image').on('focus', function() {
208
+ $('#custom-image').prop('checked', true);
209
+ $('#pf-custom-button-error').show();
210
+ });
211
+ $('#button-style input.radio').on('change', function() {
212
+ if($('#custom-image').is(':checked')) {
213
+ $('#pf-custom-button-error').show();
214
+ } else {
215
+ $('#pf-custom-button-error').hide();
216
+ }
217
+ }).change();
218
+
219
+ $('#pf-logo').on('change', function() {
220
+ if($(this).val() == 'favicon') {
221
+ $('.custom-logo, #image-preview').hide();
222
+ } else {
223
+ $('.custom-logo').css('display', 'inline-block');
224
+ $('#image-preview').show();
225
+ }
226
+ }).change();
227
+
228
+ $('#website_protocol').on('change', function() {
229
+ if($(this).val() == 'https') {
230
+ $('#https-beta-registration').show('slow');
231
+ } else {
232
+ $('#https-beta-registration').hide('slow');
233
+ }
234
+ }).change();
235
+
236
+ function pf_reset_style() {
237
+ $('#printfriendly-text2').css('font-size',14);
238
+ $('#printfriendly-text2').css('color','#000000');
239
+ }
240
+
241
+ function pf_apply_style() {
242
+ $('#printfriendly-text2').css('color', '#' + $('#text_color').val() );
243
+ size = $('#text_size').val();
244
+ $('#printfriendly-text2').css('font-size',parseInt(size));
245
+ }
246
+
247
+ // postboxes setup
248
+ $('.if-js-closed').removeClass('if-js-closed').addClass('closed');
249
+
250
+ // categories checkboxes
251
+ var category_ids = $('#category_ids').val();
252
+
253
+ if( typeof category_ids !== 'undefined' ) {
254
+ category_ids = category_ids.split(',');
255
+
256
+ if(category_ids[0] == 'all') {
257
+ var ids = [];
258
+ $('#categorydiv :checkbox').each(function() {
259
+ $(this).prop('checked', true);
260
+ });
261
+ $('#category-all :checkbox').each(function() {
262
+ ids.push($(this).val());
263
+ });
264
+ // for older wp versions we do not have per category settings so
265
+ // ids array will be empty and in that case we shouldn't replace 'all'
266
+ if(ids.length != 0) {
267
+ $('#category_ids').val(ids.join(','));
268
+ }
269
+ } else {
270
+
271
+ $('#categorydiv :checkbox').each(function() {
272
+ if($.inArray($(this).val(), category_ids) != -1) {
273
+ $(this).prop('checked', true);
274
+ }
275
+ });
276
+ }
277
+ }
278
+
279
+ $('#categorydiv :checkbox').click(function() {
280
+ var values = $('#category_ids').val();
281
+ var ids = [];
282
+ if(values != '')
283
+ ids = values.split(',');
284
+
285
+ var id = $(this).val();
286
+
287
+ if($(this).is(':checked'))
288
+ ids.push(id);
289
+ else {
290
+ ids = $.grep(ids, function(value) {
291
+ return value != id;
292
+ });
293
+ }
294
+
295
+ $('#category_ids').val(ids.join(','));
296
+ });
297
+
298
+ $('#custom_image').click(function() {
299
+ $("#custom-image-rb").prop('checked', true);
300
+ $("#custom-image-rb").trigger("change");
301
+ });
302
+
303
+ $('#custom_text').click(function() {
304
+ $("#custom-text-rb").prop('checked', true);
305
+ $("#custom-text-rb").trigger("change");
306
+ });
307
+ }
308
+
309
+ })(jQuery, config);
assets/js/admin_pro.js ADDED
@@ -0,0 +1,159 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function ($) {
2
+
3
+ $(document).ready(function($) {
4
+ $.fn.valid = function() {
5
+ return ! this[0] ? true : this[0].validity.valid;
6
+ };
7
+
8
+ // Development
9
+ // var API = 'http://localhost:3000/api/v3/trial_domains';
10
+
11
+ // Production
12
+ var API = 'https://www.printfriendly.com/api/v3/trial_domains';
13
+
14
+ var $pro = $('.pf-pro');
15
+ var $email = $('#pf-pro-email');
16
+ var $emailError = $('#pf-pro-email-error');
17
+ var $domain = $('#pf-pro-domain');
18
+ var $domainError = $('#pf-pro-domain-error');
19
+ var $statusHeader = $('#pf-pro-status-header');
20
+ var $statusMessage = $('#pf-pro-status-message');
21
+ var $activate = $('#pf-pro-activate');
22
+ var $activateBtn = $('#pf-pro-activate-btn');
23
+ var $buy = $('#pf-pro-buy');
24
+ var $details = $('#pf-pro-details');
25
+ var $buyBtn = $('#pf-pro-buy-btn');
26
+ var $communicationError = $('#pf-pro-communication-error');
27
+ var $communicationErrorMessage = $('#pf-pro-communication-error-message');
28
+ var $loading = $('#pf-pro-loading');
29
+ var $loadingMessage = $('#pf-pro-loading-message');
30
+
31
+ setupEvents();
32
+ validate();
33
+ checkStatus();
34
+
35
+ function setupEvents() {
36
+ $email.on('input', validate);
37
+ $domain.on('input', validate);
38
+ $activateBtn.click(activate);
39
+ $buyBtn.click(buy);
40
+ }
41
+
42
+ function validate() {
43
+ $emailError.toggle(!$email.valid());
44
+ $domainError.toggle(!$domain.valid());
45
+ $activateBtn.prop('disabled', !$email.valid() || !$domain.valid());
46
+ displayStatus('none');
47
+ }
48
+
49
+ function checkStatus() {
50
+ if ($email.valid() && $domain.valid()) {
51
+ showLoading(config.i10n.check_status);
52
+ $.getJSON(API + '/status', { domain: $domain.val() })
53
+ .done(handleResponse)
54
+ .fail(handleError)
55
+ .always(hideLoading);
56
+ }
57
+ }
58
+
59
+ function activate() {
60
+ if ($email.valid() && $domain.valid()) {
61
+ showLoading(config.i10n.activation);
62
+ $.post(API, { email: $email.val(), domain: $domain.val() })
63
+ .done(handleResponse)
64
+ .fail(handleError)
65
+ .always(hideLoading);
66
+ }
67
+ }
68
+
69
+ function buy() {
70
+ var url = 'https://www.printfriendly.com/button/pro?domain=' + $domain.val();
71
+ window.open(url,'_blank');
72
+ }
73
+
74
+ function handleResponse(data) {
75
+ $communicationError.hide();
76
+ displayStatus(data.status, data.message);
77
+ saveOptions();
78
+ }
79
+
80
+ function handleError(jqxhr, textStatus, error) {
81
+ var message = '';
82
+
83
+ if (jqxhr && jqxhr.responseJSON && jqxhr.responseJSON.errors) {
84
+ var errors = jqxhr.responseJSON.errors;
85
+
86
+ for(var prop in errors) {
87
+ var item = errors[prop];
88
+ message += prop + ': ' + item.join(', ') + "<br>";
89
+ }
90
+ } else {
91
+ message = textStatus;
92
+
93
+ if (error) {
94
+ message = + ', ' + error;
95
+ }
96
+
97
+ message += '. ' + config.i10n.connection;
98
+ }
99
+
100
+ $communicationErrorMessage.html(message);
101
+ $communicationError.show();
102
+ }
103
+
104
+ function showLoading(message) {
105
+ $loading.show();
106
+ $loadingMessage.text(message);
107
+ }
108
+
109
+ function hideLoading() {
110
+ $loading.hide();
111
+ }
112
+
113
+ function displayStatus(status, message) {
114
+ $statusHeader.removeClass('pf-text-success pf-text-warning pf-text-error');
115
+ $pro.removeClass('pf-notice-success pf-notice-warning pf-notice-error');
116
+ $statusMessage.text(message);
117
+
118
+ $activate.hide();
119
+ $buy.hide();
120
+ $details.hide();
121
+
122
+ switch(status) {
123
+ case 'none':
124
+ $activate.show();
125
+ $pro.addClass('pf-notice-warning');
126
+ $statusHeader.text(config.i10n.activate).addClass('pf-text-warning');
127
+ $('.password_protected_yes').attr('data-sub-status', 'none');
128
+ break;
129
+ case 'trial':
130
+ $buy.show();
131
+ $pro.addClass('pf-notice-success');
132
+ $statusHeader.text(config.i10n.active_trial).addClass('pf-text-success');
133
+ $('.password_protected_yes').attr('data-sub-status', 'trial');
134
+ break;
135
+ case 'pro':
136
+ $details.show();
137
+ $pro.addClass('pf-notice-success');
138
+ $statusHeader.text(config.i10n.active).addClass('pf-text-success');
139
+ $('.password_protected_yes').attr('data-sub-status', 'pro');
140
+ break;
141
+ case 'expired':
142
+ $buy.show();
143
+ $pro.addClass('pf-notice-error');
144
+ $statusHeader.text(config.i10n.expired).addClass('pf-text-error');
145
+ $('.password_protected_yes').attr('data-sub-status', 'expired');
146
+ break;
147
+ }
148
+ $('#password_protected').change();
149
+ $('#license_status').val(status);
150
+ $('#license_date').val(new Date().getTime());
151
+ }
152
+
153
+ function saveOptions() {
154
+ var formData = $('#pf-options-form').serialize();
155
+ $.post('options.php', formData).error(handleError);
156
+ }
157
+ });
158
+
159
+ })(jQuery, config);
assets/js/lib/clipboard.min.js ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ /*!
2
+ * clipboard.js v2.0.6
3
+ * https://clipboardjs.com/
4
+ *
5
+ * Licensed MIT © Zeno Rocha
6
+ */
7
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={134:(t,e,n)=>{"use strict";n.d(e,{default:()=>r});var e=n(817),o=n.n(e);function i(t){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function a(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}const c=function(){function e(t){!function(t){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this),this.resolveOptions(t),this.initSelection()}var t,n,r;return t=e,(n=[{key:"resolveOptions",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";e=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top="".concat(e,"px"),this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=o()(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=o()(this.target),this.copyText()}},{key:"copyText",value:function(){var e;try{e=document.execCommand(this.action)}catch(t){e=!1}this.handleResult(e)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),document.activeElement.blur(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==i(t)||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}])&&a(t.prototype,n),r&&a(t,r),e}();var e=n(279),l=n.n(e),e=n(370),u=n.n(e);function s(t){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function f(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function h(t,e){return(h=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function d(n){var r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=p(n);return t=r?(t=p(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments),e=this,!(t=t)||"object"!==s(t)&&"function"!=typeof t?function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}}function p(t){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function y(t,e){t="data-clipboard-".concat(t);if(e.hasAttribute(t))return e.getAttribute(t)}const r=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&h(t,e)}(o,l());var t,e,n,r=d(o);function o(t,e){var n;return function(t){if(!(t instanceof o))throw new TypeError("Cannot call a class as a function")}(this),(n=r.call(this)).resolveOptions(e),n.listenClick(t),n}return t=o,n=[{key:"isSupported",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:["copy","cut"],t="string"==typeof t?[t]:t,e=!!document.queryCommandSupported;return t.forEach(function(t){e=e&&!!document.queryCommandSupported(t)}),e}}],(e=[{key:"resolveOptions",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===s(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=u()(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){t=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new c({action:this.action(t),target:this.target(t),text:this.text(t),container:this.container,trigger:t,emitter:this})}},{key:"defaultAction",value:function(t){return y("action",t)}},{key:"defaultTarget",value:function(t){t=y("target",t);if(t)return document.querySelector(t)}},{key:"defaultText",value:function(t){return y("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}])&&f(t.prototype,e),n&&f(t,n),o}()},828:t=>{var e;"undefined"==typeof Element||Element.prototype.matches||((e=Element.prototype).matches=e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector),t.exports=function(t,e){for(;t&&9!==t.nodeType;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}},438:(t,e,n)=>{var a=n(828);function i(t,e,n,r,o){var i=function(e,n,t,r){return function(t){t.delegateTarget=a(t.target,n),t.delegateTarget&&r.call(e,t)}}.apply(this,arguments);return t.addEventListener(n,i,o),{destroy:function(){t.removeEventListener(n,i,o)}}}t.exports=function(t,e,n,r,o){return"function"==typeof t.addEventListener?i.apply(null,arguments):"function"==typeof n?i.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return i(t,e,n,r,o)}))}},879:(t,n)=>{n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},370:(t,e,n)=>{var u=n(879),s=n(438);t.exports=function(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!u.string(e))throw new TypeError("Second argument must be a String");if(!u.fn(n))throw new TypeError("Third argument must be a Function");if(u.node(t))return c=e,l=n,(a=t).addEventListener(c,l),{destroy:function(){a.removeEventListener(c,l)}};if(u.nodeList(t))return r=t,o=e,i=n,Array.prototype.forEach.call(r,function(t){t.addEventListener(o,i)}),{destroy:function(){Array.prototype.forEach.call(r,function(t){t.removeEventListener(o,i)})}};if(u.string(t))return t=t,e=e,n=n,s(document.body,t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList");var r,o,i,a,c,l}},817:t=>{t.exports=function(t){var e,n="SELECT"===t.nodeName?(t.focus(),t.value):"INPUT"===t.nodeName||"TEXTAREA"===t.nodeName?((e=t.hasAttribute("readonly"))||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),e||t.removeAttribute("readonly"),t.value):(t.hasAttribute("contenteditable")&&t.focus(),n=window.getSelection(),(e=document.createRange()).selectNodeContents(t),n.removeAllRanges(),n.addRange(e),n.toString());return n}},279:t=>{function e(){}e.prototype={on:function(t,e,n){var r=this.e||(this.e={});return(r[t]||(r[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var r=this;function o(){r.off(t,o),e.apply(n,arguments)}return o._=e,this.on(t,o,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),r=0,o=n.length;r<o;r++)n[r].fn.apply(n[r].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),r=n[t],o=[];if(r&&e)for(var i=0,a=r.length;i<a;i++)r[i].fn!==e&&r[i].fn._!==e&&o.push(r[i]);return o.length?n[t]=o:delete n[t],this}},t.exports=e,t.exports.TinyEmitter=e}},o={},r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r(134).default;function r(t){if(o[t])return o[t].exports;var e=o[t]={exports:{}};return n[t](e,e.exports,r),e.exports}var n,o});
assets/js/lib/select2.min.js ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
2
+ !function(n){"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof module&&module.exports?module.exports=function(e,t){return void 0===t&&(t="undefined"!=typeof window?require("jquery"):require("jquery")(e)),n(t),t}:n(jQuery)}(function(u){var e=function(){if(u&&u.fn&&u.fn.select2&&u.fn.select2.amd)var e=u.fn.select2.amd;var t,n,r,h,o,s,f,g,m,v,y,_,i,a,b;function w(e,t){return i.call(e,t)}function l(e,t){var n,r,i,o,s,a,l,c,u,d,p,h=t&&t.split("/"),f=y.map,g=f&&f["*"]||{};if(e){for(s=(e=e.split("/")).length-1,y.nodeIdCompat&&b.test(e[s])&&(e[s]=e[s].replace(b,"")),"."===e[0].charAt(0)&&h&&(e=h.slice(0,h.length-1).concat(e)),u=0;u<e.length;u++)if("."===(p=e[u]))e.splice(u,1),u-=1;else if(".."===p){if(0===u||1===u&&".."===e[2]||".."===e[u-1])continue;0<u&&(e.splice(u-1,2),u-=2)}e=e.join("/")}if((h||g)&&f){for(u=(n=e.split("/")).length;0<u;u-=1){if(r=n.slice(0,u).join("/"),h)for(d=h.length;0<d;d-=1)if(i=(i=f[h.slice(0,d).join("/")])&&i[r]){o=i,a=u;break}if(o)break;!l&&g&&g[r]&&(l=g[r],c=u)}!o&&l&&(o=l,a=c),o&&(n.splice(0,a,o),e=n.join("/"))}return e}function A(t,n){return function(){var e=a.call(arguments,0);return"string"!=typeof e[0]&&1===e.length&&e.push(null),s.apply(h,e.concat([t,n]))}}function x(t){return function(e){m[t]=e}}function D(e){if(w(v,e)){var t=v[e];delete v[e],_[e]=!0,o.apply(h,t)}if(!w(m,e)&&!w(_,e))throw new Error("No "+e);return m[e]}function c(e){var t,n=e?e.indexOf("!"):-1;return-1<n&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function S(e){return e?c(e):[]}return e&&e.requirejs||(e?n=e:e={},m={},v={},y={},_={},i=Object.prototype.hasOwnProperty,a=[].slice,b=/\.js$/,f=function(e,t){var n,r=c(e),i=r[0],o=t[1];return e=r[1],i&&(n=D(i=l(i,o))),i?e=n&&n.normalize?n.normalize(e,function(t){return function(e){return l(e,t)}}(o)):l(e,o):(i=(r=c(e=l(e,o)))[0],e=r[1],i&&(n=D(i))),{f:i?i+"!"+e:e,n:e,pr:i,p:n}},g={require:function(e){return A(e)},exports:function(e){var t=m[e];return void 0!==t?t:m[e]={}},module:function(e){return{id:e,uri:"",exports:m[e],config:function(e){return function(){return y&&y.config&&y.config[e]||{}}}(e)}}},o=function(e,t,n,r){var i,o,s,a,l,c,u,d=[],p=typeof n;if(c=S(r=r||e),"undefined"==p||"function"==p){for(t=!t.length&&n.length?["require","exports","module"]:t,l=0;l<t.length;l+=1)if("require"===(o=(a=f(t[l],c)).f))d[l]=g.require(e);else if("exports"===o)d[l]=g.exports(e),u=!0;else if("module"===o)i=d[l]=g.module(e);else if(w(m,o)||w(v,o)||w(_,o))d[l]=D(o);else{if(!a.p)throw new Error(e+" missing "+o);a.p.load(a.n,A(r,!0),x(o),{}),d[l]=m[o]}s=n?n.apply(m[e],d):void 0,e&&(i&&i.exports!==h&&i.exports!==m[e]?m[e]=i.exports:s===h&&u||(m[e]=s))}else e&&(m[e]=n)},t=n=s=function(e,t,n,r,i){if("string"==typeof e)return g[e]?g[e](t):D(f(e,S(t)).f);if(!e.splice){if((y=e).deps&&s(y.deps,y.callback),!t)return;t.splice?(e=t,t=n,n=null):e=h}return t=t||function(){},"function"==typeof n&&(n=r,r=i),r?o(h,e,t,n):setTimeout(function(){o(h,e,t,n)},4),s},s.config=function(e){return s(e)},t._defined=m,(r=function(e,t,n){if("string"!=typeof e)throw new Error("See almond README: incorrect module build, no module name");t.splice||(n=t,t=[]),w(m,e)||w(v,e)||(v[e]=[e,t,n])}).amd={jQuery:!0},e.requirejs=t,e.require=n,e.define=r),e.define("almond",function(){}),e.define("jquery",[],function(){var e=u||$;return null==e&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),e}),e.define("select2/utils",["jquery"],function(o){var i={};function u(e){var t=e.prototype,n=[];for(var r in t){"function"==typeof t[r]&&"constructor"!==r&&n.push(r)}return n}i.Extend=function(e,t){var n={}.hasOwnProperty;function r(){this.constructor=e}for(var i in t)n.call(t,i)&&(e[i]=t[i]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},i.Decorate=function(r,i){var e=u(i),t=u(r);function o(){var e=Array.prototype.unshift,t=i.prototype.constructor.length,n=r.prototype.constructor;0<t&&(e.call(arguments,r.prototype.constructor),n=i.prototype.constructor),n.apply(this,arguments)}i.displayName=r.displayName,o.prototype=new function(){this.constructor=o};for(var n=0;n<t.length;n++){var s=t[n];o.prototype[s]=r.prototype[s]}function a(e){var t=function(){};e in o.prototype&&(t=o.prototype[e]);var n=i.prototype[e];return function(){return Array.prototype.unshift.call(arguments,t),n.apply(this,arguments)}}for(var l=0;l<e.length;l++){var c=e[l];o.prototype[c]=a(c)}return o};function e(){this.listeners={}}e.prototype.on=function(e,t){this.listeners=this.listeners||{},e in this.listeners?this.listeners[e].push(t):this.listeners[e]=[t]},e.prototype.trigger=function(e){var t=Array.prototype.slice,n=t.call(arguments,1);this.listeners=this.listeners||{},null==n&&(n=[]),0===n.length&&n.push({}),(n[0]._type=e)in this.listeners&&this.invoke(this.listeners[e],t.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},e.prototype.invoke=function(e,t){for(var n=0,r=e.length;n<r;n++)e[n].apply(this,t)},i.Observable=e,i.generateChars=function(e){for(var t="",n=0;n<e;n++){t+=Math.floor(36*Math.random()).toString(36)}return t},i.bind=function(e,t){return function(){e.apply(t,arguments)}},i._convertData=function(e){for(var t in e){var n=t.split("-"),r=e;if(1!==n.length){for(var i=0;i<n.length;i++){var o=n[i];(o=o.substring(0,1).toLowerCase()+o.substring(1))in r||(r[o]={}),i==n.length-1&&(r[o]=e[t]),r=r[o]}delete e[t]}}return e},i.hasScroll=function(e,t){var n=o(t),r=t.style.overflowX,i=t.style.overflowY;return(r!==i||"hidden"!==i&&"visible"!==i)&&("scroll"===r||"scroll"===i||(n.innerHeight()<t.scrollHeight||n.innerWidth()<t.scrollWidth))},i.escapeMarkup=function(e){var t={"\\":"&#92;","&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#47;"};return"string"!=typeof e?e:String(e).replace(/[&<>"'\/\\]/g,function(e){return t[e]})},i.appendMany=function(e,t){if("1.7"===o.fn.jquery.substr(0,3)){var n=o();o.map(t,function(e){n=n.add(e)}),t=n}e.append(t)},i.__cache={};var n=0;return i.GetUniqueElementId=function(e){var t=e.getAttribute("data-select2-id");return null==t&&(e.id?(t=e.id,e.setAttribute("data-select2-id",t)):(e.setAttribute("data-select2-id",++n),t=n.toString())),t},i.StoreData=function(e,t,n){var r=i.GetUniqueElementId(e);i.__cache[r]||(i.__cache[r]={}),i.__cache[r][t]=n},i.GetData=function(e,t){var n=i.GetUniqueElementId(e);return t?i.__cache[n]&&null!=i.__cache[n][t]?i.__cache[n][t]:o(e).data(t):i.__cache[n]},i.RemoveData=function(e){var t=i.GetUniqueElementId(e);null!=i.__cache[t]&&delete i.__cache[t],e.removeAttribute("data-select2-id")},i}),e.define("select2/results",["jquery","./utils"],function(h,f){function r(e,t,n){this.$element=e,this.data=n,this.options=t,r.__super__.constructor.call(this)}return f.Extend(r,f.Observable),r.prototype.render=function(){var e=h('<ul class="select2-results__options" role="listbox"></ul>');return this.options.get("multiple")&&e.attr("aria-multiselectable","true"),this.$results=e},r.prototype.clear=function(){this.$results.empty()},r.prototype.displayMessage=function(e){var t=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var n=h('<li role="alert" aria-live="assertive" class="select2-results__option"></li>'),r=this.options.get("translations").get(e.message);n.append(t(r(e.args))),n[0].className+=" select2-results__message",this.$results.append(n)},r.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},r.prototype.append=function(e){this.hideLoading();var t=[];if(null!=e.results&&0!==e.results.length){e.results=this.sort(e.results);for(var n=0;n<e.results.length;n++){var r=e.results[n],i=this.option(r);t.push(i)}this.$results.append(t)}else 0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"})},r.prototype.position=function(e,t){t.find(".select2-results").append(e)},r.prototype.sort=function(e){return this.options.get("sorter")(e)},r.prototype.highlightFirstItem=function(){var e=this.$results.find(".select2-results__option[aria-selected]"),t=e.filter("[aria-selected=true]");0<t.length?t.first().trigger("mouseenter"):e.first().trigger("mouseenter"),this.ensureHighlightVisible()},r.prototype.setClasses=function(){var t=this;this.data.current(function(e){var r=h.map(e,function(e){return e.id.toString()});t.$results.find(".select2-results__option[aria-selected]").each(function(){var e=h(this),t=f.GetData(this,"data"),n=""+t.id;null!=t.element&&t.element.selected||null==t.element&&-1<h.inArray(n,r)?e.attr("aria-selected","true"):e.attr("aria-selected","false")})})},r.prototype.showLoading=function(e){this.hideLoading();var t={disabled:!0,loading:!0,text:this.options.get("translations").get("searching")(e)},n=this.option(t);n.className+=" loading-results",this.$results.prepend(n)},r.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},r.prototype.option=function(e){var t=document.createElement("li");t.className="select2-results__option";var n={role:"option","aria-selected":"false"},r=window.Element.prototype.matches||window.Element.prototype.msMatchesSelector||window.Element.prototype.webkitMatchesSelector;for(var i in(null!=e.element&&r.call(e.element,":disabled")||null==e.element&&e.disabled)&&(delete n["aria-selected"],n["aria-disabled"]="true"),null==e.id&&delete n["aria-selected"],null!=e._resultId&&(t.id=e._resultId),e.title&&(t.title=e.title),e.children&&(n.role="group",n["aria-label"]=e.text,delete n["aria-selected"]),n){var o=n[i];t.setAttribute(i,o)}if(e.children){var s=h(t),a=document.createElement("strong");a.className="select2-results__group";h(a);this.template(e,a);for(var l=[],c=0;c<e.children.length;c++){var u=e.children[c],d=this.option(u);l.push(d)}var p=h("<ul></ul>",{class:"select2-results__options select2-results__options--nested"});p.append(l),s.append(a),s.append(p)}else this.template(e,t);return f.StoreData(t,"data",e),t},r.prototype.bind=function(t,e){var l=this,n=t.id+"-results";this.$results.attr("id",n),t.on("results:all",function(e){l.clear(),l.append(e.data),t.isOpen()&&(l.setClasses(),l.highlightFirstItem())}),t.on("results:append",function(e){l.append(e.data),t.isOpen()&&l.setClasses()}),t.on("query",function(e){l.hideMessages(),l.showLoading(e)}),t.on("select",function(){t.isOpen()&&(l.setClasses(),l.options.get("scrollAfterSelect")&&l.highlightFirstItem())}),t.on("unselect",function(){t.isOpen()&&(l.setClasses(),l.options.get("scrollAfterSelect")&&l.highlightFirstItem())}),t.on("open",function(){l.$results.attr("aria-expanded","true"),l.$results.attr("aria-hidden","false"),l.setClasses(),l.ensureHighlightVisible()}),t.on("close",function(){l.$results.attr("aria-expanded","false"),l.$results.attr("aria-hidden","true"),l.$results.removeAttr("aria-activedescendant")}),t.on("results:toggle",function(){var e=l.getHighlightedResults();0!==e.length&&e.trigger("mouseup")}),t.on("results:select",function(){var e=l.getHighlightedResults();if(0!==e.length){var t=f.GetData(e[0],"data");"true"==e.attr("aria-selected")?l.trigger("close",{}):l.trigger("select",{data:t})}}),t.on("results:previous",function(){var e=l.getHighlightedResults(),t=l.$results.find("[aria-selected]"),n=t.index(e);if(!(n<=0)){var r=n-1;0===e.length&&(r=0);var i=t.eq(r);i.trigger("mouseenter");var o=l.$results.offset().top,s=i.offset().top,a=l.$results.scrollTop()+(s-o);0===r?l.$results.scrollTop(0):s-o<0&&l.$results.scrollTop(a)}}),t.on("results:next",function(){var e=l.getHighlightedResults(),t=l.$results.find("[aria-selected]"),n=t.index(e)+1;if(!(n>=t.length)){var r=t.eq(n);r.trigger("mouseenter");var i=l.$results.offset().top+l.$results.outerHeight(!1),o=r.offset().top+r.outerHeight(!1),s=l.$results.scrollTop()+o-i;0===n?l.$results.scrollTop(0):i<o&&l.$results.scrollTop(s)}}),t.on("results:focus",function(e){e.element.addClass("select2-results__option--highlighted")}),t.on("results:message",function(e){l.displayMessage(e)}),h.fn.mousewheel&&this.$results.on("mousewheel",function(e){var t=l.$results.scrollTop(),n=l.$results.get(0).scrollHeight-t+e.deltaY,r=0<e.deltaY&&t-e.deltaY<=0,i=e.deltaY<0&&n<=l.$results.height();r?(l.$results.scrollTop(0),e.preventDefault(),e.stopPropagation()):i&&(l.$results.scrollTop(l.$results.get(0).scrollHeight-l.$results.height()),e.preventDefault(),e.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[aria-selected]",function(e){var t=h(this),n=f.GetData(this,"data");"true"!==t.attr("aria-selected")?l.trigger("select",{originalEvent:e,data:n}):l.options.get("multiple")?l.trigger("unselect",{originalEvent:e,data:n}):l.trigger("close",{})}),this.$results.on("mouseenter",".select2-results__option[aria-selected]",function(e){var t=f.GetData(this,"data");l.getHighlightedResults().removeClass("select2-results__option--highlighted"),l.trigger("results:focus",{data:t,element:h(this)})})},r.prototype.getHighlightedResults=function(){return this.$results.find(".select2-results__option--highlighted")},r.prototype.destroy=function(){this.$results.remove()},r.prototype.ensureHighlightVisible=function(){var e=this.getHighlightedResults();if(0!==e.length){var t=this.$results.find("[aria-selected]").index(e),n=this.$results.offset().top,r=e.offset().top,i=this.$results.scrollTop()+(r-n),o=r-n;i-=2*e.outerHeight(!1),t<=2?this.$results.scrollTop(0):(o>this.$results.outerHeight()||o<0)&&this.$results.scrollTop(i)}},r.prototype.template=function(e,t){var n=this.options.get("templateResult"),r=this.options.get("escapeMarkup"),i=n(e,t);null==i?t.style.display="none":"string"==typeof i?t.innerHTML=r(i):h(t).append(i)},r}),e.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),e.define("select2/selection/base",["jquery","../utils","../keys"],function(n,r,i){function o(e,t){this.$element=e,this.options=t,o.__super__.constructor.call(this)}return r.Extend(o,r.Observable),o.prototype.render=function(){var e=n('<span class="select2-selection" role="combobox" aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=r.GetData(this.$element[0],"old-tabindex")?this._tabindex=r.GetData(this.$element[0],"old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),e.attr("title",this.$element.attr("title")),e.attr("tabindex",this._tabindex),e.attr("aria-disabled","false"),this.$selection=e},o.prototype.bind=function(e,t){var n=this,r=e.id+"-results";this.container=e,this.$selection.on("focus",function(e){n.trigger("focus",e)}),this.$selection.on("blur",function(e){n._handleBlur(e)}),this.$selection.on("keydown",function(e){n.trigger("keypress",e),e.which===i.SPACE&&e.preventDefault()}),e.on("results:focus",function(e){n.$selection.attr("aria-activedescendant",e.data._resultId)}),e.on("selection:update",function(e){n.update(e.data)}),e.on("open",function(){n.$selection.attr("aria-expanded","true"),n.$selection.attr("aria-owns",r),n._attachCloseHandler(e)}),e.on("close",function(){n.$selection.attr("aria-expanded","false"),n.$selection.removeAttr("aria-activedescendant"),n.$selection.removeAttr("aria-owns"),n.$selection.trigger("focus"),n._detachCloseHandler(e)}),e.on("enable",function(){n.$selection.attr("tabindex",n._tabindex),n.$selection.attr("aria-disabled","false")}),e.on("disable",function(){n.$selection.attr("tabindex","-1"),n.$selection.attr("aria-disabled","true")})},o.prototype._handleBlur=function(e){var t=this;window.setTimeout(function(){document.activeElement==t.$selection[0]||n.contains(t.$selection[0],document.activeElement)||t.trigger("blur",e)},1)},o.prototype._attachCloseHandler=function(e){n(document.body).on("mousedown.select2."+e.id,function(e){var t=n(e.target).closest(".select2");n(".select2.select2-container--open").each(function(){this!=t[0]&&r.GetData(this,"element").select2("close")})})},o.prototype._detachCloseHandler=function(e){n(document.body).off("mousedown.select2."+e.id)},o.prototype.position=function(e,t){t.find(".selection").append(e)},o.prototype.destroy=function(){this._detachCloseHandler(this.container)},o.prototype.update=function(e){throw new Error("The `update` method must be defined in child classes.")},o.prototype.isEnabled=function(){return!this.isDisabled()},o.prototype.isDisabled=function(){return this.options.get("disabled")},o}),e.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(e,t,n,r){function i(){i.__super__.constructor.apply(this,arguments)}return n.Extend(i,t),i.prototype.render=function(){var e=i.__super__.render.call(this);return e.addClass("select2-selection--single"),e.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),e},i.prototype.bind=function(t,e){var n=this;i.__super__.bind.apply(this,arguments);var r=t.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",r).attr("role","textbox").attr("aria-readonly","true"),this.$selection.attr("aria-labelledby",r),this.$selection.on("mousedown",function(e){1===e.which&&n.trigger("toggle",{originalEvent:e})}),this.$selection.on("focus",function(e){}),this.$selection.on("blur",function(e){}),t.on("focus",function(e){t.isOpen()||n.$selection.trigger("focus")})},i.prototype.clear=function(){var e=this.$selection.find(".select2-selection__rendered");e.empty(),e.removeAttr("title")},i.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},i.prototype.selectionContainer=function(){return e("<span></span>")},i.prototype.update=function(e){if(0!==e.length){var t=e[0],n=this.$selection.find(".select2-selection__rendered"),r=this.display(t,n);n.empty().append(r);var i=t.title||t.text;i?n.attr("title",i):n.removeAttr("title")}else this.clear()},i}),e.define("select2/selection/multiple",["jquery","./base","../utils"],function(i,e,l){function n(e,t){n.__super__.constructor.apply(this,arguments)}return l.Extend(n,e),n.prototype.render=function(){var e=n.__super__.render.call(this);return e.addClass("select2-selection--multiple"),e.html('<ul class="select2-selection__rendered"></ul>'),e},n.prototype.bind=function(e,t){var r=this;n.__super__.bind.apply(this,arguments),this.$selection.on("click",function(e){r.trigger("toggle",{originalEvent:e})}),this.$selection.on("click",".select2-selection__choice__remove",function(e){if(!r.isDisabled()){var t=i(this).parent(),n=l.GetData(t[0],"data");r.trigger("unselect",{originalEvent:e,data:n})}})},n.prototype.clear=function(){var e=this.$selection.find(".select2-selection__rendered");e.empty(),e.removeAttr("title")},n.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},n.prototype.selectionContainer=function(){return i('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">&times;</span></li>')},n.prototype.update=function(e){if(this.clear(),0!==e.length){for(var t=[],n=0;n<e.length;n++){var r=e[n],i=this.selectionContainer(),o=this.display(r,i);i.append(o);var s=r.title||r.text;s&&i.attr("title",s),l.StoreData(i[0],"data",r),t.push(i)}var a=this.$selection.find(".select2-selection__rendered");l.appendMany(a,t)}},n}),e.define("select2/selection/placeholder",["../utils"],function(e){function t(e,t,n){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n)}return t.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},t.prototype.createPlaceholder=function(e,t){var n=this.selectionContainer();return n.html(this.display(t)),n.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),n},t.prototype.update=function(e,t){var n=1==t.length&&t[0].id!=this.placeholder.id;if(1<t.length||n)return e.call(this,t);this.clear();var r=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(r)},t}),e.define("select2/selection/allowClear",["jquery","../keys","../utils"],function(i,r,a){function e(){}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(e){r._handleClear(e)}),t.on("keypress",function(e){r._handleKeyboardClear(e,t)})},e.prototype._handleClear=function(e,t){if(!this.isDisabled()){var n=this.$selection.find(".select2-selection__clear");if(0!==n.length){t.stopPropagation();var r=a.GetData(n[0],"data"),i=this.$element.val();this.$element.val(this.placeholder.id);var o={data:r};if(this.trigger("clear",o),o.prevented)this.$element.val(i);else{for(var s=0;s<r.length;s++)if(o={data:r[s]},this.trigger("unselect",o),o.prevented)return void this.$element.val(i);this.$element.trigger("input").trigger("change"),this.trigger("toggle",{})}}}},e.prototype._handleKeyboardClear=function(e,t,n){n.isOpen()||t.which!=r.DELETE&&t.which!=r.BACKSPACE||this._handleClear(t)},e.prototype.update=function(e,t){if(e.call(this,t),!(0<this.$selection.find(".select2-selection__placeholder").length||0===t.length)){var n=this.options.get("translations").get("removeAllItems"),r=i('<span class="select2-selection__clear" title="'+n()+'">&times;</span>');a.StoreData(r[0],"data",t),this.$selection.find(".select2-selection__rendered").prepend(r)}},e}),e.define("select2/selection/search",["jquery","../utils","../keys"],function(r,a,l){function e(e,t,n){e.call(this,t,n)}return e.prototype.render=function(e){var t=r('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" /></li>');this.$searchContainer=t,this.$search=t.find("input");var n=e.call(this);return this._transferTabIndex(),n},e.prototype.bind=function(e,t,n){var r=this,i=t.id+"-results";e.call(this,t,n),t.on("open",function(){r.$search.attr("aria-controls",i),r.$search.trigger("focus")}),t.on("close",function(){r.$search.val(""),r.$search.removeAttr("aria-controls"),r.$search.removeAttr("aria-activedescendant"),r.$search.trigger("focus")}),t.on("enable",function(){r.$search.prop("disabled",!1),r._transferTabIndex()}),t.on("disable",function(){r.$search.prop("disabled",!0)}),t.on("focus",function(e){r.$search.trigger("focus")}),t.on("results:focus",function(e){e.data._resultId?r.$search.attr("aria-activedescendant",e.data._resultId):r.$search.removeAttr("aria-activedescendant")}),this.$selection.on("focusin",".select2-search--inline",function(e){r.trigger("focus",e)}),this.$selection.on("focusout",".select2-search--inline",function(e){r._handleBlur(e)}),this.$selection.on("keydown",".select2-search--inline",function(e){if(e.stopPropagation(),r.trigger("keypress",e),r._keyUpPrevented=e.isDefaultPrevented(),e.which===l.BACKSPACE&&""===r.$search.val()){var t=r.$searchContainer.prev(".select2-selection__choice");if(0<t.length){var n=a.GetData(t[0],"data");r.searchRemoveChoice(n),e.preventDefault()}}}),this.$selection.on("click",".select2-search--inline",function(e){r.$search.val()&&e.stopPropagation()});var o=document.documentMode,s=o&&o<=11;this.$selection.on("input.searchcheck",".select2-search--inline",function(e){s?r.$selection.off("input.search input.searchcheck"):r.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(e){if(s&&"input"===e.type)r.$selection.off("input.search input.searchcheck");else{var t=e.which;t!=l.SHIFT&&t!=l.CTRL&&t!=l.ALT&&t!=l.TAB&&r.handleSearch(e)}})},e.prototype._transferTabIndex=function(e){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},e.prototype.createPlaceholder=function(e,t){this.$search.attr("placeholder",t.text)},e.prototype.update=function(e,t){var n=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),e.call(this,t),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),n&&this.$search.trigger("focus")},e.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var e=this.$search.val();this.trigger("query",{term:e})}this._keyUpPrevented=!1},e.prototype.searchRemoveChoice=function(e,t){this.trigger("unselect",{data:t}),this.$search.val(t.text),this.handleSearch()},e.prototype.resizeSearch=function(){this.$search.css("width","25px");var e="";""!==this.$search.attr("placeholder")?e=this.$selection.find(".select2-selection__rendered").width():e=.75*(this.$search.val().length+1)+"em";this.$search.css("width",e)},e}),e.define("select2/selection/eventRelay",["jquery"],function(s){function e(){}return e.prototype.bind=function(e,t,n){var r=this,i=["open","opening","close","closing","select","selecting","unselect","unselecting","clear","clearing"],o=["opening","closing","selecting","unselecting","clearing"];e.call(this,t,n),t.on("*",function(e,t){if(-1!==s.inArray(e,i)){t=t||{};var n=s.Event("select2:"+e,{params:t});r.$element.trigger(n),-1!==s.inArray(e,o)&&(t.prevented=n.isDefaultPrevented())}})},e}),e.define("select2/translation",["jquery","require"],function(t,n){function r(e){this.dict=e||{}}return r.prototype.all=function(){return this.dict},r.prototype.get=function(e){return this.dict[e]},r.prototype.extend=function(e){this.dict=t.extend({},e.all(),this.dict)},r._cache={},r.loadPath=function(e){if(!(e in r._cache)){var t=n(e);r._cache[e]=t}return new r(r._cache[e])},r}),e.define("select2/diacritics",[],function(){return{"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Œ":"OE","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","œ":"oe","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ώ":"ω","ς":"σ","’":"'"}}),e.define("select2/data/base",["../utils"],function(r){function n(e,t){n.__super__.constructor.call(this)}return r.Extend(n,r.Observable),n.prototype.current=function(e){throw new Error("The `current` method must be defined in child classes.")},n.prototype.query=function(e,t){throw new Error("The `query` method must be defined in child classes.")},n.prototype.bind=function(e,t){},n.prototype.destroy=function(){},n.prototype.generateResultId=function(e,t){var n=e.id+"-result-";return n+=r.generateChars(4),null!=t.id?n+="-"+t.id.toString():n+="-"+r.generateChars(4),n},n}),e.define("select2/data/select",["./base","../utils","jquery"],function(e,a,l){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return a.Extend(n,e),n.prototype.current=function(e){var n=[],r=this;this.$element.find(":selected").each(function(){var e=l(this),t=r.item(e);n.push(t)}),e(n)},n.prototype.select=function(i){var o=this;if(i.selected=!0,l(i.element).is("option"))return i.element.selected=!0,void this.$element.trigger("input").trigger("change");if(this.$element.prop("multiple"))this.current(function(e){var t=[];(i=[i]).push.apply(i,e);for(var n=0;n<i.length;n++){var r=i[n].id;-1===l.inArray(r,t)&&t.push(r)}o.$element.val(t),o.$element.trigger("input").trigger("change")});else{var e=i.id;this.$element.val(e),this.$element.trigger("input").trigger("change")}},n.prototype.unselect=function(i){var o=this;if(this.$element.prop("multiple")){if(i.selected=!1,l(i.element).is("option"))return i.element.selected=!1,void this.$element.trigger("input").trigger("change");this.current(function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n].id;r!==i.id&&-1===l.inArray(r,t)&&t.push(r)}o.$element.val(t),o.$element.trigger("input").trigger("change")})}},n.prototype.bind=function(e,t){var n=this;(this.container=e).on("select",function(e){n.select(e.data)}),e.on("unselect",function(e){n.unselect(e.data)})},n.prototype.destroy=function(){this.$element.find("*").each(function(){a.RemoveData(this)})},n.prototype.query=function(r,e){var i=[],o=this;this.$element.children().each(function(){var e=l(this);if(e.is("option")||e.is("optgroup")){var t=o.item(e),n=o.matches(r,t);null!==n&&i.push(n)}}),e({results:i})},n.prototype.addOptions=function(e){a.appendMany(this.$element,e)},n.prototype.option=function(e){var t;e.children?(t=document.createElement("optgroup")).label=e.text:void 0!==(t=document.createElement("option")).textContent?t.textContent=e.text:t.innerText=e.text,void 0!==e.id&&(t.value=e.id),e.disabled&&(t.disabled=!0),e.selected&&(t.selected=!0),e.title&&(t.title=e.title);var n=l(t),r=this._normalizeItem(e);return r.element=t,a.StoreData(t,"data",r),n},n.prototype.item=function(e){var t={};if(null!=(t=a.GetData(e[0],"data")))return t;if(e.is("option"))t={id:e.val(),text:e.text(),disabled:e.prop("disabled"),selected:e.prop("selected"),title:e.prop("title")};else if(e.is("optgroup")){t={text:e.prop("label"),children:[],title:e.prop("title")};for(var n=e.children("option"),r=[],i=0;i<n.length;i++){var o=l(n[i]),s=this.item(o);r.push(s)}t.children=r}return(t=this._normalizeItem(t)).element=e[0],a.StoreData(e[0],"data",t),t},n.prototype._normalizeItem=function(e){e!==Object(e)&&(e={id:e,text:e});return null!=(e=l.extend({},{text:""},e)).id&&(e.id=e.id.toString()),null!=e.text&&(e.text=e.text.toString()),null==e._resultId&&e.id&&null!=this.container&&(e._resultId=this.generateResultId(this.container,e)),l.extend({},{selected:!1,disabled:!1},e)},n.prototype.matches=function(e,t){return this.options.get("matcher")(e,t)},n}),e.define("select2/data/array",["./select","../utils","jquery"],function(e,f,g){function r(e,t){this._dataToConvert=t.get("data")||[],r.__super__.constructor.call(this,e,t)}return f.Extend(r,e),r.prototype.bind=function(e,t){r.__super__.bind.call(this,e,t),this.addOptions(this.convertToOptions(this._dataToConvert))},r.prototype.select=function(n){var e=this.$element.find("option").filter(function(e,t){return t.value==n.id.toString()});0===e.length&&(e=this.option(n),this.addOptions(e)),r.__super__.select.call(this,n)},r.prototype.convertToOptions=function(e){var t=this,n=this.$element.find("option"),r=n.map(function(){return t.item(g(this)).id}).get(),i=[];function o(e){return function(){return g(this).val()==e.id}}for(var s=0;s<e.length;s++){var a=this._normalizeItem(e[s]);if(0<=g.inArray(a.id,r)){var l=n.filter(o(a)),c=this.item(l),u=g.extend(!0,{},a,c),d=this.option(u);l.replaceWith(d)}else{var p=this.option(a);if(a.children){var h=this.convertToOptions(a.children);f.appendMany(p,h)}i.push(p)}}return i},r}),e.define("select2/data/ajax",["./array","../utils","jquery"],function(e,t,o){function n(e,t){this.ajaxOptions=this._applyDefaults(t.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),n.__super__.constructor.call(this,e,t)}return t.Extend(n,e),n.prototype._applyDefaults=function(e){var t={data:function(e){return o.extend({},e,{q:e.term})},transport:function(e,t,n){var r=o.ajax(e);return r.then(t),r.fail(n),r}};return o.extend({},t,e,!0)},n.prototype.processResults=function(e){return e},n.prototype.query=function(n,r){var i=this;null!=this._request&&(o.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var t=o.extend({type:"GET"},this.ajaxOptions);function e(){var e=t.transport(t,function(e){var t=i.processResults(e,n);i.options.get("debug")&&window.console&&console.error&&(t&&t.results&&o.isArray(t.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),r(t)},function(){"status"in e&&(0===e.status||"0"===e.status)||i.trigger("results:message",{message:"errorLoading"})});i._request=e}"function"==typeof t.url&&(t.url=t.url.call(this.$element,n)),"function"==typeof t.data&&(t.data=t.data.call(this.$element,n)),this.ajaxOptions.delay&&null!=n.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(e,this.ajaxOptions.delay)):e()},n}),e.define("select2/data/tags",["jquery"],function(u){function e(e,t,n){var r=n.get("tags"),i=n.get("createTag");void 0!==i&&(this.createTag=i);var o=n.get("insertTag");if(void 0!==o&&(this.insertTag=o),e.call(this,t,n),u.isArray(r))for(var s=0;s<r.length;s++){var a=r[s],l=this._normalizeItem(a),c=this.option(l);this.$element.append(c)}}return e.prototype.query=function(e,c,u){var d=this;this._removeOldTags(),null!=c.term&&null==c.page?e.call(this,c,function e(t,n){for(var r=t.results,i=0;i<r.length;i++){var o=r[i],s=null!=o.children&&!e({results:o.children},!0);if((o.text||"").toUpperCase()===(c.term||"").toUpperCase()||s)return!n&&(t.data=r,void u(t))}if(n)return!0;var a=d.createTag(c);if(null!=a){var l=d.option(a);l.attr("data-select2-tag",!0),d.addOptions([l]),d.insertTag(r,a)}t.results=r,u(t)}):e.call(this,c,u)},e.prototype.createTag=function(e,t){var n=u.trim(t.term);return""===n?null:{id:n,text:n}},e.prototype.insertTag=function(e,t,n){t.unshift(n)},e.prototype._removeOldTags=function(e){this.$element.find("option[data-select2-tag]").each(function(){this.selected||u(this).remove()})},e}),e.define("select2/data/tokenizer",["jquery"],function(d){function e(e,t,n){var r=n.get("tokenizer");void 0!==r&&(this.tokenizer=r),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){e.call(this,t,n),this.$search=t.dropdown.$search||t.selection.$search||n.find(".select2-search__field")},e.prototype.query=function(e,t,n){var r=this;t.term=t.term||"";var i=this.tokenizer(t,this.options,function(e){var t=r._normalizeItem(e);if(!r.$element.find("option").filter(function(){return d(this).val()===t.id}).length){var n=r.option(t);n.attr("data-select2-tag",!0),r._removeOldTags(),r.addOptions([n])}!function(e){r.trigger("select",{data:e})}(t)});i.term!==t.term&&(this.$search.length&&(this.$search.val(i.term),this.$search.trigger("focus")),t.term=i.term),e.call(this,t,n)},e.prototype.tokenizer=function(e,t,n,r){for(var i=n.get("tokenSeparators")||[],o=t.term,s=0,a=this.createTag||function(e){return{id:e.term,text:e.term}};s<o.length;){var l=o[s];if(-1!==d.inArray(l,i)){var c=o.substr(0,s),u=a(d.extend({},t,{term:c}));null!=u?(r(u),o=o.substr(s+1)||"",s=0):s++}else s++}return{term:o}},e}),e.define("select2/data/minimumInputLength",[],function(){function e(e,t,n){this.minimumInputLength=n.get("minimumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",t.term.length<this.minimumInputLength?this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),e.define("select2/data/maximumInputLength",[],function(){function e(e,t,n){this.maximumInputLength=n.get("maximumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",0<this.maximumInputLength&&t.term.length>this.maximumInputLength?this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),e.define("select2/data/maximumSelectionLength",[],function(){function e(e,t,n){this.maximumSelectionLength=n.get("maximumSelectionLength"),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on("select",function(){r._checkIfMaximumSelected()})},e.prototype.query=function(e,t,n){var r=this;this._checkIfMaximumSelected(function(){e.call(r,t,n)})},e.prototype._checkIfMaximumSelected=function(e,n){var r=this;this.current(function(e){var t=null!=e?e.length:0;0<r.maximumSelectionLength&&t>=r.maximumSelectionLength?r.trigger("results:message",{message:"maximumSelected",args:{maximum:r.maximumSelectionLength}}):n&&n()})},e}),e.define("select2/dropdown",["jquery","./utils"],function(t,e){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return e.Extend(n,e.Observable),n.prototype.render=function(){var e=t('<span class="select2-dropdown"><span class="select2-results"></span></span>');return e.attr("dir",this.options.get("dir")),this.$dropdown=e},n.prototype.bind=function(){},n.prototype.position=function(e,t){},n.prototype.destroy=function(){this.$dropdown.remove()},n}),e.define("select2/dropdown/search",["jquery","../utils"],function(o,e){function t(){}return t.prototype.render=function(e){var t=e.call(this),n=o('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" /></span>');return this.$searchContainer=n,this.$search=n.find("input"),t.prepend(n),t},t.prototype.bind=function(e,t,n){var r=this,i=t.id+"-results";e.call(this,t,n),this.$search.on("keydown",function(e){r.trigger("keypress",e),r._keyUpPrevented=e.isDefaultPrevented()}),this.$search.on("input",function(e){o(this).off("keyup")}),this.$search.on("keyup input",function(e){r.handleSearch(e)}),t.on("open",function(){r.$search.attr("tabindex",0),r.$search.attr("aria-controls",i),r.$search.trigger("focus"),window.setTimeout(function(){r.$search.trigger("focus")},0)}),t.on("close",function(){r.$search.attr("tabindex",-1),r.$search.removeAttr("aria-controls"),r.$search.removeAttr("aria-activedescendant"),r.$search.val(""),r.$search.trigger("blur")}),t.on("focus",function(){t.isOpen()||r.$search.trigger("focus")}),t.on("results:all",function(e){null!=e.query.term&&""!==e.query.term||(r.showSearch(e)?r.$searchContainer.removeClass("select2-search--hide"):r.$searchContainer.addClass("select2-search--hide"))}),t.on("results:focus",function(e){e.data._resultId?r.$search.attr("aria-activedescendant",e.data._resultId):r.$search.removeAttr("aria-activedescendant")})},t.prototype.handleSearch=function(e){if(!this._keyUpPrevented){var t=this.$search.val();this.trigger("query",{term:t})}this._keyUpPrevented=!1},t.prototype.showSearch=function(e,t){return!0},t}),e.define("select2/dropdown/hidePlaceholder",[],function(){function e(e,t,n,r){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n,r)}return e.prototype.append=function(e,t){t.results=this.removePlaceholder(t.results),e.call(this,t)},e.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},e.prototype.removePlaceholder=function(e,t){for(var n=t.slice(0),r=t.length-1;0<=r;r--){var i=t[r];this.placeholder.id===i.id&&n.splice(r,1)}return n},e}),e.define("select2/dropdown/infiniteScroll",["jquery"],function(n){function e(e,t,n,r){this.lastParams={},e.call(this,t,n,r),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return e.prototype.append=function(e,t){this.$loadingMore.remove(),this.loading=!1,e.call(this,t),this.showLoadingMore(t)&&(this.$results.append(this.$loadingMore),this.loadMoreIfNeeded())},e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on("query",function(e){r.lastParams=e,r.loading=!0}),t.on("query:append",function(e){r.lastParams=e,r.loading=!0}),this.$results.on("scroll",this.loadMoreIfNeeded.bind(this))},e.prototype.loadMoreIfNeeded=function(){var e=n.contains(document.documentElement,this.$loadingMore[0]);if(!this.loading&&e){var t=this.$results.offset().top+this.$results.outerHeight(!1);this.$loadingMore.offset().top+this.$loadingMore.outerHeight(!1)<=t+50&&this.loadMore()}},e.prototype.loadMore=function(){this.loading=!0;var e=n.extend({},{page:1},this.lastParams);e.page++,this.trigger("query:append",e)},e.prototype.showLoadingMore=function(e,t){return t.pagination&&t.pagination.more},e.prototype.createLoadingMore=function(){var e=n('<li class="select2-results__option select2-results__option--load-more"role="option" aria-disabled="true"></li>'),t=this.options.get("translations").get("loadingMore");return e.html(t(this.lastParams)),e},e}),e.define("select2/dropdown/attachBody",["jquery","../utils"],function(f,a){function e(e,t,n){this.$dropdownParent=f(n.get("dropdownParent")||document.body),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on("open",function(){r._showDropdown(),r._attachPositioningHandler(t),r._bindContainerResultHandlers(t)}),t.on("close",function(){r._hideDropdown(),r._detachPositioningHandler(t)}),this.$dropdownContainer.on("mousedown",function(e){e.stopPropagation()})},e.prototype.destroy=function(e){e.call(this),this.$dropdownContainer.remove()},e.prototype.position=function(e,t,n){t.attr("class",n.attr("class")),t.removeClass("select2"),t.addClass("select2-container--open"),t.css({position:"absolute",top:-999999}),this.$container=n},e.prototype.render=function(e){var t=f("<span></span>"),n=e.call(this);return t.append(n),this.$dropdownContainer=t},e.prototype._hideDropdown=function(e){this.$dropdownContainer.detach()},e.prototype._bindContainerResultHandlers=function(e,t){if(!this._containerResultsHandlersBound){var n=this;t.on("results:all",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("results:append",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("results:message",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("select",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("unselect",function(){n._positionDropdown(),n._resizeDropdown()}),this._containerResultsHandlersBound=!0}},e.prototype._attachPositioningHandler=function(e,t){var n=this,r="scroll.select2."+t.id,i="resize.select2."+t.id,o="orientationchange.select2."+t.id,s=this.$container.parents().filter(a.hasScroll);s.each(function(){a.StoreData(this,"select2-scroll-position",{x:f(this).scrollLeft(),y:f(this).scrollTop()})}),s.on(r,function(e){var t=a.GetData(this,"select2-scroll-position");f(this).scrollTop(t.y)}),f(window).on(r+" "+i+" "+o,function(e){n._positionDropdown(),n._resizeDropdown()})},e.prototype._detachPositioningHandler=function(e,t){var n="scroll.select2."+t.id,r="resize.select2."+t.id,i="orientationchange.select2."+t.id;this.$container.parents().filter(a.hasScroll).off(n),f(window).off(n+" "+r+" "+i)},e.prototype._positionDropdown=function(){var e=f(window),t=this.$dropdown.hasClass("select2-dropdown--above"),n=this.$dropdown.hasClass("select2-dropdown--below"),r=null,i=this.$container.offset();i.bottom=i.top+this.$container.outerHeight(!1);var o={height:this.$container.outerHeight(!1)};o.top=i.top,o.bottom=i.top+o.height;var s=this.$dropdown.outerHeight(!1),a=e.scrollTop(),l=e.scrollTop()+e.height(),c=a<i.top-s,u=l>i.bottom+s,d={left:i.left,top:o.bottom},p=this.$dropdownParent;"static"===p.css("position")&&(p=p.offsetParent());var h={top:0,left:0};(f.contains(document.body,p[0])||p[0].isConnected)&&(h=p.offset()),d.top-=h.top,d.left-=h.left,t||n||(r="below"),u||!c||t?!c&&u&&t&&(r="below"):r="above",("above"==r||t&&"below"!==r)&&(d.top=o.top-h.top-s),null!=r&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+r),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+r)),this.$dropdownContainer.css(d)},e.prototype._resizeDropdown=function(){var e={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(e.minWidth=e.width,e.position="relative",e.width="auto"),this.$dropdown.css(e)},e.prototype._showDropdown=function(e){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},e}),e.define("select2/dropdown/minimumResultsForSearch",[],function(){function e(e,t,n,r){this.minimumResultsForSearch=n.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),e.call(this,t,n,r)}return e.prototype.showSearch=function(e,t){return!(function e(t){for(var n=0,r=0;r<t.length;r++){var i=t[r];i.children?n+=e(i.children):n++}return n}(t.data.results)<this.minimumResultsForSearch)&&e.call(this,t)},e}),e.define("select2/dropdown/selectOnClose",["../utils"],function(o){function e(){}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on("close",function(e){r._handleSelectOnClose(e)})},e.prototype._handleSelectOnClose=function(e,t){if(t&&null!=t.originalSelect2Event){var n=t.originalSelect2Event;if("select"===n._type||"unselect"===n._type)return}var r=this.getHighlightedResults();if(!(r.length<1)){var i=o.GetData(r[0],"data");null!=i.element&&i.element.selected||null==i.element&&i.selected||this.trigger("select",{data:i})}},e}),e.define("select2/dropdown/closeOnSelect",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on("select",function(e){r._selectTriggered(e)}),t.on("unselect",function(e){r._selectTriggered(e)})},e.prototype._selectTriggered=function(e,t){var n=t.originalEvent;n&&(n.ctrlKey||n.metaKey)||this.trigger("close",{originalEvent:n,originalSelect2Event:t})},e}),e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return 1!=t&&(n+="s"),n},inputTooShort:function(e){return"Please enter "+(e.minimum-e.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return 1!=e.maximum&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"},removeAllItems:function(){return"Remove all items"}}}),e.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(c,u,d,p,h,f,g,m,v,y,s,t,_,$,b,w,A,x,D,S,E,C,O,T,q,L,I,j,e){function n(){this.reset()}return n.prototype.apply=function(e){if(null==(e=c.extend(!0,{},this.defaults,e)).dataAdapter){if(null!=e.ajax?e.dataAdapter=b:null!=e.data?e.dataAdapter=$:e.dataAdapter=_,0<e.minimumInputLength&&(e.dataAdapter=y.Decorate(e.dataAdapter,x)),0<e.maximumInputLength&&(e.dataAdapter=y.Decorate(e.dataAdapter,D)),0<e.maximumSelectionLength&&(e.dataAdapter=y.Decorate(e.dataAdapter,S)),e.tags&&(e.dataAdapter=y.Decorate(e.dataAdapter,w)),null==e.tokenSeparators&&null==e.tokenizer||(e.dataAdapter=y.Decorate(e.dataAdapter,A)),null!=e.query){var t=u(e.amdBase+"compat/query");e.dataAdapter=y.Decorate(e.dataAdapter,t)}if(null!=e.initSelection){var n=u(e.amdBase+"compat/initSelection");e.dataAdapter=y.Decorate(e.dataAdapter,n)}}if(null==e.resultsAdapter&&(e.resultsAdapter=d,null!=e.ajax&&(e.resultsAdapter=y.Decorate(e.resultsAdapter,T)),null!=e.placeholder&&(e.resultsAdapter=y.Decorate(e.resultsAdapter,O)),e.selectOnClose&&(e.resultsAdapter=y.Decorate(e.resultsAdapter,I))),null==e.dropdownAdapter){if(e.multiple)e.dropdownAdapter=E;else{var r=y.Decorate(E,C);e.dropdownAdapter=r}if(0!==e.minimumResultsForSearch&&(e.dropdownAdapter=y.Decorate(e.dropdownAdapter,L)),e.closeOnSelect&&(e.dropdownAdapter=y.Decorate(e.dropdownAdapter,j)),null!=e.dropdownCssClass||null!=e.dropdownCss||null!=e.adaptDropdownCssClass){var i=u(e.amdBase+"compat/dropdownCss");e.dropdownAdapter=y.Decorate(e.dropdownAdapter,i)}e.dropdownAdapter=y.Decorate(e.dropdownAdapter,q)}if(null==e.selectionAdapter){if(e.multiple?e.selectionAdapter=h:e.selectionAdapter=p,null!=e.placeholder&&(e.selectionAdapter=y.Decorate(e.selectionAdapter,f)),e.allowClear&&(e.selectionAdapter=y.Decorate(e.selectionAdapter,g)),e.multiple&&(e.selectionAdapter=y.Decorate(e.selectionAdapter,m)),null!=e.containerCssClass||null!=e.containerCss||null!=e.adaptContainerCssClass){var o=u(e.amdBase+"compat/containerCss");e.selectionAdapter=y.Decorate(e.selectionAdapter,o)}e.selectionAdapter=y.Decorate(e.selectionAdapter,v)}e.language=this._resolveLanguage(e.language),e.language.push("en");for(var s=[],a=0;a<e.language.length;a++){var l=e.language[a];-1===s.indexOf(l)&&s.push(l)}return e.language=s,e.translations=this._processTranslations(e.language,e.debug),e},n.prototype.reset=function(){function a(e){return e.replace(/[^\u0000-\u007E]/g,function(e){return t[e]||e})}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:y.escapeMarkup,language:{},matcher:function e(t,n){if(""===c.trim(t.term))return n;if(n.children&&0<n.children.length){for(var r=c.extend(!0,{},n),i=n.children.length-1;0<=i;i--)null==e(t,n.children[i])&&r.children.splice(i,1);return 0<r.children.length?r:e(t,r)}var o=a(n.text).toUpperCase(),s=a(t.term).toUpperCase();return-1<o.indexOf(s)?n:null},minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,scrollAfterSelect:!1,sorter:function(e){return e},templateResult:function(e){return e.text},templateSelection:function(e){return e.text},theme:"default",width:"resolve"}},n.prototype.applyFromElement=function(e,t){var n=e.language,r=this.defaults.language,i=t.prop("lang"),o=t.closest("[lang]").prop("lang"),s=Array.prototype.concat.call(this._resolveLanguage(i),this._resolveLanguage(n),this._resolveLanguage(r),this._resolveLanguage(o));return e.language=s,e},n.prototype._resolveLanguage=function(e){if(!e)return[];if(c.isEmptyObject(e))return[];if(c.isPlainObject(e))return[e];var t;t=c.isArray(e)?e:[e];for(var n=[],r=0;r<t.length;r++)if(n.push(t[r]),"string"==typeof t[r]&&0<t[r].indexOf("-")){var i=t[r].split("-")[0];n.push(i)}return n},n.prototype._processTranslations=function(e,t){for(var n=new s,r=0;r<e.length;r++){var i=new s,o=e[r];if("string"==typeof o)try{i=s.loadPath(o)}catch(e){try{o=this.defaults.amdLanguageBase+o,i=s.loadPath(o)}catch(e){t&&window.console&&console.warn&&console.warn('Select2: The language file for "'+o+'" could not be automatically loaded. A fallback will be used instead.')}}else i=c.isPlainObject(o)?new s(o):o;n.extend(i)}return n},n.prototype.set=function(e,t){var n={};n[c.camelCase(e)]=t;var r=y._convertData(n);c.extend(!0,this.defaults,r)},new n}),e.define("select2/options",["require","jquery","./defaults","./utils"],function(r,d,i,p){function e(e,t){if(this.options=e,null!=t&&this.fromElement(t),null!=t&&(this.options=i.applyFromElement(this.options,t)),this.options=i.apply(this.options),t&&t.is("input")){var n=r(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=p.Decorate(this.options.dataAdapter,n)}}return e.prototype.fromElement=function(e){var t=["select2"];null==this.options.multiple&&(this.options.multiple=e.prop("multiple")),null==this.options.disabled&&(this.options.disabled=e.prop("disabled")),null==this.options.dir&&(e.prop("dir")?this.options.dir=e.prop("dir"):e.closest("[dir]").prop("dir")?this.options.dir=e.closest("[dir]").prop("dir"):this.options.dir="ltr"),e.prop("disabled",this.options.disabled),e.prop("multiple",this.options.multiple),p.GetData(e[0],"select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),p.StoreData(e[0],"data",p.GetData(e[0],"select2Tags")),p.StoreData(e[0],"tags",!0)),p.GetData(e[0],"ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),e.attr("ajax--url",p.GetData(e[0],"ajaxUrl")),p.StoreData(e[0],"ajax-Url",p.GetData(e[0],"ajaxUrl")));var n={};function r(e,t){return t.toUpperCase()}for(var i=0;i<e[0].attributes.length;i++){var o=e[0].attributes[i].name,s="data-";if(o.substr(0,s.length)==s){var a=o.substring(s.length),l=p.GetData(e[0],a);n[a.replace(/-([a-z])/g,r)]=l}}d.fn.jquery&&"1."==d.fn.jquery.substr(0,2)&&e[0].dataset&&(n=d.extend(!0,{},e[0].dataset,n));var c=d.extend(!0,{},p.GetData(e[0]),n);for(var u in c=p._convertData(c))-1<d.inArray(u,t)||(d.isPlainObject(this.options[u])?d.extend(this.options[u],c[u]):this.options[u]=c[u]);return this},e.prototype.get=function(e){return this.options[e]},e.prototype.set=function(e,t){this.options[e]=t},e}),e.define("select2/core",["jquery","./options","./utils","./keys"],function(o,c,u,r){var d=function(e,t){null!=u.GetData(e[0],"select2")&&u.GetData(e[0],"select2").destroy(),this.$element=e,this.id=this._generateId(e),t=t||{},this.options=new c(t,e),d.__super__.constructor.call(this);var n=e.attr("tabindex")||0;u.StoreData(e[0],"old-tabindex",n),e.attr("tabindex","-1");var r=this.options.get("dataAdapter");this.dataAdapter=new r(e,this.options);var i=this.render();this._placeContainer(i);var o=this.options.get("selectionAdapter");this.selection=new o(e,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,i);var s=this.options.get("dropdownAdapter");this.dropdown=new s(e,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,i);var a=this.options.get("resultsAdapter");this.results=new a(e,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var l=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(e){l.trigger("selection:update",{data:e})}),e.addClass("select2-hidden-accessible"),e.attr("aria-hidden","true"),this._syncAttributes(),u.StoreData(e[0],"select2",this),e.data("select2",this)};return u.Extend(d,u.Observable),d.prototype._generateId=function(e){return"select2-"+(null!=e.attr("id")?e.attr("id"):null!=e.attr("name")?e.attr("name")+"-"+u.generateChars(2):u.generateChars(4)).replace(/(:|\.|\[|\]|,)/g,"")},d.prototype._placeContainer=function(e){e.insertAfter(this.$element);var t=this._resolveWidth(this.$element,this.options.get("width"));null!=t&&e.css("width",t)},d.prototype._resolveWidth=function(e,t){var n=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==t){var r=this._resolveWidth(e,"style");return null!=r?r:this._resolveWidth(e,"element")}if("element"==t){var i=e.outerWidth(!1);return i<=0?"auto":i+"px"}if("style"!=t)return"computedstyle"!=t?t:window.getComputedStyle(e[0]).width;var o=e.attr("style");if("string"!=typeof o)return null;for(var s=o.split(";"),a=0,l=s.length;a<l;a+=1){var c=s[a].replace(/\s/g,"").match(n);if(null!==c&&1<=c.length)return c[1]}return null},d.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},d.prototype._registerDomEvents=function(){var t=this;this.$element.on("change.select2",function(){t.dataAdapter.current(function(e){t.trigger("selection:update",{data:e})})}),this.$element.on("focus.select2",function(e){t.trigger("focus",e)}),this._syncA=u.bind(this._syncAttributes,this),this._syncS=u.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._syncA);var e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=e?(this._observer=new e(function(e){t._syncA(),t._syncS(null,e)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener("DOMAttrModified",t._syncA,!1),this.$element[0].addEventListener("DOMNodeInserted",t._syncS,!1),this.$element[0].addEventListener("DOMNodeRemoved",t._syncS,!1))},d.prototype._registerDataEvents=function(){var n=this;this.dataAdapter.on("*",function(e,t){n.trigger(e,t)})},d.prototype._registerSelectionEvents=function(){var n=this,r=["toggle","focus"];this.selection.on("toggle",function(){n.toggleDropdown()}),this.selection.on("focus",function(e){n.focus(e)}),this.selection.on("*",function(e,t){-1===o.inArray(e,r)&&n.trigger(e,t)})},d.prototype._registerDropdownEvents=function(){var n=this;this.dropdown.on("*",function(e,t){n.trigger(e,t)})},d.prototype._registerResultsEvents=function(){var n=this;this.results.on("*",function(e,t){n.trigger(e,t)})},d.prototype._registerEvents=function(){var n=this;this.on("open",function(){n.$container.addClass("select2-container--open")}),this.on("close",function(){n.$container.removeClass("select2-container--open")}),this.on("enable",function(){n.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){n.$container.addClass("select2-container--disabled")}),this.on("blur",function(){n.$container.removeClass("select2-container--focus")}),this.on("query",function(t){n.isOpen()||n.trigger("open",{}),this.dataAdapter.query(t,function(e){n.trigger("results:all",{data:e,query:t})})}),this.on("query:append",function(t){this.dataAdapter.query(t,function(e){n.trigger("results:append",{data:e,query:t})})}),this.on("keypress",function(e){var t=e.which;n.isOpen()?t===r.ESC||t===r.TAB||t===r.UP&&e.altKey?(n.close(e),e.preventDefault()):t===r.ENTER?(n.trigger("results:select",{}),e.preventDefault()):t===r.SPACE&&e.ctrlKey?(n.trigger("results:toggle",{}),e.preventDefault()):t===r.UP?(n.trigger("results:previous",{}),e.preventDefault()):t===r.DOWN&&(n.trigger("results:next",{}),e.preventDefault()):(t===r.ENTER||t===r.SPACE||t===r.DOWN&&e.altKey)&&(n.open(),e.preventDefault())})},d.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.isDisabled()?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},d.prototype._isChangeMutation=function(e,t){var n=!1,r=this;if(!e||!e.target||"OPTION"===e.target.nodeName||"OPTGROUP"===e.target.nodeName){if(t)if(t.addedNodes&&0<t.addedNodes.length)for(var i=0;i<t.addedNodes.length;i++){t.addedNodes[i].selected&&(n=!0)}else t.removedNodes&&0<t.removedNodes.length?n=!0:o.isArray(t)&&o.each(t,function(e,t){if(r._isChangeMutation(e,t))return!(n=!0)});else n=!0;return n}},d.prototype._syncSubtree=function(e,t){var n=this._isChangeMutation(e,t),r=this;n&&this.dataAdapter.current(function(e){r.trigger("selection:update",{data:e})})},d.prototype.trigger=function(e,t){var n=d.__super__.trigger,r={open:"opening",close:"closing",select:"selecting",unselect:"unselecting",clear:"clearing"};if(void 0===t&&(t={}),e in r){var i=r[e],o={prevented:!1,name:e,args:t};if(n.call(this,i,o),o.prevented)return void(t.prevented=!0)}n.call(this,e,t)},d.prototype.toggleDropdown=function(){this.isDisabled()||(this.isOpen()?this.close():this.open())},d.prototype.open=function(){this.isOpen()||this.isDisabled()||this.trigger("query",{})},d.prototype.close=function(e){this.isOpen()&&this.trigger("close",{originalEvent:e})},d.prototype.isEnabled=function(){return!this.isDisabled()},d.prototype.isDisabled=function(){return this.options.get("disabled")},d.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},d.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},d.prototype.focus=function(e){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},d.prototype.enable=function(e){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),null!=e&&0!==e.length||(e=[!0]);var t=!e[0];this.$element.prop("disabled",t)},d.prototype.data=function(){this.options.get("debug")&&0<arguments.length&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var t=[];return this.dataAdapter.current(function(e){t=e}),t},d.prototype.val=function(e){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==e||0===e.length)return this.$element.val();var t=e[0];o.isArray(t)&&(t=o.map(t,function(e){return e.toString()})),this.$element.val(t).trigger("input").trigger("change")},d.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener("DOMAttrModified",this._syncA,!1),this.$element[0].removeEventListener("DOMNodeInserted",this._syncS,!1),this.$element[0].removeEventListener("DOMNodeRemoved",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",u.GetData(this.$element[0],"old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),u.RemoveData(this.$element[0]),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},d.prototype.render=function(){var e=o('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return e.attr("dir",this.options.get("dir")),this.$container=e,this.$container.addClass("select2-container--"+this.options.get("theme")),u.StoreData(e[0],"element",this.$element),e},d}),e.define("jquery-mousewheel",["jquery"],function(e){return e}),e.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults","./select2/utils"],function(i,e,o,t,s){if(null==i.fn.select2){var a=["open","close","destroy"];i.fn.select2=function(t){if("object"==typeof(t=t||{}))return this.each(function(){var e=i.extend(!0,{},t);new o(i(this),e)}),this;if("string"!=typeof t)throw new Error("Invalid arguments for Select2: "+t);var n,r=Array.prototype.slice.call(arguments,1);return this.each(function(){var e=s.GetData(this,"select2");null==e&&window.console&&console.error&&console.error("The select2('"+t+"') method was called on an element that is not using Select2."),n=e[t].apply(e,r)}),-1<i.inArray(t,a)?this:n}}return null==i.fn.select2.defaults&&(i.fn.select2.defaults=t),o}),{define:e.define,require:e.require}}(),t=e.require("jquery.select2");return u.fn.select2.amd=e,t});
changelog.txt ADDED
@@ -0,0 +1,322 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ = 3.13.0 =
2
+ * Add Notification alerting websites using Password Protection or JavaScript to display content they need to upgrade to PrintFriendly Pro
3
+
4
+ = 3.12.5 =
5
+ * Chanage link in settings page
6
+
7
+ = 3.12.4 =
8
+ * Bug fix, avoid "undefined variable: return"
9
+
10
+ = 3.12.3 =
11
+ * Bug fix, sometimes custom image didn't display correctly after upgrade
12
+
13
+ = 3.12.2 =
14
+ * Add title to Printfriendly button and change button image alt
15
+
16
+ = 3.12.1 =
17
+ * Fix translations
18
+
19
+ = 3.12.0 =
20
+ * Update custom button UI
21
+
22
+ = 3.11.2 =
23
+ * Fix button upgrade for pf-icon-both.gif
24
+
25
+ = 3.11.1 =
26
+ * Bug fix
27
+
28
+ = 3.11.0 =
29
+ * Update buttons
30
+
31
+ = 3.10.0 =
32
+ * Change "leave us a rating" message.
33
+
34
+ = 3.9.2 =
35
+ * Correctly handle spaces in print-only detection
36
+
37
+ = 3.9.1 =
38
+ * Better print-only detection
39
+
40
+ = 3.9.0 =
41
+ * Add new button
42
+
43
+ = 3.8.8 =
44
+ * Bug fix.
45
+
46
+ = 3.8.7 =
47
+ * Bug fix.
48
+
49
+ = 3.8.6 =
50
+ * Allow default image setting to be small medium or large.
51
+
52
+ = 3.8.5 =
53
+ * Bug fix.
54
+
55
+ = 3.8.4 =
56
+ * Bug fix.
57
+
58
+ = 3.8.1 =
59
+ * Improve automatic error reporting.
60
+
61
+ = 3.8.0 =
62
+ * Add automatic error reporting.
63
+
64
+ = 3.7.6 =
65
+ * WooCommerce support improvments: remove upsells from print preview.
66
+
67
+ = 3.7.5 =
68
+ * WooCommerce support improvments: fix DOMDocument.loadHTML warnings.
69
+
70
+ = 3.7.4 =
71
+ * Added CSS Relative Position and Z-Index to button to avoid content covering the button.
72
+
73
+ = 3.7.3 =
74
+ * Always use https
75
+
76
+ = 3.7.2 =
77
+ * Use schema less URLs for loading icons
78
+
79
+ = 3.7.1 =
80
+ * Use www.printfriendly.com instead of app.printfriendly.com for redirects
81
+
82
+ = 3.7.0 =
83
+ * Remove http/https option, use current schema
84
+
85
+ = 3.6.0 =
86
+ * Allow custom HTML in Custom Button Text
87
+
88
+ = 3.5.4 =
89
+ * WooCommerce 'Content Algorithm' fix
90
+
91
+ = 3.5.3 =
92
+ * Fix security issues
93
+
94
+ = 3.5.2 =
95
+ * Fix code to support PHP 5.2
96
+
97
+ = 3.5.0 =
98
+ * WooCommerce product page improvements. Better support for product images, price, and description.
99
+
100
+ = 3.4.9 =
101
+ * Fix minor security issue
102
+
103
+ = 3.4.8 =
104
+ * Fix button images style
105
+
106
+ = 3.4.7 =
107
+ * Fix button style to remove underline
108
+
109
+ = 3.4.6 =
110
+ * Always removed PrintFriendly button underline regardless plugin CSS for button styles option
111
+
112
+ = 3.4.4 =
113
+ * Removed page content selection option - Wordpress Standard/Strict
114
+
115
+ = 3.4.2 =
116
+ * Fixed the issue occured due to new changes made in the page content selection options
117
+
118
+ = 3.4.1 =
119
+ * Improved page content selection options
120
+
121
+ = 3.4.0 =
122
+ * Fixed the admin javascript error and increased plugin text boxes size
123
+ * Enabled Print Friendly button href to www.printfriendly.com only when the plugin JavaScript option is enabled
124
+ * Made some plugin text translation ready
125
+
126
+ = 3.3.10 =
127
+ * Implemented both Classic Google Analytics and Google Universal Analytics code
128
+ * Fixed WP Slimstat conflict
129
+
130
+ = 3.3.9 =
131
+ * Removed the functionality that opens new window when JavaScript is disabled
132
+
133
+ = 3.3.8 =
134
+ * Shortcode bug fix
135
+ * Urlencoded button href to produce valid html
136
+
137
+ = 3.3.7 =
138
+ * Readme.txt update
139
+
140
+ = 3.3.6 =
141
+ * Fixed JS optimization Bug
142
+
143
+ = 3.3.5 =
144
+ * Wordpress 3.8 support
145
+
146
+ = 3.3.4 =
147
+ * Provided Algorithm Options
148
+
149
+ = 3.3.3 =
150
+ * Using WP content hook for all Buttons
151
+
152
+ = 3.3.2=
153
+ * Algorithm Update
154
+
155
+ = 3.3.1 =
156
+ * SSL Support bug fixes.
157
+
158
+ = 3.3.0 =
159
+
160
+ * Optimized JavaScript, reducing the file size by 65%!
161
+ * Better syncing between client-side/server-side content detection algorithm. This will make improvements to content detection easier than ever.
162
+ * Support for international language sub-regions, for example PT-BR vs. PT (Portuguese-Brazil vs. Portuguese for Portugal)
163
+ * Support for Wordpress - 3.6 .
164
+ * Printfriendly custom commands support.
165
+
166
+ = 3.2.10 =
167
+ * Fixed Bug in Google Analytics generation
168
+
169
+ = 3.2.9 =
170
+ * Enabled support for Google Analytics
171
+
172
+ = 3.2.8 =
173
+ * Algorithm Update
174
+
175
+ = 3.2.7 =
176
+ * Removed Break tag from button code.
177
+
178
+ = 3.2.6 =
179
+ * Fixed Button behavior when displayed on Homepage for NON-JS version.
180
+ * Fixed CSS issue with Button when placed above content.
181
+ * Fixed box-shadow issue with button.
182
+ * Custom print and pdf options now available for Non-JS version. Custom options include header, css, image alignment, etc..
183
+ * Fixed bug for custom tagline.
184
+
185
+ = 3.2.5 =
186
+ * Added hide images and image style options.
187
+ * Improved input validation.
188
+ * Improved output escaping.
189
+ * Removed printfriendly post_class.
190
+ * Small i8n fix.
191
+ * Few small HTML fixes.
192
+
193
+ = 3.2.4 =
194
+ * Add printfriendly post_class.
195
+ * Fixed minor JS bug.
196
+ * Added redundancy to uninstall script.
197
+
198
+ = 3.2.3 =
199
+ * Rolling back to version 3.2.1
200
+
201
+ = 3.2.2 =
202
+
203
+ * Add printfriendly post_class.
204
+ * Add printfriendly button display settings per individual category.
205
+ * Fixed minor JS bug.
206
+ * Added redundancy to uninstall script.
207
+
208
+ = 3.2.1 =
209
+
210
+ * Improve script loading.
211
+
212
+ = 3.2.0 =
213
+
214
+ * Important chrome issue fix. Ie syntax error fix.
215
+
216
+ = 3.1.9 =
217
+
218
+ * Minor css detail.
219
+
220
+ = 3.1.8 =
221
+
222
+ * Add printfriendly options to allow/not allow print, pdf, email from the Printfriendly and PDF dialog.
223
+
224
+ = 3.1.7 =
225
+
226
+ * Revert default print button show settings. Prevent easy override of print button text-decoration and border style properties.
227
+
228
+ = 3.1.6 =
229
+
230
+ * Adding PrintFriendly and PDF alignment style classes.
231
+
232
+ = 3.1.5 =
233
+
234
+ * Set button appearance in more flexible way. Remove styles that interfered with wordpress themes. Add shortcode for printfriendly button. Fix redirect to printfriendly.com link. Added custom css feature.
235
+
236
+ = 3.1.4 =
237
+
238
+ * Changed https url. Don't hide text change box when disabling css.
239
+
240
+ = 3.1.3 =
241
+
242
+ * Fixed bug with disable css option.
243
+
244
+ = 3.1.2 =
245
+
246
+ * Added disable css option to admin settings.
247
+
248
+ = 3.1.1 =
249
+
250
+ * Fixed admin js caching.
251
+
252
+ = 3.1.0 =
253
+
254
+ * Fixed admin css caching.
255
+
256
+ = 3.0.9 =
257
+
258
+ * New features: Custom header, disable click-to-delete, https support (beta), PrintFriendly Pro (ad-free).
259
+
260
+ = 3.0.8 =
261
+
262
+ * Reordered PrintFriendly & PDF buttons. CSS stylesheet option is now checked by default.
263
+
264
+ = 3.0.7 =
265
+
266
+ * Added additional images for print button.
267
+
268
+ = 3.0.6 =
269
+
270
+ * Fix bug that displays button on category pages when posts and pages is selected.
271
+
272
+ = 3.0.5 =
273
+
274
+ * PrintFriendly & PDF button will now display on category pages (archive pages), if "Homepage, Archives, Posts, and Pages" was selected in the Settings for PrintFriendly & PDF (button placement).
275
+
276
+ = 3.0.4 =
277
+
278
+ * Align-right and align-center support for themes that remove WordPress core css.
279
+
280
+ = 3.0.3 =
281
+
282
+ * Support for bad themes that alter template tags and prevent JavaScript from loading in footer.
283
+
284
+ = 3.0.2 =
285
+
286
+ * Fixed JS bug with Google Chrome not submitting and fixed input validation issues.
287
+
288
+ = 3.0.1 =
289
+
290
+ * Fixed minor JS bug.
291
+
292
+ = 3.0 =
293
+
294
+ * A complete overhaul of the plugin by renowned WordPress plugin developer <a href="http://yoast.com/">Joost de Valk</a>.
295
+ * Code Changes:
296
+ * Redone the admin page.
297
+ * Plugin is now fully i18n ready.
298
+ * Plugin now uses the settings API.
299
+ * CSS loading is now optional.
300
+ * JavaScript loading is now optional.
301
+ * Plugin now uses WordPress default align classes for outlining.
302
+ * Documentation changes:
303
+ * Added an FAQ.
304
+ * Added Screenshots.
305
+
306
+ = 2.1.8 =
307
+
308
+ * The Print Button was showing up on printed, or PDF, pages. Junk! Print or PDF button no longer displayed on printed out page or PDF.
309
+
310
+ = 2.1.7 =
311
+
312
+ * Changed print button from `<span>` to `<div>` to support floating the print and PDF button to right.
313
+
314
+ = 2.1.6 =
315
+
316
+ * Added rel="nofollow" to the print links to avoid search engines indexing the print pages.
317
+ * Changed print button from link `<a>` to `<span>`. Some tracking plugins added target_new/blank to link, therefore breaking print friendly.
318
+
319
+ = 2.1.5 =
320
+
321
+ * To avoid conflicts with Google Analytics widgets, changed link structure. No longer uses onclick to call PrintFriendly Javascript. Now the javascript is called in the href.
322
+ * Custom image support for hosted solutions
colorpicker.js DELETED
@@ -1,484 +0,0 @@
1
- /**
2
- *
3
- * Color picker
4
- * Author: Stefan Petre www.eyecon.ro
5
- *
6
- * Dual licensed under the MIT and GPL licenses
7
- *
8
- */
9
- (function ($) {
10
- var ColorPicker = function () {
11
- var
12
- ids = {},
13
- inAction,
14
- charMin = 65,
15
- visible,
16
- tpl = '<div class="colorpicker"><div class="colorpicker_color"><div><div></div></div></div><div class="colorpicker_hue"><div></div></div><div class="colorpicker_new_color"></div><div class="colorpicker_current_color"></div><div class="colorpicker_hex"><input type="text" maxlength="6" size="6" /></div><div class="colorpicker_rgb_r colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_g colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_h colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_s colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_submit"></div></div>',
17
- defaults = {
18
- eventName: 'click',
19
- onShow: function () {},
20
- onBeforeShow: function(){},
21
- onHide: function () {},
22
- onChange: function () {},
23
- onSubmit: function () {},
24
- color: 'ff0000',
25
- livePreview: true,
26
- flat: false
27
- },
28
- fillRGBFields = function (hsb, cal) {
29
- var rgb = HSBToRGB(hsb);
30
- $(cal).data('colorpicker').fields
31
- .eq(1).val(rgb.r).end()
32
- .eq(2).val(rgb.g).end()
33
- .eq(3).val(rgb.b).end();
34
- },
35
- fillHSBFields = function (hsb, cal) {
36
- $(cal).data('colorpicker').fields
37
- .eq(4).val(hsb.h).end()
38
- .eq(5).val(hsb.s).end()
39
- .eq(6).val(hsb.b).end();
40
- },
41
- fillHexFields = function (hsb, cal) {
42
- $(cal).data('colorpicker').fields
43
- .eq(0).val(HSBToHex(hsb)).end();
44
- },
45
- setSelector = function (hsb, cal) {
46
- $(cal).data('colorpicker').selector.css('backgroundColor', '#' + HSBToHex({h: hsb.h, s: 100, b: 100}));
47
- $(cal).data('colorpicker').selectorIndic.css({
48
- left: parseInt(150 * hsb.s/100, 10),
49
- top: parseInt(150 * (100-hsb.b)/100, 10)
50
- });
51
- },
52
- setHue = function (hsb, cal) {
53
- $(cal).data('colorpicker').hue.css('top', parseInt(150 - 150 * hsb.h/360, 10));
54
- },
55
- setCurrentColor = function (hsb, cal) {
56
- $(cal).data('colorpicker').currentColor.css('backgroundColor', '#' + HSBToHex(hsb));
57
- },
58
- setNewColor = function (hsb, cal) {
59
- $(cal).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(hsb));
60
- },
61
- keyDown = function (ev) {
62
- var pressedKey = ev.charCode || ev.keyCode || -1;
63
- if ((pressedKey > charMin && pressedKey <= 90) || pressedKey == 32) {
64
- return false;
65
- }
66
- var cal = $(this).parent().parent();
67
- if (cal.data('colorpicker').livePreview === true) {
68
- change.apply(this);
69
- }
70
- },
71
- change = function (ev) {
72
- var cal = $(this).parent().parent(), col;
73
- if (this.parentNode.className.indexOf('_hex') > 0) {
74
- cal.data('colorpicker').color = col = HexToHSB(fixHex(this.value));
75
- } else if (this.parentNode.className.indexOf('_hsb') > 0) {
76
- cal.data('colorpicker').color = col = fixHSB({
77
- h: parseInt(cal.data('colorpicker').fields.eq(4).val(), 10),
78
- s: parseInt(cal.data('colorpicker').fields.eq(5).val(), 10),
79
- b: parseInt(cal.data('colorpicker').fields.eq(6).val(), 10)
80
- });
81
- } else {
82
- cal.data('colorpicker').color = col = RGBToHSB(fixRGB({
83
- r: parseInt(cal.data('colorpicker').fields.eq(1).val(), 10),
84
- g: parseInt(cal.data('colorpicker').fields.eq(2).val(), 10),
85
- b: parseInt(cal.data('colorpicker').fields.eq(3).val(), 10)
86
- }));
87
- }
88
- if (ev) {
89
- fillRGBFields(col, cal.get(0));
90
- fillHexFields(col, cal.get(0));
91
- fillHSBFields(col, cal.get(0));
92
- }
93
- setSelector(col, cal.get(0));
94
- setHue(col, cal.get(0));
95
- setNewColor(col, cal.get(0));
96
- cal.data('colorpicker').onChange.apply(cal, [col, HSBToHex(col), HSBToRGB(col)]);
97
- },
98
- blur = function (ev) {
99
- var cal = $(this).parent().parent();
100
- cal.data('colorpicker').fields.parent().removeClass('colorpicker_focus');
101
- },
102
- focus = function () {
103
- charMin = this.parentNode.className.indexOf('_hex') > 0 ? 70 : 65;
104
- $(this).parent().parent().data('colorpicker').fields.parent().removeClass('colorpicker_focus');
105
- $(this).parent().addClass('colorpicker_focus');
106
- },
107
- downIncrement = function (ev) {
108
- var field = $(this).parent().find('input').focus();
109
- var current = {
110
- el: $(this).parent().addClass('colorpicker_slider'),
111
- max: this.parentNode.className.indexOf('_hsb_h') > 0 ? 360 : (this.parentNode.className.indexOf('_hsb') > 0 ? 100 : 255),
112
- y: ev.pageY,
113
- field: field,
114
- val: parseInt(field.val(), 10),
115
- preview: $(this).parent().parent().data('colorpicker').livePreview
116
- };
117
- $(document).bind('mouseup', current, upIncrement);
118
- $(document).bind('mousemove', current, moveIncrement);
119
- },
120
- moveIncrement = function (ev) {
121
- ev.data.field.val(Math.max(0, Math.min(ev.data.max, parseInt(ev.data.val + ev.pageY - ev.data.y, 10))));
122
- if (ev.data.preview) {
123
- change.apply(ev.data.field.get(0), [true]);
124
- }
125
- return false;
126
- },
127
- upIncrement = function (ev) {
128
- change.apply(ev.data.field.get(0), [true]);
129
- ev.data.el.removeClass('colorpicker_slider').find('input').focus();
130
- $(document).unbind('mouseup', upIncrement);
131
- $(document).unbind('mousemove', moveIncrement);
132
- return false;
133
- },
134
- downHue = function (ev) {
135
- var current = {
136
- cal: $(this).parent(),
137
- y: $(this).offset().top
138
- };
139
- current.preview = current.cal.data('colorpicker').livePreview;
140
- $(document).bind('mouseup', current, upHue);
141
- $(document).bind('mousemove', current, moveHue);
142
- },
143
- moveHue = function (ev) {
144
- change.apply(
145
- ev.data.cal.data('colorpicker')
146
- .fields
147
- .eq(4)
148
- .val(parseInt(360*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.y))))/150, 10))
149
- .get(0),
150
- [ev.data.preview]
151
- );
152
- return false;
153
- },
154
- upHue = function (ev) {
155
- fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
156
- fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
157
- $(document).unbind('mouseup', upHue);
158
- $(document).unbind('mousemove', moveHue);
159
- return false;
160
- },
161
- downSelector = function (ev) {
162
- var current = {
163
- cal: $(this).parent(),
164
- pos: $(this).offset()
165
- };
166
- current.preview = current.cal.data('colorpicker').livePreview;
167
- $(document).bind('mouseup', current, upSelector);
168
- $(document).bind('mousemove', current, moveSelector);
169
- },
170
- moveSelector = function (ev) {
171
- change.apply(
172
- ev.data.cal.data('colorpicker')
173
- .fields
174
- .eq(6)
175
- .val(parseInt(100*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.pos.top))))/150, 10))
176
- .end()
177
- .eq(5)
178
- .val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX - ev.data.pos.left))))/150, 10))
179
- .get(0),
180
- [ev.data.preview]
181
- );
182
- return false;
183
- },
184
- upSelector = function (ev) {
185
- fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
186
- fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
187
- $(document).unbind('mouseup', upSelector);
188
- $(document).unbind('mousemove', moveSelector);
189
- return false;
190
- },
191
- enterSubmit = function (ev) {
192
- $(this).addClass('colorpicker_focus');
193
- },
194
- leaveSubmit = function (ev) {
195
- $(this).removeClass('colorpicker_focus');
196
- },
197
- clickSubmit = function (ev) {
198
- var cal = $(this).parent();
199
- var col = cal.data('colorpicker').color;
200
- cal.data('colorpicker').origColor = col;
201
- setCurrentColor(col, cal.get(0));
202
- cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col), cal.data('colorpicker').el);
203
- },
204
- show = function (ev) {
205
- var cal = $('#' + $(this).data('colorpickerId'));
206
- cal.data('colorpicker').onBeforeShow.apply(this, [cal.get(0)]);
207
- var pos = $(this).offset();
208
- var viewPort = getViewport();
209
- var top = pos.top + this.offsetHeight;
210
- var left = pos.left;
211
- if (top + 176 > viewPort.t + viewPort.h) {
212
- top -= this.offsetHeight + 176;
213
- }
214
- if (left + 356 > viewPort.l + viewPort.w) {
215
- left -= 356;
216
- }
217
- cal.css({left: left + 'px', top: top + 'px'});
218
- if (cal.data('colorpicker').onShow.apply(this, [cal.get(0)]) != false) {
219
- cal.show();
220
- }
221
- $(document).bind('mousedown', {cal: cal}, hide);
222
- return false;
223
- },
224
- hide = function (ev) {
225
- if (!isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) {
226
- if (ev.data.cal.data('colorpicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) {
227
- ev.data.cal.hide();
228
- }
229
- $(document).unbind('mousedown', hide);
230
- }
231
- },
232
- isChildOf = function(parentEl, el, container) {
233
- if (parentEl == el) {
234
- return true;
235
- }
236
- if (parentEl.contains) {
237
- return parentEl.contains(el);
238
- }
239
- if ( parentEl.compareDocumentPosition ) {
240
- return !!(parentEl.compareDocumentPosition(el) & 16);
241
- }
242
- var prEl = el.parentNode;
243
- while(prEl && prEl != container) {
244
- if (prEl == parentEl)
245
- return true;
246
- prEl = prEl.parentNode;
247
- }
248
- return false;
249
- },
250
- getViewport = function () {
251
- var m = document.compatMode == 'CSS1Compat';
252
- return {
253
- l : window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft),
254
- t : window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop),
255
- w : window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth),
256
- h : window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight)
257
- };
258
- },
259
- fixHSB = function (hsb) {
260
- return {
261
- h: Math.min(360, Math.max(0, hsb.h)),
262
- s: Math.min(100, Math.max(0, hsb.s)),
263
- b: Math.min(100, Math.max(0, hsb.b))
264
- };
265
- },
266
- fixRGB = function (rgb) {
267
- return {
268
- r: Math.min(255, Math.max(0, rgb.r)),
269
- g: Math.min(255, Math.max(0, rgb.g)),
270
- b: Math.min(255, Math.max(0, rgb.b))
271
- };
272
- },
273
- fixHex = function (hex) {
274
- var len = 6 - hex.length;
275
- if (len > 0) {
276
- var o = [];
277
- for (var i=0; i<len; i++) {
278
- o.push('0');
279
- }
280
- o.push(hex);
281
- hex = o.join('');
282
- }
283
- return hex;
284
- },
285
- HexToRGB = function (hex) {
286
- var hex = parseInt(((hex.indexOf('#') > -1) ? hex.substring(1) : hex), 16);
287
- return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)};
288
- },
289
- HexToHSB = function (hex) {
290
- return RGBToHSB(HexToRGB(hex));
291
- },
292
- RGBToHSB = function (rgb) {
293
- var hsb = {
294
- h: 0,
295
- s: 0,
296
- b: 0
297
- };
298
- var min = Math.min(rgb.r, rgb.g, rgb.b);
299
- var max = Math.max(rgb.r, rgb.g, rgb.b);
300
- var delta = max - min;
301
- hsb.b = max;
302
- if (max != 0) {
303
-
304
- }
305
- hsb.s = max != 0 ? 255 * delta / max : 0;
306
- if (hsb.s != 0) {
307
- if (rgb.r == max) {
308
- hsb.h = (rgb.g - rgb.b) / delta;
309
- } else if (rgb.g == max) {
310
- hsb.h = 2 + (rgb.b - rgb.r) / delta;
311
- } else {
312
- hsb.h = 4 + (rgb.r - rgb.g) / delta;
313
- }
314
- } else {
315
- hsb.h = -1;
316
- }
317
- hsb.h *= 60;
318
- if (hsb.h < 0) {
319
- hsb.h += 360;
320
- }
321
- hsb.s *= 100/255;
322
- hsb.b *= 100/255;
323
- return hsb;
324
- },
325
- HSBToRGB = function (hsb) {
326
- var rgb = {};
327
- var h = Math.round(hsb.h);
328
- var s = Math.round(hsb.s*255/100);
329
- var v = Math.round(hsb.b*255/100);
330
- if(s == 0) {
331
- rgb.r = rgb.g = rgb.b = v;
332
- } else {
333
- var t1 = v;
334
- var t2 = (255-s)*v/255;
335
- var t3 = (t1-t2)*(h%60)/60;
336
- if(h==360) h = 0;
337
- if(h<60) {rgb.r=t1; rgb.b=t2; rgb.g=t2+t3}
338
- else if(h<120) {rgb.g=t1; rgb.b=t2; rgb.r=t1-t3}
339
- else if(h<180) {rgb.g=t1; rgb.r=t2; rgb.b=t2+t3}
340
- else if(h<240) {rgb.b=t1; rgb.r=t2; rgb.g=t1-t3}
341
- else if(h<300) {rgb.b=t1; rgb.g=t2; rgb.r=t2+t3}
342
- else if(h<360) {rgb.r=t1; rgb.g=t2; rgb.b=t1-t3}
343
- else {rgb.r=0; rgb.g=0; rgb.b=0}
344
- }
345
- return {r:Math.round(rgb.r), g:Math.round(rgb.g), b:Math.round(rgb.b)};
346
- },
347
- RGBToHex = function (rgb) {
348
- var hex = [
349
- rgb.r.toString(16),
350
- rgb.g.toString(16),
351
- rgb.b.toString(16)
352
- ];
353
- $.each(hex, function (nr, val) {
354
- if (val.length == 1) {
355
- hex[nr] = '0' + val;
356
- }
357
- });
358
- return hex.join('');
359
- },
360
- HSBToHex = function (hsb) {
361
- return RGBToHex(HSBToRGB(hsb));
362
- },
363
- restoreOriginal = function () {
364
- var cal = $(this).parent();
365
- var col = cal.data('colorpicker').origColor;
366
- cal.data('colorpicker').color = col;
367
- fillRGBFields(col, cal.get(0));
368
- fillHexFields(col, cal.get(0));
369
- fillHSBFields(col, cal.get(0));
370
- setSelector(col, cal.get(0));
371
- setHue(col, cal.get(0));
372
- setNewColor(col, cal.get(0));
373
- };
374
- return {
375
- init: function (opt) {
376
- opt = $.extend({}, defaults, opt||{});
377
- if (typeof opt.color == 'string') {
378
- opt.color = HexToHSB(opt.color);
379
- } else if (opt.color.r != undefined && opt.color.g != undefined && opt.color.b != undefined) {
380
- opt.color = RGBToHSB(opt.color);
381
- } else if (opt.color.h != undefined && opt.color.s != undefined && opt.color.b != undefined) {
382
- opt.color = fixHSB(opt.color);
383
- } else {
384
- return this;
385
- }
386
- return this.each(function () {
387
- if (!$(this).data('colorpickerId')) {
388
- var options = $.extend({}, opt);
389
- options.origColor = opt.color;
390
- var id = 'collorpicker_' + parseInt(Math.random() * 1000);
391
- $(this).data('colorpickerId', id);
392
- var cal = $(tpl).attr('id', id);
393
- if (options.flat) {
394
- cal.appendTo(this).show();
395
- } else {
396
- cal.appendTo(document.body);
397
- }
398
- options.fields = cal
399
- .find('input')
400
- .bind('keyup', keyDown)
401
- .bind('change', change)
402
- .bind('blur', blur)
403
- .bind('focus', focus);
404
- cal
405
- .find('span').bind('mousedown', downIncrement).end()
406
- .find('>div.colorpicker_current_color').bind('click', restoreOriginal);
407
- options.selector = cal.find('div.colorpicker_color').bind('mousedown', downSelector);
408
- options.selectorIndic = options.selector.find('div div');
409
- options.el = this;
410
- options.hue = cal.find('div.colorpicker_hue div');
411
- cal.find('div.colorpicker_hue').bind('mousedown', downHue);
412
- options.newColor = cal.find('div.colorpicker_new_color');
413
- options.currentColor = cal.find('div.colorpicker_current_color');
414
- cal.data('colorpicker', options);
415
- cal.find('div.colorpicker_submit')
416
- .bind('mouseenter', enterSubmit)
417
- .bind('mouseleave', leaveSubmit)
418
- .bind('click', clickSubmit);
419
- fillRGBFields(options.color, cal.get(0));
420
- fillHSBFields(options.color, cal.get(0));
421
- fillHexFields(options.color, cal.get(0));
422
- setHue(options.color, cal.get(0));
423
- setSelector(options.color, cal.get(0));
424
- setCurrentColor(options.color, cal.get(0));
425
- setNewColor(options.color, cal.get(0));
426
- if (options.flat) {
427
- cal.css({
428
- position: 'relative',
429
- display: 'block'
430
- });
431
- } else {
432
- $(this).bind(options.eventName, show);
433
- }
434
- }
435
- });
436
- },
437
- showPicker: function() {
438
- return this.each( function () {
439
- if ($(this).data('colorpickerId')) {
440
- show.apply(this);
441
- }
442
- });
443
- },
444
- hidePicker: function() {
445
- return this.each( function () {
446
- if ($(this).data('colorpickerId')) {
447
- $('#' + $(this).data('colorpickerId')).hide();
448
- }
449
- });
450
- },
451
- setColor: function(col) {
452
- if (typeof col == 'string') {
453
- col = HexToHSB(col);
454
- } else if (col.r != undefined && col.g != undefined && col.b != undefined) {
455
- col = RGBToHSB(col);
456
- } else if (col.h != undefined && col.s != undefined && col.b != undefined) {
457
- col = fixHSB(col);
458
- } else {
459
- return this;
460
- }
461
- return this.each(function(){
462
- if ($(this).data('colorpickerId')) {
463
- var cal = $('#' + $(this).data('colorpickerId'));
464
- cal.data('colorpicker').color = col;
465
- cal.data('colorpicker').origColor = col;
466
- fillRGBFields(col, cal.get(0));
467
- fillHSBFields(col, cal.get(0));
468
- fillHexFields(col, cal.get(0));
469
- setHue(col, cal.get(0));
470
- setSelector(col, cal.get(0));
471
- setCurrentColor(col, cal.get(0));
472
- setNewColor(col, cal.get(0));
473
- }
474
- });
475
- }
476
- };
477
- }();
478
- $.fn.extend({
479
- ColorPicker: ColorPicker.init,
480
- ColorPickerHide: ColorPicker.hidePicker,
481
- ColorPickerShow: ColorPicker.showPicker,
482
- ColorPickerSetColor: ColorPicker.setColor
483
- });
484
- })(jQuery)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
images/blank.gif DELETED
Binary file
images/colorpicker_background.png DELETED
Binary file
images/colorpicker_hex.png DELETED
Binary file
images/colorpicker_hsb_b.png DELETED
Binary file
images/colorpicker_hsb_h.png DELETED
Binary file
images/colorpicker_hsb_s.png DELETED
Binary file
images/colorpicker_indic.gif DELETED
Binary file
images/colorpicker_overlay.png DELETED
Binary file
images/colorpicker_rgb_b.png DELETED
Binary file
images/colorpicker_rgb_g.png DELETED
Binary file
images/colorpicker_rgb_r.png DELETED
Binary file
images/colorpicker_select.gif DELETED
Binary file
images/colorpicker_submit.png DELETED
Binary file
images/custom_background.png DELETED
Binary file
images/custom_hex.png DELETED
Binary file
images/custom_hsb_b.png DELETED
Binary file
images/custom_hsb_h.png DELETED
Binary file
images/custom_hsb_s.png DELETED
Binary file
images/custom_indic.gif DELETED
Binary file
images/custom_rgb_b.png DELETED
Binary file
images/custom_rgb_g.png DELETED
Binary file
images/custom_rgb_r.png DELETED
Binary file
images/custom_submit.png DELETED
Binary file
images/noimage.png DELETED
Binary file
images/select.png DELETED
Binary file
images/select2.png DELETED
Binary file
images/slider.png DELETED
Binary file
languages/printfriendly.pot CHANGED
@@ -1,364 +1,505 @@
1
- # Copyright (C) 2010
2
- # This file is distributed under the same license as the package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: PrintFriendly\n"
6
- "Report-Msgid-Bugs-To: http://wordpress.org/tag/printfriendly\n"
7
- "POT-Creation-Date: 2015-06-17 20:37+0530\n"
8
- "PO-Revision-Date: 2015-06-17 20:38+0530\n"
9
- "Last-Translator: EJ Reinders Folmer <poedit_nospam@adviesenzo.nl>\n"
10
- "Language-Team: PrintFriendly Team <support@printfriendly>\n"
11
- "Language: en_US\n"
12
  "MIME-Version: 1.0\n"
13
- "Content-Type: text/plain; charset=UTF-8\n"
14
  "Content-Transfer-Encoding: 8bit\n"
15
- "X-Generator: Poedit 1.5.4\n"
16
- "X-Poedit-KeywordsList: __;_e;_n;_x;_ex;_nx;esc_html__;esc_html_e;esc_html_x;"
17
- "esc_attr__;esc_attr_e;esc_attr_x;_n_noop;_nx_noop\n"
18
- "X-Poedit-Basepath: .\n"
19
- "X-Poedit-SourceCharset: UTF-8\n"
20
- "X-Poedit-SearchPath-0: .\n"
21
- "X-Poedit-SearchPath-1: ..\n"
22
-
23
- #: ../pf.php:492
24
  msgid ""
25
- "No valid custom image url received, please enter a valid url to use a custom "
26
- "image."
27
  msgstr ""
28
 
29
- #: ../pf.php:501
30
  msgid "The text size you entered is invalid, please stay between 9px and 25px"
31
  msgstr ""
32
 
33
- #: ../pf.php:509
34
  msgid ""
35
  "The color you entered is not valid, it must be a valid hexadecimal RGB font "
36
  "color."
37
  msgstr ""
38
 
39
- #: ../pf.php:589
40
  msgid ""
41
  "No valid custom logo url received, please enter a valid url to use a custom "
42
  "logo."
43
  msgstr ""
44
 
45
- #: ../pf.php:642
46
  msgid "PrintFriendly Options"
47
  msgstr ""
48
 
49
- #: ../pf.php:642
50
  msgid "Print Friendly & PDF"
51
  msgstr ""
52
 
53
- #: ../pf.php:655
54
- msgid "Need Help?"
 
 
 
 
 
 
 
 
55
  msgstr ""
56
 
57
- #: ../pf.php:656
58
- #, php-format
59
- msgid "Be sure to check out the %s!"
60
  msgstr ""
61
 
62
- #: ../pf.php:656
63
- msgid "Frequently Asked Questions"
64
  msgstr ""
65
 
66
- #: ../pf.php:695
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67
  msgid "Settings"
68
  msgstr ""
69
 
70
- #: ../pf.php:1112
 
 
 
 
 
 
 
 
 
71
  msgid "Only display when post is in:"
72
  msgstr ""
73
 
74
- #: ../pf.php:1130
75
  msgid ""
76
- "Currently in Debug Mode. Following information is visible in debug mode only:"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
77
  msgstr ""
78
 
79
- #: ../pf.php:1131
80
- msgid "Options:"
81
  msgstr ""
82
 
83
- #: ../pf.php:1137
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
84
  msgid "Print Friendly & PDF Settings"
85
  msgstr ""
86
 
87
- #: ../pf.php:1142
88
- msgid "Pick Your Button Style"
 
 
89
  msgstr ""
90
 
91
- #: ../pf.php:1165
92
- msgid "Custom Button"
 
 
93
  msgstr ""
94
 
95
- #: ../pf.php:1168
96
- msgid "Enter Image URL"
97
  msgstr ""
98
 
99
- #: ../pf.php:1170
100
- msgid "Ex: http://www.example.com/<br>Ex: /wp/wp-content/uploads/example.png"
101
  msgstr ""
102
 
103
- #: ../pf.php:1176
104
- msgid "Text"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
105
  msgstr ""
106
 
107
- #: ../pf.php:1180
108
- msgid "Text Color"
109
  msgstr ""
110
 
111
- #: ../pf.php:1187
 
 
 
 
 
 
 
 
 
 
 
 
112
  msgid "Text Size"
113
  msgstr ""
114
 
115
- #: ../pf.php:1199
116
- msgid "Button Positioning"
117
  msgstr ""
118
 
119
- #: ../pf.php:1206
120
- msgid "Left Align"
121
  msgstr ""
122
 
123
- #: ../pf.php:1718
124
- msgid "Do not use CSS for button styles"
125
  msgstr ""
126
 
127
- #: ../pf.php:1207
128
- msgid "Right Align"
129
  msgstr ""
130
 
131
- #: ../pf.php:1208
132
- msgid "Center"
133
  msgstr ""
134
 
135
- #: ../pf.php:1209
136
- msgid "None"
137
  msgstr ""
138
 
139
- #: ../pf.php:1216
140
- msgid "Above Content"
141
  msgstr ""
142
 
143
- #: ../pf.php:1217
144
- msgid "Below Content"
145
  msgstr ""
146
 
147
- #: ../pf.php:1224
148
- msgid "Margin Left"
149
  msgstr ""
150
 
151
- #: ../pf.php:1227
152
- msgid "Margin Right"
153
  msgstr ""
154
 
155
- #: ../pf.php:1230
156
- msgid "Margin Top"
157
  msgstr ""
158
 
159
- #: ../pf.php:1233
160
- msgid "Margin Bottom"
161
  msgstr ""
162
 
163
- #: ../pf.php:1242
164
- msgid "Display button on:"
165
  msgstr ""
166
 
167
- #: ../pf.php:1244
168
  msgid "Posts"
169
  msgstr ""
170
 
171
- #: ../pf.php:1245
172
  msgid "Pages"
173
  msgstr ""
174
 
175
- #: ../pf.php:1246
176
  msgid "Homepage"
177
  msgstr ""
178
 
179
- #: ../pf.php:1247
180
  msgid "Category Pages"
181
  msgstr ""
182
 
183
- #: ../pf.php:1248
184
  msgid "Taxonomy Pages"
185
  msgstr ""
186
 
187
- #: ../pf.php:1249
188
  msgid "Add direct to template"
189
  msgstr ""
190
 
191
- #: ../pf.php:1251
192
- msgid "or use shortcode inside your page/article"
193
- msgstr ""
194
-
195
- #: ../pf.php:1269
196
- msgid "Print PDF Options"
197
- msgstr ""
198
-
199
- #: ../pf.php:1271
200
- msgid "Page header"
201
  msgstr ""
202
 
203
- #: ../pf.php:1273
204
- msgid "My Website Icon"
205
  msgstr ""
206
 
207
- #: ../pf.php:1274
208
- msgid "Upload an Image"
209
  msgstr ""
210
 
211
- #: ../pf.php:1285
212
- msgid "Click-to-delete"
213
  msgstr ""
214
 
215
- #: ../pf.php:1287 ../pf.php:1310 ../pf.php:1317 ../pf.php:1324
216
- msgid "Allow"
217
  msgstr ""
218
 
219
- #: ../pf.php:1288 ../pf.php:1311 ../pf.php:1318 ../pf.php:1325
220
- msgid "Not Allow"
221
  msgstr ""
222
 
223
- #: ../pf.php:1292
224
- msgid "Images"
225
  msgstr ""
226
 
227
- #: ../pf.php:1294
228
- msgid "Include"
229
  msgstr ""
230
 
231
- #: ../pf.php:1295
232
- msgid "Exclude"
233
  msgstr ""
234
 
235
- #: ../pf.php:1299
236
- msgid "Image style"
237
  msgstr ""
238
 
239
- #: ../pf.php:1301
240
- msgid "Align Right"
241
  msgstr ""
242
 
243
- #: ../pf.php:1302
244
- msgid "Align Left"
245
  msgstr ""
246
 
247
- #: ../pf.php:1303
248
- msgid "Align None"
249
  msgstr ""
250
 
251
- #: ../pf.php:1304
252
- msgid "Center/Block"
253
  msgstr ""
254
 
255
- #: ../pf.php:1308
256
- msgid "Email"
257
  msgstr ""
258
 
259
- #: ../pf.php:1315
260
- msgid "PDF"
261
  msgstr ""
262
 
263
- #: ../pf.php:1322
264
- msgid "Print"
265
  msgstr ""
266
 
267
- #: ../pf.php:1329
268
- msgid "Custom css url"
269
  msgstr ""
270
 
271
- #: ../pf.php:1331
272
- msgid "?"
273
  msgstr ""
274
 
275
- #: ../pf.php:1336
276
- msgid "Webmaster Settings"
277
  msgstr ""
278
 
279
- #: ../pf.php:1338
280
- msgid "Website Protocol"
281
  msgstr ""
282
 
283
- #: ../pf.php:1340
284
- msgid "http (common)"
285
  msgstr ""
286
 
287
- #: ../pf.php:1341
288
- msgid "https (secure)"
289
  msgstr ""
290
 
291
- #: ../pf.php:1346
292
- msgid "Password Protected Content"
293
  msgstr ""
294
 
295
- #: ../pf.php:1348 ../pf.php:1355 ../pf.php:1367
296
- msgid "No"
297
  msgstr ""
298
 
299
- #: ../pf.php:1349 ../pf.php:1354 ../pf.php:1366
300
- msgid "Yes"
301
  msgstr ""
302
 
303
- #: ../pf.php:1352
304
- msgid "Use JavaScript"
305
  msgstr ""
306
 
307
- #: ../pf.php:1358
308
- msgid "Preview appears on the page in a Lightbox."
309
  msgstr ""
310
 
311
- #: ../pf.php:1361
312
- msgid "Preview opens a new browser tab."
313
  msgstr ""
314
 
315
- #: ../pf.php:1364
316
- msgid "Track in Google Analytics"
317
  msgstr ""
318
 
319
- #: ../pf.php:1371
320
- msgid "My Page Content Selected By:"
321
  msgstr ""
322
 
323
- #: ../pf.php:1371
324
- msgid "Change this setting if your content is not showing in the preview."
325
  msgstr ""
326
 
327
- #: ../pf.php:1373
328
- msgid "WP \"the_content\" filter"
 
 
329
  msgstr ""
330
 
331
- #: ../pf.php:1374
332
- msgid "Content Algorithm"
333
  msgstr ""
334
 
335
- #: ../pf.php:1379
336
- msgid "Save Options"
337
  msgstr ""
338
 
339
- #: ../pf.php:1380
340
- msgid "Cancel"
341
  msgstr ""
342
 
343
- #: ../pf.php:1383
344
  msgid ""
345
- "Need professional options for your corporate, education, or agency developed "
346
- "website? Check out"
347
  msgstr ""
348
 
349
- #: ../pf.php:1385
350
- msgid "Like PrintFriendly?"
 
 
351
  msgstr ""
352
 
353
- #: ../pf.php:1385
354
- msgid "Give us a rating"
355
  msgstr ""
356
 
357
- #: ../pf.php:1385
358
- msgid "Need help or have suggestions?"
359
  msgstr ""
360
 
361
- #: ../pf.php:1385
362
- msgid "PrintFriendly & PDF button for your website. Optimizes your pages and brand for print, pdf, and email."
363
- "Name and URL are included to ensure repeat visitors and new visitors when printed versions are shared."
 
364
  msgstr ""
1
+ # Copyright (C) 2021 Print, PDF, & Email by PrintFriendly
2
+ # This file is distributed under the same license as the Print, PDF & Email by PrintFriendly package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Print, PDF & Email by PrintFriendly 3.16.0\n"
6
+ "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-printfriendly\n"
7
+ "POT-Creation-Date: 2021-01-27 09:09:42+00:00\n"
 
 
 
 
8
  "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
+ "Last-Translator: PrintFriendly Translate Team <support@printfriendly.com>\n"
12
+ "Language-Team: PrintFriendly Translate Team <support@printfriendly.com>\n"
13
+
14
+ #: pf.php:516
 
 
 
 
 
15
  msgid ""
16
+ "No valid custom image url received, please enter a valid url to use a "
17
+ "custom image."
18
  msgstr ""
19
 
20
+ #: pf.php:524
21
  msgid "The text size you entered is invalid, please stay between 9px and 25px"
22
  msgstr ""
23
 
24
+ #: pf.php:532
25
  msgid ""
26
  "The color you entered is not valid, it must be a valid hexadecimal RGB font "
27
  "color."
28
  msgstr ""
29
 
30
+ #: pf.php:589
31
  msgid ""
32
  "No valid custom logo url received, please enter a valid url to use a custom "
33
  "logo."
34
  msgstr ""
35
 
36
+ #: pf.php:655
37
  msgid "PrintFriendly Options"
38
  msgstr ""
39
 
40
+ #: pf.php:655
41
  msgid "Print Friendly & PDF"
42
  msgstr ""
43
 
44
+ #: pf.php:685 views/tabs.php:270
45
+ msgid "Custom Image"
46
+ msgstr ""
47
+
48
+ #: pf.php:686
49
+ msgid "Use Image"
50
+ msgstr ""
51
+
52
+ #: pf.php:687
53
+ msgid "Invalid Image URL"
54
  msgstr ""
55
 
56
+ #: pf.php:699
57
+ msgid "Activation"
 
58
  msgstr ""
59
 
60
+ #: pf.php:700
61
+ msgid "Checking status"
62
  msgstr ""
63
 
64
+ #: pf.php:701 views/pro.php:37
65
+ msgid "Activate"
66
+ msgstr ""
67
+
68
+ #: pf.php:702
69
+ msgid "Active Trial"
70
+ msgstr ""
71
+
72
+ #: pf.php:703
73
+ msgid "Active"
74
+ msgstr ""
75
+
76
+ #: pf.php:704
77
+ msgid "Expired"
78
+ msgstr ""
79
+
80
+ #: pf.php:705
81
+ msgid "Please check Internet connection."
82
+ msgstr ""
83
+
84
+ #: pf.php:733
85
  msgid "Settings"
86
  msgstr ""
87
 
88
+ #: pf.php:756 views/tabs.php:37 views/tabs.php:234 views/tabs.php:311
89
+ #: views/tabs.php:365 views/tabs.php:397
90
+ msgid "Documentation"
91
+ msgstr ""
92
+
93
+ #: pf.php:1102 views/tabs.php:93
94
+ msgid "Custom Button"
95
+ msgstr ""
96
+
97
+ #: pf.php:1283
98
  msgid "Only display when post is in:"
99
  msgstr ""
100
 
101
+ #: pf.php:1368
102
  msgid ""
103
+ "You are currently using %1$s%2$s%3$s. You can copy copy its contents into "
104
+ "the textbox if you want to update the styles."
105
+ msgstr ""
106
+
107
+ #: views/pro.php:10
108
+ msgid "Learn more"
109
+ msgstr ""
110
+
111
+ #: views/pro.php:22 views/tabs.php:405
112
+ msgid "Email"
113
+ msgstr ""
114
+
115
+ #: views/pro.php:22
116
+ msgid "To send account details"
117
+ msgstr ""
118
+
119
+ #: views/pro.php:25
120
+ msgid "Email is invalid"
121
+ msgstr ""
122
+
123
+ #: views/pro.php:30
124
+ msgid "Website Domain"
125
+ msgstr ""
126
+
127
+ #: views/pro.php:33
128
+ msgid "Domain is invalid"
129
+ msgstr ""
130
+
131
+ #: views/pro.php:38
132
+ msgid "Free 30 days trial, no credit card required."
133
+ msgstr ""
134
+
135
+ #: views/pro.php:42
136
+ msgid "Buy Now"
137
  msgstr ""
138
 
139
+ #: views/pro.php:47
140
+ msgid "Last Checked"
141
  msgstr ""
142
 
143
+ #: views/pro.php:53
144
+ msgid "Please wait"
145
+ msgstr ""
146
+
147
+ #: views/pro.php:62
148
+ msgid "Pro Features"
149
+ msgstr ""
150
+
151
+ #: views/pro.php:64
152
+ msgid "Faster, better experience for end-user"
153
+ msgstr ""
154
+
155
+ #: views/pro.php:65
156
+ msgid "Cache-free, so any updates are instantly included"
157
+ msgstr ""
158
+
159
+ #: views/pro.php:66
160
+ msgid "Ad-Free for companies and organizations"
161
+ msgstr ""
162
+
163
+ #: views/pro.php:67
164
+ msgid "Works on all sites (Password protected, Angular/React/Ember)"
165
+ msgstr ""
166
+
167
+ #: views/pro.php:68
168
+ msgid "Email support"
169
+ msgstr ""
170
+
171
+ #: views/pro.php:70
172
+ msgid "Have a development/staging domain?"
173
+ msgstr ""
174
+
175
+ #: views/pro.php:70
176
+ msgid "Add Free Development Domain"
177
+ msgstr ""
178
+
179
+ #: views/settings.php:3
180
  msgid "Print Friendly & PDF Settings"
181
  msgstr ""
182
 
183
+ #: views/settings.php:14
184
+ msgid ""
185
+ "If you like <strong>PrintFriendly</strong> please leave us a %s rating. A "
186
+ "huge thanks in advance!"
187
  msgstr ""
188
 
189
+ #: views/settings.php:16
190
+ msgid ""
191
+ "Need professional options for your corporate, education, or agency "
192
+ "developed website? Check out"
193
  msgstr ""
194
 
195
+ #: views/settings.php:18
196
+ msgid "Need help or have suggestions?"
197
  msgstr ""
198
 
199
+ #: views/tabs.php:4
200
+ msgid "Standard"
201
  msgstr ""
202
 
203
+ #: views/tabs.php:5
204
+ msgid "Advanced"
205
+ msgstr ""
206
+
207
+ #: views/tabs.php:7
208
+ msgid "Debug"
209
+ msgstr ""
210
+
211
+ #: views/tabs.php:20
212
+ msgid "Select content using"
213
+ msgstr ""
214
+
215
+ #: views/tabs.php:26
216
+ msgid "Not available for woocommerce"
217
+ msgstr ""
218
+
219
+ #: views/tabs.php:29
220
+ msgid "WP Template"
221
+ msgstr ""
222
+
223
+ #: views/tabs.php:30
224
+ msgid "Content Algorithm"
225
+ msgstr ""
226
+
227
+ #: views/tabs.php:36
228
+ msgid "Change this setting if your content is not showing in the preview."
229
+ msgstr ""
230
+
231
+ #: views/tabs.php:44
232
+ msgid "Button Style"
233
+ msgstr ""
234
+
235
+ #: views/tabs.php:98
236
+ msgid "Image"
237
  msgstr ""
238
 
239
+ #: views/tabs.php:105
240
+ msgid "Use Your Image"
241
  msgstr ""
242
 
243
+ #: views/tabs.php:108 views/tabs.php:276
244
+ msgid "Select Image"
245
+ msgstr ""
246
+
247
+ #: views/tabs.php:121
248
+ msgid "No Image"
249
+ msgstr ""
250
+
251
+ #: views/tabs.php:126
252
+ msgid "Text"
253
+ msgstr ""
254
+
255
+ #: views/tabs.php:134
256
  msgid "Text Size"
257
  msgstr ""
258
 
259
+ #: views/tabs.php:144
260
+ msgid "No Text"
261
  msgstr ""
262
 
263
+ #: views/tabs.php:150
264
+ msgid "Preview"
265
  msgstr ""
266
 
267
+ #: views/tabs.php:162
268
+ msgid "Button Position"
269
  msgstr ""
270
 
271
+ #: views/tabs.php:167
272
+ msgid "Alignment"
273
  msgstr ""
274
 
275
+ #: views/tabs.php:169
276
+ msgid "Left Align"
277
  msgstr ""
278
 
279
+ #: views/tabs.php:170
280
+ msgid "Right Align"
281
  msgstr ""
282
 
283
+ #: views/tabs.php:171
284
+ msgid "Center"
285
  msgstr ""
286
 
287
+ #: views/tabs.php:172
288
+ msgid "None"
289
  msgstr ""
290
 
291
+ #: views/tabs.php:175
292
+ msgid "Placement"
293
  msgstr ""
294
 
295
+ #: views/tabs.php:177
296
+ msgid "Above Content"
297
  msgstr ""
298
 
299
+ #: views/tabs.php:178
300
+ msgid "Below Content"
301
  msgstr ""
302
 
303
+ #: views/tabs.php:186
304
+ msgid "Button Display"
305
  msgstr ""
306
 
307
+ #: views/tabs.php:191
308
+ msgid "Pages to show on"
309
  msgstr ""
310
 
311
+ #: views/tabs.php:193
312
  msgid "Posts"
313
  msgstr ""
314
 
315
+ #: views/tabs.php:194
316
  msgid "Pages"
317
  msgstr ""
318
 
319
+ #: views/tabs.php:195
320
  msgid "Homepage"
321
  msgstr ""
322
 
323
+ #: views/tabs.php:196
324
  msgid "Category Pages"
325
  msgstr ""
326
 
327
+ #: views/tabs.php:197
328
  msgid "Taxonomy Pages"
329
  msgstr ""
330
 
331
+ #: views/tabs.php:199
332
  msgid "Add direct to template"
333
  msgstr ""
334
 
335
+ #: views/tabs.php:204
336
+ msgid "Copy Snippet"
 
 
 
 
 
 
 
 
337
  msgstr ""
338
 
339
+ #: views/tabs.php:207
340
+ msgid "or use the shortcode inside your page/article"
341
  msgstr ""
342
 
343
+ #: views/tabs.php:208
344
+ msgid "Copy Shortcode"
345
  msgstr ""
346
 
347
+ #: views/tabs.php:212
348
+ msgid "Specific categories to show on"
349
  msgstr ""
350
 
351
+ #: views/tabs.php:241 views/tabs.php:489
352
+ msgid "Save Options"
353
  msgstr ""
354
 
355
+ #: views/tabs.php:242 views/tabs.php:490
356
+ msgid "Cancel"
357
  msgstr ""
358
 
359
+ #: views/tabs.php:254
360
+ msgid "Page header"
361
  msgstr ""
362
 
363
+ #: views/tabs.php:263
364
+ msgid "My Website Icon"
365
  msgstr ""
366
 
367
+ #: views/tabs.php:291
368
+ msgid "Tagline (optional)"
369
  msgstr ""
370
 
371
+ #: views/tabs.php:319
372
+ msgid "Password Protected Content"
373
  msgstr ""
374
 
375
+ #: views/tabs.php:325 views/tabs.php:345
376
+ msgid "No"
377
  msgstr ""
378
 
379
+ #: views/tabs.php:326 views/tabs.php:344
380
+ msgid "Yes"
381
  msgstr ""
382
 
383
+ #: views/tabs.php:331
384
+ msgid "This feature requires a Pro subscription."
385
  msgstr ""
386
 
387
+ #: views/tabs.php:331
388
+ msgid "Learn More"
389
  msgstr ""
390
 
391
+ #: views/tabs.php:338
392
+ msgid "Track in Google Analytics"
393
  msgstr ""
394
 
395
+ #: views/tabs.php:353
396
+ msgid "Click-to-delete"
397
  msgstr ""
398
 
399
+ #: views/tabs.php:359 views/tabs.php:411 views/tabs.php:426 views/tabs.php:446
400
+ msgid "Allow"
401
  msgstr ""
402
 
403
+ #: views/tabs.php:360 views/tabs.php:412 views/tabs.php:427 views/tabs.php:447
404
+ msgid "Not Allow"
405
  msgstr ""
406
 
407
+ #: views/tabs.php:373
408
+ msgid "Images"
409
  msgstr ""
410
 
411
+ #: views/tabs.php:378
412
+ msgid "Image size"
413
  msgstr ""
414
 
415
+ #: views/tabs.php:380
416
+ msgid "Full Size"
417
  msgstr ""
418
 
419
+ #: views/tabs.php:381
420
+ msgid "Large"
421
  msgstr ""
422
 
423
+ #: views/tabs.php:382
424
+ msgid "Medium"
425
  msgstr ""
426
 
427
+ #: views/tabs.php:383
428
+ msgid "Small"
429
  msgstr ""
430
 
431
+ #: views/tabs.php:384
432
+ msgid "Remove Images"
433
  msgstr ""
434
 
435
+ #: views/tabs.php:387
436
+ msgid "Image style"
437
  msgstr ""
438
 
439
+ #: views/tabs.php:389
440
+ msgid "Align Right"
441
  msgstr ""
442
 
443
+ #: views/tabs.php:390
444
+ msgid "Align Left"
445
  msgstr ""
446
 
447
+ #: views/tabs.php:391
448
+ msgid "Align None"
449
  msgstr ""
450
 
451
+ #: views/tabs.php:392
452
+ msgid "Center/Block"
453
  msgstr ""
454
 
455
+ #: views/tabs.php:420
456
+ msgid "PDF"
457
  msgstr ""
458
 
459
+ #: views/tabs.php:432
460
+ msgid "Developer Note"
461
  msgstr ""
462
 
463
+ #: views/tabs.php:432
464
+ msgid ""
465
+ "On localhost the images can not be included in the PDF. Once the website is "
466
+ "live/public images will be included in the PDF."
467
  msgstr ""
468
 
469
+ #: views/tabs.php:440
470
+ msgid "Print"
471
  msgstr ""
472
 
473
+ #: views/tabs.php:455
474
+ msgid "Custom CSS"
475
  msgstr ""
476
 
477
+ #: views/tabs.php:462
478
+ msgid "Custom CSS URL"
479
  msgstr ""
480
 
481
+ #: views/tabs.php:477
482
  msgid ""
483
+ "Customize the styles of the printed/pdf page using your own CSS. Create "
484
+ "your custom CSS, and put the URL to your Custom CSS file in the box below"
485
  msgstr ""
486
 
487
+ #: views/tabs.php:479
488
+ msgid ""
489
+ "Customize the styles of the printed/pdf page using your own CSS. Add your "
490
+ "custom CSS (without the %s tags) in the box below"
491
  msgstr ""
492
 
493
+ #: views/tabs.php:504
494
+ msgid "Debug options"
495
  msgstr ""
496
 
497
+ #: views/tabs.php:513
498
+ msgid "Currently in Debug Mode. This tab is visible in debug mode only"
499
  msgstr ""
500
 
501
+ #. Description of the plugin/theme
502
+ msgid ""
503
+ "PrintFriendly & PDF button for your website. Optimizes your pages and brand "
504
+ "for print, pdf, and email."
505
  msgstr ""
pf.php CHANGED
@@ -1,1910 +1,1397 @@
1
  <?php
2
-
3
  /*
4
- Plugin Name: Print, PDF & Email by PrintFriendly
5
- Plugin URI: http://www.printfriendly.com
6
- Description: PrintFriendly & PDF button for your website. Optimizes your pages and brand for print, pdf, and email.
7
- Name and URL are included to ensure repeat visitors and new visitors when printed versions are shared.
8
- Version: 3.16.0
9
- Author: Print, PDF, & Email by PrintFriendly
10
- Author URI: http://www.PrintFriendly.com
11
-
12
- Changelog :
13
- 3.16.0 - Update deprecated jQuery to prevent deprecation log noitice.
14
- 3.15.0 - CSS Bug fix for center align of PrintFriendly Button.
15
- 3.14.9 - Bug fix for PrintFriendly Button Alignment.
16
- 3.14.8 - Fix error from deprecated contextual help. Change printfriendly button CSS styles from internal (head) to inline (link). This ensures all styles are removed when button is not present.
17
- 3.14.7 - Remove unnecessary closing style tag. Add outline:none to printfriendly button link to remove outline on click.
18
- 3.14.6 - Improvements to CSS and how we load JS. Moved button CSS from page head to a seperate stylesheet. Load JS using async attribute (now that all major browsers support async attribute, we need not insert JS dynamically)
19
- 3.14.5 - New Feature: Password protected image option. Select this option if your images are password protected so they can be included in PDFs.
20
- 3.14.4 - Make save options work without Pro field(email, domain) validation check.
21
- 3.14.3 - Plugin copy and style changes. No functionality changes.
22
- 3.14.2 - GDPR Compliant notification for PrintFriendly Pro and links to Privacy Policy.
23
- 3.14.1 - Fix client side pro domain validation
24
- 3.14.0 - Integrate instant free Pro Trial, and Pro status.
25
- 3.13.0 - Add Notification alerting websites using Password Protection or JavaScript to display content they need to upgrade to PrintFriendly Pro
26
- 3.12.5 - Chanage link in settings page
27
- 3.12.4 - Bug fix, avoid "undefined variable: return"
28
- 3.12.3 - Bug fix, sometimes custom image didn't display correctly after upgrade
29
- 3.12.2 - Add title to Printfriendly button and change button image alt
30
- 3.12.1 - Fix translations
31
- 3.12.0 - Update custom button UI
32
- 3.11.2 - Fix button upgrade for pf-icon-both.gif
33
- 3.11.1 - Bug fix
34
- 3.11.0 - Update buttons
35
- 3.10.0 - Change "leave us a rating" message.
36
- 3.9.2 - Correctly handle spaces in print-only detection
37
- 3.9.1 - Better print-only detection
38
- 3.9.0 - Add new button
39
- 3.8.7 - Bug fix.
40
- 3.8.6 - Allow default image setting to be small medium or large.
41
- 3.8.5 - Bug fix.
42
- 3.8.4 - Bug fix.
43
- 3.8.1 - Improve automatic error reporting.
44
- 3.8.0 - Add automatic error reporting.
45
- 3.7.6 - WooCommerce support improvments: remove upsells from print preview.
46
- 3.7.5 - WooCommerce support improvments: fix DOMDocument.loadHTML warnings.
47
- 3.7.4 - Added CSS Relative Position and Z-Index to button to avoid content covering the button.
48
- 3.7.3 - Always use https
49
- 3.7.2 - Use schema less URLs for loading icons
50
- 3.7.1 - Use www.printfriendly.com instead of app.printfriendly.com for redirects
51
- 3.7.0 - Remove http/https option, use current schema
52
- 3.6.0 - Allow custom HTML in Custom Button Text
53
- 3.5.4 - WooCommerce 'Content Algorithm' fix
54
- 3.5.3 - Fix security issues
55
- 3.5.2 - Fix code to support PHP 5.2
56
- 3.5.0 - WooCommerce product page improvements. Better support for product images, price, and description.
57
- 3.4.8 - Fix button images style
58
- 3.4.7 - Fix button style to remove underline
59
- 3.4.6 - Always removed PrintFriendly button underline regardless plugin CSS for button styles option
60
- 3.4.4 - Removed page content selection option - Wordpress Standard/Strict
61
- 3.4.2 - Fixed the issue occured due to new changes made in the page content selection options
62
- 3.4.1 - Improved page content selection options
63
- 3.4.0 - Fixed the admin javascript error and increased plugin text boxes size
64
- 3.3.10 - Implemented both Classic Google Analytics and Google Universal Analytics code.
65
- 3.3.9 - Removed the functionality that opens new window when JavaScript is disabled.
66
- 3.3.8 - Shortcode Bug fix, urlencode button href
67
- 3.3.7 - Readme.txt update
68
- 3.3.6 - Fixed JS optimization Bug
69
- 3.3.5 - Wordpress 3.8 support
70
- 3.3.4 - Provided Algorithm Options
71
- 3.3.3 - Using WP content hook for all Buttons
72
- 3.3.2 - Algorithm update
73
- 3.3.1 - SSL support issue.
74
- 3.3.0 - Printfriendly custom commands support and PF Algo V6 release.
75
- 3.2.10 - Fixed Bug.
76
- 3.2.9 - Added Support for Google Analytics
77
- 3.2.8 - Algorithm Update
78
- 3.2.7 - Removed Break tag from button code.
79
- 3.2.6 - Fixed Button behavior when displayed on Homepage for NON-JS version. Fixed CSS issue with Button when placed above content. Fixed box-shadow issue with button. Custom print and pdf options now available for Non-JS version (custom header, custom css, image alignment, etc.). Fixed custom header bug.
80
- 3.2.5 - Added hide images and image style options. Improved input validation. Improved output escaping. Removed printfriendly post_class. Small i8n fix. Few small HTML fixes.
81
- 3.2.4 - Add printfriendly post_class. Fixed minor JS bug. Added redundancy to uninstall script.
82
- 3.2.3 - Rolling back to version 3.2.1
83
- 3.2.2 - Add printfriendly post_class. Add printfriendly button display settings per individual category. Fixed minor JS bug. Added redundancy to uninstall script.
84
- 3.2.1 - Improve script loading.
85
- 3.2.0 - Important chrome issue fix. Ie syntax error fix.
86
- 3.1.9 - Minor css detail.
87
- 3.1.8 - Add printfriendly options to allow/not allow print, pdf, email from the Printfriendly and PDF dialog.
88
- 3.1.7 - Revert default print button show settings. Prevent easy override of print button text-decoration and border style properties.
89
- 3.1.6 - Adding PrintFriendly and PDF alignment style classes.
90
- 3.1.5 - Set button appearance in more flexible way. Remove styles that interfered with wordpress themes. Add shortcode for printfriendly button. Fix redirect to printfriendly.com link. Added custom css feature.
91
- 3.1.4 - Changed https url. Don't hide text change box when disabling css.
92
- 3.1.3 - Fixed bug with disable css option
93
- 3.1.2 - Added disable css option to admin settings.
94
- 3.1.1 - Fixed admin js caching.
95
- 3.1.0 - Fixed admin css caching.
96
- 3.0.9 - New features: Custom header, disable click-to-delete, https support (beta), PrintFriendly Pro (ad-free).
97
- 3.0.8 - Reordered PrintFriendly & PDF buttons. CSS stylesheet option is now checked by default.
98
- 3.0.7 - Added additional images for print button.
99
- 3.0.6 - Fix bug that would display button on category pages when not wanted.
100
- 3.0.5 - Include button on category pages if user has selected "All pages".
101
- 3.0.4 - Align-right and align-center support for themes that remove WordPress core css.
102
- 3.0.3 - Support for bad themes that alter template tags and prevent JavaScript from loading in footer.
103
- 3.0.2 - Fixed JS bug with Google Chrome not submitting and fixed input validation issues.
104
- 3.0.1 - Fixed minor JS bug.
105
- 3.0 - Complete overhaul of the plugin by Joost de Valk.
106
- 2.1.8 - The Print Button was showing up on printed, or PDF, pages. Junk! Print or PDF button no longer displayed on printed out page or PDF.
107
- 2.1.7 - Changed button from span to div to support floating.
108
- 2.1.6 - Added rel="nofollow" to links. Changed button from <a> to <span> to fix target_new or target_blank issues.
109
- 2.1.5 - Fix conflict with link tracking plugins. Custom image support for hosted wordpress sites.
110
- 2.1.4 - wp head fix.
111
- 2.1.3 - Manual option for button placement. Security updates for multi-author sites.
112
- 2.1.2 - Improvements to Setting page layout and PrintFriendly button launching from post pages.
113
- 2.1.1 - Fixed admin settings bug.
114
- 2.1 - Update for mult-author websites. Improvements to Settings page.
115
- 2.0 - Customize the style, placement, and pages your printfriendly button appears.
116
- 1.5 - Added developer ability to disable hook and use the pf_show_link() function to better be used in a custom theme & Uninstall cleanup.
117
- 1.4 - Changed Name.
118
- 1.3 - Added new buttons, removed redundant code.
119
- 1.2 - User can choose to show or not show buttons on the listing page.
120
- */
121
 
122
  /**
123
  * PrintFriendly WordPress plugin. Allows easy embedding of printfriendly.com buttons.
 
124
  * @package PrintFriendly_WordPress
125
  * @author PrintFriendly <support@printfriendly.com>
126
  * @copyright Copyright (C) 2012, PrintFriendly
127
  */
128
- if (!class_exists('PrintFriendly_WordPress')) {
129
-
130
- /**
131
- * Class containing all the plugins functionality.
132
- * @package PrintFriendly_WordPress
133
- */
134
- class PrintFriendly_WordPress
135
- {
136
- /**
137
- * Current plugin version.
138
- * @var string
139
- */
140
- var $plugin_version = '3.14.5';
141
-
142
- /**
143
- * The hook, used for text domain as well as hooks on pages and in get requests for admin.
144
- * @var string
145
- */
146
- var $hook = 'printfriendly';
147
-
148
- /**
149
- * The option name, used throughout to refer to the plugins option and option group.
150
- * @var string
151
- */
152
- var $option_name = 'printfriendly_option';
153
-
154
- /**
155
- * The plugins options, loaded on init containing all the plugins settings.
156
- * @var array
157
- */
158
- var $options = array();
159
-
160
- /**
161
- * Database version, used to allow for easy upgrades to / additions in plugin options between plugin versions.
162
- * @var int
163
- */
164
- var $db_version = 17;
165
-
166
- /**
167
- * Settings page, used within the plugin to reliably load the plugins admin JS and CSS files only on the admin page.
168
- * @var string
169
- */
170
- var $settings_page = '';
171
-
172
- /**
173
- * GetSentry error reporting client
174
- * @var Raven_Client
175
- */
176
- var $raven_client = null;
177
-
178
- /**
179
- * Constructor
180
- *
181
- * @since 3.0
182
- */
183
- function __construct()
184
- {
185
- try {
186
- // delete_option( $this->option_name );
187
-
188
- // Retrieve the plugin options
189
- $this->options = get_option($this->option_name);
190
-
191
- // If the options array is empty, set defaults
192
- if (!is_array($this->options))
193
- $this->set_defaults();
194
-
195
- // Sentry PHP SDK supports PHP 5.3 and higher.
196
- if (isset($this->options['enable_error_reporting']) && $this->options['enable_error_reporting'] == 'yes' && version_compare(PHP_VERSION, '5.3.0') >= 0) {
197
- $this->init_error_reporting();
198
- }
199
-
200
- /**
201
- * Set page content selection option "Wordpress Standard/Strict" to "WP Template"
202
- */
203
- if (isset($this->options['pf_algo']) && $this->options['pf_algo'] == 'ws') {
204
- $this->options['pf_algo'] = 'wp';
205
- update_option($this->option_name, $this->options);
206
- }
207
-
208
- // If the version number doesn't match, upgrade
209
- if ($this->db_version > $this->options['db_version'])
210
- $this->upgrade();
211
-
212
- add_action('wp_head', array(&$this, 'front_head'));
213
- // automaticaly add the link
214
- if (!$this->is_manual()) {
215
- add_filter('the_content', array(&$this, 'show_link'));
216
- add_filter('the_excerpt', array(&$this, 'show_link'));
217
- }
218
-
219
- add_action('the_content', array(&$this, 'add_pf_content_class_around_content_hook'));
220
-
221
- // Admin hooks
222
- if (is_admin()) {
223
- // Hook into init for registration of the option and the language files
224
- add_action('admin_init', array(&$this, 'init'));
225
-
226
- // Register the settings page
227
- add_action('admin_menu', array(&$this, 'add_config_page'));
228
-
229
- // Enqueue the needed scripts and styles
230
- add_action('admin_enqueue_scripts', array(&$this, 'admin_enqueue_scripts'));
231
-
232
- // Register a link to the settings page on the plugins overview page
233
- add_filter('plugin_action_links', array(&$this, 'filter_plugin_actions'), 10, 2);
234
- }
235
- } catch (Exception $e) {
236
- $this->raven_catch($e);
237
- }
238
- }
239
-
240
- function send_info()
241
- {
242
- $domain = get_bloginfo('url');
243
- $admin_email = get_bloginfo('admin_email');
244
- $wp_version = get_bloginfo('version');
245
-
246
- if ((!isset($this->options['sent_domain']) || (isset($this->options['sent_domain']) && $this->options['sent_domain'] != $domain)) ||
247
- (!isset($this->options['sent_cms_version']) || (isset($this->options['sent_cms_version']) && $this->options['sent_cms_version'] != $wp_version)) ||
248
- (!isset($this->options['sent_php_version']) || (isset($this->options['sent_php_version']) && $this->options['sent_php_version'] != PHP_VERSION)) ||
249
- (!isset($this->options['sent_pf_version']) || (isset($this->options['sent_pf_version']) && $this->options['sent_pf_version'] != $this->plugin_version)) ||
250
- (!isset($this->options['sent_admin_email']) || (isset($this->options['sent_admin_email']) && $this->options['sent_admin_email'] != $admin_email))
251
- ) {
252
-
253
- // Send new data to API
254
- $data = array(
255
- 'domain' => $domain,
256
- 'cms_name' => 'wordpress',
257
- 'cms_version' => $wp_version,
258
- 'php_version' => PHP_VERSION,
259
- 'pf_version' => $this->plugin_version,
260
- 'email' => $admin_email
261
- );
262
- $this->plugins_api($data);
263
-
264
- // Save options
265
- $this->options['sent_domain'] = $domain;
266
- $this->options['sent_cms_version'] = $wp_version;
267
- $this->options['sent_php_version'] = PHP_VERSION;
268
- $this->options['sent_pf_version'] = $this->plugin_version;
269
- $this->options['sent_admin_email'] = $admin_email;
270
- update_option($this->option_name, $this->options);
271
- }
272
- }
273
-
274
- function plugins_api($data)
275
- {
276
- // Send request to plugins API
277
- $api_url = 'https://www.printfriendly.com/api/v3/plugins';
278
-
279
- // use key 'http' even if you send the request to https://...
280
- $options = array(
281
- 'http' => array(
282
- 'header' => "Content-type: application/x-www-form-urlencoded\r\n",
283
- 'method' => 'POST',
284
- 'content' => http_build_query($data)
285
- )
286
- );
287
-
288
- $context = stream_context_create($options);
289
-
290
- // @ suppress WARNING if API is not accessible
291
- @file_get_contents($api_url, false, $context);
292
- }
293
-
294
- function init_error_reporting()
295
- {
296
- try {
297
- require_once(dirname(__FILE__) . '/vendor/PrintFriendly/Raven/Autoloader.php');
298
-
299
- PrintFriendly_Raven_Autoloader::register();
300
-
301
- $this->raven_client = new PrintFriendly_Raven_Client('https://46a55182ffbe477c8cf1cb0f1cee36c2:a32ee5b4fad940c4808845b618147f21@sentry.io/171161', array(
302
- 'release' => $this->plugin_version,
303
- 'timeout' => 4
304
- ));
305
-
306
- $this->raven_client->tags_context(array(
307
- 'wordpress-version' => get_bloginfo('version'),
308
- 'php-version' => PHP_VERSION
309
- ));
310
-
311
- $this->raven_client->setSendCallback(array(&$this, 'raven_callback'));
312
- } catch (Exception $e) {
313
- if (!ini_get('display_errors')) {
314
- error_log('PrintFriendly init_error_reporting Error: ' . $e);
315
- }
316
-
317
- $this->raven_catch($e);
318
- }
319
- }
320
-
321
- function raven_callback($data)
322
- {
323
- try {
324
- return isset($data) && preg_match('/printfriendly/', json_encode($data));
325
- } catch (Exception $e) {
326
- return true;
327
- }
328
- }
329
-
330
- function raven_catch($e)
331
- {
332
- if (isset($this->raven_client)) {
333
- try {
334
- $this->raven_client->captureException($e);
335
- } catch (Exception $e) {
336
- }
337
- }
338
- }
339
-
340
- /**
341
- * Adds wraps content in pf-content class to help Printfriendly algo determine the content
342
- *
343
- * @since 3.2.8
344
- *
345
- **/
346
- function add_pf_content_class_around_content_hook($content = false)
347
- {
348
- try {
349
- if ($this->is_wp_algo_on($content)) {
350
- add_action('wp_footer', array(&$this, 'print_script_footer'));
351
- return '<div class="pf-content">' . $content . '</div>';
352
- } else {
353
- return $content;
354
- }
355
- } catch (Exception $e) {
356
- $this->raven_catch($e);
357
- }
358
- }
359
-
360
- /**
361
- * Override to check if print-only command is being used
362
- *
363
- * @since 3.3.0
364
- **/
365
- function print_only_override($content)
366
- {
367
- $pattern = '/class\s*?=\s*?(["\']|["\']([^"\']*?)\s)print-only(["\']|\s([^"\']*?)["\'])/';
368
- $pf_pattern = '/class\s*?=\s*?(["\']|["\']([^"\']*?)\s)pf-content(["\']|\s([^"\']*?)["\'])/';
369
-
370
- return (preg_match($pattern, $content) || preg_match($pf_pattern, $content));
371
- }
372
-
373
- /**
374
- * Check if WP Algorithm is selected and content doesn't use print-only
375
- *
376
- * @since 3.5.4
377
- **/
378
- function is_wp_algo_on($content)
379
- {
380
- return !class_exists('WooCommerce') && isset($this->options['pf_algo']) && $content && $this->options['pf_algo'] == 'wp' && !$this->print_only_override($content);
381
- }
382
-
383
- /**
384
- * PHP 4 Compatible Constructor
385
- *
386
- * @since 3.0
387
- */
388
- function PrintFriendly_WordPress()
389
- {
390
- $this->__construct();
391
- }
392
-
393
- /**
394
- * Check if button should be visible on particular page
395
- */
396
- function is_enabled()
397
- {
398
- if ((is_page() && (isset($this->options['show_on_pages']) && 'on' === $this->options['show_on_pages']))
399
- || (is_home() && ((isset($this->options['show_on_homepage']) && 'on' === $this->options['show_on_homepage']) && $this->category_included()))
400
- || (is_tax() && ((isset($this->options['show_on_taxonomies']) && 'on' === $this->options['show_on_taxonomies']) && $this->category_included()))
401
- || (is_category() && ((isset($this->options['show_on_categories']) && 'on' === $this->options['show_on_categories']) && $this->category_included()))
402
- || (is_single() && ((isset($this->options['show_on_posts']) && 'on' === $this->options['show_on_posts']) && $this->category_included()))
403
- ) {
404
- return true;
405
- }
406
- return false;
407
- }
408
-
409
- /**
410
- * Prints the PrintFriendly button CSS, in the header.
411
- *
412
- * @since 3.0
413
- */
414
- function front_head()
415
- {
416
- try {
417
- if ($this->is_enabled()) {
418
- ?>
419
- <?php
420
- if (isset($this->options['enable_css']) && $this->options['enable_css'] != 'on')
421
- return;
422
- ?>
423
- <style type="text/css">
424
- @media screen {
425
- .printfriendly {
426
- position: relative;
427
- z-index: 1000;
428
- margin: <?php echo $this->options['margin_top'] . 'px ' . $this->options['margin_right'] . 'px ' . $this->options['margin_bottom'] . 'px ' . $this->options['margin_left'] . 'px'; ?>;
429
- }
430
- .printfriendly a, .printfriendly a:link, .printfriendly a:visited, .printfriendly a:hover, .printfriendly a:active {
431
- font-weight: 600;
432
- cursor: pointer;
433
- text-decoration: none;
434
- border: none;
435
- -webkit-box-shadow: none;
436
- -moz-box-shadow: none;
437
- box-shadow: none;
438
- outline:none;
439
- font-size: <?php echo $this->options['text_size']; ?>px;
440
- color: <?php echo $this->options['text_color']; ?>;
441
- }
442
- .printfriendly.pf-alignleft {float: left}.printfriendly.pf-alignright {float: right}.printfriendly.pf-aligncenter {display: flex;align-items: center;justify-content: center;}
443
- }
444
-
445
- @media print {
446
- .printfriendly {display: none}
447
- }
448
- </style>
449
- <?php if ($this->options['custom_css_url']) { ?>
450
- <link rel="stylesheet" href="<?php echo esc_js(esc_url($this->options['custom_css_url'])) ?>" media="screen" />
451
- <?php } ?>
452
- <?php
453
- }
454
- } catch (Exception $e) {
455
- $this->raven_catch($e);
456
- }
457
- }
458
-
459
- /**
460
- * Prints the PrintFriendly JavaScript, in the footer, and loads it asynchronously.
461
- *
462
- * @since 3.0
463
- */
464
- function print_script_footer()
465
- {
466
- if (isset($this->options['javascript']) && $this->options['javascript'] == 'no')
467
- return;
468
-
469
- else {
470
- $tagline = $this->options['tagline'];
471
- $image_url = $this->options['image_url'];
472
- if ($this->options['logo'] == 'favicon') {
473
- $tagline = '';
474
- $image_url = '';
475
- }
476
-
477
- // Currently we use v3 for both: normal and password protected sites
478
- ?>
479
- <script type="text/javascript">
480
- var pfHeaderImgUrl = '<?php echo esc_js(esc_url($image_url)); ?>';
481
- var pfHeaderTagline = '<?php echo esc_js($tagline); ?>';
482
- var pfdisableClickToDel = '<?php echo esc_js($this->options['click_to_delete']); ?>';
483
- var pfImagesSize = '<?php echo esc_js($this->options['images-size']); ?>';
484
- var pfImageDisplayStyle = '<?php echo esc_js($this->options['image-style']); ?>';
485
- var pfEncodeImages = '<?php echo esc_js($this->options['password_protected'] == 'yes' ? 1 : 0); ?>';
486
- var pfDisableEmail = '<?php echo esc_js($this->options['email']); ?>';
487
- var pfDisablePDF = '<?php echo esc_js($this->options['pdf']); ?>';
488
- var pfDisablePrint = '<?php echo esc_js($this->options['print']); ?>';
489
- var pfCustomCSS = '<?php echo esc_js(esc_url($this->options['custom_css_url'])); ?>';
490
- var pfPlatform = 'Wordpress';
491
- </script>
492
- <script async src='https://cdn.printfriendly.com/printfriendly.js'></script>
493
- <?php
494
- }
495
- }
496
-
497
- /**
498
- * Primary frontend function, used either as a filter for the_content, or directly using pf_show_link
499
- *
500
- * @since 3.0
501
- * @param string $content the content of the post, when the function is used as a filter
502
- * @return string $button or $content with the button added to the content when appropriate, just the content when button shouldn't be added or just button when called manually.
503
- */
504
- function show_link($content = false)
505
- {
506
- try {
507
- $is_manual = $this->is_manual();
508
-
509
- if (!$content && !$is_manual)
510
- return "";
511
-
512
- $button = $this->getButton();
513
- if ($is_manual) {
514
- // Hook the script call now, so it only get's loaded when needed, and need is determined by the user calling pf_button
515
- add_action('wp_footer', array(&$this, 'print_script_footer'));
516
- return $button;
517
- } else {
518
- if ($this->is_enabled()) {
519
- // Hook the script call now, so it only get's loaded when needed, and need is determined by the user calling pf_button
520
- add_action('wp_footer', array(&$this, 'print_script_footer'));
521
-
522
- if ($this->options['content_placement'] == 'before')
523
- return $button . $content;
524
- else
525
- return $content . $button;
526
- } else {
527
- return $content;
528
- }
529
- }
530
- } catch (Exception $e) {
531
- $this->raven_catch($e);
532
- }
533
- }
534
-
535
-
536
- /**
537
- * @since 3.3.8
538
- * @returns Printfriendly Button HTML
539
- */
540
-
541
- function getButton($add_footer_script = false)
542
- {
543
- if ($add_footer_script) {
544
- add_action('wp_footer', array(&$this, 'print_script_footer'));
545
- }
546
- $js_enabled = $this->js_enabled();
547
- $analytics_code = "";
548
- $onclick = '';
549
-
550
- if ($this->google_analytics_enabled()) {
551
- $title_var = "NULL";
552
- $analytics_code = "if(typeof(_gaq) != 'undefined') { _gaq.push(['_trackEvent','PRINTFRIENDLY', 'print', '" . $title_var . "']);
553
  }else if(typeof(ga) != 'undefined') { ga('send', 'event','PRINTFRIENDLY', 'print', '" . $title_var . "'); }";
554
- if ($js_enabled) {
555
- $onclick = 'onclick="window.print();' . $analytics_code . ' return false;"';
556
- } else {
557
- $onclick = '';
558
- }
559
- } else if ($js_enabled) {
560
- $onclick = 'onclick="window.print(); return false;"';
561
- }
562
-
563
- if ($js_enabled) {
564
- $href = '#';
565
- } else {
566
- $href = 'https://www.printfriendly.com/print?url=' . urlencode(get_permalink());
567
- }
568
-
569
- if (!$js_enabled) {
570
- if ($this->google_analytics_enabled()) {
571
- $onclick = $onclick . ' onclick="' . $analytics_code . '"';
572
- }
573
- $href = "https://www.printfriendly.com/print?headerImageUrl=" . urlencode($this->options['image_url']) . "&headerTagline=" . urlencode($this->options['tagline']) . "&pfCustomCSS=" . urlencode($this->options['custom_css_url']) . "&imageDisplayStyle=" . urlencode($this->options['image-style']) . "&disableClickToDel=" . urlencode($this->options['click_to_delete']) . ".&disablePDF=" . urlencode($this->options['pdf']) . "&disablePrint=" . urlencode($this->options['print']) . "&disableEmail=" . urlencode($this->options['email']) . "&imagesSize=" . urlencode($this->options['images-size']) . "&url=" . urlencode(get_permalink()) . "&source=wp";
574
- }
575
- if (!is_singular() && '' != $onclick && $js_enabled) {
576
- $onclick = '';
577
- $href = add_query_arg('pfstyle', 'wp', get_permalink());
578
- }
579
-
580
- $align = '';
581
- if ('none' != $this->options['content_position'])
582
- $align = ' pf-align' . $this->options['content_position'];
583
- $href = str_replace("&", "&amp;", $href);
584
- $button = apply_filters('printfriendly_button', '<div class="printfriendly' . $align . '"><a href="' . $href . '" rel="nofollow" ' . $onclick . ' title="Printer Friendly, PDF & Email">' . $this->button() . '</a></div>');
585
- return $button;
586
- }
587
-
588
-
589
- /**
590
- * @since 3.2.9
591
- * @returns if google analytics enabled
592
- */
593
- function google_analytics_enabled()
594
- {
595
- return isset($this->options['enable_google_analytics']) && $this->options['enable_google_analytics'] == 'yes';
596
- }
597
- /**
598
- * @since 3.2.6
599
- * @return boolean true if JS is enabled for the plugin
600
- **/
601
- function js_enabled()
602
- {
603
- return isset($this->options['javascript']) && $this->options['javascript'] == 'yes';
604
- }
605
-
606
- /**
607
- * Filter posts by category.
608
- *
609
- * @since 3.2.2
610
- * @return boolean true if post belongs to category selected for button display
611
- */
612
- function category_included()
613
- {
614
- // return ( 'all' === $this->options['category_ids'][0] || in_category($this->options['category_ids']) );
615
- return true;
616
- }
617
-
618
- /**
619
- * Register the textdomain and the options array along with the validation function
620
- *
621
- * @since 3.0
622
- */
623
- function init()
624
- {
625
- try {
626
- // Allow for localization
627
- load_plugin_textdomain($this->hook, false, basename(dirname(__FILE__)) . '/languages');
628
-
629
- // Register our option array
630
- register_setting($this->option_name, $this->option_name, array(&$this, 'options_validate'));
631
- } catch (Exception $e) {
632
- $this->raven_catch($e);
633
- }
634
- }
635
-
636
- /**
637
- * Validate the saved options.
638
- *
639
- * @since 3.0
640
- * @param array $input with unvalidated options.
641
- * @return array $valid_input with validated options.
642
- */
643
- function options_validate($input)
644
- {
645
- // Prevent CSRF attack
646
- check_admin_referer('pf-options', 'pf-nonce');
647
-
648
- $valid_input = $input;
649
-
650
- // Section 1 options
651
- if (!isset($input['button_type']) || !in_array($input['button_type'], array(
652
- 'buttons/printfriendly-pdf-email-button.png',
653
- 'buttons/printfriendly-pdf-email-button-md.png',
654
- 'buttons/printfriendly-pdf-email-button-notext.png', // buttongroup1
655
- 'buttons/printfriendly-pdf-button.png',
656
- 'buttons/printfriendly-pdf-button-nobg.png',
657
- 'buttons/printfriendly-pdf-button-nobg-md.png', // buttongroup2
658
- 'buttons/printfriendly-button.png',
659
- 'buttons/printfriendly-button-nobg.png',
660
- 'buttons/printfriendly-button-md.png',
661
- 'buttons/printfriendly-button-lg.png', // buttongroup3
662
- 'buttons/print-button.png',
663
- 'buttons/print-button-nobg.png',
664
- 'buttons/print-button-gray.png', // buttongroup3
665
- 'custom-button' // custom
666
- ))) {
667
- $valid_input['button_type'] = 'printfriendly-pdf-button.png';
668
- }
669
-
670
- if (!isset($input['custom_button_icon']) || !in_array($input['custom_button_icon'], array(
671
- 'https://cdn.printfriendly.com/icons/printfriendly-icon-sm.png',
672
- 'https://cdn.printfriendly.com/icons/printfriendly-icon-md.png',
673
- 'https://cdn.printfriendly.com/icons/printfriendly-icon-lg.png',
674
- 'custom-image',
675
- 'no-image'
676
- ))) {
677
- $valid_input['custom_button_icon'] = 'https://cdn.printfriendly.com/icons/printfriendly-icon-md.png';
678
- }
679
-
680
- // @todo custom image url validation
681
- if (!isset($input['custom_image']) || empty($input['custom_image']))
682
- $valid_input['custom_image'] = '';
683
-
684
- if (!isset($input['custom_button_text'])) {
685
- $valid_input['custom_button_text'] = 'custom-text';
686
- }
687
-
688
- // @todo validate optional custom text
689
- if (!isset($input['custom_text'])) {
690
- $valid_input['custom_text'] = 'Print Friendly';
691
- }
692
-
693
- // Custom button selected, but no url nor text given, reset button type to default
694
- if ('custom-button' === $valid_input['button_type'] && ('' === $valid_input['custom_image'] && '' === $input['custom_text'])) {
695
- $valid_input['button_type'] = 'buttons/printfriendly-pdf-button.png';
696
- add_settings_error($this->option_name, 'invalid_custom_image', __('No valid custom image url received, please enter a valid url to use a custom image.', $this->hook));
697
- }
698
-
699
-
700
- $valid_input['text_size'] = (int) $input['text_size'];
701
- if (!isset($valid_input['text_size']) || 0 == $valid_input['text_size']) {
702
- $valid_input['text_size'] = 14;
703
- } else if (25 < $valid_input['text_size'] || 9 > $valid_input['text_size']) {
704
- $valid_input['text_size'] = 14;
705
- add_settings_error($this->option_name, 'invalid_text_size', __('The text size you entered is invalid, please stay between 9px and 25px', $this->hook));
706
- }
707
-
708
- if (!isset($input['text_color'])) {
709
- $valid_input['text_color'] = $this->options['text_color'];
710
- } else if (!preg_match('/^#[a-f0-9]{3,6}$/i', $input['text_color'])) {
711
- // Revert to previous setting and throw error.
712
- $valid_input['text_color'] = $this->options['text_color'];
713
- add_settings_error($this->option_name, 'invalid_color', __('The color you entered is not valid, it must be a valid hexadecimal RGB font color.', $this->hook));
714
- }
715
-
716
-
717
-
718
- /* Section 2 options */
719
- if (!isset($input['enable_css']) || 'off' !== $input['enable_css'])
720
- $valid_input['enable_css'] = 'on';
721
-
722
- if (!isset($input['content_position']) || !in_array($input['content_position'], array('none', 'left', 'center', 'right')))
723
- $valid_input['content_position'] = 'left';
724
-
725
- if (!isset($input['content_placement']) || !in_array($input['content_placement'], array('before', 'after')))
726
- $valid_input['content_placement'] = 'after';
727
-
728
- foreach (array('margin_top', 'margin_right', 'margin_bottom', 'margin_left') as $opt)
729
- $valid_input[$opt] = (int) $input[$opt];
730
-
731
- unset($opt);
732
-
733
-
734
- /* Section 3 options */
735
- foreach (array('show_on_posts', 'show_on_pages', 'show_on_homepage', 'show_on_categories', 'show_on_taxonomies') as $opt) {
736
- if (!isset($input[$opt]) || 'on' !== $input[$opt]) {
737
- unset($valid_input[$opt]);
738
- }
739
- }
740
- unset($opt);
741
-
742
- // Just in case
743
- if (isset($input['show_on_template']))
744
- unset($valid_input['show_on_template']);
745
-
746
-
747
- if (isset($input['category_ids'])) {
748
- /**
749
- * Validate received category ids:
750
- * - Is there only one array item and does it contain the string text 'all' ? => pass
751
- * - Otherwise, make sure the ids are integer values
752
- */
753
- /* $valid_input['category_ids'] = explode(',', $input['category_ids']);
754
- $valid_input['category_ids'] = array_map( 'trim', $valid_input['category_ids'] );
755
- if( ( count( $valid_input['category_ids'] ) === 1 && 'all' === $valid_input['category_ids'][0] ) === false ) {
756
- foreach( $valid_input['category_ids'] as $k => $v ) {
757
- if( $v !== '' && ( ctype_digit( (string) $v ) === true && ( intval( $v ) == $v ) ) ) {
758
- $valid_input['category_ids'][$k] = intval( $v );
759
- }
760
- else {
761
- // Invalid input - Show error message ?
762
- unset( $valid_input['category_ids'][$k] );
763
- }
764
- }
765
- }*/
766
- unset($valid_input['category_ids']);
767
- }
768
-
769
- //echo '<pre>'.print_r($input,1).'</pre>';
770
- //die;
771
-
772
-
773
-
774
- /* Section 4 options */
775
- if (!isset($input['logo']) || !in_array($input['logo'], array('favicon', 'upload-an-image')))
776
- $valid_input['logo'] = 'favicon';
777
-
778
- // @todo custom logo url validation
779
- if (!isset($input['image_url']) || empty($input['image_url']))
780
- $valid_input['image_url'] = '';
781
-
782
- // @todo validate optional tagline text
783
- if (!isset($input['tagline'])) {
784
- $valid_input['tagline'] = '';
785
- }
786
- /* else {
787
-
788
- }*/
789
-
790
- // Custom logo selected, but no valid url given, reset logo to default
791
- if ('upload-an-image' === $valid_input['logo'] && '' === $valid_input['image_url']) {
792
- $valid_input['logo'] = 'favicon';
793
- add_settings_error($this->option_name, 'invalid_custom_logo', __('No valid custom logo url received, please enter a valid url to use a custom logo.', $this->hook));
794
- }
795
-
796
-
797
- if (!isset($input['image-style']) || !in_array($input['image-style'], array('right', 'left', 'none', 'block')))
798
- $valid_input['image-style'] = 'right';
799
-
800
-
801
- foreach (array('click_to_delete', 'email', 'pdf', 'print',) as $opt) {
802
- if (!isset($input[$opt]) || !in_array($input[$opt], array('0', '1'))) {
803
- $valid_input[$opt] = '0';
804
- }
805
- }
806
- unset($opt);
807
-
808
- if (!isset($input['images-size']) || !in_array($input['images-size'], array('full-size', 'remove-images', 'large', 'medium', 'small'))) {
809
- $valid_input['images-size'] = 'full-size';
810
- }
811
-
812
- // @todo custom css url validation
813
- if (!isset($input['custom_css_url']) || empty($input['custom_css_url']))
814
- $valid_input['custom_css_url'] = '';
815
-
816
-
817
-
818
- /* Section 5 options */
819
- if (!isset($input['password_protected']) || !in_array($input['password_protected'], array('no', 'yes')))
820
- $valid_input['password_protected'] = 'no';
821
-
822
- if (!isset($input['javascript']) || !in_array($input['javascript'], array('no', 'yes')))
823
- $valid_input['javascript'] = 'yes';
824
-
825
- /*Analytics Options */
826
- if (!isset($input['enable_google_analytics']) || !in_array($input['enable_google_analytics'], array('no', 'yes'))) {
827
- $valid_input['enable_google_analytics'] = "no";
828
- }
829
-
830
- if (!isset($input['pf_algo']) || !in_array($input['pf_algo'], array('wp', 'pf'))) {
831
- $valid_input['pf_algo'] = "wp";
832
- }
833
-
834
- /* Database version */
835
- $valid_input['db_version'] = $this->db_version;
836
-
837
- return $valid_input;
838
- }
839
-
840
- /**
841
- * Register the config page for all users that have the manage_options capability
842
- *
843
- * @since 3.0
844
- */
845
- function add_config_page()
846
- {
847
- try {
848
- $this->settings_page = add_options_page(__('PrintFriendly Options', $this->hook), __('Print Friendly & PDF', $this->hook), 'manage_options', $this->hook, array(&$this, 'config_page'));
849
-
850
- //register callback gets call prior your own page gets rendered
851
- add_action('load-' . $this->settings_page, array(&$this, 'on_load_printfriendly'));
852
- } catch (Exception $e) {
853
- $this->raven_catch($e);
854
- }
855
- }
856
-
857
- /**
858
- * Shows help on the plugin page when clicking on the Help button, top right.
859
- *
860
- * @since 3.0
861
- */
862
- function contextual_help($contextual_help, $screen_id)
863
- {
864
- try {
865
- if ($this->settings_page == $screen_id) {
866
- $contextual_help = '<strong>' . __("Need Help?", $this->hook) . '</strong><br/>'
867
- . sprintf(__("Be sure to check out the %s!", $this->hook), '<a href="https://wordpress.org/extend/plugins/printfriendly/faq/">' . __("Frequently Asked Questions", $this->hook) . '</a>');
868
- }
869
- return $contextual_help;
870
- } catch (Exception $e) {
871
- $this->raven_catch($e);
872
- }
873
- }
874
-
875
- /**
876
- * Enqueue the scripts for the admin settings page
877
- *
878
- * @since 3.0
879
- * @param string $hook_suffix hook to check against whether the current page is the PrintFriendly settings page.
880
- */
881
- function admin_enqueue_scripts($screen_id)
882
- {
883
- try {
884
- if ($this->settings_page == $screen_id) {
885
- $ver = '3.14.5';
886
- wp_register_script('pf-color-picker', plugins_url('colorpicker.js', __FILE__), array('jquery', 'media-upload'), $ver);
887
- wp_register_script('pf-admin-js', plugins_url('admin.js', __FILE__), array('jquery', 'media-upload'), $ver);
888
- wp_register_script('pf-admin-pro-js', plugins_url('admin_pro.js', __FILE__), array('jquery', 'media-upload'), $ver);
889
-
890
- wp_enqueue_script('pf-color-picker');
891
- wp_enqueue_script('pf-admin-js');
892
- wp_enqueue_script('pf-admin-pro-js');
893
-
894
- wp_enqueue_style('printfriendly-admin-css', plugins_url('admin.css', __FILE__), array(), $ver);
895
- }
896
- } catch (Exception $e) {
897
- $this->raven_catch($e);
898
- }
899
- }
900
-
901
- /**
902
- * Register the settings link for the plugins page
903
- *
904
- * @since 3.0
905
- * @param array $links the links for the plugins.
906
- * @param string $file filename to check against plugins filename.
907
- * @return array $links the links with the settings link added to it if appropriate.
908
- */
909
- function filter_plugin_actions($links, $file)
910
- {
911
- try {
912
- // Static so we don't call plugin_basename on every plugin row.
913
- static $this_plugin;
914
- if (!$this_plugin) $this_plugin = plugin_basename(__FILE__);
915
-
916
- if ($file == $this_plugin) {
917
- $settings_link = '<a href="options-general.php?page=' . $this->hook . '">' . __('Settings', $this->hook) . '</a>';
918
- array_unshift($links, $settings_link); // before other links
919
- }
920
-
921
- return $links;
922
- } catch (Exception $e) {
923
- $this->raven_catch($e);
924
- }
925
- }
926
-
927
- /**
928
- * Set default values for the plugin. If old, as in pre 1.0, settings are there, use them and then delete them.
929
- *
930
- * @since 3.0
931
- */
932
- function set_defaults()
933
- {
934
- try {
935
- // Set some defaults
936
- $this->options = array(
937
- 'button_type' => 'buttons/printfriendly-pdf-button.png',
938
- 'content_position' => 'left',
939
- 'content_placement' => 'after',
940
- 'custom_button_icon' => 'https://cdn.printfriendly.com/icons/printfriendly-icon-md.png',
941
- 'custom_button_text' => 'custom-text',
942
- 'custom_image' => '',
943
- 'custom_text' => 'PrintFriendly',
944
- 'enable_css' => 'on',
945
- 'margin_top' => '12',
946
- 'margin_right' => '12',
947
- 'margin_bottom' => '12',
948
- 'margin_left' => '12',
949
- 'show_on_posts' => 'on',
950
- 'show_on_pages' => 'on',
951
- 'text_color' => '#3AAA11',
952
- 'text_size' => 14,
953
- 'logo' => 'favicon',
954
- 'image_url' => '',
955
- 'tagline' => '',
956
- 'click_to_delete' => '0', // 0 - allow, 1 - do not allow
957
- 'hide-images' => '0', // 0 - show images, 1 - hide images
958
- 'image-style' => 'right', // 'right', 'left', 'none', 'block'
959
- 'email' => '0', // 0 - allow, 1 - do not allow
960
- 'pdf' => '0', // 0 - allow, 1 - do not allow
961
- 'print' => '0', // 0 - allow, 1 - do not allow
962
- 'password_protected' => 'no',
963
- 'javascript' => 'yes',
964
- 'custom_css_url' => '',
965
- 'enable_google_analytics' => 'no',
966
- 'enable_error_reporting' => 'yes',
967
- 'pf_algo' => 'wp',
968
- 'images-size' => 'full-size'
969
- );
970
-
971
- // Check whether the old badly named singular options are there, if so, use the data and delete them.
972
- foreach (array_keys($this->options) as $opt) {
973
- $old_opt = get_option('pf_' . $opt);
974
- if ($old_opt !== false) {
975
- $this->options[$opt] = $old_opt;
976
- delete_option('pf_' . $opt);
977
- }
978
- }
979
-
980
- // This should always be set to the latest immediately when defaults are pushed in.
981
- $this->options['db_version'] = $this->db_version;
982
-
983
- update_option($this->option_name, $this->options);
984
- } catch (Exception $e) {
985
- $this->raven_catch($e);
986
- }
987
- }
988
-
989
- /**
990
- * Upgrades the stored options, used to add new defaults if needed etc.
991
- *
992
- * @since 3.0
993
- */
994
- function upgrade()
995
- {
996
- // update options to version 2
997
- if ($this->options['db_version'] < 2) {
998
-
999
- $additional_options = array(
1000
- 'enable_css' => 'on',
1001
- 'logo' => 'favicon',
1002
- 'image_url' => '',
1003
- 'tagline' => '',
1004
- 'click_to_delete' => '0',
1005
- 'password_protected' => 'no',
1006
- 'javascript' => 'yes'
1007
- );
1008
-
1009
- // use old javascript_include value to initialize javascript
1010
- if (!isset($this->options['javascript_include']))
1011
- $additional_options['javascript'] = 'no';
1012
-
1013
- unset($this->options['javascript_include']);
1014
- unset($this->options['javascript_fallback']);
1015
-
1016
- // correcting badly named option
1017
- if (isset($this->options['disable_css'])) {
1018
- $additional_options['enable_css'] = $this->options['disable_css'];
1019
- unset($this->options['disable_css']);
1020
- }
1021
-
1022
- // check whether image we do not list any more was used
1023
- if (in_array($this->options['button_type'], array('button-print-whgn20.png', 'pf_button_sq_qry_m.png', 'pf_button_sq_qry_l.png', 'pf_button_sq_grn_m.png', 'pf_button_sq_grn_l.png'))) {
1024
- // previous version had a bug with button name
1025
- if (in_array($this->options['button_type'], array('pf_button_sq_qry_m.png', 'pf_button_sq_qry_l.png')))
1026
- $this->options['button_type'] = str_replace('qry', 'gry', $this->options['button_type']);
1027
-
1028
- $image_address = 'https://cdn.printfriendly.com/' . $this->options['button_type'];
1029
- $this->options['button_type'] = 'custom-image';
1030
- $this->options['custom_text'] = '';
1031
- $this->options['custom_image'] = $image_address;
1032
- }
1033
-
1034
- $this->options = array_merge($this->options, $additional_options);
1035
- }
1036
-
1037
- // update options to version 3
1038
- if ($this->options['db_version'] < 3) {
1039
-
1040
- $old_show_on = $this->options['show_list'];
1041
- // 'manual' setting
1042
- $additional_options = array('custom_css_url' => '');
1043
-
1044
- if ($old_show_on == 'all') {
1045
- $additional_options = array(
1046
- 'show_on_pages' => 'on',
1047
- 'show_on_posts' => 'on',
1048
- 'show_on_homepage' => 'on',
1049
- 'show_on_categories' => 'on',
1050
- 'show_on_taxonomies' => 'on'
1051
- );
1052
- }
1053
-
1054
- if ($old_show_on == 'single') {
1055
- $additional_options = array(
1056
- 'show_on_pages' => 'on',
1057
- 'show_on_posts' => 'on'
1058
- );
1059
- }
1060
-
1061
- if ($old_show_on == 'posts') {
1062
- $additional_options = array(
1063
- 'show_on_posts' => 'on',
1064
- );
1065
- }
1066
-
1067
- unset($this->options['show_list']);
1068
-
1069
- $this->options = array_merge($this->options, $additional_options);
1070
- }
1071
-
1072
- // update options to version 4
1073
- if ($this->options['db_version'] < 4) {
1074
-
1075
- $additional_options = array(
1076
- 'email' => '0',
1077
- 'pdf' => '0',
1078
- 'print' => '0',
1079
- );
1080
-
1081
- $this->options = array_merge($this->options, $additional_options);
1082
- }
1083
-
1084
- // update options to version 6
1085
- // Replacement for db version 5 - should also be run for those already upgraded
1086
- if ($this->options['db_version'] < 6) {
1087
- unset($this->options['category_ids']);
1088
- }
1089
-
1090
- if ($this->options['db_version'] < 7) {
1091
- $additional_options = array(
1092
- 'hide-images' => '0',
1093
- 'image-style' => 'right',
1094
- );
1095
-
1096
- $this->options = array_merge($this->options, $additional_options);
1097
- }
1098
-
1099
- if ($this->options['db_version'] < 8) {
1100
- $this->options['enable_google_analytics'] = 'no';
1101
- }
1102
-
1103
- if ($this->options['db_version'] < 9) {
1104
- $this->options['pf_algo'] = 'wp';
1105
- }
1106
-
1107
- if ($this->options['db_version'] < 10) {
1108
- $this->options['enable_error_reporting'] = 'yes';
1109
- }
1110
-
1111
- if ($this->options['db_version'] < 11) {
1112
- if (!isset($this->options['custom_css_url'])) {
1113
- $this->options['custom_css_url'] = '';
1114
- }
1115
- }
1116
-
1117
- if ($this->options['db_version'] < 12) {
1118
- $this->options['images-size'] = $this->options['hide-images'] == '1' ? 'remove-images' : 'full-size';
1119
- }
1120
-
1121
- if ($this->options['db_version'] < 13) {
1122
- switch ($this->options['button_type']) {
1123
- case 'pf-button.gif':
1124
- $this->options['button_type'] = 'buttons/printfriendly-button.png';
1125
- break;
1126
- case 'pf-button-both.gif':
1127
- $this->options['button_type'] = 'buttons/printfriendly-pdf-button.png';
1128
- break;
1129
- case 'pf-button-big.gif':
1130
- $this->options['button_type'] = 'buttons/printfriendly-button-lg.png';
1131
- break;
1132
- case 'pf-button-print-pdf-mail.png':
1133
- $this->options['button_type'] = 'buttons/printfriendly-pdf-email-button-notext.png';
1134
- break;
1135
- case 'button-print-grnw20.png':
1136
- $this->options['button_type'] = 'buttons/print-button.png';
1137
- break;
1138
- case 'button-print-blu20.png':
1139
- $this->options['button_type'] = 'buttons/print-button-nobg.png';
1140
- break;
1141
- case 'button-print-gry20.png':
1142
- $this->options['button_type'] = 'buttons/print-button-gray.png';
1143
- break;
1144
- case 'pf-icon-small.gif':
1145
- case 'pf-icon.gif':
1146
- $this->options['button_type'] = 'custom-button';
1147
- $this->options['custom_button_icon'] = 'icons/printfriendly-icon-md.png';
1148
- $this->options['custom_button_text'] = 'custom-text';
1149
- $this->options['custom_image'] = 'icons/printfriendly-icon-md.png';
1150
- break;
1151
- case 'text-only':
1152
- $this->options['button_type'] = 'custom-button';
1153
- $this->options['custom_button_icon'] = 'no-image';
1154
- $this->options['custom_button_text'] = 'custom-text';
1155
- break;
1156
- }
1157
- }
1158
-
1159
- if ($this->options['db_version'] < 14) {
1160
- if ($this->options['button_type'] == 'pf-icon-both.gif') {
1161
- $this->options['button_type'] = 'buttons/printfriendly-pdf-button-nobg.png';
1162
- }
1163
- }
1164
-
1165
- if ($this->options['db_version'] < 15) {
1166
- if ($this->options['button_type'] == 'custom-image') {
1167
- $this->options['button_type'] = 'custom-button';
1168
-
1169
- switch ($this->options['custom_image']) {
1170
- case 'icons/printfriendly-icon-sm.png':
1171
- case 'icons/printfriendly-icon-md.png':
1172
- case 'icons/printfriendly-icon-lg.png':
1173
- $this->options['custom_button_icon'] = $this->options['custom_image'];
1174
- break;
1175
- case '':
1176
- $this->options['custom_button_icon'] = 'no-image';
1177
- break;
1178
- default:
1179
- $this->options['custom_button_icon'] = 'custom-image';
1180
- }
1181
-
1182
- if ($this->options['custom_text'] == '') {
1183
- $this->options['custom_button_text'] = 'no-text';
1184
- } else {
1185
- $this->options['custom_button_text'] = 'custom-text';
1186
- }
1187
- }
1188
- }
1189
-
1190
- if ($this->options['db_version'] < 16) {
1191
- if ($this->options['custom_button_icon'] == 'icons/printfriendly-icon-md.png') {
1192
- $this->options['custom_button_icon'] = 'https://cdn.printfriendly.com/icons/printfriendly-icon-md.png';
1193
- }
1194
- }
1195
-
1196
- if ($this->options['db_version'] < 17) {
1197
- try {
1198
- $this->options['pro_email'] = get_bloginfo('admin_email');
1199
- } catch (Exception $e) {
1200
- $this->raven_catch($e);
1201
- }
1202
-
1203
- try {
1204
- $url = get_bloginfo('url');
1205
- $parsed_url = parse_url($url);
1206
- $this->options['pro_domain'] = $parsed_url['host'];
1207
- } catch (Exception $e) {
1208
- $this->raven_catch($e);
1209
- }
1210
- }
1211
-
1212
- $this->options['db_version'] = $this->db_version;
1213
-
1214
- update_option($this->option_name, $this->options);
1215
-
1216
- $this->send_info();
1217
- }
1218
-
1219
- /**
1220
- * Displays radio button in the admin area
1221
- *
1222
- * @since 3.0
1223
- * @param string $name the name of the radio button to generate.
1224
- * @param boolean $br whether or not to add an HTML <br> tag, defaults to true.
1225
- */
1226
- function radio($name, $br = false)
1227
- {
1228
- $var = '<input id="' . $name . '" class="radio" name="' . $this->option_name . '[button_type]" type="radio" value="' . $name . '" ' . $this->checked('button_type', $name, false) . '/>';
1229
- $button = $this->button($name);
1230
- if ('' != $button)
1231
- echo '<label for="' . $name . '">' . $var . $button . '</label>';
1232
- else
1233
- echo $var;
1234
-
1235
- if ($br)
1236
- echo '<br>';
1237
- }
1238
-
1239
- /**
1240
- * Displays radio button in the admin area
1241
- *
1242
- * @since 3.12.0
1243
- * @param string $name the name of the radio button to generate.
1244
- */
1245
- function radio_custom_image($value)
1246
- {
1247
- ?>
1248
- <label class="radio-custom-btn">
1249
- <input type="radio" name="<?php echo $this->option_name ?>[custom_button_icon]" value="<?php echo $value ?>" <?php $this->checked('custom_button_icon', $value) ?>>
1250
- <img src="<?php echo $value ?>" alt="Print Friendly, PDF & Email" style="display: inline; vertical-align: text-bottom; margin-right: 6px;" />
1251
- </label>
1252
- <?php
1253
- }
1254
-
1255
- /**
1256
- * Displays button image in the admin area
1257
- *
1258
- * @since 3.0
1259
- * @param string $name the name of the button to generate.
1260
- */
1261
- function button($name = false)
1262
- {
1263
- if (!$name)
1264
- $name = $this->options['button_type'];
1265
-
1266
- $button_css = $this->generic_button_css();
1267
-
1268
- $img_path = 'https://cdn.printfriendly.com/';
1269
-
1270
- $return = '';
1271
-
1272
- if ($name == "custom-button") {
1273
- if ($this->options['custom_button_icon'] == 'custom-image' && '' != trim($this->options['custom_image'])) {
1274
- $return = '<img src="' . esc_url($this->options['custom_image']) . '" alt="Print Friendly, PDF & Email" style="display: inline; vertical-align:text-bottom; margin:0; padding:0; border:none; -webkit-box-shadow:none; -moz-box-shadow:none; box-shadow: none;" />';
1275
- } else if ($this->options['custom_button_icon'] != 'no-image') {
1276
- $return = '<img src="' . esc_url($this->options['custom_button_icon']) . '" alt="Print Friendly, PDF & Email" style="display:inline; vertical-align:text-bottom; margin: 0 6px 0 0; padding:0; border:none; -webkit-box-shadow:none; -moz-box-shadow:none; box-shadow:none;" />';
1277
- }
1278
-
1279
-
1280
- /* esc_html was removerd to support custom html, CSRF prevents from attack by using this field */
1281
- if ($this->options['custom_button_text'] == 'custom-text') {
1282
- $return .= $this->options['custom_text'];
1283
- }
1284
-
1285
- return $return;
1286
- } else {
1287
- return '<img style="' . $button_css . '" src="' . $img_path . $name . '" alt="Print Friendly, PDF & Email" />';
1288
- }
1289
- }
1290
-
1291
- /**
1292
- *
1293
- *
1294
- **/
1295
-
1296
- function generic_button_css()
1297
- {
1298
- return "border:none;-webkit-box-shadow:none; -moz-box-shadow: none; box-shadow:none; padding:0; margin:0";
1299
- }
1300
-
1301
-
1302
- /**
1303
- * Convenience function to output a value custom button preview elements
1304
- *
1305
- * @since 3.0.9
1306
- */
1307
- function custom_button_preview()
1308
- {
1309
- if ($this->options['custom_button_icon'] == 'no-image') {
1310
- $button_preview = '<span id="pf-custom-button-preview"></span>';
1311
- } else if ($this->options['custom_button_icon'] == 'custom-image') {
1312
- $button_preview = '<span id="pf-custom-button-preview"><img src="' . esc_url($this->options['custom_image']) . '" alt="Print Friendly, PDF & Email" /></span>';
1313
- } else {
1314
- $button_preview = '<span id="pf-custom-button-preview"><img src="' . esc_url($this->options['custom_button_icon']) . '" alt="Print Friendly, PDF & Email" /></span>';
1315
- }
1316
-
1317
- if ($this->options['custom_button_text'] != 'no-text') {
1318
- $button_text = $this->options['custom_text'];
1319
- } else {
1320
- $button_text = '';
1321
- }
1322
-
1323
- $button_preview .= '<span class="printfriendly-text2">' . esc_html($button_text) . '</span>';
1324
-
1325
- echo $button_preview;
1326
- }
1327
-
1328
- /**
1329
- * Convenience function to output a value for an input
1330
- *
1331
- * @since 3.0
1332
- * @param string $val value to check.
1333
- */
1334
- function val($val)
1335
- {
1336
- if (isset($this->options[$val]))
1337
- echo esc_attr($this->options[$val]);
1338
- }
1339
-
1340
- /**
1341
- * Like the WordPress checked() function but it doesn't throw notices when the array key isn't set and uses the plugins options array.
1342
- *
1343
- * @since 3.0
1344
- * @param mixed $val value to check.
1345
- * @param mixed $check_against value to check against.
1346
- * @param boolean $echo whether or not to echo the output.
1347
- * @return string checked, when true, empty, when false.
1348
- */
1349
- function checked($val, $check_against = true, $echo = true)
1350
- {
1351
- if (!isset($this->options[$val]))
1352
- return;
1353
-
1354
- if ($this->options[$val] == $check_against) {
1355
- if ($echo)
1356
- echo ' checked="checked" ';
1357
- else
1358
- return ' checked="checked" ';
1359
- }
1360
- }
1361
-
1362
- /**
1363
- * Helper for creating checkboxes.
1364
- *
1365
- * @since 3.1.5
1366
- * @param string $name string used for various parts of checkbox
1367
- *
1368
- */
1369
- function create_checkbox($name, $label = '', $labelid = '')
1370
- {
1371
- $label = (!empty($label) ? $label : __(ucfirst($name), $this->hook));
1372
- echo '<label' . (!empty($labelid) ? ' id=' . $labelid : '') . '><input type="checkbox" class="show_list" name="' . $this->option_name . '[show_on_' . $name . ']" value="on" ';
1373
- $this->checked('show_on_' . $name, 'on');
1374
- echo ' />' . $label . "</label>\r\n";
1375
- }
1376
-
1377
-
1378
- /**
1379
- * Helper that checks if any of the content types is checked to display pf button.
1380
- *
1381
- * @since 3.1.5
1382
- * @return boolean true if none of the content types is checked
1383
- *
1384
- */
1385
- function is_manual()
1386
- {
1387
- try {
1388
- return !(isset($this->options['show_on_posts']) ||
1389
- isset($this->options['show_on_pages']) ||
1390
- isset($this->options['show_on_homepage']) ||
1391
- isset($this->options['show_on_categories']) ||
1392
- // (isset($this->options['category_ids']) && count($this->options['category_ids']) > 0) ||
1393
- isset($this->options['show_on_taxonomies']));
1394
- } catch (Exception $e) {
1395
- $this->raven_catch($e);
1396
- }
1397
- }
1398
-
1399
-
1400
- /**
1401
- * Like the WordPress selected() function but it doesn't throw notices when the array key isn't set and uses the plugins options array.
1402
- *
1403
- * @since 3.0.9
1404
- * @param mixed $val value to check.
1405
- * @param mixed $check_against value to check against.
1406
- * @return string checked, when true, empty, when false.
1407
- */
1408
- function selected($val, $check_against = true)
1409
- {
1410
- if (!isset($this->options[$val]))
1411
- return;
1412
-
1413
- return selected($this->options[$val], $check_against);
1414
- }
1415
-
1416
- /**
1417
- * For use with page metabox.
1418
- *
1419
- * @since 3.2.2
1420
- */
1421
- function get_page_post_type()
1422
- {
1423
- $post_types = get_post_types(array('name' => 'page'), 'object');
1424
- //echo '<pre>'.print_r($post_types,1).'</pre>';
1425
- //die;
1426
-
1427
- return $post_types['page'];
1428
- }
1429
-
1430
-
1431
- /**
1432
- * Helper that checks if wp versions is above 3.0.
1433
- *
1434
- * @since 3.2.2
1435
- * @return boolean true wp version is above 3.0
1436
- *
1437
- */
1438
- function wp_version_gt30()
1439
- {
1440
- global $wp_version;
1441
- return version_compare($wp_version, '3.0', '>=');
1442
- }
1443
-
1444
-
1445
- /**
1446
- * Create box for picking individual categories.
1447
- *
1448
- * @since 3.2.2
1449
- */
1450
- function create_category_metabox()
1451
- {
1452
- $obj = new stdClass();
1453
- $obj->ID = 0;
1454
- do_meta_boxes('settings_page_' . $this->hook, 'normal', $obj);
1455
- }
1456
-
1457
-
1458
- /**
1459
- * Load metaboxes advanced button display settings.
1460
- *
1461
- * @since 3.2.2
1462
- */
1463
- function on_load_printfriendly()
1464
- {
1465
- global $wp_version;
1466
- if ($this->wp_version_gt30()) {
1467
- //require_once(dirname(__FILE__).'/includes/meta-boxes.php');
1468
- //require_once(dirname(__FILE__).''includes/nav-menu.php');
1469
- wp_enqueue_script('post');
1470
-
1471
- add_meta_box('categorydiv', __('Only display when post is in:', $this->hook), 'post_categories_meta_box', 'settings_page_' . $this->hook, 'normal', 'core');
1472
- }
1473
- }
1474
-
1475
- function console_log($data)
1476
- {
1477
- echo '<script>';
1478
- echo 'console.log(' . json_encode($data) . ')';
1479
- echo '</script>';
1480
- }
1481
-
1482
- /**
1483
- * Output the config page
1484
- *
1485
- * @since 3.0
1486
- */
1487
- function config_page()
1488
- {
1489
-
1490
-
1491
- // Since WP 3.2 outputs these errors by default, only display them when we're on versions older than 3.2 that do support the settings errors.
1492
- global $wp_version;
1493
- if (version_compare($wp_version, '3.2', '<') && $this->wp_version_gt30())
1494
- settings_errors();
1495
-
1496
- // Show the content of the options array when debug is enabled
1497
- if (WP_DEBUG) {
1498
- echo "<p>" . __('Currently in Debug Mode. Following information is visible in debug mode only:', $this->hook) . "</p>";
1499
- echo '<pre>' . __('Options:', $this->hook) . '<br><br>' . print_r($this->options, 1) . '</pre>';
1500
- }
1501
- ?>
1502
-
1503
- <div id="pf_settings" class="wrap">
1504
- <div class="icon32" id="printfriendly"></div>
1505
- <h2><?php _e('Print Friendly & PDF Settings', $this->hook); ?></h2>
1506
-
1507
- <form id="pf-options-form" action="options.php" method="post">
1508
- <?php wp_nonce_field('pf-options', 'pf-nonce'); ?>
1509
- <?php settings_fields($this->option_name); ?>
1510
-
1511
- <div id="pf-pro" class="pf-notice pf-pro">
1512
- <h3 style="margin: 1rem 0 0 0">Pro - <span id="pf-pro-status-header"></span></h3>
1513
- <p class="pf-alert-success">PrintFriendly is <strong>GDPR Compliant</strong> <a href="https://www.printfriendly.com/privacy" target="_blank">Learn more</a>.
1514
-
1515
- </p>
1516
- <div class="pf-col-1 ">
1517
- <label class="pf-no-margin">
1518
- <strong><?php _e("Email", $this->hook); ?></strong><span class="description"> (To send account details)</span><br>
1519
- <input id="pf-pro-email" type="email" class="regular-text" maxlength="80" name="<?php echo $this->option_name; ?>[pro_email]" value="<?php $this->val('pro_email'); ?>" placeholder="hello@my-website.com" />
1520
- <br>
1521
- <span id="pf-pro-email-error" class="pf-error">Email is invalid</span>
1522
- </label>
1523
-
1524
- <label>
1525
- <strong><?php _e("Production Domain", $this->hook); ?></strong><span class="description"> (Your website domain)</span><br>
1526
- <input id="pf-pro-domain" type="text" class="regular-text" maxlength="80" pattern="^[a-zA-Z0-9][a-zA-Z0-9.-]+[a-zA-Z0-9]$" name="<?php echo $this->option_name; ?>[pro_domain]" value="<?php $this->val('pro_domain'); ?>" placeholder="my-website.com" />
1527
- <br />
1528
- <span id="pf-pro-domain-error" class="pf-error">Domain is invalid</span>
1529
- </label>
1530
-
1531
- <p id="pf-pro-activate" class="pf-hidden">
1532
- <button id="pf-pro-activate-btn" type="button" class="button-primary">Activate</button>
1533
- <span class="pf-btn-message">Free 30 days trial, no credit card required.</span>
1534
- </p>
1535
-
1536
- <p id="pf-pro-buy" class="pf-hidden">
1537
- <a id="pf-pro-buy-btn" class="button-primary">Buy Now</a>
1538
- <span id="pf-pro-status-message" class="pf-btn-message"></span>
1539
- </p>
1540
-
1541
- <p id="pf-pro-loading" class="pf-hidden">
1542
- <b class="pf-text-success"><span id="pf-pro-loading-message"></span> Please wait...</b>
1543
- </p>
1544
-
1545
- <p id="pf-pro-communication-error" class="pf-hidden">
1546
- <b class="pf-text-error"><span id="pf-pro-communication-error-message"></span></b>
1547
- </p>
1548
- </div>
1549
-
1550
- <div class="pf-col-2 pf-pro-features">
1551
- <strong>Pro Features</strong>
1552
- <ul>
1553
- <li>- Faster, better experience for end-user</li>
1554
- <li>- Cache-free, so any updates are instantly included</li>
1555
- <li>- Ad-Free for companies and organizations</li>
1556
- <li>- Works on all sites (Password protected, Angular/React/Ember)</li>
1557
- <li>- Email support</li>
1558
- </ul>
1559
- <p>Have a development/staging domain? <a href="https://support.printfriendly.com/button/pro/development-domain/">Add Free Development Domain</a>.</p>
1560
- </div>
1561
- <br />
1562
- </div>
1563
-
1564
- <!--Section 1 WebMaster-->
1565
- <h3><?php _e("Webmaster Settings", $this->hook); ?></h3>
1566
- <div>
1567
- <label for="password_protected" class="pf-no-margin"><?php _e('Password Protected Content', $this->hook); ?></label>
1568
- <select id="password_protected" name="<?php echo $this->option_name; ?>[password_protected]" class="alignleft">
1569
- <option value="no" <?php selected($this->options['password_protected'], 'no'); ?>><?php _e("No", $this->hook); ?></option>
1570
- <option value="yes" <?php selected($this->options['password_protected'], 'yes'); ?>><?php _e("Yes", $this->hook); ?></option>
1571
- </select>
1572
-
1573
- <span class="password_protected_yes pf-alert-warning alignleft">
1574
- <?php _e("Password protected content requires Pro subscription.", $this->hook); ?>
1575
- <a href="https://www.printfriendly.com/pro">Learn More</a>
1576
- </span>
1577
- <div class="clearfloat"></div>
1578
- </div>
1579
- <br class="clear">
1580
-
1581
- <div>
1582
- <label for="dynamic_content" class="pf-no-margin"><?php _e('My site uses React/Angular/Ember or uses JS to deliver content', $this->hook); ?></label>
1583
- <select id="dynamic_content" name="<?php echo $this->option_name; ?>[dynamic_content]" class="alignleft">
1584
- <option value="no" <?php selected($this->options['dynamic_content'], 'no'); ?>><?php _e("No", $this->hook); ?></option>
1585
- <option value="yes" <?php selected($this->options['dynamic_content'], 'yes'); ?>><?php _e("Yes", $this->hook); ?></option>
1586
- </select>
1587
-
1588
- <span class="dynamic_content_yes pf-alert-warning alignleft">
1589
- <?php _e("JS generated content requires a Pro subscription.", $this->hook); ?>
1590
- <a href="https://www.printfriendly.com/pro">Learn More</a>
1591
- </span>
1592
- <div class="clearfloat"></div>
1593
- </div>
1594
-
1595
- <label for="javascript"><?php _e('Use JavaScript (Lightbox) for PrintFriendly Preview', $this->hook); ?><br>
1596
- <select id="javascript" name="<?php echo $this->option_name; ?>[javascript]>">
1597
- <option value="yes" <?php $this->selected('javascript', 'yes'); ?>> <?php _e("Yes", $this->hook); ?></option>
1598
- <option value="no" <?php $this->selected('javascript', 'no'); ?>> <?php _e("No", $this->hook); ?></option>
1599
- </select>
1600
- <span class="description no-javascript no-italics">
1601
- <?php _e("Preview opens a new browser tab.", $this->hook); ?>
1602
- </span>
1603
- </label>
1604
- <label for="pf-algo-usage"><?php _e('Select content using:', $this->hook); ?> <span class="description no-italics"><?php _e('Change this setting if your content is not showing in the preview.', $this->hook); ?></span><br>
1605
-
1606
- <?php
1607
- if (class_exists('WooCommerce')) {
1608
- ?>
1609
- <span><strong><?php _e("Not available for woocommerce", $this->hook); ?></strong></span>
1610
- <?php
1611
- } else {
1612
- ?>
1613
- <select id="pf-algo-usage" name="<?php echo $this->option_name; ?>[pf_algo]">
1614
- <option value="wp" <?php $this->selected('pf_algo', 'wp'); ?>> <?php _e('WP Template', $this->hook); ?></option>
1615
- <option value="pf" <?php $this->selected('pf_algo', 'pf'); ?>> <?php _e("Content Algorithm", $this->hook); ?></option>
1616
- </select>
1617
- <?php
1618
- }
1619
- ?>
1620
- </label>
1621
- <label for="pf-analytics-tracking"><?php _e('Track in Google Analytics', $this->hook); ?><br>
1622
- <select id="pf-analytics-tracking" name="<?php echo $this->option_name; ?>[enable_google_analytics]">
1623
- <option value="yes" <?php $this->selected('enable_google_analytics', 'yes'); ?>> <?php _e("Yes", $this->hook); ?></option>
1624
- <option value="no" <?php $this->selected('enable_google_analytics', 'no'); ?>> <?php _e("No", $this->hook); ?></option>
1625
- </select>
1626
- </label>
1627
- <label for="pf-error-reporting"><?php _e('Error Reporting', $this->hook); ?>
1628
- <span class="description no-italics"><?php _e('Ensure PrintFriendly is working - Automatically send anonymous alert if PrintFriendly encounters an error.', $this->hook); ?></span>
1629
- <br>
1630
- <select id="pf-error-reporting" name="<?php echo $this->option_name; ?>[enable_error_reporting]">
1631
- <option value="yes" <?php $this->selected('enable_error_reporting', 'yes'); ?>> <?php _e("Yes", $this->hook); ?></option>
1632
- <option value="no" <?php $this->selected('enable_error_reporting', 'no'); ?>> <?php _e("No", $this->hook); ?></option>
1633
- </select>
1634
- </label>
1635
- <br class="clear">
1636
-
1637
- <p class="submit">
1638
- <input type="submit" class="button-primary" value="<?php esc_attr_e("Save Options", $this->hook); ?>" />
1639
- <input type="reset" class="button-secondary" value="<?php esc_attr_e("Cancel", $this->hook); ?>" />
1640
- </p>
1641
-
1642
- <!--Section 2 Pick Button Style-->
1643
- <h3><?php _e("Pick Your Button Style", $this->hook); ?></h3>
1644
-
1645
- <fieldset id="button-style">
1646
- <div id="buttongroup1">
1647
- <?php $this->radio('buttons/printfriendly-pdf-email-button.png'); ?>
1648
- <?php $this->radio('buttons/printfriendly-pdf-email-button-md.png'); ?>
1649
- <?php $this->radio('buttons/printfriendly-pdf-email-button-notext.png'); ?>
1650
- </div>
1651
- <div id="buttongroup2">
1652
- <?php $this->radio('buttons/printfriendly-pdf-button.png'); ?>
1653
- <?php $this->radio('buttons/printfriendly-pdf-button-nobg.png'); ?>
1654
- <?php $this->radio('buttons/printfriendly-pdf-button-nobg-md.png'); ?>
1655
- </div>
1656
- <div id="buttongroup3">
1657
- <?php $this->radio('buttons/printfriendly-button.png'); ?>
1658
- <?php $this->radio('buttons/printfriendly-button-nobg.png'); ?>
1659
- <?php $this->radio('buttons/printfriendly-button-md.png'); ?>
1660
- <?php $this->radio('buttons/printfriendly-button-lg.png'); ?>
1661
- </div>
1662
- <div id="buttongroup4">
1663
- <?php $this->radio('buttons/print-button.png'); ?>
1664
- <?php $this->radio('buttons/print-button-nobg.png'); ?>
1665
- <?php $this->radio('buttons/print-button-gray.png'); ?>
1666
- </div>
1667
-
1668
- <div id="custom-btn-group" class="clear">
1669
- <label>
1670
- <?php echo '<input id="custom-btn" class="radio" name="' . $this->option_name . '[button_type]" type="radio" value="custom-button" ' . $this->checked('button_type', 'custom-button', false) . '/>'; ?>
1671
- <?php _e("Custom Button", $this->hook); ?>
1672
- </label>
1673
-
1674
- <div id="custom-img" style="float: left;">
1675
- <h2><?php _e('Image', $this->hook); ?></h2><br>
1676
- <?php $this->radio_custom_image('https://cdn.printfriendly.com/icons/printfriendly-icon-sm.png'); ?>
1677
- <?php $this->radio_custom_image('https://cdn.printfriendly.com/icons/printfriendly-icon-md.png'); ?>
1678
- <?php $this->radio_custom_image('https://cdn.printfriendly.com/icons/printfriendly-icon-lg.png'); ?>
1679
-
1680
- <label for="custom-image-rb" class="radio-custom-btn"></label>
1681
- <input id="custom-image-rb" type="radio" name="<?php echo $this->option_name ?>[custom_button_icon]" value="custom-image" <?php $this->checked('custom_button_icon', 'custom-image'); ?>>
1682
- <b><?php _e('Use Your Image', $this->hook); ?></b>
1683
- <div id="enter-image-url" style="margin: 10px 0 0 30px">
1684
- <?php _e('Enter Image URL', $this->hook); ?><br>
1685
- <input id="custom_image" type="text" class="clear regular-text" name="<?php echo $this->option_name; ?>[custom_image]" value="<?php $this->val('custom_image'); ?>" />
1686
- <div id="pf-custom-button-error"></div>
1687
- <div class="description"><?php _e("Ex: https://www.example.com/<br>Ex: /wp/wp-content/uploads/example.png", $this->hook); ?>
1688
- </div>
1689
- </div>
1690
-
1691
- <label class="radio-custom-btn">
1692
- <input type="radio" name="<?php echo $this->option_name ?>[custom_button_icon]" value="no-image" <?php $this->checked('custom_button_icon', 'no-image'); ?>>
1693
- <b><?php _e('No Image', $this->hook); ?></b>
1694
- </label>
1695
- </div>
1696
-
1697
- <div id="custom-txt" style="float: left;">
1698
- <h2><?php _e('Text', $this->hook); ?></h2>
1699
- <div id="txt-enter">
1700
- <div class="pf-form-element">
1701
- <input id="custom-text-rb" type="radio" name="<?php echo $this->option_name; ?>[custom_button_text]" value="custom-text" <?php $this->checked('custom_button_text', 'custom-text'); ?>>
1702
- <input id="custom_text" type="text" size="10" class="clear regular-text" name="<?php echo $this->option_name; ?>[custom_text]" value="<?php $this->val('custom_text'); ?>">
1703
- </div>
1704
- <label>
1705
- <input type="radio" name="<?php echo $this->option_name; ?>[custom_button_text]" value="no-text" <?php $this->checked('custom_button_text', 'no-text'); ?>>
1706
- <b><?php _e('No Text', $this->hook); ?></b>
1707
- </label>
1708
- </div>
1709
- <div>
1710
- <div id="txt-color">
1711
- <?php _e("Text Color", $this->hook); ?>
1712
- <input type="hidden" name="<?php echo $this->option_name; ?>[text_color]" id="text_color" value="<?php $this->val('text_color'); ?>" /><br>
1713
- <div id="colorSelector">
1714
- <div style="background-color: <?php echo $this->options['text_color']; ?>;"></div>
1715
- </div>
1716
- </div>
1717
- <div id="txt-size">
1718
- <?php _e("Text Size", $this->hook); ?><br>
1719
- <input type="number" id="text_size" min="9" max="25" class="small-text" name="<?php echo $this->option_name; ?>[text_size]" value="<?php $this->val('text_size'); ?>" />
1720
- </div>
1721
- </div>
1722
- </div>
1723
-
1724
- <div id="custom-button-preview" style="float: left;">
1725
- <h2><?php _e('Preview', $this->hook); ?></h2>
1726
- <?php $this->custom_button_preview(); ?>
1727
- </div>
1728
- </div>
1729
- </fieldset>
1730
-
1731
- <br class="clear">
1732
-
1733
- <p class="submit">
1734
- <input type="submit" class="button-primary" value="<?php esc_attr_e("Save Options", $this->hook); ?>" />
1735
- <input type="reset" class="button-secondary" value="<?php esc_attr_e("Cancel", $this->hook); ?>" />
1736
- </p>
1737
-
1738
- <!--Section 3 Button Positioning-->
1739
- <div id="button-positioning">
1740
- <h3><?php _e("Button Positioning", $this->hook); ?>
1741
- <span id="css"><input type="checkbox" name="<?php echo $this->option_name; ?>[enable_css]" value="<?php $this->val('enable_css'); ?>" <?php $this->checked('enable_css', 'off'); ?> /><?php _e('Do not use CSS for button styles', $this->hook); ?></span>
1742
- </h3>
1743
- <div id="button-positioning-options">
1744
- <div id="alignment">
1745
- <label<?php /*for="pf_content_position"*/ ?>>
1746
- <select id="pf_content_position" name="<?php echo $this->option_name; ?>[content_position]">
1747
- <option value="left" <?php selected($this->options['content_position'], 'left'); ?>><?php _e("Left Align", $this->hook); ?></option>
1748
- <option value="right" <?php selected($this->options['content_position'], 'right'); ?>><?php _e("Right Align", $this->hook); ?></option>
1749
- <option value="center" <?php selected($this->options['content_position'], 'center'); ?>><?php _e("Center", $this->hook); ?></option>
1750
- <option value="none" <?php selected($this->options['content_position'], 'none'); ?>><?php _e("None", $this->hook); ?></option>
1751
- </select>
1752
- </label>
1753
- </div>
1754
- <div class="content_placement">
1755
- <label<?php /* for="pf_content_placement"*/ ?>>
1756
- <select id="pf_content_placement" name="<?php echo $this->option_name; ?>[content_placement]">
1757
- <option value="before" <?php selected($this->options['content_placement'], 'before'); ?>><?php _e("Above Content", $this->hook); ?></option>
1758
- <option value="after" <?php selected($this->options['content_placement'], 'after'); ?>><?php _e("Below Content", $this->hook); ?></option>
1759
- </select>
1760
- </label>
1761
- </div>
1762
- <div id="margin">
1763
- <label for="pf-margin_left">
1764
- <input type="number" name="<?php echo $this->option_name; ?>[margin_left]" id="pf-margin_left" value="<?php $this->val('margin_left'); ?>" />
1765
- <?php _e("Margin Left", $this->hook); ?>
1766
- </label>
1767
- <label for="pf-margin_right">
1768
- <input type="number" name="<?php echo $this->option_name; ?>[margin_right]" id="pf-margin_right" value="<?php $this->val('margin_right'); ?>" /> <?php _e("Margin Right", $this->hook); ?>
1769
- </label>
1770
- <label for="pf-margin_top">
1771
- <input type="number" name="<?php echo $this->option_name; ?>[margin_top]" id="pf-margin_top" value="<?php $this->val('margin_top'); ?>" /> <?php _e("Margin Top", $this->hook); ?>
1772
- </label>
1773
- <label for="pf-margin_bottom">
1774
- <input type="number" name="<?php echo $this->option_name; ?>[margin_bottom]" id="pf-margin_bottom" value="<?php $this->val('margin_bottom'); ?>" /> <?php _e("Margin Bottom", $this->hook); ?>
1775
- </label>
1776
- </div>
1777
- </div>
1778
- </div>
1779
- <br class="clear">
1780
-
1781
- <p class="submit">
1782
- <input type="submit" class="button-primary" value="<?php esc_attr_e("Save Options", $this->hook); ?>" />
1783
- <input type="reset" class="button-secondary" value="<?php esc_attr_e("Cancel", $this->hook); ?>" />
1784
- </p>
1785
-
1786
- <!--Section 4 Button Placement-->
1787
- <div id="button-placement">
1788
- <h3><?php _e("Display button on:", $this->hook); ?></h3>
1789
- <div id="pages">
1790
- <?php $this->create_checkbox('posts', __('Posts', $this->hook)); ?>
1791
- <?php $this->create_checkbox('pages', __('Pages', $this->hook)); ?>
1792
- <?php $this->create_checkbox('homepage', __('Homepage', $this->hook)); ?>
1793
- <?php $this->create_checkbox('categories', __('Category Pages', $this->hook)); ?>
1794
- <?php $this->create_checkbox('taxonomies', __('Taxonomy Pages', $this->hook)); ?>
1795
- <label for="show_on_template"><input type="checkbox" class="show_template" name="show_on_template" id="show_on_template" /><?php echo _e('Add direct to template', $this->hook); ?></label>
1796
- <textarea id="pf-shortcode" class="code" rows="2" cols="40">&lt;?php if(function_exists('pf_show_link')){echo pf_show_link();} ?&gt;</textarea>
1797
- <label<?php /* for="pf-shortcode2"*/ ?>><?php _e("or use shortcode inside your page/article", $this->hook); ?></label>
1798
- <textarea<?php /* id="pf-shortcode2"*/ ?> class="code" rows="2" cols="40">[printfriendly]
1799
- </textarea>
1800
- <?php /* <input type="hidden" name="<? php echo $this->option_name; ?>[category_ids]" id="category_ids" value="<?php echo implode(',', $this->options['category_ids']); ? >" /> */ ?>
1801
- </div>
1802
- </div>
1803
-
1804
- <br class="clear">
1805
-
1806
- <p class="submit">
1807
- <input type="submit" class="button-primary" value="<?php esc_attr_e("Save Options", $this->hook); ?>" />
1808
- <input type="reset" class="button-secondary" value="<?php esc_attr_e("Cancel", $this->hook); ?>" />
1809
- </p>
1810
- <!--Section 5 Button Print Options-->
1811
- <div id="print-options">
1812
- <h3><?php _e("Print PDF Options", $this->hook); ?></h3>
1813
- <label id="pf-favicon" for="pf-logo">
1814
- <?php _e("Page header", $this->hook); ?>
1815
- <select id="pf-logo" name="<?php echo $this->option_name; ?>[logo]">
1816
- <option value="favicon" <?php selected($this->options['logo'], 'favicon'); ?>><?php _e("My Website Icon", $this->hook); ?></option>
1817
- <option value="upload-an-image" <?php selected($this->options['logo'], 'upload-an-image'); ?>><?php _e("Upload an Image", $this->hook); ?></option>
1818
- </select>
1819
- </label>
1820
-
1821
- <div class="custom-logo"><label><?php _e("Enter url", $this->hook); ?></label><input id="upload-an-image" type="text" class="regular-text" name="<?php echo $this->option_name; ?>[image_url]" value="<?php $this->val('image_url'); ?>" /><label for="image-tagline"><?php _e("Text (optional)", $this->hook); ?></label><input id="image-tagline" type="text" class="regular-text" name="<?php echo $this->option_name; ?>[tagline]" value="<?php $this->val('tagline'); ?>" /></div>
1822
- <div id="pf-image-error"></div>
1823
- <div id="pf-image-preview"></div>
1824
- <label>
1825
- <?php _e("Click-to-delete", $this->hook); ?>
1826
- <select name="<?php echo $this->option_name; ?>[click_to_delete]" id="click-to-delete">
1827
- <option value="0" <?php selected($this->options['click_to_delete'], '0'); ?>><?php _e("Allow", $this->hook); ?></option>
1828
- <option value="1" <?php selected($this->options['click_to_delete'], '1'); ?>><?php _e("Not Allow", $this->hook); ?></option>
1829
- </select>
1830
- </label>
1831
- <label for="images-size">
1832
- <?php _e("Images", $this->hook); ?>
1833
- <select name="<?php echo $this->option_name; ?>[images-size]" id="images-size">
1834
- <option value="full-size" <?php selected($this->options['images-size'], 'full-size'); ?>><?php _e("Full Size", $this->hook); ?></option>
1835
- <option value="large" <?php selected($this->options['images-size'], 'large'); ?>><?php _e("Large", $this->hook); ?></option>
1836
- <option value="medium" <?php selected($this->options['images-size'], 'medium'); ?>><?php _e("Medium", $this->hook); ?></option>
1837
- <option value="small" <?php selected($this->options['images-size'], 'small'); ?>><?php _e("Small", $this->hook); ?></option>
1838
- <option value="remove-images" <?php selected($this->options['images-size'], 'remove-images'); ?>><?php _e("Remove Images", $this->hook); ?></option>
1839
- </select>
1840
- </label>
1841
- <label for="image-style">
1842
- <?php _e("Image style", $this->hook); ?>
1843
- <select name="<?php echo $this->option_name; ?>[image-style]" id="image-style">
1844
- <option value="right" <?php selected($this->options['image-style'], 'right'); ?>><?php _e("Align Right", $this->hook); ?></option>
1845
- <option value="left" <?php selected($this->options['image-style'], 'left'); ?>><?php _e("Align Left", $this->hook); ?></option>
1846
- <option value="none" <?php selected($this->options['image-style'], 'none'); ?>><?php _e("Align None", $this->hook); ?></option>
1847
- <option value="block" <?php selected($this->options['image-style'], 'block'); ?>><?php _e("Center/Block", $this->hook); ?></option>
1848
- </select>
1849
- </label>
1850
- <label for="email">
1851
- <?php _e("Email", $this->hook); ?>
1852
- <select name="<?php echo $this->option_name; ?>[email]" id="email">
1853
- <option value="0" <?php selected($this->options['email'], '0'); ?>><?php _e("Allow", $this->hook); ?></option>
1854
- <option value="1" <?php selected($this->options['email'], '1'); ?>><?php _e("Not Allow", $this->hook); ?></option>
1855
- </select>
1856
- </label>
1857
- <label for="pdf">
1858
- <span class="alignleft"><?php _e("PDF", $this->hook); ?></span>
1859
- <select name="<?php echo $this->option_name; ?>[pdf]" id="pdf" class="alignleft clear">
1860
- <option value="0" <?php selected($this->options['pdf'], '0'); ?>><?php _e("Allow", $this->hook); ?></option>
1861
- <option value="1" <?php selected($this->options['pdf'], '1'); ?>><?php _e("Not Allow", $this->hook); ?></option>
1862
- </select>
1863
- <span class="alignleft pf-alert-warning">
1864
- <strong><?php _e("Developer Note: ", $this->hook); ?></strong><?php _e("On localhost the images can not be included in the PDF. Once the website is live/public images will be included in the PDF.", $this->hook); ?>
1865
- </span>
1866
- </label>
1867
- <label for="print" class="clear">
1868
- <?php _e("Print", $this->hook); ?>
1869
- <select name="<?php echo $this->option_name; ?>[print]" id="print">
1870
- <option value="0" <?php selected($this->options['print'], '0'); ?>><?php _e("Allow", $this->hook); ?></option>
1871
- <option value="1" <?php selected($this->options['print'], '1'); ?>><?php _e("Not Allow", $this->hook); ?></option>
1872
- </select>
1873
- </label>
1874
- <strong>Print/PDF Custom CSS</strong>
1875
- <div>Custom the styles of the printed/pdf page using your own CSS. Create your custom CSS, and put the URL to your Custom CSS file in the box below. <a target="_blank" href="https://support.printfriendly.com/customer/portal/articles/895256-custom-css-styles"><?php _e('Learn More', $this->hook); ?></a></div>
1876
- <label for="custom_css_url">
1877
- <?php _e("Custom CSS URL", $this->hook); ?>
1878
- <input id="custom_css_url" type="text" class="regular-text" name="<?php echo $this->option_name; ?>[custom_css_url]" value="<?php $this->val('custom_css_url'); ?>" />
1879
-
1880
- </label>
1881
- </div>
1882
-
1883
- <br class="clear">
1884
-
1885
- <p class="submit">
1886
- <input type="submit" class="button-primary" value="<?php esc_attr_e("Save Options", $this->hook); ?>" />
1887
- <input type="reset" class="button-secondary" value="<?php esc_attr_e("Cancel", $this->hook); ?>" />
1888
- </p>
1889
- <div id="after-submit">
1890
- <p>
1891
- <?php _e(sprintf(__('If you like <strong>PrintFriendly</strong> please leave us a %s rating. A huge thanks in advance!', 'printfriendly'), '<a href="https://wordpress.org/support/plugin/printfriendly/reviews?rate=5#new-post" target="_blank">&#9733;&#9733;&#9733;&#9733;&#9733;</a>'), $this->hook); ?>
1892
- </p>
1893
- <p><?php _e("Need professional options for your corporate, education, or agency developed website? Check out", $this->hook); ?> <a href="https://www.printfriendly.com/button/pro?utm_source=wp&utm_medium=link&utm_campaign=wp-link" target="_blank">PrintFriendly Pro</a>.</p>
1894
- <p>
1895
- <?php _e("Need help or have suggestions?", $this->hook); ?> <a href="mailto:support@printfriendly.com?subject=Support%20for%20PrintFriendly%20WordPress%20plugin">support@PrintFriendly.com</a>
1896
- </p>
1897
- </div>
1898
- </form>
1899
- </div>
1900
- <?php
1901
- }
1902
- }
1903
- $printfriendly = new PrintFriendly_WordPress();
1904
  }
1905
 
1906
  // Add shortcode for printfriendly button
1907
- add_shortcode('printfriendly', 'pf_show_link');
1908
 
1909
  /**
1910
  * Convenience function for use in templates.
@@ -1912,8 +1399,7 @@ add_shortcode('printfriendly', 'pf_show_link');
1912
  * @since 3.0
1913
  * @return string returns a button to be printed.
1914
  */
1915
- function pf_show_link()
1916
- {
1917
- global $printfriendly;
1918
- return $printfriendly->getButton(true);
1919
  }
1
  <?php
 
2
  /*
3
+ Plugin Name: Print, PDF & Email by PrintFriendly
4
+ Plugin URI: http://www.printfriendly.com
5
+ Description: PrintFriendly & PDF button for your website. Optimizes your pages and brand for print, pdf, and email.
6
+ Name and URL are included to ensure repeat visitors and new visitors when printed versions are shared.
7
+ Version: 4.0.0
8
+ Author: Print, PDF, & Email by PrintFriendly
9
+ Author URI: http://www.printfriendly.com
10
+ Domain Path: /languages
11
+ Text Domain: printfriendly
12
+ */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
 
14
  /**
15
  * PrintFriendly WordPress plugin. Allows easy embedding of printfriendly.com buttons.
16
+ *
17
  * @package PrintFriendly_WordPress
18
  * @author PrintFriendly <support@printfriendly.com>
19
  * @copyright Copyright (C) 2012, PrintFriendly
20
  */
21
+ if ( ! class_exists( 'PrintFriendly_WordPress' ) ) {
22
+
23
+ /**
24
+ * Class containing all the plugins functionality.
25
+ *
26
+ * @package PrintFriendly_WordPress
27
+ */
28
+ class PrintFriendly_WordPress {
29
+
30
+ /**
31
+ * Current plugin version.
32
+ *
33
+ * @var string
34
+ */
35
+ var $plugin_version = '4.0.0';
36
+
37
+ /**
38
+ * The hook, used for text domain as well as hooks on pages and in get requests for admin.
39
+ *
40
+ * @var string
41
+ */
42
+ var $hook = 'printfriendly';
43
+
44
+ /**
45
+ * The option name, used throughout to refer to the plugins option and option group.
46
+ *
47
+ * @var string
48
+ */
49
+ var $option_name = 'printfriendly_option';
50
+
51
+ /**
52
+ * The plugins options, loaded on init containing all the plugins settings.
53
+ *
54
+ * @var array
55
+ */
56
+ var $options = array();
57
+
58
+ /**
59
+ * Database version, used to allow for easy upgrades to / additions in plugin options between plugin versions.
60
+ *
61
+ * @var int
62
+ */
63
+ var $db_version = 20;
64
+
65
+ /**
66
+ * Settings page, used within the plugin to reliably load the plugins admin JS and CSS files only on the admin page.
67
+ *
68
+ * @var string
69
+ */
70
+ var $settings_page = '';
71
+
72
+ /**
73
+ * GetSentry error reporting client
74
+ *
75
+ * @var Raven_Client
76
+ */
77
+ var $raven_client = null;
78
+
79
+ /**
80
+ * Constructor
81
+ *
82
+ * @since 3.0
83
+ */
84
+ function __construct() {
85
+ define( 'PRINTFRIENDLY_BASEPATH', dirname( __FILE__ ) );
86
+ define( 'PRINTFRIENDLY_BASEURL', plugins_url( '/', __FILE__ ) );
87
+
88
+ // Retrieve the plugin options
89
+ $this->options = get_option( $this->option_name );
90
+
91
+ // If the options array is empty, set defaults
92
+ if ( ! is_array( $this->options ) ) {
93
+ $this->set_defaults();
94
+ }
95
+
96
+ /**
97
+ * Set page content selection option "WordPress Standard/Strict" to "WP Template"
98
+ */
99
+ if ( isset( $this->options['pf_algo'] ) && $this->options['pf_algo'] === 'ws' ) {
100
+ $this->options['pf_algo'] = 'wp';
101
+ update_option( $this->option_name, $this->options );
102
+ }
103
+
104
+ // If the version number doesn't match, upgrade
105
+ if ( $this->db_version > $this->options['db_version'] ) {
106
+ $this->upgrade();
107
+ }
108
+
109
+ add_action( 'wp_head', array(&$this, 'front_head') );
110
+ // automaticaly add the link
111
+ if ( ! $this->is_manual() ) {
112
+ add_filter( 'the_content', array(&$this, 'show_link_on_content') );
113
+ add_filter( 'the_excerpt', array(&$this, 'show_link_on_excerpt') );
114
+ }
115
+
116
+ add_action( 'the_content', array(&$this, 'add_pf_content_class_around_content_hook') );
117
+
118
+ if ( is_admin() ) {
119
+ $this->admin_hooks();
120
+ }
121
+ }
122
+
123
+ /**
124
+ * All admin hooks.
125
+ */
126
+ function admin_hooks() {
127
+ // Hook into init for registration of the option and the language files
128
+ add_action( 'admin_init', array(&$this, 'init') );
129
+
130
+ // Register the settings page
131
+ add_action( 'admin_menu', array(&$this, 'add_config_page') );
132
+
133
+ // Enqueue the needed scripts and styles
134
+ add_action( 'admin_enqueue_scripts', array(&$this, 'admin_enqueue_scripts') );
135
+
136
+ // Register a link to the settings page on the plugins overview page
137
+ add_filter( 'plugin_action_links', array(&$this, 'filter_plugin_actions'), 10, 2 );
138
+ add_filter( 'plugin_row_meta', array(&$this, 'additional_links'), 10, 2 );
139
+ }
140
+
141
+ /**
142
+ * Adds wraps content in pf-content class to help Printfriendly algo determine the content
143
+ *
144
+ * @since 3.2.8
145
+ **/
146
+ function add_pf_content_class_around_content_hook( $content = false ) {
147
+ if ( $this->is_enabled() && $this->is_wp_algo_on( $content ) ) {
148
+ add_action( 'wp_footer', array(&$this, 'print_script_footer') );
149
+ return '<div class="pf-content">' . $content . '</div>';
150
+ } else {
151
+ return $content;
152
+ }
153
+ }
154
+
155
+ /**
156
+ * Override to check if print-only command is being used
157
+ *
158
+ * @since 3.3.0
159
+ **/
160
+ function print_only_override( $content ) {
161
+ $pattern = '/class\s*?=\s*?(["\']|["\']([^"\']*?)\s)print-only(["\']|\s([^"\']*?)["\'])/';
162
+ $pf_pattern = '/class\s*?=\s*?(["\']|["\']([^"\']*?)\s)pf-content(["\']|\s([^"\']*?)["\'])/';
163
+
164
+ return ( preg_match( $pattern, $content ) || preg_match( $pf_pattern, $content ) );
165
+ }
166
+
167
+ /**
168
+ * Check if WP Algorithm is selected and content doesn't use print-only
169
+ *
170
+ * @since 3.5.4
171
+ **/
172
+ function is_wp_algo_on( $content ) {
173
+ return ! class_exists( 'WooCommerce' ) && isset( $this->options['pf_algo'] ) && $content && $this->options['pf_algo'] === 'wp' && ! $this->print_only_override( $content );
174
+ }
175
+
176
+ /**
177
+ * PHP 4 Compatible Constructor
178
+ *
179
+ * @since 3.0
180
+ */
181
+ function PrintFriendly_WordPress() {
182
+ $this->__construct();
183
+ }
184
+
185
+ /**
186
+ * Check if button should be visible on particular page
187
+ */
188
+ function is_enabled() {
189
+ if ( ( is_page() && ( isset( $this->options['show_on_pages'] ) && 'on' === $this->options['show_on_pages'] ) )
190
+ || ( is_home() && ( ( isset( $this->options['show_on_homepage'] ) && 'on' === $this->options['show_on_homepage'] ) ) )
191
+ || ( is_tax() && ( ( isset( $this->options['show_on_taxonomies'] ) && 'on' === $this->options['show_on_taxonomies'] ) && $this->category_included() ) )
192
+ || ( is_category() && ( ( isset( $this->options['show_on_categories'] ) && 'on' === $this->options['show_on_categories'] ) && $this->category_included() ) )
193
+ || ( is_single() && ( ( isset( $this->options['show_on_posts'] ) && 'on' === $this->options['show_on_posts'] ) && $this->category_included() ) )
194
+ ) {
195
+ return true;
196
+ }
197
+ return false;
198
+ }
199
+
200
+ /**
201
+ * Prints the PrintFriendly button CSS, in the header.
202
+ *
203
+ * @since 3.0
204
+ */
205
+ function front_head() {
206
+ if ( $this->is_enabled() ) {
207
+ ?>
208
+ <?php
209
+ if ( isset( $this->options['enable_css'] ) && $this->options['enable_css'] !== 'on' ) {
210
+ return;
211
+ }
212
+ ?>
213
+ <style type="text/css">
214
+ @media screen {
215
+ .printfriendly {
216
+ position: relative;
217
+ z-index: 1000;
218
+ margin: <?php echo $this->options['margin_top'] . 'px ' . $this->options['margin_right'] . 'px ' . $this->options['margin_bottom'] . 'px ' . $this->options['margin_left'] . 'px'; ?>;
219
+ }
220
+ .printfriendly a, .printfriendly a:link, .printfriendly a:visited, .printfriendly a:hover, .printfriendly a:active {
221
+ font-weight: 600;
222
+ cursor: pointer;
223
+ text-decoration: none;
224
+ border: none;
225
+ -webkit-box-shadow: none;
226
+ -moz-box-shadow: none;
227
+ box-shadow: none;
228
+ outline:none;
229
+ font-size: <?php echo $this->options['text_size']; ?>px !important;
230
+ color: <?php echo $this->options['text_color']; ?> !important;
231
+ }
232
+ .printfriendly.pf-alignleft {float: left}.printfriendly.pf-alignright {float: right}.printfriendly.pf-aligncenter {display: flex;align-items: center;justify-content: center;}
233
+ }
234
+
235
+ @media print {
236
+ .printfriendly {display: none}
237
+ }
238
+ </style>
239
+ <?php
240
+ }
241
+ }
242
+
243
+ /**
244
+ * Prints the PrintFriendly JavaScript, in the footer, and loads it asynchronously.
245
+ *
246
+ * @since 3.0
247
+ */
248
+ function print_script_footer() {
249
+ $tagline = $this->options['tagline'];
250
+ $image_url = $this->options['image_url'];
251
+ if ( $this->options['logo'] === 'favicon' ) {
252
+ $tagline = '';
253
+ $image_url = '';
254
+ }
255
+
256
+ // Currently we use v3 for both: normal and password protected sites
257
+ ?>
258
+ <script type="text/javascript" id="pf_script">
259
+ var pfHeaderImgUrl = '<?php echo esc_js( esc_url( $image_url ) ); ?>';
260
+ var pfHeaderTagline = '<?php echo esc_js( $tagline ); ?>';
261
+ var pfdisableClickToDel = '<?php echo esc_js( $this->options['click_to_delete'] ); ?>';
262
+ var pfImagesSize = '<?php echo esc_js( $this->options['images-size'] ); ?>';
263
+ var pfImageDisplayStyle = '<?php echo esc_js( $this->options['image-style'] ); ?>';
264
+ var pfEncodeImages = '<?php echo esc_js( $this->options['password_protected'] === 'yes' ? 1 : 0 ); ?>';
265
+ var pfDisableEmail = '<?php echo esc_js( $this->options['email'] ); ?>';
266
+ var pfDisablePDF = '<?php echo esc_js( $this->options['pdf'] ); ?>';
267
+ var pfDisablePrint = '<?php echo esc_js( $this->options['print'] ); ?>';
268
+ var pfCustomCSS = '<?php echo esc_js( esc_url( $this->get_custom_css() ) ); ?>';
269
+ var pfPlatform = 'WordPress';
270
+ </script>
271
+ <script async src='https://cdn.printfriendly.com/printfriendly.js'></script>
272
+ <?php
273
+ }
274
+
275
+ /**
276
+ * Used as a filter for the_content.
277
+ *
278
+ * @since ?
279
+ *
280
+ * @param string $content The content of the post, when the function is used as a filter.
281
+ *
282
+ * @return string The content with the button added to the content.
283
+ */
284
+ function show_link_on_content( $content ) {
285
+ $content = $this->show_link( $content, true );
286
+
287
+ $styles = '.pf-button.pf-button-excerpt { display: none; }';
288
+
289
+ // hide the excerpt button in case it is available so that 2 buttons do not show.
290
+ $content .= '<style>' . apply_filters( 'printfriendly_styles', $styles, 'content' ) . '</style>';
291
+
292
+ return $content;
293
+ }
294
+
295
+ /**
296
+ * Used as a filter for the_excerpt.
297
+ *
298
+ * @since ?
299
+ *
300
+ * @param string $content The content of the post, when the function is used as a filter.
301
+ *
302
+ * @return string The content with the button added to the content.
303
+ */
304
+ function show_link_on_excerpt( $content ) {
305
+ return $this->show_link( $content, false );
306
+ }
307
+
308
+ /**
309
+ * Used to generate the the final content as per the required placement.
310
+ *
311
+ * @since 3.0
312
+ *
313
+ * @param string $content The content of the post, when the function is used as a filter.
314
+ * @param bool $on_content True if showing on the_content and False if showing on the_excerpt.
315
+ *
316
+ * @return string $button or $content with the button added to the content when appropriate, just the content when button shouldn't be added or just button when called manually.
317
+ */
318
+ private function show_link( $content = false, $on_content = true ) {
319
+ $is_manual = $this->is_manual();
320
+
321
+ if ( ! $content && ! $is_manual ) {
322
+ return '';
323
+ }
324
+
325
+ $button = $this->getButton( false, $on_content ? 'pf-button-content' : 'pf-button-excerpt' );
326
+ if ( $is_manual ) {
327
+ // Hook the script call now, so it only get's loaded when needed, and need is determined by the user calling pf_button
328
+ add_action( 'wp_footer', array(&$this, 'print_script_footer') );
329
+ return $button;
330
+ } else {
331
+ if ( $this->is_enabled() ) {
332
+ // Hook the script call now, so it only get's loaded when needed, and need is determined by the user calling pf_button
333
+ add_action( 'wp_footer', array(&$this, 'print_script_footer') );
334
+
335
+ if ( $this->options['content_placement'] === 'before' ) {
336
+ return $button . $content;
337
+ } else {
338
+ return $content . $button;
339
+ }
340
+ } else {
341
+ return $content;
342
+ }
343
+ }
344
+ }
345
+
346
+ /**
347
+ * Returns the HTML of the button.
348
+ *
349
+ * @since 3.3.8
350
+ *
351
+ * @param bool $add_footer_script Whether to add the script in the footer.
352
+ * @param string $add_class Additional class for the HTML button div.
353
+ *
354
+ * @return Printfriendly Button HTML
355
+ */
356
+ private function getButton( $add_footer_script = false, $add_class = '' ) {
357
+ if ( $add_footer_script ) {
358
+ add_action( 'wp_footer', array(&$this, 'print_script_footer') );
359
+ }
360
+ $js_enabled = $this->js_enabled();
361
+ $analytics_code = '';
362
+ $onclick = '';
363
+
364
+ if ( $this->google_analytics_enabled() ) {
365
+ $title_var = 'NULL';
366
+ $analytics_code = "if(typeof(_gaq) != 'undefined') { _gaq.push(['_trackEvent','PRINTFRIENDLY', 'print', '" . $title_var . "']);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
367
  }else if(typeof(ga) != 'undefined') { ga('send', 'event','PRINTFRIENDLY', 'print', '" . $title_var . "'); }";
368
+ if ( $js_enabled ) {
369
+ $onclick = 'onclick="window.print();' . $analytics_code . ' return false;"';
370
+ } else {
371
+ $onclick = '';
372
+ }
373
+ } elseif ( $js_enabled ) {
374
+ $onclick = 'onclick="window.print(); return false;"';
375
+ }
376
+
377
+ if ( $js_enabled ) {
378
+ $href = '#';
379
+ } else {
380
+ $href = 'https://www.printfriendly.com/print?url=' . urlencode( get_permalink() );
381
+ }
382
+
383
+ if ( ! $js_enabled ) {
384
+ if ( $this->google_analytics_enabled() ) {
385
+ $onclick = $onclick . ' onclick="' . $analytics_code . '"';
386
+ }
387
+ $href = 'https://www.printfriendly.com/print?headerImageUrl=' . urlencode( $this->options['image_url'] ) . '&headerTagline=' . urlencode( $this->options['tagline'] ) . '&pfCustomCSS=' . urlencode( $this->options['custom_css_url'] ) . '&imageDisplayStyle=' . urlencode( $this->options['image-style'] ) . '&disableClickToDel=' . urlencode( $this->options['click_to_delete'] ) . '.&disablePDF=' . urlencode( $this->options['pdf'] ) . '&disablePrint=' . urlencode( $this->options['print'] ) . '&disableEmail=' . urlencode( $this->options['email'] ) . '&imagesSize=' . urlencode( $this->options['images-size'] ) . '&url=' . urlencode( get_permalink() ) . '&source=wp';
388
+ }
389
+ if ( ! is_singular() && ! empty( $onclick ) && $js_enabled ) {
390
+ $onclick = '';
391
+ $href = add_query_arg( 'pfstyle', 'wp', get_permalink() );
392
+ }
393
+
394
+ $align = '';
395
+ if ( 'none' !== $this->options['content_position'] ) {
396
+ $align = ' pf-align' . $this->options['content_position'];
397
+ }
398
+ $href = str_replace( '&', '&amp;', $href );
399
+ $button = apply_filters( 'printfriendly_button', '<div class="printfriendly pf-button ' . $add_class . $align . '"><a href="' . $href . '" rel="nofollow" ' . $onclick . ' title="Printer Friendly, PDF & Email">' . $this->button() . '</a></div>' );
400
+ return $button;
401
+ }
402
+
403
+
404
+ /**
405
+ * Checks if GA is enabled.
406
+ *
407
+ * @since 3.2.9
408
+ * @returns if google analytics enabled
409
+ */
410
+ function google_analytics_enabled() {
411
+ return isset( $this->options['enable_google_analytics'] ) && $this->options['enable_google_analytics'] === 'yes';
412
+ }
413
+
414
+ /**
415
+ * Is JS enabled?
416
+ *
417
+ * @since 3.2.6
418
+ * @return boolean true if JS is enabled for the plugin
419
+ **/
420
+ function js_enabled() {
421
+ return true;
422
+ }
423
+
424
+ /**
425
+ * Filter posts by category.
426
+ *
427
+ * @since 3.2.2
428
+ * @return boolean true if post belongs to category selected for button display
429
+ */
430
+ function category_included() {
431
+ return isset( $this->options['show_on_cat'] ) ? in_category( $this->options['show_on_cat'] ) : true;
432
+ }
433
+
434
+ /**
435
+ * Register the textdomain and the options array along with the validation function
436
+ *
437
+ * @since 3.0
438
+ */
439
+ function init() {
440
+ // Allow for localization
441
+ load_plugin_textdomain( 'printfriendly', false, basename( dirname( __FILE__ ) ) . '/languages' );
442
+
443
+ // Register our option array
444
+ register_setting( $this->option_name, $this->option_name, array(&$this, 'options_validate') );
445
+ }
446
+
447
+ /**
448
+ * Validate the saved options.
449
+ *
450
+ * @since 3.0
451
+ * @param array $input with unvalidated options.
452
+ * @return array $valid_input with validated options.
453
+ */
454
+ function options_validate( $input ) {
455
+ // Prevent CSRF attack
456
+ check_admin_referer( 'pf-options', 'pf-nonce' );
457
+
458
+ $valid_input = $input;
459
+
460
+ // Section 1 options
461
+ if ( ! isset( $input['button_type'] ) || ! in_array(
462
+ $input['button_type'], array(
463
+ 'buttons/printfriendly-pdf-email-button.png',
464
+ 'buttons/printfriendly-pdf-email-button-md.png',
465
+ 'buttons/printfriendly-pdf-email-button-notext.png', // buttongroup1
466
+ 'buttons/printfriendly-pdf-button.png',
467
+ 'buttons/printfriendly-pdf-button-nobg.png',
468
+ 'buttons/printfriendly-pdf-button-nobg-md.png', // buttongroup2
469
+ 'buttons/printfriendly-button.png',
470
+ 'buttons/printfriendly-button-nobg.png',
471
+ 'buttons/printfriendly-button-md.png',
472
+ 'buttons/printfriendly-button-lg.png', // buttongroup3
473
+ 'buttons/print-button.png',
474
+ 'buttons/print-button-nobg.png',
475
+ 'buttons/print-button-gray.png', // buttongroup3
476
+ 'custom-button', // custom
477
+ ), true
478
+ ) ) {
479
+ $valid_input['button_type'] = 'printfriendly-pdf-button.png';
480
+ }
481
+
482
+ if ( ! isset( $input['custom_button_icon'] ) || ! in_array(
483
+ $input['custom_button_icon'], array(
484
+ 'https://cdn.printfriendly.com/icons/printfriendly-icon-sm.png',
485
+ 'https://cdn.printfriendly.com/icons/printfriendly-icon-md.png',
486
+ 'https://cdn.printfriendly.com/icons/printfriendly-icon-lg.png',
487
+ 'custom-image',
488
+ 'no-image',
489
+ ), true
490
+ ) ) {
491
+ $valid_input['custom_button_icon'] = 'https://cdn.printfriendly.com/icons/printfriendly-icon-md.png';
492
+ }
493
+
494
+ // if a custom image is not being chosen, reset it in case it existed in the past.
495
+ if ( isset( $valid_input['custom_button_icon'] ) && $valid_input['custom_button_icon'] !== 'custom-image' ) {
496
+ $valid_input['custom_image'] = '';
497
+ }
498
+
499
+ // @todo custom image url validation
500
+ if ( ! isset( $input['custom_image'] ) || empty( $input['custom_image'] ) ) {
501
+ $valid_input['custom_image'] = '';
502
+ }
503
+
504
+ if ( ! isset( $input['custom_button_text'] ) ) {
505
+ $valid_input['custom_button_text'] = 'custom-text';
506
+ }
507
+
508
+ // @todo validate optional custom text
509
+ if ( ! isset( $input['custom_text'] ) ) {
510
+ $valid_input['custom_text'] = 'Print Friendly';
511
+ }
512
+
513
+ // Custom button selected, but no url nor text given, reset button type to default
514
+ if ( 'custom-button' === $valid_input['button_type'] && ( '' === $valid_input['custom_image'] && '' === $input['custom_text'] ) ) {
515
+ $valid_input['button_type'] = 'buttons/printfriendly-pdf-button.png';
516
+ add_settings_error( $this->option_name, 'invalid_custom_image', __( 'No valid custom image url received, please enter a valid url to use a custom image.', 'printfriendly' ) );
517
+ }
518
+
519
+ $valid_input['text_size'] = (int) $input['text_size'];
520
+ if ( ! isset( $valid_input['text_size'] ) || 0 === $valid_input['text_size'] ) {
521
+ $valid_input['text_size'] = 14;
522
+ } elseif ( 25 < $valid_input['text_size'] || 9 > $valid_input['text_size'] ) {
523
+ $valid_input['text_size'] = 14;
524
+ add_settings_error( $this->option_name, 'invalid_text_size', __( 'The text size you entered is invalid, please stay between 9px and 25px', 'printfriendly' ) );
525
+ }
526
+
527
+ if ( ! isset( $input['text_color'] ) ) {
528
+ $valid_input['text_color'] = $this->options['text_color'];
529
+ } elseif ( ! preg_match( '/^#[a-f0-9]{3,6}$/i', $input['text_color'] ) ) {
530
+ // Revert to previous setting and throw error.
531
+ $valid_input['text_color'] = $this->options['text_color'];
532
+ add_settings_error( $this->option_name, 'invalid_color', __( 'The color you entered is not valid, it must be a valid hexadecimal RGB font color.', 'printfriendly' ) );
533
+ }
534
+
535
+ /* Section 2 options */
536
+ if ( ! isset( $input['enable_css'] ) || 'off' !== $input['enable_css'] ) {
537
+ $valid_input['enable_css'] = 'on';
538
+ }
539
+
540
+ if ( ! isset( $input['content_position'] ) || ! in_array( $input['content_position'], array('none', 'left', 'center', 'right'), true ) ) {
541
+ $valid_input['content_position'] = 'left';
542
+ }
543
+
544
+ if ( ! isset( $input['content_placement'] ) || ! in_array( $input['content_placement'], array('before', 'after'), true ) ) {
545
+ $valid_input['content_placement'] = 'after';
546
+ }
547
+
548
+ foreach ( array('margin_top', 'margin_right', 'margin_bottom', 'margin_left') as $opt ) {
549
+ $valid_input[ $opt ] = (int) $input[ $opt ];
550
+ }
551
+
552
+ unset( $opt );
553
+
554
+ /* Section 3 options */
555
+ foreach ( array('show_on_posts', 'show_on_pages', 'show_on_homepage', 'show_on_categories', 'show_on_taxonomies') as $opt ) {
556
+ if ( ! isset( $input[ $opt ] ) || 'on' !== $input[ $opt ] ) {
557
+ unset( $valid_input[ $opt ] );
558
+ }
559
+ }
560
+ unset( $opt );
561
+
562
+ // Just in case
563
+ if ( isset( $input['show_on_template'] ) ) {
564
+ unset( $valid_input['show_on_template'] );
565
+ }
566
+
567
+ if ( isset( $input['category_ids'] ) ) {
568
+ unset( $valid_input['category_ids'] );
569
+ }
570
+
571
+ /* Section 4 options */
572
+ if ( ! isset( $input['logo'] ) || ! in_array( $input['logo'], array('favicon', 'upload-an-image'), true ) ) {
573
+ $valid_input['logo'] = 'favicon';
574
+ }
575
+
576
+ // @todo custom logo url validation
577
+ if ( ! isset( $input['image_url'] ) || empty( $input['image_url'] ) ) {
578
+ $valid_input['image_url'] = '';
579
+ }
580
+
581
+ // @todo validate optional tagline text
582
+ if ( ! isset( $input['tagline'] ) ) {
583
+ $valid_input['tagline'] = '';
584
+ }
585
+
586
+ // Custom logo selected, but no valid url given, reset logo to default
587
+ if ( 'upload-an-image' === $valid_input['logo'] && '' === $valid_input['image_url'] ) {
588
+ $valid_input['logo'] = 'favicon';
589
+ add_settings_error( $this->option_name, 'invalid_custom_logo', __( 'No valid custom logo url received, please enter a valid url to use a custom logo.', 'printfriendly' ) );
590
+ }
591
+
592
+ if ( ! isset( $input['image-style'] ) || ! in_array( $input['image-style'], array('right', 'left', 'none', 'block'), true ) ) {
593
+ $valid_input['image-style'] = 'right';
594
+ }
595
+
596
+ foreach ( array('click_to_delete', 'email', 'pdf', 'print') as $opt ) {
597
+ // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict
598
+ if ( ! isset( $input[ $opt ] ) || ! in_array( $input[ $opt ], array('0', '1') ) ) {
599
+ $valid_input[ $opt ] = '0';
600
+ }
601
+ }
602
+ unset( $opt );
603
+
604
+ if ( ! isset( $input['images-size'] ) || ! in_array( $input['images-size'], array('full-size', 'remove-images', 'large', 'medium', 'small'), true ) ) {
605
+ $valid_input['images-size'] = 'full-size';
606
+ }
607
+
608
+ if ( $this->is_pro( 'custom-css' ) ) {
609
+ // a file will be generated even if nothing is provided in the css box.
610
+ $css = $input['custom_css'];
611
+
612
+ // remove the <style> </style> tags.
613
+ $css = str_replace( array( '<style>', '</style>' ), '', $css );
614
+ $valid_input['custom_css'] = sanitize_textarea_field( $css );
615
+ $file = $this->maybe_generate_custom_css_file( $valid_input['custom_css'] );
616
+ if ( ! $file ) {
617
+ $file = $this->options['custom_css_url_pro'];
618
+ }
619
+ $valid_input['custom_css_url_pro'] = $file;
620
+
621
+ // if no file can be generated
622
+ // check if this version is upgraded from the version that was using url instead of textbox
623
+ // and reuse it
624
+ if ( ! $file && isset( $this->options['custom_css_url'] ) ) {
625
+ $valid_input['custom_css_url'] = $this->options['custom_css_url'];
626
+ }
627
+ }
628
+
629
+ /* Section 5 options */
630
+ if ( ! isset( $input['password_protected'] ) || ! in_array( $input['password_protected'], array('no', 'yes'), true ) ) {
631
+ $valid_input['password_protected'] = 'no';
632
+ }
633
+
634
+ /*Analytics Options */
635
+ if ( ! isset( $input['enable_google_analytics'] ) || ! in_array( $input['enable_google_analytics'], array('no', 'yes'), true ) ) {
636
+ $valid_input['enable_google_analytics'] = 'no';
637
+ }
638
+
639
+ if ( ! isset( $input['pf_algo'] ) || ! in_array( $input['pf_algo'], array('wp', 'pf'), true ) ) {
640
+ $valid_input['pf_algo'] = 'wp';
641
+ }
642
+
643
+ /* Database version */
644
+ $valid_input['db_version'] = $this->db_version;
645
+
646
+ return $valid_input;
647
+ }
648
+
649
+ /**
650
+ * Register the config page for all users that have the manage_options capability
651
+ *
652
+ * @since 3.0
653
+ */
654
+ function add_config_page() {
655
+ $this->settings_page = add_options_page( __( 'PrintFriendly Options', 'printfriendly' ), __( 'Print Friendly & PDF', 'printfriendly' ), 'manage_options', $this->hook, array(&$this, 'config_page') );
656
+
657
+ // register callback gets call prior your own page gets rendered
658
+ add_action( 'load-' . $this->settings_page, array(&$this, 'on_load_printfriendly') );
659
+ }
660
+
661
+ /**
662
+ * Enqueue the scripts for the admin settings page
663
+ *
664
+ * @since 3.0
665
+ * @param string $screen_id check whether the current page is the PrintFriendly settings page.
666
+ */
667
+ function admin_enqueue_scripts( $screen_id ) {
668
+ if ( $this->settings_page === $screen_id ) {
669
+ if ( ! did_action( 'wp_enqueue_media' ) ) {
670
+ wp_enqueue_media();
671
+ }
672
+
673
+ if ( ! wp_script_is( 'clipboard' ) ) {
674
+ wp_enqueue_script( 'clipboard', plugins_url( 'assets/js/lib/clipboard.min.js', __FILE__ ) );
675
+ }
676
+
677
+ if ( ! wp_script_is( 'select2' ) ) {
678
+ wp_enqueue_script( 'select2', plugins_url( 'assets/js/lib/select2.min.js', __FILE__ ) );
679
+ }
680
+
681
+ wp_register_script( 'pf-admin', plugins_url( 'assets/js/admin.js', __FILE__ ), array( 'jquery', 'jquery-ui-tabs', 'media-upload', 'wp-color-picker', 'clipboard', 'select2' ), $this->plugin_version );
682
+ wp_localize_script(
683
+ 'pf-admin', 'config', array(
684
+ 'i10n' => array(
685
+ 'upload_window_title' => __( 'Custom Image', 'printfriendly' ),
686
+ 'upload_window_button_title' => __( 'Use Image', 'printfriendly' ),
687
+ 'invalid_image_url' => __( 'Invalid Image URL', 'printfriendly' ),
688
+ ),
689
+ )
690
+ );
691
+
692
+ wp_register_script( 'pf-admin-pro', plugins_url( 'assets/js/admin_pro.js', __FILE__ ), array( 'pf-admin' ), $this->plugin_version );
693
+
694
+ wp_localize_script(
695
+ 'pf-admin-pro', 'config', array(
696
+ 'nonce' => wp_create_nonce( $this->hook . $this->plugin_version ),
697
+ 'action' => $this->hook,
698
+ 'i10n' => array(
699
+ 'activation' => __( 'Activation', 'printfriendly' ),
700
+ 'check_status' => __( 'Checking status', 'printfriendly' ),
701
+ 'activate' => __( 'Activate', 'printfriendly' ),
702
+ 'active_trial' => __( 'Active Trial', 'printfriendly' ),
703
+ 'active' => __( 'Active', 'printfriendly' ),
704
+ 'expired' => __( 'Expired', 'printfriendly' ),
705
+ 'connection' => __( 'Please check Internet connection.', 'printfriendly' ),
706
+ ),
707
+ )
708
+ );
709
+ wp_enqueue_script( 'pf-admin-pro' );
710
+
711
+ wp_enqueue_style( 'pf-bulma', plugins_url( 'assets/css/lib/bulma.prefixed.min.css', __FILE__ ), array( 'wp-color-picker' ), $this->plugin_version );
712
+ wp_enqueue_style( 'pf-select2', plugins_url( 'assets/css/lib/select2.min.css', __FILE__ ), array(), $this->plugin_version );
713
+ wp_enqueue_style( 'pf-admin', plugins_url( 'assets/css/admin.css', __FILE__ ), array( 'pf-select2', 'pf-bulma' ), $this->plugin_version );
714
+ }
715
+ }
716
+
717
+ /**
718
+ * Register the settings link for the plugins page
719
+ *
720
+ * @since 3.0
721
+ * @param array $links the links for the plugins.
722
+ * @param string $file filename to check against plugins filename.
723
+ * @return array $links the links with the settings link added to it if appropriate.
724
+ */
725
+ function filter_plugin_actions( $links, $file ) {
726
+ // Static so we don't call plugin_basename on every plugin row.
727
+ static $this_plugin;
728
+ if ( ! $this_plugin ) {
729
+ $this_plugin = plugin_basename( __FILE__ );
730
+ }
731
+
732
+ if ( $file === $this_plugin ) {
733
+ $settings_link = '<a href="options-general.php?page=' . $this->hook . '">' . __( 'Settings', 'printfriendly' ) . '</a>';
734
+ array_unshift( $links, $settings_link ); // before other links
735
+ }
736
+
737
+ return $links;
738
+ }
739
+
740
+ /**
741
+ * Register the additional link for the plugins page in the plugin description column.
742
+ *
743
+ * @since ?
744
+ * @param array $links the links for the plugins.
745
+ * @param string $file filename to check against plugins filename.
746
+ * @return array $links the links with the links added to it if appropriate.
747
+ */
748
+ function additional_links( $links, $file ) {
749
+ // Static so we don't call plugin_basename on every plugin row.
750
+ static $this_plugin;
751
+ if ( ! $this_plugin ) {
752
+ $this_plugin = plugin_basename( __FILE__ );
753
+ }
754
+
755
+ if ( $file === $this_plugin ) {
756
+ $new_links = array( '<a href="https://printfriendly.freshdesk.com/support/solutions/folders/69000070847" target="_new">' . __( 'Documentation', 'printfriendly' ) . '</a>' );
757
+ $links = array_merge( $links, $new_links );
758
+ }
759
+ return $links;
760
+ }
761
+
762
+ /**
763
+ * Set default values for the plugin. If old, as in pre 1.0, settings are there, use them and then delete them.
764
+ *
765
+ * @since 3.0
766
+ */
767
+ function set_defaults() {
768
+ // Set some defaults
769
+ $this->options = array(
770
+ 'button_type' => 'buttons/printfriendly-pdf-button.png',
771
+ 'content_position' => 'left',
772
+ 'content_placement' => 'after',
773
+ 'custom_button_icon' => 'https://cdn.printfriendly.com/icons/printfriendly-icon-md.png',
774
+ 'custom_button_text' => 'custom-text',
775
+ 'custom_image' => '',
776
+ 'custom_text' => 'PrintFriendly',
777
+ 'enable_css' => 'on',
778
+ 'margin_top' => '12',
779
+ 'margin_right' => '12',
780
+ 'margin_bottom' => '12',
781
+ 'margin_left' => '12',
782
+ 'show_on_posts' => 'on',
783
+ 'show_on_pages' => 'on',
784
+ 'text_color' => '#3AAA11',
785
+ 'text_size' => 14,
786
+ 'logo' => 'favicon',
787
+ 'image_url' => '',
788
+ 'tagline' => '',
789
+ 'click_to_delete' => '0', // 0 - allow, 1 - do not allow
790
+ 'hide-images' => '0', // 0 - show images, 1 - hide images
791
+ 'image-style' => 'right', // 'right', 'left', 'none', 'block'
792
+ 'email' => '0', // 0 - allow, 1 - do not allow
793
+ 'pdf' => '0', // 0 - allow, 1 - do not allow
794
+ 'print' => '0', // 0 - allow, 1 - do not allow
795
+ 'password_protected' => 'no',
796
+ 'enable_google_analytics' => 'no',
797
+ 'enable_error_reporting' => 'yes',
798
+ 'pf_algo' => 'wp',
799
+ 'images-size' => 'full-size',
800
+ );
801
+
802
+ // Check whether the old badly named singular options are there, if so, use the data and delete them.
803
+ foreach ( array_keys( $this->options ) as $opt ) {
804
+ $old_opt = get_option( 'pf_' . $opt );
805
+ if ( $old_opt !== false ) {
806
+ $this->options[ $opt ] = $old_opt;
807
+ delete_option( 'pf_' . $opt );
808
+ }
809
+ }
810
+
811
+ // This should always be set to the latest immediately when defaults are pushed in.
812
+ $this->options['db_version'] = $this->db_version;
813
+
814
+ update_option( $this->option_name, $this->options );
815
+ }
816
+
817
+ /**
818
+ * Upgrades the stored options, used to add new defaults if needed etc.
819
+ *
820
+ * @since 3.0
821
+ */
822
+ function upgrade() {
823
+ // update options to version 2
824
+ if ( $this->options['db_version'] < 2 ) {
825
+
826
+ $additional_options = array(
827
+ 'enable_css' => 'on',
828
+ 'logo' => 'favicon',
829
+ 'image_url' => '',
830
+ 'tagline' => '',
831
+ 'click_to_delete' => '0',
832
+ 'password_protected' => 'no',
833
+ );
834
+
835
+ // correcting badly named option
836
+ if ( isset( $this->options['disable_css'] ) ) {
837
+ $additional_options['enable_css'] = $this->options['disable_css'];
838
+ unset( $this->options['disable_css'] );
839
+ }
840
+
841
+ // check whether image we do not list any more was used
842
+ if ( in_array( $this->options['button_type'], array('button-print-whgn20.png', 'pf_button_sq_qry_m.png', 'pf_button_sq_qry_l.png', 'pf_button_sq_grn_m.png', 'pf_button_sq_grn_l.png'), true ) ) {
843
+ // previous version had a bug with button name
844
+ if ( in_array( $this->options['button_type'], array('pf_button_sq_qry_m.png', 'pf_button_sq_qry_l.png'), true ) ) {
845
+ $this->options['button_type'] = str_replace( 'qry', 'gry', $this->options['button_type'] );
846
+ }
847
+
848
+ $image_address = 'https://cdn.printfriendly.com/' . $this->options['button_type'];
849
+ $this->options['button_type'] = 'custom-image';
850
+ $this->options['custom_text'] = '';
851
+ $this->options['custom_image'] = $image_address;
852
+ }
853
+
854
+ $this->options = array_merge( $this->options, $additional_options );
855
+ }
856
+
857
+ // update options to version 3
858
+ if ( $this->options['db_version'] < 3 ) {
859
+
860
+ $old_show_on = $this->options['show_list'];
861
+ // 'manual' setting
862
+ $additional_options = array('custom_css_url' => '');
863
+
864
+ if ( $old_show_on === 'all' ) {
865
+ $additional_options = array(
866
+ 'show_on_pages' => 'on',
867
+ 'show_on_posts' => 'on',
868
+ 'show_on_homepage' => 'on',
869
+ 'show_on_categories' => 'on',
870
+ 'show_on_taxonomies' => 'on',
871
+ );
872
+ }
873
+
874
+ if ( $old_show_on === 'single' ) {
875
+ $additional_options = array(
876
+ 'show_on_pages' => 'on',
877
+ 'show_on_posts' => 'on',
878
+ );
879
+ }
880
+
881
+ if ( $old_show_on === 'posts' ) {
882
+ $additional_options = array(
883
+ 'show_on_posts' => 'on',
884
+ );
885
+ }
886
+
887
+ unset( $this->options['show_list'] );
888
+
889
+ $this->options = array_merge( $this->options, $additional_options );
890
+ }
891
+
892
+ // update options to version 4
893
+ if ( $this->options['db_version'] < 4 ) {
894
+
895
+ $additional_options = array(
896
+ 'email' => '0',
897
+ 'pdf' => '0',
898
+ 'print' => '0',
899
+ );
900
+
901
+ $this->options = array_merge( $this->options, $additional_options );
902
+ }
903
+
904
+ // update options to version 6
905
+ // Replacement for db version 5 - should also be run for those already upgraded
906
+ if ( $this->options['db_version'] < 6 ) {
907
+ unset( $this->options['category_ids'] );
908
+ }
909
+
910
+ if ( $this->options['db_version'] < 7 ) {
911
+ $additional_options = array(
912
+ 'hide-images' => '0',
913
+ 'image-style' => 'right',
914
+ );
915
+
916
+ $this->options = array_merge( $this->options, $additional_options );
917
+ }
918
+
919
+ if ( $this->options['db_version'] < 8 ) {
920
+ $this->options['enable_google_analytics'] = 'no';
921
+ }
922
+
923
+ if ( $this->options['db_version'] < 9 ) {
924
+ $this->options['pf_algo'] = 'wp';
925
+ }
926
+
927
+ if ( $this->options['db_version'] < 10 ) {
928
+ $this->options['enable_error_reporting'] = 'yes';
929
+ }
930
+
931
+ if ( $this->options['db_version'] < 11 ) {
932
+ if ( ! isset( $this->options['custom_css_url'] ) ) {
933
+ $this->options['custom_css_url'] = '';
934
+ }
935
+ }
936
+
937
+ if ( $this->options['db_version'] < 12 ) {
938
+ // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
939
+ $this->options['images-size'] = $this->options['hide-images'] == '1' ? 'remove-images' : 'full-size';
940
+ }
941
+
942
+ if ( $this->options['db_version'] < 13 ) {
943
+ switch ( $this->options['button_type'] ) {
944
+ case 'pf-button.gif':
945
+ $this->options['button_type'] = 'buttons/printfriendly-button.png';
946
+ break;
947
+ case 'pf-button-both.gif':
948
+ $this->options['button_type'] = 'buttons/printfriendly-pdf-button.png';
949
+ break;
950
+ case 'pf-button-big.gif':
951
+ $this->options['button_type'] = 'buttons/printfriendly-button-lg.png';
952
+ break;
953
+ case 'pf-button-print-pdf-mail.png':
954
+ $this->options['button_type'] = 'buttons/printfriendly-pdf-email-button-notext.png';
955
+ break;
956
+ case 'button-print-grnw20.png':
957
+ $this->options['button_type'] = 'buttons/print-button.png';
958
+ break;
959
+ case 'button-print-blu20.png':
960
+ $this->options['button_type'] = 'buttons/print-button-nobg.png';
961
+ break;
962
+ case 'button-print-gry20.png':
963
+ $this->options['button_type'] = 'buttons/print-button-gray.png';
964
+ break;
965
+ case 'pf-icon-small.gif':
966
+ case 'pf-icon.gif':
967
+ $this->options['button_type'] = 'custom-button';
968
+ $this->options['custom_button_icon'] = 'icons/printfriendly-icon-md.png';
969
+ $this->options['custom_button_text'] = 'custom-text';
970
+ $this->options['custom_image'] = 'icons/printfriendly-icon-md.png';
971
+ break;
972
+ case 'text-only':
973
+ $this->options['button_type'] = 'custom-button';
974
+ $this->options['custom_button_icon'] = 'no-image';
975
+ $this->options['custom_button_text'] = 'custom-text';
976
+ break;
977
+ }
978
+ }
979
+
980
+ if ( $this->options['db_version'] < 14 ) {
981
+ if ( $this->options['button_type'] === 'pf-icon-both.gif' ) {
982
+ $this->options['button_type'] = 'buttons/printfriendly-pdf-button-nobg.png';
983
+ }
984
+ }
985
+
986
+ if ( $this->options['db_version'] < 15 ) {
987
+ if ( $this->options['button_type'] === 'custom-image' ) {
988
+ $this->options['button_type'] = 'custom-button';
989
+
990
+ switch ( $this->options['custom_image'] ) {
991
+ case 'icons/printfriendly-icon-sm.png':
992
+ case 'icons/printfriendly-icon-md.png':
993
+ case 'icons/printfriendly-icon-lg.png':
994
+ $this->options['custom_button_icon'] = $this->options['custom_image'];
995
+ break;
996
+ case '':
997
+ $this->options['custom_button_icon'] = 'no-image';
998
+ break;
999
+ default:
1000
+ $this->options['custom_button_icon'] = 'custom-image';
1001
+ }
1002
+
1003
+ if ( $this->options['custom_text'] === '' ) {
1004
+ $this->options['custom_button_text'] = 'no-text';
1005
+ } else {
1006
+ $this->options['custom_button_text'] = 'custom-text';
1007
+ }
1008
+ }
1009
+ }
1010
+
1011
+ if ( $this->options['db_version'] < 16 ) {
1012
+ if ( $this->options['custom_button_icon'] === 'icons/printfriendly-icon-md.png' ) {
1013
+ $this->options['custom_button_icon'] = 'https://cdn.printfriendly.com/icons/printfriendly-icon-md.png';
1014
+ }
1015
+ }
1016
+
1017
+ if ( $this->options['db_version'] < 17 ) {
1018
+ $this->options['pro_email'] = get_bloginfo( 'admin_email' );
1019
+
1020
+ $url = get_bloginfo( 'url' );
1021
+ $parsed_url = parse_url( $url );
1022
+ $this->options['pro_domain'] = $parsed_url['host'];
1023
+ }
1024
+
1025
+ $this->options['db_version'] = $this->db_version;
1026
+
1027
+ update_option( $this->option_name, $this->options );
1028
+ }
1029
+
1030
+ /**
1031
+ * Displays radio button in the admin area
1032
+ *
1033
+ * @since 3.0
1034
+ * @param string $name the name of the radio button to generate.
1035
+ * @param boolean $br whether or not to add an HTML <br> tag, defaults to true.
1036
+ * @param boolean $value if this is null, will have the same value as $name.
1037
+ */
1038
+ function radio( $name, $br = false, $value = null ) {
1039
+ if ( is_null( $value ) ) {
1040
+ $value = $name;
1041
+ }
1042
+
1043
+ $var = '<input id="' . $name . '" class="radio" name="' . $this->option_name . '[button_type]" type="radio" value="' . $value . '" ' . $this->checked( 'button_type', $value, false ) . '/>';
1044
+ $button = $this->button( $name );
1045
+ if ( ! empty( $button ) ) {
1046
+ echo '<label for="' . $name . '">' . $var . $button . '</label>';
1047
+ } else {
1048
+ echo $var;
1049
+ }
1050
+
1051
+ if ( $br ) {
1052
+ echo '<br>';
1053
+ }
1054
+ }
1055
+
1056
+ /**
1057
+ * Displays radio button in the admin area
1058
+ *
1059
+ * @since 3.12.0
1060
+ * @param string $value the value of the radio button to generate.
1061
+ */
1062
+ function radio_custom_image( $value ) {
1063
+ ?>
1064
+ <label class="radio-custom-btn">
1065
+ <input type="radio" name="<?php echo $this->option_name; ?>[custom_button_icon]" value="<?php echo $value; ?>" <?php $this->checked( 'custom_button_icon', $value ); ?>>
1066
+ <img src="<?php echo $value; ?>" alt="Print Friendly, PDF & Email" style="display: inline; vertical-align: text-bottom; margin-right: 6px;" />
1067
+ </label>
1068
+ <?php
1069
+ }
1070
+
1071
+ /**
1072
+ * Displays button image in the admin area
1073
+ *
1074
+ * @since 3.0
1075
+ * @param string $name the name of the button to generate.
1076
+ */
1077
+ function button( $name = false ) {
1078
+ if ( ! $name ) {
1079
+ $name = $this->options['button_type'];
1080
+ }
1081
+
1082
+ $button_css = 'border:none;-webkit-box-shadow:none; -moz-box-shadow: none; box-shadow:none; padding:0; margin:0';
1083
+
1084
+ $img_path = 'https://cdn.printfriendly.com/';
1085
+
1086
+ $return = '';
1087
+
1088
+ if ( $name === 'custom-button' ) {
1089
+ if ( $this->options['custom_button_icon'] === 'custom-image' && '' !== trim( $this->options['custom_image'] ) ) {
1090
+ $return = '<img src="' . esc_url( $this->options['custom_image'] ) . '" alt="Print Friendly, PDF & Email" style="display: inline; vertical-align:text-bottom; margin:0; padding:0; border:none; -webkit-box-shadow:none; -moz-box-shadow:none; box-shadow: none;" />';
1091
+ } elseif ( $this->options['custom_button_icon'] !== 'no-image' ) {
1092
+ $return = '<img src="' . esc_url( $this->options['custom_button_icon'] ) . '" alt="Print Friendly, PDF & Email" style="display:inline; vertical-align:text-bottom; margin: 0 6px 0 0; padding:0; border:none; -webkit-box-shadow:none; -moz-box-shadow:none; box-shadow:none;" />';
1093
+ }
1094
+
1095
+ /* esc_html was removerd to support custom html, CSRF prevents from attack by using this field */
1096
+ if ( $this->options['custom_button_text'] === 'custom-text' ) {
1097
+ $return .= $this->options['custom_text'];
1098
+ }
1099
+
1100
+ return $return;
1101
+ } elseif ( $name === 'custom-btn' ) {
1102
+ return __( 'Custom Button', 'printfriendly' );
1103
+ } else {
1104
+ return '<img style="' . $button_css . '" src="' . $img_path . $name . '" alt="Print Friendly, PDF & Email" />';
1105
+ }
1106
+ }
1107
+
1108
+ /**
1109
+ * Convenience function to output a value custom button preview elements
1110
+ *
1111
+ * @since 3.0.9
1112
+ */
1113
+ function custom_button_preview() {
1114
+ $img = $url = $button_text = $style = '';
1115
+ switch ( $this->options['custom_button_icon'] ) {
1116
+ case 'no-image':
1117
+ break;
1118
+ case 'custom-image':
1119
+ $url = $this->options['custom_image'];
1120
+ break;
1121
+ default:
1122
+ $url = $this->options['custom_button_icon'];
1123
+ break;
1124
+ }
1125
+
1126
+ if ( ! empty( $url ) ) {
1127
+ $img = sprintf( '<img src="%s" alt="Print Friendly, PDF & Email">', esc_url( $url ) );
1128
+ }
1129
+
1130
+ if ( $this->options['custom_button_text'] !== 'no-text' ) {
1131
+ $button_text = $this->options['custom_text'];
1132
+ }
1133
+
1134
+ if ( '' !== $this->options['text_color'] ) {
1135
+ $style = 'color: ' . $this->options['text_color'] . ';';
1136
+ }
1137
+
1138
+ $button_preview = sprintf( '<span><span id="pf-custom-button-preview" style="display:inline; vertical-align:text-bottom; margin: 0 6px 0 0; padding:0; border:none; -webkit-box-shadow:none; -moz-box-shadow:none; box-shadow:none;">%s</span><span id="printfriendly-text2" style="%s">%s</span></span>', $img, $style, esc_html( $button_text ) );
1139
+
1140
+ echo $button_preview;
1141
+ }
1142
+
1143
+ /**
1144
+ * Convenience function to output a value for an input
1145
+ *
1146
+ * @since 3.0
1147
+ * @param string $val value to check.
1148
+ */
1149
+ function val( $val, $echo = true ) {
1150
+ $value = '';
1151
+ if ( isset( $this->options[ $val ] ) ) {
1152
+ $value = esc_attr( $this->options[ $val ] );
1153
+ }
1154
+
1155
+ if ( $echo ) {
1156
+ echo $value;
1157
+ }
1158
+ return $value;
1159
+ }
1160
+
1161
+
1162
+ /**
1163
+ * Like the WordPress checked() function but it doesn't throw notices when the array key isn't set and uses the plugins options array.
1164
+ *
1165
+ * @since 3.0
1166
+ * @param mixed $val value to check.
1167
+ * @param mixed $check_against value to check against.
1168
+ * @param boolean $echo whether or not to echo the output.
1169
+ * @return string checked, when true, empty, when false.
1170
+ */
1171
+ function checked( $val, $check_against = true, $echo = true ) {
1172
+ if ( ! isset( $this->options[ $val ] ) ) {
1173
+ return;
1174
+ }
1175
+
1176
+ // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
1177
+ if ( $this->options[ $val ] == $check_against ) {
1178
+ if ( $echo ) {
1179
+ echo ' checked="checked" ';
1180
+ } else {
1181
+ return ' checked="checked" ';
1182
+ }
1183
+ }
1184
+ }
1185
+
1186
+ /**
1187
+ * Helper for creating checkboxes.
1188
+ *
1189
+ * @since 3.1.5
1190
+ * @param string $name string used for various parts of checkbox.
1191
+ */
1192
+ function create_checkbox( $name, $label = '', $labelid = '' ) {
1193
+ // phpcs:ignore WordPress.WP.I18n.NonSingularStringLiteralText
1194
+ $label = ( ! empty( $label ) ? $label : __( ucfirst( $name ), 'printfriendly' ) );
1195
+ echo '<label' . ( ! empty( $labelid ) ? ' id=' . $labelid : '' ) . '><input type="checkbox" class="show_list" name="' . $this->option_name . '[show_on_' . $name . ']" value="on" ';
1196
+ $this->checked( 'show_on_' . $name, 'on' );
1197
+ echo ' />' . $label . "</label>\r\n";
1198
+ }
1199
+
1200
+
1201
+ /**
1202
+ * Helper that checks if any of the content types is checked to display pf button.
1203
+ *
1204
+ * @since 3.1.5
1205
+ * @return boolean true if none of the content types is checked
1206
+ */
1207
+ function is_manual() {
1208
+ return ! ( isset( $this->options['show_on_posts'] ) ||
1209
+ isset( $this->options['show_on_pages'] ) ||
1210
+ isset( $this->options['show_on_homepage'] ) ||
1211
+ isset( $this->options['show_on_categories'] ) ||
1212
+ // (isset($this->options['category_ids']) && count($this->options['category_ids']) > 0) ||
1213
+ isset( $this->options['show_on_taxonomies'] ) );
1214
+ }
1215
+
1216
+
1217
+ /**
1218
+ * Like the WordPress selected() function but it doesn't throw notices when the array key isn't set and uses the plugins options array.
1219
+ *
1220
+ * @since 3.0.9
1221
+ * @param mixed $val value to check.
1222
+ * @param mixed $check_against value to check against.
1223
+ * @return string checked, when true, empty, when false.
1224
+ */
1225
+ function selected( $val, $check_against = true ) {
1226
+ if ( ! isset( $this->options[ $val ] ) ) {
1227
+ return;
1228
+ }
1229
+
1230
+ return selected( $this->options[ $val ], $check_against );
1231
+ }
1232
+
1233
+ /**
1234
+ * For use with page metabox.
1235
+ *
1236
+ * @since 3.2.2
1237
+ */
1238
+ function get_page_post_type() {
1239
+ $post_types = get_post_types( array('name' => 'page'), 'object' );
1240
+ // echo '<pre>'.print_r($post_types,1).'</pre>';
1241
+ // die;
1242
+
1243
+ return $post_types['page'];
1244
+ }
1245
+
1246
+
1247
+ /**
1248
+ * Helper that checks if wp versions is above 3.0.
1249
+ *
1250
+ * @since 3.2.2
1251
+ * @return boolean true wp version is above 3.0
1252
+ */
1253
+ function wp_version_gt30() {
1254
+ global $wp_version;
1255
+ return version_compare( $wp_version, '3.0', '>=' );
1256
+ }
1257
+
1258
+
1259
+ /**
1260
+ * Create box for picking individual categories.
1261
+ *
1262
+ * @since 3.2.2
1263
+ */
1264
+ function create_category_metabox() {
1265
+ $obj = new stdClass();
1266
+ $obj->ID = 0;
1267
+ do_meta_boxes( 'settings_page_' . $this->hook, 'normal', $obj );
1268
+ }
1269
+
1270
+
1271
+ /**
1272
+ * Load metaboxes advanced button display settings.
1273
+ *
1274
+ * @since 3.2.2
1275
+ */
1276
+ function on_load_printfriendly() {
1277
+ global $wp_version;
1278
+ if ( $this->wp_version_gt30() ) {
1279
+ // require_once(dirname(__FILE__).'/includes/meta-boxes.php');
1280
+ // require_once(dirname(__FILE__).''includes/nav-menu.php');
1281
+ wp_enqueue_script( 'post' );
1282
+
1283
+ add_meta_box( 'categorydiv', __( 'Only display when post is in:', 'printfriendly' ), 'post_categories_meta_box', 'settings_page_' . $this->hook, 'normal', 'core' );
1284
+ }
1285
+ }
1286
+
1287
+ /**
1288
+ * Returns if the user is a pro user.
1289
+ */
1290
+ function is_pro( $feature = null ) {
1291
+ $licensed = $this->val( 'license_status', false ) === 'pro';
1292
+
1293
+ switch ( $feature ) {
1294
+ case 'custom-css':
1295
+ // custom css needs to be available for all irrespective of the license.
1296
+ return true;
1297
+ }
1298
+
1299
+ return $licensed;
1300
+ }
1301
+
1302
+ /**
1303
+ * Returns the custom css url.
1304
+ */
1305
+ function get_custom_css() {
1306
+ $css_url = $this->options['custom_css_url'];
1307
+ if ( ! $this->is_pro( 'custom-css' ) ) {
1308
+ return $css_url;
1309
+ }
1310
+
1311
+ // upgrading from a version that was using urls instead of the textarea?
1312
+ if ( ! empty( $css_url ) ) {
1313
+ return $css_url;
1314
+ }
1315
+
1316
+ $dirs = wp_get_upload_dir();
1317
+
1318
+ return $dirs['baseurl'] . '/' . $this->options['custom_css_url_pro'];
1319
+ }
1320
+
1321
+ /**
1322
+ * Generates the custom css file from the CSS block.
1323
+ */
1324
+ function maybe_generate_custom_css_file( $css ) {
1325
+ $custom_css_old = html_entity_decode( $this->val( 'custom_css', false ) );
1326
+
1327
+ // generate a new file if the CSS has changed.
1328
+ if ( $custom_css_old === $css ) {
1329
+ return false;
1330
+ }
1331
+
1332
+ $dirs = wp_get_upload_dir();
1333
+
1334
+ // delete old file, if it exists
1335
+ $file = $this->options['custom_css_url_pro'];
1336
+ if ( ! empty( $file ) ) {
1337
+ wp_delete_file( $dirs['basedir'] . '/' . $this->options['custom_css_url_pro'] );
1338
+ }
1339
+
1340
+ // add a comment so that users know whence this file came.
1341
+ $date = date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ) );
1342
+ $comment = sprintf( '/* DO NOT EDIT - FILE AUTO-GENERATED BY PRINTFRIENDLY v%s ON %s */', $this->plugin_version, $date );
1343
+ $css = $comment . PHP_EOL . PHP_EOL . $css;
1344
+
1345
+ // create new file, suffixed with the current time.
1346
+ $file = sprintf( '%s_%s.css', $this->hook, time() );
1347
+ require_once( ABSPATH . 'wp-admin/includes/file.php' );
1348
+ WP_Filesystem();
1349
+ global $wp_filesystem;
1350
+ $wp_filesystem->put_contents(
1351
+ $dirs['basedir'] . '/' . $file,
1352
+ $css,
1353
+ FS_CHMOD_FILE
1354
+ );
1355
+
1356
+ // return the new file name
1357
+ return $file;
1358
+ }
1359
+
1360
+ /**
1361
+ * If upgrading from a previous version that was using urls instead of the textarea
1362
+ * it will return an appropriate message for the user.
1363
+ */
1364
+ function get_custom_css_upgrade_message() {
1365
+ // upgrading from a version that was using urls instead of the textarea?
1366
+ if ( isset( $this->options['custom_css_url'] ) ) {
1367
+ $css_url = $this->options['custom_css_url'];
1368
+ return sprintf( __( 'You are currently using %1$s%2$s%3$s. You can copy copy its contents into the textbox if you want to update the styles.', 'printfriendly' ), '<a href="' . $css_url . '" target="_blank">', $css_url, '</a>' );
1369
+ }
1370
+
1371
+ return null;
1372
+ }
1373
+
1374
+ /**
1375
+ * Output the config page
1376
+ *
1377
+ * @since 3.0
1378
+ */
1379
+ function config_page() {
1380
+
1381
+ // Since WP 3.2 outputs these errors by default, only display them when we're on versions older than 3.2 that do support the settings errors.
1382
+ global $wp_version;
1383
+ if ( version_compare( $wp_version, '3.2', '<' ) && $this->wp_version_gt30() ) {
1384
+ settings_errors();
1385
+ }
1386
+
1387
+ include_once PRINTFRIENDLY_BASEPATH . '/views/settings.php';
1388
+ }
1389
+ }
1390
+ $printfriendly = new PrintFriendly_WordPress();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1391
  }
1392
 
1393
  // Add shortcode for printfriendly button
1394
+ add_shortcode( 'printfriendly', 'pf_show_link' );
1395
 
1396
  /**
1397
  * Convenience function for use in templates.
1399
  * @since 3.0
1400
  * @return string returns a button to be printed.
1401
  */
1402
+ function pf_show_link() {
1403
+ global $printfriendly;
1404
+ return $printfriendly->getButton( true );
 
1405
  }
readme.txt CHANGED
@@ -1,9 +1,9 @@
1
  === Print, PDF, Email by PrintFriendly ===
2
- Contributors: printfriendly, joostdevalk, jrf
3
- Tags: print, pdf, email, print button, wp-print, print recipe, print post, print page, print widget, print plugin, printable, wp-pdf, pdf post, pdf page, pdf button, pdf widget, pdf plugin, woocommerce print, woocommerce pdf
4
- Requires at least: 2.8
5
  Tested up to: 5.6
6
- Stable tag: 3.16.0
7
 
8
 
9
  The #1 Print, PDF, Email button. Stylish, full featured, customizable. Add custom header, footer, and more.
@@ -144,6 +144,15 @@ You can [hide the Print, PDF, and Email button](https://support.printfriendly.co
144
 
145
  == Changelog ==
146
 
 
 
 
 
 
 
 
 
 
147
  = 3.16.0 =
148
  * Update deprecated jQuery to prevent deprecation log noitice.
149
 
@@ -180,325 +189,6 @@ You can [hide the Print, PDF, and Email button](https://support.printfriendly.co
180
  = 3.14.0 =
181
  * Integrate instant free Pro Trial, and Pro status.
182
 
183
- = 3.13.0 =
184
- * Add Notification alerting websites using Password Protection or JavaScript to display content they need to upgrade to PrintFriendly Pro
185
-
186
- = 3.12.5 =
187
- * Chanage link in settings page
188
-
189
- = 3.12.4 =
190
- * Bug fix, avoid "undefined variable: return"
191
-
192
- = 3.12.3 =
193
- * Bug fix, sometimes custom image didn't display correctly after upgrade
194
-
195
- = 3.12.2 =
196
- * Add title to Printfriendly button and change button image alt
197
-
198
- = 3.12.1 =
199
- * Fix translations
200
-
201
- = 3.12.0 =
202
- * Update custom button UI
203
-
204
- = 3.11.2 =
205
- * Fix button upgrade for pf-icon-both.gif
206
-
207
- = 3.11.1 =
208
- * Bug fix
209
-
210
- = 3.11.0 =
211
- * Update buttons
212
-
213
- = 3.10.0 =
214
- * Change "leave us a rating" message.
215
-
216
- = 3.9.2 =
217
- * Correctly handle spaces in print-only detection
218
-
219
- = 3.9.1 =
220
- * Better print-only detection
221
-
222
- = 3.9.0 =
223
- * Add new button
224
-
225
- = 3.8.8 =
226
- * Bug fix.
227
-
228
- = 3.8.7 =
229
- * Bug fix.
230
-
231
- = 3.8.6 =
232
- * Allow default image setting to be small medium or large.
233
-
234
- = 3.8.5 =
235
- * Bug fix.
236
-
237
- = 3.8.4 =
238
- * Bug fix.
239
-
240
- = 3.8.1 =
241
- * Improve automatic error reporting.
242
-
243
- = 3.8.0 =
244
- * Add automatic error reporting.
245
-
246
- = 3.7.6 =
247
- * WooCommerce support improvments: remove upsells from print preview.
248
-
249
- = 3.7.5 =
250
- * WooCommerce support improvments: fix DOMDocument.loadHTML warnings.
251
-
252
- = 3.7.4 =
253
- * Added CSS Relative Position and Z-Index to button to avoid content covering the button.
254
-
255
- = 3.7.3 =
256
- * Always use https
257
-
258
- = 3.7.2 =
259
- * Use schema less URLs for loading icons
260
-
261
- = 3.7.1 =
262
- * Use www.printfriendly.com instead of app.printfriendly.com for redirects
263
-
264
- = 3.7.0 =
265
- * Remove http/https option, use current schema
266
-
267
- = 3.6.0 =
268
- * Allow custom HTML in Custom Button Text
269
-
270
- = 3.5.4 =
271
- * WooCommerce 'Content Algorithm' fix
272
-
273
- = 3.5.3 =
274
- * Fix security issues
275
-
276
- = 3.5.2 =
277
- * Fix code to support PHP 5.2
278
-
279
- = 3.5.0 =
280
- * WooCommerce product page improvements. Better support for product images, price, and description.
281
-
282
- = 3.4.9 =
283
- * Fix minor security issue
284
-
285
- = 3.4.8 =
286
- * Fix button images style
287
-
288
- = 3.4.7 =
289
- * Fix button style to remove underline
290
-
291
- = 3.4.6 =
292
- * Always removed PrintFriendly button underline regardless plugin CSS for button styles option
293
-
294
- = 3.4.4 =
295
- * Removed page content selection option - Wordpress Standard/Strict
296
-
297
- = 3.4.2 =
298
- * Fixed the issue occured due to new changes made in the page content selection options
299
-
300
- = 3.4.1 =
301
- * Improved page content selection options
302
-
303
- = 3.4.0 =
304
- * Fixed the admin javascript error and increased plugin text boxes size
305
- * Enabled Print Friendly button href to www.printfriendly.com only when the plugin JavaScript option is enabled
306
- * Made some plugin text translation ready
307
-
308
- = 3.3.10 =
309
- * Implemented both Classic Google Analytics and Google Universal Analytics code
310
- * Fixed WP Slimstat conflict
311
-
312
- = 3.3.9 =
313
- * Removed the functionality that opens new window when JavaScript is disabled
314
-
315
- = 3.3.8 =
316
- * Shortcode bug fix
317
- * Urlencoded button href to produce valid html
318
-
319
- = 3.3.7 =
320
- * Readme.txt update
321
-
322
- = 3.3.6 =
323
- * Fixed JS optimization Bug
324
-
325
- = 3.3.5 =
326
- * Wordpress 3.8 support
327
-
328
- = 3.3.4 =
329
- * Provided Algorithm Options
330
-
331
- = 3.3.3 =
332
- * Using WP content hook for all Buttons
333
-
334
- = 3.3.2=
335
- * Algorithm Update
336
-
337
- = 3.3.1 =
338
- * SSL Support bug fixes.
339
-
340
- = 3.3.0 =
341
-
342
- * Optimized JavaScript, reducing the file size by 65%!
343
- * Better syncing between client-side/server-side content detection algorithm. This will make improvements to content detection easier than ever.
344
- * Support for international language sub-regions, for example PT-BR vs. PT (Portuguese-Brazil vs. Portuguese for Portugal)
345
- * Support for Wordpress - 3.6 .
346
- * Printfriendly custom commands support.
347
-
348
- = 3.2.10 =
349
- * Fixed Bug in Google Analytics generation
350
-
351
- = 3.2.9 =
352
- * Enabled support for Google Analytics
353
-
354
- = 3.2.8 =
355
- * Algorithm Update
356
-
357
- = 3.2.7 =
358
- * Removed Break tag from button code.
359
-
360
- = 3.2.6 =
361
- * Fixed Button behavior when displayed on Homepage for NON-JS version.
362
- * Fixed CSS issue with Button when placed above content.
363
- * Fixed box-shadow issue with button.
364
- * Custom print and pdf options now available for Non-JS version. Custom options include header, css, image alignment, etc..
365
- * Fixed bug for custom tagline.
366
-
367
- = 3.2.5 =
368
- * Added hide images and image style options.
369
- * Improved input validation.
370
- * Improved output escaping.
371
- * Removed printfriendly post_class.
372
- * Small i8n fix.
373
- * Few small HTML fixes.
374
-
375
- = 3.2.4 =
376
- * Add printfriendly post_class.
377
- * Fixed minor JS bug.
378
- * Added redundancy to uninstall script.
379
-
380
- = 3.2.3 =
381
- * Rolling back to version 3.2.1
382
-
383
- = 3.2.2 =
384
-
385
- * Add printfriendly post_class.
386
- * Add printfriendly button display settings per individual category.
387
- * Fixed minor JS bug.
388
- * Added redundancy to uninstall script.
389
-
390
- = 3.2.1 =
391
-
392
- * Improve script loading.
393
-
394
- = 3.2.0 =
395
-
396
- * Important chrome issue fix. Ie syntax error fix.
397
-
398
- = 3.1.9 =
399
-
400
- * Minor css detail.
401
-
402
- = 3.1.8 =
403
-
404
- * Add printfriendly options to allow/not allow print, pdf, email from the Printfriendly and PDF dialog.
405
-
406
- = 3.1.7 =
407
-
408
- * Revert default print button show settings. Prevent easy override of print button text-decoration and border style properties.
409
-
410
- = 3.1.6 =
411
-
412
- * Adding PrintFriendly and PDF alignment style classes.
413
-
414
- = 3.1.5 =
415
-
416
- * Set button appearance in more flexible way. Remove styles that interfered with wordpress themes. Add shortcode for printfriendly button. Fix redirect to printfriendly.com link. Added custom css feature.
417
-
418
- = 3.1.4 =
419
-
420
- * Changed https url. Don't hide text change box when disabling css.
421
-
422
- = 3.1.3 =
423
-
424
- * Fixed bug with disable css option.
425
-
426
- = 3.1.2 =
427
-
428
- * Added disable css option to admin settings.
429
-
430
- = 3.1.1 =
431
-
432
- * Fixed admin js caching.
433
-
434
- = 3.1.0 =
435
-
436
- * Fixed admin css caching.
437
-
438
- = 3.0.9 =
439
-
440
- * New features: Custom header, disable click-to-delete, https support (beta), PrintFriendly Pro (ad-free).
441
-
442
- = 3.0.8 =
443
-
444
- * Reordered PrintFriendly & PDF buttons. CSS stylesheet option is now checked by default.
445
-
446
- = 3.0.7 =
447
-
448
- * Added additional images for print button.
449
-
450
- = 3.0.6 =
451
-
452
- * Fix bug that displays button on category pages when posts and pages is selected.
453
-
454
- = 3.0.5 =
455
-
456
- * PrintFriendly & PDF button will now display on category pages (archive pages), if "Homepage, Archives, Posts, and Pages" was selected in the Settings for PrintFriendly & PDF (button placement).
457
-
458
- = 3.0.4 =
459
-
460
- * Align-right and align-center support for themes that remove WordPress core css.
461
-
462
- = 3.0.3 =
463
-
464
- * Support for bad themes that alter template tags and prevent JavaScript from loading in footer.
465
-
466
- = 3.0.2 =
467
-
468
- * Fixed JS bug with Google Chrome not submitting and fixed input validation issues.
469
-
470
- = 3.0.1 =
471
-
472
- * Fixed minor JS bug.
473
-
474
- = 3.0 =
475
-
476
- * A complete overhaul of the plugin by renowned WordPress plugin developer <a href="http://yoast.com/">Joost de Valk</a>.
477
- * Code Changes:
478
- * Redone the admin page.
479
- * Plugin is now fully i18n ready.
480
- * Plugin now uses the settings API.
481
- * CSS loading is now optional.
482
- * JavaScript loading is now optional.
483
- * Plugin now uses WordPress default align classes for outlining.
484
- * Documentation changes:
485
- * Added an FAQ.
486
- * Added Screenshots.
487
-
488
- = 2.1.8 =
489
-
490
- * The Print Button was showing up on printed, or PDF, pages. Junk! Print or PDF button no longer displayed on printed out page or PDF.
491
-
492
- = 2.1.7 =
493
-
494
- * Changed print button from `<span>` to `<div>` to support floating the print and PDF button to right.
495
-
496
- = 2.1.6 =
497
-
498
- * Added rel="nofollow" to the print links to avoid search engines indexing the print pages.
499
- * Changed print button from link `<a>` to `<span>`. Some tracking plugins added target_new/blank to link, therefore breaking print friendly.
500
-
501
- = 2.1.5 =
502
 
503
- * To avoid conflicts with Google Analytics widgets, changed link structure. No longer uses onclick to call PrintFriendly Javascript. Now the javascript is called in the href.
504
- * Custom image support for hosted solutions
1
  === Print, PDF, Email by PrintFriendly ===
2
+ Contributors: printfriendly, joostdevalk, jrf, rozroz
3
+ Tags: print, pdf, email, woocommerce print, woocommerce pdf, print plugin, print button, pdf plugin, pdf button
4
+ Requires at least: 4.9
5
  Tested up to: 5.6
6
+ Stable tag: 4.0.0
7
 
8
 
9
  The #1 Print, PDF, Email button. Stylish, full featured, customizable. Add custom header, footer, and more.
144
 
145
  == Changelog ==
146
 
147
+ = 4.0.0 =
148
+ * An easier and intuitive settings screen
149
+ * Use custom CSS directly without the hassle of uploading files
150
+ * Pickup email and domain automatically
151
+ * Added option to show button only for select categories
152
+ * Update translations
153
+ * Fix: Two buttons are shown when excerpt is used
154
+ * Fix: The custom CSS was included in the page erroneously
155
+
156
  = 3.16.0 =
157
  * Update deprecated jQuery to prevent deprecation log noitice.
158
 
189
  = 3.14.0 =
190
  * Integrate instant free Pro Trial, and Pro status.
191
 
192
+ = Earlier versions =
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
193
 
194
+ For the changelog of earlier versions, please refer to the separate changelog.txt file.
 
uninstall.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
 
3
- if( !defined( 'ABSPATH' ) && !defined( 'WP_UNINSTALL_PLUGIN' ) )
4
- exit();
5
-
 
6
  delete_option( 'printfriendly_option' );
7
 
8
  // Make sure any old options which may still lurking about get deleted as well
@@ -18,4 +19,4 @@ delete_option( 'pf_margin_right' );
18
  delete_option( 'pf_margin_bottom' );
19
  delete_option( 'pf_margin_left' );
20
  delete_option( 'pf_text_color' );
21
- delete_option( 'pf_text_size' );
1
  <?php
2
 
3
+ if ( ! defined( 'ABSPATH' ) && ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
4
+ exit();
5
+ }
6
+
7
  delete_option( 'printfriendly_option' );
8
 
9
  // Make sure any old options which may still lurking about get deleted as well
19
  delete_option( 'pf_margin_bottom' );
20
  delete_option( 'pf_margin_left' );
21
  delete_option( 'pf_text_color' );
22
+ delete_option( 'pf_text_size' );
views/pro.php ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $urlInfo = parse_url( get_option( 'siteurl' ) );
3
+ $domain = ( isset( $urlInfo['host'] ) ? $urlInfo['host'] : '' );
4
+ ?>
5
+ <div class="pf-bu-block pf-bu-card">
6
+ <div class="pf-bu-card-content">
7
+
8
+ <div id="pf-pro" class="pf-notice pf-pro">
9
+ <h3 style="margin: 1rem 0 0 0">Pro - <span id="pf-pro-status-header"></span></h3>
10
+ <p class="pf-alert-success">PrintFriendly is <strong>GDPR Compliant</strong> <a href="https://www.printfriendly.com/privacy" target="_blank"><?php _e( 'Learn more', 'printfriendly' ); ?></a>.
11
+
12
+ </p>
13
+ <div class="pf-col-1 ">
14
+ <?php
15
+ if ( ! ( empty( $this->val( 'pro_email', false ) ) && in_array( $this->val( 'license_status', false ), array( 'pro' ), true ) ) ) {
16
+ $email = $this->val( 'pro_email', false );
17
+ if ( empty( $email ) ) {
18
+ $email = get_option( 'admin_email' );
19
+ }
20
+ ?>
21
+ <label class="pf-no-margin">
22
+ <strong><?php _e( 'Email', 'printfriendly' ); ?></strong><span class="description">(<?php _e( 'To send account details', 'printfriendly' ); ?>)</span><br>
23
+ <input id="pf-pro-email" type="email" class="regular-text" maxlength="80" name="<?php echo $this->option_name; ?>[pro_email]" value="<?php echo $email; ?>" placeholder="hello@my-website.com" />
24
+ <br>
25
+ <span id="pf-pro-email-error" class="pf-error"><?php _e( 'Email is invalid', 'printfriendly' ); ?></span>
26
+ </label>
27
+ <?php } ?>
28
+
29
+ <label>
30
+ <strong><?php _e( 'Website Domain', 'printfriendly' ); ?></strong><br/>
31
+ <input id="pf-pro-domain" type="text" class="regular-text" readonly name="<?php echo $this->option_name; ?>[pro_domain]" value="<?php echo $domain; ?>" />
32
+ <br />
33
+ <span id="pf-pro-domain-error" class="pf-error"><?php _e( 'Domain is invalid', 'printfriendly' ); ?></span>
34
+ </label>
35
+
36
+ <p id="pf-pro-activate" class="pf-hidden">
37
+ <button id="pf-pro-activate-btn" type="button" class="button-primary"><?php _e( 'Activate', 'printfriendly' ); ?></button>
38
+ <span class="pf-btn-message"><?php _e( 'Free 30 days trial, no credit card required.', 'printfriendly' ); ?></span>
39
+ </p>
40
+
41
+ <p id="pf-pro-buy" class="pf-hidden">
42
+ <a id="pf-pro-buy-btn" class="button-primary"><?php _e( 'Buy Now', 'printfriendly' ); ?></a>
43
+ <span id="pf-pro-status-message" class="pf-btn-message"></span>
44
+ </p>
45
+
46
+ <p id="pf-pro-details" class="pf-hidden">
47
+ <span class="pf-btn-message"><?php _e( 'Last Checked', 'printfriendly' ); ?>: <?php echo date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), $this->options['license_date'] / 1000 + get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ); ?></span>
48
+ <input type="hidden" name="<?php echo $this->option_name; ?>[license_status]" id="license_status">
49
+ <input type="hidden" name="<?php echo $this->option_name; ?>[license_date]" id="license_date">
50
+ </p>
51
+
52
+ <p id="pf-pro-loading" class="pf-hidden">
53
+ <b class="pf-text-success"><span id="pf-pro-loading-message"></span><?php _e( 'Please wait', 'printfriendly' ); ?>...</b>
54
+ </p>
55
+
56
+ <p id="pf-pro-communication-error" class="pf-hidden">
57
+ <b class="pf-text-error"><span id="pf-pro-communication-error-message"></span></b>
58
+ </p>
59
+ </div>
60
+
61
+ <div class="pf-col-2 pf-pro-features">
62
+ <strong><?php _e( 'Pro Features', 'printfriendly' ); ?></strong>
63
+ <ol>
64
+ <li><?php _e( 'Faster, better experience for end-user', 'printfriendly' ); ?></li>
65
+ <li><?php _e( 'Cache-free, so any updates are instantly included', 'printfriendly' ); ?></li>
66
+ <li><?php _e( 'Ad-Free for companies and organizations', 'printfriendly' ); ?></li>
67
+ <li><?php _e( 'Works on all sites (Password protected, Angular/React/Ember)', 'printfriendly' ); ?></li>
68
+ <li><?php _e( 'Email support', 'printfriendly' ); ?></li>
69
+ </ol>
70
+ <p><?php _e( 'Have a development/staging domain?', 'printfriendly' ); ?> <a href="https://support.printfriendly.com/button/pro/development-domain/" target="_blank"><?php _e( 'Add Free Development Domain', 'printfriendly' ); ?></a>.</p>
71
+ </div>
72
+ <br />
73
+ </div>
74
+
75
+ </div>
76
+ </div>
views/settings.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div id="pf_settings" class="wrap">
2
+
3
+ <h2><img src="<?php echo PRINTFRIENDLY_BASEURL . '/assets/images/pf-icon.png'; ?>"><?php _e( 'Print Friendly & PDF Settings', 'printfriendly' ); ?></h2>
4
+
5
+ <form id="pf-options-form" action="options.php" method="post">
6
+ <?php wp_nonce_field( 'pf-options', 'pf-nonce' ); ?>
7
+ <?php settings_fields( $this->option_name ); ?>
8
+
9
+ <?php include_once PRINTFRIENDLY_BASEPATH . '/views/tabs.php'; ?>
10
+
11
+ <footer id="after-submit" class="pf-bu-footer">
12
+ <div class="pf-bu-content pf-bu-has-text-centered">
13
+ <p>
14
+ <?php echo sprintf( __( 'If you like <strong>PrintFriendly</strong> please leave us a %s rating. A huge thanks in advance!', 'printfriendly' ), '<a href="https://wordpress.org/support/plugin/printfriendly/reviews?rate=5#new-post" target="_blank">&#9733;&#9733;&#9733;&#9733;&#9733;</a>' ); ?>
15
+ </p>
16
+ <p><?php _e( 'Need professional options for your corporate, education, or agency developed website? Check out', 'printfriendly' ); ?> <a href="https://www.printfriendly.com/button/pro?utm_source=wp&utm_medium=link&utm_campaign=wp-link" target="_blank">PrintFriendly Pro</a>.</p>
17
+ <p>
18
+ <?php _e( 'Need help or have suggestions?', 'printfriendly' ); ?> <a href="mailto:support@printfriendly.com?subject=Support%20for%20PrintFriendly%20WordPress%20plugin">support@PrintFriendly.com</a>
19
+ </p>
20
+ </div>
21
+ </footer>
22
+
23
+ </form>
24
+ </div>
views/tabs.php ADDED
@@ -0,0 +1,520 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div id="pf-tabs">
2
+ <div class="pf-bu-tabs pf-bu-is-centered">
3
+ <ul>
4
+ <li class="pf-bu-is-active"><a href="#tab-standard"><?php _e( 'Standard', 'printfriendly' ); ?></a></li>
5
+ <li><a href="#tab-advanced"><?php _e( 'Advanced', 'printfriendly' ); ?></a></li>
6
+ <?php if ( WP_DEBUG ) { ?>
7
+ <li><a href="#tab-debug"><?php _e( 'Debug', 'printfriendly' ); ?></a></li>
8
+ <?php } ?>
9
+ </ul>
10
+ </div>
11
+
12
+ <section id="tab-standard">
13
+ <div class="pf-bu-container">
14
+
15
+ <?php include_once PRINTFRIENDLY_BASEPATH . '/views/pro.php'; ?>
16
+
17
+ <div class="pf-bu-block pf-bu-card">
18
+ <header class="pf-bu-card-header">
19
+ <p class="pf-bu-card-header-title">
20
+ <?php _e( 'Select content using', 'printfriendly' ); ?>
21
+ </p>
22
+ </header>
23
+
24
+ <div class="pf-bu-card-content">
25
+ <?php if ( class_exists( 'WooCommerce' ) ) { ?>
26
+ <p><?php _e( 'Not available for woocommerce', 'printfriendly' ); ?></p>
27
+ <?php } else { ?>
28
+ <select class="pf-bu-select" id="pf-algo-usage" name="<?php echo $this->option_name; ?>[pf_algo]">
29
+ <option value="wp" <?php $this->selected( 'pf_algo', 'wp' ); ?>> <?php _e( 'WP Template', 'printfriendly' ); ?></option>
30
+ <option value="pf" <?php $this->selected( 'pf_algo', 'pf' ); ?>> <?php _e( 'Content Algorithm', 'printfriendly' ); ?></option>
31
+ </select>
32
+ <?php } ?>
33
+ </div>
34
+
35
+ <div class="pf-bu-card-footer">
36
+ <p class="pf-bu-card-footer-item"><?php _e( 'Change this setting if your content is not showing in the preview.', 'printfriendly' ); ?></p>
37
+ <p class="pf-bu-card-footer-item"><a href="https://printfriendly.freshdesk.com/support/solutions/articles/69000080285-page-content-not-selected" target="_new"><?php _e( 'Documentation', 'printfriendly' ); ?></a></p>
38
+ </div>
39
+ </div>
40
+
41
+ <div class="pf-bu-block pf-bu-card">
42
+ <header class="pf-bu-card-header">
43
+ <p class="pf-bu-card-header-title">
44
+ <?php _e( 'Button Style', 'printfriendly' ); ?>
45
+ </p>
46
+ </header>
47
+
48
+ <div class="pf-bu-card-content">
49
+
50
+ <div class="pf-bu-columns pf-bu-is-multiline" id="button-style">
51
+ <?php
52
+ $buttons = array(
53
+ 'buttongroup1' => array(
54
+ 'printfriendly-pdf-email-button.png',
55
+ 'printfriendly-pdf-email-button-md.png',
56
+ 'printfriendly-pdf-email-button-notext.png',
57
+ ),
58
+ 'buttongroup2' => array(
59
+ 'printfriendly-pdf-button.png',
60
+ 'printfriendly-pdf-button-nobg.png',
61
+ 'printfriendly-pdf-button-nobg-md.png',
62
+ ),
63
+ 'buttongroup3' => array(
64
+ 'printfriendly-button.png',
65
+ 'printfriendly-button-nobg.png',
66
+ 'printfriendly-button-md.png',
67
+ 'printfriendly-button-lg.png',
68
+ ),
69
+ 'buttongroup4' => array(
70
+ 'print-button.png',
71
+ 'print-button-nobg.png',
72
+ 'print-button-gray.png',
73
+ ),
74
+ );
75
+
76
+ foreach ( $buttons as $class => $array ) {
77
+ foreach ( $array as $button ) {
78
+ ?>
79
+ <div class="pf-bu-column pf-bu-is-one-quarter">
80
+ <?php $this->radio( 'buttons/' . $button ); ?>
81
+ </div>
82
+ <?php
83
+ }
84
+ }
85
+ ?>
86
+
87
+ </div>
88
+
89
+ <div class="pf-bu-columns">
90
+ <div class="pf-bu-column">
91
+ <label>
92
+ <input id="custom-btn" class="radio" name="<?php echo $this->option_name; ?>[button_type]" type="radio" value="custom-button" <?php echo $this->checked( 'button_type', 'custom-button', false ); ?> >
93
+ <?php _e( 'Custom Button', 'printfriendly' ); ?>
94
+ </label>
95
+
96
+ <div class="pf-bu-tile pf-bu-is-ancestor">
97
+ <div class="custom-btn pf-bu-tile pf-bu-is-4 pf-bu-is-flex-direction-column" id="custom-img">
98
+ <h2><?php _e( 'Image', 'printfriendly' ); ?></h2>
99
+ <?php $this->radio_custom_image( 'https://cdn.printfriendly.com/icons/printfriendly-icon-sm.png' ); ?>
100
+ <?php $this->radio_custom_image( 'https://cdn.printfriendly.com/icons/printfriendly-icon-md.png' ); ?>
101
+ <?php $this->radio_custom_image( 'https://cdn.printfriendly.com/icons/printfriendly-icon-lg.png' ); ?>
102
+
103
+ <label for="custom-image-rb" class="radio-custom-btn">
104
+ <input id="custom-image-rb" type="radio" name="<?php echo $this->option_name; ?>[custom_button_icon]" value="custom-image" <?php $this->checked( 'custom_button_icon', 'custom-image' ); ?>>
105
+ <?php _e( 'Use Your Image', 'printfriendly' ); ?>
106
+
107
+ <div id="enter-image-url">
108
+ <input type="button" class="pf_upload_image_button button button-secondary" data-pf-element="#custom_image" value="<?php _e( 'Select Image', 'printfriendly' ); ?>">
109
+ <input id="custom_image" type="hidden" name="<?php echo $this->option_name; ?>[custom_image]" value="<?php $this->val( 'custom_image' ); ?>" />
110
+ <span id="custom_image_label">
111
+ <?php if ( ! empty( $this->val( 'custom_image', false ) ) ) { ?>
112
+ <img src="<?php $this->val( 'custom_image' ); ?>">
113
+ <?php } ?>
114
+ </span>
115
+ <div id="pf-custom-button-error"></div>
116
+ </div>
117
+ </label>
118
+
119
+ <label class="radio-custom-btn">
120
+ <input type="radio" name="<?php echo $this->option_name; ?>[custom_button_icon]" value="no-image" <?php $this->checked( 'custom_button_icon', 'no-image' ); ?>>
121
+ <?php _e( 'No Image', 'printfriendly' ); ?>
122
+ </label>
123
+ </div>
124
+
125
+ <div class="custom-btn pf-bu-tile pf-bu-is-4 pf-bu-is-flex-direction-column" id="custom-txt">
126
+ <h2><?php _e( 'Text', 'printfriendly' ); ?></h2>
127
+ <div id="txt-enter">
128
+ <div class="pf-form-element">
129
+ <input id="custom-text-rb" type="radio" name="<?php echo $this->option_name; ?>[custom_button_text]" value="custom-text" <?php $this->checked( 'custom_button_text', 'custom-text' ); ?>>
130
+ <input id="custom_text" type="text" size="10" class="clear regular-text" name="<?php echo $this->option_name; ?>[custom_text]" value="<?php $this->val( 'custom_text' ); ?>">
131
+
132
+ <div id="pf-txt-attributes">
133
+ <div id="txt-size">
134
+ <?php _e( 'Text Size', 'printfriendly' ); ?>
135
+ <input type="number" id="text_size" min="9" max="25" class="small-text" name="<?php echo $this->option_name; ?>[text_size]" value="<?php $this->val( 'text_size' ); ?>" />
136
+ <input type="text" class="pf-color-picker" name="<?php echo $this->option_name; ?>[text_color]" id="text_color" value="<?php $this->val( 'text_color' ); ?>" />
137
+ </div>
138
+ </div>
139
+
140
+ </div>
141
+
142
+ <label>
143
+ <input type="radio" id="custom-text-no" name="<?php echo $this->option_name; ?>[custom_button_text]" value="no-text" <?php $this->checked( 'custom_button_text', 'no-text' ); ?>>
144
+ <?php _e( 'No Text', 'printfriendly' ); ?>
145
+ </label>
146
+ </div>
147
+ </div>
148
+
149
+ <div class="custom-btn pf-bu-tile pf-bu-is-4 pf-bu-is-flex-direction-column" id="custom-button-preview">
150
+ <h2><?php _e( 'Preview', 'printfriendly' ); ?></h2>
151
+ <?php $this->custom_button_preview(); ?>
152
+ </div>
153
+ </div>
154
+ </div>
155
+ </div>
156
+ </div>
157
+ </div>
158
+
159
+ <div class="pf-bu-block pf-bu-card">
160
+ <header class="pf-bu-card-header">
161
+ <p class="pf-bu-card-header-title">
162
+ <?php _e( 'Button Position', 'printfriendly' ); ?>
163
+ </p>
164
+ </header>
165
+
166
+ <div class="pf-bu-card-content">
167
+ <label for="pf_content_position" class="pf-bu-label"><?php _e( 'Alignment', 'printfriendly' ); ?></label>
168
+ <select class="pf-bu-select" id="pf_content_position" name="<?php echo $this->option_name; ?>[content_position]">
169
+ <option value="left" <?php selected( $this->options['content_position'], 'left' ); ?>><?php _e( 'Left Align', 'printfriendly' ); ?></option>
170
+ <option value="right" <?php selected( $this->options['content_position'], 'right' ); ?>><?php _e( 'Right Align', 'printfriendly' ); ?></option>
171
+ <option value="center" <?php selected( $this->options['content_position'], 'center' ); ?>><?php _e( 'Center', 'printfriendly' ); ?></option>
172
+ <option value="none" <?php selected( $this->options['content_position'], 'none' ); ?>><?php _e( 'None', 'printfriendly' ); ?></option>
173
+ </select>
174
+
175
+ <label for="pf_content_placement" class="pf-bu-label"><?php _e( 'Placement', 'printfriendly' ); ?></label>
176
+ <select class="pf-bu-select" id="pf_content_placement" name="<?php echo $this->option_name; ?>[content_placement]">
177
+ <option value="before" <?php selected( $this->options['content_placement'], 'before' ); ?>><?php _e( 'Above Content', 'printfriendly' ); ?></option>
178
+ <option value="after" <?php selected( $this->options['content_placement'], 'after' ); ?>><?php _e( 'Below Content', 'printfriendly' ); ?></option>
179
+ </select>
180
+ </div>
181
+ </div>
182
+
183
+ <div class="pf-bu-block pf-bu-card">
184
+ <header class="pf-bu-card-header">
185
+ <p class="pf-bu-card-header-title">
186
+ <?php _e( 'Button Display', 'printfriendly' ); ?>
187
+ </p>
188
+ </header>
189
+
190
+ <div class="pf-bu-card-content">
191
+ <label for="pages" class="pf-bu-label"><?php _e( 'Pages to show on', 'printfriendly' ); ?></label>
192
+ <div id="pages">
193
+ <?php $this->create_checkbox( 'posts', __( 'Posts', 'printfriendly' ) ); ?>
194
+ <?php $this->create_checkbox( 'pages', __( 'Pages', 'printfriendly' ) ); ?>
195
+ <?php $this->create_checkbox( 'homepage', __( 'Homepage', 'printfriendly' ) ); ?>
196
+ <?php $this->create_checkbox( 'categories', __( 'Category Pages', 'printfriendly' ) ); ?>
197
+ <?php $this->create_checkbox( 'taxonomies', __( 'Taxonomy Pages', 'printfriendly' ) ); ?>
198
+ <label for="show_on_template">
199
+ <input type="checkbox" class="show_template" name="show_on_template" id="show_on_template" /><?php echo _e( 'Add direct to template', 'printfriendly' ); ?>
200
+ </label>
201
+
202
+ <div id="pf-snippet">
203
+ <code>&lt;?php if( function_exists( 'pf_show_link' ) ){ echo pf_show_link(); } ?&gt;</code>
204
+ <a class="pf-clipboard" href="javascript:;" data-clipboard-text="<?php echo '&lt;?php if( function_exists( \'pf_show_link\' ) ) { echo pf_show_link(); } ?&gt;'; ?>"><span class="pf-bu-tag pf-bu-is-info pf-bu-is-light"><?php _e( 'Copy Snippet', 'printfriendly' ); ?></span></a>
205
+ </div>
206
+
207
+ <label<?php /* for="pf-shortcode2"*/ ?>><?php _e( 'or use the shortcode inside your page/article', 'printfriendly' ); ?></label>
208
+ <code>[printfriendly]</code><a class="pf-clipboard" href="javascript:;" data-clipboard-text="<?php echo '[printfriendly]'; ?>"><span class="pf-bu-tag pf-bu-is-info pf-bu-is-light"><?php _e( 'Copy Shortcode', 'printfriendly' ); ?></span></a>
209
+ </div>
210
+
211
+ <hr/>
212
+ <label for="categories" class="pf-bu-label"><?php _e( 'Specific categories to show on', 'printfriendly' ); ?></label>
213
+ <?php
214
+ $select = wp_dropdown_categories(
215
+ apply_filters(
216
+ 'printfriendly_category_args', array(
217
+ 'show_count' => 0,
218
+ 'orderby' => 'name',
219
+ 'echo' => 0,
220
+ 'hide_empty' => false, // show a category even if it has no posts assigned
221
+ 'class' => 'pf-select2',
222
+ 'name' => 'printfriendly_option[show_on_cat]',
223
+ 'id' => 'show_on_cat',
224
+ 'selected' => isset( $this->options['show_on_cat'] ) ? $this->options['show_on_cat'] : '',
225
+ )
226
+ )
227
+ );
228
+ $select = str_replace( '<select ', '<select multiple ', $select );
229
+ echo $select;
230
+ ?>
231
+ </div>
232
+
233
+ <div class="pf-bu-card-footer">
234
+ <p class="pf-bu-card-footer-item"><a href="https://printfriendly.freshdesk.com/support/solutions/articles/69000080457-manual-button-placement-in-wordpress" target="_new"><?php _e( 'Documentation', 'printfriendly' ); ?></a></p>
235
+ </div>
236
+
237
+ </div>
238
+
239
+ <div class="pf-bu-container">
240
+ <div class="pf-bu-is-flex pf-bu-is-justify-content-center">
241
+ <input type="submit" class="button-primary pf-bu-is-medium pf-bu-button" value="<?php esc_attr_e( 'Save Options', 'printfriendly' ); ?>" />
242
+ <input type="reset" class="button-secondary pf-bu-is-medium pf-bu-button" value="<?php esc_attr_e( 'Cancel', 'printfriendly' ); ?>" />
243
+ </div>
244
+ </div>
245
+ </div>
246
+ </section>
247
+
248
+ <section id="tab-advanced">
249
+ <div class="pf-bu-container">
250
+
251
+ <div class="pf-bu-block pf-bu-card">
252
+ <header class="pf-bu-card-header">
253
+ <p class="pf-bu-card-header-title">
254
+ <?php _e( 'Page header', 'printfriendly' ); ?>
255
+ </p>
256
+ </header>
257
+
258
+ <div class="pf-bu-card-content">
259
+ <div class="pf-bu-columns">
260
+ <div class="pf-bu-column pf-bu-is-6">
261
+ <label for="icon_favicon">
262
+ <input id="icon_favicon" type="radio" name="<?php echo $this->option_name; ?>[logo]" value="favicon" <?php echo $this->options['logo'] === 'favicon' ? 'checked' : ''; ?>>
263
+ <?php _e( 'My Website Icon', 'printfriendly' ); ?>
264
+ </label>
265
+ </div>
266
+
267
+ <div class="pf-bu-column pf-bu-is-6">
268
+ <label for="icon-upload-an-image">
269
+ <input id="icon-upload-an-image" type="radio" name="<?php echo $this->option_name; ?>[logo]" value="upload-an-image" <?php echo $this->options['logo'] === 'upload-an-image' ? 'checked' : ''; ?>>
270
+ <?php _e( 'Custom Image', 'printfriendly' ); ?>
271
+
272
+ <div id="custom-logo"><div class="pf-bu-tile pf-bu-is-ancestor">
273
+ <div class="pf-bu-tile pf-bu-is-vertical">
274
+ <div class="pf-bu-tile pf-bu-is-4 pf-bu-is-flex-direction-column">
275
+ <div>
276
+ <input type="button" class="pf_upload_image_button button button-secondary" data-pf-element="#custom_logo" value="<?php _e( 'Select Image', 'printfriendly' ); ?>">
277
+ <input id="custom_logo" type="hidden" name="<?php echo $this->option_name; ?>[image_url]" value="<?php $this->val( 'image_url' ); ?>" />
278
+ <span id="custom_logo_label">
279
+ <?php if ( ! empty( $this->val( 'image_url', false ) ) ) { ?>
280
+ <img src="<?php $this->val( 'image_url' ); ?>">
281
+ <?php } ?>
282
+ </span>
283
+ </div>
284
+ </div>
285
+
286
+ <div class="pf-bu-tile pf-bu-is-4 pf-bu-is-flex-direction-column">
287
+ <div>
288
+ <div class="pf-bu-field pf-bu-has-addons">
289
+ <p class="pf-bu-control">
290
+ <a class="pf-bu-button pf-bu-is-static">
291
+ <?php _e( 'Tagline (optional)', 'printfriendly' ); ?>
292
+ </a>
293
+ </p>
294
+ <p class="pf-bu-control">
295
+ <input id="image-tagline" type="text" class="pf-bu-input regular-text pf-regular-text" name="<?php echo $this->option_name; ?>[tagline]" value="<?php $this->val( 'tagline' ); ?>" />
296
+ </p>
297
+ </div>
298
+ </div>
299
+ </div>
300
+ </div>
301
+ </div></div>
302
+
303
+ </label>
304
+ </div>
305
+ </div>
306
+ <div id="pf-image-error"></div>
307
+ <div id="pf-image-preview"></div>
308
+ </div>
309
+
310
+ <div class="pf-bu-card-footer">
311
+ <p class="pf-bu-card-footer-item"><a href="https://printfriendly.freshdesk.com/support/solutions/articles/69000080358-create-a-custom-header-in-wordpress" target="_new"><?php _e( 'Documentation', 'printfriendly' ); ?></a></p>
312
+ </div>
313
+ </div>
314
+
315
+ <!-- TODO: disable for non pro? -->
316
+ <div class="pf-bu-block pf-bu-card">
317
+ <header class="pf-bu-card-header">
318
+ <p class="pf-bu-card-header-title">
319
+ <?php _e( 'Password Protected Content', 'printfriendly' ); ?>
320
+ </p>
321
+ </header>
322
+
323
+ <div class="pf-bu-card-content">
324
+ <select class="pf-bu-select" id="password_protected" name="<?php echo $this->option_name; ?>[password_protected]">
325
+ <option value="no" <?php selected( $this->options['password_protected'], 'no' ); ?>><?php _e( 'No', 'printfriendly' ); ?></option>
326
+ <option value="yes" <?php selected( $this->options['password_protected'], 'yes' ); ?>><?php _e( 'Yes', 'printfriendly' ); ?></option>
327
+ </select>
328
+ </div>
329
+
330
+ <div class="pf-bu-card-footer">
331
+ <p class="pf-bu-card-footer-item"><?php _e( 'This feature requires a Pro subscription.', 'printfriendly' ); ?>&nbsp;<a href="https://www.printfriendly.com/pro" target="_blank"><?php _e( 'Learn More', 'printfriendly' ); ?></a></p>
332
+ </div>
333
+ </div>
334
+
335
+ <div class="pf-bu-block pf-bu-card">
336
+ <header class="pf-bu-card-header">
337
+ <p class="pf-bu-card-header-title">
338
+ <?php _e( 'Track in Google Analytics', 'printfriendly' ); ?>
339
+ </p>
340
+ </header>
341
+
342
+ <div class="pf-bu-card-content">
343
+ <select class="pf-bu-select" id="pf-analytics-tracking" name="<?php echo $this->option_name; ?>[enable_google_analytics]">
344
+ <option value="yes" <?php $this->selected( 'enable_google_analytics', 'yes' ); ?>> <?php _e( 'Yes', 'printfriendly' ); ?></option>
345
+ <option value="no" <?php $this->selected( 'enable_google_analytics', 'no' ); ?>> <?php _e( 'No', 'printfriendly' ); ?></option>
346
+ </select>
347
+ </div>
348
+ </div>
349
+
350
+ <div class="pf-bu-block pf-bu-card">
351
+ <header class="pf-bu-card-header">
352
+ <p class="pf-bu-card-header-title">
353
+ <?php _e( 'Click-to-delete', 'printfriendly' ); ?>
354
+ </p>
355
+ </header>
356
+
357
+ <div class="pf-bu-card-content">
358
+ <select class="pf-bu-select" name="<?php echo $this->option_name; ?>[click_to_delete]" id="click-to-delete">
359
+ <option value="0" <?php selected( $this->options['click_to_delete'], '0' ); ?>><?php _e( 'Allow', 'printfriendly' ); ?></option>
360
+ <option value="1" <?php selected( $this->options['click_to_delete'], '1' ); ?>><?php _e( 'Not Allow', 'printfriendly' ); ?></option>
361
+ </select>
362
+ </div>
363
+
364
+ <div class="pf-bu-card-footer">
365
+ <p class="pf-bu-card-footer-item"><a href="https://printfriendly.freshdesk.com/support/solutions/articles/69000080475-turn-off-the-click-to-delete-option-in-wordpress" target="_new"><?php _e( 'Documentation', 'printfriendly' ); ?></a></p>
366
+ </div>
367
+
368
+ </div>
369
+
370
+ <div class="pf-bu-block pf-bu-card">
371
+ <header class="pf-bu-card-header">
372
+ <p class="pf-bu-card-header-title">
373
+ <?php _e( 'Images', 'printfriendly' ); ?>
374
+ </p>
375
+ </header>
376
+
377
+ <div class="pf-bu-card-content">
378
+ <label for="image-size" class="pf-bu-label"><?php _e( 'Image size', 'printfriendly' ); ?></label>
379
+ <select class="pf-bu-select" name="<?php echo $this->option_name; ?>[images-size]" id="images-size">
380
+ <option value="full-size" <?php selected( $this->options['images-size'], 'full-size' ); ?>><?php _e( 'Full Size', 'printfriendly' ); ?></option>
381
+ <option value="large" <?php selected( $this->options['images-size'], 'large' ); ?>><?php _e( 'Large', 'printfriendly' ); ?></option>
382
+ <option value="medium" <?php selected( $this->options['images-size'], 'medium' ); ?>><?php _e( 'Medium', 'printfriendly' ); ?></option>
383
+ <option value="small" <?php selected( $this->options['images-size'], 'small' ); ?>><?php _e( 'Small', 'printfriendly' ); ?></option>
384
+ <option value="remove-images" <?php selected( $this->options['images-size'], 'remove-images' ); ?>><?php _e( 'Remove Images', 'printfriendly' ); ?></option>
385
+ </select>
386
+
387
+ <label for="image-style" class="pf-bu-label"><?php _e( 'Image style', 'printfriendly' ); ?></label>
388
+ <select class="pf-bu-select" name="<?php echo $this->option_name; ?>[image-style]" id="image-style">
389
+ <option value="right" <?php selected( $this->options['image-style'], 'right' ); ?>><?php _e( 'Align Right', 'printfriendly' ); ?></option>
390
+ <option value="left" <?php selected( $this->options['image-style'], 'left' ); ?>><?php _e( 'Align Left', 'printfriendly' ); ?></option>
391
+ <option value="none" <?php selected( $this->options['image-style'], 'none' ); ?>><?php _e( 'Align None', 'printfriendly' ); ?></option>
392
+ <option value="block" <?php selected( $this->options['image-style'], 'block' ); ?>><?php _e( 'Center/Block', 'printfriendly' ); ?></option>
393
+ </select>
394
+ </div>
395
+
396
+ <div class="pf-bu-card-footer">
397
+ <p class="pf-bu-card-footer-item"><a href="https://printfriendly.freshdesk.com/support/solutions/articles/69000080507-remove-images-option" target="_new"><?php _e( 'Documentation', 'printfriendly' ); ?></a></p>
398
+ </div>
399
+
400
+ </div>
401
+
402
+ <div class="pf-bu-block pf-bu-card">
403
+ <header class="pf-bu-card-header">
404
+ <p class="pf-bu-card-header-title">
405
+ <?php _e( 'Email', 'printfriendly' ); ?>
406
+ </p>
407
+ </header>
408
+
409
+ <div class="pf-bu-card-content">
410
+ <select class="pf-bu-select" name="<?php echo $this->option_name; ?>[email]" id="email">
411
+ <option value="0" <?php selected( $this->options['email'], '0' ); ?>><?php _e( 'Allow', 'printfriendly' ); ?></option>
412
+ <option value="1" <?php selected( $this->options['email'], '1' ); ?>><?php _e( 'Not Allow', 'printfriendly' ); ?></option>
413
+ </select>
414
+ </div>
415
+ </div>
416
+
417
+ <div class="pf-bu-block pf-bu-card">
418
+ <header class="pf-bu-card-header">
419
+ <p class="pf-bu-card-header-title">
420
+ <?php _e( 'PDF', 'printfriendly' ); ?>
421
+ </p>
422
+ </header>
423
+
424
+ <div class="pf-bu-card-content">
425
+ <select class="pf-bu-select" name="<?php echo $this->option_name; ?>[pdf]" id="pdf">
426
+ <option value="0" <?php selected( $this->options['pdf'], '0' ); ?>><?php _e( 'Allow', 'printfriendly' ); ?></option>
427
+ <option value="1" <?php selected( $this->options['pdf'], '1' ); ?>><?php _e( 'Not Allow', 'printfriendly' ); ?></option>
428
+ </select>
429
+ </div>
430
+
431
+ <div class="pf-bu-card-footer">
432
+ <p class="pf-bu-card-footer-item"><strong><?php _e( 'Developer Note', 'printfriendly' ); ?></strong>: <?php _e( 'On localhost the images can not be included in the PDF. Once the website is live/public images will be included in the PDF.', 'printfriendly' ); ?></p>
433
+ </div>
434
+
435
+ </div>
436
+
437
+ <div class="pf-bu-block pf-bu-card">
438
+ <header class="pf-bu-card-header">
439
+ <p class="pf-bu-card-header-title">
440
+ <?php _e( 'Print', 'printfriendly' ); ?>
441
+ </p>
442
+ </header>
443
+
444
+ <div class="pf-bu-card-content">
445
+ <select class="pf-bu-select" name="<?php echo $this->option_name; ?>[print]" id="print">
446
+ <option value="0" <?php selected( $this->options['print'], '0' ); ?>><?php _e( 'Allow', 'printfriendly' ); ?></option>
447
+ <option value="1" <?php selected( $this->options['print'], '1' ); ?>><?php _e( 'Not Allow', 'printfriendly' ); ?></option>
448
+ </select>
449
+ </div>
450
+ </div>
451
+
452
+ <div class="pf-bu-block pf-bu-card">
453
+ <header class="pf-bu-card-header">
454
+ <p class="pf-bu-card-header-title">
455
+ <?php _e( 'Custom CSS', 'printfriendly' ); ?>
456
+ </p>
457
+ </header>
458
+
459
+ <div class="pf-bu-card-content">
460
+ <?php if ( ! $this->is_pro( 'custom-css' ) ) { ?>
461
+ <label for="custom_css_url">
462
+ <?php _e( 'Custom CSS URL', 'printfriendly' ); ?>
463
+ <input id="custom_css_url" type="url" class="regular-text" name="<?php echo $this->option_name; ?>[custom_css_url]" value="<?php $this->val( 'custom_css_url' ); ?>" />
464
+ </label>
465
+ <?php } else { ?>
466
+ <label for="custom_css">
467
+ <textarea id="custom_css" class="regular-text pf-bu-textarea" rows="5" cols="80" name="<?php echo $this->option_name; ?>[custom_css]"><?php echo html_entity_decode( esc_textarea( $this->val( 'custom_css', false ) ) ); ?></textarea>
468
+ <p class="desc"><?php echo $this->get_custom_css_upgrade_message(); ?></p>
469
+ </label>
470
+ <?php } ?>
471
+ </div>
472
+
473
+ <div class="pf-bu-card-footer">
474
+ <p class="pf-bu-card-footer-item">
475
+ <?php
476
+ if ( ! $this->is_pro( 'custom-css' ) ) {
477
+ _e( 'Customize the styles of the printed/pdf page using your own CSS. Create your custom CSS, and put the URL to your Custom CSS file in the box below', 'printfriendly' );
478
+ } else {
479
+ echo sprintf( __( 'Customize the styles of the printed/pdf page using your own CSS. Add your custom CSS (without the %s tags) in the box below', 'printfriendly' ), '<code>&lt;style&gt;</code>' );
480
+ }
481
+ ?>
482
+ </p>
483
+ </div>
484
+
485
+ </div>
486
+
487
+ <div class="pf-bu-container">
488
+ <div class="pf-bu-is-flex pf-bu-is-justify-content-center">
489
+ <input type="submit" class="button-primary pf-bu-is-medium pf-bu-button" value="<?php esc_attr_e( 'Save Options', 'printfriendly' ); ?>" />
490
+ <input type="reset" class="button-secondary pf-bu-is-medium pf-bu-button" value="<?php esc_attr_e( 'Cancel', 'printfriendly' ); ?>" />
491
+ </div>
492
+ </div>
493
+
494
+ </div>
495
+ </section>
496
+
497
+
498
+ <?php if ( WP_DEBUG ) { ?>
499
+ <section id="tab-debug">
500
+ <div class="pf-bu-container">
501
+ <div class="pf-bu-block pf-bu-card">
502
+ <header class="pf-bu-card-header">
503
+ <p class="pf-bu-card-header-title">
504
+ <?php _e( 'Debug options', 'printfriendly' ); ?>
505
+ </p>
506
+ </header>
507
+
508
+ <div class="pf-bu-card-content">
509
+ <pre><?php echo print_r( $this->options, 1 ); ?></pre>
510
+ </div>
511
+
512
+ <div class="pf-bu-card-footer">
513
+ <p class="pf-bu-card-footer-item"><?php _e( 'Currently in Debug Mode. This tab is visible in debug mode only', 'printfriendly' ); ?></p>
514
+ </div>
515
+ </div>
516
+ </div>
517
+ </section>
518
+ <?php } ?>
519
+
520
+ </div>