Loco Translate - Version 2.6.2

Version Description

  • Bumped WordPress version to 6.0.0
  • Better labelling of reverse-engineered plural forms
  • Removed undocumented loco_locale_plurals filter; use loco_po_headers
  • Added PO folder location indicator in breadcrumb
  • Added syntax validation for formatted strings
Download this release

Release Info

Developer timwhitlock
Plugin Icon 128x128 Loco Translate
Version 2.6.2
Comparing to
See all releases

Code changes from version 2.6.1 to 2.6.2

languages/loco-translate.pot CHANGED
@@ -1,9 +1,9 @@
1
  #, fuzzy
2
  msgid ""
3
  msgstr ""
4
- "Project-Id-Version: Loco Translate 2.6.1\n"
5
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/loco-translate/\n"
6
- "POT-Creation-Date: 2022-03-16 15:11+0000\n"
7
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
9
  "Language-Team: \n"
@@ -13,7 +13,7 @@ msgstr ""
13
  "Content-Type: text/plain; charset=UTF-8\n"
14
  "Content-Transfer-Encoding: 8bit\n"
15
  "X-Generator: Loco https://localise.biz/\n"
16
- "X-Loco-Version: 2.6.1; wp-5.9.2\n"
17
  "X-Domain: loco-translate"
18
 
19
  #: src/fs/FileWriter.php:214
@@ -502,7 +502,7 @@ msgstr ""
502
  msgid "Debug"
503
  msgstr ""
504
 
505
- #: src/admin/file/BaseController.php:108 tpl/admin/file/diff.php:32
506
  #: tpl/admin/bundle/inc-po-table.php:63 tpl/admin/bundle/locale.php:75
507
  msgid "Delete"
508
  msgstr ""
@@ -538,7 +538,7 @@ msgstr ""
538
  msgid "Disallow"
539
  msgstr ""
540
 
541
- #: src/admin/file/EditController.php:166
542
  #: src/admin/bundle/LocaleController.php:130 tpl/admin/config/settings.php:234
543
  #: tpl/admin/config/apis.php:128 tpl/admin/config/prefs.php:45
544
  #: tpl/admin/common/inc-fsconn.php:16 tpl/admin/common/inc-fsconn.php:41
@@ -584,7 +584,7 @@ msgstr ""
584
  msgid "Editing of POT (template) files"
585
  msgstr ""
586
 
587
- #: src/admin/file/BaseController.php:103
588
  msgid "Editor"
589
  msgstr ""
590
 
@@ -596,13 +596,13 @@ msgid "%s translation"
596
  msgstr ""
597
 
598
  #. button for adding a new string when manually editing a POT file
599
- #: src/admin/file/EditController.php:192
600
  msgctxt "Editor"
601
  msgid "Add"
602
  msgstr ""
603
 
604
  #. Button that opens window for auto-translating
605
- #: src/admin/file/EditController.php:203
606
  msgctxt "Editor"
607
  msgid "Auto"
608
  msgstr ""
@@ -626,37 +626,37 @@ msgid "Context not loaded"
626
  msgstr ""
627
 
628
  #. Button for downloading a PO, MO or POT file
629
- #: src/admin/file/EditController.php:205
630
  msgctxt "Editor"
631
  msgid "Download"
632
  msgstr ""
633
 
634
  #. Label for the plural form of the original English text
635
- #: src/js/Strings.php:143
636
  msgctxt "Editor"
637
  msgid "Plural"
638
  msgstr ""
639
 
640
  #. button for removing a string when manually editing a POT file
641
- #: src/admin/file/EditController.php:194
642
  msgctxt "Editor"
643
  msgid "Remove"
644
  msgstr ""
645
 
646
  #. Button that reloads current screen
647
- #: src/admin/file/EditController.php:201
648
  msgctxt "Editor"
649
  msgid "Revert"
650
  msgstr ""
651
 
652
  #. Button that saves translations to disk
653
- #: src/admin/file/EditController.php:197
654
  msgctxt "Editor"
655
  msgid "Save"
656
  msgstr ""
657
 
658
  #. Label for the singular form of the original English text
659
- #: src/js/Strings.php:140
660
  msgctxt "Editor"
661
  msgid "Single"
662
  msgstr ""
@@ -680,13 +680,13 @@ msgid "Suggest translation"
680
  msgstr ""
681
 
682
  #. Button that runs in-editor sync/operation
683
- #: src/admin/file/EditController.php:199
684
  msgctxt "Editor"
685
  msgid "Sync"
686
  msgstr ""
687
 
688
  #. Button that toggles between "code" and regular text editing modes
689
- #: src/admin/file/EditController.php:211
690
  msgctxt "Editor"
691
  msgid "Toggle code view"
692
  msgstr ""
@@ -697,7 +697,7 @@ msgid "Toggle Fuzzy"
697
  msgstr ""
698
 
699
  #. Button that toggles invisible characters
700
- #: src/admin/file/EditController.php:209
701
  msgctxt "Editor"
702
  msgid "Toggle invisibles"
703
  msgstr ""
@@ -817,7 +817,7 @@ msgid_plural "%u files deleted"
817
  msgstr[0] ""
818
  msgstr[1] ""
819
 
820
- #: src/admin/file/InfoController.php:170
821
  msgid "File does not have a valid header"
822
  msgstr ""
823
 
@@ -825,7 +825,7 @@ msgstr ""
825
  msgid "File doesn't exist"
826
  msgstr ""
827
 
828
- #: src/admin/file/BaseController.php:105 tpl/admin/bundle/inc-po-table.php:22
829
  #: tpl/admin/bundle/locale.php:43
830
  msgid "File info"
831
  msgstr ""
@@ -912,7 +912,7 @@ msgid ""
912
  msgstr ""
913
 
914
  #. Placeholder text for text filter above editor
915
- #: src/admin/file/EditController.php:207
916
  msgid "Filter translations"
917
  msgstr ""
918
 
@@ -967,7 +967,7 @@ msgstr ""
967
  msgid "Grant access to roles"
968
  msgstr ""
969
 
970
- #: src/ajax/ApisController.php:26 src/admin/file/EditController.php:195
971
  msgid "Help"
972
  msgstr ""
973
 
@@ -1045,7 +1045,7 @@ msgstr ""
1045
  msgid "Installed languages"
1046
  msgstr ""
1047
 
1048
- #: src/Locale.php:324
1049
  msgid "Invalid locale"
1050
  msgstr ""
1051
 
@@ -1075,7 +1075,7 @@ msgstr ""
1075
  msgid "Language"
1076
  msgstr ""
1077
 
1078
- #: src/admin/file/InfoController.php:177
1079
  #, php-format
1080
  msgid "Language header is \"%s\" but file name contains \"%s\""
1081
  msgstr ""
@@ -1191,6 +1191,15 @@ msgstr ""
1191
  msgid "Merged from source code"
1192
  msgstr ""
1193
 
 
 
 
 
 
 
 
 
 
1194
  #: tpl/admin/file/info-po.php:84
1195
  msgid "Missing template"
1196
  msgstr ""
@@ -1237,7 +1246,7 @@ msgstr ""
1237
 
1238
  #: src/admin/init/InitPoController.php:16
1239
  #: src/admin/init/InitPoController.php:115
1240
- #: src/admin/file/BaseController.php:127 src/admin/bundle/ViewController.php:98
1241
  msgid "New language"
1242
  msgstr ""
1243
 
@@ -1396,48 +1405,48 @@ msgstr ""
1396
  msgid "Plugins"
1397
  msgstr ""
1398
 
1399
- #. Plural category for languages that have no plurals
1400
- #: src/Locale.php:397
1401
- msgctxt "Plural category"
1402
- msgid "All forms"
1403
- msgstr ""
1404
-
1405
  #. Plural category used in some multi-plural languages
1406
- #: src/Locale.php:411
1407
  msgctxt "Plural category"
1408
  msgid "Few"
1409
  msgstr ""
1410
 
1411
  #. Plural category used in some multi-plural languages
1412
- #: src/Locale.php:413
1413
  msgctxt "Plural category"
1414
  msgid "Many"
1415
  msgstr ""
1416
 
1417
  #. Plural category for singular quantity
1418
- #: src/Locale.php:407
1419
  msgctxt "Plural category"
1420
  msgid "One"
1421
  msgstr ""
1422
 
1423
  #. General plural category not covered by other forms
1424
- #: src/Locale.php:415
1425
  msgctxt "Plural category"
1426
  msgid "Other"
1427
  msgstr ""
1428
 
1429
  #. Plural category used in some multi-plural languages
1430
- #: src/Locale.php:409
1431
  msgctxt "Plural category"
1432
  msgid "Two"
1433
  msgstr ""
1434
 
1435
  #. Plural category for zero quantity
1436
- #: src/Locale.php:405
1437
  msgctxt "Plural category"
1438
  msgid "Zero"
1439
  msgstr ""
1440
 
 
 
 
 
 
 
1441
  #. Where %s is the name of a template file
1442
  #: tpl/admin/file/info-po.php:75
1443
  #, php-format
@@ -1468,6 +1477,10 @@ msgstr ""
1468
  msgid "PO file saved, but MO file compilation failed"
1469
  msgstr ""
1470
 
 
 
 
 
1471
  #: tpl/admin/config/settings.php:156
1472
  msgid "Pretty formatting"
1473
  msgstr ""
@@ -1505,7 +1518,7 @@ msgstr ""
1505
  msgid "Relative path to template file"
1506
  msgstr ""
1507
 
1508
- #: src/admin/file/BaseController.php:107
1509
  msgid "Relocate"
1510
  msgstr ""
1511
 
@@ -1513,7 +1526,7 @@ msgstr ""
1513
  msgid "Reset config"
1514
  msgstr ""
1515
 
1516
- #: src/admin/file/BaseController.php:106 tpl/admin/file/diff.php:31
1517
  msgid "Restore"
1518
  msgstr ""
1519
 
@@ -1605,7 +1618,7 @@ msgid "Sets"
1605
  msgstr ""
1606
 
1607
  #: src/mvc/AdminRouter.php:67 src/mvc/AdminRouter.php:72
1608
- #: tpl/ajax/modal-apis-empty.php:15 src/admin/file/EditController.php:165
1609
  #: tpl/admin/common/inc-fsconn.php:18 tpl/admin/common/inc-fsconn.php:43
1610
  #: tpl/admin/errors/no-backups.php:24
1611
  msgid "Settings"
@@ -1646,7 +1659,7 @@ msgstr ""
1646
  msgid "Skip template"
1647
  msgstr ""
1648
 
1649
- #: src/admin/file/BaseController.php:104
1650
  msgid "Source"
1651
  msgstr ""
1652
 
@@ -1870,7 +1883,7 @@ msgid "This information is for developers to find problems in the bundle setup"
1870
  msgstr ""
1871
 
1872
  #. Warning when POT file is opened in the file editor. It can be disabled in settings.
1873
- #: src/admin/file/EditController.php:164
1874
  msgid ""
1875
  "This is NOT a translation file. Manual editing of source strings is not "
1876
  "recommended."
@@ -1914,6 +1927,11 @@ msgid ""
1914
  "the file writeable by %s"
1915
  msgstr ""
1916
 
 
 
 
 
 
1917
  #: src/hooks/AdminHooks.php:103 tpl/ajax/modal-apis-batch.php:37
1918
  msgid "Translate"
1919
  msgstr ""
@@ -1949,7 +1967,7 @@ msgid "Translation progress %s%%"
1949
  msgstr ""
1950
 
1951
  #. Where %s is the name of the invalid POT file
1952
- #: src/ajax/SyncController.php:72 src/admin/file/EditController.php:122
1953
  #, php-format
1954
  msgid "Translation template is invalid (%s)"
1955
  msgstr ""
@@ -1979,7 +1997,7 @@ msgstr ""
1979
  msgid "Unexpected file type"
1980
  msgstr ""
1981
 
1982
- #: src/package/Header.php:86 src/admin/file/InfoController.php:138
1983
  msgid "Unknown author"
1984
  msgstr ""
1985
 
1
  #, fuzzy
2
  msgid ""
3
  msgstr ""
4
+ "Project-Id-Version: Loco Translate 2.6.2\n"
5
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/loco-translate/\n"
6
+ "POT-Creation-Date: 2022-05-24 10:44+0000\n"
7
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
9
  "Language-Team: \n"
13
  "Content-Type: text/plain; charset=UTF-8\n"
14
  "Content-Transfer-Encoding: 8bit\n"
15
  "X-Generator: Loco https://localise.biz/\n"
16
+ "X-Loco-Version: 2.6.2; wp-6.0-RC4-53443\n"
17
  "X-Domain: loco-translate"
18
 
19
  #: src/fs/FileWriter.php:214
502
  msgid "Debug"
503
  msgstr ""
504
 
505
+ #: src/admin/file/BaseController.php:123 tpl/admin/file/diff.php:32
506
  #: tpl/admin/bundle/inc-po-table.php:63 tpl/admin/bundle/locale.php:75
507
  msgid "Delete"
508
  msgstr ""
538
  msgid "Disallow"
539
  msgstr ""
540
 
541
+ #: src/admin/file/EditController.php:118 src/admin/file/EditController.php:167
542
  #: src/admin/bundle/LocaleController.php:130 tpl/admin/config/settings.php:234
543
  #: tpl/admin/config/apis.php:128 tpl/admin/config/prefs.php:45
544
  #: tpl/admin/common/inc-fsconn.php:16 tpl/admin/common/inc-fsconn.php:41
584
  msgid "Editing of POT (template) files"
585
  msgstr ""
586
 
587
+ #: src/admin/file/BaseController.php:118
588
  msgid "Editor"
589
  msgstr ""
590
 
596
  msgstr ""
597
 
598
  #. button for adding a new string when manually editing a POT file
599
+ #: src/admin/file/EditController.php:194
600
  msgctxt "Editor"
601
  msgid "Add"
602
  msgstr ""
603
 
604
  #. Button that opens window for auto-translating
605
+ #: src/admin/file/EditController.php:205
606
  msgctxt "Editor"
607
  msgid "Auto"
608
  msgstr ""
626
  msgstr ""
627
 
628
  #. Button for downloading a PO, MO or POT file
629
+ #: src/admin/file/EditController.php:207
630
  msgctxt "Editor"
631
  msgid "Download"
632
  msgstr ""
633
 
634
  #. Label for the plural form of the original English text
635
+ #: src/Locale.php:404 src/js/Strings.php:143
636
  msgctxt "Editor"
637
  msgid "Plural"
638
  msgstr ""
639
 
640
  #. button for removing a string when manually editing a POT file
641
+ #: src/admin/file/EditController.php:196
642
  msgctxt "Editor"
643
  msgid "Remove"
644
  msgstr ""
645
 
646
  #. Button that reloads current screen
647
+ #: src/admin/file/EditController.php:203
648
  msgctxt "Editor"
649
  msgid "Revert"
650
  msgstr ""
651
 
652
  #. Button that saves translations to disk
653
+ #: src/admin/file/EditController.php:199
654
  msgctxt "Editor"
655
  msgid "Save"
656
  msgstr ""
657
 
658
  #. Label for the singular form of the original English text
659
+ #: src/Locale.php:403 src/js/Strings.php:140
660
  msgctxt "Editor"
661
  msgid "Single"
662
  msgstr ""
680
  msgstr ""
681
 
682
  #. Button that runs in-editor sync/operation
683
+ #: src/admin/file/EditController.php:201
684
  msgctxt "Editor"
685
  msgid "Sync"
686
  msgstr ""
687
 
688
  #. Button that toggles between "code" and regular text editing modes
689
+ #: src/admin/file/EditController.php:213
690
  msgctxt "Editor"
691
  msgid "Toggle code view"
692
  msgstr ""
697
  msgstr ""
698
 
699
  #. Button that toggles invisible characters
700
+ #: src/admin/file/EditController.php:211
701
  msgctxt "Editor"
702
  msgid "Toggle invisibles"
703
  msgstr ""
817
  msgstr[0] ""
818
  msgstr[1] ""
819
 
820
+ #: src/admin/file/InfoController.php:169
821
  msgid "File does not have a valid header"
822
  msgstr ""
823
 
825
  msgid "File doesn't exist"
826
  msgstr ""
827
 
828
+ #: src/admin/file/BaseController.php:120 tpl/admin/bundle/inc-po-table.php:22
829
  #: tpl/admin/bundle/locale.php:43
830
  msgid "File info"
831
  msgstr ""
912
  msgstr ""
913
 
914
  #. Placeholder text for text filter above editor
915
+ #: src/admin/file/EditController.php:209
916
  msgid "Filter translations"
917
  msgstr ""
918
 
967
  msgid "Grant access to roles"
968
  msgstr ""
969
 
970
+ #: src/ajax/ApisController.php:26 src/admin/file/EditController.php:197
971
  msgid "Help"
972
  msgstr ""
973
 
1045
  msgid "Installed languages"
1046
  msgstr ""
1047
 
1048
+ #: src/Locale.php:330
1049
  msgid "Invalid locale"
1050
  msgstr ""
1051
 
1075
  msgid "Language"
1076
  msgstr ""
1077
 
1078
+ #: src/admin/file/InfoController.php:176
1079
  #, php-format
1080
  msgid "Language header is \"%s\" but file name contains \"%s\""
1081
  msgstr ""
1191
  msgid "Merged from source code"
1192
  msgstr ""
1193
 
1194
+ #: src/js/Strings.php:179
1195
+ msgid "Mismatching placeholder type; check against source text formatting"
1196
+ msgstr ""
1197
+
1198
+ #: src/js/Strings.php:173
1199
+ #, javascript-format
1200
+ msgid "Missing placeholders; source text formatting suggests at least %s"
1201
+ msgstr ""
1202
+
1203
  #: tpl/admin/file/info-po.php:84
1204
  msgid "Missing template"
1205
  msgstr ""
1246
 
1247
  #: src/admin/init/InitPoController.php:16
1248
  #: src/admin/init/InitPoController.php:115
1249
+ #: src/admin/file/BaseController.php:142 src/admin/bundle/ViewController.php:98
1250
  msgid "New language"
1251
  msgstr ""
1252
 
1405
  msgid "Plugins"
1406
  msgstr ""
1407
 
 
 
 
 
 
 
1408
  #. Plural category used in some multi-plural languages
1409
+ #: src/Locale.php:418
1410
  msgctxt "Plural category"
1411
  msgid "Few"
1412
  msgstr ""
1413
 
1414
  #. Plural category used in some multi-plural languages
1415
+ #: src/Locale.php:420
1416
  msgctxt "Plural category"
1417
  msgid "Many"
1418
  msgstr ""
1419
 
1420
  #. Plural category for singular quantity
1421
+ #: src/Locale.php:414
1422
  msgctxt "Plural category"
1423
  msgid "One"
1424
  msgstr ""
1425
 
1426
  #. General plural category not covered by other forms
1427
+ #: src/Locale.php:422
1428
  msgctxt "Plural category"
1429
  msgid "Other"
1430
  msgstr ""
1431
 
1432
  #. Plural category used in some multi-plural languages
1433
+ #: src/Locale.php:416
1434
  msgctxt "Plural category"
1435
  msgid "Two"
1436
  msgstr ""
1437
 
1438
  #. Plural category for zero quantity
1439
+ #: src/Locale.php:412
1440
  msgctxt "Plural category"
1441
  msgid "Zero"
1442
  msgstr ""
1443
 
1444
+ #. Shown when a PO file's Plural-Forms header has a different formula from the Unicode CLDR rules
1445
+ #: src/Locale.php:527
1446
+ msgid ""
1447
+ "Plural forms differ from Loco Translate's built in rules for this language"
1448
+ msgstr ""
1449
+
1450
  #. Where %s is the name of a template file
1451
  #: tpl/admin/file/info-po.php:75
1452
  #, php-format
1477
  msgid "PO file saved, but MO file compilation failed"
1478
  msgstr ""
1479
 
1480
+ #: src/js/Strings.php:176
1481
+ msgid "Possible syntax error in string formatting"
1482
+ msgstr ""
1483
+
1484
  #: tpl/admin/config/settings.php:156
1485
  msgid "Pretty formatting"
1486
  msgstr ""
1518
  msgid "Relative path to template file"
1519
  msgstr ""
1520
 
1521
+ #: src/admin/file/BaseController.php:122
1522
  msgid "Relocate"
1523
  msgstr ""
1524
 
1526
  msgid "Reset config"
1527
  msgstr ""
1528
 
1529
+ #: src/admin/file/BaseController.php:121 tpl/admin/file/diff.php:31
1530
  msgid "Restore"
1531
  msgstr ""
1532
 
1618
  msgstr ""
1619
 
1620
  #: src/mvc/AdminRouter.php:67 src/mvc/AdminRouter.php:72
1621
+ #: tpl/ajax/modal-apis-empty.php:15 src/admin/file/EditController.php:166
1622
  #: tpl/admin/common/inc-fsconn.php:18 tpl/admin/common/inc-fsconn.php:43
1623
  #: tpl/admin/errors/no-backups.php:24
1624
  msgid "Settings"
1659
  msgid "Skip template"
1660
  msgstr ""
1661
 
1662
+ #: src/admin/file/BaseController.php:119
1663
  msgid "Source"
1664
  msgstr ""
1665
 
1883
  msgstr ""
1884
 
1885
  #. Warning when POT file is opened in the file editor. It can be disabled in settings.
1886
+ #: src/admin/file/EditController.php:165
1887
  msgid ""
1888
  "This is NOT a translation file. Manual editing of source strings is not "
1889
  "recommended."
1927
  "the file writeable by %s"
1928
  msgstr ""
1929
 
1930
+ #: src/js/Strings.php:170
1931
+ #, javascript-format
1932
+ msgid "Too many placeholders; source text formatting suggests a maximum of %s"
1933
+ msgstr ""
1934
+
1935
  #: src/hooks/AdminHooks.php:103 tpl/ajax/modal-apis-batch.php:37
1936
  msgid "Translate"
1937
  msgstr ""
1967
  msgstr ""
1968
 
1969
  #. Where %s is the name of the invalid POT file
1970
+ #: src/ajax/SyncController.php:72 src/admin/file/EditController.php:123
1971
  #, php-format
1972
  msgid "Translation template is invalid (%s)"
1973
  msgstr ""
1997
  msgid "Unexpected file type"
1998
  msgstr ""
1999
 
2000
+ #: src/package/Header.php:86 src/admin/file/InfoController.php:137
2001
  msgid "Unknown author"
2002
  msgstr ""
2003
 
lib/data/locales.php CHANGED
@@ -2,4 +2,4 @@
2
  /**
3
  * Compiled data. Do not edit.
4
  */
5
- return ['af'=>[0=>'Afrikaans',1=>'Afrikaans'],'am'=>[0=>'Amharic',1=>'አማርኛ'],'ar'=>[0=>'Arabic',1=>'العربية'],'ary'=>[0=>'Moroccan Arabic',1=>'العربية المغربية'],'as'=>[0=>'Assamese',1=>'অসমীয়া'],'az'=>[0=>'Azerbaijani',1=>'Azərbaycan dili'],'azb'=>[0=>'South Azerbaijani',1=>'گؤنئی آذربایجان'],'bel'=>[0=>'Belarusian',1=>'Беларуская мова'],'bg_BG'=>[0=>'Bulgarian',1=>'Български'],'bn_BD'=>[0=>'Bengali (Bangladesh)',1=>'বাংলা'],'bo'=>[0=>'Tibetan',1=>'བོད་ཡིག'],'bs_BA'=>[0=>'Bosnian',1=>'Bosanski'],'ca'=>[0=>'Catalan',1=>'Català'],'ceb'=>[0=>'Cebuano',1=>'Cebuano'],'cs_CZ'=>[0=>'Czech',1=>'Čeština'],'cy'=>[0=>'Welsh',1=>'Cymraeg'],'da_DK'=>[0=>'Danish',1=>'Dansk'],'de_DE_formal'=>[0=>'German (Formal)',1=>'Deutsch (Sie)'],'de_DE'=>[0=>'German',1=>'Deutsch'],'de_AT'=>[0=>'German (Austria)',1=>'Deutsch (Österreich)'],'de_CH'=>[0=>'German (Switzerland)',1=>'Deutsch (Schweiz)'],'de_CH_informal'=>[0=>'German (Switzerland, Informal)',1=>'Deutsch (Schweiz, Du)'],'dsb'=>[0=>'Lower Sorbian',1=>'Dolnoserbšćina'],'dzo'=>[0=>'Dzongkha',1=>'རྫོང་ཁ'],'el'=>[0=>'Greek',1=>'Ελληνικά'],'en_GB'=>[0=>'English (UK)',1=>'English (UK)'],'en_ZA'=>[0=>'English (South Africa)',1=>'English (South Africa)'],'en_AU'=>[0=>'English (Australia)',1=>'English (Australia)'],'en_CA'=>[0=>'English (Canada)',1=>'English (Canada)'],'en_NZ'=>[0=>'English (New Zealand)',1=>'English (New Zealand)'],'eo'=>[0=>'Esperanto',1=>'Esperanto'],'es_AR'=>[0=>'Spanish (Argentina)',1=>'Español de Argentina'],'es_CO'=>[0=>'Spanish (Colombia)',1=>'Español de Colombia'],'es_ES'=>[0=>'Spanish (Spain)',1=>'Español'],'es_MX'=>[0=>'Spanish (Mexico)',1=>'Español de México'],'es_CR'=>[0=>'Spanish (Costa Rica)',1=>'Español de Costa Rica'],'es_PE'=>[0=>'Spanish (Peru)',1=>'Español de Perú'],'es_DO'=>[0=>'Spanish (Dominican Republic)',1=>'Español de República Dominicana'],'es_UY'=>[0=>'Spanish (Uruguay)',1=>'Español de Uruguay'],'es_CL'=>[0=>'Spanish (Chile)',1=>'Español de Chile'],'es_PR'=>[0=>'Spanish (Puerto Rico)',1=>'Español de Puerto Rico'],'es_EC'=>[0=>'Spanish (Ecuador)',1=>'Español de Ecuador'],'es_GT'=>[0=>'Spanish (Guatemala)',1=>'Español de Guatemala'],'es_VE'=>[0=>'Spanish (Venezuela)',1=>'Español de Venezuela'],'et'=>[0=>'Estonian',1=>'Eesti'],'eu'=>[0=>'Basque',1=>'Euskara'],'fa_IR'=>[0=>'Persian',1=>'فارسی'],'fa_AF'=>[0=>'Persian (Afghanistan)',1=>'(فارسی (افغانستان'],'fi'=>[0=>'Finnish',1=>'Suomi'],'fr_CA'=>[0=>'French (Canada)',1=>'Français du Canada'],'fr_FR'=>[0=>'French (France)',1=>'Français'],'fr_BE'=>[0=>'French (Belgium)',1=>'Français de Belgique'],'fur'=>[0=>'Friulian',1=>'Friulian'],'gd'=>[0=>'Scottish Gaelic',1=>'Gàidhlig'],'gl_ES'=>[0=>'Galician',1=>'Galego'],'gu'=>[0=>'Gujarati',1=>'ગુજરાતી'],'haz'=>[0=>'Hazaragi',1=>'هزاره گی'],'he_IL'=>[0=>'Hebrew',1=>'עִבְרִית'],'hi_IN'=>[0=>'Hindi',1=>'हिन्दी'],'hr'=>[0=>'Croatian',1=>'Hrvatski'],'hsb'=>[0=>'Upper Sorbian',1=>'Hornjoserbšćina'],'hu_HU'=>[0=>'Hungarian',1=>'Magyar'],'hy'=>[0=>'Armenian',1=>'Հայերեն'],'id_ID'=>[0=>'Indonesian',1=>'Bahasa Indonesia'],'is_IS'=>[0=>'Icelandic',1=>'Íslenska'],'it_IT'=>[0=>'Italian',1=>'Italiano'],'ja'=>[0=>'Japanese',1=>'日本語'],'jv_ID'=>[0=>'Javanese',1=>'Basa Jawa'],'ka_GE'=>[0=>'Georgian',1=>'ქართული'],'kab'=>[0=>'Kabyle',1=>'Taqbaylit'],'kk'=>[0=>'Kazakh',1=>'Қазақ тілі'],'km'=>[0=>'Khmer',1=>'ភាសាខ្មែរ'],'kn'=>[0=>'Kannada',1=>'ಕನ್ನಡ'],'ko_KR'=>[0=>'Korean',1=>'한국어'],'ckb'=>[0=>'Kurdish (Sorani)',1=>'كوردی‎'],'lo'=>[0=>'Lao',1=>'ພາສາລາວ'],'lt_LT'=>[0=>'Lithuanian',1=>'Lietuvių kalba'],'lv'=>[0=>'Latvian',1=>'Latviešu valoda'],'mk_MK'=>[0=>'Macedonian',1=>'Македонски јазик'],'ml_IN'=>[0=>'Malayalam',1=>'മലയാളം'],'mn'=>[0=>'Mongolian',1=>'Монгол'],'mr'=>[0=>'Marathi',1=>'मराठी'],'ms_MY'=>[0=>'Malay',1=>'Bahasa Melayu'],'my_MM'=>[0=>'Myanmar (Burmese)',1=>'ဗမာစာ'],'nb_NO'=>[0=>'Norwegian (Bokmål)',1=>'Norsk bokmål'],'ne_NP'=>[0=>'Nepali',1=>'नेपाली'],'nl_NL_formal'=>[0=>'Dutch (Formal)',1=>'Nederlands (Formeel)'],'nl_NL'=>[0=>'Dutch',1=>'Nederlands'],'nl_BE'=>[0=>'Dutch (Belgium)',1=>'Nederlands (België)'],'nn_NO'=>[0=>'Norwegian (Nynorsk)',1=>'Norsk nynorsk'],'oci'=>[0=>'Occitan',1=>'Occitan'],'pa_IN'=>[0=>'Punjabi',1=>'ਪੰਜਾਬੀ'],'pl_PL'=>[0=>'Polish',1=>'Polski'],'ps'=>[0=>'Pashto',1=>'پښتو'],'pt_BR'=>[0=>'Portuguese (Brazil)',1=>'Português do Brasil'],'pt_PT'=>[0=>'Portuguese (Portugal)',1=>'Português'],'pt_AO'=>[0=>'Portuguese (Angola)',1=>'Português de Angola'],'pt_PT_ao90'=>[0=>'Portuguese (Portugal, AO90)',1=>'Português (AO90)'],'rhg'=>[0=>'Rohingya',1=>'Ruáinga'],'ro_RO'=>[0=>'Romanian',1=>'Română'],'ru_RU'=>[0=>'Russian',1=>'Русский'],'sah'=>[0=>'Sakha',1=>'Сахалыы'],'snd'=>[0=>'Sindhi',1=>'سنڌي'],'si_LK'=>[0=>'Sinhala',1=>'සිංහල'],'sk_SK'=>[0=>'Slovak',1=>'Slovenčina'],'skr'=>[0=>'Saraiki',1=>'سرائیکی'],'sl_SI'=>[0=>'Slovenian',1=>'Slovenščina'],'sq'=>[0=>'Albanian',1=>'Shqip'],'sr_RS'=>[0=>'Serbian',1=>'Српски језик'],'sv_SE'=>[0=>'Swedish',1=>'Svenska'],'sw'=>[0=>'Swahili',1=>'Kiswahili'],'szl'=>[0=>'Silesian',1=>'Ślōnskŏ gŏdka'],'ta_IN'=>[0=>'Tamil',1=>'தமிழ்'],'ta_LK'=>[0=>'Tamil (Sri Lanka)',1=>'தமிழ்'],'te'=>[0=>'Telugu',1=>'తెలుగు'],'th'=>[0=>'Thai',1=>'ไทย'],'tl'=>[0=>'Tagalog',1=>'Tagalog'],'tr_TR'=>[0=>'Turkish',1=>'Türkçe'],'tt_RU'=>[0=>'Tatar',1=>'Татар теле'],'tah'=>[0=>'Tahitian',1=>'Reo Tahiti'],'ug_CN'=>[0=>'Uighur',1=>'ئۇيغۇرچە'],'uk'=>[0=>'Ukrainian',1=>'Українська'],'ur'=>[0=>'Urdu',1=>'اردو'],'uz_UZ'=>[0=>'Uzbek',1=>'O‘zbekcha'],'vi'=>[0=>'Vietnamese',1=>'Tiếng Việt'],'zh_CN'=>[0=>'Chinese (China)',1=>'简体中文'],'zh_TW'=>[0=>'Chinese (Taiwan)',1=>'繁體中文'],'zh_HK'=>[0=>'Chinese (Hong Kong)',1=>'香港中文版 ']];
2
  /**
3
  * Compiled data. Do not edit.
4
  */
5
+ return ['af'=>[0=>'Afrikaans',1=>'Afrikaans'],'am'=>[0=>'Amharic',1=>'አማርኛ'],'ar'=>[0=>'Arabic',1=>'العربية'],'ary'=>[0=>'Moroccan Arabic',1=>'العربية المغربية'],'as'=>[0=>'Assamese',1=>'অসমীয়া'],'azb'=>[0=>'South Azerbaijani',1=>'گؤنئی آذربایجان'],'az'=>[0=>'Azerbaijani',1=>'Azərbaycan dili'],'bel'=>[0=>'Belarusian',1=>'Беларуская мова'],'bg_BG'=>[0=>'Bulgarian',1=>'Български'],'bn_BD'=>[0=>'Bengali (Bangladesh)',1=>'বাংলা'],'bo'=>[0=>'Tibetan',1=>'བོད་ཡིག'],'bs_BA'=>[0=>'Bosnian',1=>'Bosanski'],'ca'=>[0=>'Catalan',1=>'Català'],'ceb'=>[0=>'Cebuano',1=>'Cebuano'],'cs_CZ'=>[0=>'Czech',1=>'Čeština'],'cy'=>[0=>'Welsh',1=>'Cymraeg'],'da_DK'=>[0=>'Danish',1=>'Dansk'],'de_CH_informal'=>[0=>'German (Switzerland, Informal)',1=>'Deutsch (Schweiz, Du)'],'de_AT'=>[0=>'German (Austria)',1=>'Deutsch (Österreich)'],'de_DE_formal'=>[0=>'German (Formal)',1=>'Deutsch (Sie)'],'de_DE'=>[0=>'German',1=>'Deutsch'],'de_CH'=>[0=>'German (Switzerland)',1=>'Deutsch (Schweiz)'],'dsb'=>[0=>'Lower Sorbian',1=>'Dolnoserbšćina'],'dzo'=>[0=>'Dzongkha',1=>'རྫོང་ཁ'],'el'=>[0=>'Greek',1=>'Ελληνικά'],'en_ZA'=>[0=>'English (South Africa)',1=>'English (South Africa)'],'en_CA'=>[0=>'English (Canada)',1=>'English (Canada)'],'en_NZ'=>[0=>'English (New Zealand)',1=>'English (New Zealand)'],'en_GB'=>[0=>'English (UK)',1=>'English (UK)'],'en_AU'=>[0=>'English (Australia)',1=>'English (Australia)'],'eo'=>[0=>'Esperanto',1=>'Esperanto'],'es_EC'=>[0=>'Spanish (Ecuador)',1=>'Español de Ecuador'],'es_AR'=>[0=>'Spanish (Argentina)',1=>'Español de Argentina'],'es_CO'=>[0=>'Spanish (Colombia)',1=>'Español de Colombia'],'es_MX'=>[0=>'Spanish (Mexico)',1=>'Español de México'],'es_DO'=>[0=>'Spanish (Dominican Republic)',1=>'Español de República Dominicana'],'es_PE'=>[0=>'Spanish (Peru)',1=>'Español de Perú'],'es_UY'=>[0=>'Spanish (Uruguay)',1=>'Español de Uruguay'],'es_CL'=>[0=>'Spanish (Chile)',1=>'Español de Chile'],'es_PR'=>[0=>'Spanish (Puerto Rico)',1=>'Español de Puerto Rico'],'es_VE'=>[0=>'Spanish (Venezuela)',1=>'Español de Venezuela'],'es_GT'=>[0=>'Spanish (Guatemala)',1=>'Español de Guatemala'],'es_ES'=>[0=>'Spanish (Spain)',1=>'Español'],'es_CR'=>[0=>'Spanish (Costa Rica)',1=>'Español de Costa Rica'],'et'=>[0=>'Estonian',1=>'Eesti'],'eu'=>[0=>'Basque',1=>'Euskara'],'fa_IR'=>[0=>'Persian',1=>'فارسی'],'fa_AF'=>[0=>'Persian (Afghanistan)',1=>'(فارسی (افغانستان'],'fi'=>[0=>'Finnish',1=>'Suomi'],'fr_CA'=>[0=>'French (Canada)',1=>'Français du Canada'],'fr_FR'=>[0=>'French (France)',1=>'Français'],'fr_BE'=>[0=>'French (Belgium)',1=>'Français de Belgique'],'fur'=>[0=>'Friulian',1=>'Friulian'],'gd'=>[0=>'Scottish Gaelic',1=>'Gàidhlig'],'gl_ES'=>[0=>'Galician',1=>'Galego'],'gu'=>[0=>'Gujarati',1=>'ગુજરાતી'],'haz'=>[0=>'Hazaragi',1=>'هزاره گی'],'he_IL'=>[0=>'Hebrew',1=>'עִבְרִית'],'hi_IN'=>[0=>'Hindi',1=>'हिन्दी'],'hr'=>[0=>'Croatian',1=>'Hrvatski'],'hsb'=>[0=>'Upper Sorbian',1=>'Hornjoserbšćina'],'hu_HU'=>[0=>'Hungarian',1=>'Magyar'],'hy'=>[0=>'Armenian',1=>'Հայերեն'],'id_ID'=>[0=>'Indonesian',1=>'Bahasa Indonesia'],'is_IS'=>[0=>'Icelandic',1=>'Íslenska'],'it_IT'=>[0=>'Italian',1=>'Italiano'],'ja'=>[0=>'Japanese',1=>'日本語'],'jv_ID'=>[0=>'Javanese',1=>'Basa Jawa'],'ka_GE'=>[0=>'Georgian',1=>'ქართული'],'kab'=>[0=>'Kabyle',1=>'Taqbaylit'],'kk'=>[0=>'Kazakh',1=>'Қазақ тілі'],'km'=>[0=>'Khmer',1=>'ភាសាខ្មែរ'],'kn'=>[0=>'Kannada',1=>'ಕನ್ನಡ'],'ko_KR'=>[0=>'Korean',1=>'한국어'],'ckb'=>[0=>'Kurdish (Sorani)',1=>'كوردی‎'],'lo'=>[0=>'Lao',1=>'ພາສາລາວ'],'lt_LT'=>[0=>'Lithuanian',1=>'Lietuvių kalba'],'lv'=>[0=>'Latvian',1=>'Latviešu valoda'],'mk_MK'=>[0=>'Macedonian',1=>'Македонски јазик'],'ml_IN'=>[0=>'Malayalam',1=>'മലയാളം'],'mn'=>[0=>'Mongolian',1=>'Монгол'],'mr'=>[0=>'Marathi',1=>'मराठी'],'ms_MY'=>[0=>'Malay',1=>'Bahasa Melayu'],'my_MM'=>[0=>'Myanmar (Burmese)',1=>'ဗမာစာ'],'nb_NO'=>[0=>'Norwegian (Bokmål)',1=>'Norsk bokmål'],'ne_NP'=>[0=>'Nepali',1=>'नेपाली'],'nl_NL_formal'=>[0=>'Dutch (Formal)',1=>'Nederlands (Formeel)'],'nl_BE'=>[0=>'Dutch (Belgium)',1=>'Nederlands (België)'],'nl_NL'=>[0=>'Dutch',1=>'Nederlands'],'nn_NO'=>[0=>'Norwegian (Nynorsk)',1=>'Norsk nynorsk'],'oci'=>[0=>'Occitan',1=>'Occitan'],'pa_IN'=>[0=>'Punjabi',1=>'ਪੰਜਾਬੀ'],'pl_PL'=>[0=>'Polish',1=>'Polski'],'ps'=>[0=>'Pashto',1=>'پښتو'],'pt_PT'=>[0=>'Portuguese (Portugal)',1=>'Português'],'pt_AO'=>[0=>'Portuguese (Angola)',1=>'Português de Angola'],'pt_PT_ao90'=>[0=>'Portuguese (Portugal, AO90)',1=>'Português (AO90)'],'pt_BR'=>[0=>'Portuguese (Brazil)',1=>'Português do Brasil'],'rhg'=>[0=>'Rohingya',1=>'Ruáinga'],'ro_RO'=>[0=>'Romanian',1=>'Română'],'ru_RU'=>[0=>'Russian',1=>'Русский'],'sah'=>[0=>'Sakha',1=>'Сахалыы'],'snd'=>[0=>'Sindhi',1=>'سنڌي'],'si_LK'=>[0=>'Sinhala',1=>'සිංහල'],'sk_SK'=>[0=>'Slovak',1=>'Slovenčina'],'skr'=>[0=>'Saraiki',1=>'سرائیکی'],'sl_SI'=>[0=>'Slovenian',1=>'Slovenščina'],'sq'=>[0=>'Albanian',1=>'Shqip'],'sr_RS'=>[0=>'Serbian',1=>'Српски језик'],'sv_SE'=>[0=>'Swedish',1=>'Svenska'],'sw'=>[0=>'Swahili',1=>'Kiswahili'],'szl'=>[0=>'Silesian',1=>'Ślōnskŏ gŏdka'],'ta_IN'=>[0=>'Tamil',1=>'தமிழ்'],'ta_LK'=>[0=>'Tamil (Sri Lanka)',1=>'தமிழ்'],'te'=>[0=>'Telugu',1=>'తెలుగు'],'th'=>[0=>'Thai',1=>'ไทย'],'tl'=>[0=>'Tagalog',1=>'Tagalog'],'tr_TR'=>[0=>'Turkish',1=>'Türkçe'],'tt_RU'=>[0=>'Tatar',1=>'Татар теле'],'tah'=>[0=>'Tahitian',1=>'Reo Tahiti'],'ug_CN'=>[0=>'Uighur',1=>'ئۇيغۇرچە'],'uk'=>[0=>'Ukrainian',1=>'Українська'],'ur'=>[0=>'Urdu',1=>'اردو'],'uz_UZ'=>[0=>'Uzbek',1=>'O‘zbekcha'],'vi'=>[0=>'Vietnamese',1=>'Tiếng Việt'],'zh_HK'=>[0=>'Chinese (Hong Kong)',1=>'香港中文版 '],'zh_TW'=>[0=>'Chinese (Taiwan)',1=>'繁體中文'],'zh_CN'=>[0=>'Chinese (China)',1=>'简体中文']];
lib/data/plurals.php CHANGED
@@ -2,4 +2,4 @@
2
  /**
3
  * Compiled data. Do not edit.
4
  */
5
- return ['ak'=>1,'am'=>1,'ar'=>2,'ary'=>2,'be'=>3,'bm'=>4,'bo'=>4,'br'=>1,'bs'=>3,'cs'=>5,'cy'=>6,'dz'=>4,'ff'=>1,'fr'=>1,'ga'=>7,'gd'=>8,'gv'=>9,'hr'=>10,'id'=>4,'ii'=>4,'iu'=>11,'ja'=>4,'ka'=>4,'kk'=>4,'km'=>4,'kn'=>4,'ko'=>4,'kw'=>11,'ky'=>4,'ln'=>1,'lo'=>4,'lt'=>12,'lv'=>13,'mg'=>1,'mi'=>1,'mk'=>14,'ms'=>4,'mt'=>15,'my'=>4,'nr'=>4,'oc'=>1,'pl'=>16,'ro'=>17,'ru'=>3,'sa'=>11,'sg'=>4,'sk'=>5,'sl'=>18,'sm'=>4,'sr'=>3,'su'=>4,'th'=>4,'ti'=>1,'tl'=>1,'to'=>4,'tt'=>4,'ug'=>4,'uk'=>3,'vi'=>4,'wa'=>1,'wo'=>4,'yo'=>4,'zh'=>4,''=>[0=>[0=>'n != 1',1=>[0=>'one',1=>'other']],1=>[0=>'n > 1',1=>[0=>'one',1=>'other']],2=>[0=>'n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100 >= 3 && n%100<=10 ? 3 : n%100 >= 11 && n%100<=99 ? 4 : 5',1=>[0=>'zero',1=>'one',2=>'two',3=>'few',4=>'many',5=>'other']],3=>[0=>'(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2)',1=>[0=>'one',1=>'few',2=>'other']],4=>[0=>'0',1=>[0=>'other']],5=>[0=>'( n == 1 ) ? 0 : ( n >= 2 && n <= 4 ) ? 1 : 2',1=>[0=>'one',1=>'few',2=>'other']],6=>[0=>'n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n==3 ? 3 : n==6 ? 4 : 5',1=>[0=>'zero',1=>'one',2=>'two',3=>'few',4=>'many',5=>'other']],7=>[0=>'n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4',1=>[0=>'one',1=>'two',2=>'few',3=>'many',4=>'other']],8=>[0=>'n==1||n==11 ? 0 : n==2||n==12 ? 1 :(n >= 3 && n<=10)||(n >= 13 && n<=19)? 2 : 3',1=>[0=>'one',1=>'two',2=>'few',3=>'other']],9=>[0=>'n%10==1 ? 0 : n%10==2 ? 1 : n%20==0 ? 2 : 3',1=>[0=>'one',1=>'two',2=>'few',3=>'other']],10=>[0=>'n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2',1=>[0=>'one',1=>'few',2=>'other']],11=>[0=>'n == 1 ? 0 : n == 2 ? 1 : 2',1=>[0=>'one',1=>'two',2=>'other']],12=>[0=>'(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 &&(n%100<10||n%100 >= 20)? 1 : 2)',1=>[0=>'one',1=>'few',2=>'other']],13=>[0=>'n % 10 == 1 && n % 100 != 11 ? 0 : n != 0 ? 1 : 2',1=>[0=>'one',1=>'other',2=>'zero']],14=>[0=>'( n % 10 == 1 && n % 100 != 11 ) ? 0 : 1',1=>[0=>'one',1=>'other']],15=>[0=>'(n==1 ? 0 : n==0||( n%100>1 && n%100<11)? 1 :(n%100>10 && n%100<20)? 2 : 3)',1=>[0=>'one',1=>'few',2=>'many',3=>'other']],16=>[0=>'(n==1 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2)',1=>[0=>'one',1=>'few',2=>'other']],17=>[0=>'(n==1 ? 0 :(((n%100>19)||(( n%100==0)&&(n!=0)))? 2 : 1))',1=>[0=>'one',1=>'few',2=>'other']],18=>[0=>'n%100==1 ? 0 : n%100==2 ? 1 : n%100==3||n%100==4 ? 2 : 3',1=>[0=>'one',1=>'two',2=>'few',3=>'other']]]];
2
  /**
3
  * Compiled data. Do not edit.
4
  */
5
+ return ['ak'=>1,'am'=>1,'ar'=>2,'ary'=>2,'be'=>3,'bm'=>4,'bo'=>4,'br'=>1,'bs'=>3,'cs'=>5,'cy'=>6,'dz'=>4,'ff'=>1,'fr'=>1,'ga'=>7,'gd'=>8,'gv'=>9,'hr'=>10,'id'=>4,'ii'=>4,'iu'=>11,'ja'=>4,'ka'=>4,'kk'=>4,'km'=>4,'kn'=>4,'ko'=>4,'kw'=>11,'ky'=>4,'ln'=>1,'lo'=>4,'lt'=>12,'lv'=>13,'mg'=>1,'mi'=>1,'mk'=>14,'ms'=>4,'mt'=>15,'my'=>4,'nr'=>4,'oc'=>1,'pl'=>16,'ro'=>17,'ru'=>3,'sa'=>11,'sg'=>4,'sk'=>5,'sl'=>18,'sm'=>4,'sr'=>3,'su'=>4,'th'=>4,'ti'=>1,'tl'=>1,'to'=>4,'tt'=>4,'ug'=>4,'uk'=>3,'vi'=>4,'wa'=>1,'wo'=>4,'yo'=>4,'zh'=>4,''=>[0=>[0=>'n != 1',1=>[1=>'one','0,2,3…'=>'other']],1=>[0=>'n > 1',1=>['0,1'=>'one','2,3,4…'=>'other']],2=>[0=>'n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100 >= 3 && n%100<=10 ? 3 : n%100 >= 11 && n%100<=99 ? 4 : 5',1=>[0=>'zero',1=>'one',2=>'two','3,4,5…'=>'few','11,12,13…'=>'many','100,101,102…'=>'other']],3=>[0=>'(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2)',1=>['1,21,31…'=>'one','2,3,4…'=>'few','0,5,6…'=>'other']],4=>[0=>'0',1=>['0,1,2…'=>'other']],5=>[0=>'( n == 1 ) ? 0 : ( n >= 2 && n <= 4 ) ? 1 : 2',1=>[1=>'one','2,3,4'=>'few','0,5,6…'=>'other']],6=>[0=>'n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n==3 ? 3 : n==6 ? 4 : 5',1=>[0=>'zero',1=>'one',2=>'two',3=>'few',6=>'many','4,5,7…'=>'other']],7=>[0=>'n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4',1=>[1=>'one',2=>'two','0,3,4…'=>'few','7,8,9…'=>'many','11,12,13…'=>'other']],8=>[0=>'n==1||n==11 ? 0 : n==2||n==12 ? 1 :(n >= 3 && n<=10)||(n >= 13 && n<=19)? 2 : 3',1=>['1,11'=>'one','2,12'=>'two','3,4,5…'=>'few','0,20,21…'=>'other']],9=>[0=>'n%10==1 ? 0 : n%10==2 ? 1 : n%20==0 ? 2 : 3',1=>['1,11,21…'=>'one','2,12,22…'=>'two','0,20,100…'=>'few','3,4,5…'=>'other']],10=>[0=>'n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2',1=>['1,21,31…'=>'one','2,3,4…'=>'few','0,5,6…'=>'other']],11=>[0=>'n == 1 ? 0 : n == 2 ? 1 : 2',1=>[1=>'one',2=>'two','0,3,4…'=>'other']],12=>[0=>'(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 &&(n%100<10||n%100 >= 20)? 1 : 2)',1=>['1,21,31…'=>'one','2,3,4…'=>'few','0,10,11…'=>'other']],13=>[0=>'n%10==0||( n%100 >= 11 && n%100<=19)? 0 :(n%10==1 && n%100!=11 ? 1 : 2)',1=>['0,10,11…'=>'zero','1,21,31…'=>'one','2,3,4…'=>'other']],14=>[0=>'( n % 10 == 1 && n % 100 != 11 ) ? 0 : 1',1=>['1,21,31…'=>'one','0,2,3…'=>'other']],15=>[0=>'(n==1 ? 0 : n==0||( n%100>1 && n%100<11)? 1 :(n%100>10 && n%100<20)? 2 : 3)',1=>[1=>'one','0,2,3…'=>'few','11,12,13…'=>'many','20,21,22…'=>'other']],16=>[0=>'(n==1 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2)',1=>[1=>'one','2,3,4…'=>'few','0,5,6…'=>'other']],17=>[0=>'(n==1 ? 0 :(((n%100>19)||(( n%100==0)&&(n!=0)))? 2 : 1))',1=>[1=>'one','0,2,3…'=>'few','20,21,22…'=>'other']],18=>[0=>'n%100==1 ? 0 : n%100==2 ? 1 : n%100==3||n%100==4 ? 2 : 3',1=>['1,101,201…'=>'one','2,102,202…'=>'two','3,4,103…'=>'few','0,5,6…'=>'other']]]];
loco.php CHANGED
@@ -4,10 +4,10 @@ Plugin Name: Loco Translate
4
  Plugin URI: https://wordpress.org/plugins/loco-translate/
5
  Description: Translate themes and plugins directly in WordPress
6
  Author: Tim Whitlock
7
- Version: 2.6.1
8
  Requires at least: 5.2
9
  Requires PHP: 5.6.20
10
- Tested up to: 5.9.2
11
  Author URI: https://localise.biz/wordpress/plugin
12
  Text Domain: loco-translate
13
  Domain Path: /languages/
@@ -33,7 +33,7 @@ function loco_plugin_file(){
33
  * @return string
34
  */
35
  function loco_plugin_version(){
36
- return '2.6.1';
37
  }
38
 
39
 
4
  Plugin URI: https://wordpress.org/plugins/loco-translate/
5
  Description: Translate themes and plugins directly in WordPress
6
  Author: Tim Whitlock
7
+ Version: 2.6.2
8
  Requires at least: 5.2
9
  Requires PHP: 5.6.20
10
+ Tested up to: 6.0.0
11
  Author URI: https://localise.biz/wordpress/plugin
12
  Text Domain: loco-translate
13
  Domain Path: /languages/
33
  * @return string
34
  */
35
  function loco_plugin_version(){
36
+ return '2.6.2';
37
  }
38
 
39
 
pub/css/admin.css CHANGED
@@ -1 +1 @@
1
- ._ajax_loader_f2{background-image:url(../img/ajax-loader-f2.gif?v=2.6.1);background-repeat:no-repeat;min-height:16px}._ajax_loader_f2x4{background:transparent url(../img/ajax-loader-f2-x4.gif?v=2.6.1) 0 0 no-repeat;min-height:75px}._ajax_loader_cc{background-image:url(../img/ajax-loader-cc.gif?v=2.6.1);background-repeat:no-repeat;min-height:16px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx){._ajax_loader_f2{background-image:url(../img/ajax-loader-f2-x2.gif?v=2.6.1);background-size:16px}._ajax_loader_cc{background-image:url(../img/ajax-loader-cc-x2.gif?v=2.6.1);background-size:16px}}._green_glow_inner{-webkit-box-shadow:inset 0 0 10px 0 #3db63d;-moz-box-shadow:inset 0 0 10px 0 #3db63d;box-shadow:inset 0 0 10px 0 #3db63d}._green_glow_outer{-webkit-box-shadow:0 0 .5em 0 #3db63d;-moz-box-shadow:0 0 .5em 0 #3db63d;box-shadow:0 0 .5em 0 #3db63d}.loco-font,#loco-admin.wrap .wp-list-table th.loco-sort.loco-asc:after,#loco-admin.wrap .wp-list-table th.loco-sort.loco-desc:after,#loco-admin.wrap .icon,#loco-admin.wrap .has-icon:before{font-family:"loco";speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@font-face{font-family:"loco";src:url("../font/loco.eot?v=2.6.1");src:url("../font/loco.eot?v=2.6.1?#iefix") format("embedded-opentype"),url("../font/loco.woff?v=2.6.1") format("woff"),url("../font/loco.ttf?v=2.6.1") format("truetype"),url("../font/loco.svg?v=2.6.1#loco") format("svg");font-weight:normal;font-style:normal}.tipsy{font-size:11px;position:absolute;padding:5px;z-index:500001;opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.tipsy.in{opacity:1}.tipsy-inner{background-color:#000;color:#fff;white-space:nowrap;padding:6px 8px;line-height:1.3em;text-align:center;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;-webkit-font-smoothing:subpixel-antialiased}.tipsy-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.tipsy-n .tipsy-arrow{top:0px;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.tipsy-nw .tipsy-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.tipsy-ne .tipsy-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.tipsy-s .tipsy-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.tipsy-sw .tipsy-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.tipsy-se .tipsy-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.tipsy-e .tipsy-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.tipsy-w .tipsy-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}#loco-admin.wrap .selector li,#loco-admin.wrap .selector .handle,#loco-admin.wrap .selectoradd a,#loco-admin.wrap .selectorsep:before,#loco-admin.wrap .selectorsep span{padding:.3em .75em}#loco-admin.wrap .selector{text-align:left;display:inline-block;white-space:nowrap}#loco-admin.wrap .selectoradd a,#loco-admin.wrap .selector .handle{cursor:default;display:block;position:relative;border-top:solid 1px #fff;border-right:solid 1px #ddd;border-bottom:solid 1px #ddd;border-left:solid 1px #fff;color:#666;height:1.3em;overflow:hidden;white-space:normal}#loco-admin.wrap .selectorsep{display:inline-block;border:solid 1px transparent}#loco-admin.wrap .selectorsep:before{display:block;position:relative;color:#999;height:1.3em;overflow:hidden}#loco-admin.wrap .selectorsep>*{display:block;line-height:1em;color:#666;height:1.3em;overflow:hidden}#loco-admin.wrap .selector .handle{outline:none;white-space:nowrap;padding-right:2.3em;max-width:250px;text-overflow:ellipsis}#loco-admin.wrap .selector .handle .prefix{padding-right:.6ex}#loco-admin.wrap .selector .handle:after{font-family:loco;font-size:1.3em;color:#ccc;display:block;position:absolute;top:.25em;right:.6em;content:"▼"}#loco-admin.wrap .selector .handle:focus:after,#loco-admin.wrap .selector .handle:hover:after{color:#666}#loco-admin.wrap .selector.no-caret .handle{padding-right:.75em}#loco-admin.wrap .selector.no-caret .handle:after{display:none}#loco-admin.wrap .selector.no-title .handle{padding-left:.5em;padding-right:.5em}#loco-admin.wrap .selector.no-title .handle .label{display:none}#loco-admin.wrap .selector.no-title .handle .icon{margin-right:0px}#loco-admin.wrap .selector.dummy .handle{border-color:transparent}#loco-admin.wrap .selector.dummy .handle:after{display:none}#loco-admin.wrap .selectoradd{position:relative}#loco-admin.wrap .selectoradd>*{display:block;float:left;clear:none}#loco-admin.wrap .selectoradd>a.has-icon{width:1.3em}#loco-admin.wrap .selectoradd>a.has-icon:before{color:#999;display:inline;padding-left:0;padding-right:0;line-height:1.4em}#loco-admin.wrap .selectoradd>a.has-icon:hover:after{color:#2e892e}#loco-admin.wrap .selectorsep{display:inline-block}#loco-admin.wrap .selectorsep span{color:#666;height:1.3em}#loco-admin.wrap .selector ul{padding:0}#loco-admin.wrap .selector ul,#loco-admin.wrap .selector li{display:block;position:relative;cursor:default;margin:0}#loco-admin.wrap .selector ul{z-index:5;position:absolute;left:0;top:0;background:#f5f5f5;box-shadow:0 10px 5px rgba(0,0,0,.2);border:solid 1px #ccc;overflow:auto}#loco-admin.wrap .selector.up ul{margin-top:0}#loco-admin.wrap .selector.multi li input{display:none}#loco-admin.wrap .selector.multi li.checked{background:#e5e5e5}#loco-admin.wrap .selector li.active{background:#e5e5e5 !important}#loco-admin.wrap .selector li.over{background:#ccc !important;color:#fff;text-shadow:1px 1px #aaa}#loco-admin.wrap .selector li.over .label{color:#fff}#loco-admin.wrap .selector .label{font:inherit;color:inherit}#loco-admin.wrap .selector .icon{display:inline-block;min-width:1.2em;text-align:center;font-size:14px}#loco-admin.wrap .selector .icon.no-icon{display:none}#loco-admin.wrap .selector .icon:before{color:#666}#loco-admin.wrap .selector .avtr{width:18px;height:18px;background-size:18px;background-repeat:no-repeat}#loco-admin.wrap .selector .label{line-height:1}#loco-admin.wrap .selector .icon,#loco-admin.wrap .selector .icon-16{vertical-align:bottom}#loco-admin.wrap .selector .icon,#loco-admin.wrap .selector .lang,#loco-admin.wrap .selector .icon-16{margin-right:5px}#loco-admin.wrap .selector .region,#loco-admin.wrap .selector .variant-wales,#loco-admin.wrap .selector .region-gb.lang-cy,#loco-admin.wrap .selector .variant-scotland,#loco-admin.wrap .selector .region-gb.lang-gd,#loco-admin.wrap .selector .variant-valencia,#loco-admin.wrap .selector .region-es.variant-valencia,#loco-admin.wrap .selector .lang-ca,#loco-admin.wrap .selector .region-es.lang-ca,#loco-admin.wrap .selector .lang-eo,#loco-admin.wrap .selector .lang-eu{margin-left:2px;margin-right:7px}#loco-admin.wrap .selector.ticked .icon.no-icon{font-size:12px;display:inline-block}#loco-admin.wrap .selector.ticked .active .icon.no-icon:before{content:"✓"}#loco-admin.wrap .selectoradd a:hover,#loco-admin.wrap .selector a.handle:focus,#loco-admin.wrap .selector a.handle:hover{color:#000;border-color:#999}#loco-admin.wrap .selector.active .handle{border-color:#999;background-color:#eee;color:#999}#loco-admin.wrap .selector.active .handle:after{color:#999;content:"▲"}#loco-admin.wrap .selector.disabled{cursor:default;cursor:no-drop;cursor:not-allowed}#loco-admin.wrap .selector.disabled .handle{pointer-events:none;border-top:solid 1px #fff;border-right:solid 1px #ddd;border-bottom:solid 1px #ddd;border-left:solid 1px #fff;color:#999;padding-right:1em}#loco-admin.wrap .selector.disabled .handle:after{display:none}#loco-admin.wrap .selector.disabled .handle span.icon{color:#999 !important}#loco-admin.wrap .selector li.disabled,#loco-admin.wrap .selector li.disabled.over{color:#aaa;text-shadow:1px 1px #fff;pointer-events:none}#loco-admin.wrap .selector li.disabled *{cursor:text}#loco-admin.wrap .selector li.disabled .icon:before{color:#aaa}#loco-admin.wrap .selector li.disabled .flag,#loco-admin.wrap .selector li.disabled .icon-16{opacity:.4}#loco-admin.wrap .selector.lefty ul{left:auto;right:0}#loco-admin.wrap .selector.lefty ul .icon,#loco-admin.wrap .selector.lefty ul .icon-32{display:block;float:right;clear:none}#loco-admin.wrap .selector.lefty ul .label{padding-right:32px;padding-left:0}#loco-admin.wrap .selector ul>form{margin:0;display:block}#loco-admin.wrap .selector ul>form input{margin:0;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#loco-admin.wrap .selector ul>form input:focus{-webkit-box-shadow:inset 0 0 5px 0 #3db63d;-moz-box-shadow:inset 0 0 5px 0 #3db63d;box-shadow:inset 0 0 5px 0 #3db63d}#loco-admin.wrap .selector ul>form input.error{border-color:#c00;-webkit-box-shadow:inset 0 0 5px 0 rgba(153,0,0,.5);-moz-box-shadow:inset 0 0 5px 0 rgba(153,0,0,.5);box-shadow:inset 0 0 5px 0 rgba(153,0,0,.5)}#loco-admin.wrap .selector ul>form a.clear{margin:0;border:none}#loco-admin.wrap .selector ul>form ::placeholder{color:gray;font-size:16px;font-family:"loco";text-align:right;display:block}#loco-admin.wrap .selector ul>form ::-webkit-input-placeholder{color:gray;font-size:16px;font-family:"loco";text-align:right;display:block}#loco-admin.wrap .selector ul>form :-moz-placeholder{color:gray;font-size:16px;font-family:"loco";text-align:right;display:block;opacity:1}#loco-admin.wrap .selector ul>form ::-moz-placeholder{color:gray;font-size:16px;font-family:"loco";text-align:right;display:block;opacity:1}#loco-admin.wrap .selector ul>form :-ms-input-placeholder{color:gray;font-size:16px;font-family:"loco";text-align:right;display:block}#loco-admin.wrap .selector ul>form .ielt10 .placeheld{color:gray;font-size:16px;font-family:"loco";text-align:right;display:block}#loco-admin.wrap div.auto-comp-wrap{width:100%}#loco-admin.wrap div.auto-comp-wrap input{display:inline-block}#loco-admin.wrap div.auto-comp-wrap.loading input{background:transparent url(../img/ajax-loader.gif?v=2.6.1) right 2px no-repeat}#loco-admin.wrap div.auto-comp-drop{color:#333;background:#fff;border-top:none;position:absolute;width:auto;top:0;left:0;z-index:99;-webkit-box-shadow:0 5px 5px rgba(0,0,0,.4);-moz-box-shadow:0 5px 5px rgba(0,0,0,.4);box-shadow:0 5px 5px rgba(0,0,0,.4)}#loco-admin.wrap div.auto-comp-result{padding:5px 10px;cursor:pointer;background:#f0f0f0;border-top:solid 1px #fff;border-bottom:solid 1px #ddd;white-space:nowrap}#loco-admin.wrap div.auto-comp-result:first-child{border-top:solid 1px #ddd}#loco-admin.wrap div.auto-comp-result>*{display:inline-block;vertical-align:middle;line-height:normal}#loco-admin.wrap div.auto-comp-result .icon:before{padding-right:5px}#loco-admin.wrap div.auto-comp-result:hover{background:#a8a8a8;color:#fff;border-top-color:#a8a8a8;border-bottom-color:#999}#loco-admin.wrap div.auto-comp-result.selected{background:#666 !important;color:#fff;border-top-color:#666;border-bottom-color:#666}#loco-admin.wrap div.auto-comp-result .lang,#loco-admin.wrap div.auto-comp-result .region,#loco-admin.wrap div.auto-comp-result .variant-wales,#loco-admin.wrap div.auto-comp-result .region-gb.lang-cy,#loco-admin.wrap div.auto-comp-result .variant-scotland,#loco-admin.wrap div.auto-comp-result .region-gb.lang-gd,#loco-admin.wrap div.auto-comp-result .variant-valencia,#loco-admin.wrap div.auto-comp-result .region-es.variant-valencia,#loco-admin.wrap div.auto-comp-result .lang-ca,#loco-admin.wrap div.auto-comp-result .region-es.lang-ca,#loco-admin.wrap div.auto-comp-result .lang-eo,#loco-admin.wrap div.auto-comp-result .lang-eu,#loco-admin.wrap div.auto-comp-result .avtr{margin-right:5px}#loco-admin.wrap div.auto-comp-wrap.error a.icon.clear:before{color:#c00;opacity:1}#loco-admin.wrap div.auto-comp-wrap.error input[type=text]{border-color:#c00;color:#c00}#loco-admin.wrap div.auto-comp-wrap.error input[type=text]:focus{-webkit-box-shadow:0 0 .5em 0 rgba(153,0,0,.5);-moz-box-shadow:0 0 .5em 0 rgba(153,0,0,.5);box-shadow:0 0 .5em 0 rgba(153,0,0,.5)}#loco-admin.wrap ._ajax_loader_f2{background-image:url(../img/ajax-loader-f2.gif?v=2.6.1);background-repeat:no-repeat;min-height:16px}#loco-admin.wrap ._ajax_loader_f2x4{background:transparent url(../img/ajax-loader-f2-x4.gif?v=2.6.1) 0 0 no-repeat;min-height:75px}#loco-admin.wrap ._ajax_loader_cc{background-image:url(../img/ajax-loader-cc.gif?v=2.6.1);background-repeat:no-repeat;min-height:16px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx){#loco-admin.wrap ._ajax_loader_f2{background-image:url(../img/ajax-loader-f2-x2.gif?v=2.6.1);background-size:16px}#loco-admin.wrap ._ajax_loader_cc{background-image:url(../img/ajax-loader-cc-x2.gif?v=2.6.1);background-size:16px}}#loco-admin.wrap ._green_glow_inner{-webkit-box-shadow:inset 0 0 10px 0 #3db63d;-moz-box-shadow:inset 0 0 10px 0 #3db63d;box-shadow:inset 0 0 10px 0 #3db63d}#loco-admin.wrap ._green_glow_outer{-webkit-box-shadow:0 0 .5em 0 #3db63d;-moz-box-shadow:0 0 .5em 0 #3db63d;box-shadow:0 0 .5em 0 #3db63d}#loco-admin.wrap .loco-font,#loco-admin.wrap .wp-list-table th.loco-sort.loco-asc:after,#loco-admin.wrap .wp-list-table th.loco-sort.loco-desc:after,#loco-admin.wrap .icon,#loco-admin.wrap .has-icon:before{font-family:"loco";speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#loco-admin.wrap .has-icon:before{display:inline-block;padding-right:.3em}#loco-admin.wrap a.icon-help{cursor:help}#loco-admin.wrap a.icon-help span{display:none}#loco-admin.wrap .icon-share:before{content:"↑"}#loco-admin.wrap .icon-notag:before{content:""}#loco-admin.wrap .icon-magnify:before{content:"🔍"}#loco-admin.wrap .icon-python:before{content:"🐍"}#loco-admin.wrap .icon-unicode:before{content:"u"}#loco-admin.wrap .icon-json:before{content:"{"}#loco-admin.wrap .icon-bullist:before{content:""}#loco-admin.wrap .icon-numlist:before{content:""}#loco-admin.wrap .icon-indent:before{content:""}#loco-admin.wrap .icon-outdent:before{content:""}#loco-admin.wrap .icon-link:before{content:""}#loco-admin.wrap .icon-unlink:before{content:""}#loco-admin.wrap .icon-bold:before{content:"B"}#loco-admin.wrap .icon-italic:before{content:"I"}#loco-admin.wrap .icon-translate:before{content:""}#loco-admin.wrap .icon-proj:before{content:""}#loco-admin.wrap .icon-plural:before{content:"᛬"}#loco-admin.wrap .icon-max:before,#loco-admin.wrap .icon-full-screen:before{content:""}#loco-admin.wrap .icon-min:before{content:""}#loco-admin.wrap .icon-sort:before{content:""}#loco-admin.wrap .icon-ok:before,#loco-admin.wrap .notice-success>.has-icon:before,#loco-admin.wrap .notice-success p>strong.has-icon:before{content:"✓"}#loco-admin.wrap .icon-ok-empty:before{content:"🗌"}#loco-admin.wrap .icon-checkbox-checked:before,#loco-admin.wrap .selector.multi li.checked .icon-checkbox:before{content:"☑"}#loco-admin.wrap .icon-checkbox-unchecked:before{content:"☐"}#loco-admin.wrap .icon-checkbox-partial:before{content:"☉"}#loco-admin.wrap .icon-radio-checked:before{content:"⚫"}#loco-admin.wrap .icon-radio-unchecked:before{content:"⚪"}#loco-admin.wrap .icon-ext:before{content:"⬈"}#loco-admin.wrap .icon-star:before{content:""}#loco-admin.wrap .icon-user:before{content:""}#loco-admin.wrap .icon-remove:before,#loco-admin.wrap a.icon.close:before{content:"×"}#loco-admin.wrap .icon-cog:before{content:""}#loco-admin.wrap .icon-trash:before{content:""}#loco-admin.wrap .icon-time:before,#loco-admin.wrap .icon-history:before{content:""}#loco-admin.wrap .icon-download:before{content:""}#loco-admin.wrap .icon-revert:before{content:""}#loco-admin.wrap .icon-sync:before{content:""}#loco-admin.wrap .icon-lock:before,#loco-admin.wrap .notice-locked>.has-icon:before,#loco-admin.wrap .notice-locked p>strong.has-icon:before{content:""}#loco-admin.wrap .icon-flag:before{content:""}#loco-admin.wrap .icon-tag:before{content:""}#loco-admin.wrap .icon-tags:before{content:""}#loco-admin.wrap .icon-print:before{content:""}#loco-admin.wrap .icon-camera:before{content:""}#loco-admin.wrap .icon-pencil:before{content:""}#loco-admin.wrap .icon-add:before{content:""}#loco-admin.wrap .icon-del:before{content:""}#loco-admin.wrap .icon-clear:before,#loco-admin.wrap a.icon.clear:before{content:""}#loco-admin.wrap .icon-ok-sign:before{content:"✔"}#loco-admin.wrap .icon-help:before{content:"?"}#loco-admin.wrap .icon-info:before,#loco-admin.wrap .notice-info>.has-icon:before,#loco-admin.wrap .notice-info p>strong.has-icon:before{content:"ℹ"}#loco-admin.wrap .icon-cancel:before{content:""}#loco-admin.wrap .icon-warn:before,#loco-admin.wrap .notice-error>.has-icon:before,#loco-admin.wrap .notice-error p>strong.has-icon:before,#loco-admin.wrap .notice-warning>.has-icon:before,#loco-admin.wrap .notice-warning p>strong.has-icon:before{content:""}#loco-admin.wrap .icon-comment:before{content:""}#loco-admin.wrap .icon-bar-chart:before{content:""}#loco-admin.wrap .icon-key:before{content:""}#loco-admin.wrap .icon-cogs:before{content:""}#loco-admin.wrap .icon-comments:before{content:""}#loco-admin.wrap .icon-signout:before{content:""}#loco-admin.wrap .icon-signin:before{content:""}#loco-admin.wrap .icon-upload:before{content:""}#loco-admin.wrap .icon-twitter:before{content:"🐦"}#loco-admin.wrap .icon-facebook:before{content:""}#loco-admin.wrap .icon-github:before{content:""}#loco-admin.wrap .icon-feed:before{content:""}#loco-admin.wrap .icon-globe:before{content:""}#loco-admin.wrap .icon-wrench:before,#loco-admin.wrap .notice-debug>.has-icon:before,#loco-admin.wrap .notice-debug p>strong.has-icon:before{content:""}#loco-admin.wrap .icon-group:before{content:""}#loco-admin.wrap .icon-cloud:before{content:""}#loco-admin.wrap .icon-copy:before{content:""}#loco-admin.wrap .icon-save:before{content:""}#loco-admin.wrap .icon-menu:before{content:""}#loco-admin.wrap .icon-table:before{content:""}#loco-admin.wrap .icon-caret-down:before{content:"▼"}#loco-admin.wrap .icon-caret-up:before{content:"▲"}#loco-admin.wrap .icon-caret-right:before{content:"▶"}#loco-admin.wrap .icon-mail:before{content:""}#loco-admin.wrap .icon-cloud-upload:before{content:""}#loco-admin.wrap .icon-file:before{content:""}#loco-admin.wrap .icon-circle-white:before{content:"⚬"}#loco-admin.wrap .icon-circle-black:before{content:"●"}#loco-admin.wrap .icon-eraser:before{content:""}#loco-admin.wrap .icon-unlock:before{content:""}#loco-admin.wrap .icon-apple:before{content:""}#loco-admin.wrap .icon-android:before{content:""}#loco-admin.wrap .icon-robot:before{content:"🤖"}#loco-admin.wrap .icon-back:before{content:"⬅"}#loco-admin.wrap .icon-next:before{content:"➔"}#loco-admin.wrap .icon-arrow-up:before{content:""}#loco-admin.wrap .icon-calendar:before{content:""}#loco-admin.wrap .icon-ccard:before{content:""}#loco-admin.wrap .icon-caret-left:before{content:"◀"}#loco-admin.wrap .icon-pro:before{content:"⚡"}#loco-admin.wrap .icon-bell:before{content:""}#loco-admin.wrap .icon-code:before{content:""}#loco-admin.wrap .icon-privacy:before{content:"🛡"}#loco-admin.wrap .icon-hellip:before{content:"…"}#loco-admin.wrap .icon-vellip:before{content:"⁞"}#loco-admin.wrap .icon-collapse:before{content:""}#loco-admin.wrap .icon-expand:before{content:""}#loco-admin.wrap .icon-wordpress:before{content:""}#loco-admin.wrap .icon-database:before{content:""}#loco-admin.wrap .icon-restore:before{content:""}#loco-admin.wrap .icon-pilcrow:before{content:"¶"}#loco-admin.wrap .icon-status.is-translated:before,#loco-admin.wrap .is-translated>header>.icon-status:before{color:#2e892e;content:"✓";text-align:center}#loco-admin.wrap .icon-status.is-untranslated:before,#loco-admin.wrap .is-untranslated>header>.icon-status:before{color:#aaa;content:"×";text-align:center;font-size:1.1em}#loco-admin.wrap .icon-status.is-flagged:before,#loco-admin.wrap .is-flagged>header>.icon-status:before{color:#bd2c00;content:"";text-align:center}#loco-admin.wrap .icon-status.is-translated.is-blank:before,#loco-admin.wrap .icon-status.is-translated.is-inherit:before,#loco-admin.wrap .is-translated.is-blank>header>.icon-status:before,#loco-admin.wrap .is-translated.is-inherit>header>.icon-status:before{content:"🗌"}#loco-admin.wrap .icon-status.is-fuzzy:before,#loco-admin.wrap .is-fuzzy>header>.icon-status:before{color:#666;content:""}#loco-admin.wrap .lang,#loco-admin.wrap .region,#loco-admin.wrap .variant-wales,#loco-admin.wrap .region-gb.lang-cy,#loco-admin.wrap .variant-scotland,#loco-admin.wrap .region-gb.lang-gd,#loco-admin.wrap .variant-valencia,#loco-admin.wrap .region-es.variant-valencia,#loco-admin.wrap .lang-ca,#loco-admin.wrap .region-es.lang-ca,#loco-admin.wrap .lang-eo,#loco-admin.wrap .lang-eu{color:#fff;background:#2e892e;display:inline-block;text-transform:uppercase;overflow:hidden;font-family:Verdana,Arial,sans-serif;font-size:9px;font-weight:normal;font-style:normal;line-height:12px;text-align:center;white-space:normal;text-shadow:none}#loco-admin.wrap .lang{width:20px;height:12px;line-height:12px;vertical-align:middle}#loco-admin.wrap .lang:before{content:attr(lang);vertical-align:baseline}#loco-admin.wrap .no-lang{width:18px;height:10px;border:solid 1px #2e892e;background:transparent}#loco-admin.wrap .lang-el{background-color:#1d48a3}#loco-admin.wrap .lang-el:before{content:"Ελ"}#loco-admin.wrap .region,#loco-admin.wrap .variant-wales,#loco-admin.wrap .region-gb.lang-cy,#loco-admin.wrap .variant-scotland,#loco-admin.wrap .region-gb.lang-gd,#loco-admin.wrap .variant-valencia,#loco-admin.wrap .region-es.variant-valencia,#loco-admin.wrap .lang-ca,#loco-admin.wrap .region-es.lang-ca,#loco-admin.wrap .lang-eo,#loco-admin.wrap .lang-eu{width:16px;height:12px;margin:0 2px;background-image:url(../img/flags.png?v=2.6.1);background-repeat:no-repeat;background-color:transparent}#loco-admin.wrap .region:before,#loco-admin.wrap .variant-wales:before,#loco-admin.wrap .region-gb.lang-cy:before,#loco-admin.wrap .variant-scotland:before,#loco-admin.wrap .region-gb.lang-gd:before,#loco-admin.wrap .variant-valencia:before,#loco-admin.wrap .region-es.variant-valencia:before,#loco-admin.wrap .lang-ca:before,#loco-admin.wrap .region-es.lang-ca:before,#loco-admin.wrap .lang-eo:before,#loco-admin.wrap .lang-eu:before{visibility:hidden}#loco-admin.wrap .lang-zh{background-color:#b90000}#loco-admin.wrap .lang-zh.script-hans:before{content:"中国"}#loco-admin.wrap .lang-zh.script-hant:before{content:"中國"}#loco-admin.wrap .__{background-position:0 0}#loco-admin.wrap .lang-eo{background-position:0 -12px}#loco-admin.wrap .lang-eu{background-position:0 -24px}#loco-admin.wrap .lang-ca,#loco-admin.wrap .region-es.lang-ca{background-position:0 -36px}#loco-admin.wrap .region-tg{background-position:0 -48px}#loco-admin.wrap .region-me{background-position:0 -60px}#loco-admin.wrap .region-la{background-position:0 -73px}#loco-admin.wrap .region-mr{background-position:0 -85px}#loco-admin.wrap .region-ni{background-position:0 -97px}#loco-admin.wrap .region-lv{background-position:0 -109px}#loco-admin.wrap .region-om{background-position:0 -121px}#loco-admin.wrap .region-af{background-position:0 -133px}#loco-admin.wrap .region-cy{background-position:0 -145px}#loco-admin.wrap .region-bj{background-position:0 -157px}#loco-admin.wrap .region-aq{background-position:0 -169px}#loco-admin.wrap .region-cn{background-position:0 -186px}#loco-admin.wrap .region-co{background-position:0 -198px}#loco-admin.wrap .region-cx{background-position:0 -210px}#loco-admin.wrap .region-ag{background-position:0 -222px}#loco-admin.wrap .region-ms{background-position:0 -234px}#loco-admin.wrap .region-md{background-position:0 -246px}#loco-admin.wrap .region-zm{background-position:0 -258px}#loco-admin.wrap .region-vn{background-position:0 -270px}#loco-admin.wrap .region-tf{background-position:0 -282px}#loco-admin.wrap .region-td{background-position:0 -294px}#loco-admin.wrap .region-yt{background-position:0 -306px}#loco-admin.wrap .region-lb{background-position:0 -318px}#loco-admin.wrap .region-mf{background-position:0 -330px}#loco-admin.wrap .region-lu{background-position:0 -347px}#loco-admin.wrap .region-mq{background-position:0 -359px}#loco-admin.wrap .region-cz{background-position:0 -371px}#loco-admin.wrap .region-ae{background-position:0 -383px}#loco-admin.wrap .region-cm{background-position:0 -395px}#loco-admin.wrap .region-bi{background-position:0 -407px}#loco-admin.wrap .region-ar{background-position:0 -419px}#loco-admin.wrap .region-as{background-position:0 -431px}#loco-admin.wrap .region-bh{background-position:0 -443px}#loco-admin.wrap .region-cl{background-position:0 -455px}#loco-admin.wrap .region-ad{background-position:0 -467px}#loco-admin.wrap .region-mp{background-position:0 -479px}#loco-admin.wrap .region-lt{background-position:0 -491px}#loco-admin.wrap .region-mg{background-position:0 -503px}#loco-admin.wrap .region-lc{background-position:0 -515px}#loco-admin.wrap .region-tr{background-position:0 -527px}#loco-admin.wrap .region-ua{background-position:0 -539px}#loco-admin.wrap .region-tv{background-position:0 -551px}#loco-admin.wrap .region-vi{background-position:0 -563px}#loco-admin.wrap .region-mt{background-position:0 -575px}#loco-admin.wrap .region-no{background-position:0 -587px}#loco-admin.wrap .region-mc{background-position:0 -599px}#loco-admin.wrap .region-ch{background-position:0 -611px}#loco-admin.wrap .region-bl{background-position:0 -623px}#loco-admin.wrap .region-aw{background-position:0 -640px}#loco-admin.wrap .region-bz{background-position:0 -652px}#loco-admin.wrap .region-bm{background-position:0 -664px}#loco-admin.wrap .region-ci{background-position:0 -676px}#loco-admin.wrap .region-mu{background-position:0 -688px}#loco-admin.wrap .region-us{background-position:0 -700px}#loco-admin.wrap .region-tw{background-position:0 -712px}#loco-admin.wrap .region-ye{background-position:0 -724px}#loco-admin.wrap .region-mw{background-position:0 -736px}#loco-admin.wrap .region-nl{background-position:0 -748px}#loco-admin.wrap .region-ls{background-position:0 -760px}#loco-admin.wrap .region-bo{background-position:0 -772px}#loco-admin.wrap .region-at{background-position:0 -784px}#loco-admin.wrap .region-ck{background-position:0 -796px}#loco-admin.wrap .region-by{background-position:0 -808px}#loco-admin.wrap .region-au{background-position:0 -820px}#loco-admin.wrap .region-bn{background-position:0 -832px}#loco-admin.wrap .region-ma{background-position:0 -844px}#loco-admin.wrap .region-nz{background-position:0 -856px}#loco-admin.wrap .region-lr{background-position:0 -868px}#loco-admin.wrap .region-mv{background-position:0 -880px}#loco-admin.wrap .region-tc{background-position:0 -892px}#loco-admin.wrap .region-ug{background-position:0 -904px}#loco-admin.wrap .region-tt{background-position:0 -916px}#loco-admin.wrap .region-pl{background-position:0 -928px}#loco-admin.wrap .region-rs{background-position:0 -940px}#loco-admin.wrap .region-in{background-position:0 -952px}#loco-admin.wrap .region-ge{background-position:0 -964px}#loco-admin.wrap .region-gr{background-position:0 -976px}#loco-admin.wrap .region-gs{background-position:0 -988px}#loco-admin.wrap .region-gd{background-position:0 -1000px}#loco-admin.wrap .region-io{background-position:0 -1012px}#loco-admin.wrap .region-hk{background-position:0 -1024px}#loco-admin.wrap .region-kp{background-position:0 -1036px}#loco-admin.wrap .region-kg{background-position:0 -1048px}#loco-admin.wrap .region-pm{background-position:0 -1060px}#loco-admin.wrap .region-sv{background-position:0 -1072px}#loco-admin.wrap .region-re{background-position:0 -1084px}#loco-admin.wrap .region-sa{background-position:0 -1096px}#loco-admin.wrap .region-sc{background-position:0 -1108px}#loco-admin.wrap .region-st{background-position:0 -1120px}#loco-admin.wrap .region-ke{background-position:0 -1132px}#loco-admin.wrap .region-im{background-position:0 -1144px}#loco-admin.wrap .region-kr{background-position:0 -1161px}#loco-admin.wrap .region-gf{background-position:0 -1173px}#loco-admin.wrap .region-dj{background-position:0 -1185px}#loco-admin.wrap .region-gq{background-position:0 -1197px}#loco-admin.wrap .region-gp{background-position:0 -1209px}#loco-admin.wrap .region-dk{background-position:0 -1221px}#loco-admin.wrap .region-gg{background-position:0 -1233px}#loco-admin.wrap .region-il{background-position:0 -1250px}#loco-admin.wrap .region-pn{background-position:0 -1262px}#loco-admin.wrap .region-sb{background-position:0 -1274px}#loco-admin.wrap .region-py{background-position:0 -1286px}#loco-admin.wrap .region-ru{background-position:0 -1298px}#loco-admin.wrap .region-kw{background-position:0 -1310px}#loco-admin.wrap .region-do{background-position:0 -1322px}#loco-admin.wrap .region-gt{background-position:0 -1334px}#loco-admin.wrap .region-gb{background-position:0 -1346px}#loco-admin.wrap .region-gu{background-position:0 -1358px}#loco-admin.wrap .region-je{background-position:0 -1370px}#loco-admin.wrap .region-hm{background-position:0 -1387px}#loco-admin.wrap .region-sg{background-position:0 -1399px}#loco-admin.wrap .region-pk{background-position:0 -1411px}#loco-admin.wrap .region-sr{background-position:0 -1423px}#loco-admin.wrap .region-se{background-position:0 -1435px}#loco-admin.wrap .region-jp{background-position:0 -1447px}#loco-admin.wrap .region-gw{background-position:0 -1459px}#loco-admin.wrap .region-eh{background-position:0 -1471px}#loco-admin.wrap .region-dz{background-position:0 -1483px}#loco-admin.wrap .region-ga{background-position:0 -1495px}#loco-admin.wrap .region-fr{background-position:0 -1507px}#loco-admin.wrap .region-dm{background-position:0 -1519px}#loco-admin.wrap .region-hn{background-position:0 -1531px}#loco-admin.wrap .region-sd{background-position:0 -1543px}#loco-admin.wrap .region-rw{background-position:0 -1555px}#loco-admin.wrap .region-ph{background-position:0 -1567px}#loco-admin.wrap .region-ss{background-position:0 -1579px}#loco-admin.wrap .region-qa{background-position:0 -1596px}#loco-admin.wrap .region-pe{background-position:0 -1608px}#loco-admin.wrap .region-pr{background-position:0 -1620px}#loco-admin.wrap .region-si{background-position:0 -1632px}#loco-admin.wrap .region-ht{background-position:0 -1644px}#loco-admin.wrap .region-es{background-position:0 -1656px}#loco-admin.wrap .region-gl{background-position:0 -1668px}#loco-admin.wrap .region-gm{background-position:0 -1680px}#loco-admin.wrap .region-er{background-position:0 -1692px}#loco-admin.wrap .region-fi{background-position:0 -1704px}#loco-admin.wrap .region-ee{background-position:0 -1716px}#loco-admin.wrap .region-kn{background-position:0 -1728px}#loco-admin.wrap .region-hu{background-position:0 -1740px}#loco-admin.wrap .region-iq{background-position:0 -1752px}#loco-admin.wrap .region-ky{background-position:0 -1764px}#loco-admin.wrap .region-sh{background-position:0 -1776px}#loco-admin.wrap .region-ps{background-position:0 -1788px}#loco-admin.wrap .region-pf{background-position:0 -1800px}#loco-admin.wrap .region-sj{background-position:0 -1812px}#loco-admin.wrap .region-id{background-position:0 -1824px}#loco-admin.wrap .region-is{background-position:0 -1836px}#loco-admin.wrap .region-eg{background-position:0 -1848px}#loco-admin.wrap .region-fk{background-position:0 -1860px}#loco-admin.wrap .region-fj{background-position:0 -1872px}#loco-admin.wrap .region-gn{background-position:0 -1884px}#loco-admin.wrap .region-gy{background-position:0 -1896px}#loco-admin.wrap .region-ir{background-position:0 -1908px}#loco-admin.wrap .region-km{background-position:0 -1920px}#loco-admin.wrap .region-ie{background-position:0 -1932px}#loco-admin.wrap .region-kz{background-position:0 -1944px}#loco-admin.wrap .region-ro{background-position:0 -1956px}#loco-admin.wrap .region-sk{background-position:0 -1968px}#loco-admin.wrap .region-pg{background-position:0 -1980px}#loco-admin.wrap .region-pt{background-position:0 -1992px}#loco-admin.wrap .region-so{background-position:0 -2004px}#loco-admin.wrap .region-sx{background-position:0 -2016px}#loco-admin.wrap .region-hr{background-position:0 -2033px}#loco-admin.wrap .region-ki{background-position:0 -2045px}#loco-admin.wrap .region-jm{background-position:0 -2057px}#loco-admin.wrap .region-ec{background-position:0 -2069px}#loco-admin.wrap .region-et{background-position:0 -2081px}#loco-admin.wrap .region-fo{background-position:0 -2093px}#loco-admin.wrap .region-kh{background-position:0 -2105px}#loco-admin.wrap .region-sy{background-position:0 -2117px}#loco-admin.wrap .region-sn{background-position:0 -2129px}#loco-admin.wrap .region-pw{background-position:0 -2141px}#loco-admin.wrap .region-sl{background-position:0 -2153px}#loco-admin.wrap .region-fm{background-position:0 -2165px}#loco-admin.wrap .region-gi{background-position:0 -2177px}#loco-admin.wrap .region-de{background-position:0 -2189px}#loco-admin.wrap .region-gh{background-position:0 -2201px}#loco-admin.wrap .region-jo{background-position:0 -2213px}#loco-admin.wrap .region-it{background-position:0 -2225px}#loco-admin.wrap .region-pa{background-position:0 -2237px}#loco-admin.wrap .region-sz{background-position:0 -2249px}#loco-admin.wrap .region-sm{background-position:0 -2261px}#loco-admin.wrap .region-tn{background-position:0 -2273px}#loco-admin.wrap .region-ml{background-position:0 -2285px}#loco-admin.wrap .region-cg{background-position:0 -2297px}#loco-admin.wrap .region-ax{background-position:0 -2309px}#loco-admin.wrap .region-ao{background-position:0 -2321px}#loco-admin.wrap .region-bt{background-position:0 -2333px}#loco-admin.wrap .region-an{background-position:0 -2345px}#loco-admin.wrap .region-bb{background-position:0 -2357px}#loco-admin.wrap .region-cf{background-position:0 -2369px}#loco-admin.wrap .region-mm{background-position:0 -2381px}#loco-admin.wrap .region-li{background-position:0 -2393px}#loco-admin.wrap .region-na{background-position:0 -2405px}#loco-admin.wrap .region-mz{background-position:0 -2417px}#loco-admin.wrap .region-to{background-position:0 -2429px}#loco-admin.wrap .region-vg{background-position:0 -2441px}#loco-admin.wrap .region-ve{background-position:0 -2453px}#loco-admin.wrap .region-tz{background-position:0 -2465px}#loco-admin.wrap .region-tm{background-position:0 -2477px}#loco-admin.wrap .region-mx{background-position:0 -2489px}#loco-admin.wrap .region-nc{background-position:0 -2501px}#loco-admin.wrap .region-mo{background-position:0 -2513px}#loco-admin.wrap .region-lk{background-position:0 -2525px}#loco-admin.wrap .region-cd{background-position:0 -2537px}#loco-admin.wrap .region-al{background-position:0 -2549px}#loco-admin.wrap .region-bw{background-position:0 -2561px}#loco-admin.wrap .region-cs{background-position:0 -2573px}#loco-admin.wrap .region-cr{background-position:0 -2585px}#loco-admin.wrap .region-bv{background-position:0 -2597px}#loco-admin.wrap .region-am{background-position:0 -2609px}#loco-admin.wrap .region-az{background-position:0 -2621px}#loco-admin.wrap .region-ba{background-position:0 -2633px}#loco-admin.wrap .region-mn{background-position:0 -2645px}#loco-admin.wrap .region-nu{background-position:0 -2657px}#loco-admin.wrap .region-my{background-position:0 -2669px}#loco-admin.wrap .region-tl{background-position:0 -2681px}#loco-admin.wrap .region-ws{background-position:0 -2693px}#loco-admin.wrap .region-th{background-position:0 -2705px}#loco-admin.wrap .region-nf{background-position:0 -2717px}#loco-admin.wrap .region-ly{background-position:0 -2729px}#loco-admin.wrap .region-ai{background-position:0 -2741px}#loco-admin.wrap .region-br{background-position:0 -2753px}#loco-admin.wrap .region-cv{background-position:0 -2765px}#loco-admin.wrap .region-be{background-position:0 -2777px}#loco-admin.wrap .region-ca{background-position:0 -2789px}#loco-admin.wrap .region-bd{background-position:0 -2801px}#loco-admin.wrap .region-cw{background-position:0 -2813px}#loco-admin.wrap .region-bs{background-position:0 -2830px}#loco-admin.wrap .region-ng{background-position:0 -2842px}#loco-admin.wrap .region-mk{background-position:0 -2854px}#loco-admin.wrap .region-np{background-position:0 -2866px}#loco-admin.wrap .region-va{background-position:0 -2878px}#loco-admin.wrap .region-uz{background-position:0 -2890px}#loco-admin.wrap .region-um{background-position:0 -2902px}#loco-admin.wrap .region-tk{background-position:0 -2914px}#loco-admin.wrap .region-vc{background-position:0 -2926px}#loco-admin.wrap .region-zw{background-position:0 -2938px}#loco-admin.wrap .region-nr{background-position:0 -2950px}#loco-admin.wrap .region-ne{background-position:0 -2962px}#loco-admin.wrap .region-cu{background-position:0 -2974px}#loco-admin.wrap .region-bq{background-position:0 -2986px}#loco-admin.wrap .region-bf{background-position:0 -2998px}#loco-admin.wrap .region-bg{background-position:0 -3010px}#loco-admin.wrap .region-cc{background-position:0 -3022px}#loco-admin.wrap .region-mh{background-position:0 -3034px}#loco-admin.wrap .region-za{background-position:0 -3046px}#loco-admin.wrap .region-uy{background-position:0 -3058px}#loco-admin.wrap .region-wf{background-position:0 -3070px}#loco-admin.wrap .region-vu{background-position:0 -3082px}#loco-admin.wrap .region-tj{background-position:0 -3094px}#loco-admin.wrap .variant-scotland,#loco-admin.wrap .region-gb.lang-gd{background-position:0 -3106px}#loco-admin.wrap .variant-valencia,#loco-admin.wrap .region-es.variant-valencia{background-position:0 -3118px}#loco-admin.wrap .variant-wales,#loco-admin.wrap .region-gb.lang-cy{background-position:0 -3130px}#loco-admin.wrap .x-eu{background-position:0 -3142px}#loco-admin.wrap span.lang code{display:none}#loco-admin.wrap .icon-share:before{content:"↑"}#loco-admin.wrap .icon-notag:before{content:""}#loco-admin.wrap .icon-magnify:before{content:"🔍"}#loco-admin.wrap .icon-python:before{content:"🐍"}#loco-admin.wrap .icon-unicode:before{content:"u"}#loco-admin.wrap .icon-json:before{content:"{"}#loco-admin.wrap .icon-bullist:before{content:""}#loco-admin.wrap .icon-numlist:before{content:""}#loco-admin.wrap .icon-indent:before{content:""}#loco-admin.wrap .icon-outdent:before{content:""}#loco-admin.wrap .icon-link:before{content:""}#loco-admin.wrap .icon-unlink:before{content:""}#loco-admin.wrap .icon-bold:before{content:"B"}#loco-admin.wrap .icon-italic:before{content:"I"}#loco-admin.wrap .icon-translate:before{content:""}#loco-admin.wrap .icon-proj:before{content:""}#loco-admin.wrap .icon-plural:before{content:"᛬"}#loco-admin.wrap .icon-max:before,#loco-admin.wrap .icon-full-screen:before{content:""}#loco-admin.wrap .icon-min:before{content:""}#loco-admin.wrap .icon-sort:before{content:""}#loco-admin.wrap .icon-ok:before,#loco-admin.wrap .notice-success>.has-icon:before,#loco-admin.wrap .notice-success p>strong.has-icon:before{content:"✓"}#loco-admin.wrap .icon-ok-empty:before{content:"🗌"}#loco-admin.wrap .icon-checkbox-checked:before,#loco-admin.wrap .selector.multi li.checked .icon-checkbox:before{content:"☑"}#loco-admin.wrap .icon-checkbox-unchecked:before{content:"☐"}#loco-admin.wrap .icon-checkbox-partial:before{content:"☉"}#loco-admin.wrap .icon-radio-checked:before{content:"⚫"}#loco-admin.wrap .icon-radio-unchecked:before{content:"⚪"}#loco-admin.wrap .icon-ext:before{content:"⬈"}#loco-admin.wrap .icon-star:before{content:""}#loco-admin.wrap .icon-user:before{content:""}#loco-admin.wrap .icon-remove:before,#loco-admin.wrap a.icon.close:before{content:"×"}#loco-admin.wrap .icon-cog:before{content:""}#loco-admin.wrap .icon-trash:before{content:""}#loco-admin.wrap .icon-time:before,#loco-admin.wrap .icon-history:before{content:""}#loco-admin.wrap .icon-download:before{content:""}#loco-admin.wrap .icon-revert:before{content:""}#loco-admin.wrap .icon-sync:before{content:""}#loco-admin.wrap .icon-lock:before,#loco-admin.wrap .notice-locked>.has-icon:before,#loco-admin.wrap .notice-locked p>strong.has-icon:before{content:""}#loco-admin.wrap .icon-flag:before{content:""}#loco-admin.wrap .icon-tag:before{content:""}#loco-admin.wrap .icon-tags:before{content:""}#loco-admin.wrap .icon-print:before{content:""}#loco-admin.wrap .icon-camera:before{content:""}#loco-admin.wrap .icon-pencil:before{content:""}#loco-admin.wrap .icon-add:before{content:""}#loco-admin.wrap .icon-del:before{content:""}#loco-admin.wrap .icon-clear:before,#loco-admin.wrap a.icon.clear:before{content:""}#loco-admin.wrap .icon-ok-sign:before{content:"✔"}#loco-admin.wrap .icon-help:before{content:"?"}#loco-admin.wrap .icon-info:before,#loco-admin.wrap .notice-info>.has-icon:before,#loco-admin.wrap .notice-info p>strong.has-icon:before{content:"ℹ"}#loco-admin.wrap .icon-cancel:before{content:""}#loco-admin.wrap .icon-warn:before,#loco-admin.wrap .notice-error>.has-icon:before,#loco-admin.wrap .notice-error p>strong.has-icon:before,#loco-admin.wrap .notice-warning>.has-icon:before,#loco-admin.wrap .notice-warning p>strong.has-icon:before{content:""}#loco-admin.wrap .icon-comment:before{content:""}#loco-admin.wrap .icon-bar-chart:before{content:""}#loco-admin.wrap .icon-key:before{content:""}#loco-admin.wrap .icon-cogs:before{content:""}#loco-admin.wrap .icon-comments:before{content:""}#loco-admin.wrap .icon-signout:before{content:""}#loco-admin.wrap .icon-signin:before{content:""}#loco-admin.wrap .icon-upload:before{content:""}#loco-admin.wrap .icon-twitter:before{content:"🐦"}#loco-admin.wrap .icon-facebook:before{content:""}#loco-admin.wrap .icon-github:before{content:""}#loco-admin.wrap .icon-feed:before{content:""}#loco-admin.wrap .icon-globe:before{content:""}#loco-admin.wrap .icon-wrench:before,#loco-admin.wrap .notice-debug>.has-icon:before,#loco-admin.wrap .notice-debug p>strong.has-icon:before{content:""}#loco-admin.wrap .icon-group:before{content:""}#loco-admin.wrap .icon-cloud:before{content:""}#loco-admin.wrap .icon-copy:before{content:""}#loco-admin.wrap .icon-save:before{content:""}#loco-admin.wrap .icon-menu:before{content:""}#loco-admin.wrap .icon-table:before{content:""}#loco-admin.wrap .icon-caret-down:before{content:"▼"}#loco-admin.wrap .icon-caret-up:before{content:"▲"}#loco-admin.wrap .icon-caret-right:before{content:"▶"}#loco-admin.wrap .icon-mail:before{content:""}#loco-admin.wrap .icon-cloud-upload:before{content:""}#loco-admin.wrap .icon-file:before{content:""}#loco-admin.wrap .icon-circle-white:before{content:"⚬"}#loco-admin.wrap .icon-circle-black:before{content:"●"}#loco-admin.wrap .icon-eraser:before{content:""}#loco-admin.wrap .icon-unlock:before{content:""}#loco-admin.wrap .icon-apple:before{content:""}#loco-admin.wrap .icon-android:before{content:""}#loco-admin.wrap .icon-robot:before{content:"🤖"}#loco-admin.wrap .icon-back:before{content:"⬅"}#loco-admin.wrap .icon-next:before{content:"➔"}#loco-admin.wrap .icon-arrow-up:before{content:""}#loco-admin.wrap .icon-calendar:before{content:""}#loco-admin.wrap .icon-ccard:before{content:""}#loco-admin.wrap .icon-caret-left:before{content:"◀"}#loco-admin.wrap .icon-pro:before{content:"⚡"}#loco-admin.wrap .icon-bell:before{content:""}#loco-admin.wrap .icon-code:before{content:""}#loco-admin.wrap .icon-privacy:before{content:"🛡"}#loco-admin.wrap .icon-hellip:before{content:"…"}#loco-admin.wrap .icon-vellip:before{content:"⁞"}#loco-admin.wrap .icon-collapse:before{content:""}#loco-admin.wrap .icon-expand:before{content:""}#loco-admin.wrap .icon-wordpress:before{content:""}#loco-admin.wrap .icon-database:before{content:""}#loco-admin.wrap .icon-restore:before{content:""}#loco-admin.wrap .icon-pilcrow:before{content:"¶"}#loco-admin.wrap .icon,#loco-admin.wrap .has-icon:before,#loco-admin.wrap .has-dashicon:before{speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#loco-admin.wrap .icon,#loco-admin.wrap .has-icon:before{font-family:"loco"}#loco-admin.wrap .has-dashicon:before{font-family:"dashicons";font-size:1.4em}#loco-admin.wrap .has-icon:before,#loco-admin.wrap .has-dashicon:before,#loco-admin.wrap .has-icon>span{display:inline-block;vertical-align:middle}#loco-admin.wrap .only-icon{text-align:center}#loco-admin.wrap .only-icon:before{text-align:center;padding:0}#loco-admin.wrap .only-icon span{display:none}#loco-admin.wrap a,#loco-admin.wrap .wp-core-ui .button-link{text-decoration:none}#loco-admin.wrap h3:hover>a.loco-anchor{color:#ccc}#loco-admin.wrap h3:hover>a.loco-anchor:before{content:"¶"}#loco-admin.wrap .has-lang>span{display:inline-block;vertical-align:middle}#loco-admin.wrap a.has-lang:hover>span:last-child{text-decoration:underline}#loco-admin.wrap h1 ul,#loco-admin.wrap h1 li{margin:0;padding:0}#loco-admin.wrap h1 li{display:inline-block}#loco-admin.wrap h1 li:after{content:"/";color:#999;text-shadow:none;display:inline-block}#loco-admin.wrap h1 li:last-child:after{content:""}#loco-admin.wrap h1 li:last-child a{color:inherit;pointer-events:none;cursor:auto}#loco-admin.wrap h2 span{color:#999;font-weight:normal}#loco-admin.wrap h2 .loco-meta,#loco-admin.wrap h3 .loco-meta{color:inherit;font-size:14px;font-weight:normal;vertical-align:middle}#loco-admin.wrap .wp-list-table td:first-child .icon{width:16px;display:inline-block;text-align:center}#loco-admin.wrap .wp-list-table td{white-space:nowrap}#loco-admin.wrap .wp-list-table td>a,#loco-admin.wrap .wp-list-table td>time{display:inline-block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis;-ms-text-overflow:ellipsis}#loco-admin.wrap .wp-list-table th.loco-sort{cursor:pointer}#loco-admin.wrap .wp-list-table th.loco-sort:hover{color:#000}#loco-admin.wrap .wp-list-table th.loco-sort.loco-asc:after,#loco-admin.wrap .wp-list-table th.loco-sort.loco-desc:after{padding:0 0 0 4px;color:#999}#loco-admin.wrap .wp-list-table th.loco-sort.loco-desc:after{content:"▼"}#loco-admin.wrap .wp-list-table th.loco-sort.loco-asc:after{content:"▲"}#loco-admin.wrap .wp-list-table td.has-row-actions{overflow:visible}#loco-admin.wrap form.loco-filter{display:block;margin-bottom:5px}#loco-admin.wrap form.loco-filter .icon-filter{color:#999}#loco-admin.wrap nav.above-list-table{margin-bottom:1em}#loco-admin.wrap nav.above-list-table a{display:inline-block;margin-right:1em}#loco-admin.wrap .wp-core-ui button.inverted,#loco-admin.wrap .wp-core-ui button.inverted:hover,#loco-admin.wrap .po-fuzzy button.icon-cloud{background:-moz-linear-gradient(top, #cccccc 0%, #e0e0e0 30%, #fefefe 100%);background:-webkit-linear-gradient(top, #cccccc 0%, #e0e0e0 30%, #fefefe 100%);background:linear-gradient(to bottom, #cccccc 0%, #e0e0e0 30%, #fefefe 100%);-webkit-box-shadow:0 1px 0 #fff;-moz-box-shadow:0 1px 0 #fff;box-shadow:0 1px 0 #fff;border-color:gray}#loco-admin.wrap .wp-core-ui button:active,#loco-admin.wrap .wp-core-ui button.inverted:active{border-color:#5b9dd9}#loco-admin.wrap .loco-clearable{display:inline-block;vertical-align:middle;position:relative}#loco-admin.wrap .loco-clearable a.clear,#loco-admin.wrap .auto-comp-wrap a.clear{top:0;right:0;outline:none;margin:0;border:solid 1px transparent;padding:5px 5px;position:absolute;font-size:1em;line-height:normal}#loco-admin.wrap .loco-clearable a.clear:before,#loco-admin.wrap .auto-comp-wrap a.clear:before{vertical-align:middle;padding:0;color:#999}#loco-admin.wrap .loco-clearable a.clear:hover:before,#loco-admin.wrap .auto-comp-wrap a.clear:hover:before{color:#333}#loco-admin.wrap .loco-clearable a.clear span,#loco-admin.wrap .auto-comp-wrap a.clear span{display:none}#loco-admin.wrap .loco-clearable ::-ms-clear,#loco-admin.wrap .auto-comp-wrap ::-ms-clear{display:none}#loco-admin.wrap div.progress{color:#000;background:transparent !important}#loco-admin.wrap div.progress *{height:100%;overflow:hidden;white-space:nowrap}#loco-admin.wrap div.progress .t{background-color:#ddd;border:1px solid #ccc}#loco-admin.wrap div.progress .t .bar{float:left;clear:none;background-color:#3db63d}#loco-admin.wrap div.progress .t .bar.f{background-color:#bd2c00}#loco-admin.wrap div.progress .l{display:block}#loco-admin.wrap td div.progress .t{border:none}#loco-admin.wrap td div.progress .l{display:none}#loco-admin.wrap code.path{color:#333;margin:0;padding:0;display:inline;background:transparent}#loco-admin.wrap .loco-danger{color:#d54e21}#loco-admin.wrap .notice,#loco-admin.wrap .panel{background:#fff;position:relative;margin:1em 0;padding:1px 12px}#loco-admin.wrap .notice-generic{border-color:#ddd}#loco-admin.wrap .notice-success>.has-icon,#loco-admin.wrap .notice-success p>strong.has-icon{color:#000}#loco-admin.wrap .notice-warning{border-color:orange}#loco-admin.wrap .notice-error{border-color:#dc3232}#loco-admin.wrap .notice-debug{border-color:#00a0d2}#loco-admin.wrap .notice-danger{border-color:#dc3232}#loco-admin.wrap .notice-locked{border-color:orange}#loco-admin.wrap .notice>.has-icon:before,#loco-admin.wrap .notice p>strong.has-icon:before{padding-right:6px}#loco-admin.wrap .notice>p>a.button.has-icon:before{width:1.2em}#loco-admin.wrap .notice>p>em{color:#d54e21;font-style:normal}#loco-admin.wrap .notice>p>em a{color:inherit}#loco-admin.wrap .notice>p a:hover,#loco-admin.wrap .notice>nav a:hover{text-decoration:underline}#loco-admin.wrap .notice>p a.button,#loco-admin.wrap .notice>nav a.button{text-decoration:inherit}#loco-admin.wrap .notice.has-nav{display:flex;flex-direction:row}#loco-admin.wrap .notice.has-nav p,#loco-admin.wrap .notice.has-nav nav{line-height:22px;flex-grow:1}#loco-admin.wrap .notice.has-nav nav{text-align:right;padding:2px;margin:.5em 0}#loco-admin.wrap .notice.has-nav.is-dismissible{padding-right:38px}#loco-admin.wrap .notice.has-nav a{white-space:nowrap}#loco-admin.wrap .notice.has-nav nav>span{color:#666}#loco-admin.wrap .notice>h3>span{display:inline-block;vertical-align:middle}#loco-admin.wrap ul.problems li{font-style:italic}#loco-admin.wrap label{position:relative}#loco-admin.wrap label.for-disabled,#loco-admin.wrap label.for-disabled>input{cursor:default !important}#loco-admin.wrap input.regular-text,#loco-admin.wrap textarea.regular-text{width:25em}#loco-admin.wrap .button-link{padding:0 10px 1px}#loco-admin.wrap .button-danger{background:#ba0000;border-color:#900 #600 #600;-webkit-box-shadow:0 1px 0 #600;-moz-box-shadow:0 1px 0 #600;box-shadow:0 1px 0 #600;color:#fff;text-shadow:0 -1px 1px #600,1px 0 1px #600,0 1px 1px #600,-1px 0 1px #600}#loco-admin.wrap .button-success{background:#00b500;border-color:#090 #2e892e #2e892e;-webkit-box-shadow:0 1px 0 #2e892e;-moz-box-shadow:0 1px 0 #2e892e;box-shadow:0 1px 0 #2e892e;color:#fff;text-shadow:0 -1px 1px #2e892e,1px 0 1px #2e892e,0 1px 1px #2e892e,-1px 0 1px #2e892e}#loco-admin.wrap .button-success:hover{background:#3db63d}#loco-admin.wrap .button-danger[disabled],#loco-admin.wrap .button-success[disabled]{text-shadow:none !important}#loco-admin.wrap form button.loco-loading.button-large{padding-left:0}#loco-admin.wrap form button.loco-loading.button-large:before{width:16px;height:16px;margin:0 4px;content:" ";font-size:16px;line-height:1;display:inline-block;vertical-align:sub}#loco-admin.wrap ::placeholder{color:#ccc}#loco-admin.wrap ::-webkit-input-placeholder{color:#ccc}#loco-admin.wrap :-moz-placeholder{color:#ccc;opacity:1}#loco-admin.wrap ::-moz-placeholder{color:#ccc;opacity:1}#loco-admin.wrap :-ms-input-placeholder{color:#ccc}#loco-admin.wrap .ielt10 .placeheld{color:#ccc}#loco-admin.wrap a.has-raquo:after{content:" »"}#loco-admin.wrap a.has-laquo:before{content:"« "}#loco-admin.wrap span.inline-spinner{display:inline-block;min-width:16px;min-height:16px;background:transparent url(../img/spin-modal.gif?v=2.6.1) 0 0 no-repeat}.js #wpbody-content>.notice{display:none}.js #wpbody-content>.notice.inline{display:block}.js #loco-admin.wrap .jshide,.no-js #loco-admin.wrap .jsonly{display:none !important}#loco-admin.wrap .invis{visibility:hidden}.form-table tr td{vertical-align:top}.form-table tr.compact td{padding-top:0}.form-table tr th a.icon-help{display:none}.loco-modal{min-width:50%;min-height:100px}.loco-modal-wide{min-width:90% !important}.loco-modal-no-close .ui-dialog-titlebar-close{display:none}.loco-modal .ui-dialog-titlebar-close{overflow:hidden}.loco-modal.request-filesystem-credentials-dialog{top:15% !important;max-height:85% !important}.loco-modal.request-filesystem-credentials-dialog>.ui-dialog-content{background:inherit}.loco-modal.request-filesystem-credentials-dialog .ftp-password>label>em:last-child{display:none}.ui-dialog-content>div.loco-loading{height:100%;background:transparent url(../img/spin-modal.gif?v=2.6.1) center 20px no-repeat}#loco-po-ref ol li{color:#aaa;margin:0;white-space:pre;padding:0 0 0 1em;font:normal 12px/17px Consolas,Monaco,monospace;background:transparent;border-left:1px solid #eee}#loco-po-ref ol li code{margin:0;padding:0;display:inline;background:inherit}#loco-po-ref ol li.highlighted{color:#666;background-color:#f8eec7}#loco-po-ref ol li.highlighted code.T_CONSTANT_ENCAPSED_STRING{color:#c931c7}#loco-credit>*{vertical-align:middle}#loco-credit>a{display:inline-block;position:relative;overflow:hidden;background:transparent url(../img/logo-foot.gif?v=2.6.1) 0 0 no-repeat;height:30px;width:100px;text-indent:200px;-webkit-transition-duration:0s;transition-duration:0s}#loco-credit>a:hover{background-position:0 -35px}#loco-content{position:relative}#footer-upgrade span:before{color:#ccc;content:" | ";display:inline;padding-left:.5em;padding-right:.5em}#footer-upgrade span:first-child:before{content:"";display:none}.loco-clearfix:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}dl.debug dt{font-weight:bold}dl.debug dt,dl.debug dd{white-space:pre}.wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(0,115,170,.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#0073aa;foo:#0073aa}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);-moz-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);box-shadow:inset 0 0 .6em rgba(30,140,190,.8)}.wp-core-ui .button-primary.loco-loading[disabled]{color:#66c6e4 !important;background:#008ec2 !important;border-color:#008ec2 !important}.wp-core-ui .button-primary.loco-loading[disabled]:before{background:transparent url(../img/skins/fresh/spin-primary-button.gif?v=2.6.1) 0 0 no-repeat !important}
1
+ ._ajax_loader_f2{background-image:url(../img/ajax-loader-f2.gif?v=2.6.2);background-repeat:no-repeat;min-height:16px}._ajax_loader_f2x4{background:transparent url(../img/ajax-loader-f2-x4.gif?v=2.6.2) 0 0 no-repeat;min-height:75px}._ajax_loader_cc{background-image:url(../img/ajax-loader-cc.gif?v=2.6.2);background-repeat:no-repeat;min-height:16px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx){._ajax_loader_f2{background-image:url(../img/ajax-loader-f2-x2.gif?v=2.6.2);background-size:16px}._ajax_loader_cc{background-image:url(../img/ajax-loader-cc-x2.gif?v=2.6.2);background-size:16px}}._green_glow_inner{-webkit-box-shadow:inset 0 0 10px 0 #3db63d;-moz-box-shadow:inset 0 0 10px 0 #3db63d;box-shadow:inset 0 0 10px 0 #3db63d}._green_glow_outer{-webkit-box-shadow:0 0 .5em 0 #3db63d;-moz-box-shadow:0 0 .5em 0 #3db63d;box-shadow:0 0 .5em 0 #3db63d}.loco-font,#loco-admin.wrap .wp-list-table th.loco-sort.loco-asc:after,#loco-admin.wrap .wp-list-table th.loco-sort.loco-desc:after,#loco-admin.wrap .icon,#loco-admin.wrap .has-icon:before{font-family:"loco";speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@font-face{font-family:"loco";src:url("../font/loco.eot?v=2.6.2");src:url("../font/loco.eot?v=2.6.2?#iefix") format("embedded-opentype"),url("../font/loco.woff?v=2.6.2") format("woff"),url("../font/loco.ttf?v=2.6.2") format("truetype"),url("../font/loco.svg?v=2.6.2#loco") format("svg");font-weight:normal;font-style:normal}.tipsy{font-size:11px;position:absolute;padding:5px;z-index:500001;opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.tipsy.in{opacity:1}.tipsy-inner{background-color:#000;color:#fff;white-space:nowrap;padding:6px 8px;line-height:1.3em;text-align:center;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;-webkit-font-smoothing:subpixel-antialiased}.tipsy-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.tipsy-n .tipsy-arrow{top:0px;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.tipsy-nw .tipsy-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.tipsy-ne .tipsy-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.tipsy-s .tipsy-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.tipsy-sw .tipsy-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.tipsy-se .tipsy-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.tipsy-e .tipsy-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.tipsy-w .tipsy-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}#loco-admin.wrap .selector li,#loco-admin.wrap .selector .handle,#loco-admin.wrap .selectoradd a,#loco-admin.wrap .selectorsep:before,#loco-admin.wrap .selectorsep span{padding:.3em .75em}#loco-admin.wrap .selector{text-align:left;display:inline-block;white-space:nowrap}#loco-admin.wrap .selectoradd a,#loco-admin.wrap .selector .handle{cursor:default;display:block;position:relative;border-top:solid 1px #fff;border-right:solid 1px #ddd;border-bottom:solid 1px #ddd;border-left:solid 1px #fff;color:#666;height:1.3em;overflow:hidden;white-space:normal}#loco-admin.wrap .selectorsep{display:inline-block;border:solid 1px transparent}#loco-admin.wrap .selectorsep:before{display:block;position:relative;color:#999;height:1.3em;overflow:hidden}#loco-admin.wrap .selectorsep>*{display:block;line-height:1em;color:#666;height:1.3em;overflow:hidden}#loco-admin.wrap .selector .handle{outline:none;white-space:nowrap;padding-right:2.3em;max-width:250px;text-overflow:ellipsis}#loco-admin.wrap .selector .handle .prefix{padding-right:.6ex}#loco-admin.wrap .selector .handle:after{font-family:loco;font-size:1.3em;color:#ccc;display:block;position:absolute;top:.25em;right:.6em;content:"▼"}#loco-admin.wrap .selector .handle:focus:after,#loco-admin.wrap .selector .handle:hover:after{color:#666}#loco-admin.wrap .selector.no-caret .handle{padding-right:.75em}#loco-admin.wrap .selector.no-caret .handle:after{display:none}#loco-admin.wrap .selector.no-title .handle{padding-left:.5em;padding-right:.5em}#loco-admin.wrap .selector.no-title .handle .label{display:none}#loco-admin.wrap .selector.no-title .handle .icon{margin-right:0px}#loco-admin.wrap .selector.dummy .handle{border-color:transparent}#loco-admin.wrap .selector.dummy .handle:after{display:none}#loco-admin.wrap .selectoradd{position:relative}#loco-admin.wrap .selectoradd>*{display:block;float:left;clear:none}#loco-admin.wrap .selectoradd>a.has-icon{width:1.3em}#loco-admin.wrap .selectoradd>a.has-icon:before{color:#999;display:inline;padding-left:0;padding-right:0;line-height:1.4em}#loco-admin.wrap .selectoradd>a.has-icon:hover:after{color:#2e892e}#loco-admin.wrap .selectorsep{display:inline-block}#loco-admin.wrap .selectorsep span{color:#666;height:1.3em}#loco-admin.wrap .selector ul{padding:0}#loco-admin.wrap .selector ul,#loco-admin.wrap .selector li{display:block;position:relative;cursor:default;margin:0}#loco-admin.wrap .selector ul{z-index:5;position:absolute;left:0;top:0;background:#f5f5f5;box-shadow:0 10px 5px rgba(0,0,0,.2);border:solid 1px #ccc;overflow:auto}#loco-admin.wrap .selector.up ul{margin-top:0}#loco-admin.wrap .selector.multi li input{display:none}#loco-admin.wrap .selector.multi li.checked{background:#e5e5e5}#loco-admin.wrap .selector li.active{background:#e5e5e5 !important}#loco-admin.wrap .selector li.over{background:#ccc !important;color:#fff;text-shadow:1px 1px #aaa}#loco-admin.wrap .selector li.over .label{color:#fff}#loco-admin.wrap .selector .label{font:inherit;color:inherit}#loco-admin.wrap .selector .icon{display:inline-block;min-width:1.2em;text-align:center;font-size:14px}#loco-admin.wrap .selector .icon.no-icon{display:none}#loco-admin.wrap .selector .icon:before{color:#666}#loco-admin.wrap .selector .avtr{width:18px;height:18px;background-size:18px;background-repeat:no-repeat}#loco-admin.wrap .selector .label{line-height:1}#loco-admin.wrap .selector .icon,#loco-admin.wrap .selector .icon-16{vertical-align:bottom}#loco-admin.wrap .selector .icon,#loco-admin.wrap .selector .lang,#loco-admin.wrap .selector .icon-16{margin-right:5px}#loco-admin.wrap .selector .region,#loco-admin.wrap .selector .variant-wales,#loco-admin.wrap .selector .region-gb.lang-cy,#loco-admin.wrap .selector .variant-scotland,#loco-admin.wrap .selector .region-gb.lang-gd,#loco-admin.wrap .selector .variant-valencia,#loco-admin.wrap .selector .region-es.variant-valencia,#loco-admin.wrap .selector .lang-ca,#loco-admin.wrap .selector .region-es.lang-ca,#loco-admin.wrap .selector .lang-eo,#loco-admin.wrap .selector .lang-eu{margin-left:2px;margin-right:7px}#loco-admin.wrap .selector.ticked .icon.no-icon{font-size:12px;display:inline-block}#loco-admin.wrap .selector.ticked .active .icon.no-icon:before{content:"✓"}#loco-admin.wrap .selectoradd a:hover,#loco-admin.wrap .selector a.handle:focus,#loco-admin.wrap .selector a.handle:hover{color:#000;border-color:#999}#loco-admin.wrap .selector.active .handle{border-color:#999;background-color:#eee;color:#999}#loco-admin.wrap .selector.active .handle:after{color:#999;content:"▲"}#loco-admin.wrap .selector.disabled{cursor:default;cursor:no-drop;cursor:not-allowed}#loco-admin.wrap .selector.disabled .handle{pointer-events:none;border-top:solid 1px #fff;border-right:solid 1px #ddd;border-bottom:solid 1px #ddd;border-left:solid 1px #fff;color:#999;padding-right:1em}#loco-admin.wrap .selector.disabled .handle:after{display:none}#loco-admin.wrap .selector.disabled .handle span.icon{color:#999 !important}#loco-admin.wrap .selector li.disabled,#loco-admin.wrap .selector li.disabled.over{color:#aaa;text-shadow:1px 1px #fff;pointer-events:none}#loco-admin.wrap .selector li.disabled *{cursor:text}#loco-admin.wrap .selector li.disabled .icon:before{color:#aaa}#loco-admin.wrap .selector li.disabled .flag,#loco-admin.wrap .selector li.disabled .icon-16{opacity:.4}#loco-admin.wrap .selector.lefty ul{left:auto;right:0}#loco-admin.wrap .selector.lefty ul .icon,#loco-admin.wrap .selector.lefty ul .icon-32{display:block;float:right;clear:none}#loco-admin.wrap .selector.lefty ul .label{padding-right:32px;padding-left:0}#loco-admin.wrap .selector ul>form{margin:0;display:block}#loco-admin.wrap .selector ul>form input{margin:0;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#loco-admin.wrap .selector ul>form input:focus{-webkit-box-shadow:inset 0 0 5px 0 #3db63d;-moz-box-shadow:inset 0 0 5px 0 #3db63d;box-shadow:inset 0 0 5px 0 #3db63d}#loco-admin.wrap .selector ul>form input.error{border-color:#c00;-webkit-box-shadow:inset 0 0 5px 0 rgba(153,0,0,.5);-moz-box-shadow:inset 0 0 5px 0 rgba(153,0,0,.5);box-shadow:inset 0 0 5px 0 rgba(153,0,0,.5)}#loco-admin.wrap .selector ul>form a.clear{margin:0;border:none}#loco-admin.wrap .selector ul>form ::placeholder{color:gray;font-size:16px;font-family:"loco";text-align:right;display:block}#loco-admin.wrap .selector ul>form ::-webkit-input-placeholder{color:gray;font-size:16px;font-family:"loco";text-align:right;display:block}#loco-admin.wrap .selector ul>form :-moz-placeholder{color:gray;font-size:16px;font-family:"loco";text-align:right;display:block;opacity:1}#loco-admin.wrap .selector ul>form ::-moz-placeholder{color:gray;font-size:16px;font-family:"loco";text-align:right;display:block;opacity:1}#loco-admin.wrap .selector ul>form :-ms-input-placeholder{color:gray;font-size:16px;font-family:"loco";text-align:right;display:block}#loco-admin.wrap .selector ul>form .ielt10 .placeheld{color:gray;font-size:16px;font-family:"loco";text-align:right;display:block}#loco-admin.wrap div.auto-comp-wrap{width:100%}#loco-admin.wrap div.auto-comp-wrap input{display:inline-block}#loco-admin.wrap div.auto-comp-wrap.loading input{background:transparent url(../img/ajax-loader.gif?v=2.6.2) right 2px no-repeat}#loco-admin.wrap div.auto-comp-drop{color:#333;background:#fff;border-top:none;position:absolute;width:auto;top:0;left:0;z-index:99;-webkit-box-shadow:0 5px 5px rgba(0,0,0,.4);-moz-box-shadow:0 5px 5px rgba(0,0,0,.4);box-shadow:0 5px 5px rgba(0,0,0,.4)}#loco-admin.wrap div.auto-comp-result{padding:5px 10px;cursor:pointer;background:#f0f0f0;border-top:solid 1px #fff;border-bottom:solid 1px #ddd;white-space:nowrap}#loco-admin.wrap div.auto-comp-result:first-child{border-top:solid 1px #ddd}#loco-admin.wrap div.auto-comp-result>*{display:inline-block;vertical-align:middle;line-height:normal}#loco-admin.wrap div.auto-comp-result .icon:before{padding-right:5px}#loco-admin.wrap div.auto-comp-result:hover{background:#a8a8a8;color:#fff;border-top-color:#a8a8a8;border-bottom-color:#999}#loco-admin.wrap div.auto-comp-result.selected{background:#666 !important;color:#fff;border-top-color:#666;border-bottom-color:#666}#loco-admin.wrap div.auto-comp-result .lang,#loco-admin.wrap div.auto-comp-result .region,#loco-admin.wrap div.auto-comp-result .variant-wales,#loco-admin.wrap div.auto-comp-result .region-gb.lang-cy,#loco-admin.wrap div.auto-comp-result .variant-scotland,#loco-admin.wrap div.auto-comp-result .region-gb.lang-gd,#loco-admin.wrap div.auto-comp-result .variant-valencia,#loco-admin.wrap div.auto-comp-result .region-es.variant-valencia,#loco-admin.wrap div.auto-comp-result .lang-ca,#loco-admin.wrap div.auto-comp-result .region-es.lang-ca,#loco-admin.wrap div.auto-comp-result .lang-eo,#loco-admin.wrap div.auto-comp-result .lang-eu,#loco-admin.wrap div.auto-comp-result .avtr{margin-right:5px}#loco-admin.wrap div.auto-comp-wrap.error a.icon.clear:before{color:#c00;opacity:1}#loco-admin.wrap div.auto-comp-wrap.error input[type=text]{border-color:#c00;color:#c00}#loco-admin.wrap div.auto-comp-wrap.error input[type=text]:focus{-webkit-box-shadow:0 0 .5em 0 rgba(153,0,0,.5);-moz-box-shadow:0 0 .5em 0 rgba(153,0,0,.5);box-shadow:0 0 .5em 0 rgba(153,0,0,.5)}#loco-admin.wrap ._ajax_loader_f2{background-image:url(../img/ajax-loader-f2.gif?v=2.6.2);background-repeat:no-repeat;min-height:16px}#loco-admin.wrap ._ajax_loader_f2x4{background:transparent url(../img/ajax-loader-f2-x4.gif?v=2.6.2) 0 0 no-repeat;min-height:75px}#loco-admin.wrap ._ajax_loader_cc{background-image:url(../img/ajax-loader-cc.gif?v=2.6.2);background-repeat:no-repeat;min-height:16px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx){#loco-admin.wrap ._ajax_loader_f2{background-image:url(../img/ajax-loader-f2-x2.gif?v=2.6.2);background-size:16px}#loco-admin.wrap ._ajax_loader_cc{background-image:url(../img/ajax-loader-cc-x2.gif?v=2.6.2);background-size:16px}}#loco-admin.wrap ._green_glow_inner{-webkit-box-shadow:inset 0 0 10px 0 #3db63d;-moz-box-shadow:inset 0 0 10px 0 #3db63d;box-shadow:inset 0 0 10px 0 #3db63d}#loco-admin.wrap ._green_glow_outer{-webkit-box-shadow:0 0 .5em 0 #3db63d;-moz-box-shadow:0 0 .5em 0 #3db63d;box-shadow:0 0 .5em 0 #3db63d}#loco-admin.wrap .loco-font,#loco-admin.wrap .wp-list-table th.loco-sort.loco-asc:after,#loco-admin.wrap .wp-list-table th.loco-sort.loco-desc:after,#loco-admin.wrap .icon,#loco-admin.wrap .has-icon:before{font-family:"loco";speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#loco-admin.wrap .has-icon:before{display:inline-block;padding-right:.3em}#loco-admin.wrap a.icon-help{cursor:help}#loco-admin.wrap a.icon-help span{display:none}#loco-admin.wrap .icon-share:before{content:"↑"}#loco-admin.wrap .icon-notag:before{content:""}#loco-admin.wrap .icon-magnify:before{content:"🔍"}#loco-admin.wrap .icon-python:before{content:"🐍"}#loco-admin.wrap .icon-unicode:before{content:"u"}#loco-admin.wrap .icon-json:before{content:"{"}#loco-admin.wrap .icon-bullist:before{content:""}#loco-admin.wrap .icon-numlist:before{content:""}#loco-admin.wrap .icon-indent:before{content:""}#loco-admin.wrap .icon-outdent:before{content:""}#loco-admin.wrap .icon-link:before{content:""}#loco-admin.wrap .icon-unlink:before{content:""}#loco-admin.wrap .icon-bold:before{content:"B"}#loco-admin.wrap .icon-italic:before{content:"I"}#loco-admin.wrap .icon-translate:before{content:""}#loco-admin.wrap .icon-proj:before{content:""}#loco-admin.wrap .icon-plural:before{content:"᛬"}#loco-admin.wrap .icon-max:before,#loco-admin.wrap .icon-full-screen:before{content:""}#loco-admin.wrap .icon-min:before{content:""}#loco-admin.wrap .icon-sort:before{content:""}#loco-admin.wrap .icon-ok:before,#loco-admin.wrap .notice-success>.has-icon:before,#loco-admin.wrap .notice-success p>strong.has-icon:before{content:"✓"}#loco-admin.wrap .icon-ok-empty:before{content:"🗌"}#loco-admin.wrap .icon-checkbox-checked:before,#loco-admin.wrap .selector.multi li.checked .icon-checkbox:before{content:"☑"}#loco-admin.wrap .icon-checkbox-unchecked:before{content:"☐"}#loco-admin.wrap .icon-checkbox-partial:before{content:"☉"}#loco-admin.wrap .icon-radio-checked:before{content:"⚫"}#loco-admin.wrap .icon-radio-unchecked:before{content:"⚪"}#loco-admin.wrap .icon-ext:before{content:"⬈"}#loco-admin.wrap .icon-star:before{content:""}#loco-admin.wrap .icon-user:before{content:""}#loco-admin.wrap .icon-remove:before,#loco-admin.wrap a.icon.close:before{content:"×"}#loco-admin.wrap .icon-cog:before{content:""}#loco-admin.wrap .icon-trash:before{content:""}#loco-admin.wrap .icon-time:before,#loco-admin.wrap .icon-history:before{content:""}#loco-admin.wrap .icon-download:before{content:""}#loco-admin.wrap .icon-revert:before{content:""}#loco-admin.wrap .icon-sync:before{content:""}#loco-admin.wrap .icon-lock:before,#loco-admin.wrap .notice-locked>.has-icon:before,#loco-admin.wrap .notice-locked p>strong.has-icon:before{content:""}#loco-admin.wrap .icon-flag:before{content:""}#loco-admin.wrap .icon-tag:before{content:""}#loco-admin.wrap .icon-tags:before{content:""}#loco-admin.wrap .icon-print:before{content:""}#loco-admin.wrap .icon-camera:before{content:""}#loco-admin.wrap .icon-pencil:before{content:""}#loco-admin.wrap .icon-add:before{content:""}#loco-admin.wrap .icon-del:before{content:""}#loco-admin.wrap .icon-clear:before,#loco-admin.wrap a.icon.clear:before{content:""}#loco-admin.wrap .icon-ok-sign:before{content:"✔"}#loco-admin.wrap .icon-help:before{content:"?"}#loco-admin.wrap .icon-info:before,#loco-admin.wrap .notice-info>.has-icon:before,#loco-admin.wrap .notice-info p>strong.has-icon:before{content:"ℹ"}#loco-admin.wrap .icon-cancel:before{content:""}#loco-admin.wrap .icon-warn:before,#loco-admin.wrap .notice-error>.has-icon:before,#loco-admin.wrap .notice-error p>strong.has-icon:before,#loco-admin.wrap .notice-warning>.has-icon:before,#loco-admin.wrap .notice-warning p>strong.has-icon:before{content:""}#loco-admin.wrap .icon-comment:before{content:""}#loco-admin.wrap .icon-bar-chart:before{content:""}#loco-admin.wrap .icon-key:before{content:""}#loco-admin.wrap .icon-cogs:before{content:""}#loco-admin.wrap .icon-comments:before{content:""}#loco-admin.wrap .icon-signout:before{content:""}#loco-admin.wrap .icon-signin:before{content:""}#loco-admin.wrap .icon-upload:before{content:""}#loco-admin.wrap .icon-twitter:before{content:"🐦"}#loco-admin.wrap .icon-facebook:before{content:""}#loco-admin.wrap .icon-github:before{content:""}#loco-admin.wrap .icon-feed:before{content:""}#loco-admin.wrap .icon-globe:before{content:""}#loco-admin.wrap .icon-wrench:before,#loco-admin.wrap .notice-debug>.has-icon:before,#loco-admin.wrap .notice-debug p>strong.has-icon:before{content:""}#loco-admin.wrap .icon-group:before{content:""}#loco-admin.wrap .icon-cloud:before{content:""}#loco-admin.wrap .icon-copy:before{content:""}#loco-admin.wrap .icon-save:before{content:""}#loco-admin.wrap .icon-menu:before{content:""}#loco-admin.wrap .icon-table:before{content:""}#loco-admin.wrap .icon-caret-down:before{content:"▼"}#loco-admin.wrap .icon-caret-up:before{content:"▲"}#loco-admin.wrap .icon-caret-right:before{content:"▶"}#loco-admin.wrap .icon-mail:before{content:""}#loco-admin.wrap .icon-cloud-upload:before{content:""}#loco-admin.wrap .icon-file:before{content:""}#loco-admin.wrap .icon-circle-white:before{content:"⚬"}#loco-admin.wrap .icon-circle-black:before{content:"●"}#loco-admin.wrap .icon-eraser:before{content:""}#loco-admin.wrap .icon-unlock:before{content:""}#loco-admin.wrap .icon-apple:before{content:""}#loco-admin.wrap .icon-android:before{content:""}#loco-admin.wrap .icon-robot:before{content:"🤖"}#loco-admin.wrap .icon-back:before{content:"⬅"}#loco-admin.wrap .icon-next:before{content:"➔"}#loco-admin.wrap .icon-arrow-up:before{content:""}#loco-admin.wrap .icon-calendar:before{content:""}#loco-admin.wrap .icon-ccard:before{content:""}#loco-admin.wrap .icon-caret-left:before{content:"◀"}#loco-admin.wrap .icon-pro:before{content:"⚡"}#loco-admin.wrap .icon-bell:before{content:""}#loco-admin.wrap .icon-code:before{content:""}#loco-admin.wrap .icon-privacy:before{content:"🛡"}#loco-admin.wrap .icon-hellip:before{content:"…"}#loco-admin.wrap .icon-vellip:before{content:"⁞"}#loco-admin.wrap .icon-collapse:before{content:""}#loco-admin.wrap .icon-expand:before{content:""}#loco-admin.wrap .icon-wordpress:before{content:""}#loco-admin.wrap .icon-database:before{content:""}#loco-admin.wrap .icon-restore:before{content:""}#loco-admin.wrap .icon-pilcrow:before{content:"¶"}#loco-admin.wrap .icon-status.is-translated:before,#loco-admin.wrap .is-translated>header>.icon-status:before{color:#2e892e;content:"✓";text-align:center}#loco-admin.wrap .icon-status.is-untranslated:before,#loco-admin.wrap .is-untranslated>header>.icon-status:before{color:#aaa;content:"×";text-align:center;font-size:1.1em}#loco-admin.wrap .icon-status.is-flagged:before,#loco-admin.wrap .is-flagged>header>.icon-status:before{color:#bd2c00;content:"";text-align:center}#loco-admin.wrap .icon-status.is-translated.is-blank:before,#loco-admin.wrap .icon-status.is-translated.is-inherit:before,#loco-admin.wrap .is-translated.is-blank>header>.icon-status:before,#loco-admin.wrap .is-translated.is-inherit>header>.icon-status:before{content:"🗌"}#loco-admin.wrap .icon-status.is-fuzzy:before,#loco-admin.wrap .is-fuzzy>header>.icon-status:before{color:#666;content:""}#loco-admin.wrap .lang,#loco-admin.wrap .region,#loco-admin.wrap .variant-wales,#loco-admin.wrap .region-gb.lang-cy,#loco-admin.wrap .variant-scotland,#loco-admin.wrap .region-gb.lang-gd,#loco-admin.wrap .variant-valencia,#loco-admin.wrap .region-es.variant-valencia,#loco-admin.wrap .lang-ca,#loco-admin.wrap .region-es.lang-ca,#loco-admin.wrap .lang-eo,#loco-admin.wrap .lang-eu{color:#fff;background:#2e892e;display:inline-block;text-transform:uppercase;overflow:hidden;font-family:Verdana,Arial,sans-serif;font-size:9px;font-weight:normal;font-style:normal;line-height:12px;text-align:center;white-space:normal;text-shadow:none}#loco-admin.wrap .lang{width:20px;height:12px;line-height:12px;vertical-align:middle}#loco-admin.wrap .lang:before{content:attr(lang);vertical-align:baseline}#loco-admin.wrap .no-lang{width:18px;height:10px;border:solid 1px #2e892e;background:transparent}#loco-admin.wrap .lang-el{background-color:#1d48a3}#loco-admin.wrap .lang-el:before{content:"Ελ"}#loco-admin.wrap .region,#loco-admin.wrap .variant-wales,#loco-admin.wrap .region-gb.lang-cy,#loco-admin.wrap .variant-scotland,#loco-admin.wrap .region-gb.lang-gd,#loco-admin.wrap .variant-valencia,#loco-admin.wrap .region-es.variant-valencia,#loco-admin.wrap .lang-ca,#loco-admin.wrap .region-es.lang-ca,#loco-admin.wrap .lang-eo,#loco-admin.wrap .lang-eu{width:16px;height:12px;margin:0 2px;background-image:url(../img/flags.png?v=2.6.2);background-repeat:no-repeat;background-color:transparent}#loco-admin.wrap .region:before,#loco-admin.wrap .variant-wales:before,#loco-admin.wrap .region-gb.lang-cy:before,#loco-admin.wrap .variant-scotland:before,#loco-admin.wrap .region-gb.lang-gd:before,#loco-admin.wrap .variant-valencia:before,#loco-admin.wrap .region-es.variant-valencia:before,#loco-admin.wrap .lang-ca:before,#loco-admin.wrap .region-es.lang-ca:before,#loco-admin.wrap .lang-eo:before,#loco-admin.wrap .lang-eu:before{visibility:hidden}#loco-admin.wrap .lang-zh{background-color:#b90000}#loco-admin.wrap .lang-zh.script-hans:before{content:"中国"}#loco-admin.wrap .lang-zh.script-hant:before{content:"中國"}#loco-admin.wrap .__{background-position:0 0}#loco-admin.wrap .lang-eo{background-position:0 -12px}#loco-admin.wrap .lang-eu{background-position:0 -24px}#loco-admin.wrap .lang-ca,#loco-admin.wrap .region-es.lang-ca{background-position:0 -36px}#loco-admin.wrap .region-tg{background-position:0 -48px}#loco-admin.wrap .region-me{background-position:0 -60px}#loco-admin.wrap .region-la{background-position:0 -73px}#loco-admin.wrap .region-mr{background-position:0 -85px}#loco-admin.wrap .region-ni{background-position:0 -97px}#loco-admin.wrap .region-lv{background-position:0 -109px}#loco-admin.wrap .region-om{background-position:0 -121px}#loco-admin.wrap .region-af{background-position:0 -133px}#loco-admin.wrap .region-cy{background-position:0 -145px}#loco-admin.wrap .region-bj{background-position:0 -157px}#loco-admin.wrap .region-aq{background-position:0 -169px}#loco-admin.wrap .region-cn{background-position:0 -186px}#loco-admin.wrap .region-co{background-position:0 -198px}#loco-admin.wrap .region-cx{background-position:0 -210px}#loco-admin.wrap .region-ag{background-position:0 -222px}#loco-admin.wrap .region-ms{background-position:0 -234px}#loco-admin.wrap .region-md{background-position:0 -246px}#loco-admin.wrap .region-zm{background-position:0 -258px}#loco-admin.wrap .region-vn{background-position:0 -270px}#loco-admin.wrap .region-tf{background-position:0 -282px}#loco-admin.wrap .region-td{background-position:0 -294px}#loco-admin.wrap .region-yt{background-position:0 -306px}#loco-admin.wrap .region-lb{background-position:0 -318px}#loco-admin.wrap .region-mf{background-position:0 -330px}#loco-admin.wrap .region-lu{background-position:0 -347px}#loco-admin.wrap .region-mq{background-position:0 -359px}#loco-admin.wrap .region-cz{background-position:0 -371px}#loco-admin.wrap .region-ae{background-position:0 -383px}#loco-admin.wrap .region-cm{background-position:0 -395px}#loco-admin.wrap .region-bi{background-position:0 -407px}#loco-admin.wrap .region-ar{background-position:0 -419px}#loco-admin.wrap .region-as{background-position:0 -431px}#loco-admin.wrap .region-bh{background-position:0 -443px}#loco-admin.wrap .region-cl{background-position:0 -455px}#loco-admin.wrap .region-ad{background-position:0 -467px}#loco-admin.wrap .region-mp{background-position:0 -479px}#loco-admin.wrap .region-lt{background-position:0 -491px}#loco-admin.wrap .region-mg{background-position:0 -503px}#loco-admin.wrap .region-lc{background-position:0 -515px}#loco-admin.wrap .region-tr{background-position:0 -527px}#loco-admin.wrap .region-ua{background-position:0 -539px}#loco-admin.wrap .region-tv{background-position:0 -551px}#loco-admin.wrap .region-vi{background-position:0 -563px}#loco-admin.wrap .region-mt{background-position:0 -575px}#loco-admin.wrap .region-no{background-position:0 -587px}#loco-admin.wrap .region-mc{background-position:0 -599px}#loco-admin.wrap .region-ch{background-position:0 -611px}#loco-admin.wrap .region-bl{background-position:0 -623px}#loco-admin.wrap .region-aw{background-position:0 -640px}#loco-admin.wrap .region-bz{background-position:0 -652px}#loco-admin.wrap .region-bm{background-position:0 -664px}#loco-admin.wrap .region-ci{background-position:0 -676px}#loco-admin.wrap .region-mu{background-position:0 -688px}#loco-admin.wrap .region-us{background-position:0 -700px}#loco-admin.wrap .region-tw{background-position:0 -712px}#loco-admin.wrap .region-ye{background-position:0 -724px}#loco-admin.wrap .region-mw{background-position:0 -736px}#loco-admin.wrap .region-nl{background-position:0 -748px}#loco-admin.wrap .region-ls{background-position:0 -760px}#loco-admin.wrap .region-bo{background-position:0 -772px}#loco-admin.wrap .region-at{background-position:0 -784px}#loco-admin.wrap .region-ck{background-position:0 -796px}#loco-admin.wrap .region-by{background-position:0 -808px}#loco-admin.wrap .region-au{background-position:0 -820px}#loco-admin.wrap .region-bn{background-position:0 -832px}#loco-admin.wrap .region-ma{background-position:0 -844px}#loco-admin.wrap .region-nz{background-position:0 -856px}#loco-admin.wrap .region-lr{background-position:0 -868px}#loco-admin.wrap .region-mv{background-position:0 -880px}#loco-admin.wrap .region-tc{background-position:0 -892px}#loco-admin.wrap .region-ug{background-position:0 -904px}#loco-admin.wrap .region-tt{background-position:0 -916px}#loco-admin.wrap .region-pl{background-position:0 -928px}#loco-admin.wrap .region-rs{background-position:0 -940px}#loco-admin.wrap .region-in{background-position:0 -952px}#loco-admin.wrap .region-ge{background-position:0 -964px}#loco-admin.wrap .region-gr{background-position:0 -976px}#loco-admin.wrap .region-gs{background-position:0 -988px}#loco-admin.wrap .region-gd{background-position:0 -1000px}#loco-admin.wrap .region-io{background-position:0 -1012px}#loco-admin.wrap .region-hk{background-position:0 -1024px}#loco-admin.wrap .region-kp{background-position:0 -1036px}#loco-admin.wrap .region-kg{background-position:0 -1048px}#loco-admin.wrap .region-pm{background-position:0 -1060px}#loco-admin.wrap .region-sv{background-position:0 -1072px}#loco-admin.wrap .region-re{background-position:0 -1084px}#loco-admin.wrap .region-sa{background-position:0 -1096px}#loco-admin.wrap .region-sc{background-position:0 -1108px}#loco-admin.wrap .region-st{background-position:0 -1120px}#loco-admin.wrap .region-ke{background-position:0 -1132px}#loco-admin.wrap .region-im{background-position:0 -1144px}#loco-admin.wrap .region-kr{background-position:0 -1161px}#loco-admin.wrap .region-gf{background-position:0 -1173px}#loco-admin.wrap .region-dj{background-position:0 -1185px}#loco-admin.wrap .region-gq{background-position:0 -1197px}#loco-admin.wrap .region-gp{background-position:0 -1209px}#loco-admin.wrap .region-dk{background-position:0 -1221px}#loco-admin.wrap .region-gg{background-position:0 -1233px}#loco-admin.wrap .region-il{background-position:0 -1250px}#loco-admin.wrap .region-pn{background-position:0 -1262px}#loco-admin.wrap .region-sb{background-position:0 -1274px}#loco-admin.wrap .region-py{background-position:0 -1286px}#loco-admin.wrap .region-ru{background-position:0 -1298px}#loco-admin.wrap .region-kw{background-position:0 -1310px}#loco-admin.wrap .region-do{background-position:0 -1322px}#loco-admin.wrap .region-gt{background-position:0 -1334px}#loco-admin.wrap .region-gb{background-position:0 -1346px}#loco-admin.wrap .region-gu{background-position:0 -1358px}#loco-admin.wrap .region-je{background-position:0 -1370px}#loco-admin.wrap .region-hm{background-position:0 -1387px}#loco-admin.wrap .region-sg{background-position:0 -1399px}#loco-admin.wrap .region-pk{background-position:0 -1411px}#loco-admin.wrap .region-sr{background-position:0 -1423px}#loco-admin.wrap .region-se{background-position:0 -1435px}#loco-admin.wrap .region-jp{background-position:0 -1447px}#loco-admin.wrap .region-gw{background-position:0 -1459px}#loco-admin.wrap .region-eh{background-position:0 -1471px}#loco-admin.wrap .region-dz{background-position:0 -1483px}#loco-admin.wrap .region-ga{background-position:0 -1495px}#loco-admin.wrap .region-fr{background-position:0 -1507px}#loco-admin.wrap .region-dm{background-position:0 -1519px}#loco-admin.wrap .region-hn{background-position:0 -1531px}#loco-admin.wrap .region-sd{background-position:0 -1543px}#loco-admin.wrap .region-rw{background-position:0 -1555px}#loco-admin.wrap .region-ph{background-position:0 -1567px}#loco-admin.wrap .region-ss{background-position:0 -1579px}#loco-admin.wrap .region-qa{background-position:0 -1596px}#loco-admin.wrap .region-pe{background-position:0 -1608px}#loco-admin.wrap .region-pr{background-position:0 -1620px}#loco-admin.wrap .region-si{background-position:0 -1632px}#loco-admin.wrap .region-ht{background-position:0 -1644px}#loco-admin.wrap .region-es{background-position:0 -1656px}#loco-admin.wrap .region-gl{background-position:0 -1668px}#loco-admin.wrap .region-gm{background-position:0 -1680px}#loco-admin.wrap .region-er{background-position:0 -1692px}#loco-admin.wrap .region-fi{background-position:0 -1704px}#loco-admin.wrap .region-ee{background-position:0 -1716px}#loco-admin.wrap .region-kn{background-position:0 -1728px}#loco-admin.wrap .region-hu{background-position:0 -1740px}#loco-admin.wrap .region-iq{background-position:0 -1752px}#loco-admin.wrap .region-ky{background-position:0 -1764px}#loco-admin.wrap .region-sh{background-position:0 -1776px}#loco-admin.wrap .region-ps{background-position:0 -1788px}#loco-admin.wrap .region-pf{background-position:0 -1800px}#loco-admin.wrap .region-sj{background-position:0 -1812px}#loco-admin.wrap .region-id{background-position:0 -1824px}#loco-admin.wrap .region-is{background-position:0 -1836px}#loco-admin.wrap .region-eg{background-position:0 -1848px}#loco-admin.wrap .region-fk{background-position:0 -1860px}#loco-admin.wrap .region-fj{background-position:0 -1872px}#loco-admin.wrap .region-gn{background-position:0 -1884px}#loco-admin.wrap .region-gy{background-position:0 -1896px}#loco-admin.wrap .region-ir{background-position:0 -1908px}#loco-admin.wrap .region-km{background-position:0 -1920px}#loco-admin.wrap .region-ie{background-position:0 -1932px}#loco-admin.wrap .region-kz{background-position:0 -1944px}#loco-admin.wrap .region-ro{background-position:0 -1956px}#loco-admin.wrap .region-sk{background-position:0 -1968px}#loco-admin.wrap .region-pg{background-position:0 -1980px}#loco-admin.wrap .region-pt{background-position:0 -1992px}#loco-admin.wrap .region-so{background-position:0 -2004px}#loco-admin.wrap .region-sx{background-position:0 -2016px}#loco-admin.wrap .region-hr{background-position:0 -2033px}#loco-admin.wrap .region-ki{background-position:0 -2045px}#loco-admin.wrap .region-jm{background-position:0 -2057px}#loco-admin.wrap .region-ec{background-position:0 -2069px}#loco-admin.wrap .region-et{background-position:0 -2081px}#loco-admin.wrap .region-fo{background-position:0 -2093px}#loco-admin.wrap .region-kh{background-position:0 -2105px}#loco-admin.wrap .region-sy{background-position:0 -2117px}#loco-admin.wrap .region-sn{background-position:0 -2129px}#loco-admin.wrap .region-pw{background-position:0 -2141px}#loco-admin.wrap .region-sl{background-position:0 -2153px}#loco-admin.wrap .region-fm{background-position:0 -2165px}#loco-admin.wrap .region-gi{background-position:0 -2177px}#loco-admin.wrap .region-de{background-position:0 -2189px}#loco-admin.wrap .region-gh{background-position:0 -2201px}#loco-admin.wrap .region-jo{background-position:0 -2213px}#loco-admin.wrap .region-it{background-position:0 -2225px}#loco-admin.wrap .region-pa{background-position:0 -2237px}#loco-admin.wrap .region-sz{background-position:0 -2249px}#loco-admin.wrap .region-sm{background-position:0 -2261px}#loco-admin.wrap .region-tn{background-position:0 -2273px}#loco-admin.wrap .region-ml{background-position:0 -2285px}#loco-admin.wrap .region-cg{background-position:0 -2297px}#loco-admin.wrap .region-ax{background-position:0 -2309px}#loco-admin.wrap .region-ao{background-position:0 -2321px}#loco-admin.wrap .region-bt{background-position:0 -2333px}#loco-admin.wrap .region-an{background-position:0 -2345px}#loco-admin.wrap .region-bb{background-position:0 -2357px}#loco-admin.wrap .region-cf{background-position:0 -2369px}#loco-admin.wrap .region-mm{background-position:0 -2381px}#loco-admin.wrap .region-li{background-position:0 -2393px}#loco-admin.wrap .region-na{background-position:0 -2405px}#loco-admin.wrap .region-mz{background-position:0 -2417px}#loco-admin.wrap .region-to{background-position:0 -2429px}#loco-admin.wrap .region-vg{background-position:0 -2441px}#loco-admin.wrap .region-ve{background-position:0 -2453px}#loco-admin.wrap .region-tz{background-position:0 -2465px}#loco-admin.wrap .region-tm{background-position:0 -2477px}#loco-admin.wrap .region-mx{background-position:0 -2489px}#loco-admin.wrap .region-nc{background-position:0 -2501px}#loco-admin.wrap .region-mo{background-position:0 -2513px}#loco-admin.wrap .region-lk{background-position:0 -2525px}#loco-admin.wrap .region-cd{background-position:0 -2537px}#loco-admin.wrap .region-al{background-position:0 -2549px}#loco-admin.wrap .region-bw{background-position:0 -2561px}#loco-admin.wrap .region-cs{background-position:0 -2573px}#loco-admin.wrap .region-cr{background-position:0 -2585px}#loco-admin.wrap .region-bv{background-position:0 -2597px}#loco-admin.wrap .region-am{background-position:0 -2609px}#loco-admin.wrap .region-az{background-position:0 -2621px}#loco-admin.wrap .region-ba{background-position:0 -2633px}#loco-admin.wrap .region-mn{background-position:0 -2645px}#loco-admin.wrap .region-nu{background-position:0 -2657px}#loco-admin.wrap .region-my{background-position:0 -2669px}#loco-admin.wrap .region-tl{background-position:0 -2681px}#loco-admin.wrap .region-ws{background-position:0 -2693px}#loco-admin.wrap .region-th{background-position:0 -2705px}#loco-admin.wrap .region-nf{background-position:0 -2717px}#loco-admin.wrap .region-ly{background-position:0 -2729px}#loco-admin.wrap .region-ai{background-position:0 -2741px}#loco-admin.wrap .region-br{background-position:0 -2753px}#loco-admin.wrap .region-cv{background-position:0 -2765px}#loco-admin.wrap .region-be{background-position:0 -2777px}#loco-admin.wrap .region-ca{background-position:0 -2789px}#loco-admin.wrap .region-bd{background-position:0 -2801px}#loco-admin.wrap .region-cw{background-position:0 -2813px}#loco-admin.wrap .region-bs{background-position:0 -2830px}#loco-admin.wrap .region-ng{background-position:0 -2842px}#loco-admin.wrap .region-mk{background-position:0 -2854px}#loco-admin.wrap .region-np{background-position:0 -2866px}#loco-admin.wrap .region-va{background-position:0 -2878px}#loco-admin.wrap .region-uz{background-position:0 -2890px}#loco-admin.wrap .region-um{background-position:0 -2902px}#loco-admin.wrap .region-tk{background-position:0 -2914px}#loco-admin.wrap .region-vc{background-position:0 -2926px}#loco-admin.wrap .region-zw{background-position:0 -2938px}#loco-admin.wrap .region-nr{background-position:0 -2950px}#loco-admin.wrap .region-ne{background-position:0 -2962px}#loco-admin.wrap .region-cu{background-position:0 -2974px}#loco-admin.wrap .region-bq{background-position:0 -2986px}#loco-admin.wrap .region-bf{background-position:0 -2998px}#loco-admin.wrap .region-bg{background-position:0 -3010px}#loco-admin.wrap .region-cc{background-position:0 -3022px}#loco-admin.wrap .region-mh{background-position:0 -3034px}#loco-admin.wrap .region-za{background-position:0 -3046px}#loco-admin.wrap .region-uy{background-position:0 -3058px}#loco-admin.wrap .region-wf{background-position:0 -3070px}#loco-admin.wrap .region-vu{background-position:0 -3082px}#loco-admin.wrap .region-tj{background-position:0 -3094px}#loco-admin.wrap .variant-scotland,#loco-admin.wrap .region-gb.lang-gd{background-position:0 -3106px}#loco-admin.wrap .variant-valencia,#loco-admin.wrap .region-es.variant-valencia{background-position:0 -3118px}#loco-admin.wrap .variant-wales,#loco-admin.wrap .region-gb.lang-cy{background-position:0 -3130px}#loco-admin.wrap .x-eu{background-position:0 -3142px}#loco-admin.wrap span.lang code{display:none}#loco-admin.wrap .icon-share:before{content:"↑"}#loco-admin.wrap .icon-notag:before{content:""}#loco-admin.wrap .icon-magnify:before{content:"🔍"}#loco-admin.wrap .icon-python:before{content:"🐍"}#loco-admin.wrap .icon-unicode:before{content:"u"}#loco-admin.wrap .icon-json:before{content:"{"}#loco-admin.wrap .icon-bullist:before{content:""}#loco-admin.wrap .icon-numlist:before{content:""}#loco-admin.wrap .icon-indent:before{content:""}#loco-admin.wrap .icon-outdent:before{content:""}#loco-admin.wrap .icon-link:before{content:""}#loco-admin.wrap .icon-unlink:before{content:""}#loco-admin.wrap .icon-bold:before{content:"B"}#loco-admin.wrap .icon-italic:before{content:"I"}#loco-admin.wrap .icon-translate:before{content:""}#loco-admin.wrap .icon-proj:before{content:""}#loco-admin.wrap .icon-plural:before{content:"᛬"}#loco-admin.wrap .icon-max:before,#loco-admin.wrap .icon-full-screen:before{content:""}#loco-admin.wrap .icon-min:before{content:""}#loco-admin.wrap .icon-sort:before{content:""}#loco-admin.wrap .icon-ok:before,#loco-admin.wrap .notice-success>.has-icon:before,#loco-admin.wrap .notice-success p>strong.has-icon:before{content:"✓"}#loco-admin.wrap .icon-ok-empty:before{content:"🗌"}#loco-admin.wrap .icon-checkbox-checked:before,#loco-admin.wrap .selector.multi li.checked .icon-checkbox:before{content:"☑"}#loco-admin.wrap .icon-checkbox-unchecked:before{content:"☐"}#loco-admin.wrap .icon-checkbox-partial:before{content:"☉"}#loco-admin.wrap .icon-radio-checked:before{content:"⚫"}#loco-admin.wrap .icon-radio-unchecked:before{content:"⚪"}#loco-admin.wrap .icon-ext:before{content:"⬈"}#loco-admin.wrap .icon-star:before{content:""}#loco-admin.wrap .icon-user:before{content:""}#loco-admin.wrap .icon-remove:before,#loco-admin.wrap a.icon.close:before{content:"×"}#loco-admin.wrap .icon-cog:before{content:""}#loco-admin.wrap .icon-trash:before{content:""}#loco-admin.wrap .icon-time:before,#loco-admin.wrap .icon-history:before{content:""}#loco-admin.wrap .icon-download:before{content:""}#loco-admin.wrap .icon-revert:before{content:""}#loco-admin.wrap .icon-sync:before{content:""}#loco-admin.wrap .icon-lock:before,#loco-admin.wrap .notice-locked>.has-icon:before,#loco-admin.wrap .notice-locked p>strong.has-icon:before{content:""}#loco-admin.wrap .icon-flag:before{content:""}#loco-admin.wrap .icon-tag:before{content:""}#loco-admin.wrap .icon-tags:before{content:""}#loco-admin.wrap .icon-print:before{content:""}#loco-admin.wrap .icon-camera:before{content:""}#loco-admin.wrap .icon-pencil:before{content:""}#loco-admin.wrap .icon-add:before{content:""}#loco-admin.wrap .icon-del:before{content:""}#loco-admin.wrap .icon-clear:before,#loco-admin.wrap a.icon.clear:before{content:""}#loco-admin.wrap .icon-ok-sign:before{content:"✔"}#loco-admin.wrap .icon-help:before{content:"?"}#loco-admin.wrap .icon-info:before,#loco-admin.wrap .notice-info>.has-icon:before,#loco-admin.wrap .notice-info p>strong.has-icon:before{content:"ℹ"}#loco-admin.wrap .icon-cancel:before{content:""}#loco-admin.wrap .icon-warn:before,#loco-admin.wrap .notice-error>.has-icon:before,#loco-admin.wrap .notice-error p>strong.has-icon:before,#loco-admin.wrap .notice-warning>.has-icon:before,#loco-admin.wrap .notice-warning p>strong.has-icon:before{content:""}#loco-admin.wrap .icon-comment:before{content:""}#loco-admin.wrap .icon-bar-chart:before{content:""}#loco-admin.wrap .icon-key:before{content:""}#loco-admin.wrap .icon-cogs:before{content:""}#loco-admin.wrap .icon-comments:before{content:""}#loco-admin.wrap .icon-signout:before{content:""}#loco-admin.wrap .icon-signin:before{content:""}#loco-admin.wrap .icon-upload:before{content:""}#loco-admin.wrap .icon-twitter:before{content:"🐦"}#loco-admin.wrap .icon-facebook:before{content:""}#loco-admin.wrap .icon-github:before{content:""}#loco-admin.wrap .icon-feed:before{content:""}#loco-admin.wrap .icon-globe:before{content:""}#loco-admin.wrap .icon-wrench:before,#loco-admin.wrap .notice-debug>.has-icon:before,#loco-admin.wrap .notice-debug p>strong.has-icon:before{content:""}#loco-admin.wrap .icon-group:before{content:""}#loco-admin.wrap .icon-cloud:before{content:""}#loco-admin.wrap .icon-copy:before{content:""}#loco-admin.wrap .icon-save:before{content:""}#loco-admin.wrap .icon-menu:before{content:""}#loco-admin.wrap .icon-table:before{content:""}#loco-admin.wrap .icon-caret-down:before{content:"▼"}#loco-admin.wrap .icon-caret-up:before{content:"▲"}#loco-admin.wrap .icon-caret-right:before{content:"▶"}#loco-admin.wrap .icon-mail:before{content:""}#loco-admin.wrap .icon-cloud-upload:before{content:""}#loco-admin.wrap .icon-file:before{content:""}#loco-admin.wrap .icon-circle-white:before{content:"⚬"}#loco-admin.wrap .icon-circle-black:before{content:"●"}#loco-admin.wrap .icon-eraser:before{content:""}#loco-admin.wrap .icon-unlock:before{content:""}#loco-admin.wrap .icon-apple:before{content:""}#loco-admin.wrap .icon-android:before{content:""}#loco-admin.wrap .icon-robot:before{content:"🤖"}#loco-admin.wrap .icon-back:before{content:"⬅"}#loco-admin.wrap .icon-next:before{content:"➔"}#loco-admin.wrap .icon-arrow-up:before{content:""}#loco-admin.wrap .icon-calendar:before{content:""}#loco-admin.wrap .icon-ccard:before{content:""}#loco-admin.wrap .icon-caret-left:before{content:"◀"}#loco-admin.wrap .icon-pro:before{content:"⚡"}#loco-admin.wrap .icon-bell:before{content:""}#loco-admin.wrap .icon-code:before{content:""}#loco-admin.wrap .icon-privacy:before{content:"🛡"}#loco-admin.wrap .icon-hellip:before{content:"…"}#loco-admin.wrap .icon-vellip:before{content:"⁞"}#loco-admin.wrap .icon-collapse:before{content:""}#loco-admin.wrap .icon-expand:before{content:""}#loco-admin.wrap .icon-wordpress:before{content:""}#loco-admin.wrap .icon-database:before{content:""}#loco-admin.wrap .icon-restore:before{content:""}#loco-admin.wrap .icon-pilcrow:before{content:"¶"}#loco-admin.wrap .icon,#loco-admin.wrap .has-icon:before,#loco-admin.wrap .has-dashicon:before{speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#loco-admin.wrap .icon,#loco-admin.wrap .has-icon:before{font-family:"loco"}#loco-admin.wrap .has-dashicon:before{font-family:"dashicons";font-size:1.4em}#loco-admin.wrap .has-icon:before,#loco-admin.wrap .has-dashicon:before,#loco-admin.wrap .has-icon>span{display:inline-block;vertical-align:middle}#loco-admin.wrap .only-icon{text-align:center}#loco-admin.wrap .only-icon:before{text-align:center;padding:0}#loco-admin.wrap .only-icon span{display:none}#loco-admin.wrap a,#loco-admin.wrap .wp-core-ui .button-link{text-decoration:none}#loco-admin.wrap h3:hover>a.loco-anchor{color:#ccc}#loco-admin.wrap h3:hover>a.loco-anchor:before{content:"¶"}#loco-admin.wrap .has-lang>span{display:inline-block;vertical-align:middle}#loco-admin.wrap a.has-lang:hover>span:last-child{text-decoration:underline}#loco-admin.wrap h1 ul,#loco-admin.wrap h1 li{margin:0;padding:0}#loco-admin.wrap h1 li{display:inline-block}#loco-admin.wrap h1 li:after{content:"/";color:#999;text-shadow:none;display:inline-block}#loco-admin.wrap h1 li:last-child:after{content:""}#loco-admin.wrap h1 li:last-child a{color:inherit;pointer-events:none;cursor:auto}#loco-admin.wrap h2 span{color:#999;font-weight:normal}#loco-admin.wrap h2 .loco-meta,#loco-admin.wrap h3 .loco-meta{color:inherit;font-size:14px;font-weight:normal;vertical-align:middle}#loco-admin.wrap .wp-list-table td:first-child .icon{width:16px;display:inline-block;text-align:center}#loco-admin.wrap .wp-list-table td{white-space:nowrap}#loco-admin.wrap .wp-list-table td>a,#loco-admin.wrap .wp-list-table td>time{display:inline-block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis;-ms-text-overflow:ellipsis}#loco-admin.wrap .wp-list-table th.loco-sort{cursor:pointer}#loco-admin.wrap .wp-list-table th.loco-sort:hover{color:#000}#loco-admin.wrap .wp-list-table th.loco-sort.loco-asc:after,#loco-admin.wrap .wp-list-table th.loco-sort.loco-desc:after{padding:0 0 0 4px;color:#999}#loco-admin.wrap .wp-list-table th.loco-sort.loco-desc:after{content:"▼"}#loco-admin.wrap .wp-list-table th.loco-sort.loco-asc:after{content:"▲"}#loco-admin.wrap .wp-list-table td.has-row-actions{overflow:visible}#loco-admin.wrap form.loco-filter{display:block;margin-bottom:5px}#loco-admin.wrap form.loco-filter .icon-filter{color:#999}#loco-admin.wrap nav.above-list-table{margin-bottom:1em}#loco-admin.wrap nav.above-list-table a{display:inline-block;margin-right:1em}#loco-admin.wrap .wp-core-ui button.inverted,#loco-admin.wrap .wp-core-ui button.inverted:hover,#loco-admin.wrap .po-fuzzy button.icon-cloud{background:-moz-linear-gradient(top, #cccccc 0%, #e0e0e0 30%, #fefefe 100%);background:-webkit-linear-gradient(top, #cccccc 0%, #e0e0e0 30%, #fefefe 100%);background:linear-gradient(to bottom, #cccccc 0%, #e0e0e0 30%, #fefefe 100%);-webkit-box-shadow:0 1px 0 #fff;-moz-box-shadow:0 1px 0 #fff;box-shadow:0 1px 0 #fff;border-color:gray}#loco-admin.wrap .wp-core-ui button:active,#loco-admin.wrap .wp-core-ui button.inverted:active{border-color:#5b9dd9}#loco-admin.wrap .loco-clearable{display:inline-block;vertical-align:middle;position:relative}#loco-admin.wrap .loco-clearable a.clear,#loco-admin.wrap .auto-comp-wrap a.clear{top:0;right:0;outline:none;margin:0;border:solid 1px transparent;padding:5px 5px;position:absolute;font-size:1em;line-height:normal}#loco-admin.wrap .loco-clearable a.clear:before,#loco-admin.wrap .auto-comp-wrap a.clear:before{vertical-align:middle;padding:0;color:#999}#loco-admin.wrap .loco-clearable a.clear:hover:before,#loco-admin.wrap .auto-comp-wrap a.clear:hover:before{color:#333}#loco-admin.wrap .loco-clearable a.clear span,#loco-admin.wrap .auto-comp-wrap a.clear span{display:none}#loco-admin.wrap .loco-clearable ::-ms-clear,#loco-admin.wrap .auto-comp-wrap ::-ms-clear{display:none}#loco-admin.wrap div.progress{color:#000;background:transparent !important}#loco-admin.wrap div.progress *{height:100%;overflow:hidden;white-space:nowrap}#loco-admin.wrap div.progress .t{background-color:#ddd;border:1px solid #ccc}#loco-admin.wrap div.progress .t .bar{float:left;clear:none;background-color:#3db63d}#loco-admin.wrap div.progress .t .bar.f{background-color:#bd2c00}#loco-admin.wrap div.progress .l{display:block}#loco-admin.wrap td div.progress .t{border:none}#loco-admin.wrap td div.progress .l{display:none}#loco-admin.wrap code.path{color:#333;margin:0;padding:0;display:inline;background:transparent}#loco-admin.wrap .loco-danger{color:#d54e21}#loco-admin.wrap .notice,#loco-admin.wrap .panel{background:#fff;position:relative;margin:1em 0;padding:1px 12px}#loco-admin.wrap .notice-generic{border-color:#ddd}#loco-admin.wrap .notice-success>.has-icon,#loco-admin.wrap .notice-success p>strong.has-icon{color:#000}#loco-admin.wrap .notice-warning{border-color:orange}#loco-admin.wrap .notice-error{border-color:#dc3232}#loco-admin.wrap .notice-debug{border-color:#00a0d2}#loco-admin.wrap .notice-danger{border-color:#dc3232}#loco-admin.wrap .notice-locked{border-color:orange}#loco-admin.wrap .notice>.has-icon:before,#loco-admin.wrap .notice p>strong.has-icon:before{padding-right:6px}#loco-admin.wrap .notice>p>a.button.has-icon:before{width:1.2em}#loco-admin.wrap .notice>p>em{color:#d54e21;font-style:normal}#loco-admin.wrap .notice>p>em a{color:inherit}#loco-admin.wrap .notice>p a:hover,#loco-admin.wrap .notice>nav a:hover{text-decoration:underline}#loco-admin.wrap .notice>p a.button,#loco-admin.wrap .notice>nav a.button{text-decoration:inherit}#loco-admin.wrap .notice.has-nav{display:flex;flex-direction:row}#loco-admin.wrap .notice.has-nav p,#loco-admin.wrap .notice.has-nav nav{line-height:22px;flex-grow:1}#loco-admin.wrap .notice.has-nav nav{text-align:right;padding:2px;margin:.5em 0}#loco-admin.wrap .notice.has-nav.is-dismissible{padding-right:38px}#loco-admin.wrap .notice.has-nav a{white-space:nowrap}#loco-admin.wrap .notice.has-nav nav>span{color:#666}#loco-admin.wrap .notice>h3>span{display:inline-block;vertical-align:middle}#loco-admin.wrap ul.problems li{font-style:italic}#loco-admin.wrap label{position:relative}#loco-admin.wrap label.for-disabled,#loco-admin.wrap label.for-disabled>input{cursor:default !important}#loco-admin.wrap input.regular-text,#loco-admin.wrap textarea.regular-text{width:25em}#loco-admin.wrap .button-link{padding:0 10px 1px}#loco-admin.wrap .button-danger{background:#ba0000;border-color:#900 #600 #600;-webkit-box-shadow:0 1px 0 #600;-moz-box-shadow:0 1px 0 #600;box-shadow:0 1px 0 #600;color:#fff;text-shadow:0 -1px 1px #600,1px 0 1px #600,0 1px 1px #600,-1px 0 1px #600}#loco-admin.wrap .button-success{background:#00b500;border-color:#090 #2e892e #2e892e;-webkit-box-shadow:0 1px 0 #2e892e;-moz-box-shadow:0 1px 0 #2e892e;box-shadow:0 1px 0 #2e892e;color:#fff;text-shadow:0 -1px 1px #2e892e,1px 0 1px #2e892e,0 1px 1px #2e892e,-1px 0 1px #2e892e}#loco-admin.wrap .button-success:hover{background:#3db63d}#loco-admin.wrap .button-danger[disabled],#loco-admin.wrap .button-success[disabled]{text-shadow:none !important}#loco-admin.wrap form button.loco-loading.button-large{padding-left:0}#loco-admin.wrap form button.loco-loading.button-large:before{width:16px;height:16px;margin:0 4px;content:" ";font-size:16px;line-height:1;display:inline-block;vertical-align:sub}#loco-admin.wrap ::placeholder{color:#ccc}#loco-admin.wrap ::-webkit-input-placeholder{color:#ccc}#loco-admin.wrap :-moz-placeholder{color:#ccc;opacity:1}#loco-admin.wrap ::-moz-placeholder{color:#ccc;opacity:1}#loco-admin.wrap :-ms-input-placeholder{color:#ccc}#loco-admin.wrap .ielt10 .placeheld{color:#ccc}#loco-admin.wrap a.has-raquo:after{content:" »"}#loco-admin.wrap a.has-laquo:before{content:"« "}#loco-admin.wrap span.inline-spinner{display:inline-block;min-width:16px;min-height:16px;background:transparent url(../img/spin-modal.gif?v=2.6.2) 0 0 no-repeat}.js #wpbody-content>.notice{display:none}.js #wpbody-content>.notice.inline{display:block}.js #loco-admin.wrap .jshide,.no-js #loco-admin.wrap .jsonly{display:none !important}#loco-admin.wrap .invis{visibility:hidden}.form-table tr td{vertical-align:top}.form-table tr.compact td{padding-top:0}.form-table tr th a.icon-help{display:none}.loco-modal{min-width:50%;min-height:100px}.loco-modal-wide{min-width:90% !important}.loco-modal-no-close .ui-dialog-titlebar-close{display:none}.loco-modal .ui-dialog-titlebar-close{overflow:hidden}.loco-modal.request-filesystem-credentials-dialog{top:15% !important;max-height:85% !important}.loco-modal.request-filesystem-credentials-dialog>.ui-dialog-content{background:inherit}.loco-modal.request-filesystem-credentials-dialog .ftp-password>label>em:last-child{display:none}.ui-dialog-content>div.loco-loading{height:100%;background:transparent url(../img/spin-modal.gif?v=2.6.2) center 20px no-repeat}#loco-po-ref ol li{color:#aaa;margin:0;white-space:pre;padding:0 0 0 1em;font:normal 12px/17px Consolas,Monaco,monospace;background:transparent;border-left:1px solid #eee}#loco-po-ref ol li code{margin:0;padding:0;display:inline;background:inherit}#loco-po-ref ol li.highlighted{color:#666;background-color:#f8eec7}#loco-po-ref ol li.highlighted code.T_CONSTANT_ENCAPSED_STRING{color:#c931c7}#loco-credit>*{vertical-align:middle}#loco-credit>a{display:inline-block;position:relative;overflow:hidden;background:transparent url(../img/logo-foot.gif?v=2.6.2) 0 0 no-repeat;height:30px;width:100px;text-indent:200px;-webkit-transition-duration:0s;transition-duration:0s}#loco-credit>a:hover{background-position:0 -35px}#loco-content{position:relative}#footer-upgrade span:before{color:#ccc;content:" | ";display:inline;padding-left:.5em;padding-right:.5em}#footer-upgrade span:first-child:before{content:"";display:none}.loco-clearfix:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}dl.debug dt{font-weight:bold}dl.debug dt,dl.debug dd{white-space:pre}.wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(0,115,170,.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#0073aa}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);-moz-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);box-shadow:inset 0 0 .6em rgba(30,140,190,.8)}.wp-core-ui .button-primary.loco-loading[disabled]{color:#66c6e4 !important;background:#008ec2 !important;border-color:#008ec2 !important}.wp-core-ui .button-primary.loco-loading[disabled]:before{background:transparent url(../img/skins/fresh/spin-primary-button.gif?v=2.6.2) 0 0 no-repeat !important}
pub/css/editor.css CHANGED
@@ -1 +1 @@
1
- #loco-editor{border:solid 1px #ccc}#loco-editor ._ajax_loader_f2{background-image:url(../img/ajax-loader-f2.gif?v=2.6.1);background-repeat:no-repeat;min-height:16px}#loco-editor ._ajax_loader_f2x4{background:transparent url(../img/ajax-loader-f2-x4.gif?v=2.6.1) 0 0 no-repeat;min-height:75px}#loco-editor ._ajax_loader_cc{background-image:url(../img/ajax-loader-cc.gif?v=2.6.1);background-repeat:no-repeat;min-height:16px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx){#loco-editor ._ajax_loader_f2{background-image:url(../img/ajax-loader-f2-x2.gif?v=2.6.1);background-size:16px}#loco-editor ._ajax_loader_cc{background-image:url(../img/ajax-loader-cc-x2.gif?v=2.6.1);background-size:16px}}#loco-editor ._green_glow_inner,#loco-editor .is-editable>.wg-content>textarea:focus,#loco-editor .is-editable>.wg-content.has-focus .ace_scroller,#loco-editor .is-editable>.wg-content.has-focus .wysihtml-editor,#loco-editor .is-editable>.wg-content.has-focus .mce-content-body{-webkit-box-shadow:inset 0 0 10px 0 #3db63d;-moz-box-shadow:inset 0 0 10px 0 #3db63d;box-shadow:inset 0 0 10px 0 #3db63d}#loco-editor ._green_glow_outer{-webkit-box-shadow:0 0 .5em 0 #3db63d;-moz-box-shadow:0 0 .5em 0 #3db63d;box-shadow:0 0 .5em 0 #3db63d}#loco-editor .loco-font,#loco-editor .is-table .wg-thead .wg-sortable>header:after{font-family:"loco";speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#loco-editor div.ta-mirror{position:absolute;top:0;border:solid 1px transparent;color:transparent;padding:.4em .6em;pointer-events:none}#loco-editor div.ta-mirror span{position:relative}#loco-editor div.ta-mirror span:after{color:#ccc;white-space:pre;display:inline-block;position:absolute;top:0;line-height:normal}#loco-editor div.ta-mirror .crlf:after{content:"¬"}#loco-editor div.ta-mirror .eof:after{content:"¶"}#loco-editor div.ta-mirror .x20:after{content:"·";color:#aaa}#loco-editor div.ta-mirror .x9:after{content:"⟶"}#loco-editor div.ta-mirror,#loco-editor .has-mirror textarea{white-space:pre-wrap;word-wrap:break-word;word-spacing:0px}#loco-editor .has-mirror ::placeholder{color:transparent}#loco-editor .has-mirror ::-webkit-input-placeholder{color:transparent}#loco-editor .has-mirror :-moz-placeholder{color:transparent;opacity:1}#loco-editor .has-mirror ::-moz-placeholder{color:transparent;opacity:1}#loco-editor .has-mirror :-ms-input-placeholder{color:transparent}#loco-editor .has-mirror .ielt10 .placeheld{color:transparent}#loco-editor div.ta-mirror{left:0;text-align:left}#loco-editor div.ta-mirror span:after{left:0}#loco-editor div.ta-mirror .eol:after{padding-left:.2em}#loco-editor [dir=RTL] div.ta-mirror{left:auto;right:0;text-align:right}#loco-editor [dir=RTL] div.ta-mirror span:after{right:0}#loco-editor [dir=RTL] div.ta-mirror .eol:after{padding-left:0;padding-right:.2em}#loco-editor .has-proxy>textarea{display:none !important}#loco-editor .has-proxy .ace_editor{height:100%;font-size:13px !important;line-height:1.4 !important}#loco-editor .has-proxy .ace_editor .ace_marker-layer .ace_bracket{display:none}#loco-editor .has-proxy .ace_print-margin{display:none}#loco-editor .ace_printf{color:#b90690;background-color:#edf1be}#loco-editor .ace_locked{color:gray}#loco-editor .ace_icu-quoted{color:gray}#loco-editor .ace_icu{color:#697eb9}#loco-editor .ace_icu.ace_name{color:#b90600}#loco-editor .resizer{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0 0 6px 0;background:#f0f0f0 url(../img/wg/splity.png?v=2.6.1) center bottom no-repeat;border:1px solid #ddd;overflow:hidden;cursor:move;cursor:row-resize;cursor:s-resize}#loco-editor .resizer>*{height:100%;border:none}#loco-editor ._ajax_loader_f2{background-image:url(../img/ajax-loader-f2.gif?v=2.6.1);background-repeat:no-repeat;min-height:16px}#loco-editor ._ajax_loader_f2x4{background:transparent url(../img/ajax-loader-f2-x4.gif?v=2.6.1) 0 0 no-repeat;min-height:75px}#loco-editor ._ajax_loader_cc{background-image:url(../img/ajax-loader-cc.gif?v=2.6.1);background-repeat:no-repeat;min-height:16px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx){#loco-editor ._ajax_loader_f2{background-image:url(../img/ajax-loader-f2-x2.gif?v=2.6.1);background-size:16px}#loco-editor ._ajax_loader_cc{background-image:url(../img/ajax-loader-cc-x2.gif?v=2.6.1);background-size:16px}}#loco-editor ._green_glow_inner,#loco-editor .is-editable>.wg-content>textarea:focus,#loco-editor .is-editable>.wg-content.has-focus .ace_scroller,#loco-editor .is-editable>.wg-content.has-focus .wysihtml-editor,#loco-editor .is-editable>.wg-content.has-focus .mce-content-body{-webkit-box-shadow:inset 0 0 10px 0 #3db63d;-moz-box-shadow:inset 0 0 10px 0 #3db63d;box-shadow:inset 0 0 10px 0 #3db63d}#loco-editor ._green_glow_outer{-webkit-box-shadow:0 0 .5em 0 #3db63d;-moz-box-shadow:0 0 .5em 0 #3db63d;box-shadow:0 0 .5em 0 #3db63d}#loco-editor .loco-font,#loco-editor .is-table .wg-thead .wg-sortable>header:after{font-family:"loco";speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#loco-editor .wg-cell,#loco-editor .wg-cell>div{clear:both;position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;outline:none}#loco-editor .wg-cell{left:0;top:0;padding:0;margin:0;overflow:hidden}#loco-editor .wg-split{background:#eee}#loco-editor .wg-body:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}#loco-editor .wg-split-x>div>.not-first>*{margin-left:6px}#loco-editor .wg-split-y>div>.not-first>*{margin-top:6px}#loco-editor .wg-split>div>.has-title .wg-content{margin-top:0}#loco-editor .wg-split-x>div>.wg-cell{float:left;clear:none;height:100%}#loco-editor .wg-split-x>div{cursor:move;cursor:ew-resize;cursor:col-resize}#loco-editor .wg-split>div>.not-first:before{display:block;position:absolute;overflow:hidden;content:" "}#loco-editor .wg-split-x>div>.not-first:before{width:6px;height:100%;background:transparent url(../img/wg/splitx.png?v=2.6.1) center center no-repeat}#loco-editor .wg-split-y>div{cursor:move;cursor:ns-resize;cursor:row-resize}#loco-editor .wg-split-y>div>.not-first:before{height:6px;width:100%;background:transparent url(../img/wg/splity.png?v=2.6.1) center center no-repeat}#loco-editor .wg-split>div.locked{cursor:default}#loco-editor .wg-split-x>div.locked>.not-first>*{margin-left:0px}#loco-editor .wg-split-y>div.locked>.not-first>*{margin-top:0px}#loco-editor .wg-split>div.locked>.not-first:before{display:none}#loco-editor .has-title>header{background:#e2e2e2;cursor:default !important;margin:0;white-space:nowrap}#loco-editor .wg-content{background:#fff;cursor:default;padding:4px 6px;overflow:hidden;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#loco-editor .wg-toolbar{top:0;right:0;margin-top:6px;position:absolute}#loco-editor .wg-toolbar>span{color:#fff;background:#000;display:block;padding:0 6px;cursor:default !important}#loco-editor .wg-toolbar>span:active{color:#000;background-color:#fff}#loco-editor .wg-content,#loco-editor .wg-tbody>div{overflow:scroll;overflow-x:hidden;overflow-y:auto}#loco-editor .is-table{background-color:#fff}#loco-editor .is-table .wg-thead .has-title>header{font-weight:normal;background:transparent;padding:4px 0;margin:0 0 0 10px}#loco-editor .is-table .wg-thead>div>.not-first:before{background-position:center center}#loco-editor .is-table .wg-thead{background:#e2e2e2;border-bottom:solid 1px #ccc}#loco-editor .is-table .wg-tbody{background-image:url(data:image/gif;base64,R0lGODlhAQAsAIABAPz8/P///yH5BAEAAAEALAAAAAABACwAAAIIjI+pAe0PIygAOw==);position:relative}#loco-editor .is-table .wg-cols>div{float:left;clear:none}#loco-editor .is-table .wg-cols>div>div{white-space:nowrap;line-height:1.7em;padding-left:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis;-ms-text-overflow:ellipsis;background-color:#fff}#loco-editor .is-table .wg-cols>div>div:nth-child(even){background-color:#f7f7f7}#loco-editor .is-table .wg-cols>div>div.selected{background-color:#3db63d;color:#fff}#loco-editor .is-table .wg-cols>div>div.selected::selection{background-color:#fff;color:#000}#loco-editor .is-table .wg-cols>div:first-child>div{padding-left:4px}#loco-editor .is-table .wg-dead{clear:both}#loco-editor .is-table .wg-thead .wg-sortable>header{cursor:pointer !important}#loco-editor .is-table .wg-thead .wg-sortable>header:after{padding:0 0 0 5px;color:#999}#loco-editor .is-table .wg-thead .wg-sortable.wg-asc>header:after{content:"▲"}#loco-editor .is-table .wg-thead .wg-sortable.wg-desc>header:after{content:"▼"}#loco-editor .is-table .wg-thead .wg-sortable:hover>header:after{color:#000}#loco-editor .is-field>.wg-content{cursor:text;padding:0;line-height:normal;overflow:hidden;overflow-y:hidden}#loco-editor .is-field>.wg-content>div,#loco-editor .is-field>.wg-content>textarea{font-size:14px;line-height:1.4;border:1px solid #ddd;width:100%;height:100%;padding:8px 10px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#loco-editor .is-field>.wg-content textarea{resize:none;overflow:auto;display:block}#loco-editor .is-field>.wg-content>.ace_editor{padding:0;border-width:0}#loco-editor .is-field>.wg-content>div[contenteditable]{overflow:scroll;overflow-x:hidden;overflow-y:auto}#loco-editor .is-readonly>.wg-content{cursor:default}#loco-editor .is-readonly>.wg-content>div,#loco-editor .is-readonly>.wg-content>textarea,#loco-editor .is-readonly>.wg-content>textarea[readonly]{background:#f8f8f8;text-shadow:0 1px #fff;color:inherit}#loco-editor .is-readonly>.wg-content .ace_scroller{cursor:default;background:#f8f8f8}#loco-editor .is-readonly>.wg-content .ace_cursor-layer{display:none}#loco-editor .is-readonly>.wg-content>textarea[readonly]{cursor:default}#loco-editor .is-editable>.wg-content[dir=RTL] .ace_editor .ace_line{direction:ltr;unicode-bidi:bidi-override}#loco-editor .wg-split-x>nav.wg-tabs{white-space:nowrap;text-align:center;cursor:default}#loco-editor .wg-split-x>nav.wg-tabs>a{display:inline-block;padding:.5em 1em;margin-top:.2em;color:#000;text-decoration:none;-webkit-border-radius:.2em .2em 0 0;-moz-border-radius:.2em .2em 0 0;-ms-border-radius:.2em .2em 0 0;-o-border-radius:.2em .2em 0 0;border-radius:.2em .2em 0 0;background-color:#f3f7fd}#loco-editor .wg-split-x>nav.wg-tabs>a:hover{background-color:#fff}#loco-editor .wg-split-x>nav.wg-tabs>a.active{background-color:#3db63d;color:#fff}#loco-editor .wg-split>div>.has-nav>.wg-body{margin-top:0px}#loco-editor .wg-dead{visibility:hidden}@media all and (max-width: 768px){#loco-editor .wg-split-x>div>.not-first>*{margin-left:20px}#loco-editor .wg-split-y>div>.not-first>*{margin-top:20px}#loco-editor .wg-split-x>div>.not-first:before{width:20px}#loco-editor .wg-split-y>div>.not-first:before{height:20px}#loco-editor .is-table .wg-thead header{padding-left:20px}}#loco-editor .is-table .po-fuzzy{color:#b59829;font-weight:bold}#loco-editor .is-table .po-empty{color:#1f507a;font-weight:bold}#loco-editor .is-table .po-flagged{color:#bd2c00}#loco-editor .is-table .wg-cols>div:first-child>div:before{font-family:loco;vertical-align:inherit;display:inline-block;content:" ";width:1.3em;line-height:1}#loco-editor .is-table .wg-cols>div:first-child>div.po-fuzzy:before{content:""}#loco-editor .is-table .wg-cols>div:first-child>div.po-flagged:before{content:""}#loco-editor .is-table .wg-cols>div:first-child>div.po-comment:before{content:"";color:#999}#loco-editor .is-table .wg-cols>div:first-child>div.po-unsaved:before{content:"";color:#f1d040}#loco-editor .is-table .wg-cols>div:first-child>div.selected:before{color:#fff !important}#loco-editor .wg-cell>.meta{color:#333;margin:0 !important;padding:6px 10px;font-weight:normal;font-size:13px;line-height:1.4em;cursor:default !important}#loco-editor .wg-cell>.meta>*{display:inline-block;margin-top:3px;margin-bottom:3px}#loco-editor .wg-cell>.meta>span{border:1px solid transparent;border-left:none}#loco-editor .wg-cell>.meta>mark{color:#fff;border-radius:2px;background-color:silver;border:1px solid silver;padding:0 .3em}#loco-editor .wg-cell>.meta>mark.tag{color:#999;background-color:#eee}#loco-editor .wg-cell>.meta>p{display:block;white-space:pre-line}#loco-editor .wg-cell>.meta .icon-warn{color:#c00}#loco-editor .wg-cell>.meta .has-icon:before{padding-right:0;width:17px}#loco-editor .wg-cell>.meta code{font-size:12px}#loco-editor .is-table .wg-cols>div>div>mark{display:inline-block;vertical-align:text-bottom;font:inherit;font-weight:normal;color:#fff;border-radius:2px;font-size:90%;line-height:1;padding:.2em .3em;background-color:rgba(0,0,0,.25)}#loco-editor .is-table .wg-cols>div>div.selected.po-flagged{background-color:#bd2c00}#loco-editor .is-table .wg-cols>div>div.selected.po-fuzzy{background-color:#b59829}#loco-editor .is-table .wg-cols>div>div.selected.po-empty{background-color:#999}#loco-editor #po-target header nav{display:block;position:absolute;right:0px;top:0px;padding:2px}#loco-editor #po-target header nav button{margin-left:5px}#loco-editor #po-target header nav.po-empty .icon-cloud{display:none !important}#loco-editor #po-list .wg-content{padding:0}#loco-editor #po-source>.wg-body>.has-title>header{background:transparent;font-weight:normal;float:left;clear:none;min-width:3.4em}#loco-editor #po-source>.wg-body>.has-title>.wg-content{clear:none}#loco-editor .has-title>header{line-height:normal;padding:6px}#loco-editor .has-title>header .lang{margin-right:6px;margin-bottom:1px}#loco-editor .trg-rtl #po-list-tbody .wg-cols>div[for=po-list-col-target]>div,#loco-editor .src-rtl #po-list-tbody .wg-cols>div[for=po-list-col-source]>div{direction:rtl;padding-left:0;padding-right:10px;text-align:right}#loco-editor #po-source>.wg-body>.has-title>h2{min-width:4.5em}#loco-editor .is-table .wg-td{font-size:13px}#loco-editor header,#loco-editor nav{display:block;position:relative}#loco-editor-inner{min-height:600px;font-size:14px;clear:both}#loco-editor-inner>div.loco-loading{height:100px;background:transparent url(../img/spin-editor-button.gif?v=2.6.1) center 20px no-repeat}#loco-editor-inner h2{color:#000;line-height:1}#loco-editor-inner .wg-cell>.meta code{padding:0;color:#0073aa;background:inherit;cursor:pointer}#loco-editor-inner .wg-cell>.meta code:hover{text-decoration:underline}#loco-admin.wrap #loco-editor>nav{font-size:14px;height:50px}#loco-admin.wrap #loco-editor>nav form{display:block;float:left;clear:none;padding:0;margin:0}#loco-admin.wrap #loco-editor>nav form.aux{float:right;margin-right:5px}#loco-admin.wrap #loco-editor>nav fieldset{display:block;position:relative;float:left;clear:none}#loco-admin.wrap #loco-editor>nav button,#loco-admin.wrap #loco-editor>nav input[type=text]{display:block;position:relative;float:left;clear:none;margin:5px 0 0 5px;height:36px;text-align:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#loco-admin.wrap #loco-editor>nav input[type=text]{padding:0 10px;font-size:14px;line-height:normal}#loco-admin.wrap #loco-editor>nav .invalid input[type=text]:focus{border-color:#c00;-webkit-box-shadow:0 0 2px rgba(153,0,0,.5);-moz-box-shadow:0 0 2px rgba(153,0,0,.5);box-shadow:0 0 2px rgba(153,0,0,.5)}#loco-admin.wrap #loco-editor>nav .loco-clearable{padding:0 20px}#loco-admin.wrap #loco-editor>nav .loco-clearable.invalid a.clear:before{color:#c00}#loco-admin.wrap #loco-editor>nav .loco-clearable a.clear{right:25px;line-height:2}#loco-admin.wrap #loco-editor>nav .loco-clearable a.clear:focus{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}#loco-admin.wrap #loco-editor>nav .loco-clearable a.clear:hover:before{color:#c00}#loco-admin.wrap #loco-editor>nav .loco-clearable a.clear:active:before{color:#000}#loco-admin.wrap #loco-editor>nav button.only-icon{width:40px}#loco-admin.wrap button.has-icon:before{width:16px;padding:0}#loco-admin.wrap button.has-icon.loco-loading:before{content:" ";height:16px;background:transparent url(../img/spin-editor-button.gif?v=2.6.1) 0 0 no-repeat}#loco-admin.wrap .button,#loco-admin.wrap .button-link,#loco-admin.wrap input[type=text]{border-color:#aaa;color:#444}#loco-admin.wrap .button:hover,#loco-admin.wrap .button-link:hover{color:#000}#loco-admin.wrap .button-primary,#loco-admin.wrap .button-primary:hover{color:#fff}#loco-admin.wrap button.icon-translate:before{font-size:16px}.loco-modal .loco-api{position:relative;padding:10px;background:#f7f7f7;border:solid 1px #eee;font-size:14px;margin-bottom:16px}.loco-modal .loco-api p{padding:0;margin:0;font-size:inherit}.loco-modal .loco-api blockquote{font-weight:bold;margin:0;padding:10px 0}.loco-modal .loco-api a.loco-api-credit{padding:0;display:block;position:absolute;right:10px;bottom:10px;text-decoration:none;white-space:nowrap;overflow:hidden;font-size:12px}.loco-modal .loco-api a.loco-api-credit:hover{text-decoration:underline}.loco-modal .loco-api-loading{text-indent:20px;background:transparent url(../img/spin-modal.gif?v=2.6.1) 10px center no-repeat}.loco-modal .loco-alert p{margin-bottom:2em;font-size:14px}.loco-modal .loco-alert nav{display:block;position:relative;margin:1em 0}.loco-modal .loco-alert nav a{display:inline-block;margin-right:1em;padding:10px}#loco-auto{display:none;min-width:50%;min-height:300px;position:relative}#loco-auto form blockquote{margin:0;padding:1em 0;font-size:14px}.loco-api a.loco-api-credit{color:inherit}.loco-api-google a.loco-api-credit{text-indent:200px;width:122px;height:16px;background:transparent url(../img/api/google.png?v=2.6.1) 0 0 no-repeat}.loco-api-microsoft a.loco-api-credit{text-indent:200px;width:152px;height:16px;background:transparent url(../img/api/microsoft.png?v=2.6.1) 0 0 no-repeat}.loco-api-deepl a.loco-api-credit{text-indent:200px;width:122px;height:16px;background:transparent url(../img/api/deepl.png?v=2.6.1) 0 0 no-repeat}
1
+ #loco-editor{border:solid 1px #ccc}#loco-editor ._ajax_loader_f2{background-image:url(../img/ajax-loader-f2.gif?v=2.6.2);background-repeat:no-repeat;min-height:16px}#loco-editor ._ajax_loader_f2x4{background:transparent url(../img/ajax-loader-f2-x4.gif?v=2.6.2) 0 0 no-repeat;min-height:75px}#loco-editor ._ajax_loader_cc{background-image:url(../img/ajax-loader-cc.gif?v=2.6.2);background-repeat:no-repeat;min-height:16px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx){#loco-editor ._ajax_loader_f2{background-image:url(../img/ajax-loader-f2-x2.gif?v=2.6.2);background-size:16px}#loco-editor ._ajax_loader_cc{background-image:url(../img/ajax-loader-cc-x2.gif?v=2.6.2);background-size:16px}}#loco-editor ._green_glow_inner,#loco-editor .is-editable>.wg-content>textarea:focus,#loco-editor .is-editable>.wg-content.has-focus .ace_scroller,#loco-editor .is-editable>.wg-content.has-focus .wysihtml-editor,#loco-editor .is-editable>.wg-content.has-focus .mce-content-body{-webkit-box-shadow:inset 0 0 10px 0 #3db63d;-moz-box-shadow:inset 0 0 10px 0 #3db63d;box-shadow:inset 0 0 10px 0 #3db63d}#loco-editor ._green_glow_outer{-webkit-box-shadow:0 0 .5em 0 #3db63d;-moz-box-shadow:0 0 .5em 0 #3db63d;box-shadow:0 0 .5em 0 #3db63d}#loco-editor .loco-font,#loco-editor .is-table .wg-thead .wg-sortable>header:after{font-family:"loco";speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#loco-editor div.ta-mirror{position:absolute;top:0;border:solid 1px transparent;color:transparent;padding:.4em .6em;pointer-events:none}#loco-editor div.ta-mirror span{position:relative}#loco-editor div.ta-mirror span:after{color:#ccc;white-space:pre;display:inline-block;position:absolute;top:0;line-height:normal}#loco-editor div.ta-mirror .crlf:after{content:"¬"}#loco-editor div.ta-mirror .eof:after{content:"¶"}#loco-editor div.ta-mirror .x20:after{content:"·";color:#aaa}#loco-editor div.ta-mirror .x9:after{content:"⟶"}#loco-editor div.ta-mirror,#loco-editor .has-mirror textarea{white-space:pre-wrap;word-wrap:break-word;word-spacing:0px}#loco-editor .has-mirror ::placeholder{color:transparent}#loco-editor .has-mirror ::-webkit-input-placeholder{color:transparent}#loco-editor .has-mirror :-moz-placeholder{color:transparent;opacity:1}#loco-editor .has-mirror ::-moz-placeholder{color:transparent;opacity:1}#loco-editor .has-mirror :-ms-input-placeholder{color:transparent}#loco-editor .has-mirror .ielt10 .placeheld{color:transparent}#loco-editor div.ta-mirror{left:0;text-align:left}#loco-editor div.ta-mirror span:after{left:0}#loco-editor div.ta-mirror .eol:after{padding-left:.2em}#loco-editor [dir=RTL] div.ta-mirror{left:auto;right:0;text-align:right}#loco-editor [dir=RTL] div.ta-mirror span:after{right:0}#loco-editor [dir=RTL] div.ta-mirror .eol:after{padding-left:0;padding-right:.2em}#loco-editor .has-proxy>textarea{display:none !important}#loco-editor .has-proxy .ace_editor{height:100%;font-size:13px !important;line-height:1.4 !important}#loco-editor .has-proxy .ace_editor .ace_marker-layer .ace_bracket{display:none}#loco-editor .has-proxy .ace_print-margin{display:none}#loco-editor .ace_printf{color:#b90690;background-color:#edf1be}#loco-editor .ace_locked{color:gray}#loco-editor .ace_icu-quoted{color:gray}#loco-editor .ace_icu{color:#697eb9}#loco-editor .ace_icu.ace_name{color:#b90600}#loco-editor .resizer{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0 0 6px 0;background:#f0f0f0 url(../img/wg/splity.png?v=2.6.2) center bottom no-repeat;border:1px solid #ddd;overflow:hidden;cursor:move;cursor:row-resize;cursor:s-resize}#loco-editor .resizer>*{height:100%;border:none}#loco-editor ._ajax_loader_f2{background-image:url(../img/ajax-loader-f2.gif?v=2.6.2);background-repeat:no-repeat;min-height:16px}#loco-editor ._ajax_loader_f2x4{background:transparent url(../img/ajax-loader-f2-x4.gif?v=2.6.2) 0 0 no-repeat;min-height:75px}#loco-editor ._ajax_loader_cc{background-image:url(../img/ajax-loader-cc.gif?v=2.6.2);background-repeat:no-repeat;min-height:16px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx){#loco-editor ._ajax_loader_f2{background-image:url(../img/ajax-loader-f2-x2.gif?v=2.6.2);background-size:16px}#loco-editor ._ajax_loader_cc{background-image:url(../img/ajax-loader-cc-x2.gif?v=2.6.2);background-size:16px}}#loco-editor ._green_glow_inner,#loco-editor .is-editable>.wg-content>textarea:focus,#loco-editor .is-editable>.wg-content.has-focus .ace_scroller,#loco-editor .is-editable>.wg-content.has-focus .wysihtml-editor,#loco-editor .is-editable>.wg-content.has-focus .mce-content-body{-webkit-box-shadow:inset 0 0 10px 0 #3db63d;-moz-box-shadow:inset 0 0 10px 0 #3db63d;box-shadow:inset 0 0 10px 0 #3db63d}#loco-editor ._green_glow_outer{-webkit-box-shadow:0 0 .5em 0 #3db63d;-moz-box-shadow:0 0 .5em 0 #3db63d;box-shadow:0 0 .5em 0 #3db63d}#loco-editor .loco-font,#loco-editor .is-table .wg-thead .wg-sortable>header:after{font-family:"loco";speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#loco-editor .wg-cell,#loco-editor .wg-cell>div{clear:both;position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;outline:none}#loco-editor .wg-cell{left:0;top:0;padding:0;margin:0;overflow:hidden}#loco-editor .wg-split{background:#eee}#loco-editor .wg-body:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}#loco-editor .wg-split-x>div>.not-first>*{margin-left:6px}#loco-editor .wg-split-y>div>.not-first>*{margin-top:6px}#loco-editor .wg-split>div>.has-title .wg-content{margin-top:0}#loco-editor .wg-split-x>div>.wg-cell{float:left;clear:none;height:100%}#loco-editor .wg-split-x>div{cursor:move;cursor:ew-resize;cursor:col-resize}#loco-editor .wg-split>div>.not-first:before{display:block;position:absolute;overflow:hidden;content:" "}#loco-editor .wg-split-x>div>.not-first:before{width:6px;height:100%;background:transparent url(../img/wg/splitx.png?v=2.6.2) center center no-repeat}#loco-editor .wg-split-y>div{cursor:move;cursor:ns-resize;cursor:row-resize}#loco-editor .wg-split-y>div>.not-first:before{height:6px;width:100%;background:transparent url(../img/wg/splity.png?v=2.6.2) center center no-repeat}#loco-editor .wg-split>div.locked{cursor:default}#loco-editor .wg-split-x>div.locked>.not-first>*{margin-left:0px}#loco-editor .wg-split-y>div.locked>.not-first>*{margin-top:0px}#loco-editor .wg-split>div.locked>.not-first:before{display:none}#loco-editor .has-title>header{background:#e2e2e2;cursor:default !important;margin:0;white-space:nowrap}#loco-editor .wg-content{background:#fff;cursor:default;padding:4px 6px;overflow:hidden;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#loco-editor .wg-toolbar{top:0;right:0;margin-top:6px;position:absolute}#loco-editor .wg-toolbar>span{color:#fff;background:#000;display:block;padding:0 6px;cursor:default !important}#loco-editor .wg-toolbar>span:active{color:#000;background-color:#fff}#loco-editor .wg-content,#loco-editor .wg-tbody>div{overflow:scroll;overflow-x:hidden;overflow-y:auto}#loco-editor .is-table{background-color:#fff}#loco-editor .is-table .wg-thead .has-title>header{font-weight:normal;background:transparent;padding:4px 0;margin:0 0 0 10px}#loco-editor .is-table .wg-thead>div>.not-first:before{background-position:center center}#loco-editor .is-table .wg-thead{background:#e2e2e2;border-bottom:solid 1px #ccc}#loco-editor .is-table .wg-tbody{background-image:url(data:image/gif;base64,R0lGODlhAQAsAIABAPz8/P///yH5BAEAAAEALAAAAAABACwAAAIIjI+pAe0PIygAOw==);position:relative}#loco-editor .is-table .wg-cols>div{float:left;clear:none}#loco-editor .is-table .wg-cols>div>div{white-space:nowrap;line-height:1.7em;padding-left:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis;-ms-text-overflow:ellipsis;background-color:#fff}#loco-editor .is-table .wg-cols>div>div:nth-child(even){background-color:#f7f7f7}#loco-editor .is-table .wg-cols>div>div.selected{background-color:#3db63d;color:#fff}#loco-editor .is-table .wg-cols>div>div.selected::selection{background-color:#fff;color:#000}#loco-editor .is-table .wg-cols>div:first-child>div{padding-left:4px}#loco-editor .is-table .wg-dead{clear:both}#loco-editor .is-table .wg-thead .wg-sortable>header{cursor:pointer !important}#loco-editor .is-table .wg-thead .wg-sortable>header:after{padding:0 0 0 5px;color:#999}#loco-editor .is-table .wg-thead .wg-sortable.wg-asc>header:after{content:"▲"}#loco-editor .is-table .wg-thead .wg-sortable.wg-desc>header:after{content:"▼"}#loco-editor .is-table .wg-thead .wg-sortable:hover>header:after{color:#000}#loco-editor .is-field>.wg-content{cursor:text;padding:0;line-height:normal;overflow:hidden;overflow-y:hidden}#loco-editor .is-field>.wg-content>div,#loco-editor .is-field>.wg-content>textarea{font-size:14px;line-height:1.4;border:1px solid #ddd;width:100%;height:100%;padding:8px 10px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#loco-editor .is-field>.wg-content textarea{resize:none;overflow:auto;display:block}#loco-editor .is-field>.wg-content>.ace_editor{padding:0;border-width:0}#loco-editor .is-field>.wg-content>div[contenteditable]{overflow:scroll;overflow-x:hidden;overflow-y:auto}#loco-editor .is-readonly>.wg-content{cursor:default}#loco-editor .is-readonly>.wg-content>div,#loco-editor .is-readonly>.wg-content>textarea,#loco-editor .is-readonly>.wg-content>textarea[readonly]{background:#f8f8f8;text-shadow:0 1px #fff;color:inherit}#loco-editor .is-readonly>.wg-content .ace_scroller{cursor:default;background:#f8f8f8}#loco-editor .is-readonly>.wg-content .ace_cursor-layer{display:none}#loco-editor .is-readonly>.wg-content>textarea[readonly]{cursor:default}#loco-editor .is-editable>.wg-content[dir=RTL] .ace_editor .ace_line{direction:ltr;unicode-bidi:bidi-override}#loco-editor .wg-split-x>nav.wg-tabs{white-space:nowrap;text-align:center;cursor:default}#loco-editor .wg-split-x>nav.wg-tabs>a{display:inline-block;padding:.5em 1em;margin-top:.2em;color:#000;text-decoration:none;-webkit-border-radius:.2em .2em 0 0;-moz-border-radius:.2em .2em 0 0;-ms-border-radius:.2em .2em 0 0;-o-border-radius:.2em .2em 0 0;border-radius:.2em .2em 0 0;background-color:#f3f7fd}#loco-editor .wg-split-x>nav.wg-tabs>a:hover{background-color:#fff}#loco-editor .wg-split-x>nav.wg-tabs>a.active{background-color:#3db63d;color:#fff}#loco-editor .wg-split>div>.has-nav>.wg-body{margin-top:0px}#loco-editor .wg-dead{visibility:hidden}@media all and (max-width: 768px){#loco-editor .wg-split-x>div>.not-first>*{margin-left:20px}#loco-editor .wg-split-y>div>.not-first>*{margin-top:20px}#loco-editor .wg-split-x>div>.not-first:before{width:20px}#loco-editor .wg-split-y>div>.not-first:before{height:20px}#loco-editor .is-table .wg-thead header{padding-left:20px}}#loco-editor .is-table .po-fuzzy{color:#b59829;font-weight:bold}#loco-editor .is-table .po-empty{color:#1f507a;font-weight:bold}#loco-editor .is-table .po-flagged{color:#bd2c00}#loco-editor .is-table .wg-cols>div:first-child>div:before{font-family:loco;vertical-align:inherit;display:inline-block;content:" ";width:1.3em;line-height:1}#loco-editor .is-table .wg-cols>div:first-child>div.po-fuzzy:before{content:""}#loco-editor .is-table .wg-cols>div:first-child>div.po-flagged:before{content:""}#loco-editor .is-table .wg-cols>div:first-child>div.po-comment:before{content:"";color:#999}#loco-editor .is-table .wg-cols>div:first-child>div.po-unsaved:before{content:"";color:#f1d040}#loco-editor .is-table .wg-cols>div:first-child>div.po-error:before{content:"";color:#bd2c00}#loco-editor .is-table .wg-cols>div:first-child>div.selected:before{color:#fff !important}#loco-editor .wg-cell>.meta{color:#333;margin:0 !important;padding:6px 10px;font-weight:normal;font-size:13px;line-height:1.4em;cursor:default !important}#loco-editor .wg-cell>.meta>*{display:inline-block;margin-top:3px;margin-bottom:3px}#loco-editor .wg-cell>.meta>span{border:1px solid transparent;border-left:none}#loco-editor .wg-cell>.meta>mark{color:#fff;border-radius:2px;background-color:silver;border:1px solid silver;padding:0 .3em}#loco-editor .wg-cell>.meta>mark.tag{color:#999;background-color:#eee}#loco-editor .wg-cell>.meta>p{display:block;white-space:pre-line}#loco-editor .wg-cell>.meta .icon-warn{color:#c00}#loco-editor .wg-cell>.meta .has-icon:before{padding-right:0;width:17px}#loco-editor .wg-cell>.meta code{font-size:12px}#loco-editor .is-table .wg-cols>div>div>mark{display:inline-block;vertical-align:text-bottom;font:inherit;font-weight:normal;color:#fff;border-radius:2px;font-size:90%;line-height:1;padding:.2em .3em;background-color:rgba(0,0,0,.25)}#loco-editor .is-table .wg-cols>div>div.selected.po-flagged{background-color:#bd2c00}#loco-editor .is-table .wg-cols>div>div.selected.po-fuzzy{background-color:#b59829}#loco-editor .is-table .wg-cols>div>div.selected.po-empty{background-color:#999}#loco-editor #po-target header nav{display:block;position:absolute;right:0px;top:0px;padding:2px}#loco-editor #po-target header nav button{margin-left:5px}#loco-editor #po-target header nav.po-empty .icon-cloud{display:none !important}#loco-editor #po-list .wg-content{padding:0}#loco-editor #po-source>.wg-body>.has-title>header{background:transparent;font-weight:normal;float:left;clear:none;min-width:3.4em}#loco-editor #po-source>.wg-body>.has-title>.wg-content{clear:none}#loco-editor .has-title>header{line-height:normal;padding:6px}#loco-editor .has-title>header .lang{margin-right:6px;margin-bottom:1px}#loco-editor .trg-rtl #po-list-tbody .wg-cols>div[for=po-list-col-target]>div,#loco-editor .src-rtl #po-list-tbody .wg-cols>div[for=po-list-col-source]>div{direction:rtl;padding-left:0;padding-right:10px;text-align:right}#loco-editor #po-source>.wg-body>.has-title>h2{min-width:4.5em}#loco-editor .is-table .wg-td{font-size:13px}#loco-editor header,#loco-editor nav{display:block;position:relative}#loco-editor-inner{min-height:600px;font-size:14px;clear:both}#loco-editor-inner>div.loco-loading{height:100px;background:transparent url(../img/spin-editor-button.gif?v=2.6.2) center 20px no-repeat}#loco-editor-inner h2{color:#000;line-height:1}#loco-editor-inner .wg-cell>.meta code{padding:0;color:#0073aa;background:inherit;cursor:pointer}#loco-editor-inner .wg-cell>.meta code:hover{text-decoration:underline}#loco-admin.wrap #loco-editor>nav{font-size:14px;height:50px}#loco-admin.wrap #loco-editor>nav form{display:block;float:left;clear:none;padding:0;margin:0}#loco-admin.wrap #loco-editor>nav form.aux{float:right;margin-right:5px}#loco-admin.wrap #loco-editor>nav fieldset{display:block;position:relative;float:left;clear:none}#loco-admin.wrap #loco-editor>nav button,#loco-admin.wrap #loco-editor>nav input[type=text]{display:block;position:relative;float:left;clear:none;margin:5px 0 0 5px;height:36px;text-align:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#loco-admin.wrap #loco-editor>nav input[type=text]{padding:0 10px;font-size:14px;line-height:normal}#loco-admin.wrap #loco-editor>nav .invalid input[type=text]:focus{border-color:#c00;-webkit-box-shadow:0 0 2px rgba(153,0,0,.5);-moz-box-shadow:0 0 2px rgba(153,0,0,.5);box-shadow:0 0 2px rgba(153,0,0,.5)}#loco-admin.wrap #loco-editor>nav .loco-clearable{padding:0 20px}#loco-admin.wrap #loco-editor>nav .loco-clearable.invalid a.clear:before{color:#c00}#loco-admin.wrap #loco-editor>nav .loco-clearable a.clear{right:25px;line-height:2}#loco-admin.wrap #loco-editor>nav .loco-clearable a.clear:focus{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}#loco-admin.wrap #loco-editor>nav .loco-clearable a.clear:hover:before{color:#c00}#loco-admin.wrap #loco-editor>nav .loco-clearable a.clear:active:before{color:#000}#loco-admin.wrap #loco-editor>nav button.only-icon{width:40px}#loco-admin.wrap button.has-icon:before{width:16px;padding:0}#loco-admin.wrap button.has-icon.loco-loading:before{content:" ";height:16px;background:transparent url(../img/spin-editor-button.gif?v=2.6.2) 0 0 no-repeat}#loco-admin.wrap .button,#loco-admin.wrap .button-link,#loco-admin.wrap input[type=text]{border-color:#aaa;color:#444}#loco-admin.wrap .button:hover,#loco-admin.wrap .button-link:hover{color:#000}#loco-admin.wrap .button-primary,#loco-admin.wrap .button-primary:hover{color:#fff}#loco-admin.wrap button.icon-translate:before{font-size:16px}.loco-modal .loco-api{position:relative;padding:10px;background:#f7f7f7;border:solid 1px #eee;font-size:14px;margin-bottom:16px}.loco-modal .loco-api p{padding:0;margin:0;font-size:inherit}.loco-modal .loco-api blockquote{font-weight:bold;margin:0;padding:10px 0}.loco-modal .loco-api a.loco-api-credit{padding:0;display:block;position:absolute;right:10px;bottom:10px;text-decoration:none;white-space:nowrap;overflow:hidden;font-size:12px}.loco-modal .loco-api a.loco-api-credit:hover{text-decoration:underline}.loco-modal .loco-api-loading{text-indent:20px;background:transparent url(../img/spin-modal.gif?v=2.6.2) 10px center no-repeat}.loco-modal .loco-alert p{margin-bottom:2em;font-size:14px}.loco-modal .loco-alert nav{display:block;position:relative;margin:1em 0}.loco-modal .loco-alert nav a{display:inline-block;margin-right:1em;padding:10px}#loco-auto{display:none;min-width:50%;min-height:300px;position:relative}#loco-auto form blockquote{margin:0;padding:1em 0;font-size:14px}.loco-api a.loco-api-credit{color:inherit}.loco-api-google a.loco-api-credit{text-indent:200px;width:122px;height:16px;background:transparent url(../img/api/google.png?v=2.6.2) 0 0 no-repeat}.loco-api-microsoft a.loco-api-credit{text-indent:200px;width:152px;height:16px;background:transparent url(../img/api/microsoft.png?v=2.6.2) 0 0 no-repeat}.loco-api-deepl a.loco-api-credit{text-indent:200px;width:122px;height:16px;background:transparent url(../img/api/deepl.png?v=2.6.2) 0 0 no-repeat}
pub/css/podiff.css CHANGED
@@ -1 +1 @@
1
- #loco-admin.wrap .revisions-diff{padding:10px;min-height:20px}#loco-admin.wrap table.diff{border-collapse:collapse;table-layout:auto}#loco-admin.wrap table.diff td{white-space:nowrap;overflow:hidden;font:normal 12px/17px "Monaco","Menlo","Ubuntu Mono","Consolas","source-code-pro",monospace;padding:2px}#loco-admin.wrap table.diff td>span{color:#aaa}#loco-admin.wrap table.diff td>span:after{content:". "}#loco-admin.wrap table.diff tbody{border-top:1px dashed #ccc}#loco-admin.wrap table.diff tbody:first-child{border-top:none}#loco-admin.wrap table.diff td>.dashicons{display:none}#loco-admin.wrap .revisions.loading .diff-meta{color:#eee}#loco-admin.wrap .revisions.loading .loading-indicator span.spinner{visibility:visible;background:#fff url(../img/spin-modal.gif?v=2.6.1) center center no-repeat}#loco-admin.wrap .revisions-meta{clear:both;padding:10px 12px;margin:0;position:relative;top:10px}#loco-admin.wrap .revisions-meta .diff-meta{clear:none;float:left;width:50%;padding:0;min-height:auto}#loco-admin.wrap .revisions-meta .diff-meta button{margin-top:5px}#loco-admin.wrap .revisions-meta .diff-meta-current{float:right;text-align:right}#loco-admin.wrap .revisions-meta time{color:#72777c}#loco-admin.wrap .revisions-control-frame{margin:10px 0}#loco-admin.wrap .revisions-diff-frame{margin-top:20px}
1
+ #loco-admin.wrap .revisions-diff{padding:10px;min-height:20px}#loco-admin.wrap table.diff{border-collapse:collapse;table-layout:auto}#loco-admin.wrap table.diff td{white-space:nowrap;overflow:hidden;font:normal 12px/17px "Monaco","Menlo","Ubuntu Mono","Consolas","source-code-pro",monospace;padding:2px}#loco-admin.wrap table.diff td>span{color:#aaa}#loco-admin.wrap table.diff td>span:after{content:". "}#loco-admin.wrap table.diff tbody{border-top:1px dashed #ccc}#loco-admin.wrap table.diff tbody:first-child{border-top:none}#loco-admin.wrap table.diff td>.dashicons{display:none}#loco-admin.wrap .revisions.loading .diff-meta{color:#eee}#loco-admin.wrap .revisions.loading .loading-indicator span.spinner{visibility:visible;background:#fff url(../img/spin-modal.gif?v=2.6.2) center center no-repeat}#loco-admin.wrap .revisions-meta{clear:both;padding:10px 12px;margin:0;position:relative;top:10px}#loco-admin.wrap .revisions-meta .diff-meta{clear:none;float:left;width:50%;padding:0;min-height:auto}#loco-admin.wrap .revisions-meta .diff-meta button{margin-top:5px}#loco-admin.wrap .revisions-meta .diff-meta-current{float:right;text-align:right}#loco-admin.wrap .revisions-meta time{color:#72777c}#loco-admin.wrap .revisions-control-frame{margin:10px 0}#loco-admin.wrap .revisions-diff-frame{margin-top:20px}
pub/css/poview.css CHANGED
@@ -1 +1 @@
1
- .js #loco-admin.wrap .loco-loading{min-height:100px;background:#fff url(../img/spin-modal.gif?v=2.6.1) center center no-repeat}.js #loco-admin.wrap .loco-loading ol.msgcat{display:none}#loco-admin.wrap #loco-po{padding-right:0;overflow:auto}#loco-admin.wrap ol.msgcat{margin-left:3em;padding-top:1em;border-top:1px dashed #ccc}#loco-admin.wrap ol.msgcat:first-child{padding-top:0;border-top:none}#loco-admin.wrap ol.msgcat li{color:#aaa;margin:0;padding:0 0 0 1em;font:normal 12px/17px "Monaco","Menlo","Ubuntu Mono","Consolas","source-code-pro",monospace;border-left:1px solid #eee}#loco-admin.wrap ol.msgcat li>*{color:#333;white-space:pre}#loco-admin.wrap ol.msgcat li>.po-comment{color:#3cc200}#loco-admin.wrap ol.msgcat li>.po-refs{color:#0073aa}#loco-admin.wrap ol.msgcat li>.po-refs a{color:inherit;text-decoration:none}#loco-admin.wrap ol.msgcat li>.po-refs a:hover{text-decoration:underline}#loco-admin.wrap ol.msgcat li>.po-flags{color:#77904a}#loco-admin.wrap ol.msgcat li>.po-flags em{font-style:normal}#loco-admin.wrap ol.msgcat li>.po-word{color:#000}#loco-admin.wrap ol.msgcat li>.po-junk{font-style:italic;color:#ccc}#loco-admin.wrap ol.msgcat li>.po-string>span{color:#c931c7}#loco-admin.wrap form.loco-filter{top:0;right:0;position:absolute}#loco-admin.wrap .loco-invalid form.loco-filter input[type=text]:focus{border-color:#c00;-webkit-box-shadow:0 0 2px rgba(153,0,0,.5);-moz-box-shadow:0 0 2px rgba(153,0,0,.5);box-shadow:0 0 2px rgba(153,0,0,.5)}#loco-admin.wrap .loco-invalid ol.msgcat{list-style-type:none}#loco-admin.wrap .loco-invalid ol.msgcat li{color:#000}
1
+ .js #loco-admin.wrap .loco-loading{min-height:100px;background:#fff url(../img/spin-modal.gif?v=2.6.2) center center no-repeat}.js #loco-admin.wrap .loco-loading ol.msgcat{display:none}#loco-admin.wrap #loco-po{padding-right:0;overflow:auto}#loco-admin.wrap ol.msgcat{margin-left:3em;padding-top:1em;border-top:1px dashed #ccc}#loco-admin.wrap ol.msgcat:first-child{padding-top:0;border-top:none}#loco-admin.wrap ol.msgcat li{color:#aaa;margin:0;padding:0 0 0 1em;font:normal 12px/17px "Monaco","Menlo","Ubuntu Mono","Consolas","source-code-pro",monospace;border-left:1px solid #eee}#loco-admin.wrap ol.msgcat li>*{color:#333;white-space:pre}#loco-admin.wrap ol.msgcat li>.po-comment{color:#3cc200}#loco-admin.wrap ol.msgcat li>.po-refs{color:#0073aa}#loco-admin.wrap ol.msgcat li>.po-refs a{color:inherit;text-decoration:none}#loco-admin.wrap ol.msgcat li>.po-refs a:hover{text-decoration:underline}#loco-admin.wrap ol.msgcat li>.po-flags{color:#77904a}#loco-admin.wrap ol.msgcat li>.po-flags em{font-style:normal}#loco-admin.wrap ol.msgcat li>.po-word{color:#000}#loco-admin.wrap ol.msgcat li>.po-junk{font-style:italic;color:#ccc}#loco-admin.wrap ol.msgcat li>.po-string>span{color:#c931c7}#loco-admin.wrap form.loco-filter{top:0;right:0;position:absolute}#loco-admin.wrap .loco-invalid form.loco-filter input[type=text]:focus{border-color:#c00;-webkit-box-shadow:0 0 2px rgba(153,0,0,.5);-moz-box-shadow:0 0 2px rgba(153,0,0,.5);box-shadow:0 0 2px rgba(153,0,0,.5)}#loco-admin.wrap .loco-invalid ol.msgcat{list-style-type:none}#loco-admin.wrap .loco-invalid ol.msgcat li{color:#000}
pub/css/skins/blue.css CHANGED
@@ -1 +1 @@
1
- .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(9,100,132,.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#096484;foo:#096484}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);-moz-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);box-shadow:inset 0 0 .6em rgba(30,140,190,.8)}.wp-core-ui .button-primary.loco-loading[disabled]{color:#d1cdc7 !important;background:#db9925 !important;border-color:#db9925 !important}.wp-core-ui .button-primary.loco-loading[disabled]:before{background:transparent url(../../img/skins/blue/spin-primary-button.gif?v=2.6.1) 0 0 no-repeat !important}
1
+ .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(9,100,132,.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#096484}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);-moz-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);box-shadow:inset 0 0 .6em rgba(30,140,190,.8)}.wp-core-ui .button-primary.loco-loading[disabled]{color:#d1cdc7 !important;background:#db9925 !important;border-color:#db9925 !important}.wp-core-ui .button-primary.loco-loading[disabled]:before{background:transparent url(../../img/skins/blue/spin-primary-button.gif?v=2.6.2) 0 0 no-repeat !important}
pub/css/skins/coffee.css CHANGED
@@ -1 +1 @@
1
- .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(199,165,137,.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#c7a589;foo:#c7a589}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);-moz-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);box-shadow:inset 0 0 .6em rgba(30,140,190,.8)}.wp-core-ui .button-primary.loco-loading[disabled]{color:#d1ccc7 !important;background:#ba906d !important;border-color:#ba906d !important}.wp-core-ui .button-primary.loco-loading[disabled]:before{background:transparent url(../../img/skins/coffee/spin-primary-button.gif?v=2.6.1) 0 0 no-repeat !important}
1
+ .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(199,165,137,.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#c7a589}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);-moz-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);box-shadow:inset 0 0 .6em rgba(30,140,190,.8)}.wp-core-ui .button-primary.loco-loading[disabled]{color:#d1ccc7 !important;background:#ba906d !important;border-color:#ba906d !important}.wp-core-ui .button-primary.loco-loading[disabled]:before{background:transparent url(../../img/skins/coffee/spin-primary-button.gif?v=2.6.2) 0 0 no-repeat !important}
pub/css/skins/ectoplasm.css CHANGED
@@ -1 +1 @@
1
- .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(163,183,69,.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#a3b745;foo:#a3b745}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);-moz-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);box-shadow:inset 0 0 .6em rgba(30,140,190,.8)}.wp-core-ui .button-primary.loco-loading[disabled]{color:#cfd1c7 !important;background:#89993a !important;border-color:#89993a !important}.wp-core-ui .button-primary.loco-loading[disabled]:before{background:transparent url(../../img/skins/ectoplasm/spin-primary-button.gif?v=2.6.1) 0 0 no-repeat !important}
1
+ .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(163,183,69,.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#a3b745}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);-moz-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);box-shadow:inset 0 0 .6em rgba(30,140,190,.8)}.wp-core-ui .button-primary.loco-loading[disabled]{color:#cfd1c7 !important;background:#89993a !important;border-color:#89993a !important}.wp-core-ui .button-primary.loco-loading[disabled]:before{background:transparent url(../../img/skins/ectoplasm/spin-primary-button.gif?v=2.6.2) 0 0 no-repeat !important}
pub/css/skins/light.css CHANGED
@@ -1 +1 @@
1
- .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(136,136,136,.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#888;foo:#04a4cc}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);-moz-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);box-shadow:inset 0 0 .6em rgba(30,140,190,.8)}.wp-core-ui .button-primary.loco-loading[disabled]{color:#c7cfd1 !important;background:#0384a4 !important;border-color:#0384a4 !important}.wp-core-ui .button-primary.loco-loading[disabled]:before{background:transparent url(../../img/skins/light/spin-primary-button.gif?v=2.6.1) 0 0 no-repeat !important}
1
+ .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(136,136,136,.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#888}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);-moz-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);box-shadow:inset 0 0 .6em rgba(30,140,190,.8)}.wp-core-ui .button-primary.loco-loading[disabled]{color:#c7cfd1 !important;background:#0384a4 !important;border-color:#0384a4 !important}.wp-core-ui .button-primary.loco-loading[disabled]:before{background:transparent url(../../img/skins/light/spin-primary-button.gif?v=2.6.2) 0 0 no-repeat !important}
pub/css/skins/midnight.css CHANGED
@@ -1 +1 @@
1
- .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(225,77,67,.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#e14d43;foo:#e14d43}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);-moz-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);box-shadow:inset 0 0 .6em rgba(30,140,190,.8)}.wp-core-ui .button-primary.loco-loading[disabled]{color:#d1c8c7 !important;background:#d92e23 !important;border-color:#d92e23 !important}.wp-core-ui .button-primary.loco-loading[disabled]:before{background:transparent url(../../img/skins/midnight/spin-primary-button.gif?v=2.6.1) 0 0 no-repeat !important}
1
+ .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(225,77,67,.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#e14d43}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);-moz-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);box-shadow:inset 0 0 .6em rgba(30,140,190,.8)}.wp-core-ui .button-primary.loco-loading[disabled]{color:#d1c8c7 !important;background:#d92e23 !important;border-color:#d92e23 !important}.wp-core-ui .button-primary.loco-loading[disabled]:before{background:transparent url(../../img/skins/midnight/spin-primary-button.gif?v=2.6.2) 0 0 no-repeat !important}
pub/css/skins/modern.css CHANGED
@@ -1 +1 @@
1
- .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(56,88,233,.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#3858e9;foo:#3858e9}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);-moz-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);box-shadow:inset 0 0 .6em rgba(30,140,190,.8)}.wp-core-ui .button-primary.loco-loading[disabled]{color:#c7c9d1 !important;background:#193ddf !important;border-color:#193ddf !important}.wp-core-ui .button-primary.loco-loading[disabled]:before{background:transparent url(../../img/skins/modern/spin-primary-button.gif?v=2.6.1) 0 0 no-repeat !important}
1
+ .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(56,88,233,.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#3858e9}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);-moz-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);box-shadow:inset 0 0 .6em rgba(30,140,190,.8)}.wp-core-ui .button-primary.loco-loading[disabled]{color:#c7c9d1 !important;background:#193ddf !important;border-color:#193ddf !important}.wp-core-ui .button-primary.loco-loading[disabled]:before{background:transparent url(../../img/skins/modern/spin-primary-button.gif?v=2.6.2) 0 0 no-repeat !important}
pub/css/skins/ocean.css CHANGED
@@ -1 +1 @@
1
- .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(158,186,160,.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#9ebaa0;foo:#9ebaa0}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);-moz-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);box-shadow:inset 0 0 .6em rgba(30,140,190,.8)}.wp-core-ui .button-primary.loco-loading[disabled]{color:#c7d1c8 !important;background:#86a989 !important;border-color:#86a989 !important}.wp-core-ui .button-primary.loco-loading[disabled]:before{background:transparent url(../../img/skins/ocean/spin-primary-button.gif?v=2.6.1) 0 0 no-repeat !important}
1
+ .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(158,186,160,.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#9ebaa0}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);-moz-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);box-shadow:inset 0 0 .6em rgba(30,140,190,.8)}.wp-core-ui .button-primary.loco-loading[disabled]{color:#c7d1c8 !important;background:#86a989 !important;border-color:#86a989 !important}.wp-core-ui .button-primary.loco-loading[disabled]:before{background:transparent url(../../img/skins/ocean/spin-primary-button.gif?v=2.6.2) 0 0 no-repeat !important}
pub/css/skins/sunrise.css CHANGED
@@ -1 +1 @@
1
- .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(221,130,59,.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#dd823b;foo:#dd823b}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);-moz-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);box-shadow:inset 0 0 .6em rgba(30,140,190,.8)}.wp-core-ui .button-primary.loco-loading[disabled]{color:#d1cbc7 !important;background:#cc6d23 !important;border-color:#cc6d23 !important}.wp-core-ui .button-primary.loco-loading[disabled]:before{background:transparent url(../../img/skins/sunrise/spin-primary-button.gif?v=2.6.1) 0 0 no-repeat !important}
1
+ .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(221,130,59,.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#dd823b}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);-moz-box-shadow:inset 0 0 .6em rgba(30,140,190,.8);box-shadow:inset 0 0 .6em rgba(30,140,190,.8)}.wp-core-ui .button-primary.loco-loading[disabled]{color:#d1cbc7 !important;background:#cc6d23 !important;border-color:#cc6d23 !important}.wp-core-ui .button-primary.loco-loading[disabled]:before{background:transparent url(../../img/skins/sunrise/spin-primary-button.gif?v=2.6.2) 0 0 no-repeat !important}
pub/js/min/admin.js CHANGED
@@ -1,380 +1,383 @@
1
- (function(z, x, k, J) {
2
- var n = function() {
3
- function f(d) {
4
- throw Error("Failed to require " + d);
5
  }
6
- var d = {};
7
  return {
8
- register: function(f, p) {
9
- d[f] = p;
10
  },
11
  require: function(k, p) {
12
- return d[k] || f(p);
13
  },
14
- include: function(k, p, g) {
15
- return d[k] || (g ? f(p) : null);
16
  }
17
  };
18
  }();
19
- n.register("$1", function(f, d, k) {
20
- function p(g) {
21
- var c = typeof g;
22
- if ("string" === c) if (/[^ <>!=()%^&|?:n0-9]/.test(g)) console.error("Invalid plural: " + g); else return new Function("n", "return " + g);
23
- "function" !== c && (g = function(b) {
24
- return 1 != b;
25
  });
26
- return g;
27
  }
28
- f.init = function(g) {
29
- function c(a, b, e) {
30
- return (a = h[a]) && a[e] ? a[e] : b || "";
31
  }
32
- function b(a) {
33
  return c(a, a, 0);
34
  }
35
- function a(a, b) {
36
  return c(b + "" + a, a, 0);
37
  }
38
- function e(a, b, e) {
39
- e = Number(g(e));
40
- isNaN(e) && (e = 0);
41
- return c(a, e ? b : a, e);
42
  }
43
- g = p(g);
44
- var h = {};
45
  return {
46
- __: b,
47
- _x: a,
48
- _n: e,
49
- _: b,
50
- x: a,
51
- n: e,
52
  load: function(a) {
53
- h = a || {};
54
  return this;
55
  },
56
  pluraleq: function(a) {
57
- g = p(a);
58
  return this;
59
  }
60
  };
61
  };
62
- return f;
63
- }({}, z, x));
64
- n.register("$2", function(f, d, k) {
65
- f.ie = function() {
66
- var f = !1, g = 0;
67
- d.attachEvent && d.navigator && /MSIE (\d+)\./.exec(String(navigator.appVersion)) && (g = Number(RegExp.$1),
68
- f = 11 > g);
69
  return function() {
70
- return f;
71
  };
72
  }();
73
- f.init = function() {
74
- return f;
75
  };
76
- return f;
77
- }({}, z, x));
78
- n.register("$3", function(f, d, k) {
79
- Number.prototype.format = function(d, g, c) {
80
- d = Math.pow(10, d || 0);
81
- var b = Math.round(d * this) / d;
82
- d = [];
83
- var b = String(b), a = b.split("."), b = a[0], a = a[1], e = b.length;
84
  do {
85
- d.unshift(b.substring(e - 3, e));
86
- } while (0 < (e -= 3));
87
- b = d.join(c || ",");
88
- if (a) {
89
- c = a;
90
- var h;
91
- for (d = c.length; "0" === c.charAt(--d); ) h = d;
92
- h && (c = c.substring(0, h));
93
- (a = c) && (b += (g || ".") + a);
94
  }
95
- return b;
96
  };
97
- Number.prototype.percent = function(d) {
98
- var g = 0, c = this && d ? 100 * (this / d) : 0;
99
- if (0 === c) return "0";
100
- if (100 === c) return "100";
101
- if (99 < c) c = Math.min(c, 99.9), d = c.format(++g); else if (.5 > c) {
102
- c = Math.max(c, 1e-4);
103
  do {
104
- d = c.format(++g);
105
- } while ("0" === d && 4 > g);
106
- d = d.substr(1);
107
- } else d = c.format(0);
108
- return d;
109
  };
110
- return f;
111
- }({}, z, x));
112
- n.register("$4", function(f, d, k) {
113
- Array.prototype.indexOf || (Array.prototype.indexOf = function(d) {
114
  if (null == this) throw new TypeError();
115
- var g, c = Object(this), b = c.length >>> 0;
116
- if (0 === b) return -1;
117
- g = 0;
118
- 1 < arguments.length && (g = Number(arguments[1]), g != g ? g = 0 : 0 != g && Infinity != g && -Infinity != g && (g = (0 < g || -1) * Math.floor(Math.abs(g))));
119
- if (g >= b) return -1;
120
- for (g = 0 <= g ? g : Math.max(b - Math.abs(g), 0); g < b; g++) if (g in c && c[g] === d) return g;
121
  return -1;
122
  });
123
- return f;
124
- }({}, z, x));
125
- n.register("$5", function(f, d, n) {
126
- d.JSON || (d.JSON = {
127
  parse: k.parseJSON,
128
  stringify: null
129
  });
130
- return f = d.JSON;
131
- }({}, z, x));
132
- n.register("$6", function(f, d, k) {
133
- f.trim = function(d, g) {
134
- for (g || (g = " \n"); d && -1 !== g.indexOf(d.substr(0, 1)); ) d = d.substr(1);
135
- for (;d && -1 !== g.indexOf(d.substr(-1)); ) d = d.substr(0, d.length - 1);
136
- return d;
137
  };
138
- f.sprintf = function(d) {
139
- var g = 0, c = [].slice.call(arguments, 1);
140
- return d.replace(/%(?:([1-9][0-9]*)\$)?([sud%])/g, function(b, a, e) {
141
- return "%" === e ? "%" : (a ? c[Number(a) - 1] : c[g++]) || "";
 
 
 
142
  });
143
  };
144
- return f;
145
- }({}, z, x));
146
- n.register("$21", function(f, d, k) {
147
- function p(g) {
148
- return function(c, b) {
149
- for (var a = c[g] || 0; (c = c.offsetParent) && c !== (b || k.body); ) a += c[g] || 0;
150
- return a;
151
  };
152
  }
153
- f.top = p("offsetTop");
154
- f.left = p("offsetLeft");
155
- f.el = function(g, c) {
156
- var b = k.createElement(g || "div");
157
- c && (b.className = c);
158
- return b;
159
  };
160
- f.txt = function(g) {
161
- return k.createTextNode(g || "");
162
  };
163
- return f;
164
- }({}, z, x));
165
- n.register("$7", function(f, d, D) {
166
- function p(a, b, e) {
167
- function c() {
168
- m();
169
- v = setTimeout(b, e);
170
  }
171
- function m() {
172
  v && clearTimeout(v);
173
  v = null;
174
  }
175
  var v;
176
- c();
177
- k(a).on("mouseenter", m).on("mouseleave", c);
178
  return {
179
  die: function() {
180
- m();
181
  k(a).off("mouseenter mouseleave");
182
  }
183
  };
184
  }
185
- function g(a, b) {
186
  a.fadeTo(b, 0, function() {
187
  a.slideUp(b, function() {
188
  a.remove();
189
- k(d).triggerHandler("resize");
190
  });
191
  });
192
  return a;
193
  }
194
- function c(a, b) {
195
- function e(b) {
196
- q[v] = null;
197
- g(k(a), 250);
198
- m && m.die();
199
- var c;
200
- if (c = b) b.stopPropagation(), b.preventDefault(), c = !1;
201
- return c;
202
  }
203
- function c(b) {
204
- m && m.die();
205
- return m = p(a, e, b);
206
- }
207
- var m, v, h, l = k(a), B = l.find("button");
208
- 0 === B.length && (l.addClass("is-dismissible"), B = k('<button type="button" class="notice-dismiss"> </a>').appendTo(l));
209
- B.off("click").on("click", e);
210
- k(d).triggerHandler("resize");
211
- A();
212
- v = q.length;
213
- q.push(e);
214
- b && (m = c(b));
215
  return {
216
  link: function(b, v) {
217
- var e = v || b, m = k(a).find("nav"), e = k("<nav></nav>").append(k("<a></a>").attr("href", b).text(e));
218
- h ? (h.push(e.html()), m.html(h.join("<span> | </span>"))) : (h = [ e.html() ],
219
- k(a).addClass("has-nav").append(e));
220
  return this;
221
  },
222
  stick: function() {
223
- m && m.die();
224
- m = null;
225
- q[v] = null;
226
  return this;
227
  },
228
  slow: function(a) {
229
- c(a || 1e4);
230
  return this;
231
  }
232
  };
233
  }
234
- function b(a, b, e) {
235
- var m = n.require("$21", "dom.js").el;
236
  a = k('<div class="notice notice-' + a + ' loco-notice inline"></div>').prependTo(k("#loco-notices"));
237
- var c = k(m("p"));
238
- e = k(m("span")).text(e);
239
- b = k(m("strong", "has-icon")).text(b + ": ");
240
- c.append(b).append(e).appendTo(a);
241
  return a;
242
  }
243
- function a(a, e, m, h) {
244
- a = b(m, e, a).css("opacity", "0").fadeTo(500, 1);
245
- k(d).triggerHandler("resize");
246
- return c(a, h);
247
  }
248
- function e(b) {
249
- return a(b, s, "warning");
250
  }
251
- function h() {
252
  k("#loco-notices").find("div.notice").each(function(a, b) {
253
  if (-1 === b.className.indexOf("jshide")) {
254
- var e = -1 === b.className.indexOf("notice-success") ? null : 5e3;
255
- c(b, e);
256
  }
257
  });
258
  }
259
- var q = [], l = d.console || {
260
  log: function() {}
261
- }, A = Date.now || function() {
262
  return new Date().getTime();
263
- }, w, s, m, B;
264
- f.error = function(b) {
265
- return a(b, w, "error");
266
  };
267
- f.warn = e;
268
- f.info = function(b) {
269
- return a(b, m, "info");
270
  };
271
- f.success = function(b) {
272
- return a(b, B, "success", 5e3);
273
  };
274
- f.warning = e;
275
- f.log = function() {
276
- l.log.apply(l, arguments);
277
  };
278
- f.debug = function() {
279
- (l.debug || l.log).apply(l, arguments);
280
  };
281
- f.clear = function() {
282
- for (var a = -1, b, e = q, m = e.length; ++a < m; ) (b = e[a]) && b.call && b();
283
- q = [];
284
- return f;
285
  };
286
- f.create = b;
287
- f.raise = function(a) {
288
- (f[a.type] || f.error).call(f, a.message);
289
  };
290
- f.convert = c;
291
- f.init = function(a) {
292
- w = a._("Error");
293
  s = a._("Warning");
294
  m = a._("Notice");
295
- B = a._("OK");
296
- setTimeout(h, 1e3);
297
- return f;
298
  };
299
- return f;
300
- }({}, z, x));
301
- n.register("$8", function(f, d, D) {
302
  function p(a) {
303
  var b = k("<pre>" + a + "</pre>").text();
304
  b && (b = b.replace(/[\r\n]+/g, "\n").replace(/(^|\n)\s+/g, "$1").replace(/\s+$/, ""));
305
  b || (b = a) || (b = "Blank response from server");
306
  return b;
307
  }
308
- function g(a) {
309
  return (a = a.split(/[\r\n]/)[0]) ? (a = a.replace(/ +in +\S+ on line \d+/, ""),
310
  a = a.replace(/^[()! ]+Fatal error:\s*/, "")) : t._("Server returned invalid data");
311
  }
312
- function c(a) {
313
- d.console && console.error && console.error('No nonce for "' + a + '"');
314
  return "";
315
  }
316
- function b(a, b, e) {
317
- a[b] = e;
318
  }
319
- function a(a, b, e) {
320
  a.push({
321
  name: b,
322
- value: e
323
  });
324
  }
325
- function e(a, b, e) {
326
- a.append(b, e);
327
  }
328
- function h(a, b, e, c) {
329
- function h(b, c, v) {
330
- if ("abort" !== c) {
331
- var m = l || {
332
  _: function(a) {
333
  return a;
334
  }
335
- }, r = b.status || 0, d = b.responseText || "", y = p(d), w = b.getResponseHeader("Content-Type") || "Unknown type", f = b.getResponseHeader("Content-Length") || d.length;
336
- "success" === c && v ? q.error(v) : (q.error(g(y) + ".\n" + m._("Check console output for debugging information")),
337
- q.log("Ajax failure for " + a, {
338
- status: r,
339
- error: c,
340
  message: v,
341
- output: d
342
- }), "parsererror" === c && (v = "Response not JSON"), q.log([ m._("Provide the following text when reporting a problem") + ":", "----", "Status " + r + ' "' + (v || m._("Unknown error")) + '" (' + w + " " + f + " bytes)", y, "====" ].join("\n")));
343
- e && e.call && e(b, c, v);
344
- A = b;
345
- }
346
- }
347
- c.url = w;
348
- c.dataType = "json";
349
- var q = n.require("$7", "notices.js").clear();
350
- A = null;
351
- return k.ajax(c).fail(h).done(function(a, e, v) {
352
- var c = a && a.data, l = a && a.notices, g = l && l.length, A = -1;
353
- for (!c || a.error ? h(v, e, a && a.error && a.error.message) : b && b(c, e, v); ++A < g; ) q.raise(l[A]);
354
  });
355
  }
356
- var q = {}, l, A, w = d.ajaxurl || "/wp-admin/admin-ajax.php";
357
- f.init = function(a) {
358
- q = a.nonces || q;
359
- return f;
360
  };
361
- f.localise = function(a) {
362
- l = a;
363
- return f;
364
  };
365
- f.xhr = function() {
366
- return A;
367
  };
368
- f.strip = p;
369
- f.parse = g;
370
- f.submit = function(a, b, e) {
371
- function c(a, b) {
372
  b.disabled ? b.setAttribute("data-was-disabled", "true") : b.disabled = !0;
373
  }
374
  function r(a, b) {
375
  b.getAttribute("data-was-disabled") || (b.disabled = !1);
376
  }
377
- function q(a) {
378
  a.find(".button-primary").removeClass("loading");
379
  a.find("button").each(r);
380
  a.find("input").each(r);
@@ -382,57 +385,57 @@ a.find("select").each(r);
382
  a.find("textarea").each(r);
383
  a.removeClass("disabled loading");
384
  }
385
- var l = k(a), A = l.serialize();
386
  (function(a) {
387
  a.find(".button-primary").addClass("loading");
388
- a.find("button").each(c);
389
- a.find("input").each(c);
390
- a.find("select").each(c);
391
- a.find("textarea").each(c);
392
  a.addClass("disabled loading");
393
- })(l);
394
- return h(a.route.value, function(a, e, c) {
395
- q(l);
396
- b && b(a, e, c);
397
- }, function(a, b, c) {
398
- q(l);
399
- e && e(a, b, c);
400
  }, {
401
  type: a.method,
402
- data: A
403
  });
404
  };
405
- f.post = function(l, m, A, g) {
406
- var r = !0, G = m || {}, w = q[l] || c(l);
407
- d.FormData && G instanceof FormData ? (r = !1, m = e) : m = Array.isArray(G) ? a : b;
408
- m(G, "action", "loco_json");
409
- m(G, "route", l);
410
- m(G, "loco-nonce", w);
411
- return h(l, A, g, {
412
  type: "post",
413
- data: G,
414
  processData: r,
415
  contentType: r ? "application/x-www-form-urlencoded; charset=UTF-8" : !1
416
  });
417
  };
418
- f.get = function(a, b, e, l) {
419
  b = b || {};
420
- var r = q[a] || c(a);
421
  b.action = "loco_json";
422
  b.route = a;
423
  b["loco-nonce"] = r;
424
- return h(a, e, l, {
425
  type: "get",
426
  data: b
427
  });
428
  };
429
- f.setNonce = function(a, b) {
430
- q[a] = b;
431
- return f;
432
  };
433
- return f;
434
- }({}, z, x));
435
- n.register("$22", {
436
  arab: 1,
437
  aran: 1,
438
  hebr: 1,
@@ -470,55 +473,55 @@ ps: 1,
470
  ur: 1,
471
  yi: 1
472
  });
473
- n.register("$9", function(f, d, k) {
474
  function p() {}
475
- var g, c = n.require("$22", "rtl.json");
476
- f.init = function() {
477
  return new p();
478
  };
479
- f.cast = function(b) {
480
- return b instanceof p ? b : "string" === typeof b ? f.parse(b) : f.clone(b);
481
  };
482
- f.clone = function(b) {
483
- var a, e = new p();
484
- for (a in b) e[a] = b[a];
485
- return e;
486
  };
487
- f.parse = function(b) {
488
- if (!(g || (g = /^([a-z]{2,3})(?:[-_]([a-z]{2}))?(?:[-_]([a-z0-9]{3,8}))?$/i)).exec(b)) return null;
489
- var a = new p();
490
- a.lang = RegExp.$1.toLowerCase();
491
- if (b = RegExp.$2) a.region = b.toUpperCase();
492
- if (b = RegExp.$3) a.variant = b.toLowerCase();
493
- return a;
494
  };
495
- d = p.prototype;
496
- d.isValid = function() {
497
  return !!this.lang;
498
  };
499
- d.isKnown = function() {
500
- var b = this.lang;
501
- return !(!b || "zxx" === b);
502
  };
503
- d.toString = function(b) {
504
- b = b || "_";
505
- var a, e = this.lang || "zxx";
506
- if (a = this.region) e += b + a;
507
- if (a = this.variant) e += b + a;
508
- return e;
509
  };
510
- d.getIcon = function() {
511
- for (var b = 3, a, e, c = [ "variant", "region", "lang" ], q = []; 0 !== b--; ) if (a = c[b],
512
- e = this[a]) q.push(a), q.push(a + "-" + e.toLowerCase());
513
- return q.join(" ");
514
  };
515
- d.isRTL = function() {
516
- return !!c[String(this.lang).toLowerCase()];
517
  };
518
- d = null;
519
- return f;
520
- }({}, z, x));
521
- n.register("$23", {
522
  "á": "a",
523
  "à": "a",
524
  "ă": "a",
@@ -930,234 +933,234 @@ n.register("$23", {
930
  "ӣ": "и",
931
  "ӯ": "у"
932
  });
933
- n.register("$10", function(f, d, k) {
934
- f.init = function() {
935
- function d(a) {
936
- return l[a] || a;
937
  }
938
- function g(a, b, e, c) {
939
  b = a.split(b);
940
- for (var h = b.length; 0 !== h--; ) (a = b[h]) && null == c[a] && (e.push(a), c[a] = !0);
941
- return e;
942
- }
943
- function c(a) {
944
- return g(String(a || "").toLowerCase().replace(h, d), q, [], {});
945
  }
946
- function b(a, b) {
947
- for (var c = [], m = {}, l, y = b.length, r = q; 0 !== y--; ) (l = b[y]) && g(String(l || "").toLowerCase().replace(h, d), r, c, m);
948
- e[a] = c;
949
  }
950
  function a(a, b) {
951
- var c = [], h = -1, l = e, q = l.length, r, g, d, u, v, F, f = a.length, k = b ? !0 : !1;
952
- a: for (;++h < q; ) if (d = l[h], null != d && (u = d.length)) {
 
 
 
 
953
  v = 0;
954
- b: for (;v < f; v++) {
955
- F = a[v];
956
- for (r = 0; r < u; r++) if (g = d[r], 0 === g.indexOf(F)) continue b;
957
  continue a;
958
  }
959
- c.push(k ? b[h] : h);
960
  }
961
- return c;
962
  }
963
- var e = [], h = /[^a-z0-9]/g, q = /[\-_\s.?!;:,*^+=~`"(){}<>\[\]\/\\\u00a0\u1680\u180e\u2000-\u206f\u2e00-\u2e7f\u3000-\u303f]+/, l = n.require("$23", "flatten.json");
964
  return {
965
- split: c,
966
- pull: function(b, e) {
967
- return a(b, e);
968
  },
969
- find: function(b, e) {
970
- return a(c(b), e);
971
  },
972
  add: function(a, b) {
973
- e[a] = c(b);
974
  },
975
- push: function(a) {
976
- b(e.length, a);
977
  },
978
- index: function(a, e) {
979
- b(a, e);
980
  },
981
  size: function() {
982
- return e.length;
983
  },
984
  clear: function() {
985
- e = [];
986
  },
987
  remove: function(a) {
988
- e[a] = null;
989
  }
990
  };
991
  };
992
- return f;
993
- }({}, z, x));
994
- n.register("$11", function(f, d, n) {
995
- f.listen = function(f, g) {
996
- function c() {
997
- m[h ? "show" : "hide"]();
998
  }
999
- function b(a) {
1000
- s && A.setAttribute("size", 2 + a.length);
1001
- h = a;
1002
- c();
1003
  return a;
1004
  }
1005
- function a() {
1006
- q = null;
1007
- g(h);
1008
- }
1009
- function e(e) {
1010
- var c = A.value;
1011
- w && c === w && (c = "");
1012
- c !== h ? (q && clearTimeout(q), b(c), e ? q = setTimeout(a, e) : a()) : q && null == e && (clearTimeout(q),
1013
- a());
1014
- }
1015
- var h, q, l = 150, A = f instanceof jQuery ? f[0] : f, w = d.attachEvent && A.getAttribute("placeholder"), s = 1 === Number(A.size), m = k('<a href="#clear" tabindex="-1" class="icon clear"><span>clear</span></a>').on("click", function() {
1016
- A.value = "";
1017
- e();
1018
  return !1;
1019
  });
1020
- b(A.value);
1021
- k(A).on("input", function() {
1022
- e(l);
1023
  return !0;
1024
  }).on("blur focus change", function() {
1025
- e(null);
1026
  return !0;
1027
  }).after(m);
1028
- c();
1029
  return {
1030
  delay: function(a) {
1031
- l = a;
1032
  return this;
1033
  },
1034
- ping: function(c) {
1035
- c ? (q && clearTimeout(q), c = A.value, w && c === w && (c = ""), b(c), a(), c = void 0) : c = e();
1036
- return c;
1037
  },
1038
- val: function(a) {
1039
- if (null == a) return h;
1040
- q && clearTimeout(q);
1041
- A.value = b(a);
1042
- c();
1043
  },
1044
  el: function() {
1045
- return A;
1046
  },
1047
  blur: function(a) {
1048
- return k(A).on("blur", a);
1049
  },
1050
  destroy: function() {
1051
- q && clearTimeout(q);
1052
  }
1053
  };
1054
  };
1055
- return f;
1056
- }({}, z, x));
1057
- n.register("$12", function(f, d, n) {
1058
- function p(b, a) {
1059
- this.$element = k(b);
1060
- this.options = a;
1061
  this.enabled = !0;
1062
  this.fixTitle();
1063
  }
1064
- f.init = function(b, a) {
1065
- var e = {
1066
  fade: !0,
1067
  offset: 5,
1068
- delayIn: g,
1069
- delayOut: c,
1070
- anchor: b.attr("data-anchor"),
1071
- gravity: b.attr("data-gravity") || "s"
1072
  };
1073
- a && (e = k.extend({}, e, a));
1074
- b.tipsy(e);
1075
  };
1076
- f.delays = function(b, a) {
1077
- g = b || 150;
1078
- c = a || 100;
1079
  };
1080
- f.kill = function() {
1081
  k("div.tipsy").remove();
1082
  };
1083
- f.text = function(b, a) {
1084
- a.data("tipsy").setTitle(b);
1085
  };
1086
- var g, c;
1087
- f.delays();
1088
- k(n.body).on("overlayOpened overlayClosing", function(b) {
1089
- f.kill();
1090
  return !0;
1091
  });
1092
  p.prototype = {
1093
  show: function() {
1094
- var b = this.getTitle();
1095
- if (b && this.enabled) {
1096
- var a = this.tip();
1097
- a.find(".tipsy-inner")[this.options.html ? "html" : "text"](b);
1098
- a[0].className = "tipsy";
1099
- a.remove().css({
1100
  top: 0,
1101
  left: 0
1102
- }).prependTo(n.body);
1103
- var b = (b = this.options.anchor) ? this.$element.find(b) : this.$element, b = k.extend({}, b.offset(), {
1104
- width: b[0].offsetWidth,
1105
- height: b[0].offsetHeight
1106
- }), e = a[0].offsetWidth, c = a[0].offsetHeight, q = "function" == typeof this.options.gravity ? this.options.gravity.call(this.$element[0]) : this.options.gravity, l;
1107
- switch (q.charAt(0)) {
1108
  case "n":
1109
- l = {
1110
- top: b.top + b.height + this.options.offset,
1111
- left: b.left + b.width / 2 - e / 2
1112
  };
1113
  break;
1114
 
1115
  case "s":
1116
- l = {
1117
- top: b.top - c - this.options.offset,
1118
- left: b.left + b.width / 2 - e / 2
1119
  };
1120
  break;
1121
 
1122
  case "e":
1123
- l = {
1124
- top: b.top + b.height / 2 - c / 2,
1125
- left: b.left - e - this.options.offset
1126
  };
1127
  break;
1128
 
1129
  case "w":
1130
- l = {
1131
- top: b.top + b.height / 2 - c / 2,
1132
- left: b.left + b.width + this.options.offset
1133
  };
1134
  }
1135
- 2 == q.length && ("w" == q.charAt(1) ? l.left = b.left + b.width / 2 - 15 : l.left = b.left + b.width / 2 - e + 15);
1136
- a.css(l).addClass("tipsy-" + q);
1137
- a.find(".tipsy-arrow")[0].className = "tipsy-arrow tipsy-arrow-" + q.charAt(0);
1138
- this.options.className && a.addClass("function" == typeof this.options.className ? this.options.className.call(this.$element[0]) : this.options.className);
1139
- a.addClass("in");
1140
  }
1141
  },
1142
  hide: function() {
1143
  this.tip().remove();
1144
  },
1145
  fixTitle: function() {
1146
- var b = this.$element, a = b.attr("title") || "";
1147
- (a || "string" !== typeof b.attr("original-title")) && b.attr("original-title", a).removeAttr("title");
1148
  },
1149
  getTitle: function() {
1150
- var b, a = this.$element, e = this.options;
1151
  this.fixTitle();
1152
- "string" == typeof e.title ? b = a.attr("title" == e.title ? "original-title" : e.title) : "function" == typeof e.title && (b = e.title.call(a[0]));
1153
- return (b = ("" + b).replace(/(^\s*|\s*$)/, "")) || e.fallback;
1154
  },
1155
- setTitle: function(b) {
1156
- var a = this.$element;
1157
- a.attr("default-title") || a.attr("default-title", this.getTitle());
1158
- null == b && (b = a.attr("default-title") || this.getTitle());
1159
- a.attr("original-title", b);
1160
- if (this.$tip) this.$tip.find(".tipsy-inner")[this.options.html ? "html" : "text"](b);
1161
  },
1162
  tip: function() {
1163
  this.$tip || (this.$tip = k('<div class="tipsy"></div>').html('<div class="tipsy-arrow"></div><div class="tipsy-inner"></div>'),
@@ -1178,33 +1181,33 @@ toggleEnabled: function() {
1178
  this.enabled = !this.enabled;
1179
  }
1180
  };
1181
- k.fn.tipsy = function(b) {
1182
- function a(a) {
1183
- var e = k.data(a, "tipsy");
1184
- e || (e = new p(a, k.fn.tipsy.elementOptions(a, b)), k.data(a, "tipsy", e));
1185
- return e;
1186
  }
1187
- function e() {
1188
- var e = a(this), c = b.delayIn;
1189
- e.hoverState = "in";
1190
- 0 == c ? e.show() : (e.fixTitle(), setTimeout(function() {
1191
- "in" == e.hoverState && e.show();
1192
- }, c));
1193
  }
1194
- function c() {
1195
- var e = a(this), h = b.delayOut;
1196
- e.hoverState = "out";
1197
- 0 == h ? e.hide() : (e.tip().removeClass("in"), setTimeout(function() {
1198
- "out" == e.hoverState && e.hide();
1199
- }, h));
1200
- }
1201
- b = k.extend({}, k.fn.tipsy.defaults, b);
1202
- b.live || this.each(function() {
1203
- a(this);
1204
  });
1205
- if ("manual" != b.trigger) {
1206
- var q = b.live ? "live" : "bind", l = "hover" == b.trigger ? "mouseleave" : "blur";
1207
- this[q]("hover" == b.trigger ? "mouseenter" : "focus", e)[q](l, c);
1208
  }
1209
  return this;
1210
  };
@@ -1223,425 +1226,425 @@ title: "title",
1223
  trigger: "hover",
1224
  anchor: null
1225
  };
1226
- k.fn.tipsy.elementOptions = function(b, a) {
1227
- return k.metadata ? k.extend({}, a, k(b).metadata()) : a;
1228
  };
1229
  k.fn.tipsy.autoNS = function() {
1230
- return k(this).offset().top > k(n).scrollTop() + k(d).height() / 2 ? "s" : "n";
1231
  };
1232
  k.fn.tipsy.autoWE = function() {
1233
- return k(this).offset().left > k(n).scrollLeft() + k(d).width() / 2 ? "e" : "w";
1234
  };
1235
- k.fn.tipsy.autoBounds = function(b, a) {
1236
  return function() {
1237
- var e = a[0], c = 1 < a.length ? a[1] : !1, q = k(n).scrollTop() + b, l = k(n).scrollLeft() + b, g = k(this);
1238
- g.offset().top < q && (e = "n");
1239
- g.offset().left < l && (c = "w");
1240
- k(d).width() + k(n).scrollLeft() - g.offset().left < b && (c = "e");
1241
- k(d).height() + k(n).scrollTop() - g.offset().top < b && (e = "s");
1242
- return e + (c ? c : "");
1243
  };
1244
  };
1245
- return f;
1246
- }({}, z, x));
1247
- n.register("$35", function(f, d, k) {
1248
  "".localeCompare || (String.prototype.localeCompare = function() {
1249
  return 0;
1250
  });
1251
  "".trim || (String.prototype.trim = function() {
1252
- return n.require("$6", "string.js").trim(this, " \n\r\t");
1253
  });
1254
- f.html = function() {
1255
- function d() {
1256
- b = /[<>&]/g;
1257
- a = /(\r\n|\n|\r)/g;
1258
- e = /(?:https?):\/\/(\S+)/gi;
1259
- h = location.hostname;
1260
- d = null;
1261
  }
1262
- function g(a) {
1263
  return "&#" + a.charCodeAt(0) + ";";
1264
  }
1265
- function c(a, b) {
1266
- return '<a href="' + a + '" target="' + (b.indexOf(h) ? "_blank" : "_top") + '">' + b + "</a>";
1267
  }
1268
- var b, a, e, h;
1269
- return function(h, l) {
1270
- d && d();
1271
- var A = h.replace(b, g);
1272
- l && (A = A.replace(e, c).replace(a, "<br />"));
1273
- return A;
1274
  };
1275
  }();
1276
- return f;
1277
- }({}, z, x));
1278
- n.register("$36", function(f, d, k) {
1279
  function p() {}
1280
- var g, c, b = n.require("$22", "rtl.json");
1281
- f.init = function() {
1282
  return new p();
1283
  };
1284
- f.cast = function(a) {
1285
- return a instanceof p ? a : "string" === typeof a ? f.parse(a) : f.clone(a);
1286
  };
1287
- f.clone = function(a) {
1288
- var b, c = new p();
1289
- for (b in a) c[b] = a[b];
1290
- return c;
1291
  };
1292
- f.parse = function(a) {
1293
- g || (c = /[-_+]/, g = /^([a-z]{2,3})(?:-([a-z]{4}))?(?:-([a-z]{2}|[0-9]{3}))?(?:-([0-9][a-z0-9]{3,8}|[a-z0-9]{5,8}))?(?:-([a-z]-[-a-z]+))?$/i);
1294
- a = String(a).split(c).join("-");
1295
- if (!g.exec(a)) return null;
1296
- var b = new p();
1297
- b.lang = RegExp.$1.toLowerCase();
1298
- if (a = RegExp.$2) b.script = a.charAt(0).toUpperCase() + a.substr(1).toLowerCase();
1299
- if (a = RegExp.$3) b.region = a.toUpperCase();
1300
- if (a = RegExp.$4) b.variant = a.toLowerCase();
1301
- if (a = RegExp.$5) b.extension = a;
1302
- return b;
1303
  };
1304
- d = p.prototype;
1305
- d.isValid = function() {
1306
  return !!this.lang;
1307
  };
1308
- d.isKnown = function() {
1309
  var a = this.lang;
1310
  return !(!a || "zxx" === a);
1311
  };
1312
- d.toString = function(a) {
1313
  a = a || "-";
1314
- var b, c = this.lang || "zxx";
1315
- if (b = this.script) c += a + b;
1316
- if (b = this.region) c += a + b;
1317
- if (b = this.variant) c += a + b;
1318
- if (b = this.extension) c += a + b;
1319
- return c;
1320
  };
1321
- d.getIcon = function() {
1322
- for (var a = 4, b, c, q = [ "variant", "region", "script", "lang" ], l = []; 0 !== a--; ) if (b = q[a],
1323
- c = this[b]) c.join && (c = c.join("-")), 1 === a && 3 === c.length ? l.push("region-m49") : l = l.concat([ b, b + "-" + c.toLowerCase() ]);
1324
- return l.join(" ");
1325
  };
1326
- d.isRTL = function() {
1327
- return !!b[String(this.script || this.lang).toLowerCase()];
1328
  };
1329
- d = null;
1330
- return f;
1331
- }({}, z, x));
1332
- n.register("$37", function(f, d, k) {
1333
  function p(a) {
1334
- d.console && console.error && console.error(a);
1335
  }
1336
- function g() {
1337
  p("Method not implemented");
1338
  }
1339
- function c() {}
1340
- function b(a) {}
1341
- c.prototype.toString = function() {
1342
  return "[Undefined]";
1343
  };
1344
- b.prototype._validate = function(a) {
1345
- var b, h, q = !0;
1346
- for (b in this) h = this[b], h === g ? (p(a + "." + b + "() must be implemented"),
1347
- q = !1) : h instanceof c && (p(a + "." + b + " must be defined"), q = !1);
1348
- return q;
1349
  };
1350
- f.init = function(a, e) {
1351
- var h, q = new b();
1352
- if (a) for (h = a.length; 0 !== h--; ) q[a[h]] = g;
1353
- if (e) for (h = e.length; 0 !== h--; ) q[e[h]] = new c();
1354
- return q;
1355
  };
1356
- f.validate = function(a) {
1357
- var b = /function (\w+)\(/.exec(a.toString()) ? RegExp.$1 : "";
1358
- a.prototype._validate(b || "Object");
1359
  };
1360
- return f;
1361
- }({}, z, x));
1362
- n.register("$48", function(f, d, k) {
1363
- var p = d.requestAnimationFrame, g = d.cancelAnimationFrame, c = 0;
1364
- if (!p || !g) for (var b in {
1365
  ms: 1,
1366
  moz: 1,
1367
  webkit: 1,
1368
  o: 1
1369
- }) if (p = d[b + "RequestAnimationFrame"]) if (g = d[b + "CancelAnimationFrame"] || d[b + "CancelRequestAnimationFrame"]) break;
1370
- p && g || (p = function(b) {
1371
- var h = a();
1372
- timeToCall = Math.max(0, 16 - (h - c));
1373
- nextTime = h + timeToCall;
1374
- timerId = d.setTimeout(function() {
1375
- b(nextTime);
1376
  }, timeToCall);
1377
- c = nextTime;
1378
  return timerId;
1379
- }, g = function(a) {
1380
  clearTimeout(a);
1381
  });
1382
- var a = Date.now || function() {
1383
  return new Date().getTime();
1384
  };
1385
- f.loop = function(a, b) {
1386
  function c() {
1387
- d = p(c, b);
1388
- a(l++);
1389
  }
1390
- var l = 0, d;
1391
  c();
1392
  return {
1393
  stop: function() {
1394
- d && g(d);
1395
- d = null;
1396
  }
1397
  };
1398
  };
1399
- return f;
1400
- }({}, z, x));
1401
- n.register("$45", function(f, d, k) {
1402
- function p(a, c, e, m) {
1403
- if (b) {
1404
- var l = e;
1405
- e = function(a) {
1406
- if ((a.MSPOINTER_TYPE_TOUCH || "touch") === a.pointerType) return l(a);
1407
  };
1408
  }
1409
- a.addEventListener(c, e, m);
1410
  return {
1411
  unbind: function() {
1412
- a.removeEventListener(c, e, m);
1413
  }
1414
  };
1415
  }
1416
- function g(a) {
1417
  a.preventDefault();
1418
  a.stopPropagation();
1419
  return !1;
1420
  }
1421
- var c, b = !!d.navigator.msPointerEnabled, a = b ? "MSPointerDown" : "touchstart", e = b ? "MSPointerMove" : "touchmove", h = b ? "MSPointerUp" : "touchend";
1422
- f.ok = function(a) {
1423
- null == c && (c = "function" === typeof k.body.addEventListener);
1424
- c && a && a(f);
1425
- return c;
1426
  };
1427
- f.ms = function() {
1428
- return b;
1429
  };
1430
- f.dragger = function(b, c) {
1431
- function l(a) {
1432
- b.addEventListener(a, d[a], !1);
1433
  }
1434
- function m(a) {
1435
- b.removeEventListener(a, d[a], !1);
1436
  }
1437
- var d = {};
1438
- d[a] = function(b) {
1439
- q(b, function(e, m) {
1440
- m.type = a;
1441
- c(b, m, f);
1442
  });
1443
- l(e);
1444
- l(h);
1445
  return !0;
1446
  };
1447
- d[h] = function(a) {
1448
- m(e);
1449
- m(h);
1450
- q(a, function(b, e) {
1451
- e.type = h;
1452
- c(a, e, f);
1453
  });
1454
  return !0;
1455
  };
1456
- d[e] = function(a) {
1457
- q(a, function(b, m) {
1458
- m.type = e;
1459
- c(a, m, f);
1460
  });
1461
- return g(a);
1462
  };
1463
- l(a);
1464
- var f = {
1465
  kill: function() {
1466
- m(a);
1467
- m(e);
1468
- m(h);
1469
- b = f = c = null;
1470
  }
1471
  };
1472
- return f;
1473
  };
1474
- f.swiper = function(c, d, f) {
1475
  function m(a) {
1476
  c.addEventListener(a, u[a], !1);
1477
  }
1478
- function B(a) {
1479
  c.removeEventListener(a, u[a], !1);
1480
  }
1481
- function y() {
1482
  r && r.stop();
1483
  r = null;
1484
  }
1485
- var r, G, E, u = {}, v = [], F = [], k = [];
1486
- u[a] = function(a) {
1487
- G = !1;
1488
- y();
1489
- var b = l();
1490
- q(a, function(a, c) {
1491
  v[a] = b;
1492
- F[a] = c.clientX;
1493
- k[a] = c.clientY;
1494
  });
1495
- E = c.scrollLeft;
1496
  return !0;
1497
  };
1498
- u[h] = function(a) {
1499
- q(a, function(a, b) {
1500
- var c = l() - v[a], e = F[a] - b.clientX, c = Math.abs(e) / c;
1501
- d(c, e ? 0 > e ? -1 : 1 : 0);
1502
  });
1503
- E = null;
1504
  return !0;
1505
  };
1506
- u[e] = function(a) {
1507
- var b, e;
1508
- null == E || q(a, function(a, c) {
1509
- b = F[a] - c.clientX;
1510
- e = k[a] - c.clientY;
1511
  });
1512
- if (e && Math.abs(e) > Math.abs(b)) return G = !0;
1513
- b && (G = !0, c.scrollLeft = Math.max(0, E + b));
1514
- return g(a);
1515
  };
1516
- if (!b || f) m(a), m(e), m(h), b && (c.className += " mstouch");
1517
  return {
1518
  kill: function() {
1519
- B(a);
1520
- B(e);
1521
- B(h);
1522
- y();
1523
  },
1524
  swiped: function() {
1525
- return G;
1526
  },
1527
  ms: function() {
1528
- return b;
1529
  },
1530
- snap: function(a) {
1531
- b && !f && (c.style["-ms-scroll-snap-points-x"] = "snapInterval(0px," + a + "px)",
1532
  c.style["-ms-scroll-snap-type"] = "mandatory", c.style["-ms-scroll-chaining"] = "none");
1533
  },
1534
- scroll: function(a, b, e) {
1535
- y();
1536
- var v = c.scrollLeft, m = a > v ? 1 : -1, l = Math[1 === m ? "min" : "max"], h = Math.round(16 * b * m);
1537
- return r = n.require("$48", "fps.js").loop(function(b) {
1538
- b && (v = Math.max(0, l(a, v + h)), c.scrollLeft = v, a === v && (y(), e && e(v)));
1539
  }, c);
1540
  }
1541
  };
1542
  };
1543
- f.start = function(b, c) {
1544
- return p(b, a, c, !1);
1545
  };
1546
- f.move = function(a, b) {
1547
- return p(a, e, b, !1);
1548
  };
1549
- f.end = function(a, b) {
1550
- return p(a, h, b, !1);
1551
  };
1552
- var q = f.each = function(a, c) {
1553
- if (b) (a.MSPOINTER_TYPE_TOUCH || "touch") === a.pointerType && c(0, a); else for (var e = -1, m = (a.originalEvent || a).changedTouches || []; ++e < m.length; ) c(e, m[e]);
1554
- }, l = Date.now || function() {
1555
  return new Date().getTime();
1556
  };
1557
- return f;
1558
- }({}, z, x));
1559
- n.register("$49", function(f, d, n) {
1560
- f.init = function(d) {
1561
- function g() {
1562
- e.style.top = String(-d.scrollTop) + "px";
1563
  return !0;
1564
  }
1565
- function c() {
1566
- var a = e;
1567
- a.textContent = d.value;
1568
- a.innerHTML = a.innerHTML.replace(/[ \t]/g, b).split(/(?:\n|\r\n?)/).join('<span class="eol crlf"></span>\r\n') + '<span class="eol eof"></span>';
1569
  return !0;
1570
  }
1571
- function b(a) {
1572
  return '<span class="x' + a.charCodeAt(0).toString(16) + '">' + a + "</span>";
1573
  }
1574
- var a = d.parentNode, e = a.insertBefore(n.createElement("div"), d);
1575
- k(d).on("input", c).on("scroll", g);
1576
- k(a).addClass("has-mirror");
1577
- e.className = "ta-mirror";
1578
- var h = d.offsetWidth - d.clientWidth;
1579
- 2 < h && (e.style.marginRight = String(h - 2) + "px");
1580
- c();
1581
- g();
1582
  return {
1583
  kill: function() {
1584
- k(d).off("input", c).off("scroll", g);
1585
- a.removeChild(e);
1586
- e = null;
1587
- k(a).removeClass("has-mirror");
1588
  }
1589
  };
1590
  };
1591
- return f;
1592
- }({}, z, x));
1593
- n.register("$29", function(f, d, k) {
1594
- function p(b, a) {
1595
- for (var c = 0, h = -1, q = a && d[a], l = g[b] || [], f = l.length; ++h < f; ) callback = l[h],
1596
- "function" === typeof callback && (callback(q), c++);
1597
- return c;
1598
  }
1599
- var g = {}, c;
1600
- f.load = function(b, a, c) {
1601
- function h() {
1602
- f && (clearTimeout(f), f = null);
1603
- w && (w.onreadystatechange = null, w = w = w.onload = null);
1604
- b && (delete g[b], b = null);
1605
  }
1606
- function q(a, m) {
1607
- var l = w && w.readyState;
1608
- if (m || !l || "loaded" === l || "complete" === l) m || p(b, c), h();
1609
  }
1610
- function l() {
1611
- if (0 === p(b)) throw Error('Failed to load "' + (c || b) + '"');
1612
- h();
1613
  }
1614
- if (c && d[c]) "function" === typeof a && a(d[c]); else if (null != g[b]) g[b].push(a); else {
1615
- g[b] = [ a ];
1616
- var f = setTimeout(l, 4e3), w = k.createElement("script");
1617
- w.setAttribute("src", b);
1618
- w.setAttribute("async", "true");
1619
- w.onreadystatechange = q;
1620
- w.onload = q;
1621
- w.onerror = l;
1622
- w.onabort = h;
1623
- k.getElementsByTagName("head")[0].appendChild(w);
1624
  }
1625
  };
1626
- f.stat = function(b) {
1627
- var a;
1628
- if (!(a = c)) {
1629
- for (var e, h, d = k.getElementsByTagName("script"), l = -1, g = d.length; ++l < g; ) if (a = d[l].getAttribute("src")) if (e = a.indexOf("/lib/vendor"),
1630
- -1 !== e) {
1631
- h = a.substr(0, e);
1632
  break;
1633
  }
1634
- a = c = h || "/static";
1635
  }
1636
- return a + b;
1637
  };
1638
- return f;
1639
- }({}, z, x));
1640
- n.register("$16", function(f, d, D) {
1641
  function p(a, b) {
1642
  a.setReadOnly(!1);
1643
- a.on("change", function(a, c) {
1644
- return b.val(c.getValue());
1645
  });
1646
  a.on("focus", function() {
1647
  return b.focus();
@@ -1650,27 +1653,27 @@ a.on("blur", function() {
1650
  return b.blur();
1651
  });
1652
  }
1653
- function g(a) {
1654
  a.off("change");
1655
  a.off("focus");
1656
  a.off("blur");
1657
  }
1658
- function c(a) {
1659
- g(a);
1660
  a.setReadOnly(!0);
1661
  a.setHighlightGutterLine(!1);
1662
  a.setHighlightActiveLine(!1);
1663
  }
1664
- function b(b, c) {
1665
- function e() {
1666
- this.HighlightRules = h;
1667
  }
1668
- var h = a(c), m = b.require, d = m("ace/lib/oop");
1669
- d.inherits(h, m("ace/mode/text_highlight_rules").TextHighlightRules);
1670
- d.inherits(e, m("ace/mode/text").Mode);
1671
- return new e();
1672
  }
1673
- function a(a) {
1674
  return function() {
1675
  var b = {
1676
  start: [ {
@@ -1695,7 +1698,7 @@ regex: /<(?:xliff:)?(bx|ex|x)[^\/>]*\/>/
1695
  token: "constant.language",
1696
  regex: /<\/?[:a-z]+[^>]*>/
1697
  } ]
1698
- }, c = e(a);
1699
  "icu" === a ? b = {
1700
  start: b.start.concat([ {
1701
  token: "icu-quoted",
@@ -1737,7 +1740,7 @@ regex: c
1737
  this.$rules = b;
1738
  };
1739
  }
1740
- function e(a) {
1741
  switch (a) {
1742
  case "objc":
1743
  return /%(?:\d+\$)?[-+'0# ]*\d*(?:\.\d+|\.\*(?:\d+\$)?)?(?:hh?|ll?|[qjzTL])?[sScCdDioOuUxXfFeEgGaAp%@]/;
@@ -1757,66 +1760,66 @@ return /%(?:[1-9]\d*\$)?\+?(?:0|'[^$])?-?\d*(?:\.\d+)?[b-gijostTuvxX%]/;
1757
  case "auto":
1758
  return /%(?:\d+\$|\([_A-Za-z][_A-Za-z0-9]*\))?(?:[-+0]?\d*(\.\d+)?[duxoefgaDUXOEFGA]|[@scSC%])/;
1759
 
1760
- case q:
1761
- return h || "%%";
1762
  }
1763
  }
1764
- var h, q = "auto";
1765
- f.init = function(a, e, h) {
1766
- var f, m = !1, B = h || q, y = a.parentNode, r = y.appendChild(D.createElement("div"));
1767
- k(y).addClass("has-proxy has-ace");
1768
- n.require("$29", "remote.js").load("https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.1/ace.js", function(h) {
1769
  if (r) {
1770
- if (!h) throw Error("Failed to load code editor");
1771
- f = h.edit(r);
1772
- var d = f.session, g = f.renderer;
1773
- f.$blockScrolling = Infinity;
1774
- f.setShowInvisibles(m);
1775
- f.setWrapBehavioursEnabled(!1);
1776
- f.setBehavioursEnabled(!1);
1777
- f.setHighlightActiveLine(!1);
1778
- d.setUseSoftTabs(!1);
1779
- g.setShowGutter(!0);
1780
- g.setPadding(10);
1781
- g.setScrollMargin(8);
1782
- d.setMode(b(h, B));
1783
- f.setValue(a.value, -1);
1784
- d.setUseWrapMode(!0);
1785
- e ? p(f, e) : c(f);
1786
  }
1787
  }, "ace");
1788
  return {
1789
  kill: function() {
1790
- f && (g(f), f.destroy(), f = null);
1791
- r && (y.removeChild(r), k(y).removeClass("has-proxy has-ace"), r = null);
1792
  return this;
1793
  },
1794
  disable: function() {
1795
- f && c(f);
1796
- e = null;
1797
  return this;
1798
  },
1799
  enable: function(a) {
1800
- e = a;
1801
- f && p(f, a);
1802
  return this;
1803
  },
1804
  resize: function() {
1805
- f && f.resize();
1806
  return this;
1807
  },
1808
  val: function(a) {
1809
- f && a !== f.getValue() && f.setValue(a, -1);
1810
  return this;
1811
  },
1812
  invs: function(a) {
1813
  a = a || !1;
1814
- m !== a && (m = a, f && f.setShowInvisibles(a));
1815
  return this;
1816
  },
1817
- strf: function(a) {
1818
- a = a || q;
1819
- a !== B && (B = a, f && f.session.setMode(b(d.ace, a)));
1820
  return this;
1821
  },
1822
  focus: function() {
@@ -1824,78 +1827,78 @@ return this;
1824
  }
1825
  };
1826
  };
1827
- f.strf = function(a, b) {
1828
- q = a;
1829
- h = b;
1830
- return f;
1831
  };
1832
- return f;
1833
- }({}, z, x));
1834
- n.register("$50", function(f, d, D) {
1835
- function p(a, b) {
1836
  function c() {
1837
- return b.val(a.getContent());
1838
  }
1839
  a.on("input", c);
1840
  a.on("change", c);
1841
  a.on("focus", function() {
1842
- return b.focus();
1843
  });
1844
  a.on("blur", function() {
1845
- return b.blur();
1846
  });
1847
  a.setMode("design");
1848
  }
1849
- function g(a) {
1850
  a.off("input");
1851
  a.off("change");
1852
  a.off("focus");
1853
  a.off("blur");
1854
  }
1855
- function c(a) {
1856
- g(a);
1857
  a.setMode("readonly");
1858
  }
1859
- var b = 0;
1860
- f.load = function(a) {
1861
- var b = n.require("$29", "remote.js");
1862
- b.load(b.stat("/lib/tinymce.min.js"), a, "tinymce");
1863
- return f;
1864
  };
1865
- f.init = function(a, e) {
1866
- function h(a) {
1867
- w = a;
1868
  s = "<p>" === a.substr(0, 3) && "</p>" === a.substr(-4);
1869
  return a.replace(/(<\/?)script/gi, "$1loco:script");
1870
  }
1871
- function d(a) {
1872
- l = a;
1873
  a._getContent = a.getContent;
1874
  a.getContent = function(a) {
1875
  a = this._getContent(a);
1876
  a = a.replace(/(<\/?)loco:script/gi, "$1script");
1877
  if (!s && "<p>" === a.substr(0, 3) && "</p>" === a.substr(-4)) {
1878
  var b = a.substr(3, a.length - 7);
1879
- if (b === w || -1 === b.indexOf("</p>")) a = b;
1880
  }
1881
  return a;
1882
  };
1883
  a._setContent = a.setContent;
1884
  a.setContent = function(a, b) {
1885
- return this._setContent(h(a), b);
1886
  };
1887
- e ? (p(a, e), e.reset()) : c(a);
1888
- k(y).removeClass("loading");
1889
  }
1890
- var l, A = !1, w = "", s = !1, m = a.parentNode, B = m.parentNode, y = m.appendChild(D.createElement("div")), r = B.insertBefore(D.createElement("nav"), m);
1891
- r.id = "_tb" + String(++b);
1892
  k(m).addClass("has-proxy has-mce");
1893
- k(y).addClass("mce-content-body loading").html(h(a.value));
1894
- f.load(function(a) {
1895
  if (!a) throw Error("Failed to load HTML editor");
1896
- y && a.init({
1897
  inline: !0,
1898
- target: y,
1899
  hidden_input: !1,
1900
  theme: "modern",
1901
  skin: !1,
@@ -1932,129 +1935,129 @@ extended_valid_elements: "span,b,i,u,loco:script",
1932
  entities: "38,amp,60,lt,62,gt,160,nbsp",
1933
  entity_encoding: "named",
1934
  keep_styles: !1,
1935
- init_instance_callback: d
1936
  });
1937
  });
1938
  return {
1939
- val: function(b) {
1940
- b = h(b);
1941
- null == l ? (a.value = b, k(y).html(b)) : l.getContent() !== b && l.setContent(b);
1942
- e && e.val(b);
1943
  return this;
1944
  },
1945
  kill: function() {
1946
- l && (e && e.val(l.getContent()), g(l), l.destroy(), l = null);
1947
- y && (m.removeChild(y), k(m).removeClass("has-proxy has-mce"), y = null);
1948
- r && (B.removeChild(r), r = null);
1949
  return this;
1950
  },
1951
  enable: function(a) {
1952
- e = a;
1953
- l && p(l, a);
1954
  return this;
1955
  },
1956
  disable: function() {
1957
- l && c(l);
1958
- e = null;
1959
  return this;
1960
  },
1961
  focus: function() {
1962
- l && e && l.focus();
1963
  return this;
1964
  },
1965
  invs: function(a) {
1966
  a = a || !1;
1967
- A !== a && (A = a, k(m)[a ? "addClass" : "removeClass"]("show-invs"));
1968
  return this;
1969
  }
1970
  };
1971
  };
1972
- return f;
1973
- }({}, z, x));
1974
- n.register("$46", function(f, d, D) {
1975
- function p(b) {
1976
- function a() {
1977
- f && (w.off("input", e), f = !1);
1978
- }
1979
- function e() {
1980
- var a = b.value;
1981
- a !== m && (w.trigger("changing", [ a, m ]), m = a);
1982
  }
1983
  function d() {
1984
- e();
1985
- f && B !== m && w.trigger("changed", [ m ]);
1986
  }
1987
- function g() {
1988
- c = b;
1989
- B = m;
1990
- f || (w.on("input", e), f = !0);
1991
- w.trigger("editFocus");
 
 
 
 
1992
  s.addClass("has-focus");
1993
  return !0;
1994
  }
1995
- function l() {
1996
- c === b && (c = null);
1997
- w.trigger("editBlur");
1998
  s.removeClass("has-focus");
1999
- f && (d(), a());
2000
  return !0;
2001
  }
2002
- var f = !1, w = k(b), s = k(b.parentNode), m = b.value, B;
2003
- w.on("blur", l).on("focus", g);
2004
  return {
2005
- val: function(a) {
2006
- m !== a && (b.value = a, w.triggerHandler("input"), m = a);
2007
  return !0;
2008
  },
2009
  kill: function() {
2010
- a();
2011
- w.off("blur", l).off("focus", g);
2012
  },
2013
  fire: function() {
2014
  m = null;
2015
- e();
2016
  },
2017
- ping: d,
2018
- blur: l,
2019
- focus: g,
2020
  reset: function() {
2021
- B = m = b.value;
2022
  }
2023
  };
2024
  }
2025
- function g(b) {
2026
- this.e = b;
2027
  }
2028
- var c;
2029
- f._new = function(b) {
2030
- return new g(b);
2031
  };
2032
- f.init = function(b) {
2033
- var a = new g(b);
2034
- b.disabled ? (b.removeAttribute("disabled"), a.disable()) : b.readOnly ? a.disable() : a.enable();
2035
- return a;
2036
  };
2037
- TextAreaPrototype = g.prototype;
2038
  TextAreaPrototype.destroy = function() {
2039
  this.unlisten();
2040
- var b = this.p;
2041
- b && (b.kill(), this.p = null);
2042
  this.e = null;
2043
  };
2044
- TextAreaPrototype.reload = function(b, a) {
2045
- var c = this.l;
2046
- c && !a && (this.disable(), c = null);
2047
- this.val(b || "");
2048
- a && !c && this.enable();
2049
  return this;
2050
  };
2051
- TextAreaPrototype.val = function(b) {
2052
- var a = this.e;
2053
- if (null == b) return a.value;
2054
- var c = this.l, d = this.p;
2055
- d && d.val(b);
2056
- c && c.val(b);
2057
- c || a.value === b || (a.value = b, k(a).triggerHandler("input"));
2058
  return this;
2059
  };
2060
  TextAreaPrototype.fire = function() {
@@ -2066,127 +2069,127 @@ this.l && this.l.ping();
2066
  return this;
2067
  };
2068
  TextAreaPrototype.focus = function() {
2069
- var b = this.p;
2070
- b ? b.focus() : k(this.e).focus();
2071
  };
2072
  TextAreaPrototype.focused = function() {
2073
- return c && c === this.el;
2074
  };
2075
  TextAreaPrototype.parent = function() {
2076
  return this.e.parentNode;
2077
  };
2078
- TextAreaPrototype.attr = function(b, a) {
2079
- var c = this.e;
2080
- if (1 === arguments.length) return c.getAttribute(b);
2081
- null == a ? c.removeAttribute(b) : c.setAttribute(b, a);
2082
  return this;
2083
  };
2084
  TextAreaPrototype.editable = function() {
2085
  return !!this.l;
2086
  };
2087
  TextAreaPrototype.enable = function() {
2088
- var b = this.p;
2089
  this.e.removeAttribute("readonly");
2090
  this.listen();
2091
- b && b.enable && b.enable(this.l);
2092
  return this;
2093
  };
2094
  TextAreaPrototype.disable = function() {
2095
- var b = this.p;
2096
  this.e.setAttribute("readonly", !0);
2097
  this.unlisten();
2098
- b && b.disable && b.disable();
2099
  return this;
2100
  };
2101
  TextAreaPrototype.listen = function() {
2102
- var b = this.l;
2103
- b && b.kill();
2104
  this.l = p(this.e);
2105
  return this;
2106
  };
2107
  TextAreaPrototype.unlisten = function() {
2108
- var b = this.l;
2109
- b && (b.kill(), this.l = null);
2110
  return this;
2111
  };
2112
- TextAreaPrototype.setInvs = function(b, a) {
2113
- var c = this.i || !1;
2114
- if (a || c !== b) this._i && (this._i.kill(), delete this._i), (c = this.p) ? c.invs && c.invs(b) : b && (this._i = n.require("$49", "mirror.js").init(this.e)),
2115
- this.i = b;
2116
  return this;
2117
  };
2118
  TextAreaPrototype.getInvs = function() {
2119
  return this.i || !1;
2120
  };
2121
- TextAreaPrototype.setMode = function(b) {
2122
- var a = this.p, e = this.i || !1;
2123
- b !== (this.m || "") && (this.m = b, a && a.kill(), this.p = a = "code" === b ? n.require("$16", "ace.js").init(this.e, this.l, this["%"]) : "html" === b ? n.require("$50", "mce.js").init(this.e, this.l) : null,
2124
- this.setInvs(e, !0), c && this.focus());
2125
  return this;
2126
  };
2127
- TextAreaPrototype.setStrf = function(b) {
2128
- this["%"] = b;
2129
- "code" === this.m && this.p.strf(b);
2130
  return this;
2131
  };
2132
- TextAreaPrototype.name = function(b) {
2133
- this.e.setAttribute("name", b);
2134
  return this;
2135
  };
2136
- TextAreaPrototype.placeholder = function(b) {
2137
- this.e.setAttribute("placeholder", b);
2138
  return this;
2139
  };
2140
  TextAreaPrototype.redraw = function() {
2141
- var b = this.p;
2142
- b && b.resize && b.resize();
2143
  };
2144
  TextAreaPrototype = null;
2145
- return f;
2146
- }({}, z, x));
2147
- n.register("$47", function(f, d, n) {
2148
  function p(a) {
2149
- var b = d.console;
2150
  b && b.error && b.error(a);
2151
  }
2152
- function g(a) {
2153
- var b = n.createElement("div");
2154
  a && b.setAttribute("class", a);
2155
  return b;
2156
  }
2157
- function c(a) {
2158
  return function() {
2159
  a.resize();
2160
  return this;
2161
  };
2162
  }
2163
- function b(a) {
2164
  return function(b) {
2165
- for (var c = b.target, e = c.$index; null == e && "DIV" !== c.nodeName && (c = c.parentElement); ) e = c.$index;
2166
- null != e && (b.stopImmediatePropagation(), a.select(e));
2167
  return !0;
2168
  };
2169
  }
2170
- function a(a) {
2171
  return function() {
2172
  a.redrawDirty() && a.redraw();
2173
  return !0;
2174
  };
2175
  }
2176
- function e(a) {
2177
  return function(b) {
2178
- var c;
2179
- c = b.keyCode;
2180
- if (40 === c) c = 1; else if (38 === c) c = -1; else return !0;
2181
  if (b.shiftKey || b.ctrlKey || b.metaKey || b.altKey) return !0;
2182
- a.selectNext(c);
2183
  b.stopPropagation();
2184
  b.preventDefault();
2185
  return !1;
2186
  };
2187
  }
2188
- function h(a, b, c) {
2189
- function e(a) {
2190
  p("row[" + a + "] disappeared");
2191
  return {
2192
  cellVal: function() {
@@ -2194,65 +2197,65 @@ return "";
2194
  }
2195
  };
2196
  }
2197
- return function(d) {
2198
- var h = b || 0, g = c ? -1 : 1, v = a.rows || [];
2199
- d.sort(function(a, b) {
2200
- return g * (v[a] || e(a)).cellVal(h).localeCompare((v[b] || e(b)).cellVal(h));
2201
  });
2202
  };
2203
  }
2204
- function q(a) {
2205
  this.w = a;
2206
  }
2207
- function l(a) {
2208
  this.t = a;
2209
  this.length = 0;
2210
  }
2211
- function A(a, b, c) {
2212
- var e = n.createElement("div");
2213
- e.className = c || "";
2214
- this._ = e;
2215
  this.d = b || [];
2216
  this.i = a || 0;
2217
  this.length = b.length;
2218
  }
2219
- function w(a) {
2220
  this.live = a;
2221
  this.rows = [];
2222
  }
2223
- f.create = function(a) {
2224
- return new q(a);
2225
- };
2226
- var s = q.prototype;
2227
- s.init = function(d) {
2228
- var h = this.w, l = h.id, q = h.splity(l + "-thead", l + "-tbody"), f = q[0], q = q[1], E = [], u = [], v = [], F = [];
2229
- if (d) this.ds = d, this.idxs = u, this._idxs = null; else if (!(d = this.ds)) throw Error("No datasource");
2230
- f.css.push("wg-thead");
2231
- q.css.push("wg-tbody");
2232
- d.eachCol(function(a, b, c) {
2233
- v[a] = l + "-col-" + b;
2234
- F[a] = c || b;
2235
  });
2236
- for (var N = g(), w = -1, s = v.length, p = g("wg-cols"), n = f.splitx.apply(f, v); ++w < s; ) n[w].header(F[w]),
2237
- p.appendChild(N.cloneNode(!1)).setAttribute("for", v[w]);
2238
- d.eachRow(function(a, b, c) {
2239
- E[a] = new A(a, b, c);
2240
  u[a] = a;
2241
  });
2242
- this.rows = E;
2243
- this.cols = p;
2244
  this.ww = null;
2245
- this.root = N = q.body;
2246
- this.head = f;
2247
- f.redraw = c(this);
2248
- f = q.fixed = n[0].bodyY() || 20;
2249
- h.lock().resize(f, q);
2250
- h.css.push("is-table");
2251
- h.restyle();
2252
- this.sc ? this._re_sort(s) : d.sort && d.sort(u);
2253
  this.redrawDirty();
2254
  this.render();
2255
- k(N).attr("tabindex", "-1").on("keydown", e(this)).on("mousedown", b(this)).on("scroll", a(this));
2256
  return this;
2257
  };
2258
  s.clear = function() {
@@ -2263,53 +2266,53 @@ void 0;
2263
  return this;
2264
  };
2265
  s.render = function() {
2266
- for (var a, b, c = [], e = this.rows || [], d = -1, h, g = this.idxs, v = g.length, l = this.idxr = {}, q = this.r, f = this._r, k = this.root, A = this.cols; ++d < v; ) {
2267
- 0 === d % 100 && (a = A.cloneNode(!0), b = new w(a), b.h = 2200, b.insert(k), c.push(b));
2268
- h = g[d];
2269
- l[h] = d;
2270
- a = e[h];
2271
- if (null == a) throw Error("Render error, no data at [" + h + "]");
2272
  a.page = b;
2273
  b.rows.push(a);
2274
  }
2275
  b && 100 !== b.size() && b.sleepH(22);
2276
- this.pages = c;
2277
  this.mx = this.mn = null;
2278
  this.redrawDirty();
2279
  this.redraw();
2280
- null == q ? null != f && (a = e[f]) && a.page && (delete this._r, this.select(f, !0)) : (a = e[q]) && a.page ? this.select(q, !0) : (this.deselect(),
2281
- this._r = q);
2282
  return this;
2283
  };
2284
  s.resize = function() {
2285
- var a = -1, b = this.ww || (this.ww = []), c = this.w, e = c.cells[0], d = e.body.childNodes, h = d.length, g = this.pages || [], v = g.length;
2286
- for (c.redraw.call(e); ++a < h; ) b[a] = d[a].style.width;
2287
  if (v) {
2288
- c = this.mx;
2289
- for (a = this.mn; a <= c; a++) g[a].widths(b);
2290
  this.redrawDirty() && this.redraw();
2291
  }
2292
  };
2293
  s.redrawDirty = function() {
2294
- var a = !1, b = this.root, c = b.scrollTop, b = b.clientHeight;
2295
- this.sy !== c && (a = !0, this.sy = c);
2296
  this.vh !== b && (a = !0, this.vh = b);
2297
  return a;
2298
  };
2299
  s.redraw = function() {
2300
- for (var a = 0, b = -1, c = null, e = null, d = this.ww, h = this.sy, g = this.vh, v = this.mn, l = this.mx, q = Math.max(0, h - 100), h = g + h + 100, f = this.pages || [], k = f.length; ++b < k && !(a > h); ) g = f[b],
2301
- a += g.height(), a < q || (null === c && (c = b), e = b, g.rendered || g.render(d));
2302
- if (v !== c) {
2303
- if (null !== v && c > v) for (b = v; b < c; b++) {
2304
- g = f[b];
2305
- if (!g) throw Error("Shit!");
2306
- g.rendered && g.sleep();
2307
  }
2308
- this.mn = c;
2309
  }
2310
- if (l !== e) {
2311
- if (null !== l && e < l) for (b = l; b > e; b--) g = f[b], g.rendered && g.sleep();
2312
- this.mx = e;
2313
  }
2314
  };
2315
  s.selected = function() {
@@ -2330,18 +2333,18 @@ return this.rows[a];
2330
  s.td = function(a, b) {
2331
  return this.tr(a)[b];
2332
  };
2333
- s.next = function(a, b, c) {
2334
- null == c && (c = this.r || 0);
2335
- var e = this.idxs, d = e.length, h = (this.idxr || {})[c];
2336
- for (c = h; c !== (h += a) && !(0 <= h && d > h); ) if (b && d) h = 1 === a ? -1 : d,
2337
  b = !1; else return null;
2338
- c = e[h];
2339
- return null == c || null == this.rows[c] ? (p("Bad next: [" + h + "] does not map to data row"),
2340
- null) : c;
2341
  };
2342
- s.selectNext = function(a, b, c) {
2343
  a = this.next(a, b);
2344
- null != a && this.r !== a && this.select(a, c);
2345
  return this;
2346
  };
2347
  s.deselect = function(a) {
@@ -2353,19 +2356,19 @@ s.selectRow = function(a, b) {
2353
  return this.select(this.idxs[a]);
2354
  };
2355
  s.select = function(a, b) {
2356
- var c = this.rows[a], e = c && c.page;
2357
- if (!e) return this.deselect(!1), p("Row is filtered out"), this;
2358
  this.deselect(!0);
2359
- var d, h = this.w.cells[1];
2360
- e.rendered || (d = e.top(), h.scrollY(d), this.redrawDirty() && this.redraw());
2361
- if (!c.rendered) return e.rendered || p("Failed to render page"), p("Row [" + c.i + "] not rendered"),
2362
  this;
2363
- e = c.cells();
2364
- k(e).addClass("selected");
2365
  this.r = a;
2366
- b || (d = h.scrollY(), k(this.root).focus(), d !== h.scrollY() && h.scrollY(d));
2367
- h.scrollTo(e[0], !0);
2368
- this.w.fire("wgRowSelect", [ a, c.data() ]);
2369
  return this;
2370
  };
2371
  s.unfilter = function() {
@@ -2378,19 +2381,19 @@ this.idxs = this._sort(a);
2378
  return this.clear().render();
2379
  };
2380
  s.each = function(a) {
2381
- for (var b, c = -1, e = this.rows || [], d = this.idxs || [], h = d.length; ++c < h; ) b = d[c],
2382
- a(e[b], c, b);
2383
  return this;
2384
  };
2385
  s.sortable = function(a) {
2386
- var b = this.sc || (this.sc = new l(this));
2387
  b.has(a) || b.add(a);
2388
  return this;
2389
  };
2390
  s._re_sort = function(a) {
2391
- var b = -1, c = this.sc, e = c.active;
2392
- for (this.sc = c = new l(this); ++b < a; ) c.add(b);
2393
- e && (b = this.head.indexOf(e.id), -1 === b && (b = Math.min(e.idx, a - 1)), this.sort(b, e.desc));
2394
  return this;
2395
  };
2396
  s._sort = function(a, b) {
@@ -2398,25 +2401,25 @@ b ? (this.s = b, b(a)) : (b = this.s) && b(a);
2398
  return a;
2399
  };
2400
  s.sort = function(a, b) {
2401
- this._sort(this.idxs, h(this, a, b));
2402
  this.sc.activate(a, b);
2403
  return this;
2404
  };
2405
  s = null;
2406
- s = l.prototype;
2407
  s.has = function(a) {
2408
  return null != this[a];
2409
  };
2410
  s.add = function(a) {
2411
- var b = this, c = b.t.head.cells[a];
2412
  b[a] = {
2413
  desc: null,
2414
  idx: a,
2415
- id: c.id
2416
  };
2417
  b.length++;
2418
- c.addClass("wg-sortable").on("click", function(c) {
2419
- if ("header" === c.target.nodeName.toLowerCase()) return c.stopImmediatePropagation(),
2420
  b.toggle(a), !1;
2421
  });
2422
  return b;
@@ -2426,36 +2429,36 @@ this.t.sort(a, !this[a].desc).clear().render();
2426
  return this;
2427
  };
2428
  s.activate = function(a, b) {
2429
- var c, e;
2430
- c = this.active;
2431
- var d = this[a], h = this.t.head.cells;
2432
- c && (e = h[c.idx]) && (e.removeClass(c.css), c !== d && e.restyle());
2433
- (e = h[a]) ? (d.desc = b, this.active = d, c = "wg-" + (b ? "desc" : "asc"), e.addClass(c).restyle(),
2434
- d.css = c) : this.active = null;
2435
  return this;
2436
  };
2437
  s = null;
2438
- s = A.prototype;
2439
  s.render = function(a) {
2440
- var b, c = [], e = this._, d = this.length;
2441
- if (e) {
2442
- for (this.c = c; 0 !== d--; ) b = e.cloneNode(!1), c[d] = this.update(d, b), b.$index = this.i,
2443
- a[d].appendChild(b);
2444
  this._ = null;
2445
- } else for (c = this.c; 0 !== d--; ) a[d].appendChild(c[d]);
2446
  this.rendered = !0;
2447
  return this;
2448
  };
2449
  s.update = function(a, b) {
2450
- var c = b || this.c[a] || {}, e = (this.d[a] || function() {})() || " ";
2451
- null == e.innerHTML ? c.textContent = e : c.innerHTML = e.innerHTML;
2452
- return c;
2453
  };
2454
  s.cells = function() {
2455
  return this.c || [ this._ ];
2456
  };
2457
  s.data = function() {
2458
- for (var a = -1, b = [], c = this.length; ++a < c; ) b[a] = this.cellVal(a);
2459
  return b;
2460
  };
2461
  s.destroy = function() {
@@ -2467,15 +2470,15 @@ a = this.d[a]() || "";
2467
  return String(a.textContent || a);
2468
  };
2469
  s = null;
2470
- s = w.prototype;
2471
  s.size = function() {
2472
  return this.rows.length;
2473
  };
2474
  s.insert = function(a) {
2475
- var b = this.h, c = g("wg-dead");
2476
- c.style.height = String(b) + "px";
2477
- a.appendChild(c);
2478
- return this.dead = c;
2479
  };
2480
  s.top = function() {
2481
  return (this.rendered ? this.live : this.dead).offsetTop;
@@ -2487,19 +2490,19 @@ a || p("row has zero height");
2487
  return a;
2488
  };
2489
  s.render = function(a) {
2490
- for (var b, c = -1, e = this.rows, d = e.length, h = this.dead, g = this.live, v = g.childNodes; ++c < d; ) b = e[c],
2491
  b.rendered || b.render(v);
2492
- d = a.length;
2493
- for (c = 0; c < d; c++) v[c].style.width = a[c];
2494
- h.parentNode.replaceChild(g, h);
2495
  this.rendered = !0;
2496
  this.h = null;
2497
  return this;
2498
  };
2499
  s.sleep = function() {
2500
- var a = this.height(), b = this.live, c = this.dead;
2501
- c.style.height = String(a) + "px";
2502
- b.parentNode.replaceChild(c, b);
2503
  this.rendered = !1;
2504
  this.h = a;
2505
  return this;
@@ -2512,159 +2515,159 @@ this.rendered || (this.h = a);
2512
  return this;
2513
  };
2514
  s.widths = function(a) {
2515
- for (var b = this.live.childNodes, c = a.length; 0 !== c--; ) b[c].style.width = a[c];
2516
  return this;
2517
  };
2518
  s.destroy = function() {
2519
- var a = this.rendered ? this.live : this.dead, b = this.rows, c = b.length;
2520
- for (a.parentNode.removeChild(a); 0 !== c--; ) b[c].destroy();
2521
  };
2522
  s = null;
2523
- return f;
2524
- }({}, z, x));
2525
- n.register("$38", function(f, d, D) {
2526
  function p(a, b) {
2527
- var c = a.id, e = c && m[c], d = e && e.parent();
2528
- if (!e || !d) return null;
2529
- var h = d.dir === s, c = h ? "X" : "Y", g = "page" + c, h = h ? w : A, l = h(d.el), c = b["offset" + c], q = d.el, f = q.className;
2530
- null == c && (c = b[g] - h(a));
2531
- c && (l += c);
2532
- q.className = f + " is-resizing";
2533
  return {
2534
  done: function() {
2535
- q.className = f;
2536
  },
2537
  move: function(a) {
2538
- d.resize(a[g] - l, e);
2539
  return !0;
2540
  }
2541
  };
2542
  }
2543
- function g(a, c) {
2544
- function e() {
2545
- k(D).off("mousemove", d);
2546
- y && (y.done(), y = null);
2547
  return !0;
2548
  }
2549
- function d(a) {
2550
- y ? y.move(a) : e();
2551
  return !0;
2552
  }
2553
- if (y) return !0;
2554
- y = p(a.target, a);
2555
- if (!y) return !0;
2556
- k(D).one("mouseup", e).on("mousemove", d);
2557
- return b(a);
2558
  }
2559
- function c(a, b) {
2560
- var c = b.type;
2561
- "touchmove" === c ? y && y.move(b) : "touchstart" === c ? y = p(a.target, b) : "touchend" === c && y && (y.done(),
2562
- y = null);
2563
  }
2564
- function b(a) {
2565
  a.stopPropagation();
2566
  a.preventDefault();
2567
  return !1;
2568
  }
2569
- function a(a) {
2570
- var b = B;
2571
  b && b.redraw();
2572
  a && a.redraw();
2573
- return B = a;
2574
  }
2575
- function e(b, c) {
2576
- var e = k(c).on("editFocus", function() {
2577
- e.trigger("wgFocus", [ a(b) ]);
2578
  }).on("editBlur", function() {
2579
- e.trigger("wgBlur", [ a(null) ]);
2580
  });
2581
  }
2582
- function h(a) {
2583
- var b = a.id, c = a.className;
2584
  this.id = b;
2585
  this.el = a;
2586
  this.pos = this.index = 0;
2587
- this.css = [ c || "wg-root", "wg-cell" ];
2588
- this._cn = c;
2589
  m[b] = this;
2590
  this.clear();
2591
  }
2592
- var q = n.include("$44", "html.js") || n.include("$2", "html.js", !0), l = n.require("$21", "dom.js"), A = l.top, w = l.left, s = 1, m = {}, B, y = !1;
2593
- f.init = function(a) {
2594
- var b = new h(a);
2595
  b.redraw();
2596
- n.require("$45", "touch.js").ok(function(b) {
2597
- b.dragger(a, c);
2598
  });
2599
- k(a).on("mousedown", g);
2600
  return b;
2601
  };
2602
- d = h.prototype;
2603
- d.fire = function(a, b) {
2604
- var c = k.Event(a);
2605
- c.cell = this;
2606
- k(this.el).trigger(c, b);
2607
  return this;
2608
  };
2609
- d.each = function(a) {
2610
- for (var b = -1, c = this.cells, e = c.length; ++b < e; ) a(c[b], b);
2611
  return this;
2612
  };
2613
- d.indexOf = function(a) {
2614
  return (a = m[a.id || String(a)]) && a.pid === this.id ? a.index : -1;
2615
  };
2616
- d.on = function() {
2617
  return this.$("on", arguments);
2618
  };
2619
- d.off = function() {
2620
  return this.$("off", arguments);
2621
  };
2622
- d.find = function(a) {
2623
  return k(this.el).find(a);
2624
  };
2625
- d.$ = function(a, b) {
2626
  k.fn[a].apply(k(this.el), b);
2627
  return this;
2628
  };
2629
- d.addClass = function(a) {
2630
  this.css.push(a);
2631
  return this;
2632
  };
2633
- d.removeClass = function(a) {
2634
  a = this.css.indexOf(a);
2635
  -1 !== a && this.css.splice(a, 1);
2636
  return this;
2637
  };
2638
- d.parent = function() {
2639
  return this.pid && m[this.pid];
2640
  };
2641
- d.splitx = function() {
2642
  return this._split(s, arguments);
2643
  };
2644
- d.splity = function() {
2645
  return this._split(2, arguments);
2646
  };
2647
- d._split = function(a, b) {
2648
  (this.length || this.field) && this.clear();
2649
- for (var c = -1, e, d = b.length, g = 1 / d, q = 0; ++c < d; ) {
2650
- e = l.el();
2651
- this.body.appendChild(e);
2652
- for (var f = e, k = b[c], A = k, w = 1; m[k]; ) k = A + "-" + ++w;
2653
- f.id = k;
2654
- e = new h(e);
2655
- e.index = c;
2656
- e.pid = this.id;
2657
- e._locale(this.lang, this.rtl);
2658
- e.pos = q;
2659
- q += g;
2660
- this.cells.push(e);
2661
  this.length++;
2662
  }
2663
  this.dir = a;
2664
  this.redraw();
2665
  return this.cells;
2666
  };
2667
- d.destroy = function() {
2668
  this.clear();
2669
  delete m[this.id];
2670
  var a = this.el;
@@ -2674,40 +2677,40 @@ a.className = this._cn || "";
2674
  k(a).off();
2675
  return this;
2676
  };
2677
- d.exists = function() {
2678
  return this === m[this.id];
2679
  };
2680
- d.clear = function() {
2681
- for (var a = this.el, b = this.cells, c = this.field, e = this.body, d = this.nav, h = this.length || 0; 0 !== h--; ) delete m[b[h].destroy().id];
2682
  this.cells = [];
2683
  this.length = 0;
2684
- d && (a.removeChild(d), this.nav = null);
2685
- e && (c && (q.ie() && k(e).triggerHandler("blur"), c.destroy(), this.field = null),
2686
- this.table && (this.table = null), a === e.parentNode && a.removeChild(e));
2687
- this.body = a.appendChild(l.el("", "wg-body"));
2688
  this._h = null;
2689
  return this;
2690
  };
2691
- d.resize = function(a, b) {
2692
  if (!b && (b = this.cells[1], !b)) return;
2693
- var c = b.index, e = this.cells, d = k(this.el)[this.dir === s ? "width" : "height"](), h = e[c + 1], c = e[c - 1];
2694
  pad = (b.body || b.el.firstChild).offsetTop || 0;
2695
- max = (h ? h.pos * d : d) - pad;
2696
- min = c ? c.pos * d : 0;
2697
- b.pos = Math.min(max, Math.max(min, a)) / d;
2698
  this.redraw();
2699
  return this;
2700
  };
2701
- d.distribute = function(a) {
2702
- for (var b = -1, c = 0, e, d = this.cells, h = a.length; ++b < h && (e = d[++c]); ) e.pos = Math.max(0, Math.min(1, a[b]));
2703
  this.redraw();
2704
  return this;
2705
  };
2706
- d.distribution = function() {
2707
- for (var a = [], b = 0, c = this.cells, e = c.length - 1; b < e; ) a[b] = c[++b].pos;
2708
  return a;
2709
  };
2710
- d.restyle = function() {
2711
  var a = this.css.concat();
2712
  0 === this.index ? a.push("first") : a.push("not-first");
2713
  this.dir && (a.push("wg-split"), 2 === this.dir ? a.push("wg-split-y") : a.push("wg-split-x"));
@@ -2718,219 +2721,220 @@ a = a.join(" ");
2718
  a !== this._css && (this._css = a, this.el.className = a);
2719
  return this;
2720
  };
2721
- d.redraw = function(a) {
2722
  this.restyle();
2723
- var b = this.el, c = this.body, e = this.field;
2724
- if (c) {
2725
- var d, h = b.clientWidth || 0, g = b.clientHeight || 0, l = c.offsetTop || 0, g = l > g ? 0 : g - l;
2726
- this._h !== g && (this._h = g, c.style.height = String(g) + "px", d = e);
2727
- this._w !== h && (this._w = h, d = e);
2728
- d && d.redraw();
2729
- }
2730
- c = this.length;
2731
- h = 1;
2732
- g = this.nav;
2733
- for (l = 2 === this.dir ? "height" : "width"; 0 !== c--; ) e = this.cells[c], g ? d = 1 : (e.fixed && (e.pos = e.fixed / k(b)[l]()),
2734
- d = h - e.pos, h = e.pos), e.el.style[l] = String(100 * d) + "%", e.redraw(a);
2735
  return this;
2736
  };
2737
- d.contents = function(a, b) {
2738
- var c = this.el, e = this.body;
2739
- if (null == a) return e.innerHTML;
2740
- this.length ? this.clear() : e && (c.removeChild(e), e = null);
2741
- e || (this.body = e = c.appendChild(l.el("", b || "wg-content")), this._h = null,
2742
- (c = this.lang) && this._locale(c, this.rtl, !0));
2743
- "string" === typeof a ? k(e)._html(a) : a && this.append(a);
2744
  this.redraw();
2745
  return this;
2746
  };
2747
- d.textarea = function(a, b) {
2748
  var c = this.field;
2749
  if (c) {
2750
- var d = c.editable();
2751
  c.reload(a, b);
2752
- d !== b && this.restyle();
2753
- } else this.length && this.clear(), d = l.el("textarea"), d.setAttribute("wrap", "virtual"),
2754
- d.value = a, this.contents(d), c = n.require("$46", "field.js")._new(d)[b ? "enable" : "disable"](),
2755
- e(this, d), this.field = c, this.restyle();
2756
  this.lang || this.locale("en");
2757
  return c;
2758
  };
2759
- d.locale = function(a) {
2760
- a = n.require("$36", "locale.js").cast(a);
2761
  return this._locale(String(a), a.isRTL());
2762
  };
2763
- d._locale = function(a, b, c) {
2764
- var e = this.body;
2765
- if (c || a !== this.lang) this.lang = a, e && e.setAttribute("lang", a);
2766
- if (c || b !== this.rtl) this.rtl = b, e && e.setAttribute("dir", b ? "RTL" : "LTR");
2767
  return this;
2768
  };
2769
- d.editable = function() {
2770
  var a = this.field;
2771
  if (a) return a.editable() ? a : null;
2772
- var b = this.cells, c = b.length, e = this.navigated();
2773
- if (null != e) return b[e].editable();
2774
- for (;++e < c; ) {
2775
- for (e = 0; e < c; c++) ;
2776
- if (a = b[e].editable()) return a;
2777
  }
2778
  };
2779
- d.eachTextarea = function(a) {
2780
  var b = this.field;
2781
  b ? a(b) : this.each(function(b) {
2782
  b.eachTextarea(a);
2783
  });
2784
  return this;
2785
  };
2786
- d.append = function(a) {
2787
- a && (a.nodeType ? q.init(this.body.appendChild(a)) : q.init(k(a).appendTo(this.body)));
2788
  return this;
2789
  };
2790
- d.prepend = function(a) {
2791
  var b = this.body;
2792
  if (a.nodeType) {
2793
- var c = b.firstChild;
2794
- q.init(c ? b.insertBefore(a, c) : b.appendChild(a));
2795
- } else q.init(k(a).prependTo(b));
2796
  return this;
2797
  };
2798
- d.before = function(a) {
2799
  var b = this.body;
2800
- a.nodeType ? q.init(this.el.insertBefore(a, b)) : q.init(k(a).insertBefore(b));
2801
  return this;
2802
  };
2803
- d.header = function(a, b) {
2804
  if (null == a && null == b) return this.el.getElementsByTagName("header")[0];
2805
- this.t = l.txt(a || "");
2806
- this.el.insertBefore(l.el("header", b), this.body).appendChild(this.t);
2807
  this.redraw();
2808
  return this;
2809
  };
2810
- d.title = function(a) {
2811
  var b = this.t;
2812
  if (b) return b.nodeValue = a || "", b;
2813
  this.header(a);
2814
  return this.t;
2815
  };
2816
- d.titled = function() {
2817
  var a = this.t;
2818
  return a && a.nodeValue;
2819
  };
2820
- d.bodyY = function() {
2821
- return A(this.body, this.el);
2822
  };
2823
- d.scrollY = function(a) {
2824
  if (J === a) return this.body.scrollTop;
2825
  this.body.scrollTop = a;
2826
  };
2827
- d.tabulate = function(a) {
2828
  var b = this.table;
2829
- b ? b.clear() : b = n.require("$47", "wgtable.js").create(this);
2830
  b.init(a);
2831
  return this.table = b;
2832
  };
2833
- d.lock = function() {
2834
  this.body.className += " locked";
2835
  return this;
2836
  };
2837
- d.scrollTo = function(a, b) {
2838
- var c, e = this.body;
2839
- c = e.scrollTop;
2840
- var d = A(a, e);
2841
- if (c > d) c = d; else {
2842
- var h = e.clientHeight, d = d + k(a).outerHeight();
2843
- if (h + c < d) c = d - h; else return;
2844
  }
2845
- b ? e.scrollTop = c : k(e).stop(!0).animate({
2846
- scrollTop: c
2847
  }, 250);
2848
  };
2849
- d.navigize = function(a, c) {
2850
- function e(a) {
2851
- var b = h[a], c = f[a], d = k(b.el).show();
2852
- c.addClass("active");
2853
- q = a;
2854
- m.data("idx", a);
2855
  b.fire("wgTabSelect", [ a ]);
2856
- return d;
2857
  }
2858
- var d = this, h = d.cells, g = d.nav, q, f = [];
2859
- g && d.el.removeChild(g);
2860
- var g = d.nav = d.el.insertBefore(l.el("nav", "wg-tabs"), d.body), m = k(g).on("click", function(a) {
2861
- var c = k(a.target).data("idx");
2862
- if (null == c) return !0;
2863
- if (null != q) {
2864
- var g = f[q];
2865
- k(h[q].el).hide();
2866
- g.removeClass("active");
2867
- }
2868
- e(c);
2869
- d.redraw();
2870
- return b(a);
2871
  });
2872
- null == c && (c = m.data("idx") || 0);
2873
- d.each(function(b, c) {
2874
- f[c] = k('<a href="#' + b.id + '"></a>').data("idx", c).text(a[c]).appendTo(m);
2875
- b.pos = 0;
2876
- k(b.el).hide();
2877
  });
2878
- e(h[c] ? c : 0);
2879
- d.lock();
2880
- d.redraw();
2881
- return d;
2882
  };
2883
- d.navigated = function() {
2884
  var a = this.nav;
2885
  if (a) return k(a).data("idx");
2886
  };
2887
- d = null;
2888
- return f;
2889
- }({}, z, x));
2890
- n.register("$24", function(f, d, D) {
2891
  function p(a) {
2892
  var b = [];
2893
  a && (a.saved() || b.push("po-unsaved"), a.fuzzy() ? b.push("po-fuzzy") : a.flagged() && b.push("po-flagged"),
2894
- a.translation() || b.push("po-empty"), a.comment() && b.push("po-comment"));
2895
  return b.join(" ");
2896
  }
2897
- function g(a, b, c) {
2898
  b = k(a.title(b).parentNode);
2899
- var e = b.find("span.lang");
2900
- c ? (c = n.require("$36", "locale.js").cast(c), e.length || (e = k("<span></span>").prependTo(b)),
2901
- e.attr("lang", c.lang).attr("class", c.getIcon() || "lang region region-" + (c.region || "zz").toLowerCase())) : (e.remove(),
2902
- c = "en");
2903
- a.locale(c);
2904
  return b;
2905
  }
2906
- function c(a, b, c) {
2907
  b.on("click", function(b) {
2908
- var e = a.fire(c, [ b.target ]);
2909
- e || b.preventDefault();
2910
- return e;
2911
  });
2912
  }
2913
- function b() {
2914
  this.dirty = 0;
2915
  }
2916
- n.require("$3", "number.js");
2917
- var a = "poUpdate", e = "changing", h = "changed", q = 0, l = 1, A = 2, w = 3, s = 4, m = 5, B, y, r = n.require("$35", "string.js").html, z = n.require("$6", "string.js").sprintf;
2918
- f.extend = function(a) {
2919
- return a.prototype = new b();
2920
  };
2921
- f.localise = function(a) {
2922
- y = a;
2923
- return f;
2924
  };
2925
- var x = function() {
2926
- var a = D.createElement("p"), b = /(src|href|on[a-z]+)\s*=/gi;
2927
- return function(c) {
2928
- a.innerHTML = c.replace(b, "data-x-loco-$1=");
2929
- var e = a.textContent.trim();
2930
- return e ? e.replace("data-x-loco-", "") : c.trim();
2931
  };
2932
- }(), u = b.prototype = n.require("$37", "abstract.js").init([ "getListColumns", "getListHeadings", "getListEntry" ], [ "editable", "t" ]);
2933
  u.init = function() {
 
2934
  this.localise();
2935
  this.editable = {
2936
  source: !0,
@@ -2940,41 +2944,44 @@ this.mode = "";
2940
  this.html = !1;
2941
  return this;
2942
  };
 
 
 
2943
  u.localise = function(a) {
2944
- a || (a = y || n.require("$1", "t.js").init());
2945
  var b = [];
2946
- b[q] = a._x("Source text", "Editor") + ":";
2947
- b[w] = a._x("%s translation", "Editor") + ":";
2948
  b[s] = a._x("Context", "Editor") + ":";
2949
  b[m] = a._x("Comments", "Editor") + ":";
2950
- b[l] = a._x("Single", "Editor") + ":";
2951
- b[A] = a._x("Plural", "Editor") + ":";
2952
  b[6] = a._x("Untranslated", "Editor");
2953
  b[7] = a._x("Translated", "Editor");
2954
  b[8] = a._x("Toggle Fuzzy", "Editor");
2955
  b[9] = a._x("Suggest translation", "Editor");
2956
  this.labels = b;
2957
- this.t = a;
2958
  return this;
2959
  };
2960
  u.setRootCell = function(a) {
2961
  function b(a) {
2962
- c.redraw(!0, a);
2963
  return !0;
2964
  }
2965
- var c = n.require("$38", "wingrid.js").init(a);
2966
- k(d).on("resize", b);
2967
  this.redraw = b;
2968
  k(a).on("wgFocus wgBlur", function(a, b) {
2969
  a.stopPropagation();
2970
- B = b;
2971
  });
2972
  this.destroy = function() {
2973
- c.destroy();
2974
- k(d).off("resize", b);
2975
  };
2976
  this.rootDiv = a;
2977
- return c;
2978
  };
2979
  u.$ = function() {
2980
  return k(this.rootDiv);
@@ -2982,11 +2989,11 @@ return k(this.rootDiv);
2982
  u.setListCell = function(a) {
2983
  var b = this;
2984
  b.listCell = a;
2985
- a.on("wgRowSelect", function(a, c) {
2986
- b.loadMessage(b.po.row(c));
2987
  return !0;
2988
- }).on("wgRowDeselect", function(a, c, e) {
2989
- e || b.loadNothing();
2990
  return !0;
2991
  });
2992
  };
@@ -2996,17 +3003,17 @@ this.sourceCell = a;
2996
  u.setTargetCell = function(a) {
2997
  this.targetCell = a;
2998
  };
2999
- u.next = function(a, b, c) {
3000
- for (var e = this.listTable, d = e.selected(), h = d, g, l = this.po; null != (d = e.next(a, c, d)); ) {
3001
- if (h === d) {
3002
- d = null;
3003
  break;
3004
  }
3005
- if (b && (g = l.row(d), g.translated(0))) continue;
3006
  break;
3007
  }
3008
- null != d && e.select(d, !0);
3009
- return d;
3010
  };
3011
  u.current = function(a) {
3012
  var b = this.active;
@@ -3034,42 +3041,42 @@ a && (this.dict = a, this.po && this.rebuildSearch());
3034
  return this.dict && !0;
3035
  };
3036
  u.rebuildSearch = function() {
3037
- var a = -1, b = this.po.rows, c = b.length, e = this.dict;
3038
- for (e.clear(); ++a < c; ) e.add(a, b[a].toText());
3039
  };
3040
  u.filtered = function() {
3041
  return this.lastSearch || "";
3042
  };
3043
  u.filter = function(a, b) {
3044
- var c, e = this.listTable, d = this.lastFound, h = this.lastSearch;
3045
  if (a) {
3046
- if (h === a) return d || 0;
3047
- if (h && !d && 0 === a.indexOf(h)) return 0;
3048
- c = this.dict.find(a);
3049
- }
3050
- this.lastSearch = h = a;
3051
- this.lastFound = d = c ? c.length : this.po.length;
3052
- c ? e.filter(c) : e.unfilter();
3053
- b || this.fire("poFilter", [ h, d ]);
3054
- return d;
3055
  };
3056
  u.countFiltered = function() {
3057
  return this.lastSearch ? this.lastFound : this.po.length;
3058
  };
3059
  u.unsave = function(a, b) {
3060
- var c = !1;
3061
  if (a) {
3062
- if (c = a.saved(b)) this.dirty++, a.unsave(b), this.fire("poUnsaved", [ a, b ]);
3063
  this.markUnsaved(a);
3064
  }
3065
- return c;
3066
  };
3067
  u.markUnsaved = function(a) {
3068
  var b = this.po.indexOf(a);
3069
  if ((b = this.listTable.tr(b)) && b.length) {
3070
- var c = b[0].className;
3071
- a = c.replace(/(?:^| +)po-[a-z]+/g, "") + " " + p(a);
3072
- a !== c && k(b).attr("class", a);
3073
  }
3074
  };
3075
  u.save = function(a) {
@@ -3077,15 +3084,15 @@ var b = this.po;
3077
  if (this.dirty || a) b.each(function(a, b) {
3078
  b.save();
3079
  }), this.listCell.find("div.po-unsaved").removeClass("po-unsaved"), this.dirty = 0,
3080
- this.fire("poSave");
3081
  return b;
3082
  };
3083
  u.fire = function(a, b) {
3084
- var c = this.handle;
3085
- if (c && c[a] && (c = c[a].apply(this, b || []), !1 === c)) return !1;
3086
- c = k.Event(a);
3087
- this.$().trigger(c, b);
3088
- return !c.isDefaultPrevented();
3089
  };
3090
  u.on = function(a, b) {
3091
  this.$().on(a, b);
@@ -3095,30 +3102,31 @@ u.getSorter = function() {
3095
  return null;
3096
  };
3097
  u.reload = function() {
3098
- var a = this, b, c = a.listCell, e = a.listTable, d = a.po, h = d && d.locale(), g = h && h.isRTL(), l = d && d.length || 0;
3099
- if (!d || !d.row) return c && c.clear().header("Error").contents("Invalid messages list"),
3100
  !1;
3101
- a.targetLocale = h;
3102
- a.lastSearch && (a.lastSearch = "", a.lastFound = l, a.fire("poFilter", [ "", l ]));
3103
- e && (b = e.thead().distribution());
3104
- a.listTable = e = c.tabulate({
3105
  eachCol: function(b) {
3106
- var c, e, d = a.getListColumns(), h = a.getListHeadings();
3107
- for (e in d) c = d[e], b(c, e, h[c]);
3108
  },
3109
  eachRow: function(b) {
3110
- d.each(function(c, e) {
3111
- b(e.idx, a.getListEntry(e), p(e));
 
3112
  });
3113
  },
3114
  sort: a.getSorter()
3115
  });
3116
- var q, c = a.getListColumns();
3117
- for (q in c) e.sortable(c[q]);
3118
- b && e.thead().distribute(b);
3119
- e.tbody().$(g ? "addClass" : "removeClass", [ "is-rtl" ]);
3120
- a.fire("poLoad");
3121
- return !!l;
3122
  };
3123
  u.load = function(a, b) {
3124
  this.po = a;
@@ -3126,174 +3134,181 @@ this.dict && this.rebuildSearch();
3126
  this.reload() && (-1 !== b ? this.listTable.selectRow(b || 0) : this.active && this.unloadActive());
3127
  };
3128
  u.pasteMessage = function(a) {
3129
- var b, c = 0;
 
3130
  this.active === a && ((b = this.sourceCell) && b.eachTextarea(function(b) {
3131
- b.val(a.source(null, c++));
3132
  }), (b = this.contextCell) && b.eachTextarea(function(b) {
3133
  b.val(a.context());
3134
- }), b = this.targetCell) && (c = 0, b.eachTextarea(function(b) {
3135
- b.val(a.translation(c++));
3136
  }));
3137
  this.updateListCell(a, "source");
3138
  this.updateListCell(a, "target");
3139
  return this;
3140
  };
3141
  u.reloadMessage = function(a) {
3142
- var b = this.sourceCell, c = this.targetCell, e;
3143
  this.pasteMessage(a);
3144
  b && this.setSrcMeta(a, b) && b.redraw();
3145
- c && (e = c.navigated() || 0, e = this.setTrgMeta(a, e, c), !b && this.setSrcMeta(a, c) && (e = !0),
3146
- e && c.redraw());
3147
  return this;
3148
  };
3149
  u.setStatus = function() {
3150
  return null;
3151
  };
3152
  u.setSrcMeta = function(a, b) {
3153
- var e = [], d, h = !1, g = this.$smeta, l = this.labels, q = [], f = a.tags(), m = f && f.length;
3154
- if (d = a.context()) q.push("<span>" + r(l[s]) + "</span>"), q.push("<mark>" + r(d) + "</mark>");
3155
- if (m && this.getTag) for (q.push("<span>Tagged:</span>"); 0 <= --m; ) (d = this.getTag(f[m])) && q.push('<mark class="tag">' + r(d.mod_name) + "</mark>");
3156
- q.length && e.push(q.join(" "));
3157
- if (this.getMono() && (d = a.refs()) && (f = d.split(/\s/), m = f.length)) {
3158
- for (q = []; 0 <= --m; ) d = f[m], q.push("<code>" + r(d) + "</code>");
3159
- e.push('<p class="has-icon icon-file">' + q.join(" ") + "</p>");
3160
- }
3161
- (d = a.notes()) && e.push('<p class="has-icon icon-info">' + r(d, !0) + "</p>");
3162
- e.length ? (g || (g = b.find("div.meta"), g.length || (g = k('<div class="meta"></div>').insertAfter(b.header())),
3163
- c(this, g, "poMeta"), this.$smeta = g), g.html(e.join("\n")).show(), h = !0) : g && g.text() && (g.text("").hide(),
3164
- h = !0);
3165
- return h;
3166
  };
3167
- u.setTrgMeta = function(a, b, c) {
3168
- var e = [], d = !1, h = this.$tmeta;
3169
- b = (a = a.errors(b)) && a.length;
3170
- var g;
3171
- if (b) for (g = 0; g < b; g++) e.push('<p class="has-icon icon-warn">' + r(a[g], !0) + ".</p>");
3172
- e.length ? (h || (h = c.find("div.meta"), h.length || (h = k('<div class="meta"></div>').insertAfter(c.header())),
3173
- this.$tmeta = h), h.html(e.join("\n")).show(), d = !0) : h && h.text() && (h.text("").hide(),
3174
- d = !0);
3175
- return d;
 
 
 
3176
  };
3177
- u.loadMessage = function(b) {
3178
- function c(a, b) {
3179
- var e = b ? a.split(" ") : a.split(" ", 1);
3180
- a = e[0];
3181
- "=" === a.charAt(0) && (a = a.substr(1), a = [ "zero", "one", "two" ][Number(a)] || a);
3182
- e[0] = a.charAt(0).toUpperCase() + a.substr(1).toLowerCase();
3183
- return e.join(" ");
3184
- }
3185
- function d(a, e) {
3186
- var h = J, k = L[q];
3187
- a.off();
3188
- a.titled() !== k && g(a, k, e || "en");
3189
- k = !1;
3190
- r.setSrcMeta(b, a) && (k = !0);
3191
- if (b.plural()) {
3192
- var k = -1, m = [], w = [], s = a.id + "-", p = b.sourceForms() || e && e.plurals || [ "One", "Other" ], n = p.length;
3193
- if (2 !== n || "=" === p[0].charAt(0) && "=1" !== p[0]) for (;++k < n; ) m[k] = s + String(k),
3194
- w[k] = c(p[k]) + ":"; else m = [ s + "-0", s + "-1" ], w = [ L[l], L[A] ];
3195
- a.splity.apply(a, m);
3196
- a.each(function(a, c) {
3197
- a.header(w[c]).textarea(b.source(null, c), h).setStrf(C).setMode(y).setInvs(x);
 
 
3198
  });
3199
- a.lock();
3200
- h && a.each(function(a, b) {
3201
- f(a, b);
3202
  });
3203
- } else k && a.redraw(), a.textarea(b.source(), h).setStrf(C).setMode(y).setInvs(x),
3204
- h && f(a, 0);
3205
- }
3206
- function f(c, d) {
3207
- c.on(e, function(a, c) {
3208
- b.source(c, d);
3209
- 0 === d && r.updateListCell(b, "source");
3210
- r.unsave(b, d);
3211
- }).on(h, function() {
3212
- 0 === d && r.po.reIndex(b);
3213
  r.dict && r.rebuildSearch();
3214
- r.fire(a, [ b ]);
3215
  });
3216
  }
3217
- function k(a, e, d) {
3218
- M && a.eachTextarea(function(a) {
3219
  a.ping();
3220
  });
3221
- a.off();
3222
- var h = e.isKnown() && e.label || "Target", h = z(L[w], h);
3223
- a.titled() !== h && g(a, h, e);
3224
- h = !1;
3225
- !this.sourceCell && r.setSrcMeta(b, a) && (h = !0);
3226
- r.setTrgMeta(b, d, a) && (h = !0);
3227
- r.setStatus(b, d);
3228
- if (1 !== e.nplurals && b.pluralized()) {
3229
- var q = [], l = [], f = a.id + "-", m = b.targetForms() || e.plurals || [ "One", "Other" ], h = m.length, A = function(a) {
3230
- var b = m[a];
3231
- l.push(b ? c(b, !0) : "Form " + a);
3232
- q.push(f + String(a));
3233
- };
3234
- for (b.each(A); (e = q.length) < h; ) A(e);
3235
- a.splitx.apply(a, q);
3236
- a.each(function(a, c) {
3237
- var e = M && !b.disabled(c);
3238
- a.textarea(b.translation(c), e).setStrf(C).setMode(y).setInvs(x);
3239
- M && p(a, c);
3240
  });
3241
- a.navigize(l, d || null).on("wgTabSelect", function(c, e) {
3242
- var d = M && c.cell.editable();
3243
- d && d.focus();
3244
- r.setTrgMeta(b, e, a);
3245
- r.setStatus(b, e);
3246
- r.fire("poTab", [ e ]);
3247
  });
3248
- } else h && a.redraw(), a.textarea(b.translation(), M && !b.disabled(0)).setStrf(C).setMode(y).setInvs(x),
3249
- M && p(a, 0);
3250
- }
3251
- function p(c, d) {
3252
- c.on(e, function(a, c, e) {
3253
- b.translate(c, d);
3254
- 0 === d && r.updateListCell(b, "target");
3255
- b.fuzzy(d) ? r.fuzzy(!1, b, d) : r.unsave(b, d);
3256
- "" === c ? (r.fire("poEmpty", [ !0, b, d ]), r.setStatus(b, d)) : "" === e && (r.fire("poEmpty", [ !1, b, d ]),
3257
- r.setStatus(b, d));
3258
- }).on(h, function() {
 
 
3259
  r.dict && r.rebuildSearch();
3260
- r.fire(a, [ b ]);
3261
  });
3262
  }
3263
- function n(c) {
3264
  c.off();
3265
- var d = L[s];
3266
- c.titled() !== d && (g(c, d), r.setStatus(null));
3267
- c.textarea(b.context(), !0).setMode(y).setInvs(x);
3268
- X && c.on(e, function(a, c) {
3269
- b.context(c);
3270
- r.updateListCell(b, "source");
3271
- r.unsave(b, O);
3272
- }).on(h, function() {
3273
- r.po.reIndex(b);
3274
  r.dict && r.rebuildSearch();
3275
- r.fire(a, [ b ]);
3276
  });
3277
  }
3278
- function u(a) {
3279
  var c = L[m];
3280
- a.titled() !== c && g(a, c);
3281
- a.off().on(e, function(a, c) {
3282
- b.comment(c);
3283
- r.fire("poComment", [ b, c ]);
3284
- r.unsave(b, O);
3285
- }).textarea(b.comment(), !0);
3286
- }
3287
- var r = this, y = r.mode, D = b.isHTML(), x = r.inv || !1, E = this.fmt || null, C = b.format() || null, I = b.is(r.active), O = 0, T = r.sourceCell, S = r.targetCell, U = r.contextCell, V = r.commentCell, M = r.editable.target, J = r.editable.source, X = r.editable.context, P = B, Y = r.sourceLocale, W = r.targetLocale, L = r.labels;
3288
- r.html !== D && (r.html = D, "code" !== r.mode && (y = D ? "html" : "", r.setMode(y)));
3289
- r.active = b;
3290
- T && d(T, Y);
3291
- U && n(U);
3292
- S && W && (O = S.navigated() || 0, k(S, W, O));
3293
- V && u(V);
3294
- P && (P.exists() || (P = P.parent()), (D = P.editable()) && D.focus());
3295
- E !== C && (this.fmt = C);
3296
- I || r.fire("poSelected", [ b, O ]);
3297
  };
3298
  u.unloadActive = function() {
3299
  function a(b) {
@@ -3312,58 +3327,58 @@ this.active && (this.fire("poDeselected", [ this.active ]), this.active = null);
3312
  return this;
3313
  };
3314
  u.loadNothing = function() {
3315
- var a, b = this.t, c = this.mode || "", e = this.inv || !1, d = this.fmt;
3316
  this.unloadActive();
3317
  this.setStatus(null);
3318
  (a = this.commentCell) && a.textarea("", !1);
3319
- if (a = this.sourceCell) a.textarea("", !1).setStrf(d).setMode(c).setInvs(e), a.title(b._x("Source text not loaded", "Editor") + ":");
3320
- if (a = this.contextCell) a.textarea("", !1).setMode(c).setInvs(e), a.title(b._x("Context not loaded", "Editor") + ":");
3321
- if (a = this.targetCell) a.textarea("", !1).setStrf(d).setMode(c).setInvs(e), a.title(b._x("Translation not loaded", "Editor") + ":");
3322
  this.fire("poSelected", [ null ]);
3323
  };
3324
  u.updateListCell = function(a, b) {
3325
- var c = this.getListColumns()[b], e = this.po.indexOf(a);
3326
- (e = this.listTable.row(e)) && e.rendered && e.update(c);
3327
  };
3328
  u.cellText = function(a) {
3329
- return (a = -1 !== a.indexOf("<") || -1 !== a.indexOf("&") ? x(a) : a.trim()) || " ";
3330
  };
3331
- u.fuzzy = function(a, b, c) {
3332
  b = b || this.active;
3333
- var e = b.fuzzy(c);
3334
- !0 !== a || e ? !1 === a && e && this.flag(0, b, c) && this.fire("poFuzzy", [ b, !1, c ]) : this.flag(4, b, c) && this.fire("poFuzzy", [ b, !0, c ]);
3335
- return e;
3336
  };
3337
- u.flag = function(b, c, e) {
3338
- if (!c) {
3339
- c = this.active;
3340
- e = this.getTargetOffset();
3341
- if (null == e) return null;
3342
- e && c.targetForms() && (e = 0);
3343
- }
3344
- var d = c.flagged(e);
3345
- if (null == b) return d;
3346
- if (d === b || b && !c.translated(e) || !this.fire("poFlag", [ b, d, c, e ])) return !1;
3347
- c.flag(b, e);
3348
- this.fire(a, [ c ]) && this.unsave(c, e);
3349
- this.setStatus(c, e);
3350
  return !0;
3351
  };
3352
- u.add = function(b, c) {
3353
- var e, d = this.po.get(b, c);
3354
- d ? e = this.po.indexOf(d) : (e = this.po.length, d = this.po.add(b, c), this.load(this.po, -1),
3355
- this.fire("poAdd", [ d ]), this.fire(a, [ d ]));
3356
  this.lastSearch && this.filter("");
3357
- this.listTable.select(e);
3358
- return d;
3359
  };
3360
- u.del = function(b) {
3361
- if (b = b || this.active) {
3362
- var c = this.lastSearch, e = this.po.del(b);
3363
- null != e && (this.unsave(b), this.fire("poDel", [ b ]), this.fire(a, [ b ]), this.reload(),
3364
- this.dict && this.rebuildSearch(), this.active && this.active.equals(b) && this.unloadActive(),
3365
- this.po.length && (c && this.filter(c), this.active || (e = Math.min(e, this.po.length - 1),
3366
- this.listTable.select(e))));
3367
  }
3368
  };
3369
  u.setMono = function(a) {
@@ -3375,8 +3390,8 @@ this.mode = a;
3375
  this.callTextareas(function(b) {
3376
  b.setMode(a);
3377
  });
3378
- var b = this.active, c = this.sourceCell;
3379
- b && b.refs() && c && this.setSrcMeta(b, c) && c.redraw();
3380
  }
3381
  return this;
3382
  };
@@ -3404,10 +3419,13 @@ var a = this.getTargetEditable();
3404
  a && a.focus();
3405
  return this;
3406
  };
 
 
 
3407
  u = null;
3408
- return f;
3409
- }({}, z, x));
3410
- n.register("$13", function(f, d, D) {
3411
  function p() {
3412
  this.init()._validate();
3413
  this.sourceLocale = {
@@ -3416,78 +3434,94 @@ label: "English",
3416
  plurals: [ "One", "Other" ]
3417
  };
3418
  }
3419
- function g(a) {
3420
  a = k('<button type="button" class="button button-small icon icon-' + a + ' hastip"></button>');
3421
- n.require("$12", "tooltip.js").init(a);
3422
  return a;
3423
  }
3424
- function c(a) {
3425
- return g("cloud").attr("title", a.labels[8] + " (Ctrl-U)").on("click", function(b) {
3426
  b.preventDefault();
3427
  a.focus().fuzzy(!a.fuzzy());
3428
  });
3429
  }
3430
- function b(a) {
3431
- return g("robot").attr("title", a.labels[9] + " (Ctrl-J)").on("click", function(b) {
3432
  b.preventDefault();
3433
  a.fire("poHint");
3434
  });
3435
  }
3436
- d = n.require("$24", "base.js");
3437
- f.init = function(a) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3438
  var b = new p();
3439
  a = b.setRootCell(a);
3440
- var c = a.splity("po-list", "po-edit"), d = c[0], g = c[1], c = g.splitx("po-trans", "po-comment"), f = c[0], k = c[1].header("Loading.."), c = f.splity("po-source", "po-target"), f = c[0].header("Loading.."), c = c[1].header("Loading..");
3441
  a.distribute([ .34 ]);
3442
  g.distribute([ .8 ]);
3443
- b.setListCell(d);
3444
- b.setSourceCell(f);
3445
- b.setTargetCell(c);
3446
- b.commentCell = k;
3447
  b.editable.source = !1;
3448
  return b;
3449
  };
3450
- d = p.prototype = d.extend(p);
3451
- d.getListHeadings = function() {
3452
- var a = this.t || {
3453
- _x: function(a) {
3454
- return a;
3455
- }
3456
- }, b = [ a._x("Source text", "Editor") ];
3457
  this.targetLocale && (b[1] = a._x("Translation", "Editor"));
3458
  return b;
3459
  };
3460
- d.getListColumns = function() {
3461
  var a = {
3462
  source: 0
3463
  };
3464
  this.targetLocale && (a.target = 1);
3465
  return a;
3466
  };
3467
- d.getListEntry = function(a) {
3468
- var b = this.cellText, c = [ function() {
3469
- var c, d = b(a.source() || ""), h = a.context();
3470
- return h ? (c = D.createElement("p"), c.appendChild(D.createElement("mark")).innerText = h,
3471
- c.appendChild(D.createTextNode(" " + d)), c) : d;
3472
  } ];
3473
- this.targetLocale && (c[1] = function() {
3474
  return b(a.translation() || "");
3475
  });
3476
- return c;
3477
  };
3478
- d.stats = function() {
3479
- var a = this.po, b = a.length, c = 0, d = 0, g = 0;
3480
  a.each(function(a, b) {
3481
- b.fuzzy() ? g++ : b.translated() ? c++ : d++;
3482
  });
3483
  return {
3484
  t: b,
3485
- p: c.percent(b) + "%",
3486
  f: g,
3487
- u: d
3488
  };
3489
  };
3490
- d.unlock = function() {
3491
  var a = this.targetLocale;
3492
  this._unlocked || (this.editable = {
3493
  source: !0,
@@ -3497,7 +3531,7 @@ target: !1
3497
  a && (this._unlocked = a, delete this.targetLocale, this.reload(), this.fire("poLock", [ !1 ])),
3498
  this.active && this.loadMessage(this.active));
3499
  };
3500
- d.lock = function() {
3501
  var a = this._unlocked;
3502
  a && (this.targetLocale = a, delete this._unlocked, this.po && this.po.lock(a),
3503
  this.editable = {
@@ -3507,37 +3541,65 @@ target: !0
3507
  }, this.targetCell = this.contextCell, delete this.contextCell, this.reload(), this.fire("poLock", [ !0, a ]),
3508
  this.active && this.loadMessage(this.active));
3509
  };
3510
- d.locked = function() {
3511
  return !this._unlocked;
3512
  };
3513
- d.setStatus = function(a) {
3514
- var e = this.$tnav;
3515
- if (null == a) e && (e.remove(), this.$tnav = null); else {
3516
- e || (this.$tnav = e = k("<nav></nav>").append(c(this)).append(b(this)).appendTo(this.targetCell.header()));
3517
- var d = [];
3518
- a.translated() ? a.fuzzy() && d.push("po-fuzzy") : d.push("po-empty");
3519
- e.attr("class", d.join(" "));
3520
  }
3521
  };
3522
- d.getSorter = function() {
3523
- function a(a, c) {
3524
- var d = a.weight(), h = c.weight();
3525
- return d === h ? b(a, c) : d > h ? -1 : 1;
3526
  }
3527
- function b(a, c) {
3528
- return a.hash().localeCompare(c.hash());
3529
  }
3530
- var c = this;
3531
- return function(d) {
3532
- var g = c.po, f = c.locked() ? a : b;
3533
- d.sort(function(a, b) {
3534
- return f(g.row(a), g.row(b));
3535
  });
3536
  };
3537
  };
3538
- return f;
3539
- }({}, z, x));
3540
- n.register("$14", function(f, d, n) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3541
  var p = {
3542
  copy: 66,
3543
  clear: 75,
@@ -3548,449 +3610,463 @@ prev: 38,
3548
  enter: 13,
3549
  invis: 73,
3550
  hint: 74
3551
- }, g = {
3552
  38: !0,
3553
  40: !0,
3554
  73: !0
3555
- }, c = {
3556
- 66: function(b, a) {
3557
- var c = a.current();
3558
- c && (c.normalize(), a.focus().pasteMessage(c));
3559
  },
3560
- 75: function(b, a) {
3561
- var c = a.current();
3562
- c && (c.untranslate(), a.focus().pasteMessage(c));
3563
  },
3564
- 85: function(b, a) {
3565
- a.focus().fuzzy(!a.fuzzy());
3566
  },
3567
- 13: function(b, a) {
3568
- a.getFirstEditable() && a.next(1, !0, !0);
3569
  },
3570
- 40: function(b, a) {
3571
- var c = b.shiftKey;
3572
- a.next(1, c, c);
3573
  },
3574
- 38: function(b, a) {
3575
- var c = b.shiftKey;
3576
- a.next(-1, c, c);
3577
  },
3578
- 73: function(b, a) {
3579
- if (!b.shiftKey) return !1;
3580
- a.setInvs(!a.getInvs());
3581
- }
3582
- };
3583
- f.init = function(b, a) {
3584
- function e(a) {
3585
- if (a.isDefaultPrevented() || !a.metaKey && !a.ctrlKey) return !0;
3586
- var e = a.which;
3587
- if (!h[e]) return !0;
3588
- var d = c[e];
3589
- if (!d) throw Error("command undefined #" + e);
3590
- if (a.altKey || a.shiftKey && !g[e] || !1 === d(a, b)) return !0;
3591
- a.stopPropagation();
3592
- a.preventDefault();
3593
  return !1;
3594
  }
3595
- var h = {};
3596
- k(a || d).on("keydown", e);
3597
  return {
3598
  add: function(a, b) {
3599
- c[p[a]] = b;
3600
  return this;
3601
  },
3602
  enable: function() {
3603
  var a, b;
3604
- for (b in arguments) a = p[arguments[b]], h[a] = !0;
3605
  return this;
3606
  },
3607
  disable: function() {
3608
- k(a || d).off("keydown", e);
3609
- b = a = h = null;
3610
  }
3611
  };
3612
  };
3613
- return f;
3614
- }({}, z, x));
3615
- n.register("$25", function(f, d, k) {
3616
  function p() {
3617
  this.reIndex([]);
3618
  }
3619
- f.init = function() {
3620
  return new p();
3621
  };
3622
- d = p.prototype;
3623
- d.reIndex = function(d) {
3624
- for (var c = {}, b = -1, a = d.length; ++b < a; ) c[d[b]] = b;
3625
- this.keys = d;
3626
- this.length = b;
3627
- this.ords = c;
3628
- };
3629
- d.key = function(d, c) {
3630
- if (null == c) return this.keys[d];
3631
- var b = this.keys[d], a = this.ords[c];
3632
- if (c !== b) {
3633
- if (null != a) throw Error("Clash with item at [" + a + "]");
3634
- this.keys[d] = c;
3635
- delete this.ords[b];
3636
- this.ords[c] = d;
3637
  }
3638
- return d;
3639
  };
3640
- d.indexOf = function(d) {
3641
- d = this.ords[d];
3642
- return null == d ? -1 : d;
3643
  };
3644
- d.add = function(d, c) {
3645
- var b = this.ords[d];
3646
- null == b && (this.keys[this.length] = d, b = this.ords[d] = this.length++);
3647
- this[b] = c;
3648
- return b;
3649
  };
3650
- d.get = function(d) {
3651
- return this[this.ords[d]];
3652
  };
3653
- d.has = function(d) {
3654
- return null != this.ords[d];
3655
  };
3656
- d.del = function(d) {
3657
- this.cut(this.ords[d], 1);
3658
  };
3659
- d.cut = function(d, c) {
3660
- c = c || 1;
3661
- var b = [].splice.call(this, d, c);
3662
- this.keys.splice(d, c);
3663
  this.reIndex(this.keys);
3664
- return b;
3665
  };
3666
- d.each = function(d) {
3667
- for (var c = -1, b = this.keys, a = this.length; ++c < a; ) d(b[c], this[c], c);
3668
  return this;
3669
  };
3670
- d.sort = function(d) {
3671
- for (var c = -1, b = this.length, a, e = this.keys, h = this.ords, f = []; ++c < b; ) f[c] = [ this[c], e[c] ];
3672
- f.sort(function(a, b) {
3673
- return d(a[0], b[0]);
3674
  });
3675
- for (c = 0; c < b; c++) a = f[c], this[c] = a[0], a = a[1], e[c] = a, h[a] = c;
3676
  return this;
3677
  };
3678
- d.join = function(d) {
3679
- return [].join.call(this, d);
3680
  };
3681
- d = null;
3682
- return f;
3683
- }({}, z, x));
3684
- n.register("$26", function(f, d, k) {
3685
- function p(d, c) {
3686
- var b = RegExp("^.{0," + (d - 1) + "}[" + c + "]"), a = RegExp("^[^" + c + "]+");
3687
- return function(c, h) {
3688
- for (var f = c.length, l; f > d; ) {
3689
- l = b.exec(c) || a.exec(c);
3690
- if (null == l) break;
3691
- l = l[0];
3692
- h.push(l);
3693
- l = l.length;
3694
- f -= l;
3695
- c = c.substr(l);
3696
- }
3697
- 0 !== f && h.push(c);
3698
- return h;
3699
  };
3700
  }
3701
- f.create = function(d) {
3702
- function c(a) {
3703
- return l[a] || "\\" + a;
3704
  }
3705
- var b, a, e = /(?:\r\n|[\r\n\v\f\u2028\u2029])/g, h = /[ \r\n]+/g, f = /[\t\v\f\x07\x08\\\"]/g, l = {
3706
  "\t": "\\t",
3707
  "\v": "\\v",
3708
  "\f": "\\f",
3709
  "": "\\a",
3710
  "\b": "\\b"
3711
  };
3712
- if (null == d || isNaN(d = Number(d))) d = 79;
3713
- 0 < d && (b = p(d - 3, " "), a = p(d - 2, "-– \\.,:;\\?!\\)\\]\\}\\>"));
3714
  return {
3715
- pair: function(b, h) {
3716
- if (!h) return b + ' ""';
3717
- h = h.replace(f, c);
3718
- var l = 0;
3719
- h = h.replace(e, function() {
3720
- l++;
3721
  return "\\n\n";
3722
  });
3723
- if (!(l || d && d < h.length + b.length + 3)) return b + ' "' + h + '"';
3724
- var k = [ b + ' "' ], p = h.split("\n");
3725
- if (a) for (var n = -1, r = p.length; ++n < r; ) a(p[n], k); else k = k.concat(p);
3726
- return k.join('"\n"') + '"';
3727
  },
3728
  prefix: function(a, b) {
3729
- var c = a.split(e);
3730
  return b + c.join("\n" + b);
3731
  },
3732
- refs: function(a) {
3733
- a = a.replace(h, " ", a);
3734
- b && (a = b(a, []).join("\n#: "));
3735
- return "#: " + a;
3736
  }
3737
  };
3738
  };
3739
- return f;
3740
- }({}, z, x));
3741
- n.register("$39", function(f, d, k) {
3742
  function p() {
3743
  this.length = 0;
3744
  }
3745
- f.init = function() {
3746
  return new p();
3747
  };
3748
- d = p.prototype;
3749
- d.push = function(d) {
3750
- this[this.length++] = d;
3751
  return this;
3752
  };
3753
- d.sort = function(d) {
3754
- [].sort.call(this, d);
3755
  return this;
3756
  };
3757
- d.each = function(d) {
3758
- for (var c = -1, b = this.length; ++c < b; ) d(c, this[c]);
3759
  return this;
3760
  };
3761
- return f;
3762
- }({}, z, x));
3763
- n.register("$27", function(f, d, k) {
3764
  function p() {}
3765
- f.extend = function(d) {
3766
- return d.prototype = new p();
3767
  };
3768
- d = p.prototype = n.require("$37", "abstract.js").init([ "add", "load" ]);
3769
- d.row = function(d) {
3770
- return this.rows[d];
3771
  };
3772
- d.lock = function(d) {
3773
- return this.locale(d || {
3774
  lang: "zxx",
3775
  label: "Unknown",
3776
  nplurals: 1,
3777
  pluraleq: "n!=1"
3778
  });
3779
  };
3780
- d.unlock = function() {
3781
- var d = this.loc;
3782
  this.loc = null;
3783
- return d;
3784
  };
3785
- d.locale = function(d) {
3786
- null == d ? d = this.loc : this.loc = d = n.require("$36", "locale.js").cast(d);
3787
- return d;
3788
  };
3789
- d.each = function(d) {
3790
- this.rows.each(d);
3791
  return this;
3792
  };
3793
- d.indexOf = function(d) {
3794
- "object" !== typeof d && (d = this.get(d));
3795
- if (!d) return -1;
3796
- null == d.idx && (d.idx = this.rows.indexOf(d.hash()));
3797
- return d.idx;
3798
  };
3799
- d.get = function(d) {
3800
- return this.rows && this.rows.get(d);
3801
  };
3802
- d.has = function(d) {
3803
- return this.rows && this.rows.has(d);
3804
  };
3805
- d.del = function(d) {
3806
- d = this.indexOf(d);
3807
- if (-1 !== d) {
3808
- var c = this.rows.cut(d, 1);
3809
- if (c && c.length) return this.length = this.rows.length, this.rows.each(function(b, a, c) {
3810
- a.idx = c;
3811
- }), d;
3812
  }
3813
  };
3814
- d.reIndex = function(d, c) {
3815
- var b = this.indexOf(d), a = d.hash(), e = this.rows.indexOf(a);
3816
- return e === b ? b : -1 !== e ? (c = (c || 0) + 1, d.source("Error, duplicate " + String(c) + ": " + d.source()),
3817
- this.reIndex(d, c)) : this.rows.key(b, a);
3818
  };
3819
- d.sort = function(d) {
3820
- this.rows.sort(d);
3821
  return this;
3822
  };
3823
- d["export"] = function() {
3824
- for (var d = -1, c = this.rows, b = c.length, a = n.require("$39", "list.js").init(); ++d < b; ) a.push(c[d]);
3825
- return a;
3826
  };
3827
- d = null;
3828
- return f;
3829
- }({}, z, x));
3830
- n.register("$28", function(f, d, k) {
3831
- function p(c, b, a) {
3832
- if (null == a) return c[b] || "";
3833
- c[b] = a || "";
3834
- return c;
3835
  }
3836
- function g() {
3837
  this._id = this.id = "";
3838
  }
3839
- f.extend = function(c) {
3840
- return c.prototype = new g();
 
 
 
3841
  };
3842
- d = g.prototype;
3843
- d.flag = function(c, b) {
3844
- var a = this.flg || (this.flg = []);
3845
- if (null != b) a[b] = c; else for (var d = Math.max(a.length, this.src.length, this.msg.length); 0 !== d--; ) a[d] = c;
3846
  return this;
3847
  };
3848
- d.flagged = function(c) {
3849
  var b = this.flg || [];
3850
- if (null != c) return b[c] || 0;
3851
- for (c = b.length; 0 !== c--; ) if (b[c]) return !0;
3852
  return !1;
3853
  };
3854
- d.flags = function() {
3855
- for (var c, b = {}, a = [], d = this.flg || [], h = d.length; 0 !== h--; ) c = d[h],
3856
- b[c] || (b[c] = !0, a.push(c));
3857
- return a;
3858
  };
3859
- d.flaggedAs = function(c, b) {
3860
- var a = this.flg || [];
3861
- if (null != b) return c === a[b] || 0;
3862
- for (var d = a.length; 0 !== d--; ) if (a[d] === c) return !0;
3863
  return !1;
3864
  };
3865
- d.fuzzy = function(c, b) {
3866
- var a = this.flaggedAs(4, c);
3867
- null != b && this.flag(b ? 4 : 0, c);
3868
- return a;
3869
  };
3870
- d.source = function(c, b) {
3871
- if (null == c) return this.src[b || 0] || "";
3872
- this.src[b || 0] = c;
3873
  return this;
3874
  };
3875
- d.plural = function(c, b) {
3876
- if (null == c) return this.src[b || 1] || "";
3877
- this.src[b || 1] = c || "";
3878
  return this;
3879
  };
3880
- d.sourceForms = function() {
3881
  return this.srcF;
3882
  };
3883
- d.targetForms = function() {
3884
  return this.msgF;
3885
  };
3886
- d.each = function(c) {
3887
- for (var b = -1, a = this.src, d = this.msg, h = Math.max(a.length, d.length); ++b < h; ) c(b, a[b], d[b]);
 
 
 
 
 
 
 
 
3888
  return this;
3889
  };
3890
- d.count = function() {
3891
  return Math.max(this.src.length, this.msg.length);
3892
  };
3893
- d.pluralized = function() {
3894
  return 1 < this.src.length || 1 < this.msg.length;
3895
  };
3896
- d.translate = function(c, b) {
3897
- this.msg[b || 0] = c || "";
3898
  return this;
3899
  };
3900
- d.untranslate = function(c) {
3901
- if (null != c) this.msg[c] = ""; else {
3902
- var b = this.msg, a = b.length;
3903
- for (c = 0; c < a; c++) b[c] = "";
3904
  }
3905
  return this;
3906
  };
3907
- d.translation = function(c) {
3908
- return this.msg[c || 0] || "";
 
 
 
3909
  };
3910
- d.errors = function(c) {
3911
- return this.err && this.err[c || 0] || [];
3912
  };
3913
- d.translated = function(c) {
3914
- if (null != c) return !!this.msg[c];
3915
- var b = this.msg, a = b.length;
3916
- for (c = 0; c < a; c++) if (!b[c]) return !1;
3917
  return !0;
3918
  };
3919
- d.untranslated = function(c) {
3920
- if (null != c) return !this.msg[c];
3921
- var b = this.msg, a = b.length;
3922
- for (c = 0; c < a; c++) if (b[c]) return !1;
3923
  return !0;
3924
  };
3925
- d.comment = function(c) {
3926
- return p(this, "cmt", c);
3927
  };
3928
- d.notes = function(c) {
3929
- return p(this, "xcmt", c);
3930
  };
3931
- d.refs = function(c) {
3932
- return p(this, "rf", c);
3933
  };
3934
- d.format = function(c) {
3935
- return p(this, "fmt", c);
3936
  };
3937
- d.context = function(c) {
3938
- return p(this, "ctx", c);
3939
  };
3940
- d.tags = function() {
3941
  return this.tg;
3942
  };
3943
- d.toString = d.toText = function() {
3944
  return this.src.concat(this.msg, this.id, this.ctx).join(" ");
3945
  };
3946
- d.weight = function() {
3947
- var c = 0;
3948
- this.translation() || (c += 2);
3949
- this.fuzzy() && (c += 1);
3950
- return c;
3951
  };
3952
- d.equals = function(c) {
3953
- return this === c || this.hash() === c.hash();
3954
  };
3955
- d.hash = function() {
3956
  return this.id;
3957
  };
3958
- d.normalize = function() {
3959
- for (var c = this.msg.length; 0 !== c--; ) this.msg[c] = this.src[c] || "";
3960
  };
3961
- d.disabled = function(c) {
3962
- return !!(this.lck || [])[c || 0];
3963
  };
3964
- d.disable = function(c) {
3965
- (this.lck || (this.lck = []))[c || 0] = !0;
3966
  return this;
3967
  };
3968
- d.saved = function(c) {
3969
  var b = this.drt;
3970
  if (null == b) return !0;
3971
- if (null != c) return !b[c];
3972
- for (c = b.length; 0 !== c--; ) if (b[c]) return !1;
3973
  return !0;
3974
  };
3975
- d.unsave = function(c) {
3976
- (this.drt || (this.drt = []))[c || 0] = !0;
3977
  return this;
3978
  };
3979
- d.save = function(c) {
3980
- null == c ? this.drt = null : (this.drt || (this.drt = []))[c] = !1;
3981
  return this;
3982
  };
3983
- d.is = function(c) {
3984
- return c && (c === this || c.idx === this.idx);
3985
  };
3986
- d.isHTML = function(c) {
3987
- if (null == c) return this.htm || !1;
3988
- this.htm = c;
3989
  };
3990
- d = null;
3991
- return f;
3992
- }({}, z, x));
3993
- n.register("$15", function(f, d, k) {
3994
  function p(a) {
3995
  return {
3996
  "Project-Id-Version": "PACKAGE VERSION",
@@ -4006,171 +4082,171 @@ Language: "",
4006
  "Content-Transfer-Encoding": "8bit"
4007
  };
4008
  }
4009
- function g(a, b) {
4010
- var c = a || "";
4011
- b && (c += "\0" + b);
4012
- return c;
4013
  }
4014
- function c(a) {
4015
- var b = d.console;
4016
  b && b.error && b.error(a.message || String(a));
4017
  }
4018
- function b(a) {
4019
- return n.require("$26", "format.js").create(a);
4020
- }
4021
  function a(a) {
 
 
 
4022
  this.locale(a);
4023
  this.clear();
4024
  this.head = p(this.now());
4025
  }
4026
- function e(a, b) {
4027
  this.src = [ a || "" ];
4028
  this.msg = [ b || "" ];
4029
  }
4030
- f.create = function(b) {
4031
- return new a(b);
4032
  };
4033
- k = n.require("$27", "messages.js").extend(a);
4034
  k.clear = function() {
4035
- this.rows = n.require("$25", "collection.js").init();
4036
  this.length = 0;
4037
  return this;
4038
  };
4039
  k.now = function() {
4040
- function a(b, c) {
4041
- for (var d = String(b); d.length < c; ) d = "0" + d;
4042
- return d;
4043
  }
4044
- var b = new Date(), c = b.getUTCFullYear(), d = b.getUTCMonth() + 1, e = b.getUTCDate(), f = b.getUTCHours(), b = b.getUTCMinutes();
4045
- return a(c, 4) + "-" + a(d, 2) + "-" + a(e, 2) + " " + a(f, 2) + ":" + a(b, 2) + "+0000";
4046
  };
4047
  k.header = function(a, b) {
4048
- var c = this.head || (this.head = {});
4049
  if (null == b) return this.headers()[a] || "";
4050
- c[a] = b || "";
4051
  return this;
4052
  };
4053
  k.headers = function(a) {
4054
- var b, c = this.now(), d = this.head || (this.head = p(c));
4055
  if (null != a) {
4056
- for (b in a) d[b] = a[b];
4057
  return this;
4058
  }
4059
  var e = this.locale();
4060
  a = {};
4061
- for (b in d) a[b] = String(d[b]);
4062
  e ? (a.Language = String(e) || "zxx", a["Language-Team"] = e.label || a.Language,
4063
  a["Plural-Forms"] = "nplurals=" + (e.nplurals || "2") + "; plural=" + (e.pluraleq || "n!=1") + ";",
4064
  b = "PO-Revision-Date") : (a.Language = "", a["Plural-Forms"] = "nplurals=INTEGER; plural=EXPRESSION;",
4065
  a["PO-Revision-Date"] = "YEAR-MO-DA HO:MI+ZONE", b = "POT-Creation-Date");
4066
- a[b] || (a[b] = c);
4067
  a["X-Generator"] = "Loco https://localise.biz/";
4068
  return a;
4069
  };
4070
  k.get = function(a, b) {
4071
- var c = g(a, b);
4072
- return this.rows.get(c);
4073
  };
4074
  k.add = function(a, b) {
4075
- a instanceof e || (a = new e(a));
4076
  b && a.context(b);
4077
- var d = a.hash();
4078
- this.rows.get(d) ? c("Duplicate message at index " + this.indexOf(a)) : (a.idx = this.rows.add(d, a),
4079
  this.length = this.rows.length);
4080
  return a;
4081
  };
4082
  k.load = function(a) {
4083
- for (var b = -1, d, f, g, k, m, p, n = (g = this.locale()) && g.nplurals || 2, r = []; ++b < a.length; ) d = a[b],
4084
- null == d.parent ? (f = d.source || d.id, g = d.target || "", k = d.context, f || k ? (m = new e(f, g),
4085
- m._id = d._id, k && m.context(k), d.flag && m.flag(d.flag, 0), d.comment && m.comment(d.comment),
4086
- d.notes && m.notes(d.notes), d.refs && m.refs(d.refs), m.format(d.format), d.message = m,
4087
- this.add(m), d.prev && d.prev[0] && (m.prev(d.prev[0].source, d.prev[0].context),
4088
- d.prev[1] && m._src.push(d.prev[1].source || ""))) : 0 === b && "object" === typeof g && (this.head = g,
4089
- this.headcmt = d.comment)) : r.push(d);
4090
  for (b = -1; ++b < r.length; ) try {
4091
- d = r[b];
4092
- f = d.source || d.id;
4093
- m = a[d.parent] && a[d.parent].message;
4094
- if (!m) throw Error("parent missing for plural " + f);
4095
- p = d.plural;
4096
- 1 === p && m.plural(f);
4097
- p >= n || (d.flag && m.flag(d.flag, p), m.translate(d.target || "", p), d.format && !m.format() && m.format(d.format));
4098
- } catch (x) {
4099
- c(x);
4100
  }
4101
  return this;
4102
  };
4103
- k.wrap = function(a) {
4104
- this.fmtr = b(a);
4105
  return this;
4106
  };
4107
  k.toString = function() {
4108
- var a, c = this.locale(), d = [], f = [], g = this.headers(), k = !c, m = c && c.nplurals || 2, p = this.fmtr || b();
4109
- g[c ? "PO-Revision-Date" : "POT-Creation-Date"] = this.now();
4110
- for (a in g) f.push(a + ": " + g[a]);
4111
- f = new e("", f.join("\n"));
4112
- f.comment(this.headcmt || "");
4113
- k && f.fuzzy(0, !0);
4114
- d.push(f.toString());
4115
- d.push("");
4116
  this.rows.each(function(a, b) {
4117
- a && (d.push(b.cat(p, k, m)), d.push(""));
4118
  });
4119
- return d.join("\n");
4120
  };
4121
- k = n.require("$28", "message.js").extend(e);
4122
  k.prev = function(a, b) {
4123
  this._src = [ a || "" ];
4124
  this._ctx = b;
4125
  };
4126
  k.hash = function() {
4127
- return g(this.source(), this.context());
4128
  };
4129
  k.toString = function() {
4130
- return this.cat(b());
4131
- };
4132
- k.cat = function(a, b, c) {
4133
- var d, e = [], f;
4134
- (f = this.cmt) && e.push(a.prefix(f, "# "));
4135
- (f = this.xcmt) && e.push(a.prefix(f, "#. "));
4136
- d = this.rf;
4137
- if (f = this._id) d += (d ? " " : "") + "loco:" + f;
4138
- d && /\S/.test(d) && e.push(a.refs(d));
4139
  !b && this.fuzzy() && e.push("#, fuzzy");
4140
- (f = this.fmt) && e.push("#, " + f + "-format");
4141
- (f = this._ctx) && e.push(a.prefix(a.pair("msgctxt", f), "#| "));
4142
- if (f = this._src) f[0] && e.push(a.prefix(a.pair("msgid", f[0]), "#| ")), f[1] && e.push(a.prefix(a.pair("msgid_plural", f[1]), "#| "));
4143
- (f = this.ctx) && e.push(a.pair("msgctxt", f));
4144
  e.push(a.pair("msgid", this.src[0]));
4145
- if (null == this.src[1]) e.push(a.pair("msgstr", b ? "" : this.msg[0])); else for (d = -1,
4146
- e.push(a.pair("msgid_plural", this.src[1])), f = this.msg || [ "", "" ], c = c || f.length; ++d < c; ) e.push(a.pair("msgstr[" + d + "]", b ? "" : f[d] || ""));
4147
  return e.join("\n");
4148
  };
4149
  k.compare = function(a, b) {
4150
- var c = this.weight(), d = a.weight();
4151
- if (c > d) return 1;
4152
- if (c < d) return -1;
4153
  if (b) {
4154
- c = this.hash().toLowerCase();
4155
- d = a.hash().toLowerCase();
4156
- if (c < d) return 1;
4157
- if (c > d) return -1;
4158
  }
4159
  return 0;
4160
  };
4161
  k.copy = function() {
4162
- var a = new e(), b, c;
4163
  for (b in this) this.hasOwnProperty(b) && ((c = this[b]) && c.concat && (c = c.concat()),
4164
  a[b] = c);
4165
  return a;
4166
  };
4167
  k = k = null;
4168
- return f;
4169
- }({}, z, x));
4170
- n.register("$17", function(f, d, n) {
4171
- f.init = function(d, f) {
4172
- function c() {
4173
- return h || (h = k('<div id="loco-po-ref"></div>').dialog({
4174
  dialogClass: "loco-modal loco-modal-wide",
4175
  modal: !0,
4176
  autoOpen: !1,
@@ -4179,140 +4255,140 @@ resizable: !1,
4179
  height: 500
4180
  }));
4181
  }
4182
- function b(a, b, d) {
4183
  a = k("<p></p>").text(d);
4184
- c().dialog("close").html("").dialog("option", "title", "Error").append(a).dialog("open");
4185
  }
4186
- function a(a) {
4187
  var b = a && a.code;
4188
  if (b) {
4189
- for (var d = -1, e = b.length, f = k("<ol></ol>").attr("class", a.type); ++d < e; ) k("<li></li>").html(b[d]).appendTo(f);
4190
- f.find("li").eq(a.line - 1).attr("class", "highlighted");
4191
- c().dialog("close").html("").dialog("option", "title", a.path + ":" + a.line).append(f).dialog("open");
4192
  }
4193
  }
4194
- function e(a) {
4195
  a = a.target;
4196
  var b = k(a).find("li.highlighted")[0], b = Math.max(0, (b && b.offsetTop || 0) - Math.floor(a.clientHeight / 2));
4197
  a.scrollTop = b;
4198
  }
4199
- var h;
4200
  return {
4201
- load: function(h) {
4202
- c().html('<div class="loco-loading"></div>').dialog("option", "title", "Loading..").off("dialogopen").dialog("open").on("dialogopen", e);
4203
- h = k.extend({
4204
- ref: h,
4205
- path: f.popath
4206
- }, f.project || {});
4207
- d.ajax.post("fsReference", h, a, b);
4208
  }
4209
  };
4210
  };
4211
- return f;
4212
- }({}, z, x));
4213
- n.register("$30", function(f, d, k) {
4214
- function p(d) {
4215
- this.api = d;
4216
  this.chars = 0;
4217
  }
4218
- f.create = function(d) {
4219
- return new p(d);
4220
  };
4221
- d = p.prototype;
4222
- d.init = function(d, c) {
4223
- function b(a) {
4224
  var b = {
4225
  length: 0,
4226
  html: a.html,
4227
  sources: []
4228
  };
4229
- B.push(b);
4230
- return y[a.html ? 1 : 0] = b;
4231
  }
4232
- function a(a, d) {
4233
- var g = a.source(null, d);
4234
- if (g && (a.untranslated(d) || c)) {
4235
- var u = m[g];
4236
- if (u) u.push(a); else {
4237
- var u = g.length, v = e.isHtml(g), v = y[v ? 1 : 0], B = v.sources;
4238
- if (s && u > s) l++; else {
4239
- if (v.length + u > n || B.length === p) v = b(v), B = v.sources;
4240
- B.push(g);
4241
- m[g] = [ a ];
4242
  v.length += u;
4243
- f += u;
4244
- k += 1;
4245
  }
4246
  }
4247
  }
4248
  }
4249
- var e = this.api, f = 0, k = 0, l = 0, p = 50, n = 1e4, s = e.maxChr(), m = {}, B = [], y = [];
4250
- s && (n = Math.min(n, s));
4251
- b({
4252
  html: !1
4253
  });
4254
- b({
4255
  html: !0
4256
  });
4257
- d.each(function(b, c) {
4258
- a(c, 0);
4259
- a(c, 1);
4260
  });
4261
- delete y;
4262
  this.map = m;
4263
- this.chars = f;
4264
- this.length = k;
4265
- this.batches = B;
4266
- this.locale = d.locale();
4267
- l && e.stderr("Strings over " + n + " characters long will be skipped");
4268
  };
4269
- d.abort = function() {
4270
  this.state = "abort";
4271
  return this;
4272
  };
4273
- d.dispatch = function() {
4274
- function d(a, b) {
4275
- function e(c, d, h) {
4276
- b !== h && (a === d || 1 < c && f.source(null, 1) === a) && (f.translate(b, c),
4277
  m++, r++);
4278
  return m;
4279
  }
4280
- if (!c()) return !1;
4281
  if (!b) return !0;
4282
- var f, h = n[a] || [], g = h.length, l = -1, m;
4283
- for (B++; ++l < g; ) if (f = h[l]) m = 0, f.each(e), m && k("each", [ f ]);
4284
  return !0;
4285
  }
4286
- function c() {
4287
- return "abort" === l.state ? (p && (p.abort(), f()), !1) : !0;
4288
- }
4289
- function b() {
4290
- var b = s.shift(), c;
4291
- b ? (c = b.sources) && c.length ? p.batch(c, m, b.html, d).fail(a).always(e) : e() : f();
4292
  }
4293
  function a() {
4294
- l.abort();
4295
- f();
4296
  }
4297
- function e() {
4298
- y++;
4299
- k("prog", [ y, z ]);
4300
- c() && b();
4301
  }
4302
- function f() {
4303
- p = s = null;
4304
- k("done");
 
4305
  }
4306
- function k(a, b) {
 
 
 
 
4307
  for (var c = u[a] || [], d = c.length; 0 <= --d; ) c[d].apply(null, b);
4308
  }
4309
- var l = this, p = l.api, n = l.map, s = l.batches || [], m = l.locale, B = 0, y = 0, r = 0, x = l.length, z = s.length, u = {
4310
  done: [],
4311
  each: [],
4312
  prog: []
4313
  };
4314
- l.state = "";
4315
- b();
4316
  return {
4317
  done: function(a) {
4318
  u.done.push(a);
@@ -4329,69 +4405,69 @@ return this;
4329
  stat: function() {
4330
  return {
4331
  todo: function() {
4332
- return Math.max(x - B, 0);
4333
  },
4334
  did: function() {
4335
- return B;
4336
  }
4337
  };
4338
  }
4339
  };
4340
  };
4341
- return f;
4342
- }({}, z, x));
4343
- n.register("$40", {
4344
  zh: [ "zh", "zh-CN", "zh-TW" ],
4345
  he: [ "iw" ],
4346
  jv: [ "jw" ]
4347
  });
4348
- n.register("$31", function(f, d, k) {
4349
  function p() {}
4350
- f.create = function(d) {
4351
- d = p.prototype = new d();
4352
- d.toString = function() {
4353
  return "Google Translate";
4354
  };
4355
- d.getId = function() {
4356
  return "google";
4357
  };
4358
- d.getUrl = function() {
4359
  return "https://translate.google.com/";
4360
  };
4361
- d.parseError = function(c) {
4362
  if (c.error) {
4363
- for (var b = [], a = c.error.errors || [], d = a.length, f = -1; ++f < d; ) b.push(a[f].message || "");
4364
- return "Error " + c.error.code + ": " + b.join(";");
4365
  }
4366
  return "";
4367
  };
4368
- d.batch = function(c, b, a, d) {
4369
- function f(a) {
4370
- for (var h = c.length, g = -1, k; ++g < h && (k = a[g] || {}, !1 !== d(c[g], k.translatedText || "", b)); ) ;
4371
  }
4372
- var g = this, k = this.getSrc();
4373
- a = a ? "html" : "text";
4374
- var p = g.mapLang(b, n.require("$40", "google.json"));
4375
- return g._call({
4376
- url: "https://translation.googleapis.com/language/translate/v2?source=" + k + "&target=" + p + "&format=" + a,
4377
  method: "POST",
4378
  traditional: !0,
4379
  data: {
4380
- key: g.key(),
4381
  q: c
4382
  }
4383
  }).done(function(a, b, c) {
4384
- a.data ? f(a.data.translations || []) : (g.stderr(g.parseError(a) || g.httpError(c)),
4385
- f([]));
4386
  }).fail(function() {
4387
- f([]);
4388
  });
4389
  };
4390
  return new p();
4391
  };
4392
- return f;
4393
- }({}, z, x));
4394
- n.register("$41", {
4395
  nn: [ "no" ],
4396
  pt: [ "pt", "pt-pt" ],
4397
  sr: [ "sr-Cyrl", "sr-Latn" ],
@@ -4403,296 +4479,296 @@ zh_HK: [ "zh-Hans" ],
4403
  zh_SG: [ "zh-Hans" ],
4404
  zh_TW: [ "zh-Hant" ]
4405
  });
4406
- n.register("$32", function(f, d, k) {
4407
  function p() {}
4408
- f.create = function(d) {
4409
- d = p.prototype = new d();
4410
- d.toString = function() {
4411
  return "Microsoft Translator text API";
4412
  };
4413
- d.getId = function() {
4414
  return "microsoft";
4415
  };
4416
- d.getUrl = function() {
4417
  return "https://aka.ms/MicrosoftTranslatorAttribution";
4418
  };
4419
- d.parseError = function(c) {
4420
  return c && c.error ? c.error.message : "";
4421
  };
4422
- d.maxChr = function() {
4423
  return 1e4;
4424
  };
4425
- d.batch = function(c, b, a, d) {
4426
- function f(a) {
4427
- for (var h = -1, g; ++h < w && (g = a[h] || {}, g = g.translations || [], g = g[0] || {},
4428
- !1 !== d(c[h], g.text || "", b)); ) ;
4429
  }
4430
- var g = this, k = [], p = g.getSrc(), w = c.length, s = -1;
4431
- a = a ? "html" : "plain";
4432
- for (var m = g.mapLang(b, n.require("$41", "ms.json")); ++s < w; ) k.push({
4433
  text: c[s]
4434
  });
4435
- return g._call({
4436
- url: "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&from=" + p + "&to=" + m + "&textType=" + a,
4437
  method: "POST",
4438
- data: JSON.stringify(k),
4439
  headers: {
4440
  "Content-Type": "application/json; charset=UTF-8",
4441
  "Ocp-Apim-Subscription-Key": this.key(),
4442
- "Ocp-Apim-Subscription-Region": g.param("region") || "global"
4443
  }
4444
  }).done(function(a, b, c) {
4445
- a && a.length ? f(a) : (g.stderr(g.parseError(a) || g.httpError(c)), f([]));
4446
  }).fail(function() {
4447
- f([]);
4448
  });
4449
  };
4450
  return new p();
4451
  };
4452
- return f;
4453
- }({}, z, x));
4454
- n.register("$42", {
4455
  pt: [ "pt-PT", "pt-BR" ]
4456
  });
4457
- n.register("$33", function(f, d, k) {
4458
  function p() {}
4459
- f.create = function(d) {
4460
- d = p.prototype = new d();
4461
- d.toString = function() {
4462
  return "DeepL Translator";
4463
  };
4464
- d.getId = function() {
4465
  return "deepl";
4466
  };
4467
- d.getUrl = function() {
4468
  return "https://www.deepl.com/translator";
4469
  };
4470
- d.parseError = function(c) {
4471
  return c.message;
4472
  };
4473
- d.batch = function(c, b, a, d) {
4474
- function f(a) {
4475
- for (var h = c.length, g = -1, k; ++g < h && (k = a[g] || {}, !1 !== d(c[g], k.text || "", b)); ) ;
4476
- }
4477
- var g = this;
4478
- a = this.getSrc();
4479
- var k = g.param("url") || "https://api.deepl.com", p = g.mapLang(b, n.require("$42", "deepl.json")), w = b.tone, s = "default";
4480
- null == w && (w = String(b.variant || "").toLowerCase());
4481
- "formal" === w ? s = "more" : "informal" === w && (s = "less");
4482
- return g._call({
4483
- url: g.fixURL(k + "/v2/translate"),
4484
  method: "POST",
4485
  traditional: !0,
4486
  data: {
4487
- source_lang: a.toUpperCase(),
4488
- target_lang: p.toUpperCase(),
4489
  formality: s,
4490
  preserve_formatting: "1",
4491
- auth_key: g.key(),
4492
  text: c
4493
  }
4494
  }).done(function(a, b, c) {
4495
- a.translations ? f(a.translations) : (g.stderr(g.parseError(a) || g.httpError(c)),
4496
- f([]));
4497
  }).fail(function() {
4498
- f([]);
4499
  });
4500
  };
4501
  return new p();
4502
  };
4503
- return f;
4504
- }({}, z, x));
4505
- n.register("$43", {
4506
  zh: [ "zh", "zh-CN", "zh-TW" ],
4507
  pt: [ "pt", "pt-PT", "pt-BR" ]
4508
  });
4509
- n.register("$34", function(f, d, k) {
4510
  function p() {}
4511
- f.create = function(d) {
4512
- d = p.prototype = new d();
4513
- d.getUrl = function() {
4514
  return "https://lecto.ai/?ref=loco";
4515
  };
4516
- d.parseError = function(c) {
4517
- var b = c.details || {}, a = b.message, b = b.texts;
4518
- return a ? (b && b !== a && (a += "; " + b), a = a.replace(/https?:\/\/(?:[a-z]+\.)?lecto.ai[-\w\/?&=%.+~]*/, function(a) {
4519
  a += -1 === a.indexOf("?") ? "?" : "&";
4520
  return a + "ref=loco";
4521
- }), "Error " + (c.status || "0") + ": " + a) : "";
4522
  };
4523
- d.maxChr = function() {
4524
  return 1e3;
4525
  };
4526
- d.batch = function(c, b, a, d) {
4527
- function f(a) {
4528
- for (var h = c.length, g = -1, k = (a[0] || {
4529
  translated: []
4530
- }).translated || []; ++g < h && (a = k[g] || "", !1 !== d(c[g], a, b)); ) ;
4531
  }
4532
- var g = this;
4533
- a = this.getSrc();
4534
- var k = g.param("url") || "https://api.lecto.ai", p = g.mapLang(b, n.require("$43", "lecto.json"));
4535
- return g._call({
4536
- url: g.fixURL(k + "/v1/translate/text"),
4537
  method: "POST",
4538
  data: JSON.stringify({
4539
- to: [ p ],
4540
- from: a,
4541
  texts: c
4542
  }),
4543
  headers: {
4544
  "Content-Type": "application/json; charset=UTF-8",
4545
- "X-API-Key": g.key(),
4546
  Accept: "application/json"
4547
  }
4548
  }).done(function(a, b, c) {
4549
- a ? f(a.translations || []) : (g.stderr(g.parseError(a) || g.httpError(c)), f([]));
4550
  }).fail(function() {
4551
- f([]);
4552
  });
4553
  };
4554
  return new p();
4555
  };
4556
- return f;
4557
- }({}, z, x));
4558
- n.register("$18", function(f, d, x) {
4559
  function p() {
4560
  this.inf = {};
4561
  }
4562
- function g() {
4563
- var a = x.createElement("p"), b = /&(#\d+|#x[0-9a-f]|[a-z]+);/i, c = /<[a-z]+\s/i, d, f;
4564
  return {
4565
- sniff: function(g) {
4566
- if (g === d) return f;
4567
- d = g;
4568
- if (b.test(g) || c.test(g)) if (a.innerHTML = g, a.textContent !== g) return f = !0;
4569
  return f = !1;
4570
  }
4571
  };
4572
  }
4573
- var c = p.prototype;
4574
- c.init = function(a) {
4575
  this.inf = a || {};
4576
  };
4577
- c.param = function(a) {
4578
  return this.inf[a] || "";
4579
  };
4580
- c.key = function() {
4581
  return this.param("key");
4582
  };
4583
- c.getId = function() {
4584
  return this.param("id") || "none";
4585
  };
4586
- c.getUrl = function() {
4587
  return this.param("url") || "#";
4588
  };
4589
- c.toString = function() {
4590
  return this.param("name") || this.getId();
4591
  };
4592
- c.getSrc = function() {
4593
  return this.param("src") || "en";
4594
  };
4595
- c.stderr = function(a) {
4596
- var b = (d.loco || {}).notices || d.console;
4597
- b && b.error && b.error(String(this) + ": " + String(a));
4598
  };
4599
- c.httpError = function(a) {
4600
  return (a = a && a.status) && 200 !== a ? "Responded status " + a : "Unknown error";
4601
  };
4602
- c.parseError = function() {
4603
  return "";
4604
  };
4605
- c.mapLang = function(a, b) {
4606
- var c = String(a).replace("-", "_"), d = a.lang, f = b[c] || b[d] || [], g = f.length;
4607
- if (0 === g) return d;
4608
- if (1 < g) for (var c = c.toLowerCase(), d = -1, k; ++d < g; ) if (k = f[d], k.toLowerCase().replace("-", "_") === c) return k;
4609
  return f[0];
4610
  };
4611
- c.toLang = function(a) {
4612
  return String(a);
4613
  };
4614
- c.maxChr = function() {
4615
  return 0;
4616
  };
4617
- c.fixURL = function(a) {
4618
  a = a.split("://", 2);
4619
  1 === a.length && a.unshift("https");
4620
  return a[0] + "://" + a[1].replace(/\/{2,}/g, "/");
4621
  };
4622
- c.translate = function(a, b, c) {
4623
- return this.batch([ a ], b, this.isHtml(a), c);
4624
  };
4625
- c._call = function(a) {
4626
- var b = this;
4627
- b.state = null;
4628
  a.cache = !0;
4629
  a.dataType = "json";
4630
- a.error = function(a, c, d) {
4631
  try {
4632
- var f = a.responseText, g = f && n.require("$5", "json.js").parse(f);
4633
- d = g && b.parseError(g) || d;
4634
  } catch (k) {}
4635
- b.stderr(d || b.httpError(a));
4636
  };
4637
- return b.abortable(k.ajax(a));
4638
  };
4639
- c.abortable = function(a) {
4640
- var b = this;
4641
  a.always(function() {
4642
- b.$r === a && (b.$r = null);
4643
  });
4644
- return b.$r = a;
4645
  };
4646
- c.abort = function() {
4647
  var a = this.$r;
4648
  a && a.abort();
4649
  };
4650
- c.isHtml = function(a) {
4651
- return (b || (b = g())).sniff(a);
4652
  };
4653
- c.createJob = function() {
4654
- return n.require("$30", "job.js").create(this);
4655
  };
4656
- c.batch = function(a, b, c, f) {
4657
- function g(c) {
4658
- for (var d = a.length, h = -1; ++h < d && !1 !== f(a[h], c[h], b); ) ;
4659
  }
4660
- var p = d.loco.ajax;
4661
- c = {
4662
  hook: this.getId(),
4663
- type: c ? "html" : "text",
4664
- locale: this.toLang(b),
4665
  source: this.getSrc(),
4666
  sources: a
4667
  };
4668
- var n = k.Deferred();
4669
- this.abortable(p.post("apis", c, function(a) {
4670
- g(a && a.targets || []);
4671
- n.resolve();
4672
  }, function() {
4673
- g([]);
4674
- n.reject();
4675
  }));
4676
- return n.promise();
4677
  };
4678
- f.create = function(a) {
4679
- var b;
4680
- b = a.id;
4681
- b = "google" === b ? n.require("$31", "google.js").create(p) : "microsoft" === b ? n.require("$32", "ms.js").create(p) : "deepl" === b ? n.require("$33", "deepl.js").create(p) : "lecto" === b ? n.require("$34", "lecto.js").create(p) : new p();
4682
- b.init(a);
4683
- return b;
4684
  };
4685
- f.suggest = function(a, b, c, d) {
4686
- var f, g, k = a.length;
4687
- for (f = 0; f < k; f++) g = a[f], g.translate(b, c, d);
4688
  };
4689
- var b;
4690
- return f;
4691
- }({}, z, x));
4692
- n.register("$19", function(f, d, n) {
4693
- f.init = function(f) {
4694
- function g() {
4695
- H || (I.on("click", l), H = k('<div id="loco-fs-creds"></div>').dialog({
4696
  dialogClass: "request-filesystem-credentials-dialog loco-modal",
4697
  minWidth: 580,
4698
  modal: !0,
@@ -4703,231 +4779,231 @@ this.checked && k("#ssh-keys").toggleClass("hidden", "ssh" !== k(this).val());
4703
  }));
4704
  return H;
4705
  }
4706
- function c() {
4707
- R && (b(k(y)), R = !1);
4708
- if (E && J) {
4709
- var a = J, c = k(Q);
4710
- c.find("span.loco-msg").text(a);
4711
  K || (c.removeClass("jshide").hide().fadeIn(500), K = !0);
4712
- } else K && (b(k(Q)), K = !1);
4713
  }
4714
- function b(a) {
4715
  a.slideUp(250).fadeOut(250, function() {
4716
  k(this).addClass("jshide");
4717
  });
4718
  }
4719
- function a() {
4720
- if (E) return H && H.dialog("close"), c(), k(f).find('button[type="submit"]').attr("disabled", !1),
4721
- k(d).triggerHandler("resize"), z && z(!0), !0;
4722
- v && H ? (R || (k(y).removeClass("jshide").hide().fadeIn(500), R = !0), K && (b(k(Q)),
4723
- K = !1)) : c();
4724
- k(f).find('input[type="submit"]').attr("disabled", !0);
4725
- z && z(!1);
4726
  return !1;
4727
  }
4728
- function e(a) {
4729
  var b, c, d = m || {};
4730
  for (b in d) d.hasOwnProperty(b) && (c = d[b], a[b] ? a[b].value = c : k('<input type="hidden" />').attr("name", b).appendTo(a).val(c));
4731
  }
4732
- function h(a) {
4733
  a.preventDefault();
4734
  a = k(a.target).serializeArray();
4735
  s(a);
4736
- C = !0;
4737
  return !1;
4738
  }
4739
- function q(a) {
4740
  a.preventDefault();
4741
  H.dialog("close");
4742
  return !1;
4743
  }
4744
- function l(a) {
4745
  a.preventDefault();
4746
  H.dialog("open").find('input[name="connection_type"]').change();
4747
  return !1;
4748
  }
4749
- function x(b) {
4750
- E = b.authed;
4751
- r = b.method;
4752
- k(y).find("span.loco-msg").text(b.message || "Something went wrong.");
4753
- J = b.warning || "";
4754
- b.notice && u.notices.info(b.notice);
4755
- if (E) "direct" !== r && (m = b.creds, e(f), C && b.success && u.notices.success(b.success)),
4756
- a(); else if (b.reason) u.notices.info(b.reason); else if (b = b.prompt) {
4757
- var c = g();
4758
- c.html(b).find("form").on("submit", h);
4759
- c.dialog("option", "title", c.find("h2").remove().text());
4760
- c.find("button.cancel-button").show().on("click", q);
4761
- c.find('input[type="submit"]').addClass("button-primary");
4762
- a();
4763
- k(d).triggerHandler("resize");
4764
  } else u.notices.error("Server didn't return credentials, nor a prompt for credentials");
4765
  }
4766
  function w() {
4767
- a();
4768
  }
4769
  function s(a) {
4770
- C = !1;
4771
- u.ajax.setNonce("fsConnect", N).post("fsConnect", a, x, w);
4772
  return a;
4773
  }
4774
- var m, z, y = f, r = null, C = !1, E = !1, u = d.loco, v = f.path.value, F = f.auth.value, N = f["loco-nonce"].value, I = k(y).find("button.button-primary"), Q = n.getElementById(y.id + "-warn"), R = !1, K = !1, J = "", H;
4775
- u.notices.convert(Q).stick();
4776
- f.connection_type ? (m = {}, m.connection_type = f.connection_type.value, E = !0) : v && F && s({
4777
  path: v,
4778
- auth: F
4779
  });
4780
- a();
4781
  return {
4782
  applyCreds: function(a) {
4783
- if (a.nodeType) e(a); else {
4784
  var b, c = m || {};
4785
  for (b in c) c.hasOwnProperty(b) && (a[b] = c[b]);
4786
  }
4787
  return this;
4788
  },
4789
- setForm: function(b) {
4790
- f = b;
4791
- a();
4792
- e(b);
4793
  return this;
4794
  },
4795
  connect: function() {
4796
- v = f.path.value;
4797
- F = f.auth.value;
4798
- s(k(f).serializeArray());
4799
  return this;
4800
  },
4801
  listen: function(a) {
4802
- z = a;
4803
- E && a(!0);
4804
  return this;
4805
  },
4806
  authed: function() {
4807
- return E;
4808
  }
4809
  };
4810
  };
4811
- return f;
4812
- }({}, z, x));
4813
- n.register("$20", function(f, d, x) {
4814
- function p(d, f, k, l) {
4815
- f = "n" === k ? c(f) : b(f);
4816
- l && (f = a(f));
4817
- return g([].sort, [ f ])(d);
4818
- }
4819
- function g(a, b) {
4820
  return function(c) {
4821
  a.apply(c, b);
4822
  return c;
4823
  };
4824
  }
4825
- function c(a) {
4826
  return function(b, c) {
4827
- var d = b && b[a] || 0, f = c && c[a] || 0;
4828
- return d === f ? 0 : d > f ? 1 : -1;
4829
  };
4830
  }
4831
- function b(a) {
4832
  return function(b, c) {
4833
  return (b && b[a] || "").localeCompare(c && c[a] || "");
4834
  };
4835
  }
4836
- function a(a) {
4837
  return function(b, c) {
4838
  return -1 * a(b, c);
4839
  };
4840
  }
4841
- f.init = function(a) {
4842
  function b(a) {
4843
  var c = -1, d = a.length;
4844
- for (k("tr", y).remove(); ++c < d; ) y.appendChild(a[c].$);
4845
  }
4846
  function c(a) {
4847
- s = a ? z.find(a, d) : d.slice(0);
4848
- x && (a = f[x], s = p(s, x, a.type, a.desc));
4849
  b(s);
4850
  }
4851
- var d = [], f = [], g = 0, s, m, x, y = a.getElementsByTagName("tbody")[0], r = a.getElementsByTagName("thead")[0], z = n.require("$10", "fulltext.js").init();
4852
- r && y && (k("th", r).each(function(a, c) {
4853
- var e = c.getAttribute("data-sort-type");
4854
- e && (a = g, k(c).addClass("loco-sort").on("click", function(c) {
4855
  c.preventDefault();
4856
  c = a;
4857
- var e = f[c], g = e.type, n = !(e.desc = !e.desc);
4858
- s = p(s || d.slice(0), c, g, n);
4859
  b(s);
4860
  m && m.removeClass("loco-desc loco-asc");
4861
- m = k(e.$).addClass(n ? "loco-desc" : "loco-asc").removeClass(n ? "loco-asc" : "loco-desc");
4862
- x = c;
4863
  return !1;
4864
- }), f[g] = {
4865
  $: c,
4866
- type: e
4867
  });
4868
- c.hasAttribute("colspan") ? g += Number(c.getAttribute("colspan")) : g++;
4869
- }), k("tr", y).each(function(a, b) {
4870
- var c, e, g, h = [], k = {
4871
  _: a,
4872
  $: b
4873
  }, m = b.getElementsByTagName("td");
4874
- for (e in f) {
4875
- c = m[e];
4876
- (g = c.textContent.replace(/(^\s+|\s+$)/g, "")) && h.push(g);
4877
  c.hasAttribute("data-sort-value") && (g = c.getAttribute("data-sort-value"));
4878
- switch (f[e].type) {
4879
  case "n":
4880
  g = Number(g);
4881
  }
4882
- k[e] = g;
4883
  }
4884
- d[a] = k;
4885
- z.index(a, h);
4886
  }), a = k('form.loco-filter input[type="text"]', a.parentNode), a.length && (a = a[0],
4887
- r = k(a.form), 1 < d.length ? n.require("$11", "LocoTextListener.js").listen(a, c) : r.hide(),
4888
  r.on("submit", function(a) {
4889
  a.preventDefault();
4890
  return !1;
4891
  })));
4892
  };
4893
- return f;
4894
- }({}, z, x));
4895
- var C = z.loco || {}, I = C.conf || {
4896
  $v: [ 0, 0 ]
4897
  };
4898
- z = n.require("$1", "t.js").init();
4899
- x = I.wplang;
4900
- C.version = function(f) {
4901
- return I.$v[f || 0];
4902
  };
4903
- n.require("$2", "html.js");
4904
- n.require("$3", "number.js");
4905
- n.require("$4", "array.js");
4906
- n.require("$5", "json.js");
4907
- C.l10n = z;
4908
  z.load(I.wpl10n);
4909
- x && z.pluraleq(x.pluraleq);
4910
- C.string = n.require("$6", "string.js");
4911
- C.notices = n.require("$7", "notices.js").init(z);
4912
- C.ajax = n.require("$8", "ajax.js").init(I).localise(z);
4913
- C.locale = n.require("$9", "wplocale.js");
4914
- C.fulltext = n.require("$10", "fulltext.js");
4915
- C.watchtext = n.require("$11", "LocoTextListener.js").listen;
4916
- C.tooltip = n.require("$12", "tooltip.js");
4917
- C.po = {
4918
- ed: n.require("$13", "poedit.js"),
4919
- kbd: n.require("$14", "hotkeys.js"),
4920
- init: n.require("$15", "po.js").create,
4921
- ace: n.require("$16", "ace.js").strf("php"),
4922
- ref: n.require("$17", "refs.js")
4923
- };
4924
- C.apis = n.require("$18", "apis.js");
4925
- C.fs = n.require("$19", "fsconn.js");
4926
- k("#loco-admin.wrap table.wp-list-table").each(function(f, d) {
4927
- n.require("$20", "tables.js").init(d);
4928
  });
4929
- C.validate = function(f) {
4930
- return "2.6.1" !== (/^\d+\.\d+\.\d+/.exec(f && f[0] || "") && RegExp.lastMatch) ? (C.notices.warn("admin.js is the wrong version (2.6.1). Please empty all relevant caches and reload this page."),
4931
  !1) : !0;
4932
  };
4933
  })(window, document, window.jQuery);
1
+ (function(z, w, k, J) {
2
+ var q = function() {
3
+ function e(c) {
4
+ throw Error("Failed to require " + c);
5
  }
6
+ var c = {};
7
  return {
8
+ register: function(e, p) {
9
+ c[e] = p;
10
  },
11
  require: function(k, p) {
12
+ return c[k] || e(p);
13
  },
14
+ include: function(k, p, h) {
15
+ return c[k] || (h ? e(p) : null);
16
  }
17
  };
18
  }();
19
+ q.register("$1", function(e, c, k) {
20
+ function p(h) {
21
+ var c = typeof h;
22
+ if ("string" === c) if (/[^ <>!=()%^&|?:n0-9]/.test(h)) console.error("Invalid plural: " + h); else return new Function("n", "return " + h);
23
+ "function" !== c && (h = function(a) {
24
+ return 1 != a;
25
  });
26
+ return h;
27
  }
28
+ e.init = function(h) {
29
+ function c(a, b, d) {
30
+ return (a = g[a]) && a[d] ? a[d] : b || "";
31
  }
32
+ function a(a) {
33
  return c(a, a, 0);
34
  }
35
+ function b(a, b) {
36
  return c(b + "" + a, a, 0);
37
  }
38
+ function d(a, b, d) {
39
+ d = Number(h(d));
40
+ isNaN(d) && (d = 0);
41
+ return c(a, d ? b : a, d);
42
  }
43
+ h = p(h);
44
+ var g = {};
45
  return {
46
+ __: a,
47
+ _x: b,
48
+ _n: d,
49
+ _: a,
50
+ x: b,
51
+ n: d,
52
  load: function(a) {
53
+ g = a || {};
54
  return this;
55
  },
56
  pluraleq: function(a) {
57
+ h = p(a);
58
  return this;
59
  }
60
  };
61
  };
62
+ return e;
63
+ }({}, z, w));
64
+ q.register("$2", function(e, c, k) {
65
+ e.ie = function() {
66
+ var e = !1, h = 0;
67
+ c.attachEvent && c.navigator && /MSIE (\d+)\./.exec(String(navigator.appVersion)) && (h = Number(RegExp.$1),
68
+ e = 11 > h);
69
  return function() {
70
+ return e;
71
  };
72
  }();
73
+ e.init = function() {
74
+ return e;
75
  };
76
+ return e;
77
+ }({}, z, w));
78
+ q.register("$3", function(e, c, k) {
79
+ Number.prototype.format = function(c, h, l) {
80
+ c = Math.pow(10, c || 0);
81
+ var a = Math.round(c * this) / c;
82
+ c = [];
83
+ var a = String(a), b = a.split("."), a = b[0], b = b[1], d = a.length;
84
  do {
85
+ c.unshift(a.substring(d - 3, d));
86
+ } while (0 < (d -= 3));
87
+ a = c.join(l || ",");
88
+ if (b) {
89
+ l = b;
90
+ var g;
91
+ for (c = l.length; "0" === l.charAt(--c); ) g = c;
92
+ g && (l = l.substring(0, g));
93
+ (b = l) && (a += (h || ".") + b);
94
  }
95
+ return a;
96
  };
97
+ Number.prototype.percent = function(c) {
98
+ var h = 0, l = this && c ? 100 * (this / c) : 0;
99
+ if (0 === l) return "0";
100
+ if (100 === l) return "100";
101
+ if (99 < l) l = Math.min(l, 99.9), c = l.format(++h); else if (.5 > l) {
102
+ l = Math.max(l, 1e-4);
103
  do {
104
+ c = l.format(++h);
105
+ } while ("0" === c && 4 > h);
106
+ c = c.substr(1);
107
+ } else c = l.format(0);
108
+ return c;
109
  };
110
+ return e;
111
+ }({}, z, w));
112
+ q.register("$4", function(e, c, k) {
113
+ Array.prototype.indexOf || (Array.prototype.indexOf = function(c) {
114
  if (null == this) throw new TypeError();
115
+ var h, l = Object(this), a = l.length >>> 0;
116
+ if (0 === a) return -1;
117
+ h = 0;
118
+ 1 < arguments.length && (h = Number(arguments[1]), h != h ? h = 0 : 0 != h && Infinity != h && -Infinity != h && (h = (0 < h || -1) * Math.floor(Math.abs(h))));
119
+ if (h >= a) return -1;
120
+ for (h = 0 <= h ? h : Math.max(a - Math.abs(h), 0); h < a; h++) if (h in l && l[h] === c) return h;
121
  return -1;
122
  });
123
+ return e;
124
+ }({}, z, w));
125
+ q.register("$5", function(e, c, q) {
126
+ c.JSON || (c.JSON = {
127
  parse: k.parseJSON,
128
  stringify: null
129
  });
130
+ return e = c.JSON;
131
+ }({}, z, w));
132
+ q.register("$6", function(e, c, k) {
133
+ e.trim = function(c, h) {
134
+ for (h || (h = " \n"); c && -1 !== h.indexOf(c.charAt(0)); ) c = c.substring(1);
135
+ for (;c && -1 !== h.indexOf(c.slice(-1)); ) c = c.substring(0, c.length - 1);
136
+ return c;
137
  };
138
+ e.sprintf = function(c) {
139
+ return e.vsprintf(c, [].slice.call(arguments, 1));
140
+ };
141
+ e.vsprintf = function(c, h) {
142
+ var l = 0;
143
+ return c.replace(/%(?:([1-9][0-9]*)\$)?([sud%])/g, function(a, b, d) {
144
+ return "%" === d ? "%" : (b ? h[Number(b) - 1] : h[l++]) || "";
145
  });
146
  };
147
+ return e;
148
+ }({}, z, w));
149
+ q.register("$21", function(e, c, k) {
150
+ function p(h) {
151
+ return function(c, a) {
152
+ for (var b = c[h] || 0; (c = c.offsetParent) && c !== (a || k.body); ) b += c[h] || 0;
153
+ return b;
154
  };
155
  }
156
+ e.top = p("offsetTop");
157
+ e.left = p("offsetLeft");
158
+ e.el = function(c, l) {
159
+ var a = k.createElement(c || "div");
160
+ l && (a.className = l);
161
+ return a;
162
  };
163
+ e.txt = function(c) {
164
+ return k.createTextNode(c || "");
165
  };
166
+ return e;
167
+ }({}, z, w));
168
+ q.register("$7", function(e, c, C) {
169
+ function p(a, b, m) {
170
+ function d() {
171
+ f();
172
+ v = setTimeout(b, m);
173
  }
174
+ function f() {
175
  v && clearTimeout(v);
176
  v = null;
177
  }
178
  var v;
179
+ d();
180
+ k(a).on("mouseenter", f).on("mouseleave", d);
181
  return {
182
  die: function() {
183
+ f();
184
  k(a).off("mouseenter mouseleave");
185
  }
186
  };
187
  }
188
+ function h(a, b) {
189
  a.fadeTo(b, 0, function() {
190
  a.slideUp(b, function() {
191
  a.remove();
192
+ k(c).triggerHandler("resize");
193
  });
194
  });
195
  return a;
196
  }
197
+ function l(a, b) {
198
+ function m(b) {
199
+ n[v] = null;
200
+ h(k(a), 250);
201
+ f && f.die();
202
+ var d;
203
+ if (d = b) b.stopPropagation(), b.preventDefault(), d = !1;
204
+ return d;
205
  }
206
+ function d(b) {
207
+ f && f.die();
208
+ return f = p(a, m, b);
209
+ }
210
+ var f, v, g, A = k(a), s = A.find("button");
211
+ 0 === s.length && (A.addClass("is-dismissible"), s = k('<button type="button" class="notice-dismiss"> </a>').appendTo(A));
212
+ s.off("click").on("click", m);
213
+ k(c).triggerHandler("resize");
214
+ y();
215
+ v = n.length;
216
+ n.push(m);
217
+ b && (f = d(b));
218
  return {
219
  link: function(b, v) {
220
+ var m = v || b, d = k(a).find("nav"), m = k("<nav></nav>").append(k("<a></a>").attr("href", b).text(m));
221
+ g ? (g.push(m.html()), d.html(g.join("<span> | </span>"))) : (g = [ m.html() ],
222
+ k(a).addClass("has-nav").append(m));
223
  return this;
224
  },
225
  stick: function() {
226
+ f && f.die();
227
+ f = null;
228
+ n[v] = null;
229
  return this;
230
  },
231
  slow: function(a) {
232
+ d(a || 1e4);
233
  return this;
234
  }
235
  };
236
  }
237
+ function a(a, b, m) {
238
+ var d = q.require("$21", "dom.js").el;
239
  a = k('<div class="notice notice-' + a + ' loco-notice inline"></div>').prependTo(k("#loco-notices"));
240
+ var f = k(d("p"));
241
+ m = k(d("span")).text(m);
242
+ b = k(d("strong", "has-icon")).text(b + ": ");
243
+ f.append(b).append(m).appendTo(a);
244
  return a;
245
  }
246
+ function b(b, m, d, f) {
247
+ b = a(d, m, b).css("opacity", "0").fadeTo(500, 1);
248
+ k(c).triggerHandler("resize");
249
+ return l(b, f);
250
  }
251
+ function d(a) {
252
+ return b(a, s, "warning");
253
  }
254
+ function g() {
255
  k("#loco-notices").find("div.notice").each(function(a, b) {
256
  if (-1 === b.className.indexOf("jshide")) {
257
+ var m = -1 === b.className.indexOf("notice-success") ? null : 5e3;
258
+ l(b, m);
259
  }
260
  });
261
  }
262
+ var n = [], f = c.console || {
263
  log: function() {}
264
+ }, y = Date.now || function() {
265
  return new Date().getTime();
266
+ }, B, s, m, A;
267
+ e.error = function(a) {
268
+ return b(a, B, "error");
269
  };
270
+ e.warn = d;
271
+ e.info = function(a) {
272
+ return b(a, m, "info");
273
  };
274
+ e.success = function(a) {
275
+ return b(a, A, "success", 5e3);
276
  };
277
+ e.warning = d;
278
+ e.log = function() {
279
+ f.log.apply(f, arguments);
280
  };
281
+ e.debug = function() {
282
+ (f.debug || f.log).apply(f, arguments);
283
  };
284
+ e.clear = function() {
285
+ for (var a = -1, b, m = n, d = m.length; ++a < d; ) (b = m[a]) && b.call && b();
286
+ n = [];
287
+ return e;
288
  };
289
+ e.create = a;
290
+ e.raise = function(a) {
291
+ (e[a.type] || e.error).call(e, a.message);
292
  };
293
+ e.convert = l;
294
+ e.init = function(a) {
295
+ B = a._("Error");
296
  s = a._("Warning");
297
  m = a._("Notice");
298
+ A = a._("OK");
299
+ setTimeout(g, 1e3);
300
+ return e;
301
  };
302
+ return e;
303
+ }({}, z, w));
304
+ q.register("$8", function(e, c, C) {
305
  function p(a) {
306
  var b = k("<pre>" + a + "</pre>").text();
307
  b && (b = b.replace(/[\r\n]+/g, "\n").replace(/(^|\n)\s+/g, "$1").replace(/\s+$/, ""));
308
  b || (b = a) || (b = "Blank response from server");
309
  return b;
310
  }
311
+ function h(a) {
312
  return (a = a.split(/[\r\n]/)[0]) ? (a = a.replace(/ +in +\S+ on line \d+/, ""),
313
  a = a.replace(/^[()! ]+Fatal error:\s*/, "")) : t._("Server returned invalid data");
314
  }
315
+ function l(a) {
316
+ c.console && console.error && console.error('No nonce for "' + a + '"');
317
  return "";
318
  }
319
+ function a(a, b, d) {
320
+ a[b] = d;
321
  }
322
+ function b(a, b, d) {
323
  a.push({
324
  name: b,
325
+ value: d
326
  });
327
  }
328
+ function d(a, b, d) {
329
+ a.append(b, d);
330
  }
331
+ function g(a, b, d, g) {
332
+ function r(b, m, v) {
333
+ if ("abort" !== m) {
334
+ var r = f || {
335
  _: function(a) {
336
  return a;
337
  }
338
+ }, g = b.status || 0, c = b.responseText || "", x = p(c), B = b.getResponseHeader("Content-Type") || "Unknown type", l = b.getResponseHeader("Content-Length") || c.length;
339
+ "success" === m && v ? n.error(v) : (n.error(h(x) + ".\n" + r._("Check console output for debugging information")),
340
+ n.log("Ajax failure for " + a, {
341
+ status: g,
342
+ error: m,
343
  message: v,
344
+ output: c
345
+ }), "parsererror" === m && (v = "Response not JSON"), n.log([ r._("Provide the following text when reporting a problem") + ":", "----", "Status " + g + ' "' + (v || r._("Unknown error")) + '" (' + B + " " + l + " bytes)", x, "====" ].join("\n")));
346
+ d && d.call && d(b, m, v);
347
+ y = b;
348
+ }
349
+ }
350
+ g.url = B;
351
+ g.dataType = "json";
352
+ var n = q.require("$7", "notices.js").clear();
353
+ y = null;
354
+ return k.ajax(g).fail(r).done(function(a, d, v) {
355
+ var f = a && a.data, g = a && a.notices, y = g && g.length, c = -1;
356
+ for (!f || a.error ? r(v, d, a && a.error && a.error.message) : b && b(f, d, v); ++c < y; ) n.raise(g[c]);
357
  });
358
  }
359
+ var n = {}, f, y, B = c.ajaxurl || "/wp-admin/admin-ajax.php";
360
+ e.init = function(a) {
361
+ n = a.nonces || n;
362
+ return e;
363
  };
364
+ e.localise = function(a) {
365
+ f = a;
366
+ return e;
367
  };
368
+ e.xhr = function() {
369
+ return y;
370
  };
371
+ e.strip = p;
372
+ e.parse = h;
373
+ e.submit = function(a, b, d) {
374
+ function f(a, b) {
375
  b.disabled ? b.setAttribute("data-was-disabled", "true") : b.disabled = !0;
376
  }
377
  function r(a, b) {
378
  b.getAttribute("data-was-disabled") || (b.disabled = !1);
379
  }
380
+ function y(a) {
381
  a.find(".button-primary").removeClass("loading");
382
  a.find("button").each(r);
383
  a.find("input").each(r);
385
  a.find("textarea").each(r);
386
  a.removeClass("disabled loading");
387
  }
388
+ var n = k(a), c = n.serialize();
389
  (function(a) {
390
  a.find(".button-primary").addClass("loading");
391
+ a.find("button").each(f);
392
+ a.find("input").each(f);
393
+ a.find("select").each(f);
394
+ a.find("textarea").each(f);
395
  a.addClass("disabled loading");
396
+ })(n);
397
+ return g(a.route.value, function(a, d, f) {
398
+ y(n);
399
+ b && b(a, d, f);
400
+ }, function(a, b, m) {
401
+ y(n);
402
+ d && d(a, b, m);
403
  }, {
404
  type: a.method,
405
+ data: c
406
  });
407
  };
408
+ e.post = function(f, m, y, h) {
409
+ var r = !0, F = m || {}, B = n[f] || l(f);
410
+ c.FormData && F instanceof FormData ? (r = !1, m = d) : m = Array.isArray(F) ? b : a;
411
+ m(F, "action", "loco_json");
412
+ m(F, "route", f);
413
+ m(F, "loco-nonce", B);
414
+ return g(f, y, h, {
415
  type: "post",
416
+ data: F,
417
  processData: r,
418
  contentType: r ? "application/x-www-form-urlencoded; charset=UTF-8" : !1
419
  });
420
  };
421
+ e.get = function(a, b, d, f) {
422
  b = b || {};
423
+ var r = n[a] || l(a);
424
  b.action = "loco_json";
425
  b.route = a;
426
  b["loco-nonce"] = r;
427
+ return g(a, d, f, {
428
  type: "get",
429
  data: b
430
  });
431
  };
432
+ e.setNonce = function(a, b) {
433
+ n[a] = b;
434
+ return e;
435
  };
436
+ return e;
437
+ }({}, z, w));
438
+ q.register("$22", {
439
  arab: 1,
440
  aran: 1,
441
  hebr: 1,
473
  ur: 1,
474
  yi: 1
475
  });
476
+ q.register("$9", function(e, c, k) {
477
  function p() {}
478
+ var h, l = q.require("$22", "rtl.json");
479
+ e.init = function() {
480
  return new p();
481
  };
482
+ e.cast = function(a) {
483
+ return a instanceof p ? a : "string" === typeof a ? e.parse(a) : e.clone(a);
484
  };
485
+ e.clone = function(a) {
486
+ var b, d = new p();
487
+ for (b in a) d[b] = a[b];
488
+ return d;
489
  };
490
+ e.parse = function(a) {
491
+ if (!(h || (h = /^([a-z]{2,3})(?:[-_]([a-z]{2}))?(?:[-_]([a-z0-9]{3,8}))?$/i)).exec(a)) return null;
492
+ var b = new p();
493
+ b.lang = RegExp.$1.toLowerCase();
494
+ if (a = RegExp.$2) b.region = a.toUpperCase();
495
+ if (a = RegExp.$3) b.variant = a.toLowerCase();
496
+ return b;
497
  };
498
+ c = p.prototype;
499
+ c.isValid = function() {
500
  return !!this.lang;
501
  };
502
+ c.isKnown = function() {
503
+ var a = this.lang;
504
+ return !(!a || "zxx" === a);
505
  };
506
+ c.toString = function(a) {
507
+ a = a || "_";
508
+ var b, d = this.lang || "zxx";
509
+ if (b = this.region) d += a + b;
510
+ if (b = this.variant) d += a + b;
511
+ return d;
512
  };
513
+ c.getIcon = function() {
514
+ for (var a = 3, b, d, g = [ "variant", "region", "lang" ], n = []; 0 !== a--; ) if (b = g[a],
515
+ d = this[b]) n.push(b), n.push(b + "-" + d.toLowerCase());
516
+ return n.join(" ");
517
  };
518
+ c.isRTL = function() {
519
+ return !!l[String(this.lang).toLowerCase()];
520
  };
521
+ c = null;
522
+ return e;
523
+ }({}, z, w));
524
+ q.register("$23", {
525
  "á": "a",
526
  "à": "a",
527
  "ă": "a",
933
  "ӣ": "и",
934
  "ӯ": "у"
935
  });
936
+ q.register("$10", function(e, c, k) {
937
+ e.init = function() {
938
+ function c(a) {
939
+ return f[a] || a;
940
  }
941
+ function h(a, b, d, m) {
942
  b = a.split(b);
943
+ for (var f = b.length; 0 !== f--; ) (a = b[f]) && null == m[a] && (d.push(a), m[a] = !0);
944
+ return d;
 
 
 
945
  }
946
+ function l(a) {
947
+ return h(String(a || "").toLowerCase().replace(g, c), n, [], {});
 
948
  }
949
  function a(a, b) {
950
+ for (var f = [], m = {}, A, x = b.length, r = n; 0 !== x--; ) (A = b[x]) && h(String(A || "").toLowerCase().replace(g, c), r, f, m);
951
+ d[a] = f;
952
+ }
953
+ function b(a, b) {
954
+ var f = [], m = -1, g = d, n = g.length, r, c, h, u, v, E, l = a.length, e = b ? !0 : !1;
955
+ a: for (;++m < n; ) if (h = g[m], null != h && (u = h.length)) {
956
  v = 0;
957
+ b: for (;v < l; v++) {
958
+ E = a[v];
959
+ for (r = 0; r < u; r++) if (c = h[r], 0 === c.indexOf(E)) continue b;
960
  continue a;
961
  }
962
+ f.push(e ? b[m] : m);
963
  }
964
+ return f;
965
  }
966
+ var d = [], g = /[^a-z0-9]/g, n = /[\-_\s.?!;:,*^+=~`"(){}<>\[\]\/\\\u00a0\u1680\u180e\u2000-\u206f\u2e00-\u2e7f\u3000-\u303f]+/, f = q.require("$23", "flatten.json");
967
  return {
968
+ split: l,
969
+ pull: function(a, d) {
970
+ return b(a, d);
971
  },
972
+ find: function(a, d) {
973
+ return b(l(a), d);
974
  },
975
  add: function(a, b) {
976
+ d[a] = l(b);
977
  },
978
+ push: function(b) {
979
+ a(d.length, b);
980
  },
981
+ index: function(b, d) {
982
+ a(b, d);
983
  },
984
  size: function() {
985
+ return d.length;
986
  },
987
  clear: function() {
988
+ d = [];
989
  },
990
  remove: function(a) {
991
+ d[a] = null;
992
  }
993
  };
994
  };
995
+ return e;
996
+ }({}, z, w));
997
+ q.register("$11", function(e, c, q) {
998
+ e.listen = function(e, h) {
999
+ function l() {
1000
+ m[g ? "show" : "hide"]();
1001
  }
1002
+ function a(a) {
1003
+ s && y.setAttribute("size", 2 + a.length);
1004
+ g = a;
1005
+ l();
1006
  return a;
1007
  }
1008
+ function b() {
1009
+ n = null;
1010
+ h(g);
1011
+ }
1012
+ function d(d) {
1013
+ var f = y.value;
1014
+ B && f === B && (f = "");
1015
+ f !== g ? (n && clearTimeout(n), a(f), d ? n = setTimeout(b, d) : b()) : n && null == d && (clearTimeout(n),
1016
+ b());
1017
+ }
1018
+ var g, n, f = 150, y = e instanceof jQuery ? e[0] : e, B = c.attachEvent && y.getAttribute("placeholder"), s = 1 === Number(y.size), m = k('<a href="#clear" tabindex="-1" class="icon clear"><span>clear</span></a>').on("click", function() {
1019
+ y.value = "";
1020
+ d();
1021
  return !1;
1022
  });
1023
+ a(y.value);
1024
+ k(y).on("input", function() {
1025
+ d(f);
1026
  return !0;
1027
  }).on("blur focus change", function() {
1028
+ d(null);
1029
  return !0;
1030
  }).after(m);
1031
+ l();
1032
  return {
1033
  delay: function(a) {
1034
+ f = a;
1035
  return this;
1036
  },
1037
+ ping: function(f) {
1038
+ f ? (n && clearTimeout(n), f = y.value, B && f === B && (f = ""), a(f), b(), f = void 0) : f = d();
1039
+ return f;
1040
  },
1041
+ val: function(b) {
1042
+ if (null == b) return g;
1043
+ n && clearTimeout(n);
1044
+ y.value = a(b);
1045
+ l();
1046
  },
1047
  el: function() {
1048
+ return y;
1049
  },
1050
  blur: function(a) {
1051
+ return k(y).on("blur", a);
1052
  },
1053
  destroy: function() {
1054
+ n && clearTimeout(n);
1055
  }
1056
  };
1057
  };
1058
+ return e;
1059
+ }({}, z, w));
1060
+ q.register("$12", function(e, c, q) {
1061
+ function p(a, b) {
1062
+ this.$element = k(a);
1063
+ this.options = b;
1064
  this.enabled = !0;
1065
  this.fixTitle();
1066
  }
1067
+ e.init = function(a, b) {
1068
+ var d = {
1069
  fade: !0,
1070
  offset: 5,
1071
+ delayIn: h,
1072
+ delayOut: l,
1073
+ anchor: a.attr("data-anchor"),
1074
+ gravity: a.attr("data-gravity") || "s"
1075
  };
1076
+ b && (d = k.extend({}, d, b));
1077
+ a.tipsy(d);
1078
  };
1079
+ e.delays = function(a, b) {
1080
+ h = a || 150;
1081
+ l = b || 100;
1082
  };
1083
+ e.kill = function() {
1084
  k("div.tipsy").remove();
1085
  };
1086
+ e.text = function(a, b) {
1087
+ b.data("tipsy").setTitle(a);
1088
  };
1089
+ var h, l;
1090
+ e.delays();
1091
+ k(q.body).on("overlayOpened overlayClosing", function(a) {
1092
+ e.kill();
1093
  return !0;
1094
  });
1095
  p.prototype = {
1096
  show: function() {
1097
+ var a = this.getTitle();
1098
+ if (a && this.enabled) {
1099
+ var b = this.tip();
1100
+ b.find(".tipsy-inner")[this.options.html ? "html" : "text"](a);
1101
+ b[0].className = "tipsy";
1102
+ b.remove().css({
1103
  top: 0,
1104
  left: 0
1105
+ }).prependTo(q.body);
1106
+ var a = (a = this.options.anchor) ? this.$element.find(a) : this.$element, a = k.extend({}, a.offset(), {
1107
+ width: a[0].offsetWidth,
1108
+ height: a[0].offsetHeight
1109
+ }), d = b[0].offsetWidth, g = b[0].offsetHeight, n = "function" == typeof this.options.gravity ? this.options.gravity.call(this.$element[0]) : this.options.gravity, f;
1110
+ switch (n.charAt(0)) {
1111
  case "n":
1112
+ f = {
1113
+ top: a.top + a.height + this.options.offset,
1114
+ left: a.left + a.width / 2 - d / 2
1115
  };
1116
  break;
1117
 
1118
  case "s":
1119
+ f = {
1120
+ top: a.top - g - this.options.offset,
1121
+ left: a.left + a.width / 2 - d / 2
1122
  };
1123
  break;
1124
 
1125
  case "e":
1126
+ f = {
1127
+ top: a.top + a.height / 2 - g / 2,
1128
+ left: a.left - d - this.options.offset
1129
  };
1130
  break;
1131
 
1132
  case "w":
1133
+ f = {
1134
+ top: a.top + a.height / 2 - g / 2,
1135
+ left: a.left + a.width + this.options.offset
1136
  };
1137
  }
1138
+ 2 == n.length && ("w" == n.charAt(1) ? f.left = a.left + a.width / 2 - 15 : f.left = a.left + a.width / 2 - d + 15);
1139
+ b.css(f).addClass("tipsy-" + n);
1140
+ b.find(".tipsy-arrow")[0].className = "tipsy-arrow tipsy-arrow-" + n.charAt(0);
1141
+ this.options.className && b.addClass("function" == typeof this.options.className ? this.options.className.call(this.$element[0]) : this.options.className);
1142
+ b.addClass("in");
1143
  }
1144
  },
1145
  hide: function() {
1146
  this.tip().remove();
1147
  },
1148
  fixTitle: function() {
1149
+ var a = this.$element, b = a.attr("title") || "";
1150
+ (b || "string" !== typeof a.attr("original-title")) && a.attr("original-title", b).removeAttr("title");
1151
  },
1152
  getTitle: function() {
1153
+ var a, b = this.$element, d = this.options;
1154
  this.fixTitle();
1155
+ "string" == typeof d.title ? a = b.attr("title" == d.title ? "original-title" : d.title) : "function" == typeof d.title && (a = d.title.call(b[0]));
1156
+ return (a = ("" + a).replace(/(^\s*|\s*$)/, "")) || d.fallback;
1157
  },
1158
+ setTitle: function(a) {
1159
+ var b = this.$element;
1160
+ b.attr("default-title") || b.attr("default-title", this.getTitle());
1161
+ null == a && (a = b.attr("default-title") || this.getTitle());
1162
+ b.attr("original-title", a);
1163
+ if (this.$tip) this.$tip.find(".tipsy-inner")[this.options.html ? "html" : "text"](a);
1164
  },
1165
  tip: function() {
1166
  this.$tip || (this.$tip = k('<div class="tipsy"></div>').html('<div class="tipsy-arrow"></div><div class="tipsy-inner"></div>'),
1181
  this.enabled = !this.enabled;
1182
  }
1183
  };
1184
+ k.fn.tipsy = function(a) {
1185
+ function b(b) {
1186
+ var d = k.data(b, "tipsy");
1187
+ d || (d = new p(b, k.fn.tipsy.elementOptions(b, a)), k.data(b, "tipsy", d));
1188
+ return d;
1189
  }
1190
+ function d() {
1191
+ var d = b(this), f = a.delayIn;
1192
+ d.hoverState = "in";
1193
+ 0 == f ? d.show() : (d.fixTitle(), setTimeout(function() {
1194
+ "in" == d.hoverState && d.show();
1195
+ }, f));
1196
  }
1197
+ function g() {
1198
+ var d = b(this), f = a.delayOut;
1199
+ d.hoverState = "out";
1200
+ 0 == f ? d.hide() : (d.tip().removeClass("in"), setTimeout(function() {
1201
+ "out" == d.hoverState && d.hide();
1202
+ }, f));
1203
+ }
1204
+ a = k.extend({}, k.fn.tipsy.defaults, a);
1205
+ a.live || this.each(function() {
1206
+ b(this);
1207
  });
1208
+ if ("manual" != a.trigger) {
1209
+ var n = a.live ? "live" : "bind", f = "hover" == a.trigger ? "mouseleave" : "blur";
1210
+ this[n]("hover" == a.trigger ? "mouseenter" : "focus", d)[n](f, g);
1211
  }
1212
  return this;
1213
  };
1226
  trigger: "hover",
1227
  anchor: null
1228
  };
1229
+ k.fn.tipsy.elementOptions = function(a, b) {
1230
+ return k.metadata ? k.extend({}, b, k(a).metadata()) : b;
1231
  };
1232
  k.fn.tipsy.autoNS = function() {
1233
+ return k(this).offset().top > k(q).scrollTop() + k(c).height() / 2 ? "s" : "n";
1234
  };
1235
  k.fn.tipsy.autoWE = function() {
1236
+ return k(this).offset().left > k(q).scrollLeft() + k(c).width() / 2 ? "e" : "w";
1237
  };
1238
+ k.fn.tipsy.autoBounds = function(a, b) {
1239
  return function() {
1240
+ var d = b[0], g = 1 < b.length ? b[1] : !1, n = k(q).scrollTop() + a, f = k(q).scrollLeft() + a, h = k(this);
1241
+ h.offset().top < n && (d = "n");
1242
+ h.offset().left < f && (g = "w");
1243
+ k(c).width() + k(q).scrollLeft() - h.offset().left < a && (g = "e");
1244
+ k(c).height() + k(q).scrollTop() - h.offset().top < a && (d = "s");
1245
+ return d + (g ? g : "");
1246
  };
1247
  };
1248
+ return e;
1249
+ }({}, z, w));
1250
+ q.register("$35", function(e, c, k) {
1251
  "".localeCompare || (String.prototype.localeCompare = function() {
1252
  return 0;
1253
  });
1254
  "".trim || (String.prototype.trim = function() {
1255
+ return q.require("$6", "string.js").trim(this, " \n\r\t");
1256
  });
1257
+ e.html = function() {
1258
+ function c() {
1259
+ a = /[<>&]/g;
1260
+ b = /(\r\n|\n|\r)/g;
1261
+ d = /(?:https?):\/\/(\S+)/gi;
1262
+ g = location.hostname;
1263
+ c = null;
1264
  }
1265
+ function h(a) {
1266
  return "&#" + a.charCodeAt(0) + ";";
1267
  }
1268
+ function l(a, b) {
1269
+ return '<a href="' + a + '" target="' + (b.indexOf(g) ? "_blank" : "_top") + '">' + b + "</a>";
1270
  }
1271
+ var a, b, d, g;
1272
+ return function(g, f) {
1273
+ c && c();
1274
+ var y = g.replace(a, h);
1275
+ f && (y = y.replace(d, l).replace(b, "<br />"));
1276
+ return y;
1277
  };
1278
  }();
1279
+ return e;
1280
+ }({}, z, w));
1281
+ q.register("$36", function(e, c, k) {
1282
  function p() {}
1283
+ var h, l, a = q.require("$22", "rtl.json");
1284
+ e.init = function() {
1285
  return new p();
1286
  };
1287
+ e.cast = function(a) {
1288
+ return a instanceof p ? a : "string" === typeof a ? e.parse(a) : e.clone(a);
1289
  };
1290
+ e.clone = function(a) {
1291
+ var d, g = new p();
1292
+ for (d in a) g[d] = a[d];
1293
+ return g;
1294
  };
1295
+ e.parse = function(a) {
1296
+ h || (l = /[-_+]/, h = /^([a-z]{2,3})(?:-([a-z]{4}))?(?:-([a-z]{2}|[0-9]{3}))?(?:-([0-9][a-z0-9]{3,8}|[a-z0-9]{5,8}))?(?:-([a-z]-[-a-z]+))?$/i);
1297
+ a = String(a).split(l).join("-");
1298
+ if (!h.exec(a)) return null;
1299
+ var d = new p();
1300
+ d.lang = RegExp.$1.toLowerCase();
1301
+ if (a = RegExp.$2) d.script = a.charAt(0).toUpperCase() + a.substr(1).toLowerCase();
1302
+ if (a = RegExp.$3) d.region = a.toUpperCase();
1303
+ if (a = RegExp.$4) d.variant = a.toLowerCase();
1304
+ if (a = RegExp.$5) d.extension = a;
1305
+ return d;
1306
  };
1307
+ c = p.prototype;
1308
+ c.isValid = function() {
1309
  return !!this.lang;
1310
  };
1311
+ c.isKnown = function() {
1312
  var a = this.lang;
1313
  return !(!a || "zxx" === a);
1314
  };
1315
+ c.toString = function(a) {
1316
  a = a || "-";
1317
+ var d, g = this.lang || "zxx";
1318
+ if (d = this.script) g += a + d;
1319
+ if (d = this.region) g += a + d;
1320
+ if (d = this.variant) g += a + d;
1321
+ if (d = this.extension) g += a + d;
1322
+ return g;
1323
  };
1324
+ c.getIcon = function() {
1325
+ for (var a = 4, d, g, c = [ "variant", "region", "script", "lang" ], f = []; 0 !== a--; ) if (d = c[a],
1326
+ g = this[d]) g.join && (g = g.join("-")), 1 === a && 3 === g.length ? f.push("region-m49") : f = f.concat([ d, d + "-" + g.toLowerCase() ]);
1327
+ return f.join(" ");
1328
  };
1329
+ c.isRTL = function() {
1330
+ return !!a[String(this.script || this.lang).toLowerCase()];
1331
  };
1332
+ c = null;
1333
+ return e;
1334
+ }({}, z, w));
1335
+ q.register("$37", function(e, c, k) {
1336
  function p(a) {
1337
+ c.console && console.error && console.error(a);
1338
  }
1339
+ function h() {
1340
  p("Method not implemented");
1341
  }
1342
+ function l() {}
1343
+ function a(a) {}
1344
+ l.prototype.toString = function() {
1345
  return "[Undefined]";
1346
  };
1347
+ a.prototype._validate = function(a) {
1348
+ var d, g, c = !0;
1349
+ for (d in this) g = this[d], g === h ? (p(a + "." + d + "() must be implemented"),
1350
+ c = !1) : g instanceof l && (p(a + "." + d + " must be defined"), c = !1);
1351
+ return c;
1352
  };
1353
+ e.init = function(b, d) {
1354
+ var g, c = new a();
1355
+ if (b) for (g = b.length; 0 !== g--; ) c[b[g]] = h;
1356
+ if (d) for (g = d.length; 0 !== g--; ) c[d[g]] = new l();
1357
+ return c;
1358
  };
1359
+ e.validate = function(a) {
1360
+ var d = /function (\w+)\(/.exec(a.toString()) ? RegExp.$1 : "";
1361
+ a.prototype._validate(d || "Object");
1362
  };
1363
+ return e;
1364
+ }({}, z, w));
1365
+ q.register("$48", function(e, c, k) {
1366
+ var p = c.requestAnimationFrame, h = c.cancelAnimationFrame, l = 0;
1367
+ if (!p || !h) for (var a in {
1368
  ms: 1,
1369
  moz: 1,
1370
  webkit: 1,
1371
  o: 1
1372
+ }) if (p = c[a + "RequestAnimationFrame"]) if (h = c[a + "CancelAnimationFrame"] || c[a + "CancelRequestAnimationFrame"]) break;
1373
+ p && h || (p = function(a) {
1374
+ var g = b();
1375
+ timeToCall = Math.max(0, 16 - (g - l));
1376
+ nextTime = g + timeToCall;
1377
+ timerId = c.setTimeout(function() {
1378
+ a(nextTime);
1379
  }, timeToCall);
1380
+ l = nextTime;
1381
  return timerId;
1382
+ }, h = function(a) {
1383
  clearTimeout(a);
1384
  });
1385
+ var b = Date.now || function() {
1386
  return new Date().getTime();
1387
  };
1388
+ e.loop = function(a, b) {
1389
  function c() {
1390
+ y = p(c, b);
1391
+ a(f++);
1392
  }
1393
+ var f = 0, y;
1394
  c();
1395
  return {
1396
  stop: function() {
1397
+ y && h(y);
1398
+ y = null;
1399
  }
1400
  };
1401
  };
1402
+ return e;
1403
+ }({}, z, w));
1404
+ q.register("$45", function(e, c, k) {
1405
+ function p(b, d, f, m) {
1406
+ if (a) {
1407
+ var g = f;
1408
+ f = function(a) {
1409
+ if ((a.MSPOINTER_TYPE_TOUCH || "touch") === a.pointerType) return g(a);
1410
  };
1411
  }
1412
+ b.addEventListener(d, f, m);
1413
  return {
1414
  unbind: function() {
1415
+ b.removeEventListener(d, f, m);
1416
  }
1417
  };
1418
  }
1419
+ function h(a) {
1420
  a.preventDefault();
1421
  a.stopPropagation();
1422
  return !1;
1423
  }
1424
+ var l, a = !!c.navigator.msPointerEnabled, b = a ? "MSPointerDown" : "touchstart", d = a ? "MSPointerMove" : "touchmove", g = a ? "MSPointerUp" : "touchend";
1425
+ e.ok = function(a) {
1426
+ null == l && (l = "function" === typeof k.body.addEventListener);
1427
+ l && a && a(e);
1428
+ return l;
1429
  };
1430
+ e.ms = function() {
1431
+ return a;
1432
  };
1433
+ e.dragger = function(a, f) {
1434
+ function c(b) {
1435
+ a.addEventListener(b, A[b], !1);
1436
  }
1437
+ function m(b) {
1438
+ a.removeEventListener(b, A[b], !1);
1439
  }
1440
+ var A = {};
1441
+ A[b] = function(a) {
1442
+ n(a, function(d, m) {
1443
+ m.type = b;
1444
+ f(a, m, x);
1445
  });
1446
+ c(d);
1447
+ c(g);
1448
  return !0;
1449
  };
1450
+ A[g] = function(a) {
1451
+ m(d);
1452
+ m(g);
1453
+ n(a, function(b, d) {
1454
+ d.type = g;
1455
+ f(a, d, x);
1456
  });
1457
  return !0;
1458
  };
1459
+ A[d] = function(a) {
1460
+ n(a, function(b, m) {
1461
+ m.type = d;
1462
+ f(a, m, x);
1463
  });
1464
+ return h(a);
1465
  };
1466
+ c(b);
1467
+ var x = {
1468
  kill: function() {
1469
+ m(b);
1470
+ m(d);
1471
+ m(g);
1472
+ a = x = f = null;
1473
  }
1474
  };
1475
+ return x;
1476
  };
1477
+ e.swiper = function(c, l, s) {
1478
  function m(a) {
1479
  c.addEventListener(a, u[a], !1);
1480
  }
1481
+ function A(a) {
1482
  c.removeEventListener(a, u[a], !1);
1483
  }
1484
+ function x() {
1485
  r && r.stop();
1486
  r = null;
1487
  }
1488
+ var r, F, e, u = {}, v = [], E = [], k = [];
1489
+ u[b] = function(a) {
1490
+ F = !1;
1491
+ x();
1492
+ var b = f();
1493
+ n(a, function(a, d) {
1494
  v[a] = b;
1495
+ E[a] = d.clientX;
1496
+ k[a] = d.clientY;
1497
  });
1498
+ e = c.scrollLeft;
1499
  return !0;
1500
  };
1501
+ u[g] = function(a) {
1502
+ n(a, function(a, b) {
1503
+ var d = f() - v[a], m = E[a] - b.clientX, d = Math.abs(m) / d;
1504
+ l(d, m ? 0 > m ? -1 : 1 : 0);
1505
  });
1506
+ e = null;
1507
  return !0;
1508
  };
1509
+ u[d] = function(a) {
1510
+ var b, d;
1511
+ null == e || n(a, function(a, f) {
1512
+ b = E[a] - f.clientX;
1513
+ d = k[a] - f.clientY;
1514
  });
1515
+ if (d && Math.abs(d) > Math.abs(b)) return F = !0;
1516
+ b && (F = !0, c.scrollLeft = Math.max(0, e + b));
1517
+ return h(a);
1518
  };
1519
+ if (!a || s) m(b), m(d), m(g), a && (c.className += " mstouch");
1520
  return {
1521
  kill: function() {
1522
+ A(b);
1523
+ A(d);
1524
+ A(g);
1525
+ x();
1526
  },
1527
  swiped: function() {
1528
+ return F;
1529
  },
1530
  ms: function() {
1531
+ return a;
1532
  },
1533
+ snap: function(b) {
1534
+ a && !s && (c.style["-ms-scroll-snap-points-x"] = "snapInterval(0px," + b + "px)",
1535
  c.style["-ms-scroll-snap-type"] = "mandatory", c.style["-ms-scroll-chaining"] = "none");
1536
  },
1537
+ scroll: function(a, b, d) {
1538
+ x();
1539
+ var f = c.scrollLeft, m = a > f ? 1 : -1, v = Math[1 === m ? "min" : "max"], g = Math.round(16 * b * m);
1540
+ return r = q.require("$48", "fps.js").loop(function(b) {
1541
+ b && (f = Math.max(0, v(a, f + g)), c.scrollLeft = f, a === f && (x(), d && d(f)));
1542
  }, c);
1543
  }
1544
  };
1545
  };
1546
+ e.start = function(a, d) {
1547
+ return p(a, b, d, !1);
1548
  };
1549
+ e.move = function(a, b) {
1550
+ return p(a, d, b, !1);
1551
  };
1552
+ e.end = function(a, b) {
1553
+ return p(a, g, b, !1);
1554
  };
1555
+ var n = e.each = function(b, d) {
1556
+ if (a) (b.MSPOINTER_TYPE_TOUCH || "touch") === b.pointerType && d(0, b); else for (var f = -1, m = (b.originalEvent || b).changedTouches || []; ++f < m.length; ) d(f, m[f]);
1557
+ }, f = Date.now || function() {
1558
  return new Date().getTime();
1559
  };
1560
+ return e;
1561
+ }({}, z, w));
1562
+ q.register("$49", function(e, c, q) {
1563
+ e.init = function(c) {
1564
+ function h() {
1565
+ d.style.top = String(-c.scrollTop) + "px";
1566
  return !0;
1567
  }
1568
+ function l() {
1569
+ var b = d;
1570
+ b.textContent = c.value;
1571
+ b.innerHTML = b.innerHTML.replace(/[ \t]/g, a).split(/(?:\n|\r\n?)/).join('<span class="eol crlf"></span>\r\n') + '<span class="eol eof"></span>';
1572
  return !0;
1573
  }
1574
+ function a(a) {
1575
  return '<span class="x' + a.charCodeAt(0).toString(16) + '">' + a + "</span>";
1576
  }
1577
+ var b = c.parentNode, d = b.insertBefore(q.createElement("div"), c);
1578
+ k(c).on("input", l).on("scroll", h);
1579
+ k(b).addClass("has-mirror");
1580
+ d.className = "ta-mirror";
1581
+ var g = c.offsetWidth - c.clientWidth;
1582
+ 2 < g && (d.style.marginRight = String(g - 2) + "px");
1583
+ l();
1584
+ h();
1585
  return {
1586
  kill: function() {
1587
+ k(c).off("input", l).off("scroll", h);
1588
+ b.removeChild(d);
1589
+ d = null;
1590
+ k(b).removeClass("has-mirror");
1591
  }
1592
  };
1593
  };
1594
+ return e;
1595
+ }({}, z, w));
1596
+ q.register("$29", function(e, c, k) {
1597
+ function p(a, b) {
1598
+ for (var d = 0, g = -1, n = b && c[b], f = h[a] || [], y = f.length; ++g < y; ) callback = f[g],
1599
+ "function" === typeof callback && (callback(n), d++);
1600
+ return d;
1601
  }
1602
+ var h = {}, l;
1603
+ e.load = function(a, b, d) {
1604
+ function g() {
1605
+ y && (clearTimeout(y), y = null);
1606
+ l && (l.onreadystatechange = null, l = l = l.onload = null);
1607
+ a && (delete h[a], a = null);
1608
  }
1609
+ function n(b, f) {
1610
+ var c = l && l.readyState;
1611
+ if (f || !c || "loaded" === c || "complete" === c) f || p(a, d), g();
1612
  }
1613
+ function f() {
1614
+ if (0 === p(a)) throw Error('Failed to load "' + (d || a) + '"');
1615
+ g();
1616
  }
1617
+ if (d && c[d]) "function" === typeof b && b(c[d]); else if (null != h[a]) h[a].push(b); else {
1618
+ h[a] = [ b ];
1619
+ var y = setTimeout(f, 4e3), l = k.createElement("script");
1620
+ l.setAttribute("src", a);
1621
+ l.setAttribute("async", "true");
1622
+ l.onreadystatechange = n;
1623
+ l.onload = n;
1624
+ l.onerror = f;
1625
+ l.onabort = g;
1626
+ k.getElementsByTagName("head")[0].appendChild(l);
1627
  }
1628
  };
1629
+ e.stat = function(a) {
1630
+ var b;
1631
+ if (!(b = l)) {
1632
+ for (var d, c, h = k.getElementsByTagName("script"), f = -1, y = h.length; ++f < y; ) if (b = h[f].getAttribute("src")) if (d = b.indexOf("/lib/vendor"),
1633
+ -1 !== d) {
1634
+ c = b.substr(0, d);
1635
  break;
1636
  }
1637
+ b = l = c || "/static";
1638
  }
1639
+ return b + a;
1640
  };
1641
+ return e;
1642
+ }({}, z, w));
1643
+ q.register("$16", function(e, c, C) {
1644
  function p(a, b) {
1645
  a.setReadOnly(!1);
1646
+ a.on("change", function(a, d) {
1647
+ return b.val(d.getValue());
1648
  });
1649
  a.on("focus", function() {
1650
  return b.focus();
1653
  return b.blur();
1654
  });
1655
  }
1656
+ function h(a) {
1657
  a.off("change");
1658
  a.off("focus");
1659
  a.off("blur");
1660
  }
1661
+ function l(a) {
1662
+ h(a);
1663
  a.setReadOnly(!0);
1664
  a.setHighlightGutterLine(!1);
1665
  a.setHighlightActiveLine(!1);
1666
  }
1667
+ function a(a, d) {
1668
+ function c() {
1669
+ this.HighlightRules = g;
1670
  }
1671
+ var g = b(d), m = a.require, h = m("ace/lib/oop");
1672
+ h.inherits(g, m("ace/mode/text_highlight_rules").TextHighlightRules);
1673
+ h.inherits(c, m("ace/mode/text").Mode);
1674
+ return new c();
1675
  }
1676
+ function b(a) {
1677
  return function() {
1678
  var b = {
1679
  start: [ {
1698
  token: "constant.language",
1699
  regex: /<\/?[:a-z]+[^>]*>/
1700
  } ]
1701
+ }, c = d(a);
1702
  "icu" === a ? b = {
1703
  start: b.start.concat([ {
1704
  token: "icu-quoted",
1740
  this.$rules = b;
1741
  };
1742
  }
1743
+ function d(a) {
1744
  switch (a) {
1745
  case "objc":
1746
  return /%(?:\d+\$)?[-+'0# ]*\d*(?:\.\d+|\.\*(?:\d+\$)?)?(?:hh?|ll?|[qjzTL])?[sScCdDioOuUxXfFeEgGaAp%@]/;
1760
  case "auto":
1761
  return /%(?:\d+\$|\([_A-Za-z][_A-Za-z0-9]*\))?(?:[-+0]?\d*(\.\d+)?[duxoefgaDUXOEFGA]|[@scSC%])/;
1762
 
1763
+ case n:
1764
+ return g || "%%";
1765
  }
1766
  }
1767
+ var g, n = "auto";
1768
+ e.init = function(b, d, g) {
1769
+ var e, m = !1, A = g || n, x = b.parentNode, r = x.appendChild(C.createElement("div"));
1770
+ k(x).addClass("has-proxy has-ace");
1771
+ q.require("$29", "remote.js").load("https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.1/ace.js", function(c) {
1772
  if (r) {
1773
+ if (!c) throw Error("Failed to load code editor");
1774
+ e = c.edit(r);
1775
+ var g = e.session, h = e.renderer;
1776
+ e.$blockScrolling = Infinity;
1777
+ e.setShowInvisibles(m);
1778
+ e.setWrapBehavioursEnabled(!1);
1779
+ e.setBehavioursEnabled(!1);
1780
+ e.setHighlightActiveLine(!1);
1781
+ g.setUseSoftTabs(!1);
1782
+ h.setShowGutter(!0);
1783
+ h.setPadding(10);
1784
+ h.setScrollMargin(8);
1785
+ g.setMode(a(c, A));
1786
+ e.setValue(b.value, -1);
1787
+ g.setUseWrapMode(!0);
1788
+ d ? p(e, d) : l(e);
1789
  }
1790
  }, "ace");
1791
  return {
1792
  kill: function() {
1793
+ e && (h(e), e.destroy(), e = null);
1794
+ r && (x.removeChild(r), k(x).removeClass("has-proxy has-ace"), r = null);
1795
  return this;
1796
  },
1797
  disable: function() {
1798
+ e && l(e);
1799
+ d = null;
1800
  return this;
1801
  },
1802
  enable: function(a) {
1803
+ d = a;
1804
+ e && p(e, a);
1805
  return this;
1806
  },
1807
  resize: function() {
1808
+ e && e.resize();
1809
  return this;
1810
  },
1811
  val: function(a) {
1812
+ e && a !== e.getValue() && e.setValue(a, -1);
1813
  return this;
1814
  },
1815
  invs: function(a) {
1816
  a = a || !1;
1817
+ m !== a && (m = a, e && e.setShowInvisibles(a));
1818
  return this;
1819
  },
1820
+ strf: function(b) {
1821
+ b = b || n;
1822
+ b !== A && (A = b, e && e.session.setMode(a(c.ace, b)));
1823
  return this;
1824
  },
1825
  focus: function() {
1827
  }
1828
  };
1829
  };
1830
+ e.strf = function(a, b) {
1831
+ n = a;
1832
+ g = b;
1833
+ return e;
1834
  };
1835
+ return e;
1836
+ }({}, z, w));
1837
+ q.register("$50", function(e, c, C) {
1838
+ function p(a, d) {
1839
  function c() {
1840
+ return d.val(a.getContent());
1841
  }
1842
  a.on("input", c);
1843
  a.on("change", c);
1844
  a.on("focus", function() {
1845
+ return d.focus();
1846
  });
1847
  a.on("blur", function() {
1848
+ return d.blur();
1849
  });
1850
  a.setMode("design");
1851
  }
1852
+ function h(a) {
1853
  a.off("input");
1854
  a.off("change");
1855
  a.off("focus");
1856
  a.off("blur");
1857
  }
1858
+ function l(a) {
1859
+ h(a);
1860
  a.setMode("readonly");
1861
  }
1862
+ var a = 0;
1863
+ e.load = function(a) {
1864
+ var d = q.require("$29", "remote.js");
1865
+ d.load(d.stat("/lib/tinymce.min.js"), a, "tinymce");
1866
+ return e;
1867
  };
1868
+ e.init = function(b, d) {
1869
+ function c(a) {
1870
+ B = a;
1871
  s = "<p>" === a.substr(0, 3) && "</p>" === a.substr(-4);
1872
  return a.replace(/(<\/?)script/gi, "$1loco:script");
1873
  }
1874
+ function n(a) {
1875
+ f = a;
1876
  a._getContent = a.getContent;
1877
  a.getContent = function(a) {
1878
  a = this._getContent(a);
1879
  a = a.replace(/(<\/?)loco:script/gi, "$1script");
1880
  if (!s && "<p>" === a.substr(0, 3) && "</p>" === a.substr(-4)) {
1881
  var b = a.substr(3, a.length - 7);
1882
+ if (b === B || -1 === b.indexOf("</p>")) a = b;
1883
  }
1884
  return a;
1885
  };
1886
  a._setContent = a.setContent;
1887
  a.setContent = function(a, b) {
1888
+ return this._setContent(c(a), b);
1889
  };
1890
+ d ? (p(a, d), d.reset()) : l(a);
1891
+ k(x).removeClass("loading");
1892
  }
1893
+ var f, y = !1, B = "", s = !1, m = b.parentNode, A = m.parentNode, x = m.appendChild(C.createElement("div")), r = A.insertBefore(C.createElement("nav"), m);
1894
+ r.id = "_tb" + String(++a);
1895
  k(m).addClass("has-proxy has-mce");
1896
+ k(x).addClass("mce-content-body loading").html(c(b.value));
1897
+ e.load(function(a) {
1898
  if (!a) throw Error("Failed to load HTML editor");
1899
+ x && a.init({
1900
  inline: !0,
1901
+ target: x,
1902
  hidden_input: !1,
1903
  theme: "modern",
1904
  skin: !1,
1935
  entities: "38,amp,60,lt,62,gt,160,nbsp",
1936
  entity_encoding: "named",
1937
  keep_styles: !1,
1938
+ init_instance_callback: n
1939
  });
1940
  });
1941
  return {
1942
+ val: function(a) {
1943
+ a = c(a);
1944
+ null == f ? (b.value = a, k(x).html(a)) : f.getContent() !== a && f.setContent(a);
1945
+ d && d.val(a);
1946
  return this;
1947
  },
1948
  kill: function() {
1949
+ f && (d && d.val(f.getContent()), h(f), f.destroy(), f = null);
1950
+ x && (m.removeChild(x), k(m).removeClass("has-proxy has-mce"), x = null);
1951
+ r && (A.removeChild(r), r = null);
1952
  return this;
1953
  },
1954
  enable: function(a) {
1955
+ d = a;
1956
+ f && p(f, a);
1957
  return this;
1958
  },
1959
  disable: function() {
1960
+ f && l(f);
1961
+ d = null;
1962
  return this;
1963
  },
1964
  focus: function() {
1965
+ f && d && f.focus();
1966
  return this;
1967
  },
1968
  invs: function(a) {
1969
  a = a || !1;
1970
+ y !== a && (y = a, k(m)[a ? "addClass" : "removeClass"]("show-invs"));
1971
  return this;
1972
  }
1973
  };
1974
  };
1975
+ return e;
1976
+ }({}, z, w));
1977
+ q.register("$46", function(e, c, C) {
1978
+ function p(a) {
1979
+ function b() {
1980
+ e && (B.off("input", d), e = !1);
 
 
 
 
1981
  }
1982
  function d() {
1983
+ var b = a.value;
1984
+ b !== m && (B.trigger("changing", [ b, m ]), m = b);
1985
  }
1986
+ function c() {
1987
+ d();
1988
+ e && A !== m && B.trigger("changed", [ m ]);
1989
+ }
1990
+ function h() {
1991
+ l = a;
1992
+ A = m;
1993
+ e || (B.on("input", d), e = !0);
1994
+ B.trigger("editFocus");
1995
  s.addClass("has-focus");
1996
  return !0;
1997
  }
1998
+ function f() {
1999
+ l === a && (l = null);
2000
+ B.trigger("editBlur");
2001
  s.removeClass("has-focus");
2002
+ e && (c(), b());
2003
  return !0;
2004
  }
2005
+ var e = !1, B = k(a), s = k(a.parentNode), m = a.value, A;
2006
+ B.on("blur", f).on("focus", h);
2007
  return {
2008
+ val: function(b) {
2009
+ m !== b && (a.value = b, B.triggerHandler("input"), m = b);
2010
  return !0;
2011
  },
2012
  kill: function() {
2013
+ b();
2014
+ B.off("blur", f).off("focus", h);
2015
  },
2016
  fire: function() {
2017
  m = null;
2018
+ d();
2019
  },
2020
+ ping: c,
2021
+ blur: f,
2022
+ focus: h,
2023
  reset: function() {
2024
+ A = m = a.value;
2025
  }
2026
  };
2027
  }
2028
+ function h(a) {
2029
+ this.e = a;
2030
  }
2031
+ var l;
2032
+ e._new = function(a) {
2033
+ return new h(a);
2034
  };
2035
+ e.init = function(a) {
2036
+ var b = new h(a);
2037
+ a.disabled ? (a.removeAttribute("disabled"), b.disable()) : a.readOnly ? b.disable() : b.enable();
2038
+ return b;
2039
  };
2040
+ TextAreaPrototype = h.prototype;
2041
  TextAreaPrototype.destroy = function() {
2042
  this.unlisten();
2043
+ var a = this.p;
2044
+ a && (a.kill(), this.p = null);
2045
  this.e = null;
2046
  };
2047
+ TextAreaPrototype.reload = function(a, b) {
2048
+ var d = this.l;
2049
+ d && !b && (this.disable(), d = null);
2050
+ this.val(a || "");
2051
+ b && !d && this.enable();
2052
  return this;
2053
  };
2054
+ TextAreaPrototype.val = function(a) {
2055
+ var b = this.e;
2056
+ if (null == a) return b.value;
2057
+ var d = this.l, c = this.p;
2058
+ c && c.val(a);
2059
+ d && d.val(a);
2060
+ d || b.value === a || (b.value = a, k(b).triggerHandler("input"));
2061
  return this;
2062
  };
2063
  TextAreaPrototype.fire = function() {
2069
  return this;
2070
  };
2071
  TextAreaPrototype.focus = function() {
2072
+ var a = this.p;
2073
+ a ? a.focus() : k(this.e).focus();
2074
  };
2075
  TextAreaPrototype.focused = function() {
2076
+ return l && l === this.el;
2077
  };
2078
  TextAreaPrototype.parent = function() {
2079
  return this.e.parentNode;
2080
  };
2081
+ TextAreaPrototype.attr = function(a, b) {
2082
+ var d = this.e;
2083
+ if (1 === arguments.length) return d.getAttribute(a);
2084
+ null == b ? d.removeAttribute(a) : d.setAttribute(a, b);
2085
  return this;
2086
  };
2087
  TextAreaPrototype.editable = function() {
2088
  return !!this.l;
2089
  };
2090
  TextAreaPrototype.enable = function() {
2091
+ var a = this.p;
2092
  this.e.removeAttribute("readonly");
2093
  this.listen();
2094
+ a && a.enable && a.enable(this.l);
2095
  return this;
2096
  };
2097
  TextAreaPrototype.disable = function() {
2098
+ var a = this.p;
2099
  this.e.setAttribute("readonly", !0);
2100
  this.unlisten();
2101
+ a && a.disable && a.disable();
2102
  return this;
2103
  };
2104
  TextAreaPrototype.listen = function() {
2105
+ var a = this.l;
2106
+ a && a.kill();
2107
  this.l = p(this.e);
2108
  return this;
2109
  };
2110
  TextAreaPrototype.unlisten = function() {
2111
+ var a = this.l;
2112
+ a && (a.kill(), this.l = null);
2113
  return this;
2114
  };
2115
+ TextAreaPrototype.setInvs = function(a, b) {
2116
+ var d = this.i || !1;
2117
+ if (b || d !== a) this._i && (this._i.kill(), delete this._i), (d = this.p) ? d.invs && d.invs(a) : a && (this._i = q.require("$49", "mirror.js").init(this.e)),
2118
+ this.i = a;
2119
  return this;
2120
  };
2121
  TextAreaPrototype.getInvs = function() {
2122
  return this.i || !1;
2123
  };
2124
+ TextAreaPrototype.setMode = function(a) {
2125
+ var b = this.p, d = this.i || !1;
2126
+ a !== (this.m || "") && (this.m = a, b && b.kill(), this.p = b = "code" === a ? q.require("$16", "ace.js").init(this.e, this.l, this["%"]) : "html" === a ? q.require("$50", "mce.js").init(this.e, this.l) : null,
2127
+ this.setInvs(d, !0), l && this.focus());
2128
  return this;
2129
  };
2130
+ TextAreaPrototype.setStrf = function(a) {
2131
+ this["%"] = a;
2132
+ "code" === this.m && this.p.strf(a);
2133
  return this;
2134
  };
2135
+ TextAreaPrototype.name = function(a) {
2136
+ this.e.setAttribute("name", a);
2137
  return this;
2138
  };
2139
+ TextAreaPrototype.placeholder = function(a) {
2140
+ this.e.setAttribute("placeholder", a);
2141
  return this;
2142
  };
2143
  TextAreaPrototype.redraw = function() {
2144
+ var a = this.p;
2145
+ a && a.resize && a.resize();
2146
  };
2147
  TextAreaPrototype = null;
2148
+ return e;
2149
+ }({}, z, w));
2150
+ q.register("$47", function(e, c, q) {
2151
  function p(a) {
2152
+ var b = c.console;
2153
  b && b.error && b.error(a);
2154
  }
2155
+ function h(a) {
2156
+ var b = q.createElement("div");
2157
  a && b.setAttribute("class", a);
2158
  return b;
2159
  }
2160
+ function l(a) {
2161
  return function() {
2162
  a.resize();
2163
  return this;
2164
  };
2165
  }
2166
+ function a(a) {
2167
  return function(b) {
2168
+ for (var d = b.target, f = d.$index; null == f && "DIV" !== d.nodeName && (d = d.parentElement); ) f = d.$index;
2169
+ null != f && (b.stopImmediatePropagation(), a.select(f));
2170
  return !0;
2171
  };
2172
  }
2173
+ function b(a) {
2174
  return function() {
2175
  a.redrawDirty() && a.redraw();
2176
  return !0;
2177
  };
2178
  }
2179
+ function d(a) {
2180
  return function(b) {
2181
+ var d;
2182
+ d = b.keyCode;
2183
+ if (40 === d) d = 1; else if (38 === d) d = -1; else return !0;
2184
  if (b.shiftKey || b.ctrlKey || b.metaKey || b.altKey) return !0;
2185
+ a.selectNext(d);
2186
  b.stopPropagation();
2187
  b.preventDefault();
2188
  return !1;
2189
  };
2190
  }
2191
+ function g(a, b, d) {
2192
+ function f(a) {
2193
  p("row[" + a + "] disappeared");
2194
  return {
2195
  cellVal: function() {
2197
  }
2198
  };
2199
  }
2200
+ return function(c) {
2201
+ var g = b || 0, h = d ? -1 : 1, v = a.rows || [];
2202
+ c.sort(function(a, b) {
2203
+ return h * (v[a] || f(a)).cellVal(g).localeCompare((v[b] || f(b)).cellVal(g));
2204
  });
2205
  };
2206
  }
2207
+ function n(a) {
2208
  this.w = a;
2209
  }
2210
+ function f(a) {
2211
  this.t = a;
2212
  this.length = 0;
2213
  }
2214
+ function y(a, b, d) {
2215
+ var f = q.createElement("div");
2216
+ f.className = d || "";
2217
+ this._ = f;
2218
  this.d = b || [];
2219
  this.i = a || 0;
2220
  this.length = b.length;
2221
  }
2222
+ function B(a) {
2223
  this.live = a;
2224
  this.rows = [];
2225
  }
2226
+ e.create = function(a) {
2227
+ return new n(a);
2228
+ };
2229
+ var s = n.prototype;
2230
+ s.init = function(f) {
2231
+ var c = this.w, g = c.id, r = c.splity(g + "-thead", g + "-tbody"), n = r[0], r = r[1], e = [], u = [], v = [], E = [];
2232
+ if (f) this.ds = f, this.idxs = u, this._idxs = null; else if (!(f = this.ds)) throw Error("No datasource");
2233
+ n.css.push("wg-thead");
2234
+ r.css.push("wg-tbody");
2235
+ f.eachCol(function(a, b, d) {
2236
+ v[a] = g + "-col-" + b;
2237
+ E[a] = d || b;
2238
  });
2239
+ for (var s = h(), B = -1, p = v.length, q = h("wg-cols"), C = n.splitx.apply(n, v); ++B < p; ) C[B].header(E[B]),
2240
+ q.appendChild(s.cloneNode(!1)).setAttribute("for", v[B]);
2241
+ f.eachRow(function(a, b, d) {
2242
+ e[a] = new y(a, b, d);
2243
  u[a] = a;
2244
  });
2245
+ this.rows = e;
2246
+ this.cols = q;
2247
  this.ww = null;
2248
+ this.root = s = r.body;
2249
+ this.head = n;
2250
+ n.redraw = l(this);
2251
+ n = r.fixed = C[0].bodyY() || 20;
2252
+ c.lock().resize(n, r);
2253
+ c.css.push("is-table");
2254
+ c.restyle();
2255
+ this.sc ? this._re_sort(p) : f.sort && f.sort(u);
2256
  this.redrawDirty();
2257
  this.render();
2258
+ k(s).attr("tabindex", "-1").on("keydown", d(this)).on("mousedown", a(this)).on("scroll", b(this));
2259
  return this;
2260
  };
2261
  s.clear = function() {
2266
  return this;
2267
  };
2268
  s.render = function() {
2269
+ for (var a, b, d = [], f = this.rows || [], c = -1, g, h = this.idxs, v = h.length, n = this.idxr = {}, e = this.r, l = this._r, y = this.root, s = this.cols; ++c < v; ) {
2270
+ 0 === c % 100 && (a = s.cloneNode(!0), b = new B(a), b.h = 2200, b.insert(y), d.push(b));
2271
+ g = h[c];
2272
+ n[g] = c;
2273
+ a = f[g];
2274
+ if (null == a) throw Error("Render error, no data at [" + g + "]");
2275
  a.page = b;
2276
  b.rows.push(a);
2277
  }
2278
  b && 100 !== b.size() && b.sleepH(22);
2279
+ this.pages = d;
2280
  this.mx = this.mn = null;
2281
  this.redrawDirty();
2282
  this.redraw();
2283
+ null == e ? null != l && (a = f[l]) && a.page && (delete this._r, this.select(l, !0)) : (a = f[e]) && a.page ? this.select(e, !0) : (this.deselect(),
2284
+ this._r = e);
2285
  return this;
2286
  };
2287
  s.resize = function() {
2288
+ var a = -1, b = this.ww || (this.ww = []), d = this.w, f = d.cells[0], c = f.body.childNodes, g = c.length, h = this.pages || [], v = h.length;
2289
+ for (d.redraw.call(f); ++a < g; ) b[a] = c[a].style.width;
2290
  if (v) {
2291
+ d = this.mx;
2292
+ for (a = this.mn; a <= d; a++) h[a].widths(b);
2293
  this.redrawDirty() && this.redraw();
2294
  }
2295
  };
2296
  s.redrawDirty = function() {
2297
+ var a = !1, b = this.root, d = b.scrollTop, b = b.clientHeight;
2298
+ this.sy !== d && (a = !0, this.sy = d);
2299
  this.vh !== b && (a = !0, this.vh = b);
2300
  return a;
2301
  };
2302
  s.redraw = function() {
2303
+ for (var a = 0, b = -1, d = null, f = null, c = this.ww, g = this.sy, h = this.vh, v = this.mn, n = this.mx, e = Math.max(0, g - 100), g = h + g + 100, l = this.pages || [], y = l.length; ++b < y && !(a > g); ) h = l[b],
2304
+ a += h.height(), a < e || (null === d && (d = b), f = b, h.rendered || h.render(c));
2305
+ if (v !== d) {
2306
+ if (null !== v && d > v) for (b = v; b < d; b++) {
2307
+ h = l[b];
2308
+ if (!h) throw Error("Shit!");
2309
+ h.rendered && h.sleep();
2310
  }
2311
+ this.mn = d;
2312
  }
2313
+ if (n !== f) {
2314
+ if (null !== n && f < n) for (b = n; b > f; b--) h = l[b], h.rendered && h.sleep();
2315
+ this.mx = f;
2316
  }
2317
  };
2318
  s.selected = function() {
2333
  s.td = function(a, b) {
2334
  return this.tr(a)[b];
2335
  };
2336
+ s.next = function(a, b, d) {
2337
+ null == d && (d = this.r || 0);
2338
+ var f = this.idxs, c = f.length, g = (this.idxr || {})[d];
2339
+ for (d = g; d !== (g += a) && !(0 <= g && c > g); ) if (b && c) g = 1 === a ? -1 : c,
2340
  b = !1; else return null;
2341
+ d = f[g];
2342
+ return null == d || null == this.rows[d] ? (p("Bad next: [" + g + "] does not map to data row"),
2343
+ null) : d;
2344
  };
2345
+ s.selectNext = function(a, b, d) {
2346
  a = this.next(a, b);
2347
+ null != a && this.r !== a && this.select(a, d);
2348
  return this;
2349
  };
2350
  s.deselect = function(a) {
2356
  return this.select(this.idxs[a]);
2357
  };
2358
  s.select = function(a, b) {
2359
+ var d = this.rows[a], f = d && d.page;
2360
+ if (!f) return this.deselect(!1), p("Row is filtered out"), this;
2361
  this.deselect(!0);
2362
+ var c, g = this.w.cells[1];
2363
+ f.rendered || (c = f.top(), g.scrollY(c), this.redrawDirty() && this.redraw());
2364
+ if (!d.rendered) return f.rendered || p("Failed to render page"), p("Row [" + d.i + "] not rendered"),
2365
  this;
2366
+ f = d.cells();
2367
+ k(f).addClass("selected");
2368
  this.r = a;
2369
+ b || (c = g.scrollY(), k(this.root).focus(), c !== g.scrollY() && g.scrollY(c));
2370
+ g.scrollTo(f[0], !0);
2371
+ this.w.fire("wgRowSelect", [ a, d.data() ]);
2372
  return this;
2373
  };
2374
  s.unfilter = function() {
2381
  return this.clear().render();
2382
  };
2383
  s.each = function(a) {
2384
+ for (var b, d = -1, f = this.rows || [], c = this.idxs || [], g = c.length; ++d < g; ) b = c[d],
2385
+ a(f[b], d, b);
2386
  return this;
2387
  };
2388
  s.sortable = function(a) {
2389
+ var b = this.sc || (this.sc = new f(this));
2390
  b.has(a) || b.add(a);
2391
  return this;
2392
  };
2393
  s._re_sort = function(a) {
2394
+ var b = -1, d = this.sc, c = d.active;
2395
+ for (this.sc = d = new f(this); ++b < a; ) d.add(b);
2396
+ c && (b = this.head.indexOf(c.id), -1 === b && (b = Math.min(c.idx, a - 1)), this.sort(b, c.desc));
2397
  return this;
2398
  };
2399
  s._sort = function(a, b) {
2401
  return a;
2402
  };
2403
  s.sort = function(a, b) {
2404
+ this._sort(this.idxs, g(this, a, b));
2405
  this.sc.activate(a, b);
2406
  return this;
2407
  };
2408
  s = null;
2409
+ s = f.prototype;
2410
  s.has = function(a) {
2411
  return null != this[a];
2412
  };
2413
  s.add = function(a) {
2414
+ var b = this, d = b.t.head.cells[a];
2415
  b[a] = {
2416
  desc: null,
2417
  idx: a,
2418
+ id: d.id
2419
  };
2420
  b.length++;
2421
+ d.addClass("wg-sortable").on("click", function(d) {
2422
+ if ("header" === d.target.nodeName.toLowerCase()) return d.stopImmediatePropagation(),
2423
  b.toggle(a), !1;
2424
  });
2425
  return b;
2429
  return this;
2430
  };
2431
  s.activate = function(a, b) {
2432
+ var d, f;
2433
+ d = this.active;
2434
+ var c = this[a], g = this.t.head.cells;
2435
+ d && (f = g[d.idx]) && (f.removeClass(d.css), d !== c && f.restyle());
2436
+ (f = g[a]) ? (c.desc = b, this.active = c, d = "wg-" + (b ? "desc" : "asc"), f.addClass(d).restyle(),
2437
+ c.css = d) : this.active = null;
2438
  return this;
2439
  };
2440
  s = null;
2441
+ s = y.prototype;
2442
  s.render = function(a) {
2443
+ var b, d = [], f = this._, c = this.length;
2444
+ if (f) {
2445
+ for (this.c = d; 0 !== c--; ) b = f.cloneNode(!1), d[c] = this.update(c, b), b.$index = this.i,
2446
+ a[c].appendChild(b);
2447
  this._ = null;
2448
+ } else for (d = this.c; 0 !== c--; ) a[c].appendChild(d[c]);
2449
  this.rendered = !0;
2450
  return this;
2451
  };
2452
  s.update = function(a, b) {
2453
+ var d = b || this.c[a] || {}, f = (this.d[a] || function() {})() || " ";
2454
+ null == f.innerHTML ? d.textContent = f : d.innerHTML = f.innerHTML;
2455
+ return d;
2456
  };
2457
  s.cells = function() {
2458
  return this.c || [ this._ ];
2459
  };
2460
  s.data = function() {
2461
+ for (var a = -1, b = [], d = this.length; ++a < d; ) b[a] = this.cellVal(a);
2462
  return b;
2463
  };
2464
  s.destroy = function() {
2470
  return String(a.textContent || a);
2471
  };
2472
  s = null;
2473
+ s = B.prototype;
2474
  s.size = function() {
2475
  return this.rows.length;
2476
  };
2477
  s.insert = function(a) {
2478
+ var b = this.h, d = h("wg-dead");
2479
+ d.style.height = String(b) + "px";
2480
+ a.appendChild(d);
2481
+ return this.dead = d;
2482
  };
2483
  s.top = function() {
2484
  return (this.rendered ? this.live : this.dead).offsetTop;
2490
  return a;
2491
  };
2492
  s.render = function(a) {
2493
+ for (var b, d = -1, f = this.rows, c = f.length, g = this.dead, h = this.live, v = h.childNodes; ++d < c; ) b = f[d],
2494
  b.rendered || b.render(v);
2495
+ c = a.length;
2496
+ for (d = 0; d < c; d++) v[d].style.width = a[d];
2497
+ g.parentNode.replaceChild(h, g);
2498
  this.rendered = !0;
2499
  this.h = null;
2500
  return this;
2501
  };
2502
  s.sleep = function() {
2503
+ var a = this.height(), b = this.live, d = this.dead;
2504
+ d.style.height = String(a) + "px";
2505
+ b.parentNode.replaceChild(d, b);
2506
  this.rendered = !1;
2507
  this.h = a;
2508
  return this;
2515
  return this;
2516
  };
2517
  s.widths = function(a) {
2518
+ for (var b = this.live.childNodes, d = a.length; 0 !== d--; ) b[d].style.width = a[d];
2519
  return this;
2520
  };
2521
  s.destroy = function() {
2522
+ var a = this.rendered ? this.live : this.dead, b = this.rows, d = b.length;
2523
+ for (a.parentNode.removeChild(a); 0 !== d--; ) b[d].destroy();
2524
  };
2525
  s = null;
2526
+ return e;
2527
+ }({}, z, w));
2528
+ q.register("$38", function(e, c, C) {
2529
  function p(a, b) {
2530
+ var d = a.id, f = d && m[d], c = f && f.parent();
2531
+ if (!f || !c) return null;
2532
+ var g = c.dir === s, d = g ? "X" : "Y", h = "page" + d, g = g ? B : y, n = g(c.el), d = b["offset" + d], e = c.el, l = e.className;
2533
+ null == d && (d = b[h] - g(a));
2534
+ d && (n += d);
2535
+ e.className = l + " is-resizing";
2536
  return {
2537
  done: function() {
2538
+ e.className = l;
2539
  },
2540
  move: function(a) {
2541
+ c.resize(a[h] - n, f);
2542
  return !0;
2543
  }
2544
  };
2545
  }
2546
+ function h(b, d) {
2547
+ function f() {
2548
+ k(C).off("mousemove", c);
2549
+ x && (x.done(), x = null);
2550
  return !0;
2551
  }
2552
+ function c(a) {
2553
+ x ? x.move(a) : f();
2554
  return !0;
2555
  }
2556
+ if (x) return !0;
2557
+ x = p(b.target, b);
2558
+ if (!x) return !0;
2559
+ k(C).one("mouseup", f).on("mousemove", c);
2560
+ return a(b);
2561
  }
2562
+ function l(a, b) {
2563
+ var d = b.type;
2564
+ "touchmove" === d ? x && x.move(b) : "touchstart" === d ? x = p(a.target, b) : "touchend" === d && x && (x.done(),
2565
+ x = null);
2566
  }
2567
+ function a(a) {
2568
  a.stopPropagation();
2569
  a.preventDefault();
2570
  return !1;
2571
  }
2572
+ function b(a) {
2573
+ var b = A;
2574
  b && b.redraw();
2575
  a && a.redraw();
2576
+ return A = a;
2577
  }
2578
+ function d(a, d) {
2579
+ var f = k(d).on("editFocus", function() {
2580
+ f.trigger("wgFocus", [ b(a) ]);
2581
  }).on("editBlur", function() {
2582
+ f.trigger("wgBlur", [ b(null) ]);
2583
  });
2584
  }
2585
+ function g(a) {
2586
+ var b = a.id, d = a.className;
2587
  this.id = b;
2588
  this.el = a;
2589
  this.pos = this.index = 0;
2590
+ this.css = [ d || "wg-root", "wg-cell" ];
2591
+ this._cn = d;
2592
  m[b] = this;
2593
  this.clear();
2594
  }
2595
+ var n = q.include("$44", "html.js") || q.include("$2", "html.js", !0), f = q.require("$21", "dom.js"), y = f.top, B = f.left, s = 1, m = {}, A, x = !1;
2596
+ e.init = function(a) {
2597
+ var b = new g(a);
2598
  b.redraw();
2599
+ q.require("$45", "touch.js").ok(function(b) {
2600
+ b.dragger(a, l);
2601
  });
2602
+ k(a).on("mousedown", h);
2603
  return b;
2604
  };
2605
+ c = g.prototype;
2606
+ c.fire = function(a, b) {
2607
+ var d = k.Event(a);
2608
+ d.cell = this;
2609
+ k(this.el).trigger(d, b);
2610
  return this;
2611
  };
2612
+ c.each = function(a) {
2613
+ for (var b = -1, d = this.cells, f = d.length; ++b < f; ) a(d[b], b);
2614
  return this;
2615
  };
2616
+ c.indexOf = function(a) {
2617
  return (a = m[a.id || String(a)]) && a.pid === this.id ? a.index : -1;
2618
  };
2619
+ c.on = function() {
2620
  return this.$("on", arguments);
2621
  };
2622
+ c.off = function() {
2623
  return this.$("off", arguments);
2624
  };
2625
+ c.find = function(a) {
2626
  return k(this.el).find(a);
2627
  };
2628
+ c.$ = function(a, b) {
2629
  k.fn[a].apply(k(this.el), b);
2630
  return this;
2631
  };
2632
+ c.addClass = function(a) {
2633
  this.css.push(a);
2634
  return this;
2635
  };
2636
+ c.removeClass = function(a) {
2637
  a = this.css.indexOf(a);
2638
  -1 !== a && this.css.splice(a, 1);
2639
  return this;
2640
  };
2641
+ c.parent = function() {
2642
  return this.pid && m[this.pid];
2643
  };
2644
+ c.splitx = function() {
2645
  return this._split(s, arguments);
2646
  };
2647
+ c.splity = function() {
2648
  return this._split(2, arguments);
2649
  };
2650
+ c._split = function(a, b) {
2651
  (this.length || this.field) && this.clear();
2652
+ for (var d = -1, c, v = b.length, h = 1 / v, n = 0; ++d < v; ) {
2653
+ c = f.el();
2654
+ this.body.appendChild(c);
2655
+ for (var e = c, l = b[d], y = l, s = 1; m[l]; ) l = y + "-" + ++s;
2656
+ e.id = l;
2657
+ c = new g(c);
2658
+ c.index = d;
2659
+ c.pid = this.id;
2660
+ c._locale(this.lang, this.rtl);
2661
+ c.pos = n;
2662
+ n += h;
2663
+ this.cells.push(c);
2664
  this.length++;
2665
  }
2666
  this.dir = a;
2667
  this.redraw();
2668
  return this.cells;
2669
  };
2670
+ c.destroy = function() {
2671
  this.clear();
2672
  delete m[this.id];
2673
  var a = this.el;
2677
  k(a).off();
2678
  return this;
2679
  };
2680
+ c.exists = function() {
2681
  return this === m[this.id];
2682
  };
2683
+ c.clear = function() {
2684
+ for (var a = this.el, b = this.cells, d = this.field, c = this.body, g = this.nav, h = this.length || 0; 0 !== h--; ) delete m[b[h].destroy().id];
2685
  this.cells = [];
2686
  this.length = 0;
2687
+ g && (a.removeChild(g), this.nav = null);
2688
+ c && (d && (n.ie() && k(c).triggerHandler("blur"), d.destroy(), this.field = null),
2689
+ this.table && (this.table = null), a === c.parentNode && a.removeChild(c));
2690
+ this.body = a.appendChild(f.el("", "wg-body"));
2691
  this._h = null;
2692
  return this;
2693
  };
2694
+ c.resize = function(a, b) {
2695
  if (!b && (b = this.cells[1], !b)) return;
2696
+ var d = b.index, f = this.cells, c = k(this.el)[this.dir === s ? "width" : "height"](), g = f[d + 1], d = f[d - 1];
2697
  pad = (b.body || b.el.firstChild).offsetTop || 0;
2698
+ max = (g ? g.pos * c : c) - pad;
2699
+ min = d ? d.pos * c : 0;
2700
+ b.pos = Math.min(max, Math.max(min, a)) / c;
2701
  this.redraw();
2702
  return this;
2703
  };
2704
+ c.distribute = function(a) {
2705
+ for (var b = -1, d = 0, f, c = this.cells, g = a.length; ++b < g && (f = c[++d]); ) f.pos = Math.max(0, Math.min(1, a[b]));
2706
  this.redraw();
2707
  return this;
2708
  };
2709
+ c.distribution = function() {
2710
+ for (var a = [], b = 0, d = this.cells, f = d.length - 1; b < f; ) a[b] = d[++b].pos;
2711
  return a;
2712
  };
2713
+ c.restyle = function() {
2714
  var a = this.css.concat();
2715
  0 === this.index ? a.push("first") : a.push("not-first");
2716
  this.dir && (a.push("wg-split"), 2 === this.dir ? a.push("wg-split-y") : a.push("wg-split-x"));
2721
  a !== this._css && (this._css = a, this.el.className = a);
2722
  return this;
2723
  };
2724
+ c.redraw = function(a) {
2725
  this.restyle();
2726
+ var b = this.el, d = this.body, f = this.field;
2727
+ if (d) {
2728
+ var c, g = b.clientWidth || 0, h = b.clientHeight || 0, n = d.offsetTop || 0, h = n > h ? 0 : h - n;
2729
+ this._h !== h && (this._h = h, d.style.height = String(h) + "px", c = f);
2730
+ this._w !== g && (this._w = g, c = f);
2731
+ c && c.redraw();
2732
+ }
2733
+ d = this.length;
2734
+ g = 1;
2735
+ h = this.nav;
2736
+ for (n = 2 === this.dir ? "height" : "width"; 0 !== d--; ) f = this.cells[d], h ? c = 1 : (f.fixed && (f.pos = f.fixed / k(b)[n]()),
2737
+ c = g - f.pos, g = f.pos), f.el.style[n] = String(100 * c) + "%", f.redraw(a);
2738
  return this;
2739
  };
2740
+ c.contents = function(a, b) {
2741
+ var d = this.el, c = this.body;
2742
+ if (null == a) return c.innerHTML;
2743
+ this.length ? this.clear() : c && (d.removeChild(c), c = null);
2744
+ c || (this.body = c = d.appendChild(f.el("", b || "wg-content")), this._h = null,
2745
+ (d = this.lang) && this._locale(d, this.rtl, !0));
2746
+ "string" === typeof a ? k(c)._html(a) : a && this.append(a);
2747
  this.redraw();
2748
  return this;
2749
  };
2750
+ c.textarea = function(a, b) {
2751
  var c = this.field;
2752
  if (c) {
2753
+ var g = c.editable();
2754
  c.reload(a, b);
2755
+ g !== b && this.restyle();
2756
+ } else this.length && this.clear(), g = f.el("textarea"), g.setAttribute("wrap", "virtual"),
2757
+ g.value = a, this.contents(g), c = q.require("$46", "field.js")._new(g)[b ? "enable" : "disable"](),
2758
+ d(this, g), this.field = c, this.restyle();
2759
  this.lang || this.locale("en");
2760
  return c;
2761
  };
2762
+ c.locale = function(a) {
2763
+ a = q.require("$36", "locale.js").cast(a);
2764
  return this._locale(String(a), a.isRTL());
2765
  };
2766
+ c._locale = function(a, b, d) {
2767
+ var c = this.body;
2768
+ if (d || a !== this.lang) this.lang = a, c && c.setAttribute("lang", a);
2769
+ if (d || b !== this.rtl) this.rtl = b, c && c.setAttribute("dir", b ? "RTL" : "LTR");
2770
  return this;
2771
  };
2772
+ c.editable = function() {
2773
  var a = this.field;
2774
  if (a) return a.editable() ? a : null;
2775
+ var b = this.cells, d = b.length, c = this.navigated();
2776
+ if (null != c) return b[c].editable();
2777
+ for (;++c < d; ) {
2778
+ for (c = 0; c < d; d++) ;
2779
+ if (a = b[c].editable()) return a;
2780
  }
2781
  };
2782
+ c.eachTextarea = function(a) {
2783
  var b = this.field;
2784
  b ? a(b) : this.each(function(b) {
2785
  b.eachTextarea(a);
2786
  });
2787
  return this;
2788
  };
2789
+ c.append = function(a) {
2790
+ a && (a.nodeType ? n.init(this.body.appendChild(a)) : n.init(k(a).appendTo(this.body)));
2791
  return this;
2792
  };
2793
+ c.prepend = function(a) {
2794
  var b = this.body;
2795
  if (a.nodeType) {
2796
+ var d = b.firstChild;
2797
+ n.init(d ? b.insertBefore(a, d) : b.appendChild(a));
2798
+ } else n.init(k(a).prependTo(b));
2799
  return this;
2800
  };
2801
+ c.before = function(a) {
2802
  var b = this.body;
2803
+ a.nodeType ? n.init(this.el.insertBefore(a, b)) : n.init(k(a).insertBefore(b));
2804
  return this;
2805
  };
2806
+ c.header = function(a, b) {
2807
  if (null == a && null == b) return this.el.getElementsByTagName("header")[0];
2808
+ this.t = f.txt(a || "");
2809
+ this.el.insertBefore(f.el("header", b), this.body).appendChild(this.t);
2810
  this.redraw();
2811
  return this;
2812
  };
2813
+ c.title = function(a) {
2814
  var b = this.t;
2815
  if (b) return b.nodeValue = a || "", b;
2816
  this.header(a);
2817
  return this.t;
2818
  };
2819
+ c.titled = function() {
2820
  var a = this.t;
2821
  return a && a.nodeValue;
2822
  };
2823
+ c.bodyY = function() {
2824
+ return y(this.body, this.el);
2825
  };
2826
+ c.scrollY = function(a) {
2827
  if (J === a) return this.body.scrollTop;
2828
  this.body.scrollTop = a;
2829
  };
2830
+ c.tabulate = function(a) {
2831
  var b = this.table;
2832
+ b ? b.clear() : b = q.require("$47", "wgtable.js").create(this);
2833
  b.init(a);
2834
  return this.table = b;
2835
  };
2836
+ c.lock = function() {
2837
  this.body.className += " locked";
2838
  return this;
2839
  };
2840
+ c.scrollTo = function(a, b) {
2841
+ var d, c = this.body;
2842
+ d = c.scrollTop;
2843
+ var f = y(a, c);
2844
+ if (d > f) d = f; else {
2845
+ var g = c.clientHeight, f = f + k(a).outerHeight();
2846
+ if (g + d < f) d = f - g; else return;
2847
  }
2848
+ b ? c.scrollTop = d : k(c).stop(!0).animate({
2849
+ scrollTop: d
2850
  }, 250);
2851
  };
2852
+ c.navigize = function(b, d) {
2853
+ function c(a) {
2854
+ var b = v[a], d = e[a], f = k(b.el).show();
2855
+ d.addClass("active");
2856
+ n = a;
2857
+ l.data("idx", a);
2858
  b.fire("wgTabSelect", [ a ]);
2859
+ return f;
2860
  }
2861
+ var g = this, v = g.cells, h = g.nav, n, e = [];
2862
+ h && g.el.removeChild(h);
2863
+ var h = g.nav = g.el.insertBefore(f.el("nav", "wg-tabs"), g.body), l = k(h).on("click", function(b) {
2864
+ var d = k(b.target).data("idx");
2865
+ if (null == d) return !0;
2866
+ if (null != n) {
2867
+ var f = e[n];
2868
+ k(v[n].el).hide();
2869
+ f.removeClass("active");
2870
+ }
2871
+ c(d);
2872
+ g.redraw();
2873
+ return a(b);
2874
  });
2875
+ null == d && (d = l.data("idx") || 0);
2876
+ g.each(function(a, d) {
2877
+ e[d] = k('<a href="#' + a.id + '"></a>').data("idx", d).text(b[d]).appendTo(l);
2878
+ a.pos = 0;
2879
+ k(a.el).hide();
2880
  });
2881
+ c(v[d] ? d : 0);
2882
+ g.lock();
2883
+ g.redraw();
2884
+ return g;
2885
  };
2886
+ c.navigated = function() {
2887
  var a = this.nav;
2888
  if (a) return k(a).data("idx");
2889
  };
2890
+ c = null;
2891
+ return e;
2892
+ }({}, z, w));
2893
+ q.register("$24", function(e, c, C) {
2894
  function p(a) {
2895
  var b = [];
2896
  a && (a.saved() || b.push("po-unsaved"), a.fuzzy() ? b.push("po-fuzzy") : a.flagged() && b.push("po-flagged"),
2897
+ a.valid() || b.push("po-error"), a.translation() || b.push("po-empty"), a.comment() && b.push("po-comment"));
2898
  return b.join(" ");
2899
  }
2900
+ function h(a, b, d) {
2901
  b = k(a.title(b).parentNode);
2902
+ var c = b.find("span.lang");
2903
+ d ? (d = q.require("$36", "locale.js").cast(d), c.length || (c = k("<span></span>").prependTo(b)),
2904
+ c.attr("lang", d.lang).attr("class", d.getIcon() || "lang region region-" + (d.region || "zz").toLowerCase())) : (c.remove(),
2905
+ d = "en");
2906
+ a.locale(d);
2907
  return b;
2908
  }
2909
+ function l(a, b, d) {
2910
  b.on("click", function(b) {
2911
+ var c = a.fire(d, [ b.target ]);
2912
+ c || b.preventDefault();
2913
+ return c;
2914
  });
2915
  }
2916
+ function a() {
2917
  this.dirty = 0;
2918
  }
2919
+ q.require("$3", "number.js");
2920
+ var b = "poUpdate", d = "changing", g = "changed", n = 0, f = 1, y = 2, B = 3, s = 4, m = 5, A, x, r = q.require("$35", "string.js").html, z = q.require("$6", "string.js").sprintf;
2921
+ e.extend = function(b) {
2922
+ return b.prototype = new a();
2923
  };
2924
+ e.localise = function(a) {
2925
+ x = a;
2926
+ return e;
2927
  };
2928
+ var w = function() {
2929
+ var a = C.createElement("p"), b = /(src|href|on[a-z]+)\s*=/gi;
2930
+ return function(d) {
2931
+ a.innerHTML = d.replace(b, "data-x-loco-$1=");
2932
+ var c = a.textContent.trim();
2933
+ return c ? c.replace("data-x-loco-", "") : d.trim();
2934
  };
2935
+ }(), u = a.prototype = q.require("$37", "abstract.js").init([ "getListColumns", "getListHeadings", "getListEntry" ], [ "editable", "t" ]);
2936
  u.init = function() {
2937
+ this.$t = null;
2938
  this.localise();
2939
  this.editable = {
2940
  source: !0,
2944
  this.html = !1;
2945
  return this;
2946
  };
2947
+ u.t = function() {
2948
+ return this.$t || x || q.require("$1", "t.js").init();
2949
+ };
2950
  u.localise = function(a) {
2951
+ a || (a = this.t());
2952
  var b = [];
2953
+ b[n] = a._x("Source text", "Editor") + ":";
2954
+ b[B] = a._x("%s translation", "Editor") + ":";
2955
  b[s] = a._x("Context", "Editor") + ":";
2956
  b[m] = a._x("Comments", "Editor") + ":";
2957
+ b[f] = a._x("Single", "Editor") + ":";
2958
+ b[y] = a._x("Plural", "Editor") + ":";
2959
  b[6] = a._x("Untranslated", "Editor");
2960
  b[7] = a._x("Translated", "Editor");
2961
  b[8] = a._x("Toggle Fuzzy", "Editor");
2962
  b[9] = a._x("Suggest translation", "Editor");
2963
  this.labels = b;
2964
+ this.$t = a;
2965
  return this;
2966
  };
2967
  u.setRootCell = function(a) {
2968
  function b(a) {
2969
+ d.redraw(!0, a);
2970
  return !0;
2971
  }
2972
+ var d = q.require("$38", "wingrid.js").init(a);
2973
+ k(c).on("resize", b);
2974
  this.redraw = b;
2975
  k(a).on("wgFocus wgBlur", function(a, b) {
2976
  a.stopPropagation();
2977
+ A = b;
2978
  });
2979
  this.destroy = function() {
2980
+ d.destroy();
2981
+ k(c).off("resize", b);
2982
  };
2983
  this.rootDiv = a;
2984
+ return d;
2985
  };
2986
  u.$ = function() {
2987
  return k(this.rootDiv);
2989
  u.setListCell = function(a) {
2990
  var b = this;
2991
  b.listCell = a;
2992
+ a.on("wgRowSelect", function(a, d) {
2993
+ b.loadMessage(b.po.row(d));
2994
  return !0;
2995
+ }).on("wgRowDeselect", function(a, d, c) {
2996
+ c || b.loadNothing();
2997
  return !0;
2998
  });
2999
  };
3003
  u.setTargetCell = function(a) {
3004
  this.targetCell = a;
3005
  };
3006
+ u.next = function(a, b, d) {
3007
+ for (var c = this.listTable, f = c.selected(), g = f, h, n = this.po; null != (f = c.next(a, d, f)); ) {
3008
+ if (g === f) {
3009
+ f = null;
3010
  break;
3011
  }
3012
+ if (b && (h = n.row(f), h.translated(0))) continue;
3013
  break;
3014
  }
3015
+ null != f && c.select(f, !0);
3016
+ return f;
3017
  };
3018
  u.current = function(a) {
3019
  var b = this.active;
3041
  return this.dict && !0;
3042
  };
3043
  u.rebuildSearch = function() {
3044
+ var a = -1, b = this.po.rows, d = b.length, c = this.dict;
3045
+ for (c.clear(); ++a < d; ) c.add(a, b[a].toText());
3046
  };
3047
  u.filtered = function() {
3048
  return this.lastSearch || "";
3049
  };
3050
  u.filter = function(a, b) {
3051
+ var d, c = this.listTable, f = this.lastFound, g = this.lastSearch;
3052
  if (a) {
3053
+ if (g === a) return f || 0;
3054
+ if (g && !f && 0 === a.indexOf(g)) return 0;
3055
+ d = this.dict.find(a);
3056
+ }
3057
+ this.lastSearch = g = a;
3058
+ this.lastFound = f = d ? d.length : this.po.length;
3059
+ d ? c.filter(d) : c.unfilter();
3060
+ b || this.fire("poFilter", [ g, f ]);
3061
+ return f;
3062
  };
3063
  u.countFiltered = function() {
3064
  return this.lastSearch ? this.lastFound : this.po.length;
3065
  };
3066
  u.unsave = function(a, b) {
3067
+ var d = !1;
3068
  if (a) {
3069
+ if (d = a.saved(b)) this.dirty++, a.unsave(b), this.fire("poUnsaved", [ a, b ]);
3070
  this.markUnsaved(a);
3071
  }
3072
+ return d;
3073
  };
3074
  u.markUnsaved = function(a) {
3075
  var b = this.po.indexOf(a);
3076
  if ((b = this.listTable.tr(b)) && b.length) {
3077
+ var d = b[0].className;
3078
+ a = d.replace(/(?:^| +)po-[a-z]+/g, "") + " " + p(a);
3079
+ a !== d && k(b).attr("class", a);
3080
  }
3081
  };
3082
  u.save = function(a) {
3084
  if (this.dirty || a) b.each(function(a, b) {
3085
  b.save();
3086
  }), this.listCell.find("div.po-unsaved").removeClass("po-unsaved"), this.dirty = 0,
3087
+ this.fire("poSave", []);
3088
  return b;
3089
  };
3090
  u.fire = function(a, b) {
3091
+ var d = this.handle;
3092
+ if (d && d[a] && !1 === d[a].apply(this, b || [])) return !1;
3093
+ d = k.Event(a);
3094
+ this.$().trigger(d, b);
3095
+ return !d.isDefaultPrevented();
3096
  };
3097
  u.on = function(a, b) {
3098
  this.$().on(a, b);
3102
  return null;
3103
  };
3104
  u.reload = function() {
3105
+ var a = this, b, d = a.listCell, c = a.listTable, f = a.po, g = f && f.locale(), h = g && g.isRTL(), n = f && f.length || 0;
3106
+ if (!f || !f.row) return d && d.clear().header("Error").contents("Invalid messages list"),
3107
  !1;
3108
+ a.targetLocale = g;
3109
+ a.lastSearch && (a.lastSearch = "", a.lastFound = n, a.fire("poFilter", [ "", n ]));
3110
+ c && (b = c.thead().distribution());
3111
+ a.listTable = c = d.tabulate({
3112
  eachCol: function(b) {
3113
+ var d, c, f = a.getListColumns(), g = a.getListHeadings();
3114
+ for (c in f) d = f[c], b(d, c, g[d]);
3115
  },
3116
  eachRow: function(b) {
3117
+ f.each(function(d, c) {
3118
+ a.validate(c);
3119
+ b(c.idx, a.getListEntry(c), p(c));
3120
  });
3121
  },
3122
  sort: a.getSorter()
3123
  });
3124
+ var e, d = a.getListColumns();
3125
+ for (e in d) c.sortable(d[e]);
3126
+ b && c.thead().distribute(b);
3127
+ c.tbody().$(h ? "addClass" : "removeClass", [ "is-rtl" ]);
3128
+ a.fire("poLoad", []);
3129
+ return !!n;
3130
  };
3131
  u.load = function(a, b) {
3132
  this.po = a;
3134
  this.reload() && (-1 !== b ? this.listTable.selectRow(b || 0) : this.active && this.unloadActive());
3135
  };
3136
  u.pasteMessage = function(a) {
3137
+ var b, d = 0;
3138
+ this.validate(a);
3139
  this.active === a && ((b = this.sourceCell) && b.eachTextarea(function(b) {
3140
+ b.val(a.source(null, d++));
3141
  }), (b = this.contextCell) && b.eachTextarea(function(b) {
3142
  b.val(a.context());
3143
+ }), b = this.targetCell) && (d = 0, b.eachTextarea(function(b) {
3144
+ b.val(a.translation(d++));
3145
  }));
3146
  this.updateListCell(a, "source");
3147
  this.updateListCell(a, "target");
3148
  return this;
3149
  };
3150
  u.reloadMessage = function(a) {
3151
+ var b = this.sourceCell, d = this.targetCell, c;
3152
  this.pasteMessage(a);
3153
  b && this.setSrcMeta(a, b) && b.redraw();
3154
+ d && (c = d.navigated() || 0, c = this.setTrgMeta(a, c, d), !b && this.setSrcMeta(a, d) && (c = !0),
3155
+ c && (d.redraw(), this.markUnsaved(a)));
3156
  return this;
3157
  };
3158
  u.setStatus = function() {
3159
  return null;
3160
  };
3161
  u.setSrcMeta = function(a, b) {
3162
+ var d = [], c, f = !1, g = this.$smeta, h = this.labels, n = [], e = a.tags(), m = e && e.length;
3163
+ if (c = a.context()) n.push("<span>" + r(h[s]) + "</span>"), n.push("<mark>" + r(c) + "</mark>");
3164
+ if (m && this.getTag) for (n.push("<span>Tagged:</span>"); 0 <= --m; ) (c = this.getTag(e[m])) && n.push('<mark class="tag">' + r(c.mod_name) + "</mark>");
3165
+ n.length && d.push(n.join(" "));
3166
+ if (this.getMono() && (c = a.refs()) && (e = c.split(/\s/), m = e.length)) {
3167
+ for (n = []; 0 <= --m; ) c = e[m], n.push("<code>" + r(c) + "</code>");
3168
+ d.push('<p class="has-icon icon-file">' + n.join(" ") + "</p>");
3169
+ }
3170
+ (c = a.notes()) && d.push('<p class="has-icon icon-info">' + r(c, !0) + "</p>");
3171
+ d.length ? (g || (g = b.find("div.meta"), g.length || (g = k('<div class="meta"></div>').insertAfter(b.header())),
3172
+ l(this, g, "poMeta"), this.$smeta = g), g.html(d.join("\n")).show(), f = !0) : g && g.text() && (g.text("").hide(),
3173
+ f = !0);
3174
+ return f;
3175
  };
3176
+ u.setTrgMeta = function(a, b, d) {
3177
+ var c, f = [];
3178
+ c = !1;
3179
+ var g = this.$tmeta;
3180
+ if (b = (a = a.errors(b)) && a.length) {
3181
+ for (c = 0; c < b; c++) f.push('<p class="has-icon icon-warn">' + r(a[c], !0) + ".</p>");
3182
+ g || (g = d.find("div.meta"), g.length || (g = k('<div class="meta"></div>').insertAfter(d.header())),
3183
+ this.$tmeta = g);
3184
+ g.html(f.join("\n")).show();
3185
+ c = !0;
3186
+ } else g && g.text() && (g.text("").hide(), c = !0);
3187
+ return c;
3188
  };
3189
+ u.loadMessage = function(a) {
3190
+ function c(a) {
3191
+ if ("=" === a.charAt(0)) {
3192
+ var b = a.split(" ");
3193
+ a = b[0].substring(1);
3194
+ b[0] = [ "Zero", "One", "Two" ][Number(a)] || a;
3195
+ a = b.join(" ");
3196
+ }
3197
+ return a;
3198
+ }
3199
+ function e(b, d) {
3200
+ var g = J, m = L[n];
3201
+ b.off();
3202
+ b.titled() !== m && h(b, m, d || "en");
3203
+ m = !1;
3204
+ r.setSrcMeta(a, b) && (m = !0);
3205
+ if (a.plural()) {
3206
+ var m = -1, s = [], k = [], B = b.id + "-", p = a.sourceForms() || d && d.plurals || [ "One", "Other" ], q = p.length;
3207
+ if (2 !== q || "=" === p[0].charAt(0) && "=1" !== p[0]) for (;++m < q; ) s[m] = B + String(m),
3208
+ k[m] = c(p[m].split(" ", 1)[0]) + ":"; else s = [ B + "-0", B + "-1" ], k = [ L[f], L[y] ];
3209
+ b.splity.apply(b, s);
3210
+ b.each(function(b, d) {
3211
+ b.header(k[d]).textarea(a.source(null, d), g).setStrf(D).setMode(u).setInvs(w);
3212
  });
3213
+ b.lock();
3214
+ g && b.each(function(a, b) {
3215
+ l(a, b);
3216
  });
3217
+ } else m && b.redraw(), b.textarea(a.source(), g).setStrf(D).setMode(u).setInvs(w),
3218
+ g && l(b, 0);
3219
+ }
3220
+ function l(c, f) {
3221
+ c.on(d, function(b, d) {
3222
+ a.source(d, f);
3223
+ 0 === f && r.updateListCell(a, "source");
3224
+ r.unsave(a, f);
3225
+ }).on(g, function() {
3226
+ 0 === f && r.po.reIndex(a);
3227
  r.dict && r.rebuildSearch();
3228
+ r.fire(b, [ a ]);
3229
  });
3230
  }
3231
+ function k(b, d, f) {
3232
+ M && b.eachTextarea(function(a) {
3233
  a.ping();
3234
  });
3235
+ b.off();
3236
+ var g = d.isKnown() && d.label || "Target", g = z(L[B], g);
3237
+ b.titled() !== g && h(b, g, d);
3238
+ g = !1;
3239
+ !this.sourceCell && r.setSrcMeta(a, b) && (g = !0);
3240
+ r.setTrgMeta(a, f, b) && (g = !0);
3241
+ r.setStatus(a, f);
3242
+ if (1 !== d.nplurals && a.pluralized()) {
3243
+ var n = [], e = [], l = b.id + "-", m = a.targetForms() || d.plurals || [ "One", "Other" ], g = m.length, y = function(a) {
3244
+ e.push(c(m[a] || "Form " + a));
3245
+ n.push(l + String(a));
3246
+ };
3247
+ for (a.eachMsg(y); (d = n.length) < g; ) y(d);
3248
+ b.splitx.apply(b, n);
3249
+ b.each(function(b, d) {
3250
+ var c = M && !a.disabled(d);
3251
+ b.textarea(a.translation(d), c).setStrf(D).setMode(u).setInvs(w);
3252
+ M && p(b, d);
 
3253
  });
3254
+ b.navigize(e, f || null).on("wgTabSelect", function(d, c) {
3255
+ var f = M && d.cell.editable();
3256
+ f && f.focus();
3257
+ r.setTrgMeta(a, c, b);
3258
+ r.setStatus(a, c);
3259
+ r.fire("poTab", [ c ]);
3260
  });
3261
+ } else g && b.redraw(), b.textarea(a.translation(), M && !a.disabled(0)).setStrf(D).setMode(u).setInvs(w),
3262
+ M && p(b, 0);
3263
+ }
3264
+ function p(c, f) {
3265
+ c.on(d, function(b, d, g) {
3266
+ a.translate(d, f);
3267
+ r.validate(a);
3268
+ r.setTrgMeta(a, f, c) && c.redraw();
3269
+ 0 === f && r.updateListCell(a, "target");
3270
+ a.fuzzy(f) ? r.fuzzy(!1, a, f) : r.unsave(a, f);
3271
+ "" === d ? (r.fire("poEmpty", [ !0, a, f ]), r.setStatus(a, f)) : "" === g && (r.fire("poEmpty", [ !1, a, f ]),
3272
+ r.setStatus(a, f));
3273
+ }).on(g, function() {
3274
  r.dict && r.rebuildSearch();
3275
+ r.fire(b, [ a ]);
3276
  });
3277
  }
3278
+ function q(c) {
3279
  c.off();
3280
+ var f = L[s];
3281
+ c.titled() !== f && (h(c, f), r.setStatus(null));
3282
+ c.textarea(a.context(), !0).setMode(u).setInvs(w);
3283
+ W && c.on(d, function(b, d) {
3284
+ a.context(d);
3285
+ r.updateListCell(a, "source");
3286
+ r.unsave(a, N);
3287
+ }).on(g, function() {
3288
+ r.po.reIndex(a);
3289
  r.dict && r.rebuildSearch();
3290
+ r.fire(b, [ a ]);
3291
  });
3292
  }
3293
+ function x(b) {
3294
  var c = L[m];
3295
+ b.titled() !== c && h(b, c);
3296
+ b.off().on(d, function(b, d) {
3297
+ a.comment(d);
3298
+ r.fire("poComment", [ a, d ]);
3299
+ r.unsave(a, N);
3300
+ }).textarea(a.comment(), !0);
3301
+ }
3302
+ var r = this, u = r.mode, C = a.isHTML(), w = r.inv || !1, G = this.fmt || null, D = a.format() || null, I = a.is(r.active), N = 0, S = r.sourceCell, R = r.targetCell, T = r.contextCell, U = r.commentCell, M = r.editable.target, J = r.editable.source, W = r.editable.context, O = A, X = r.sourceLocale, V = r.targetLocale, L = r.labels;
3303
+ r.html !== C && (r.html = C, "code" !== r.mode && (u = C ? "html" : "", r.setMode(u)));
3304
+ r.active = a;
3305
+ S && e(S, X);
3306
+ T && q(T);
3307
+ R && V && (N = R.navigated() || 0, k(R, V, N));
3308
+ U && x(U);
3309
+ O && (O.exists() || (O = O.parent()), (C = O.editable()) && C.focus());
3310
+ G !== D && (this.fmt = D);
3311
+ I || r.fire("poSelected", [ a, N ]);
3312
  };
3313
  u.unloadActive = function() {
3314
  function a(b) {
3327
  return this;
3328
  };
3329
  u.loadNothing = function() {
3330
+ var a, b = this.t(), d = this.mode || "", c = this.inv || !1, f = this.fmt;
3331
  this.unloadActive();
3332
  this.setStatus(null);
3333
  (a = this.commentCell) && a.textarea("", !1);
3334
+ if (a = this.sourceCell) a.textarea("", !1).setStrf(f).setMode(d).setInvs(c), a.title(b._x("Source text not loaded", "Editor") + ":");
3335
+ if (a = this.contextCell) a.textarea("", !1).setMode(d).setInvs(c), a.title(b._x("Context not loaded", "Editor") + ":");
3336
+ if (a = this.targetCell) a.textarea("", !1).setStrf(f).setMode(d).setInvs(c), a.title(b._x("Translation not loaded", "Editor") + ":");
3337
  this.fire("poSelected", [ null ]);
3338
  };
3339
  u.updateListCell = function(a, b) {
3340
+ var d = this.getListColumns()[b], c = this.po.indexOf(a);
3341
+ (c = this.listTable.row(c)) && c.rendered && c.update(d);
3342
  };
3343
  u.cellText = function(a) {
3344
+ return (a = -1 !== a.indexOf("<") || -1 !== a.indexOf("&") ? w(a) : a.trim()) || " ";
3345
  };
3346
+ u.fuzzy = function(a, b, d) {
3347
  b = b || this.active;
3348
+ var c = b.fuzzy(d);
3349
+ !0 !== a || c ? !1 === a && c && this.flag(0, b, d) && this.fire("poFuzzy", [ b, !1, d ]) : this.flag(4, b, d) && this.fire("poFuzzy", [ b, !0, d ]);
3350
+ return c;
3351
  };
3352
+ u.flag = function(a, d, c) {
3353
+ if (!d) {
3354
+ d = this.active;
3355
+ c = this.getTargetOffset();
3356
+ if (null == c) return null;
3357
+ c && d.targetForms() && (c = 0);
3358
+ }
3359
+ var f = d.flagged(c);
3360
+ if (null == a) return f;
3361
+ if (f === a || a && !d.translated(c) || !this.fire("poFlag", [ a, f, d, c ])) return !1;
3362
+ d.flag(a, c);
3363
+ this.fire(b, [ d ]) && this.unsave(d, c);
3364
+ this.setStatus(d, c);
3365
  return !0;
3366
  };
3367
+ u.add = function(a, d) {
3368
+ var c, f = this.po.get(a, d);
3369
+ f ? c = this.po.indexOf(f) : (c = this.po.length, f = this.po.add(a, d), this.load(this.po, -1),
3370
+ this.fire("poAdd", [ f ]), this.fire(b, [ f ]));
3371
  this.lastSearch && this.filter("");
3372
+ this.listTable.select(c);
3373
+ return f;
3374
  };
3375
+ u.del = function(a) {
3376
+ if (a = a || this.active) {
3377
+ var d = this.lastSearch, c = this.po.del(a);
3378
+ null != c && (this.unsave(a), this.fire("poDel", [ a ]), this.fire(b, [ a ]), this.reload(),
3379
+ this.dict && this.rebuildSearch(), this.active && this.active.equals(a) && this.unloadActive(),
3380
+ this.po.length && (d && this.filter(d), this.active || (c = Math.min(c, this.po.length - 1),
3381
+ this.listTable.select(c))));
3382
  }
3383
  };
3384
  u.setMono = function(a) {
3390
  this.callTextareas(function(b) {
3391
  b.setMode(a);
3392
  });
3393
+ var b = this.active, d = this.sourceCell;
3394
+ b && b.refs() && d && this.setSrcMeta(b, d) && d.redraw();
3395
  }
3396
  return this;
3397
  };
3419
  a && a.focus();
3420
  return this;
3421
  };
3422
+ u.validate = function() {
3423
+ return 0;
3424
+ };
3425
  u = null;
3426
+ return e;
3427
+ }({}, z, w));
3428
+ q.register("$13", function(e, c, C) {
3429
  function p() {
3430
  this.init()._validate();
3431
  this.sourceLocale = {
3434
  plurals: [ "One", "Other" ]
3435
  };
3436
  }
3437
+ function h(a) {
3438
  a = k('<button type="button" class="button button-small icon icon-' + a + ' hastip"></button>');
3439
+ q.require("$12", "tooltip.js").init(a);
3440
  return a;
3441
  }
3442
+ function l(a) {
3443
+ return h("cloud").attr("title", a.labels[8] + " (Ctrl-U)").on("click", function(b) {
3444
  b.preventDefault();
3445
  a.focus().fuzzy(!a.fuzzy());
3446
  });
3447
  }
3448
+ function a(a) {
3449
+ return h("robot").attr("title", a.labels[9] + " (Ctrl-J)").on("click", function(b) {
3450
  b.preventDefault();
3451
  a.fire("poHint");
3452
  });
3453
  }
3454
+ function b() {
3455
+ var a = /%([1-9]\d*\$)?(?:'.|[-+0 ])*\d*(?:\.\d+)?(.|$)/g;
3456
+ return function(b) {
3457
+ for (var d = 0, c = 0, g, h, n = {}, e = 0; null != (g = a.exec(b)); ) h = g[2],
3458
+ "%" !== h && ("" === h || -1 === "suxXbcdeEfFgGo".indexOf(h) ? e++ : (null == g[1] ? g = ++c : (g = parseInt(g[1]),
3459
+ d = Math.max(d, g)), null == n[g] && (n[g] = {}), n[g][h] = !0));
3460
+ return {
3461
+ count: Math.max(d, c),
3462
+ valid: 0 === e,
3463
+ types: n
3464
+ };
3465
+ };
3466
+ }
3467
+ function d(a) {
3468
+ null == n && (n = b());
3469
+ return n(a);
3470
+ }
3471
+ function g(a, b) {
3472
+ return q.require("$6", "string.js").vsprintf(a, b);
3473
+ }
3474
+ c = q.require("$24", "base.js");
3475
+ e.init = function(a) {
3476
  var b = new p();
3477
  a = b.setRootCell(a);
3478
+ var d = a.splity("po-list", "po-edit"), c = d[0], g = d[1], d = g.splitx("po-trans", "po-comment"), h = d[0], n = d[1].header("Loading.."), d = h.splity("po-source", "po-target"), h = d[0].header("Loading.."), d = d[1].header("Loading..");
3479
  a.distribute([ .34 ]);
3480
  g.distribute([ .8 ]);
3481
+ b.setListCell(c);
3482
+ b.setSourceCell(h);
3483
+ b.setTargetCell(d);
3484
+ b.commentCell = n;
3485
  b.editable.source = !1;
3486
  return b;
3487
  };
3488
+ c = p.prototype = c.extend(p);
3489
+ c.getListHeadings = function() {
3490
+ var a = this.t(), b = [ a._x("Source text", "Editor") ];
 
 
 
 
3491
  this.targetLocale && (b[1] = a._x("Translation", "Editor"));
3492
  return b;
3493
  };
3494
+ c.getListColumns = function() {
3495
  var a = {
3496
  source: 0
3497
  };
3498
  this.targetLocale && (a.target = 1);
3499
  return a;
3500
  };
3501
+ c.getListEntry = function(a) {
3502
+ var b = this.cellText, d = [ function() {
3503
+ var d, c = b(a.source() || ""), g = a.context();
3504
+ return g ? (d = C.createElement("p"), d.appendChild(C.createElement("mark")).innerText = g,
3505
+ d.appendChild(C.createTextNode(" " + c)), d) : c;
3506
  } ];
3507
+ this.targetLocale && (d[1] = function() {
3508
  return b(a.translation() || "");
3509
  });
3510
+ return d;
3511
  };
3512
+ c.stats = function() {
3513
+ var a = this.po, b = a.length, d = 0, c = 0, g = 0;
3514
  a.each(function(a, b) {
3515
+ b.fuzzy() ? g++ : b.translated() ? d++ : c++;
3516
  });
3517
  return {
3518
  t: b,
3519
+ p: d.percent(b) + "%",
3520
  f: g,
3521
+ u: c
3522
  };
3523
  };
3524
+ c.unlock = function() {
3525
  var a = this.targetLocale;
3526
  this._unlocked || (this.editable = {
3527
  source: !0,
3531
  a && (this._unlocked = a, delete this.targetLocale, this.reload(), this.fire("poLock", [ !1 ])),
3532
  this.active && this.loadMessage(this.active));
3533
  };
3534
+ c.lock = function() {
3535
  var a = this._unlocked;
3536
  a && (this.targetLocale = a, delete this._unlocked, this.po && this.po.lock(a),
3537
  this.editable = {
3541
  }, this.targetCell = this.contextCell, delete this.contextCell, this.reload(), this.fire("poLock", [ !0, a ]),
3542
  this.active && this.loadMessage(this.active));
3543
  };
3544
+ c.locked = function() {
3545
  return !this._unlocked;
3546
  };
3547
+ c.setStatus = function(b) {
3548
+ var d = this.$tnav;
3549
+ if (null == b) d && (d.remove(), this.$tnav = null); else {
3550
+ d || (this.$tnav = d = k("<nav></nav>").append(l(this)).append(a(this)).appendTo(this.targetCell.header()));
3551
+ var c = [];
3552
+ b.translated() ? b.fuzzy() && c.push("po-fuzzy") : c.push("po-empty");
3553
+ d.attr("class", c.join(" "));
3554
  }
3555
  };
3556
+ c.getSorter = function() {
3557
+ function a(d, c) {
3558
+ var f = d.weight(), g = c.weight();
3559
+ return f === g ? b(d, c) : f > g ? -1 : 1;
3560
  }
3561
+ function b(a, d) {
3562
+ return a.hash().localeCompare(d.hash());
3563
  }
3564
+ var d = this;
3565
+ return function(c) {
3566
+ var g = d.po, h = d.locked() ? a : b;
3567
+ c.sort(function(a, b) {
3568
+ return h(g.row(a), g.row(b));
3569
  });
3570
  };
3571
  };
3572
+ c.validate = function(a) {
3573
+ var b = this, c = [], h = 0, n = 0, e = 0, l = [], k = this.fmt || "";
3574
+ "" !== k && "no-" === k.substring(0, 3) || a.eachSrc(function(a, b) {
3575
+ var c = d(b), f = c.count;
3576
+ c.valid && (l[a] = c, e = Math.max(e, f), n = n ? Math.min(n, f) : f);
3577
+ });
3578
+ a.eachMsg(function(p, q) {
3579
+ c[p] = [];
3580
+ if ("" !== q && (e || k)) {
3581
+ var u = d(q), v = u.count;
3582
+ if (v > e) c[p].push(g(b.t()._("Too many placeholders; source text formatting suggests a maximum of %s"), [ e ])),
3583
+ h++; else if (v < n && 1 === a.count()) c[p].push(g(b.t()._("Missing placeholders; source text formatting suggests at least %s"), [ n ])),
3584
+ h++; else if (!u.valid) c[p].push(b.t()._("Possible syntax error in string formatting")),
3585
+ h++; else if (l[p]) {
3586
+ var C, v = l[p].types, w;
3587
+ for (C in u.types) for (w in u.types[C]) if (null == v[C] || null == v[C][w]) {
3588
+ c[p].push(b.t()._("Mismatching placeholder type; check against source text formatting"));
3589
+ h++;
3590
+ return;
3591
+ }
3592
+ }
3593
+ }
3594
+ });
3595
+ a.err = h ? c : null;
3596
+ return h;
3597
+ };
3598
+ c.handle = {};
3599
+ var n;
3600
+ return e;
3601
+ }({}, z, w));
3602
+ q.register("$14", function(e, c, q) {
3603
  var p = {
3604
  copy: 66,
3605
  clear: 75,
3610
  enter: 13,
3611
  invis: 73,
3612
  hint: 74
3613
+ }, h = {
3614
  38: !0,
3615
  40: !0,
3616
  73: !0
3617
+ }, l = {
3618
+ 66: function(a, b) {
3619
+ var d = b.current();
3620
+ d && (d.normalize(), b.focus().pasteMessage(d));
3621
  },
3622
+ 75: function(a, b) {
3623
+ var d = b.current();
3624
+ d && (d.untranslate(), b.focus().pasteMessage(d));
3625
  },
3626
+ 85: function(a, b) {
3627
+ b.focus().fuzzy(!b.fuzzy());
3628
  },
3629
+ 13: function(a, b) {
3630
+ b.getFirstEditable() && b.next(1, !0, !0);
3631
  },
3632
+ 40: function(a, b) {
3633
+ var d = a.shiftKey;
3634
+ b.next(1, d, d);
3635
  },
3636
+ 38: function(a, b) {
3637
+ var d = a.shiftKey;
3638
+ b.next(-1, d, d);
3639
  },
3640
+ 73: function(a, b) {
3641
+ if (!a.shiftKey) return !1;
3642
+ b.setInvs(!b.getInvs());
3643
+ }
3644
+ };
3645
+ e.init = function(a, b) {
3646
+ function d(b) {
3647
+ if (b.isDefaultPrevented() || !b.metaKey && !b.ctrlKey) return !0;
3648
+ var d = b.which;
3649
+ if (!g[d]) return !0;
3650
+ var c = l[d];
3651
+ if (!c) throw Error("command undefined #" + d);
3652
+ if (b.altKey || b.shiftKey && !h[d] || !1 === c(b, a)) return !0;
3653
+ b.stopPropagation();
3654
+ b.preventDefault();
3655
  return !1;
3656
  }
3657
+ var g = {};
3658
+ k(b || c).on("keydown", d);
3659
  return {
3660
  add: function(a, b) {
3661
+ l[p[a]] = b;
3662
  return this;
3663
  },
3664
  enable: function() {
3665
  var a, b;
3666
+ for (b in arguments) a = p[arguments[b]], g[a] = !0;
3667
  return this;
3668
  },
3669
  disable: function() {
3670
+ k(b || c).off("keydown", d);
3671
+ a = b = g = null;
3672
  }
3673
  };
3674
  };
3675
+ return e;
3676
+ }({}, z, w));
3677
+ q.register("$25", function(e, c, k) {
3678
  function p() {
3679
  this.reIndex([]);
3680
  }
3681
+ e.init = function() {
3682
  return new p();
3683
  };
3684
+ c = p.prototype;
3685
+ c.reIndex = function(c) {
3686
+ for (var e = {}, a = -1, b = c.length; ++a < b; ) e[c[a]] = a;
3687
+ this.keys = c;
3688
+ this.length = a;
3689
+ this.ords = e;
3690
+ };
3691
+ c.key = function(c, e) {
3692
+ if (null == e) return this.keys[c];
3693
+ var a = this.keys[c], b = this.ords[e];
3694
+ if (e !== a) {
3695
+ if (null != b) throw Error("Clash with item at [" + b + "]");
3696
+ this.keys[c] = e;
3697
+ delete this.ords[a];
3698
+ this.ords[e] = c;
3699
  }
3700
+ return c;
3701
  };
3702
+ c.indexOf = function(c) {
3703
+ c = this.ords[c];
3704
+ return null == c ? -1 : c;
3705
  };
3706
+ c.add = function(c, e) {
3707
+ var a = this.ords[c];
3708
+ null == a && (this.keys[this.length] = c, a = this.ords[c] = this.length++);
3709
+ this[a] = e;
3710
+ return a;
3711
  };
3712
+ c.get = function(c) {
3713
+ return this[this.ords[c]];
3714
  };
3715
+ c.has = function(c) {
3716
+ return null != this.ords[c];
3717
  };
3718
+ c.del = function(c) {
3719
+ this.cut(this.ords[c], 1);
3720
  };
3721
+ c.cut = function(c, e) {
3722
+ e = e || 1;
3723
+ var a = [].splice.call(this, c, e);
3724
+ this.keys.splice(c, e);
3725
  this.reIndex(this.keys);
3726
+ return a;
3727
  };
3728
+ c.each = function(c) {
3729
+ for (var e = -1, a = this.keys, b = this.length; ++e < b; ) c(a[e], this[e], e);
3730
  return this;
3731
  };
3732
+ c.sort = function(c) {
3733
+ for (var e = -1, a = this.length, b, d = this.keys, g = this.ords, n = []; ++e < a; ) n[e] = [ this[e], d[e] ];
3734
+ n.sort(function(a, b) {
3735
+ return c(a[0], b[0]);
3736
  });
3737
+ for (e = 0; e < a; e++) b = n[e], this[e] = b[0], b = b[1], d[e] = b, g[b] = e;
3738
  return this;
3739
  };
3740
+ c.join = function(c) {
3741
+ return [].join.call(this, c);
3742
  };
3743
+ c = null;
3744
+ return e;
3745
+ }({}, z, w));
3746
+ q.register("$26", function(e, c, k) {
3747
+ function p(c, e) {
3748
+ var a = RegExp("^.{0," + (c - 1) + "}[" + e + "]"), b = RegExp("^[^" + e + "]+");
3749
+ return function(d, g) {
3750
+ for (var e = d.length, f; e > c; ) {
3751
+ f = a.exec(d) || b.exec(d);
3752
+ if (null == f) break;
3753
+ f = f[0];
3754
+ g.push(f);
3755
+ f = f.length;
3756
+ e -= f;
3757
+ d = d.substr(f);
3758
+ }
3759
+ 0 !== e && g.push(d);
3760
+ return g;
3761
  };
3762
  }
3763
+ e.create = function(c) {
3764
+ function e(a) {
3765
+ return f[a] || "\\" + a;
3766
  }
3767
+ var a, b, d = /(?:\r\n|[\r\n\v\f\u2028\u2029])/g, g = /[ \r\n]+/g, n = /[\t\v\f\x07\x08\\\"]/g, f = {
3768
  "\t": "\\t",
3769
  "\v": "\\v",
3770
  "\f": "\\f",
3771
  "": "\\a",
3772
  "\b": "\\b"
3773
  };
3774
+ if (null == c || isNaN(c = Number(c))) c = 79;
3775
+ 0 < c && (a = p(c - 3, " "), b = p(c - 2, "-– \\.,:;\\?!\\)\\]\\}\\>"));
3776
  return {
3777
+ pair: function(a, f) {
3778
+ if (!f) return a + ' ""';
3779
+ f = f.replace(n, e);
3780
+ var g = 0;
3781
+ f = f.replace(d, function() {
3782
+ g++;
3783
  return "\\n\n";
3784
  });
3785
+ if (!(g || c && c < f.length + a.length + 3)) return a + ' "' + f + '"';
3786
+ var m = [ a + ' "' ], k = f.split("\n");
3787
+ if (b) for (var p = -1, r = k.length; ++p < r; ) b(k[p], m); else m = m.concat(k);
3788
+ return m.join('"\n"') + '"';
3789
  },
3790
  prefix: function(a, b) {
3791
+ var c = a.split(d);
3792
  return b + c.join("\n" + b);
3793
  },
3794
+ refs: function(b) {
3795
+ b = b.replace(g, " ", b);
3796
+ a && (b = a(b, []).join("\n#: "));
3797
+ return "#: " + b;
3798
  }
3799
  };
3800
  };
3801
+ return e;
3802
+ }({}, z, w));
3803
+ q.register("$39", function(e, c, k) {
3804
  function p() {
3805
  this.length = 0;
3806
  }
3807
+ e.init = function() {
3808
  return new p();
3809
  };
3810
+ c = p.prototype;
3811
+ c.push = function(c) {
3812
+ this[this.length++] = c;
3813
  return this;
3814
  };
3815
+ c.sort = function(c) {
3816
+ [].sort.call(this, c);
3817
  return this;
3818
  };
3819
+ c.each = function(c) {
3820
+ for (var e = -1, a = this.length; ++e < a; ) c(e, this[e]);
3821
  return this;
3822
  };
3823
+ return e;
3824
+ }({}, z, w));
3825
+ q.register("$27", function(e, c, k) {
3826
  function p() {}
3827
+ e.extend = function(c) {
3828
+ return c.prototype = new p();
3829
  };
3830
+ c = p.prototype = q.require("$37", "abstract.js").init([ "add", "load" ]);
3831
+ c.row = function(c) {
3832
+ return this.rows[c];
3833
  };
3834
+ c.lock = function(c) {
3835
+ return this.locale(c || {
3836
  lang: "zxx",
3837
  label: "Unknown",
3838
  nplurals: 1,
3839
  pluraleq: "n!=1"
3840
  });
3841
  };
3842
+ c.unlock = function() {
3843
+ var c = this.loc;
3844
  this.loc = null;
3845
+ return c;
3846
  };
3847
+ c.locale = function(c) {
3848
+ null == c ? c = this.loc : this.loc = c = q.require("$36", "locale.js").cast(c);
3849
+ return c;
3850
  };
3851
+ c.each = function(c) {
3852
+ this.rows.each(c);
3853
  return this;
3854
  };
3855
+ c.indexOf = function(c) {
3856
+ "object" !== typeof c && (c = this.get(c));
3857
+ if (!c) return -1;
3858
+ null == c.idx && (c.idx = this.rows.indexOf(c.hash()));
3859
+ return c.idx;
3860
  };
3861
+ c.get = function(c) {
3862
+ return this.rows && this.rows.get(c);
3863
  };
3864
+ c.has = function(c) {
3865
+ return this.rows && this.rows.has(c);
3866
  };
3867
+ c.del = function(c) {
3868
+ c = this.indexOf(c);
3869
+ if (-1 !== c) {
3870
+ var e = this.rows.cut(c, 1);
3871
+ if (e && e.length) return this.length = this.rows.length, this.rows.each(function(a, b, d) {
3872
+ b.idx = d;
3873
+ }), c;
3874
  }
3875
  };
3876
+ c.reIndex = function(c, e) {
3877
+ var a = this.indexOf(c), b = c.hash(), d = this.rows.indexOf(b);
3878
+ return d === a ? a : -1 !== d ? (e = (e || 0) + 1, c.source("Error, duplicate " + String(e) + ": " + c.source()),
3879
+ this.reIndex(c, e)) : this.rows.key(a, b);
3880
  };
3881
+ c.sort = function(c) {
3882
+ this.rows.sort(c);
3883
  return this;
3884
  };
3885
+ c["export"] = function() {
3886
+ for (var c = -1, e = this.rows, a = e.length, b = q.require("$39", "list.js").init(); ++c < a; ) b.push(e[c]);
3887
+ return b;
3888
  };
3889
+ c = null;
3890
+ return e;
3891
+ }({}, z, w));
3892
+ q.register("$28", function(e, c, k) {
3893
+ function p(a, b, d) {
3894
+ if (null == d) return a[b] || "";
3895
+ a[b] = d || "";
3896
+ return a;
3897
  }
3898
+ function h() {
3899
  this._id = this.id = "";
3900
  }
3901
+ function l(a, b) {
3902
+ for (var d = -1, c = a.length; ++d < c; ) b(d, a[d]);
3903
+ }
3904
+ e.extend = function(a) {
3905
+ return a.prototype = new h();
3906
  };
3907
+ c = h.prototype;
3908
+ c.flag = function(a, b) {
3909
+ var d = this.flg || (this.flg = []);
3910
+ if (null != b) d[b] = a; else for (var c = Math.max(d.length, this.src.length, this.msg.length); 0 !== c--; ) d[c] = a;
3911
  return this;
3912
  };
3913
+ c.flagged = function(a) {
3914
  var b = this.flg || [];
3915
+ if (null != a) return b[a] || 0;
3916
+ for (a = b.length; 0 !== a--; ) if (b[a]) return !0;
3917
  return !1;
3918
  };
3919
+ c.flags = function() {
3920
+ for (var a, b = {}, d = [], c = this.flg || [], e = c.length; 0 !== e--; ) a = c[e],
3921
+ b[a] || (b[a] = !0, d.push(a));
3922
+ return d;
3923
  };
3924
+ c.flaggedAs = function(a, b) {
3925
+ var d = this.flg || [];
3926
+ if (null != b) return a === d[b] || 0;
3927
+ for (var c = d.length; 0 !== c--; ) if (d[c] === a) return !0;
3928
  return !1;
3929
  };
3930
+ c.fuzzy = function(a, b) {
3931
+ var d = this.flaggedAs(4, a);
3932
+ null != b && this.flag(b ? 4 : 0, a);
3933
+ return d;
3934
  };
3935
+ c.source = function(a, b) {
3936
+ if (null == a) return this.src[b || 0] || "";
3937
+ this.src[b || 0] = a;
3938
  return this;
3939
  };
3940
+ c.plural = function(a, b) {
3941
+ if (null == a) return this.src[b || 1] || "";
3942
+ this.src[b || 1] = a || "";
3943
  return this;
3944
  };
3945
+ c.sourceForms = function() {
3946
  return this.srcF;
3947
  };
3948
+ c.targetForms = function() {
3949
  return this.msgF;
3950
  };
3951
+ c.each = function(a) {
3952
+ for (var b = -1, d = this.src, c = this.msg, e = Math.max(d.length, c.length); ++b < e; ) a(b, d[b], c[b]);
3953
+ return this;
3954
+ };
3955
+ c.eachSrc = function(a) {
3956
+ l(this.src, a);
3957
+ return this;
3958
+ };
3959
+ c.eachMsg = function(a) {
3960
+ l(this.msg, a);
3961
  return this;
3962
  };
3963
+ c.count = function() {
3964
  return Math.max(this.src.length, this.msg.length);
3965
  };
3966
+ c.pluralized = function() {
3967
  return 1 < this.src.length || 1 < this.msg.length;
3968
  };
3969
+ c.translate = function(a, b) {
3970
+ this.msg[b || 0] = a || "";
3971
  return this;
3972
  };
3973
+ c.untranslate = function(a) {
3974
+ if (null != a) this.msg[a] = ""; else {
3975
+ var b = this.msg, d = b.length;
3976
+ for (a = 0; a < d; a++) b[a] = "";
3977
  }
3978
  return this;
3979
  };
3980
+ c.translation = function(a) {
3981
+ return this.msg[a || 0] || "";
3982
+ };
3983
+ c.errors = function(a) {
3984
+ return this.err && this.err[a || 0] || [];
3985
  };
3986
+ c.valid = function() {
3987
+ return null == this.err;
3988
  };
3989
+ c.translated = function(a) {
3990
+ if (null != a) return !!this.msg[a];
3991
+ var b = this.msg, d = b.length;
3992
+ for (a = 0; a < d; a++) if (!b[a]) return !1;
3993
  return !0;
3994
  };
3995
+ c.untranslated = function(a) {
3996
+ if (null != a) return !this.msg[a];
3997
+ var b = this.msg, d = b.length;
3998
+ for (a = 0; a < d; a++) if (b[a]) return !1;
3999
  return !0;
4000
  };
4001
+ c.comment = function(a) {
4002
+ return p(this, "cmt", a);
4003
  };
4004
+ c.notes = function(a) {
4005
+ return p(this, "xcmt", a);
4006
  };
4007
+ c.refs = function(a) {
4008
+ return p(this, "rf", a);
4009
  };
4010
+ c.format = function(a) {
4011
+ return p(this, "fmt", a);
4012
  };
4013
+ c.context = function(a) {
4014
+ return p(this, "ctx", a);
4015
  };
4016
+ c.tags = function() {
4017
  return this.tg;
4018
  };
4019
+ c.toString = c.toText = function() {
4020
  return this.src.concat(this.msg, this.id, this.ctx).join(" ");
4021
  };
4022
+ c.weight = function() {
4023
+ var a = 0;
4024
+ this.translation() || (a += 2);
4025
+ this.fuzzy() && (a += 1);
4026
+ return a;
4027
  };
4028
+ c.equals = function(a) {
4029
+ return this === a || this.hash() === a.hash();
4030
  };
4031
+ c.hash = function() {
4032
  return this.id;
4033
  };
4034
+ c.normalize = function() {
4035
+ for (var a = this.msg.length; 0 !== a--; ) this.msg[a] = this.src[a] || "";
4036
  };
4037
+ c.disabled = function(a) {
4038
+ return !!(this.lck || [])[a || 0];
4039
  };
4040
+ c.disable = function(a) {
4041
+ (this.lck || (this.lck = []))[a || 0] = !0;
4042
  return this;
4043
  };
4044
+ c.saved = function(a) {
4045
  var b = this.drt;
4046
  if (null == b) return !0;
4047
+ if (null != a) return !b[a];
4048
+ for (a = b.length; 0 !== a--; ) if (b[a]) return !1;
4049
  return !0;
4050
  };
4051
+ c.unsave = function(a) {
4052
+ (this.drt || (this.drt = []))[a || 0] = !0;
4053
  return this;
4054
  };
4055
+ c.save = function(a) {
4056
+ null == a ? this.drt = null : (this.drt || (this.drt = []))[a] = !1;
4057
  return this;
4058
  };
4059
+ c.is = function(a) {
4060
+ return a && (a === this || a.idx === this.idx);
4061
  };
4062
+ c.isHTML = function(a) {
4063
+ if (null == a) return this.htm || !1;
4064
+ this.htm = a;
4065
  };
4066
+ c = null;
4067
+ return e;
4068
+ }({}, z, w));
4069
+ q.register("$15", function(e, c, k) {
4070
  function p(a) {
4071
  return {
4072
  "Project-Id-Version": "PACKAGE VERSION",
4082
  "Content-Transfer-Encoding": "8bit"
4083
  };
4084
  }
4085
+ function h(a, b) {
4086
+ var d = a || "";
4087
+ b && (d += "\0" + b);
4088
+ return d;
4089
  }
4090
+ function l(a) {
4091
+ var b = c.console;
4092
  b && b.error && b.error(a.message || String(a));
4093
  }
 
 
 
4094
  function a(a) {
4095
+ return q.require("$26", "format.js").create(a);
4096
+ }
4097
+ function b(a) {
4098
  this.locale(a);
4099
  this.clear();
4100
  this.head = p(this.now());
4101
  }
4102
+ function d(a, b) {
4103
  this.src = [ a || "" ];
4104
  this.msg = [ b || "" ];
4105
  }
4106
+ e.create = function(a) {
4107
+ return new b(a);
4108
  };
4109
+ k = q.require("$27", "messages.js").extend(b);
4110
  k.clear = function() {
4111
+ this.rows = q.require("$25", "collection.js").init();
4112
  this.length = 0;
4113
  return this;
4114
  };
4115
  k.now = function() {
4116
+ function a(b, d) {
4117
+ for (var c = String(b); c.length < d; ) c = "0" + c;
4118
+ return c;
4119
  }
4120
+ var b = new Date(), d = b.getUTCFullYear(), c = b.getUTCMonth() + 1, e = b.getUTCDate(), h = b.getUTCHours(), b = b.getUTCMinutes();
4121
+ return a(d, 4) + "-" + a(c, 2) + "-" + a(e, 2) + " " + a(h, 2) + ":" + a(b, 2) + "+0000";
4122
  };
4123
  k.header = function(a, b) {
4124
+ var d = this.head || (this.head = {});
4125
  if (null == b) return this.headers()[a] || "";
4126
+ d[a] = b || "";
4127
  return this;
4128
  };
4129
  k.headers = function(a) {
4130
+ var b, d = this.now(), c = this.head || (this.head = p(d));
4131
  if (null != a) {
4132
+ for (b in a) c[b] = a[b];
4133
  return this;
4134
  }
4135
  var e = this.locale();
4136
  a = {};
4137
+ for (b in c) a[b] = String(c[b]);
4138
  e ? (a.Language = String(e) || "zxx", a["Language-Team"] = e.label || a.Language,
4139
  a["Plural-Forms"] = "nplurals=" + (e.nplurals || "2") + "; plural=" + (e.pluraleq || "n!=1") + ";",
4140
  b = "PO-Revision-Date") : (a.Language = "", a["Plural-Forms"] = "nplurals=INTEGER; plural=EXPRESSION;",
4141
  a["PO-Revision-Date"] = "YEAR-MO-DA HO:MI+ZONE", b = "POT-Creation-Date");
4142
+ a[b] || (a[b] = d);
4143
  a["X-Generator"] = "Loco https://localise.biz/";
4144
  return a;
4145
  };
4146
  k.get = function(a, b) {
4147
+ var d = h(a, b);
4148
+ return this.rows.get(d);
4149
  };
4150
  k.add = function(a, b) {
4151
+ a instanceof d || (a = new d(a));
4152
  b && a.context(b);
4153
+ var c = a.hash();
4154
+ this.rows.get(c) ? l("Duplicate message at index " + this.indexOf(a)) : (a.idx = this.rows.add(c, a),
4155
  this.length = this.rows.length);
4156
  return a;
4157
  };
4158
  k.load = function(a) {
4159
+ for (var b = -1, c, e, h, k, m, p, q = (h = this.locale()) && h.nplurals || 2, r = []; ++b < a.length; ) c = a[b],
4160
+ null == c.parent ? (e = c.source || c.id, h = c.target || "", k = c.context, e || k ? (m = new d(e, h),
4161
+ m._id = c._id, k && m.context(k), c.flag && m.flag(c.flag, 0), c.comment && m.comment(c.comment),
4162
+ c.notes && m.notes(c.notes), c.refs && m.refs(c.refs), m.format(c.format), c.message = m,
4163
+ this.add(m), c.prev && c.prev[0] && (m.prev(c.prev[0].source, c.prev[0].context),
4164
+ c.prev[1] && m._src.push(c.prev[1].source || ""))) : 0 === b && "object" === typeof h && (this.head = h,
4165
+ this.headcmt = c.comment)) : r.push(c);
4166
  for (b = -1; ++b < r.length; ) try {
4167
+ c = r[b];
4168
+ e = c.source || c.id;
4169
+ m = a[c.parent] && a[c.parent].message;
4170
+ if (!m) throw Error("parent missing for plural " + e);
4171
+ p = c.plural;
4172
+ 1 === p && m.plural(e);
4173
+ p >= q || (c.flag && m.flag(c.flag, p), m.translate(c.target || "", p), c.format && !m.format() && m.format(c.format));
4174
+ } catch (w) {
4175
+ l(w);
4176
  }
4177
  return this;
4178
  };
4179
+ k.wrap = function(b) {
4180
+ this.fmtr = a(b);
4181
  return this;
4182
  };
4183
  k.toString = function() {
4184
+ var b, c = this.locale(), f = [], e = [], h = this.headers(), k = !c, l = c && c.nplurals || 2, p = this.fmtr || a();
4185
+ h[c ? "PO-Revision-Date" : "POT-Creation-Date"] = this.now();
4186
+ for (b in h) e.push(b + ": " + h[b]);
4187
+ e = new d("", e.join("\n"));
4188
+ e.comment(this.headcmt || "");
4189
+ k && e.fuzzy(0, !0);
4190
+ f.push(e.toString());
4191
+ f.push("");
4192
  this.rows.each(function(a, b) {
4193
+ a && (f.push(b.cat(p, k, l)), f.push(""));
4194
  });
4195
+ return f.join("\n");
4196
  };
4197
+ k = q.require("$28", "message.js").extend(d);
4198
  k.prev = function(a, b) {
4199
  this._src = [ a || "" ];
4200
  this._ctx = b;
4201
  };
4202
  k.hash = function() {
4203
+ return h(this.source(), this.context());
4204
  };
4205
  k.toString = function() {
4206
+ return this.cat(a());
4207
+ };
4208
+ k.cat = function(a, b, d) {
4209
+ var c, e = [], h;
4210
+ (h = this.cmt) && e.push(a.prefix(h, "# "));
4211
+ (h = this.xcmt) && e.push(a.prefix(h, "#. "));
4212
+ c = this.rf;
4213
+ if (h = this._id) c += (c ? " " : "") + "loco:" + h;
4214
+ c && /\S/.test(c) && e.push(a.refs(c));
4215
  !b && this.fuzzy() && e.push("#, fuzzy");
4216
+ (h = this.fmt) && e.push("#, " + h + "-format");
4217
+ (h = this._ctx) && e.push(a.prefix(a.pair("msgctxt", h), "#| "));
4218
+ if (h = this._src) h[0] && e.push(a.prefix(a.pair("msgid", h[0]), "#| ")), h[1] && e.push(a.prefix(a.pair("msgid_plural", h[1]), "#| "));
4219
+ (h = this.ctx) && e.push(a.pair("msgctxt", h));
4220
  e.push(a.pair("msgid", this.src[0]));
4221
+ if (null == this.src[1]) e.push(a.pair("msgstr", b ? "" : this.msg[0])); else for (c = -1,
4222
+ e.push(a.pair("msgid_plural", this.src[1])), h = this.msg || [ "", "" ], d = d || h.length; ++c < d; ) e.push(a.pair("msgstr[" + c + "]", b ? "" : h[c] || ""));
4223
  return e.join("\n");
4224
  };
4225
  k.compare = function(a, b) {
4226
+ var d = this.weight(), c = a.weight();
4227
+ if (d > c) return 1;
4228
+ if (d < c) return -1;
4229
  if (b) {
4230
+ d = this.hash().toLowerCase();
4231
+ c = a.hash().toLowerCase();
4232
+ if (d < c) return 1;
4233
+ if (d > c) return -1;
4234
  }
4235
  return 0;
4236
  };
4237
  k.copy = function() {
4238
+ var a = new d(), b, c;
4239
  for (b in this) this.hasOwnProperty(b) && ((c = this[b]) && c.concat && (c = c.concat()),
4240
  a[b] = c);
4241
  return a;
4242
  };
4243
  k = k = null;
4244
+ return e;
4245
+ }({}, z, w));
4246
+ q.register("$17", function(e, c, q) {
4247
+ e.init = function(c, e) {
4248
+ function l() {
4249
+ return g || (g = k('<div id="loco-po-ref"></div>').dialog({
4250
  dialogClass: "loco-modal loco-modal-wide",
4251
  modal: !0,
4252
  autoOpen: !1,
4255
  height: 500
4256
  }));
4257
  }
4258
+ function a(a, b, d) {
4259
  a = k("<p></p>").text(d);
4260
+ l().dialog("close").html("").dialog("option", "title", "Error").append(a).dialog("open");
4261
  }
4262
+ function b(a) {
4263
  var b = a && a.code;
4264
  if (b) {
4265
+ for (var d = -1, c = b.length, e = k("<ol></ol>").attr("class", a.type); ++d < c; ) k("<li></li>").html(b[d]).appendTo(e);
4266
+ e.find("li").eq(a.line - 1).attr("class", "highlighted");
4267
+ l().dialog("close").html("").dialog("option", "title", a.path + ":" + a.line).append(e).dialog("open");
4268
  }
4269
  }
4270
+ function d(a) {
4271
  a = a.target;
4272
  var b = k(a).find("li.highlighted")[0], b = Math.max(0, (b && b.offsetTop || 0) - Math.floor(a.clientHeight / 2));
4273
  a.scrollTop = b;
4274
  }
4275
+ var g;
4276
  return {
4277
+ load: function(g) {
4278
+ l().html('<div class="loco-loading"></div>').dialog("option", "title", "Loading..").off("dialogopen").dialog("open").on("dialogopen", d);
4279
+ g = k.extend({
4280
+ ref: g,
4281
+ path: e.popath
4282
+ }, e.project || {});
4283
+ c.ajax.post("fsReference", g, b, a);
4284
  }
4285
  };
4286
  };
4287
+ return e;
4288
+ }({}, z, w));
4289
+ q.register("$30", function(e, c, k) {
4290
+ function p(c) {
4291
+ this.api = c;
4292
  this.chars = 0;
4293
  }
4294
+ e.create = function(c) {
4295
+ return new p(c);
4296
  };
4297
+ c = p.prototype;
4298
+ c.init = function(c, e) {
4299
+ function a(a) {
4300
  var b = {
4301
  length: 0,
4302
  html: a.html,
4303
  sources: []
4304
  };
4305
+ A.push(b);
4306
+ return x[a.html ? 1 : 0] = b;
4307
  }
4308
+ function b(b, c) {
4309
+ var h = b.source(null, c);
4310
+ if (h && (b.untranslated(c) || e)) {
4311
+ var u = m[h];
4312
+ if (u) u.push(b); else {
4313
+ var u = h.length, v = d.isHtml(h), v = x[v ? 1 : 0], A = v.sources;
4314
+ if (q && u > q) f++; else {
4315
+ if (v.length + u > p || A.length === k) v = a(v), A = v.sources;
4316
+ A.push(h);
4317
+ m[h] = [ b ];
4318
  v.length += u;
4319
+ g += u;
4320
+ n += 1;
4321
  }
4322
  }
4323
  }
4324
  }
4325
+ var d = this.api, g = 0, n = 0, f = 0, k = 50, p = 1e4, q = d.maxChr(), m = {}, A = [], x = [];
4326
+ q && (p = Math.min(p, q));
4327
+ a({
4328
  html: !1
4329
  });
4330
+ a({
4331
  html: !0
4332
  });
4333
+ c.each(function(a, c) {
4334
+ b(c, 0);
4335
+ b(c, 1);
4336
  });
4337
+ delete x;
4338
  this.map = m;
4339
+ this.chars = g;
4340
+ this.length = n;
4341
+ this.batches = A;
4342
+ this.locale = c.locale();
4343
+ f && d.stderr("Strings over " + p + " characters long will be skipped");
4344
  };
4345
+ c.abort = function() {
4346
  this.state = "abort";
4347
  return this;
4348
  };
4349
+ c.dispatch = function() {
4350
+ function c(a, b) {
4351
+ function d(c, e, g) {
4352
+ b !== g && (a === e || 1 < c && f.source(null, 1) === a) && (f.translate(b, c),
4353
  m++, r++);
4354
  return m;
4355
  }
4356
+ if (!e()) return !1;
4357
  if (!b) return !0;
4358
+ var f, g = p[a] || [], h = g.length, k = -1, m;
4359
+ for (A++; ++k < h; ) if (f = g[k]) m = 0, f.each(d), m && n("each", [ f ]);
4360
  return !0;
4361
  }
4362
+ function e() {
4363
+ return "abort" === f.state ? (k && (k.abort(), g()), !1) : !0;
 
 
 
 
4364
  }
4365
  function a() {
4366
+ var a = q.shift(), f;
4367
+ a ? (f = a.sources) && f.length ? k.batch(f, m, a.html, c).fail(b).always(d) : d() : g();
4368
  }
4369
+ function b() {
4370
+ f.abort();
4371
+ g();
 
4372
  }
4373
+ function d() {
4374
+ x++;
4375
+ n("prog", [ x, z ]);
4376
+ e() && a();
4377
  }
4378
+ function g() {
4379
+ k = q = null;
4380
+ n("done");
4381
+ }
4382
+ function n(a, b) {
4383
  for (var c = u[a] || [], d = c.length; 0 <= --d; ) c[d].apply(null, b);
4384
  }
4385
+ var f = this, k = f.api, p = f.map, q = f.batches || [], m = f.locale, A = 0, x = 0, r = 0, w = f.length, z = q.length, u = {
4386
  done: [],
4387
  each: [],
4388
  prog: []
4389
  };
4390
+ f.state = "";
4391
+ a();
4392
  return {
4393
  done: function(a) {
4394
  u.done.push(a);
4405
  stat: function() {
4406
  return {
4407
  todo: function() {
4408
+ return Math.max(w - A, 0);
4409
  },
4410
  did: function() {
4411
+ return A;
4412
  }
4413
  };
4414
  }
4415
  };
4416
  };
4417
+ return e;
4418
+ }({}, z, w));
4419
+ q.register("$40", {
4420
  zh: [ "zh", "zh-CN", "zh-TW" ],
4421
  he: [ "iw" ],
4422
  jv: [ "jw" ]
4423
  });
4424
+ q.register("$31", function(e, c, k) {
4425
  function p() {}
4426
+ e.create = function(c) {
4427
+ c = p.prototype = new c();
4428
+ c.toString = function() {
4429
  return "Google Translate";
4430
  };
4431
+ c.getId = function() {
4432
  return "google";
4433
  };
4434
+ c.getUrl = function() {
4435
  return "https://translate.google.com/";
4436
  };
4437
+ c.parseError = function(c) {
4438
  if (c.error) {
4439
+ for (var a = [], b = c.error.errors || [], d = b.length, e = -1; ++e < d; ) a.push(b[e].message || "");
4440
+ return "Error " + c.error.code + ": " + a.join(";");
4441
  }
4442
  return "";
4443
  };
4444
+ c.batch = function(c, a, b, d) {
4445
+ function e(b) {
4446
+ for (var f = c.length, g = -1, h; ++g < f && (h = b[g] || {}, !1 !== d(c[g], h.translatedText || "", a)); ) ;
4447
  }
4448
+ var h = this, f = this.getSrc();
4449
+ b = b ? "html" : "text";
4450
+ var k = h.mapLang(a, q.require("$40", "google.json"));
4451
+ return h._call({
4452
+ url: "https://translation.googleapis.com/language/translate/v2?source=" + f + "&target=" + k + "&format=" + b,
4453
  method: "POST",
4454
  traditional: !0,
4455
  data: {
4456
+ key: h.key(),
4457
  q: c
4458
  }
4459
  }).done(function(a, b, c) {
4460
+ a.data ? e(a.data.translations || []) : (h.stderr(h.parseError(a) || h.httpError(c)),
4461
+ e([]));
4462
  }).fail(function() {
4463
+ e([]);
4464
  });
4465
  };
4466
  return new p();
4467
  };
4468
+ return e;
4469
+ }({}, z, w));
4470
+ q.register("$41", {
4471
  nn: [ "no" ],
4472
  pt: [ "pt", "pt-pt" ],
4473
  sr: [ "sr-Cyrl", "sr-Latn" ],
4479
  zh_SG: [ "zh-Hans" ],
4480
  zh_TW: [ "zh-Hant" ]
4481
  });
4482
+ q.register("$32", function(e, c, k) {
4483
  function p() {}
4484
+ e.create = function(c) {
4485
+ c = p.prototype = new c();
4486
+ c.toString = function() {
4487
  return "Microsoft Translator text API";
4488
  };
4489
+ c.getId = function() {
4490
  return "microsoft";
4491
  };
4492
+ c.getUrl = function() {
4493
  return "https://aka.ms/MicrosoftTranslatorAttribution";
4494
  };
4495
+ c.parseError = function(c) {
4496
  return c && c.error ? c.error.message : "";
4497
  };
4498
+ c.maxChr = function() {
4499
  return 1e4;
4500
  };
4501
+ c.batch = function(c, a, b, d) {
4502
+ function e(b) {
4503
+ for (var f = -1, g; ++f < p && (g = b[f] || {}, g = g.translations || [], g = g[0] || {},
4504
+ !1 !== d(c[f], g.text || "", a)); ) ;
4505
  }
4506
+ var h = this, f = [], k = h.getSrc(), p = c.length, s = -1;
4507
+ b = b ? "html" : "plain";
4508
+ for (var m = h.mapLang(a, q.require("$41", "ms.json")); ++s < p; ) f.push({
4509
  text: c[s]
4510
  });
4511
+ return h._call({
4512
+ url: "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&from=" + k + "&to=" + m + "&textType=" + b,
4513
  method: "POST",
4514
+ data: JSON.stringify(f),
4515
  headers: {
4516
  "Content-Type": "application/json; charset=UTF-8",
4517
  "Ocp-Apim-Subscription-Key": this.key(),
4518
+ "Ocp-Apim-Subscription-Region": h.param("region") || "global"
4519
  }
4520
  }).done(function(a, b, c) {
4521
+ a && a.length ? e(a) : (h.stderr(h.parseError(a) || h.httpError(c)), e([]));
4522
  }).fail(function() {
4523
+ e([]);
4524
  });
4525
  };
4526
  return new p();
4527
  };
4528
+ return e;
4529
+ }({}, z, w));
4530
+ q.register("$42", {
4531
  pt: [ "pt-PT", "pt-BR" ]
4532
  });
4533
+ q.register("$33", function(e, c, k) {
4534
  function p() {}
4535
+ e.create = function(c) {
4536
+ c = p.prototype = new c();
4537
+ c.toString = function() {
4538
  return "DeepL Translator";
4539
  };
4540
+ c.getId = function() {
4541
  return "deepl";
4542
  };
4543
+ c.getUrl = function() {
4544
  return "https://www.deepl.com/translator";
4545
  };
4546
+ c.parseError = function(c) {
4547
  return c.message;
4548
  };
4549
+ c.batch = function(c, a, b, d) {
4550
+ function e(b) {
4551
+ for (var f = c.length, g = -1, h; ++g < f && (h = b[g] || {}, !1 !== d(c[g], h.text || "", a)); ) ;
4552
+ }
4553
+ var h = this;
4554
+ b = this.getSrc();
4555
+ var f = h.param("url") || "https://api.deepl.com", k = h.mapLang(a, q.require("$42", "deepl.json")), p = a.tone, s = "default";
4556
+ null == p && (p = String(a.variant || "").toLowerCase());
4557
+ "formal" === p ? s = "more" : "informal" === p && (s = "less");
4558
+ return h._call({
4559
+ url: h.fixURL(f + "/v2/translate"),
4560
  method: "POST",
4561
  traditional: !0,
4562
  data: {
4563
+ source_lang: b.toUpperCase(),
4564
+ target_lang: k.toUpperCase(),
4565
  formality: s,
4566
  preserve_formatting: "1",
4567
+ auth_key: h.key(),
4568
  text: c
4569
  }
4570
  }).done(function(a, b, c) {
4571
+ a.translations ? e(a.translations) : (h.stderr(h.parseError(a) || h.httpError(c)),
4572
+ e([]));
4573
  }).fail(function() {
4574
+ e([]);
4575
  });
4576
  };
4577
  return new p();
4578
  };
4579
+ return e;
4580
+ }({}, z, w));
4581
+ q.register("$43", {
4582
  zh: [ "zh", "zh-CN", "zh-TW" ],
4583
  pt: [ "pt", "pt-PT", "pt-BR" ]
4584
  });
4585
+ q.register("$34", function(e, c, k) {
4586
  function p() {}
4587
+ e.create = function(c) {
4588
+ c = p.prototype = new c();
4589
+ c.getUrl = function() {
4590
  return "https://lecto.ai/?ref=loco";
4591
  };
4592
+ c.parseError = function(c) {
4593
+ var a = c.details || {}, b = a.message, a = a.texts;
4594
+ return b ? (a && a !== b && (b += "; " + a), b = b.replace(/https?:\/\/(?:[a-z]+\.)?lecto.ai[-\w\/?&=%.+~]*/, function(a) {
4595
  a += -1 === a.indexOf("?") ? "?" : "&";
4596
  return a + "ref=loco";
4597
+ }), "Error " + (c.status || "0") + ": " + b) : "";
4598
  };
4599
+ c.maxChr = function() {
4600
  return 1e3;
4601
  };
4602
+ c.batch = function(c, a, b, d) {
4603
+ function e(b) {
4604
+ for (var f = c.length, g = -1, h = (b[0] || {
4605
  translated: []
4606
+ }).translated || []; ++g < f && (b = h[g] || "", !1 !== d(c[g], b, a)); ) ;
4607
  }
4608
+ var h = this;
4609
+ b = this.getSrc();
4610
+ var f = h.param("url") || "https://api.lecto.ai", k = h.mapLang(a, q.require("$43", "lecto.json"));
4611
+ return h._call({
4612
+ url: h.fixURL(f + "/v1/translate/text"),
4613
  method: "POST",
4614
  data: JSON.stringify({
4615
+ to: [ k ],
4616
+ from: b,
4617
  texts: c
4618
  }),
4619
  headers: {
4620
  "Content-Type": "application/json; charset=UTF-8",
4621
+ "X-API-Key": h.key(),
4622
  Accept: "application/json"
4623
  }
4624
  }).done(function(a, b, c) {
4625
+ a ? e(a.translations || []) : (h.stderr(h.parseError(a) || h.httpError(c)), e([]));
4626
  }).fail(function() {
4627
+ e([]);
4628
  });
4629
  };
4630
  return new p();
4631
  };
4632
+ return e;
4633
+ }({}, z, w));
4634
+ q.register("$18", function(e, c, w) {
4635
  function p() {
4636
  this.inf = {};
4637
  }
4638
+ function h() {
4639
+ var a = w.createElement("p"), c = /&(#\d+|#x[0-9a-f]|[a-z]+);/i, e = /<[a-z]+\s/i, h, f;
4640
  return {
4641
+ sniff: function(k) {
4642
+ if (k === h) return f;
4643
+ h = k;
4644
+ if (c.test(k) || e.test(k)) if (a.innerHTML = k, a.textContent !== k) return f = !0;
4645
  return f = !1;
4646
  }
4647
  };
4648
  }
4649
+ var l = p.prototype;
4650
+ l.init = function(a) {
4651
  this.inf = a || {};
4652
  };
4653
+ l.param = function(a) {
4654
  return this.inf[a] || "";
4655
  };
4656
+ l.key = function() {
4657
  return this.param("key");
4658
  };
4659
+ l.getId = function() {
4660
  return this.param("id") || "none";
4661
  };
4662
+ l.getUrl = function() {
4663
  return this.param("url") || "#";
4664
  };
4665
+ l.toString = function() {
4666
  return this.param("name") || this.getId();
4667
  };
4668
+ l.getSrc = function() {
4669
  return this.param("src") || "en";
4670
  };
4671
+ l.stderr = function(a) {
4672
+ var d = (c.loco || {}).notices || c.console;
4673
+ d && d.error && d.error(String(this) + ": " + String(a));
4674
  };
4675
+ l.httpError = function(a) {
4676
  return (a = a && a.status) && 200 !== a ? "Responded status " + a : "Unknown error";
4677
  };
4678
+ l.parseError = function() {
4679
  return "";
4680
  };
4681
+ l.mapLang = function(a, c) {
4682
+ var e = String(a).replace("-", "_"), h = a.lang, f = c[e] || c[h] || [], k = f.length;
4683
+ if (0 === k) return h;
4684
+ if (1 < k) for (var e = e.toLowerCase(), h = -1, l; ++h < k; ) if (l = f[h], l.toLowerCase().replace("-", "_") === e) return l;
4685
  return f[0];
4686
  };
4687
+ l.toLang = function(a) {
4688
  return String(a);
4689
  };
4690
+ l.maxChr = function() {
4691
  return 0;
4692
  };
4693
+ l.fixURL = function(a) {
4694
  a = a.split("://", 2);
4695
  1 === a.length && a.unshift("https");
4696
  return a[0] + "://" + a[1].replace(/\/{2,}/g, "/");
4697
  };
4698
+ l.translate = function(a, c, e) {
4699
+ return this.batch([ a ], c, this.isHtml(a), e);
4700
  };
4701
+ l._call = function(a) {
4702
+ var c = this;
4703
+ c.state = null;
4704
  a.cache = !0;
4705
  a.dataType = "json";
4706
+ a.error = function(a, b, f) {
4707
  try {
4708
+ var e = a.responseText, h = e && q.require("$5", "json.js").parse(e);
4709
+ f = h && c.parseError(h) || f;
4710
  } catch (k) {}
4711
+ c.stderr(f || c.httpError(a));
4712
  };
4713
+ return c.abortable(k.ajax(a));
4714
  };
4715
+ l.abortable = function(a) {
4716
+ var c = this;
4717
  a.always(function() {
4718
+ c.$r === a && (c.$r = null);
4719
  });
4720
+ return c.$r = a;
4721
  };
4722
+ l.abort = function() {
4723
  var a = this.$r;
4724
  a && a.abort();
4725
  };
4726
+ l.isHtml = function(b) {
4727
+ return (a || (a = h())).sniff(b);
4728
  };
4729
+ l.createJob = function() {
4730
+ return q.require("$30", "job.js").create(this);
4731
  };
4732
+ l.batch = function(a, d, e, h) {
4733
+ function f(c) {
4734
+ for (var f = a.length, e = -1; ++e < f && !1 !== h(a[e], c[e], d); ) ;
4735
  }
4736
+ var l = c.loco.ajax;
4737
+ e = {
4738
  hook: this.getId(),
4739
+ type: e ? "html" : "text",
4740
+ locale: this.toLang(d),
4741
  source: this.getSrc(),
4742
  sources: a
4743
  };
4744
+ var p = k.Deferred();
4745
+ this.abortable(l.post("apis", e, function(a) {
4746
+ f(a && a.targets || []);
4747
+ p.resolve();
4748
  }, function() {
4749
+ f([]);
4750
+ p.reject();
4751
  }));
4752
+ return p.promise();
4753
  };
4754
+ e.create = function(a) {
4755
+ var c;
4756
+ c = a.id;
4757
+ c = "google" === c ? q.require("$31", "google.js").create(p) : "microsoft" === c ? q.require("$32", "ms.js").create(p) : "deepl" === c ? q.require("$33", "deepl.js").create(p) : "lecto" === c ? q.require("$34", "lecto.js").create(p) : new p();
4758
+ c.init(a);
4759
+ return c;
4760
  };
4761
+ e.suggest = function(a, c, e, h) {
4762
+ var f, k, l = a.length;
4763
+ for (f = 0; f < l; f++) k = a[f], k.translate(c, e, h);
4764
  };
4765
+ var a;
4766
+ return e;
4767
+ }({}, z, w));
4768
+ q.register("$19", function(e, c, q) {
4769
+ e.init = function(e) {
4770
+ function h() {
4771
+ H || (I.on("click", f), H = k('<div id="loco-fs-creds"></div>').dialog({
4772
  dialogClass: "request-filesystem-credentials-dialog loco-modal",
4773
  minWidth: 580,
4774
  modal: !0,
4779
  }));
4780
  return H;
4781
  }
4782
+ function l() {
4783
+ Q && (a(k(x)), Q = !1);
4784
+ if (G && J) {
4785
+ var b = J, c = k(P);
4786
+ c.find("span.loco-msg").text(b);
4787
  K || (c.removeClass("jshide").hide().fadeIn(500), K = !0);
4788
+ } else K && (a(k(P)), K = !1);
4789
  }
4790
+ function a(a) {
4791
  a.slideUp(250).fadeOut(250, function() {
4792
  k(this).addClass("jshide");
4793
  });
4794
  }
4795
+ function b() {
4796
+ if (G) return H && H.dialog("close"), l(), k(e).find('button[type="submit"]').attr("disabled", !1),
4797
+ k(c).triggerHandler("resize"), A && A(!0), !0;
4798
+ v && H ? (Q || (k(x).removeClass("jshide").hide().fadeIn(500), Q = !0), K && (a(k(P)),
4799
+ K = !1)) : l();
4800
+ k(e).find('input[type="submit"]').attr("disabled", !0);
4801
+ A && A(!1);
4802
  return !1;
4803
  }
4804
+ function d(a) {
4805
  var b, c, d = m || {};
4806
  for (b in d) d.hasOwnProperty(b) && (c = d[b], a[b] ? a[b].value = c : k('<input type="hidden" />').attr("name", b).appendTo(a).val(c));
4807
  }
4808
+ function g(a) {
4809
  a.preventDefault();
4810
  a = k(a.target).serializeArray();
4811
  s(a);
4812
+ z = !0;
4813
  return !1;
4814
  }
4815
+ function n(a) {
4816
  a.preventDefault();
4817
  H.dialog("close");
4818
  return !1;
4819
  }
4820
+ function f(a) {
4821
  a.preventDefault();
4822
  H.dialog("open").find('input[name="connection_type"]').change();
4823
  return !1;
4824
  }
4825
+ function y(a) {
4826
+ G = a.authed;
4827
+ r = a.method;
4828
+ k(x).find("span.loco-msg").text(a.message || "Something went wrong.");
4829
+ J = a.warning || "";
4830
+ a.notice && u.notices.info(a.notice);
4831
+ if (G) "direct" !== r && (m = a.creds, d(e), z && a.success && u.notices.success(a.success)),
4832
+ b(); else if (a.reason) u.notices.info(a.reason); else if (a = a.prompt) {
4833
+ var f = h();
4834
+ f.html(a).find("form").on("submit", g);
4835
+ f.dialog("option", "title", f.find("h2").remove().text());
4836
+ f.find("button.cancel-button").show().on("click", n);
4837
+ f.find('input[type="submit"]').addClass("button-primary");
4838
+ b();
4839
+ k(c).triggerHandler("resize");
4840
  } else u.notices.error("Server didn't return credentials, nor a prompt for credentials");
4841
  }
4842
  function w() {
4843
+ b();
4844
  }
4845
  function s(a) {
4846
+ z = !1;
4847
+ u.ajax.setNonce("fsConnect", D).post("fsConnect", a, y, w);
4848
  return a;
4849
  }
4850
+ var m, A, x = e, r = null, z = !1, G = !1, u = c.loco, v = e.path.value, E = e.auth.value, D = e["loco-nonce"].value, I = k(x).find("button.button-primary"), P = q.getElementById(x.id + "-warn"), Q = !1, K = !1, J = "", H;
4851
+ u.notices.convert(P).stick();
4852
+ e.connection_type ? (m = {}, m.connection_type = e.connection_type.value, G = !0) : v && E && s({
4853
  path: v,
4854
+ auth: E
4855
  });
4856
+ b();
4857
  return {
4858
  applyCreds: function(a) {
4859
+ if (a.nodeType) d(a); else {
4860
  var b, c = m || {};
4861
  for (b in c) c.hasOwnProperty(b) && (a[b] = c[b]);
4862
  }
4863
  return this;
4864
  },
4865
+ setForm: function(a) {
4866
+ e = a;
4867
+ b();
4868
+ d(a);
4869
  return this;
4870
  },
4871
  connect: function() {
4872
+ v = e.path.value;
4873
+ E = e.auth.value;
4874
+ s(k(e).serializeArray());
4875
  return this;
4876
  },
4877
  listen: function(a) {
4878
+ A = a;
4879
+ G && a(!0);
4880
  return this;
4881
  },
4882
  authed: function() {
4883
+ return G;
4884
  }
4885
  };
4886
  };
4887
+ return e;
4888
+ }({}, z, w));
4889
+ q.register("$20", function(e, c, w) {
4890
+ function p(c, e, k, f) {
4891
+ e = "n" === k ? l(e) : a(e);
4892
+ f && (e = b(e));
4893
+ return h([].sort, [ e ])(c);
4894
+ }
4895
+ function h(a, b) {
4896
  return function(c) {
4897
  a.apply(c, b);
4898
  return c;
4899
  };
4900
  }
4901
+ function l(a) {
4902
  return function(b, c) {
4903
+ var e = b && b[a] || 0, h = c && c[a] || 0;
4904
+ return e === h ? 0 : e > h ? 1 : -1;
4905
  };
4906
  }
4907
+ function a(a) {
4908
  return function(b, c) {
4909
  return (b && b[a] || "").localeCompare(c && c[a] || "");
4910
  };
4911
  }
4912
+ function b(a) {
4913
  return function(b, c) {
4914
  return -1 * a(b, c);
4915
  };
4916
  }
4917
+ e.init = function(a) {
4918
  function b(a) {
4919
  var c = -1, d = a.length;
4920
+ for (k("tr", x).remove(); ++c < d; ) x.appendChild(a[c].$);
4921
  }
4922
  function c(a) {
4923
+ s = a ? z.find(a, e) : e.slice(0);
4924
+ w && (a = h[w], s = p(s, w, a.type, a.desc));
4925
  b(s);
4926
  }
4927
+ var e = [], h = [], l = 0, s, m, w, x = a.getElementsByTagName("tbody")[0], r = a.getElementsByTagName("thead")[0], z = q.require("$10", "fulltext.js").init();
4928
+ r && x && (k("th", r).each(function(a, c) {
4929
+ var d = c.getAttribute("data-sort-type");
4930
+ d && (a = l, k(c).addClass("loco-sort").on("click", function(c) {
4931
  c.preventDefault();
4932
  c = a;
4933
+ var d = h[c], l = d.type, n = !(d.desc = !d.desc);
4934
+ s = p(s || e.slice(0), c, l, n);
4935
  b(s);
4936
  m && m.removeClass("loco-desc loco-asc");
4937
+ m = k(d.$).addClass(n ? "loco-desc" : "loco-asc").removeClass(n ? "loco-asc" : "loco-desc");
4938
+ w = c;
4939
  return !1;
4940
+ }), h[l] = {
4941
  $: c,
4942
+ type: d
4943
  });
4944
+ c.hasAttribute("colspan") ? l += Number(c.getAttribute("colspan")) : l++;
4945
+ }), k("tr", x).each(function(a, b) {
4946
+ var c, d, g, k = [], l = {
4947
  _: a,
4948
  $: b
4949
  }, m = b.getElementsByTagName("td");
4950
+ for (d in h) {
4951
+ c = m[d];
4952
+ (g = c.textContent.replace(/(^\s+|\s+$)/g, "")) && k.push(g);
4953
  c.hasAttribute("data-sort-value") && (g = c.getAttribute("data-sort-value"));
4954
+ switch (h[d].type) {
4955
  case "n":
4956
  g = Number(g);
4957
  }
4958
+ l[d] = g;
4959
  }
4960
+ e[a] = l;
4961
+ z.index(a, k);
4962
  }), a = k('form.loco-filter input[type="text"]', a.parentNode), a.length && (a = a[0],
4963
+ r = k(a.form), 1 < e.length ? q.require("$11", "LocoTextListener.js").listen(a, c) : r.hide(),
4964
  r.on("submit", function(a) {
4965
  a.preventDefault();
4966
  return !1;
4967
  })));
4968
  };
4969
+ return e;
4970
+ }({}, z, w));
4971
+ var D = z.loco || {}, I = D.conf || {
4972
  $v: [ 0, 0 ]
4973
  };
4974
+ z = q.require("$1", "t.js").init();
4975
+ w = I.wplang;
4976
+ D.version = function(e) {
4977
+ return I.$v[e || 0];
4978
  };
4979
+ q.require("$2", "html.js");
4980
+ q.require("$3", "number.js");
4981
+ q.require("$4", "array.js");
4982
+ q.require("$5", "json.js");
4983
+ D.l10n = z;
4984
  z.load(I.wpl10n);
4985
+ w && z.pluraleq(w.pluraleq);
4986
+ D.string = q.require("$6", "string.js");
4987
+ D.notices = q.require("$7", "notices.js").init(z);
4988
+ D.ajax = q.require("$8", "ajax.js").init(I).localise(z);
4989
+ D.locale = q.require("$9", "wplocale.js");
4990
+ D.fulltext = q.require("$10", "fulltext.js");
4991
+ D.watchtext = q.require("$11", "LocoTextListener.js").listen;
4992
+ D.tooltip = q.require("$12", "tooltip.js");
4993
+ D.po = {
4994
+ ed: q.require("$13", "poedit.js"),
4995
+ kbd: q.require("$14", "hotkeys.js"),
4996
+ init: q.require("$15", "po.js").create,
4997
+ ace: q.require("$16", "ace.js").strf("php"),
4998
+ ref: q.require("$17", "refs.js")
4999
+ };
5000
+ D.apis = q.require("$18", "apis.js");
5001
+ D.fs = q.require("$19", "fsconn.js");
5002
+ k("#loco-admin.wrap table.wp-list-table").each(function(e, c) {
5003
+ q.require("$20", "tables.js").init(c);
5004
  });
5005
+ D.validate = function(e) {
5006
+ return "2.6.2" !== (/^\d+\.\d+\.\d+/.exec(e && e[0] || "") && RegExp.lastMatch) ? (D.notices.warn("admin.js is the wrong version (2.6.2). Please empty all relevant caches and reload this page."),
5007
  !1) : !0;
5008
  };
5009
  })(window, document, window.jQuery);
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: timwhitlock
3
  Tags: translation, translators, localization, localisation, l10n, i18n, Gettext, PO, MO, productivity, multilingual, internationalization
4
  Requires at least: 5.2
5
  Requires PHP: 5.6.20
6
- Tested up to: 5.9.2
7
- Stable tag: 2.6.1
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -20,7 +20,7 @@ It also provides Gettext/localization tools for developers, such as extracting s
20
  Features include:
21
 
22
  * Built-in translation editor within WordPress admin
23
- * Integration with translation APIs including DeepL, Google, Microsoft and Yandex
24
  * Create and update language files directly in your theme or plugin
25
  * Extraction of translatable strings from your source code
26
  * Native MO file compilation without the need for Gettext on your system
@@ -100,6 +100,13 @@ We don't collect your data or snoop on you. See the [plugin privacy notice](http
100
 
101
  == Changelog ==
102
 
 
 
 
 
 
 
 
103
  = 2.6.1 =
104
  * Bumped WordPress version to 5.9.2
105
  * Fix for CVE-2022-0765 reported by Taurus Omar via wpscan
@@ -461,7 +468,7 @@ We don't collect your data or snoop on you. See the [plugin privacy notice](http
461
 
462
  == Upgrade Notice ==
463
 
464
- = 2.6.1 =
465
  * Various improvements and bug fixes
466
 
467
 
3
  Tags: translation, translators, localization, localisation, l10n, i18n, Gettext, PO, MO, productivity, multilingual, internationalization
4
  Requires at least: 5.2
5
  Requires PHP: 5.6.20
6
+ Tested up to: 6.0.0
7
+ Stable tag: 2.6.2
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
20
  Features include:
21
 
22
  * Built-in translation editor within WordPress admin
23
+ * Integration with translation APIs including DeepL, Google, Microsoft and Lecto AI
24
  * Create and update language files directly in your theme or plugin
25
  * Extraction of translatable strings from your source code
26
  * Native MO file compilation without the need for Gettext on your system
100
 
101
  == Changelog ==
102
 
103
+ = 2.6.2 =
104
+ * Bumped WordPress version to 6.0.0
105
+ * Better labelling of reverse-engineered plural forms
106
+ * Removed undocumented loco_locale_plurals filter; use loco_po_headers
107
+ * Added PO folder location indicator in breadcrumb
108
+ * Added syntax validation for formatted strings
109
+
110
  = 2.6.1 =
111
  * Bumped WordPress version to 5.9.2
112
  * Fix for CVE-2022-0765 reported by Taurus Omar via wpscan
468
 
469
  == Upgrade Notice ==
470
 
471
+ = 2.6.2 =
472
  * Various improvements and bug fixes
473
 
474
 
src/Locale.php CHANGED
@@ -39,11 +39,17 @@ class Loco_Locale implements JsonSerializable {
39
  private $_name;
40
 
41
  /**
42
- * Cache of raw plural data
43
- * @var array
 
 
 
 
 
 
44
  */
45
  private $plurals;
46
-
47
  /**
48
  * Validity cache
49
  * @var bool
@@ -360,47 +366,48 @@ class Loco_Locale implements JsonSerializable {
360
  // plural data expected by editor
361
  $p = $this->getPluralData();
362
  $a['pluraleq'] = $p[0];
363
- $a['plurals'] = $p[1];
364
  $a['nplurals'] = count($p[1]);
 
365
  // tone setting may used by some external translation providers
366
  $a['tone'] = $this->getFormality();
367
  return $a;
368
  }
369
 
370
 
371
- /**
372
- * Get plural data with translated forms
373
- * @internal
374
- * @return array [ (string) equation, (array) forms ]
375
- */
376
- public function getPluralData(){
377
- $cache = $this->plurals;
378
- if( ! $cache ){
379
- $lc = $this->lang;
380
  $db = Loco_data_CompiledData::get('plurals');
381
  $id = $lc && isset($db[$lc]) ? $db[$lc] : 0;
382
- $cache = $this->setPlurals( $db[''][$id] );
383
  }
384
- return $cache;
385
  }
386
 
387
 
388
  /**
389
- * @param array[]
390
- * @return array
391
  */
392
- private function setPlurals( array $raw ){
393
- $raw = apply_filters( 'loco_locale_plurals', $raw, $this );
394
- // handle languages with no plural forms, where n is always 0
395
- if( ! isset($raw[1][1]) ){
396
- // Translators: Plural category for languages that have no plurals
397
- $raw[1] = [ _x('All forms','Plural category','loco-translate') ];
398
- $raw[0] = '0';
399
- }
400
- // else translate all implemented plural forms
 
 
 
 
 
 
 
401
  // for meaning of categories, see http://cldr.unicode.org/index/cldr-spec/plural-rules
402
  else {
403
- $forms = [
404
  // Translators: Plural category for zero quantity
405
  'zero' => _x('Zero','Plural category','loco-translate'),
406
  // Translators: Plural category for singular quantity
@@ -414,14 +421,40 @@ class Loco_Locale implements JsonSerializable {
414
  // Translators: General plural category not covered by other forms
415
  'other' => _x('Other','Plural category','loco-translate'),
416
  ];
417
- foreach( $raw[1] as $k => $v ){
418
- if( isset($forms[$v]) ){
419
- $raw[1][$k] = $forms[$v];
420
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
421
  }
422
  }
423
- $this->plurals = $raw;
424
- return $raw;
425
  }
426
 
427
 
@@ -438,31 +471,74 @@ class Loco_Locale implements JsonSerializable {
438
  /**
439
  * Apply PO style Plural-Forms header.
440
  * @param string e.g. "nplurals=2; plural=n != 1;"
441
- * @return self
442
  */
443
  public function setPluralFormsHeader( $str ){
444
- if( ! preg_match('/^nplurals=(\\d);\s*plural=([ +\\-\\/*%!=<>|&?:()n0-9]+);?$/', $str, $match ) ){
445
  throw new InvalidArgumentException('Invalid Plural-Forms header, '.json_encode($str) );
446
  }
447
- $cache = $this->getPluralData();
448
- $exprn = $match[2];
449
- // always alter if equation differs
450
- if( $cache[0] !== $exprn ){
451
- $this->plurals[0] = $exprn;
452
- // alter number of forms if changed
453
- $nplurals = max( 1, (int) $match[1] );
454
- if( $nplurals !== count($cache[1]) ){
455
- // named forms must also change, but Plural-Forms cannot contain this information
456
- // as a cheat, we'll assume first form always "one" and last always "other"
457
- for( $i = 1; $i < $nplurals; $i++ ){
458
- $name = 1 === $i ? 'one' : sprintf('Plural %u',$i);
459
- $forms[] = $name;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
460
  }
461
- $forms[] = 'other';
462
- $this->setPlurals( [$exprn,$forms] );
463
  }
 
464
  }
465
- return $this;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
466
  }
467
 
468
 
39
  private $_name;
40
 
41
  /**
42
+ * Plural equation expressed in terms of "n"
43
+ * @var string|null
44
+ */
45
+ private $pluraleq;
46
+
47
+ /**
48
+ * Cache of plural forms mapped optionally to CLDR mnemonic tags
49
+ * @var array|null
50
  */
51
  private $plurals;
52
+
53
  /**
54
  * Validity cache
55
  * @var bool
366
  // plural data expected by editor
367
  $p = $this->getPluralData();
368
  $a['pluraleq'] = $p[0];
 
369
  $a['nplurals'] = count($p[1]);
370
+ $a['plurals'] = $this->getPluralForms();
371
  // tone setting may used by some external translation providers
372
  $a['tone'] = $this->getFormality();
373
  return $a;
374
  }
375
 
376
 
377
+ private function getPluralData(){
378
+ if( is_null($this->plurals) ){
379
+ $lc = strtolower($this->lang);
 
 
 
 
 
 
380
  $db = Loco_data_CompiledData::get('plurals');
381
  $id = $lc && isset($db[$lc]) ? $db[$lc] : 0;
382
+ list( $this->pluraleq, $this->plurals ) = $db[''][$id];
383
  }
384
+ return [ $this->pluraleq, $this->plurals ];
385
  }
386
 
387
 
388
  /**
389
+ * Get translated plural form labels
390
+ * @return string[]
391
  */
392
+ public function getPluralForms(){
393
+ list( , $plurals ) = $this->getPluralData();
394
+ $nplurals = count($plurals);
395
+ // Languages with no plural forms, where n always yields 0. The UI doesn't show a label for this.
396
+ if( 1 === $nplurals ){
397
+ return [ 'All' ];
398
+ }
399
+ // Germanic plurals can show singular/plural as per source string text boxes
400
+ // Note that french style plurals include n=0 under the "Single", but we will show "Single (0,1)"
401
+ if( 2 === $nplurals ){
402
+ $l10n = [
403
+ 'one' => _x('Single','Editor','loco-translate'),
404
+ 'other' => _x('Plural',"Editor",'loco-translate'),
405
+ ];
406
+ }
407
+ // else translate all implemented plural forms and show sample numbers if useful:
408
  // for meaning of categories, see http://cldr.unicode.org/index/cldr-spec/plural-rules
409
  else {
410
+ $l10n = [
411
  // Translators: Plural category for zero quantity
412
  'zero' => _x('Zero','Plural category','loco-translate'),
413
  // Translators: Plural category for singular quantity
421
  // Translators: General plural category not covered by other forms
422
  'other' => _x('Other','Plural category','loco-translate'),
423
  ];
424
+ }
425
+ // process labels to be shown in editor tab, appending sample values of `n` if useful
426
+ $labels = [];
427
+ foreach( $plurals as $sample => $tag ){
428
+ if( is_int($sample) ){
429
+ $sample = sprintf('%u',$sample);
430
+ }
431
+ // if CLDR tag is to be used we'll need to translate it
432
+ if( array_key_exists($tag,$l10n) ){
433
+ $name = $l10n[$tag];
434
+ }
435
+ else {
436
+ $name = $tag;
437
+ }
438
+ // show just samples if no name
439
+ if( '' === $name ){
440
+ $labels[] = $sample;
441
+ }
442
+ // show just name if label is numeric, or samples are redundant
443
+ else if(
444
+ preg_match('/\\d/',$name) ||
445
+ ( 'one' === $tag && '1' === $sample ) ||
446
+ ( 'two' === $tag && '2' === $sample ) ||
447
+ ( 'zero' === $tag && '0' === $sample ) ||
448
+ ( 'other' === $tag && 2 === $nplurals )
449
+ ){
450
+ $labels[] = $name;
451
+ }
452
+ // else both - most common for standard CLDR forms
453
+ else {
454
+ $labels[] = sprintf('%s (%s)', $name, $sample );
455
  }
456
  }
457
+ return $labels;
 
458
  }
459
 
460
 
471
  /**
472
  * Apply PO style Plural-Forms header.
473
  * @param string e.g. "nplurals=2; plural=n != 1;"
474
+ * @return void
475
  */
476
  public function setPluralFormsHeader( $str ){
477
+ if( ! preg_match('#^nplurals=(\\d);\\s*plural=([-+/*%!=<>|&?:()n\\d ]+);?$#', $str, $match ) ){
478
  throw new InvalidArgumentException('Invalid Plural-Forms header, '.json_encode($str) );
479
  }
480
+ $nplurals = (int) $match[1];
481
+ $pluraleq = trim( $match[2],' ');
482
+ // single form requires no further inspection
483
+ if( 2 > $nplurals ){
484
+ $this->pluraleq = '0';
485
+ $this->plurals = ['other'];
486
+ return;
487
+ }
488
+ // Override new equation in all cases
489
+ $previous = $this->getPluralData()[0];
490
+ $this->pluraleq = $pluraleq;
491
+ // quit asap if plural forms being set aren't changing anything
492
+ if( $nplurals === count($this->plurals) && self::hashPlural($previous) === self::hashPlural($pluraleq) ){
493
+ return;
494
+ }
495
+ // compile sample keys as per built-in CLDR rule for this language
496
+ $keys = [];
497
+ $formula = new Plural_Forms($pluraleq);
498
+ $ns = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,20,21,22,30,31,32,100,101,102,103,104,111,200,201,202,301,302];
499
+ for( $i = 0; $i < $nplurals; $i++ ){
500
+ $sample = [];
501
+ $suffix = '';
502
+ foreach( $ns as $j => $n ){
503
+ if( is_null($n) || $formula->execute($n) !== $i ){
504
+ continue;
505
+ }
506
+ $ns[$j] = null;
507
+ if( array_key_exists(2,$sample) ){
508
+ $suffix = "\xE2\x80\xA6";
509
+ break;
510
+ }
511
+ else {
512
+ $sample[] = $n;
513
  }
 
 
514
  }
515
+ $keys[] = implode(',',$sample).$suffix;
516
  }
517
+ // use mnemonic tag only if it matches the default (CLDR) tag for the current language
518
+ if( array_keys($this->plurals) !== $keys ) {
519
+ // exception when two forms only and the first accepts n=1 and second n=2
520
+ if( 2 === $nplurals && 0 === $formula->execute(1) && 1 === $formula->execute(2) ){
521
+ $tags = ['one','other'];
522
+ }
523
+ // blanking CLDR tags means only samples will be used as labels
524
+ else {
525
+ $tags = array_fill(0,$nplurals,'');
526
+ // Translators: Shown when a PO file's Plural-Forms header has a different formula from the Unicode CLDR rules
527
+ Loco_error_AdminNotices::info( __('Plural forms differ from Loco Translate\'s built in rules for this language','loco-translate') );
528
+ }
529
+ // set new plural forms
530
+ $this->plurals = array_combine($keys,$tags);
531
+ }
532
+ }
533
+
534
+
535
+ /**
536
+ * Crude normalizer for a plural equation such that similar formulae can be compared.
537
+ * @param string original plural equation
538
+ * @return string signature for comparison
539
+ */
540
+ private static function hashPlural( $str ){
541
+ return trim( str_replace([' ','<>'],['','!='],$str), '()' );
542
  }
543
 
544
 
src/admin/file/BaseController.php CHANGED
@@ -45,6 +45,21 @@ abstract class Loco_admin_file_BaseController extends Loco_admin_bundle_BaseCont
45
  }
46
 
47
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
 
49
  /**
50
  * {@inheritdoc}
@@ -150,13 +165,11 @@ abstract class Loco_admin_file_BaseController extends Loco_admin_bundle_BaseCont
150
  }
151
 
152
  // Always add page title as final breadcrumb element
153
- $title = $this->get('title') or $title = 'Untitled';
154
- $breadcrumb->add( $title );
155
  }
156
 
157
  return parent::view( $tpl, $args );
158
  }
159
-
160
-
161
-
162
  }
45
  }
46
 
47
 
48
+ /**
49
+ * Set template title argument for a file
50
+ * @return void
51
+ */
52
+ protected function setFileTitle( Loco_fs_File $file, $format = '%s' ){
53
+ $name = Loco_mvc_ViewParams::format($format,[$file->basename()]);
54
+ // append folder location for translation files
55
+ if( in_array( $file->extension(), ['po','mo'] ) ){
56
+ $dir = new Loco_fs_LocaleDirectory( $file->dirname() );
57
+ $type = $dir->getTypeLabel( $dir->getTypeId() );
58
+ $name .= ' ('.mb_strtolower($type,'UTF-8').')';
59
+ }
60
+ $this->set('title', $name );
61
+ }
62
+
63
 
64
  /**
65
  * {@inheritdoc}
165
  }
166
 
167
  // Always add page title as final breadcrumb element
168
+ $breadcrumb->add( $this->get('title')?:'Untitled' );
 
169
  }
170
 
171
  return parent::view( $tpl, $args );
172
  }
173
+
174
+
 
175
  }
src/admin/file/DeleteController.php CHANGED
@@ -91,7 +91,7 @@ class Loco_admin_file_DeleteController extends Loco_admin_file_BaseController {
91
  $files = $this->expandFiles( $file );
92
  $info = Loco_mvc_FileParams::create($file);
93
  $this->set( 'info', $info );
94
- $this->set( 'title', sprintf( __('Delete %s','loco-translate'), $info->name ) );
95
 
96
  // warn about additional files that will be deleted along with this
97
  if( $deps = array_slice($files,1) ){
91
  $files = $this->expandFiles( $file );
92
  $info = Loco_mvc_FileParams::create($file);
93
  $this->set( 'info', $info );
94
+ $this->setFileTitle( $file, __('Delete %s','loco-translate') );
95
 
96
  // warn about additional files that will be deleted along with this
97
  if( $deps = array_slice($files,1) ){
src/admin/file/DiffController.php CHANGED
@@ -73,7 +73,7 @@ class Loco_admin_file_DiffController extends Loco_admin_file_BaseController {
73
  $info = Loco_mvc_FileParams::create($file);
74
  $info['mtime'] = $file->modified();
75
  $this->set( 'master', $info );
76
- $this->set( 'title', sprintf( __('Restore %s','loco-translate'), $info->name ) );
77
 
78
  $enabled = Loco_data_Settings::get()->num_backups;
79
  $this->set( 'enabled', $enabled );
73
  $info = Loco_mvc_FileParams::create($file);
74
  $info['mtime'] = $file->modified();
75
  $this->set( 'master', $info );
76
+ $this->setFileTitle( $file, __('Restore %s','loco-translate') );
77
 
78
  $enabled = Loco_data_Settings::get()->num_backups;
79
  $this->set( 'enabled', $enabled );
src/admin/file/EditController.php CHANGED
@@ -114,7 +114,8 @@ class Loco_admin_file_EditController extends Loco_admin_file_BaseController {
114
  try {
115
  $potdata = Loco_gettext_Data::load( $potfile );
116
  if( ! $potdata->equalSource($data) ){
117
- Loco_error_AdminNotices::debug( sprintf( __("Translations don't match template. Run sync to update from %s",'loco-translate'), $potfile->basename() ) );
 
118
  }
119
  }
120
  catch( Exception $e ){
@@ -161,10 +162,11 @@ class Loco_admin_file_EditController extends Loco_admin_file_BaseController {
161
  }
162
  // translators: Warning when POT file is opened in the file editor. It can be disabled in settings.
163
  else if( 1 === $settings->pot_protect ){
164
- Loco_error_AdminNotices::warn( __("This is NOT a translation file. Manual editing of source strings is not recommended.",'loco-translate') )
165
- ->addLink( Loco_mvc_AdminRouter::generate('config').'#loco--pot-protect', __('Settings','loco-translate') )
166
- ->addLink( apply_filters('loco_external','https://localise.biz/wordpress/plugin/manual/templates'), __('Documentation','loco-translate') )
167
- ->noLog();
 
168
  }
169
  }
170
 
@@ -224,11 +226,9 @@ class Loco_admin_file_EditController extends Loco_admin_file_BaseController {
224
  // Remote file system required if file is not directly writable
225
  $this->prepareFsConnect( 'update', $this->get('path') );
226
 
227
- // set simpler title for breadcrumb
228
- $this->set('title', $file->basename() );
229
-
230
  // ok to render editor as either po or pot
231
  $tpl = $locale ? 'po' : 'pot';
 
232
  return $this->view( 'admin/file/edit-'.$tpl, [] );
233
  }
234
 
114
  try {
115
  $potdata = Loco_gettext_Data::load( $potfile );
116
  if( ! $potdata->equalSource($data) ){
117
+ Loco_error_AdminNotices::info( sprintf( __("Translations don't match template. Run sync to update from %s",'loco-translate'), $potfile->basename() ) )
118
+ ->addLink( apply_filters('loco_external','https://localise.biz/wordpress/plugin/manual/sync'), __('Documentation','loco-translate') );
119
  }
120
  }
121
  catch( Exception $e ){
162
  }
163
  // translators: Warning when POT file is opened in the file editor. It can be disabled in settings.
164
  else if( 1 === $settings->pot_protect ){
165
+ $e = new Loco_error_Warning( __("This is NOT a translation file. Manual editing of source strings is not recommended.",'loco-translate') );
166
+ $e->addLink( Loco_mvc_AdminRouter::generate('config').'#loco--pot-protect', __('Settings','loco-translate') )
167
+ ->addLink( apply_filters('loco_external','https://localise.biz/wordpress/plugin/manual/templates'), __('Documentation','loco-translate') )
168
+ ->noLog();
169
+ Loco_error_AdminNotices::add($e);
170
  }
171
  }
172
 
226
  // Remote file system required if file is not directly writable
227
  $this->prepareFsConnect( 'update', $this->get('path') );
228
 
 
 
 
229
  // ok to render editor as either po or pot
230
  $tpl = $locale ? 'po' : 'pot';
231
+ $this->setFileTitle($file);
232
  return $this->view( 'admin/file/edit-'.$tpl, [] );
233
  }
234
 
src/admin/file/HeadController.php CHANGED
@@ -117,13 +117,11 @@ class Loco_admin_file_HeadController extends Loco_admin_file_BaseController {
117
  $this->prepareFsConnect( 'update', $this->get('path') );
118
  $this->enqueueScript('head');
119
 
120
- // set simpler title for breadcrumb
121
- $this->set('title', $file->basename() );
122
-
123
  // localized files only can have sync settings
124
  $localized = $file instanceof Loco_fs_LocaleFile && $file->getLocale()->isValid();
125
 
126
  // Advanced mode shows all headers in one form
 
127
  if( $this->get('advanced') || ! $localized ){
128
  return $this->view('admin/file/head');
129
  }
117
  $this->prepareFsConnect( 'update', $this->get('path') );
118
  $this->enqueueScript('head');
119
 
 
 
 
120
  // localized files only can have sync settings
121
  $localized = $file instanceof Loco_fs_LocaleFile && $file->getLocale()->isValid();
122
 
123
  // Advanced mode shows all headers in one form
124
+ $this->setFileTitle($file);
125
  if( $this->get('advanced') || ! $localized ){
126
  return $this->view('admin/file/head');
127
  }
src/admin/file/InfoController.php CHANGED
@@ -34,8 +34,7 @@ class Loco_admin_file_InfoController extends Loco_admin_file_BaseController {
34
  public function render(){
35
  /* @var Loco_fs_LocaleFile $file */
36
  $file = $this->get('file');
37
- $name = $file->basename();
38
- $this->set('title', $name );
39
 
40
  if( $fail = $this->getFileError($file) ){
41
  return $fail;
@@ -188,8 +187,12 @@ class Loco_admin_file_InfoController extends Loco_admin_file_BaseController {
188
  }
189
  }
190
  // Other sanity checks
191
- if( $project && ( $value = $head['Project-Id-Version'] ) && $value !== $project->getName() ){
192
- $debug[] = sprintf('Project-Id-Version header is "%s" but project is "%s"', $value, $project );
 
 
 
 
193
  }
194
  }
195
  // Count source text for templates only (assumed English)
34
  public function render(){
35
  /* @var Loco_fs_LocaleFile $file */
36
  $file = $this->get('file');
37
+ $this->setFileTitle($file);
 
38
 
39
  if( $fail = $this->getFileError($file) ){
40
  return $fail;
187
  }
188
  }
189
  // Other sanity checks
190
+ if( $project && $head->has('Project-Id-Version') ){
191
+ $inProj = $project->getName();
192
+ $inHead = $head->trimmed('Project-Id-Version');
193
+ if( false === strpos($inProj,$inHead) && false === strpos($inHead,$inProj) ) {
194
+ $debug[] = sprintf( 'Project-Id-Version header is "%s" but project is "%s"', $inHead, $inProj );
195
+ }
196
  }
197
  }
198
  // Count source text for templates only (assumed English)
src/admin/file/MoveController.php CHANGED
@@ -130,7 +130,7 @@ class Loco_admin_file_MoveController extends Loco_admin_file_BaseController {
130
  $custom = is_null($project) || $this->get('custom') || 'po' !== $file->extension() || ! $locale->isValid();
131
  // common page elements:
132
  $this->set('files',$files->expand() );
133
- $this->set('title', sprintf( __('Move %s','loco-translate'), $file->filename() ) );
134
  $this->enqueueScript('move');
135
  // set info for existing file location
136
  $content_dir = loco_constant('WP_CONTENT_DIR');
130
  $custom = is_null($project) || $this->get('custom') || 'po' !== $file->extension() || ! $locale->isValid();
131
  // common page elements:
132
  $this->set('files',$files->expand() );
133
+ $this->setFileTitle($file,__('Move %s','loco-translate'));
134
  $this->enqueueScript('move');
135
  // set info for existing file location
136
  $content_dir = loco_constant('WP_CONTENT_DIR');
src/admin/file/ViewController.php CHANGED
@@ -36,9 +36,8 @@ class Loco_admin_file_ViewController extends Loco_admin_file_BaseController {
36
  // file must exist for editing
37
  /* @var Loco_fs_File $file */
38
  $file = $this->get('file');
39
- $name = $file->basename();
40
  $type = strtolower( $file->extension() );
41
- $this->set('title', $name );
42
 
43
  if( $fail = $this->getFileError($file) ){
44
  return $fail;
@@ -86,8 +85,7 @@ class Loco_admin_file_ViewController extends Loco_admin_file_BaseController {
86
  'bundle' => $bundle->getId(),
87
  'domain' => $project ? $project->getId() : '',
88
  ] : null,
89
- ] ) );
90
-
91
 
92
  // treat as PO if file name has locale
93
  if( $this->getLocale() ){
36
  // file must exist for editing
37
  /* @var Loco_fs_File $file */
38
  $file = $this->get('file');
39
+ $this->setFileTitle($file);
40
  $type = strtolower( $file->extension() );
 
41
 
42
  if( $fail = $this->getFileError($file) ){
43
  return $fail;
85
  'bundle' => $bundle->getId(),
86
  'domain' => $project ? $project->getId() : '',
87
  ] : null,
88
+ ] ) );
 
89
 
90
  // treat as PO if file name has locale
91
  if( $this->getLocale() ){
src/compat/MbstringExtension.php CHANGED
@@ -41,6 +41,11 @@ abstract class Loco_compat_MbstringExtension {
41
  }
42
  return $str;
43
  }
 
 
 
 
 
44
  }
45
 
46
 
@@ -75,3 +80,9 @@ if( ! function_exists('mb_encoding_aliases') ){
75
  return false;
76
  }
77
  }
 
 
 
 
 
 
41
  }
42
  return $str;
43
  }
44
+
45
+ public static function mb_strtolower( $str ){
46
+ return strtolower($str);
47
+ }
48
+
49
  }
50
 
51
 
80
  return false;
81
  }
82
  }
83
+
84
+ if( ! function_exists('mb_strtolower') ){
85
+ function mb_strtolower( $str ){
86
+ return Loco_compat_MbstringExtension::mb_strtolower($str);
87
+ }
88
+ }
src/hooks/LoadHelper.php CHANGED
@@ -77,7 +77,7 @@ class Loco_hooks_LoadHelper extends Loco_hooks_Hookable {
77
  * @return string e.g. {WP_CONTENT_DIR}/languages/loco/plugins/foo
78
  */
79
  private function resolve( $path ){
80
- foreach( $this->map as $key => $data ){
81
  list($subdir,$prefix,$len) = $data;
82
  if( substr($path,0,$len) === $prefix ){
83
  if( '' === $subdir ){
77
  * @return string e.g. {WP_CONTENT_DIR}/languages/loco/plugins/foo
78
  */
79
  private function resolve( $path ){
80
+ foreach( $this->map as $data ){
81
  list($subdir,$prefix,$len) = $data;
82
  if( substr($path,0,$len) === $prefix ){
83
  if( '' === $subdir ){
src/js/Strings.php CHANGED
@@ -166,6 +166,18 @@ class Loco_js_Strings extends Loco_hooks_TranslateBuffer {
166
  // List heading showing preview of translated text for each item
167
  _x("Translation","Editor",'loco-translate');
168
 
 
 
 
 
 
 
 
 
 
 
 
 
169
 
170
  return $this->flush('loco-translate');
171
  }
166
  // List heading showing preview of translated text for each item
167
  _x("Translation","Editor",'loco-translate');
168
 
169
+ // xgettext: javascript-format
170
+ __("Too many placeholders; source text formatting suggests a maximum of %s",'loco-translate');
171
+
172
+ // xgettext: javascript-format
173
+ __("Missing placeholders; source text formatting suggests at least %s",'loco-translate');
174
+
175
+ //
176
+ __("Possible syntax error in string formatting",'loco-translate');
177
+
178
+ //
179
+ __("Mismatching placeholder type; check against source text formatting",'loco-translate');
180
+
181
 
182
  return $this->flush('loco-translate');
183
  }
src/mvc/ViewParams.php CHANGED
@@ -49,6 +49,24 @@ class Loco_mvc_ViewParams extends ArrayObject implements JsonSerializable {
49
  }
50
 
51
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
52
  /**
53
  * @internal
54
  * @param string property name
@@ -71,21 +89,15 @@ class Loco_mvc_ViewParams extends ArrayObject implements JsonSerializable {
71
  /**
72
  * Print escaped property value
73
  * @param string property key
74
- * @param mixed optional arguments to substitute into value
75
  * @return string empty string
76
  */
77
  public function e( $p ){
78
  $text = $this->__get($p);
79
- if( 1 < func_num_args() ){
80
- $args = func_get_args();
81
- $text = call_user_func_array( 'sprintf', $args );
82
- }
83
  echo $this->escape( $text );
84
  return '';
85
  }
86
 
87
-
88
-
89
  /**
90
  * Print property as string date, including time
91
  * @param string property name
@@ -122,7 +134,7 @@ class Loco_mvc_ViewParams extends ArrayObject implements JsonSerializable {
122
  * @return string empty string
123
  */
124
  public function f( $p, $f = '%s' ){
125
- echo $this->escape( sprintf( $f, $this->__get($p) ) );
126
  return '';
127
  }
128
 
49
  }
50
 
51
 
52
+ /**
53
+ * Wrapper for sprintf so we can handle PHP 8 exceptions
54
+ * @param string
55
+ * @param array
56
+ * @return string
57
+ */
58
+ public static function format( $format, array $args ){
59
+ try {
60
+ return vsprintf($format,$args);
61
+ }
62
+ // Note that PHP8 will throw Error (not Exception), PHP 7 will trigger E_WARNING
63
+ catch( Error $e ){
64
+ Loco_error_AdminNotices::warn( $e->getMessage().' in vsprintf('.var_export($format,true).')' );
65
+ return '';
66
+ }
67
+ }
68
+
69
+
70
  /**
71
  * @internal
72
  * @param string property name
89
  /**
90
  * Print escaped property value
91
  * @param string property key
 
92
  * @return string empty string
93
  */
94
  public function e( $p ){
95
  $text = $this->__get($p);
 
 
 
 
96
  echo $this->escape( $text );
97
  return '';
98
  }
99
 
100
+
 
101
  /**
102
  * Print property as string date, including time
103
  * @param string property name
134
  * @return string empty string
135
  */
136
  public function f( $p, $f = '%s' ){
137
+ echo $this->escape( self::format( $f, [$this->__get($p)] ) );
138
  return '';
139
  }
140